/*! jQuery UI - v1.12.1 - 2021-03-02
* http://jqueryui.com
* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif
* Copyright jQuery Foundation and other contributors; Licensed MIT */@import url("https://fonts.googleapis.com/css?family=Lato:400,300,600,300italic,400italic&subset=latin");.ui-draggable-handle{touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:alpha(opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-sortable-handle{touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0}.ui-menu .ui-state-active,.ui-menu .ui-state-focus{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:active,.ui-button:hover,.ui-button:link,.ui-button:visited{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}button.ui-button::-moz-focus-inner,input.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus,.ui-controlgroup>.ui-controlgroup-item:focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label+.ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label+.ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:97.6%}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-next-hover,.ui-datepicker .ui-datepicker-prev-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw,.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:700;line-height:1.5;padding:2px .4em;margin:.5em 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;vertical-align:middle;margin:.2em 2em .2em .4em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif}.ui-widget,.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:700}.ui-widget-header a{color:#333}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:400;color:#454545}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#454545;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #ccc;background:#ededed;font-weight:400;color:#2b2b2b}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{border:1px solid #003eff;background:#007fff;font-weight:400;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error-text,.ui-state-error a,.ui-widget-content .ui-state-error-text,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error-text,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:alpha(opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:alpha(opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:alpha(opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{background-image:url(images/ui-icons_444444_256x240.png)}.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url(images/ui-icons_555555_256x240.png)}.ui-button:active .ui-icon,.ui-state-active .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png)}.ui-button .ui-state-highlight.ui-icon,.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_777620_256x240.png)}.ui-state-error-text .ui-icon,.ui-state-error .ui-icon{background-image:url(images/ui-icons_cc0000_256x240.png)}.ui-button .ui-icon{background-image:url(images/ui-icons_777777_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-first,.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:3px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:alpha(opacity=30)}.ui-widget-shadow{box-shadow:0 0 5px #666}
/*!
 * # Semantic UI - Reset
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */*,:after,:before{box-sizing:inherit}html{box-sizing:border-box}input[type=email],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;-moz-appearance:none}
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}
/*!
 * # Semantic UI - Site
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */body,html{height:100%}html{font-size:14px}body{margin:0;overflow-x:hidden;min-width:320px;background:#e9eaed;font-size:14px;line-height:1.4285em;color:rgba(0,0,0,.87);font-smoothing:antialiased}body,h1,h2,h3,h4,h5{padding:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}h1,h2,h3,h4,h5{line-height:1.28571429em;margin:calc(2rem - .14286em) 0 1rem;font-weight:400}h1{min-height:14px;min-height:1rem;font-size:28px;font-size:2rem}h2{font-size:23.999px;font-size:1.71428571rem}h3{font-size:18px;font-size:1.28571429rem}h4{font-size:14.999px;font-size:1.07142857rem}h5{font-size:14px;font-size:1rem}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child{margin-bottom:0}p{margin:0 0 1em;line-height:1.7285em}p:first-child{margin-top:0}p:last-child{margin-bottom:0}a{color:#2c6a9e}a,a:hover{text-decoration:none}a:hover{color:#3277b2}::-webkit-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::-moz-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}input::-webkit-selection,textarea::-webkit-selection{background-color:hsla(0,0%,39.2%,.4);color:rgba(0,0,0,.87)}input::-moz-selection,textarea::-moz-selection{background-color:hsla(0,0%,39.2%,.4);color:rgba(0,0,0,.87)}input::selection,textarea::selection{background-color:hsla(0,0%,39.2%,.4);color:rgba(0,0,0,.87)}body ::-webkit-scrollbar{-webkit-appearance:none;width:10px;height:10px}body ::-webkit-scrollbar-track{background:rgba(0,0,0,.1);border-radius:0}body ::-webkit-scrollbar-thumb{cursor:pointer;border-radius:5px;background:rgba(0,0,0,.25);-webkit-transition:color .2s ease;transition:color .2s ease}body ::-webkit-scrollbar-thumb:window-inactive{background:rgba(0,0,0,.15)}body ::-webkit-scrollbar-thumb:hover{background:rgba(128,135,139,.8)}body .ui.inverted::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}body .ui.inverted::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}body .ui.inverted::-webkit-scrollbar-thumb:window-inactive{background:hsla(0,0%,100%,.15)}body .ui.inverted::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.35)}
/*!
 * # Semantic UI - Button
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.button{cursor:pointer;display:inline-block;min-height:1em;outline:none;border:none;vertical-align:baseline;background:#e0e1e2 none;color:rgba(0,0,0,.6);font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 .25em 0 0;padding:.78571429em 1.5em;text-transform:none;text-shadow:none;font-weight:700;line-height:1em;font-style:normal;text-align:center;text-decoration:none;border-radius:.21428571rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;will-change:"";-webkit-tap-highlight-color:transparent}.ui.button,.ui.button:hover{box-shadow:inset 0 0 0 1px transparent,inset 0 0 0 0 rgba(34,36,38,.15)}.ui.button:hover{background-color:#cacbcd;background-image:none;color:rgba(0,0,0,.8)}.ui.button:hover .icon{opacity:.85}.ui.button:focus{background-color:#cacbcd;color:rgba(0,0,0,.8);background-image:""!important;box-shadow:""!important}.ui.button:focus .icon{opacity:.85}.ui.active.button:active,.ui.button:active{background-color:#babbbc;background-image:"";color:rgba(0,0,0,.9);box-shadow:inset 0 0 0 1px transparent,none}.ui.active.button{box-shadow:inset 0 0 0 1px transparent}.ui.active.button,.ui.active.button:hover{color:rgba(0,0,0,.95)}.ui.active.button,.ui.active.button:active,.ui.active.button:hover{background-color:#c0c1c2;background-image:none}.ui.loading.loading.loading.loading.loading.loading.button{position:relative;cursor:default;text-shadow:none!important;color:transparent!important;opacity:1;pointer-events:auto;transition:all 0s linear,opacity .1s ease}.ui.loading.button:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.15)}.ui.loading.button:after,.ui.loading.button:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.button:after{-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#fff;box-shadow:0 0 0 1px transparent}.ui.labeled.icon.loading.button .icon{background-color:transparent;box-shadow:none}@-webkit-keyframes button-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes button-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui.basic.loading.button:not(.inverted):before{border-color:rgba(0,0,0,.1)}.ui.basic.loading.button:not(.inverted):after{border-top-color:#767676}.ui.button:disabled,.ui.buttons .disabled.button,.ui.disabled.active.button,.ui.disabled.button,.ui.disabled.button:hover{cursor:default;opacity:.45!important;background-image:none!important;box-shadow:none!important;pointer-events:none!important}.ui.basic.buttons .ui.disabled.button{border-color:rgba(34,36,38,.5)}.ui.animated.button{position:relative;overflow:hidden;padding-right:0!important;vertical-align:middle;z-index:1}.ui.animated.button .content{will-change:transform,opacity}.ui.animated.button .visible.content{position:relative;margin-right:1.5em}.ui.animated.button .hidden.content{position:absolute;width:100%}.ui.animated.button .hidden.content,.ui.animated.button .visible.content{transition:right .3s ease 0s}.ui.animated.button .visible.content{left:auto;right:0}.ui.animated.button .hidden.content{top:50%;left:auto;right:-100%;margin-top:-.5em}.ui.animated.button:focus .visible.content,.ui.animated.button:hover .visible.content{left:auto;right:200%}.ui.animated.button:focus .hidden.content,.ui.animated.button:hover .hidden.content{left:auto;right:0}.ui.vertical.animated.button .hidden.content,.ui.vertical.animated.button .visible.content{transition:top .3s ease,transform .3s ease}.ui.vertical.animated.button .visible.content{transform:translateY(0);right:auto}.ui.vertical.animated.button .hidden.content{top:-50%;left:0;right:auto}.ui.vertical.animated.button:focus .visible.content,.ui.vertical.animated.button:hover .visible.content{transform:translateY(200%);right:auto}.ui.vertical.animated.button:focus .hidden.content,.ui.vertical.animated.button:hover .hidden.content{top:50%;right:auto}.ui.fade.animated.button .hidden.content,.ui.fade.animated.button .visible.content{transition:opacity .3s ease,transform .3s ease}.ui.fade.animated.button .visible.content{left:auto;right:auto;opacity:1;transform:scale(1)}.ui.fade.animated.button .hidden.content{opacity:0;left:0;right:auto;transform:scale(1.5)}.ui.fade.animated.button:focus .visible.content,.ui.fade.animated.button:hover .visible.content{left:auto;right:auto;opacity:0;transform:scale(.75)}.ui.fade.animated.button:focus .hidden.content,.ui.fade.animated.button:hover .hidden.content{left:0;right:auto;opacity:1;transform:scale(1)}.ui.inverted.button{box-shadow:inset 0 0 0 2px #fff!important;background:transparent none;color:#fff;text-shadow:none!important}.ui.inverted.buttons .button{margin:0 0 0 -2px}.ui.inverted.buttons .button:first-child{margin-left:0}.ui.inverted.vertical.buttons .button{margin:0 0 -2px}.ui.inverted.vertical.buttons .button:first-child{margin-top:0}.ui.inverted.button.active,.ui.inverted.button:focus,.ui.inverted.button:hover{background:#fff;box-shadow:inset 0 0 0 2px #fff!important;color:rgba(0,0,0,.8)}.ui.inverted.button.active:focus{background:#dcddde;box-shadow:inset 0 0 0 2px #dcddde!important;color:rgba(0,0,0,.8)}.ui.labeled.button:not(.icon){display:inline-flex;flex-direction:row;background:none!important;padding:0!important;border:none!important;box-shadow:none!important}.ui.labeled.button>.button{margin:0}.ui.labeled.button>.label{display:flex;align-items:center;margin:0 0 0 -1px!important;padding:"";font-size:1em;border-color:rgba(34,36,38,.15)}.ui.labeled.button>.tag.label:before{width:1.85em;height:1.85em}.ui.labeled.button:not([class*="left labeled"])>.button{border-top-right-radius:0;border-bottom-right-radius:0}.ui.labeled.button:not([class*="left labeled"])>.label,.ui[class*="left labeled"].button>.button{border-top-left-radius:0;border-bottom-left-radius:0}.ui[class*="left labeled"].button>.label{border-top-right-radius:0;border-bottom-right-radius:0}.ui.facebook.button{background-color:#3b5998;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.facebook.button:hover{background-color:#304d8a;color:#fff;text-shadow:none}.ui.facebook.button:active{background-color:#2d4373;color:#fff;text-shadow:none}.ui.twitter.button{background-color:#55acee;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.twitter.button:hover{background-color:#35a2f4;color:#fff;text-shadow:none}.ui.twitter.button:active{background-color:#2795e9;color:#fff;text-shadow:none}.ui.google.plus.button{background-color:#dd4b39;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.google.plus.button:hover{background-color:#e0321c;color:#fff;text-shadow:none}.ui.google.plus.button:active{background-color:#c23321;color:#fff;text-shadow:none}.ui.linkedin.button{background-color:#1f88be;color:#fff;text-shadow:none}.ui.linkedin.button:hover{background-color:#147baf;color:#fff;text-shadow:none}.ui.linkedin.button:active{background-color:#186992;color:#fff;text-shadow:none}.ui.youtube.button{background-color:red;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.youtube.button:hover{background-color:#e60000;color:#fff;text-shadow:none}.ui.youtube.button:active{background-color:#c00;color:#fff;text-shadow:none}.ui.instagram.button{background-color:#49769c;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.instagram.button:hover{background-color:#3d698e;color:#fff;text-shadow:none}.ui.instagram.button:active{background-color:#395c79;color:#fff;text-shadow:none}.ui.pinterest.button{background-color:#bd081c;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.pinterest.button:hover{background-color:#ac0013;color:#fff;text-shadow:none}.ui.pinterest.button:active{background-color:#8c0615;color:#fff;text-shadow:none}.ui.vk.button{background-color:#4d7198;color:#fff;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.vk.button:hover{background-color:#41648a;color:#fff}.ui.vk.button:active{background-color:#3c5876;color:#fff}.ui.button>.icon:not(.button){height:.85714286em;opacity:.8;transition:opacity .1s ease;vertical-align:"";color:""}.ui.button:not(.icon)>.icon:not(.button):not(.dropdown),.ui.button>.icon:not(.button){margin:0 .42857143em 0 -.21428571em}.ui.button:not(.icon)>.right.icon:not(.button):not(.dropdown){margin:0 -.21428571em 0 .42857143em}.ui[class*="left floated"].button,.ui[class*="left floated"].buttons{float:left;margin-left:0;margin-right:.25em}.ui[class*="right floated"].button,.ui[class*="right floated"].buttons{float:right;margin-right:0;margin-left:.25em}.ui.compact.button,.ui.compact.buttons .button{padding:.58928571em 1.125em}.ui.compact.icon.button,.ui.compact.icon.buttons .button{padding:.58928571em}.ui.compact.labeled.icon.button,.ui.compact.labeled.icon.buttons .button{padding:.58928571em 3.69642857em}.ui.mini.button,.ui.mini.buttons .button,.ui.mini.buttons .or{font-size:11px;font-size:.78571429rem}.ui.tiny.button,.ui.tiny.buttons .button,.ui.tiny.buttons .or{font-size:12px;font-size:.85714286rem}.ui.small.button,.ui.small.buttons .button,.ui.small.buttons .or{font-size:13px;font-size:.92857143rem}.ui.button,.ui.buttons .button,.ui.buttons .or{font-size:14px;font-size:1rem}.ui.large.button,.ui.large.buttons .button,.ui.large.buttons .or{font-size:15.999px;font-size:1.14285714rem}.ui.big.button,.ui.big.buttons .button,.ui.big.buttons .or{font-size:18px;font-size:1.28571429rem}.ui.huge.button,.ui.huge.buttons .button,.ui.huge.buttons .or{font-size:20px;font-size:1.42857143rem}.ui.massive.button,.ui.massive.buttons .button,.ui.massive.buttons .or{font-size:23.999px;font-size:1.71428571rem}.ui.icon.button,.ui.icon.buttons .button{padding:.78571429em}.ui.icon.button>.icon,.ui.icon.buttons .button>.icon{opacity:.9;margin:0!important;vertical-align:top}.ui.basic.button,.ui.basic.buttons .button{background:transparent none!important;color:rgba(0,0,0,.6)!important;font-weight:400;border-radius:.21428571rem;text-transform:none;text-shadow:none!important;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15)}.ui.basic.buttons{box-shadow:none;border:1px solid rgba(34,36,38,.15);border-radius:.21428571rem}.ui.basic.buttons .button{border-radius:0}.ui.basic.button:focus,.ui.basic.button:hover,.ui.basic.buttons .button:focus,.ui.basic.buttons .button:hover{background:#fff!important;color:rgba(0,0,0,.8)!important;box-shadow:inset 0 0 0 1px rgba(34,36,38,.35),inset 0 0 0 0 rgba(34,36,38,.15)}.ui.basic.button:active,.ui.basic.buttons .button:active{background:#f8f8f8!important;color:rgba(0,0,0,.9)!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),inset 0 1px 4px 0 rgba(34,36,38,.15)}.ui.basic.active.button,.ui.basic.buttons .active.button{background:rgba(0,0,0,.05)!important;box-shadow:""!important;color:rgba(0,0,0,.95)!important}.ui.basic.active.button:hover,.ui.basic.buttons .active.button:hover{background-color:rgba(0,0,0,.05)}.ui.basic.buttons .button:hover{box-shadow:inset 0 0 0 1px rgba(34,36,38,.35),inset inset 0 0 0 0 rgba(34,36,38,.15)}.ui.basic.buttons .button:active{box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),inset inset 0 1px 4px 0 rgba(34,36,38,.15)}.ui.basic.buttons .active.button{box-shadow:""!important}.ui.basic.inverted.button,.ui.basic.inverted.buttons .button{background-color:transparent!important;color:#f9fafb!important;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important}.ui.basic.inverted.button:focus,.ui.basic.inverted.button:hover,.ui.basic.inverted.buttons .button:focus,.ui.basic.inverted.buttons .button:hover{color:#fff!important;box-shadow:inset 0 0 0 2px #fff!important}.ui.basic.inverted.button:active,.ui.basic.inverted.buttons .button:active{background-color:hsla(0,0%,100%,.08)!important;color:#fff!important;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.9)!important}.ui.basic.inverted.active.button,.ui.basic.inverted.buttons .active.button{background-color:hsla(0,0%,100%,.08);color:#fff;text-shadow:none;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.7)}.ui.basic.inverted.active.button:hover,.ui.basic.inverted.buttons .active.button:hover{background-color:hsla(0,0%,100%,.15);box-shadow:inset 0 0 0 2px #fff!important}.ui.basic.buttons .button{border-left:1px solid rgba(34,36,38,.15);box-shadow:none}.ui.basic.vertical.buttons .button{border-left:none;border-left-width:0;border-top:1px solid rgba(34,36,38,.15)}.ui.basic.vertical.buttons .button:first-child{border-top-width:0}.ui.labeled.icon.button,.ui.labeled.icon.buttons .button{position:relative;padding-left:4.07142857em!important;padding-right:1.5em!important}.ui.labeled.icon.button>.icon,.ui.labeled.icon.buttons>.button>.icon{position:absolute;height:100%;line-height:1;border-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit;text-align:center;margin:0;width:2.57142857em;background-color:rgba(0,0,0,.05);color:"";box-shadow:inset -1px 0 0 0 transparent;top:0;left:0}.ui[class*="right labeled"].icon.button{padding-right:4.07142857em!important;padding-left:1.5em!important}.ui[class*="right labeled"].icon.button>.icon{left:auto;right:0;border-radius:0;border-top-right-radius:inherit;border-bottom-right-radius:inherit;box-shadow:inset 1px 0 0 0 transparent}.ui.labeled.icon.button>.icon:after,.ui.labeled.icon.button>.icon:before,.ui.labeled.icon.buttons>.button>.icon:after,.ui.labeled.icon.buttons>.button>.icon:before{display:block;position:absolute;width:100%;top:50%;text-align:center;transform:translateY(-50%)}.ui.labeled.icon.buttons .button>.icon{border-radius:0}.ui.labeled.icon.buttons .button:first-child>.icon{border-top-left-radius:2.999px;border-top-left-radius:.21428571rem;border-bottom-left-radius:2.999px;border-bottom-left-radius:.21428571rem}.ui.labeled.icon.buttons .button:last-child>.icon{border-top-right-radius:2.999px;border-top-right-radius:.21428571rem;border-bottom-right-radius:2.999px;border-bottom-right-radius:.21428571rem}.ui.vertical.labeled.icon.buttons .button:first-child>.icon{border-radius:0;border-top-left-radius:2.999px;border-top-left-radius:.21428571rem}.ui.vertical.labeled.icon.buttons .button:last-child>.icon{border-radius:0;border-bottom-left-radius:2.999px;border-bottom-left-radius:.21428571rem}.ui.fluid[class*="left labeled"].icon.button,.ui.fluid[class*="right labeled"].icon.button{padding-left:1.5em!important;padding-right:1.5em!important}.ui.button.toggle.active,.ui.buttons .button.toggle.active,.ui.toggle.buttons .active.button{background-color:#21ba45!important;box-shadow:none!important;text-shadow:none;color:#fff!important}.ui.button.toggle.active:hover{background-color:#16ab39!important;text-shadow:none;color:#fff!important}.ui.circular.button{border-radius:10em}.ui.circular.button>.icon{width:1em;vertical-align:baseline}.ui.buttons .or{position:relative;width:.3em;height:2.57142857em;z-index:3}.ui.buttons .or:before{position:absolute;text-align:center;border-radius:500rem;content:"or";top:50%;left:50%;background-color:#fff;text-shadow:none;margin-top:-.89285714em;margin-left:-.89285714em;width:1.78571429em;height:1.78571429em;line-height:1.78571429em;color:rgba(0,0,0,.4);font-style:normal;font-weight:700;box-shadow:inset 0 0 0 1px transparent}.ui.buttons .or[data-text]:before{content:attr(data-text)}.ui.fluid.buttons .or{width:0!important}.ui.fluid.buttons .or:after{display:none}.ui.attached.button{position:relative;display:block;margin:0;border-radius:0;box-shadow:0 0 0 1px rgba(34,36,38,.15)!important}.ui.attached.top.button{border-radius:.21428571rem .21428571rem 0 0}.ui.attached.bottom.button{border-radius:0 0 .21428571rem .21428571rem}.ui.left.attached.button{display:inline-block;border-left:none;text-align:right;padding-right:.75em;border-radius:.21428571rem 0 0 .21428571rem}.ui.right.attached.button{display:inline-block;text-align:left;padding-left:.75em;border-radius:0 .21428571rem .21428571rem 0}.ui.attached.buttons{position:relative;display:flex;border-radius:0;width:auto!important;z-index:2;margin-left:-1px;margin-right:-1px}.ui.attached.buttons .button{margin:0}.ui.attached.buttons .button:first-child,.ui.attached.buttons .button:last-child{border-radius:0}.ui[class*="top attached"].buttons{margin-bottom:-1px;border-radius:.21428571rem .21428571rem 0 0}.ui[class*="top attached"].buttons .button:first-child{border-radius:.21428571rem 0 0 0}.ui[class*="top attached"].buttons .button:last-child{border-radius:0 .21428571rem 0 0}.ui[class*="bottom attached"].buttons{margin-top:-1px;border-radius:0 0 .21428571rem .21428571rem}.ui[class*="bottom attached"].buttons .button:first-child{border-radius:0 0 0 .21428571rem}.ui[class*="bottom attached"].buttons .button:last-child{border-radius:0 0 .21428571rem 0}.ui[class*="left attached"].buttons{display:inline-flex;margin-right:0;margin-left:-1px;border-radius:0 .21428571rem .21428571rem 0}.ui[class*="left attached"].buttons .button:first-child{margin-left:-1px;border-radius:0 .21428571rem 0 0}.ui[class*="left attached"].buttons .button:last-child{margin-left:-1px;border-radius:0 0 .21428571rem 0}.ui[class*="right attached"].buttons{display:inline-flex;margin-left:0;margin-right:-1px;border-radius:.21428571rem 0 0 .21428571rem}.ui[class*="right attached"].buttons .button:first-child{margin-left:-1px;border-radius:.21428571rem 0 0 0}.ui[class*="right attached"].buttons .button:last-child{margin-left:-1px;border-radius:0 0 0 .21428571rem}.ui.fluid.button,.ui.fluid.buttons{width:100%}.ui.fluid.button{display:block}.ui.two.buttons{width:100%}.ui.two.buttons>.button{width:50%}.ui.three.buttons{width:100%}.ui.three.buttons>.button{width:33.333%}.ui.four.buttons{width:100%}.ui.four.buttons>.button{width:25%}.ui.five.buttons{width:100%}.ui.five.buttons>.button{width:20%}.ui.six.buttons{width:100%}.ui.six.buttons>.button{width:16.666%}.ui.seven.buttons{width:100%}.ui.seven.buttons>.button{width:14.285%}.ui.eight.buttons{width:100%}.ui.eight.buttons>.button{width:12.5%}.ui.nine.buttons{width:100%}.ui.nine.buttons>.button{width:11.11%}.ui.ten.buttons{width:100%}.ui.ten.buttons>.button{width:10%}.ui.eleven.buttons{width:100%}.ui.eleven.buttons>.button{width:9.09%}.ui.twelve.buttons{width:100%}.ui.twelve.buttons>.button{width:8.3333%}.ui.fluid.vertical.buttons,.ui.fluid.vertical.buttons>.button{display:flex;width:auto}.ui.two.vertical.buttons>.button{height:50%}.ui.three.vertical.buttons>.button{height:33.333%}.ui.four.vertical.buttons>.button{height:25%}.ui.five.vertical.buttons>.button{height:20%}.ui.six.vertical.buttons>.button{height:16.666%}.ui.seven.vertical.buttons>.button{height:14.285%}.ui.eight.vertical.buttons>.button{height:12.5%}.ui.nine.vertical.buttons>.button{height:11.11%}.ui.ten.vertical.buttons>.button{height:10%}.ui.eleven.vertical.buttons>.button{height:9.09%}.ui.twelve.vertical.buttons>.button{height:8.3333%}.ui.black.button,.ui.black.buttons .button{background-color:#1b1c1d;color:#fff;text-shadow:none;background-image:none}.ui.black.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.black.button:hover,.ui.black.buttons .button:hover{background-color:#27292a;color:#fff;text-shadow:none}.ui.black.button:focus,.ui.black.buttons .button:focus{background-color:#2f3032;color:#fff;text-shadow:none}.ui.black.button:active,.ui.black.buttons .button:active{background-color:#343637;color:#fff;text-shadow:none}.ui.black.active.button,.ui.black.button .active.button:active,.ui.black.buttons .active.button,.ui.black.buttons .active.button:active{background-color:#0f0f10;color:#fff;text-shadow:none}.ui.basic.black.button,.ui.basic.black.buttons .button{box-shadow:inset 0 0 0 1px #1b1c1d!important;color:#1b1c1d!important}.ui.basic.black.button:hover,.ui.basic.black.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #27292a!important;color:#27292a!important}.ui.basic.black.button:focus,.ui.basic.black.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #2f3032!important;color:#27292a!important}.ui.basic.black.active.button,.ui.basic.black.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #0f0f10!important;color:#343637!important}.ui.basic.black.button:active,.ui.basic.black.buttons .button:active{box-shadow:inset 0 0 0 1px #343637!important;color:#343637!important}.ui.buttons:not(.vertical)>.basic.black.button:not(:first-child){margin-left:-1px}.ui.inverted.black.button,.ui.inverted.black.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d4d4d5!important;color:#fff}.ui.inverted.black.button.active,.ui.inverted.black.button:active,.ui.inverted.black.button:focus,.ui.inverted.black.button:hover,.ui.inverted.black.buttons .button.active,.ui.inverted.black.buttons .button:active,.ui.inverted.black.buttons .button:focus,.ui.inverted.black.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.black.active.button,.ui.inverted.black.button:active,.ui.inverted.black.button:focus,.ui.inverted.black.button:hover,.ui.inverted.black.buttons .active.button,.ui.inverted.black.buttons .button:active,.ui.inverted.black.buttons .button:focus,.ui.inverted.black.buttons .button:hover{background-color:#000}.ui.inverted.black.basic.button,.ui.inverted.black.basic.buttons .button,.ui.inverted.black.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.black.basic.button:hover,.ui.inverted.black.basic.buttons .button:hover,.ui.inverted.black.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #000!important;color:#fff!important}.ui.inverted.black.basic.button:focus,.ui.inverted.black.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #000!important;color:#545454!important}.ui.inverted.black.basic.active.button,.ui.inverted.black.basic.button:active,.ui.inverted.black.basic.buttons .active.button,.ui.inverted.black.basic.buttons .button:active,.ui.inverted.black.buttons .basic.active.button,.ui.inverted.black.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #000!important;color:#fff!important}.ui.grey.button,.ui.grey.buttons .button{background-color:#767676;color:#fff;text-shadow:none;background-image:none}.ui.grey.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.grey.button:hover,.ui.grey.buttons .button:hover{background-color:#838383;color:#fff;text-shadow:none}.ui.grey.button:focus,.ui.grey.buttons .button:focus{background-color:#8a8a8a;color:#fff;text-shadow:none}.ui.grey.button:active,.ui.grey.buttons .button:active{background-color:#909090;color:#fff;text-shadow:none}.ui.grey.active.button,.ui.grey.button .active.button:active,.ui.grey.buttons .active.button,.ui.grey.buttons .active.button:active{background-color:#696969;color:#fff;text-shadow:none}.ui.basic.grey.button,.ui.basic.grey.buttons .button{box-shadow:inset 0 0 0 1px #767676!important;color:#767676!important}.ui.basic.grey.button:hover,.ui.basic.grey.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #838383!important;color:#838383!important}.ui.basic.grey.button:focus,.ui.basic.grey.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #8a8a8a!important;color:#838383!important}.ui.basic.grey.active.button,.ui.basic.grey.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #696969!important;color:#909090!important}.ui.basic.grey.button:active,.ui.basic.grey.buttons .button:active{box-shadow:inset 0 0 0 1px #909090!important;color:#909090!important}.ui.buttons:not(.vertical)>.basic.grey.button:not(:first-child){margin-left:-1px}.ui.inverted.grey.button,.ui.inverted.grey.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d4d4d5!important;color:#fff}.ui.inverted.grey.button.active,.ui.inverted.grey.button:active,.ui.inverted.grey.button:focus,.ui.inverted.grey.button:hover,.ui.inverted.grey.buttons .button.active,.ui.inverted.grey.buttons .button:active,.ui.inverted.grey.buttons .button:focus,.ui.inverted.grey.buttons .button:hover{box-shadow:none!important;color:rgba(0,0,0,.6)}.ui.inverted.grey.button:hover,.ui.inverted.grey.buttons .button:hover{background-color:#cfd0d2}.ui.inverted.grey.button:focus,.ui.inverted.grey.buttons .button:focus{background-color:#c7c9cb}.ui.inverted.grey.active.button,.ui.inverted.grey.buttons .active.button{background-color:#cfd0d2}.ui.inverted.grey.button:active,.ui.inverted.grey.buttons .button:active{background-color:#c2c4c5}.ui.inverted.grey.basic.button,.ui.inverted.grey.basic.buttons .button,.ui.inverted.grey.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.grey.basic.button:hover,.ui.inverted.grey.basic.buttons .button:hover,.ui.inverted.grey.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #cfd0d2!important;color:#fff!important}.ui.inverted.grey.basic.button:focus,.ui.inverted.grey.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #c7c9cb!important;color:#dcddde!important}.ui.inverted.grey.basic.active.button,.ui.inverted.grey.basic.buttons .active.button,.ui.inverted.grey.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #cfd0d2!important;color:#fff!important}.ui.inverted.grey.basic.button:active,.ui.inverted.grey.basic.buttons .button:active,.ui.inverted.grey.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #c2c4c5!important;color:#fff!important}.ui.brown.button,.ui.brown.buttons .button{background-color:#a5673f;color:#fff;text-shadow:none;background-image:none}.ui.brown.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.brown.button:hover,.ui.brown.buttons .button:hover{background-color:#975b33;color:#fff;text-shadow:none}.ui.brown.button:focus,.ui.brown.buttons .button:focus{background-color:#90532b;color:#fff;text-shadow:none}.ui.brown.button:active,.ui.brown.buttons .button:active{background-color:#805031;color:#fff;text-shadow:none}.ui.brown.active.button,.ui.brown.button .active.button:active,.ui.brown.buttons .active.button,.ui.brown.buttons .active.button:active{background-color:#995a31;color:#fff;text-shadow:none}.ui.basic.brown.button,.ui.basic.brown.buttons .button{box-shadow:inset 0 0 0 1px #a5673f!important;color:#a5673f!important}.ui.basic.brown.button:hover,.ui.basic.brown.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #975b33!important;color:#975b33!important}.ui.basic.brown.button:focus,.ui.basic.brown.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #90532b!important;color:#975b33!important}.ui.basic.brown.active.button,.ui.basic.brown.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #995a31!important;color:#805031!important}.ui.basic.brown.button:active,.ui.basic.brown.buttons .button:active{box-shadow:inset 0 0 0 1px #805031!important;color:#805031!important}.ui.buttons:not(.vertical)>.basic.brown.button:not(:first-child){margin-left:-1px}.ui.inverted.brown.button,.ui.inverted.brown.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d67c1c!important;color:#d67c1c}.ui.inverted.brown.button.active,.ui.inverted.brown.button:active,.ui.inverted.brown.button:focus,.ui.inverted.brown.button:hover,.ui.inverted.brown.buttons .button.active,.ui.inverted.brown.buttons .button:active,.ui.inverted.brown.buttons .button:focus,.ui.inverted.brown.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.brown.button:hover,.ui.inverted.brown.buttons .button:hover{background-color:#c86f11}.ui.inverted.brown.button:focus,.ui.inverted.brown.buttons .button:focus{background-color:#c16808}.ui.inverted.brown.active.button,.ui.inverted.brown.buttons .active.button{background-color:#cc6f0d}.ui.inverted.brown.button:active,.ui.inverted.brown.buttons .button:active{background-color:#a96216}.ui.inverted.brown.basic.button,.ui.inverted.brown.basic.buttons .button,.ui.inverted.brown.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.brown.basic.button:hover,.ui.inverted.brown.basic.buttons .button:hover,.ui.inverted.brown.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #c86f11!important;color:#d67c1c!important}.ui.inverted.brown.basic.button:focus,.ui.inverted.brown.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #c16808!important;color:#d67c1c!important}.ui.inverted.brown.basic.active.button,.ui.inverted.brown.basic.buttons .active.button,.ui.inverted.brown.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #cc6f0d!important;color:#d67c1c!important}.ui.inverted.brown.basic.button:active,.ui.inverted.brown.basic.buttons .button:active,.ui.inverted.brown.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #a96216!important;color:#d67c1c!important}.ui.blue.button,.ui.blue.buttons .button{background-color:#2c6a9e;color:#fff;text-shadow:none;background-image:none}.ui.blue.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.blue.button:hover,.ui.blue.buttons .button:hover{background-color:#215d8f;color:#fff;text-shadow:none}.ui.blue.button:focus,.ui.blue.buttons .button:focus{background-color:#1a5587;color:#fff;text-shadow:none}.ui.blue.button:active,.ui.blue.buttons .button:active{background-color:#214f76;color:#fff;text-shadow:none}.ui.blue.active.button,.ui.blue.button .active.button:active,.ui.blue.buttons .active.button,.ui.blue.buttons .active.button:active{background-color:#1f5d92;color:#fff;text-shadow:none}.ui.basic.blue.button,.ui.basic.blue.buttons .button{box-shadow:inset 0 0 0 1px #2c6a9e!important;color:#2c6a9e!important}.ui.basic.blue.button:hover,.ui.basic.blue.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #215d8f!important;color:#215d8f!important}.ui.basic.blue.button:focus,.ui.basic.blue.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #1a5587!important;color:#215d8f!important}.ui.basic.blue.active.button,.ui.basic.blue.buttons .active.button{background:transparent!important}.ui.basic.blue.button:active,.ui.basic.blue.buttons .button:active{box-shadow:inset 0 0 0 1px #214f76!important;color:#214f76!important}.ui.buttons:not(.vertical)>.basic.blue.button:not(:first-child){margin-left:-1px}.ui.inverted.blue.button,.ui.inverted.blue.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #5391c5!important;color:#5391c5}.ui.inverted.blue.button.active,.ui.inverted.blue.button:active,.ui.inverted.blue.button:focus,.ui.inverted.blue.button:hover,.ui.inverted.blue.buttons .button.active,.ui.inverted.blue.buttons .button:active,.ui.inverted.blue.buttons .button:focus,.ui.inverted.blue.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.blue.button:hover,.ui.inverted.blue.buttons .button:hover{background-color:#3a85c5}.ui.inverted.blue.button:focus,.ui.inverted.blue.buttons .button:focus{background-color:#307ebf}.ui.inverted.blue.active.button,.ui.inverted.blue.buttons .active.button{background-color:#3786c8}.ui.inverted.blue.button:active,.ui.inverted.blue.buttons .button:active{background-color:#3a77ab}.ui.inverted.blue.basic.button,.ui.inverted.blue.basic.buttons .button,.ui.inverted.blue.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.blue.basic.button:hover,.ui.inverted.blue.basic.buttons .button:hover,.ui.inverted.blue.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #3a85c5!important;color:#5391c5!important}.ui.inverted.blue.basic.button:focus,.ui.inverted.blue.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #307ebf!important;color:#5391c5!important}.ui.inverted.blue.basic.active.button,.ui.inverted.blue.basic.buttons .active.button,.ui.inverted.blue.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #3786c8!important;color:#5391c5!important}.ui.inverted.blue.basic.button:active,.ui.inverted.blue.basic.buttons .button:active,.ui.inverted.blue.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #3a77ab!important;color:#5391c5!important}.ui.green.button,.ui.green.buttons .button{background-color:#21ba45;color:#fff;text-shadow:none;background-image:none}.ui.green.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.green.button:hover,.ui.green.buttons .button:hover{background-color:#16ab39;color:#fff;text-shadow:none}.ui.green.button:focus,.ui.green.buttons .button:focus{background-color:#0ea432;color:#fff;text-shadow:none}.ui.green.button:active,.ui.green.buttons .button:active{background-color:#198f35;color:#fff;text-shadow:none}.ui.green.active.button,.ui.green.button .active.button:active,.ui.green.buttons .active.button,.ui.green.buttons .active.button:active{background-color:#13ae38;color:#fff;text-shadow:none}.ui.basic.green.button,.ui.basic.green.buttons .button{box-shadow:inset 0 0 0 1px #21ba45!important;color:#21ba45!important}.ui.basic.green.button:hover,.ui.basic.green.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #16ab39!important;color:#16ab39!important}.ui.basic.green.button:focus,.ui.basic.green.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #0ea432!important;color:#16ab39!important}.ui.basic.green.active.button,.ui.basic.green.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #13ae38!important;color:#198f35!important}.ui.basic.green.button:active,.ui.basic.green.buttons .button:active{box-shadow:inset 0 0 0 1px #198f35!important;color:#198f35!important}.ui.buttons:not(.vertical)>.basic.green.button:not(:first-child){margin-left:-1px}.ui.inverted.green.button,.ui.inverted.green.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #2ecc40!important;color:#2ecc40}.ui.inverted.green.button.active,.ui.inverted.green.button:active,.ui.inverted.green.button:focus,.ui.inverted.green.button:hover,.ui.inverted.green.buttons .button.active,.ui.inverted.green.buttons .button:active,.ui.inverted.green.buttons .button:focus,.ui.inverted.green.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.green.button:hover,.ui.inverted.green.buttons .button:hover{background-color:#22be34}.ui.inverted.green.button:focus,.ui.inverted.green.buttons .button:focus{background-color:#19b82b}.ui.inverted.green.active.button,.ui.inverted.green.buttons .active.button{background-color:#1fc231}.ui.inverted.green.button:active,.ui.inverted.green.buttons .button:active{background-color:#25a233}.ui.inverted.green.basic.button,.ui.inverted.green.basic.buttons .button,.ui.inverted.green.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.green.basic.button:hover,.ui.inverted.green.basic.buttons .button:hover,.ui.inverted.green.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #22be34!important;color:#2ecc40!important}.ui.inverted.green.basic.button:focus,.ui.inverted.green.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #19b82b!important;color:#2ecc40!important}.ui.inverted.green.basic.active.button,.ui.inverted.green.basic.buttons .active.button,.ui.inverted.green.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #1fc231!important;color:#2ecc40!important}.ui.inverted.green.basic.button:active,.ui.inverted.green.basic.buttons .button:active,.ui.inverted.green.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #25a233!important;color:#2ecc40!important}.ui.orange.button,.ui.orange.buttons .button{background-color:#f2711c;color:#fff;text-shadow:none;background-image:none}.ui.orange.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.orange.button:hover,.ui.orange.buttons .button:hover{background-color:#f26202;color:#fff;text-shadow:none}.ui.orange.button:focus,.ui.orange.buttons .button:focus{background-color:#e55b00;color:#fff;text-shadow:none}.ui.orange.button:active,.ui.orange.buttons .button:active{background-color:#cf590c;color:#fff;text-shadow:none}.ui.orange.active.button,.ui.orange.button .active.button:active,.ui.orange.buttons .active.button,.ui.orange.buttons .active.button:active{background-color:#f56100;color:#fff;text-shadow:none}.ui.basic.orange.button,.ui.basic.orange.buttons .button{box-shadow:inset 0 0 0 1px #f2711c!important;color:#f2711c!important}.ui.basic.orange.button:hover,.ui.basic.orange.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #f26202!important;color:#f26202!important}.ui.basic.orange.button:focus,.ui.basic.orange.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #e55b00!important;color:#f26202!important}.ui.basic.orange.active.button,.ui.basic.orange.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #f56100!important;color:#cf590c!important}.ui.basic.orange.button:active,.ui.basic.orange.buttons .button:active{box-shadow:inset 0 0 0 1px #cf590c!important;color:#cf590c!important}.ui.buttons:not(.vertical)>.basic.orange.button:not(:first-child){margin-left:-1px}.ui.inverted.orange.button,.ui.inverted.orange.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff851b!important;color:#ff851b}.ui.inverted.orange.button.active,.ui.inverted.orange.button:active,.ui.inverted.orange.button:focus,.ui.inverted.orange.button:hover,.ui.inverted.orange.buttons .button.active,.ui.inverted.orange.buttons .button:active,.ui.inverted.orange.buttons .button:focus,.ui.inverted.orange.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.orange.button:hover,.ui.inverted.orange.buttons .button:hover{background-color:#ff7701}.ui.inverted.orange.button:focus,.ui.inverted.orange.buttons .button:focus{background-color:#f17000}.ui.inverted.orange.active.button,.ui.inverted.orange.buttons .active.button{background-color:#ff7701}.ui.inverted.orange.button:active,.ui.inverted.orange.buttons .button:active{background-color:#e76b00}.ui.inverted.orange.basic.button,.ui.inverted.orange.basic.buttons .button,.ui.inverted.orange.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.orange.basic.button:hover,.ui.inverted.orange.basic.buttons .button:hover,.ui.inverted.orange.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ff7701!important;color:#ff851b!important}.ui.inverted.orange.basic.button:focus,.ui.inverted.orange.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #f17000!important;color:#ff851b!important}.ui.inverted.orange.basic.active.button,.ui.inverted.orange.basic.buttons .active.button,.ui.inverted.orange.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff7701!important;color:#ff851b!important}.ui.inverted.orange.basic.button:active,.ui.inverted.orange.basic.buttons .button:active,.ui.inverted.orange.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #e76b00!important;color:#ff851b!important}.ui.pink.button,.ui.pink.buttons .button{background-color:#e03997;color:#fff;text-shadow:none;background-image:none}.ui.pink.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.pink.button:hover,.ui.pink.buttons .button:hover{background-color:#e61a8d;color:#fff;text-shadow:none}.ui.pink.button:focus,.ui.pink.buttons .button:focus{background-color:#e10f85;color:#fff;text-shadow:none}.ui.pink.button:active,.ui.pink.buttons .button:active{background-color:#c71f7e;color:#fff;text-shadow:none}.ui.pink.active.button,.ui.pink.button .active.button:active,.ui.pink.buttons .active.button,.ui.pink.buttons .active.button:active{background-color:#ea158d;color:#fff;text-shadow:none}.ui.basic.pink.button,.ui.basic.pink.buttons .button{box-shadow:inset 0 0 0 1px #e03997!important;color:#e03997!important}.ui.basic.pink.button:hover,.ui.basic.pink.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #e61a8d!important;color:#e61a8d!important}.ui.basic.pink.button:focus,.ui.basic.pink.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #e10f85!important;color:#e61a8d!important}.ui.basic.pink.active.button,.ui.basic.pink.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #ea158d!important;color:#c71f7e!important}.ui.basic.pink.button:active,.ui.basic.pink.buttons .button:active{box-shadow:inset 0 0 0 1px #c71f7e!important;color:#c71f7e!important}.ui.buttons:not(.vertical)>.basic.pink.button:not(:first-child){margin-left:-1px}.ui.inverted.pink.button,.ui.inverted.pink.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff8edf!important;color:#ff8edf}.ui.inverted.pink.button.active,.ui.inverted.pink.button:active,.ui.inverted.pink.button:focus,.ui.inverted.pink.button:hover,.ui.inverted.pink.buttons .button.active,.ui.inverted.pink.buttons .button:active,.ui.inverted.pink.buttons .button:focus,.ui.inverted.pink.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.pink.button:hover,.ui.inverted.pink.buttons .button:hover{background-color:#ff74d8}.ui.inverted.pink.button:focus,.ui.inverted.pink.buttons .button:focus{background-color:#ff65d3}.ui.inverted.pink.active.button,.ui.inverted.pink.buttons .active.button{background-color:#ff74d8}.ui.inverted.pink.button:active,.ui.inverted.pink.buttons .button:active{background-color:#ff5bd1}.ui.inverted.pink.basic.button,.ui.inverted.pink.basic.buttons .button,.ui.inverted.pink.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.pink.basic.button:hover,.ui.inverted.pink.basic.buttons .button:hover,.ui.inverted.pink.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ff74d8!important;color:#ff8edf!important}.ui.inverted.pink.basic.button:focus,.ui.inverted.pink.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #ff65d3!important;color:#ff8edf!important}.ui.inverted.pink.basic.active.button,.ui.inverted.pink.basic.buttons .active.button,.ui.inverted.pink.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff74d8!important;color:#ff8edf!important}.ui.inverted.pink.basic.button:active,.ui.inverted.pink.basic.buttons .button:active,.ui.inverted.pink.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ff5bd1!important;color:#ff8edf!important}.ui.violet.button,.ui.violet.buttons .button{background-color:#6435c9;color:#fff;text-shadow:none;background-image:none}.ui.violet.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.violet.button:hover,.ui.violet.buttons .button:hover{background-color:#5829bb;color:#fff;text-shadow:none}.ui.violet.button:focus,.ui.violet.buttons .button:focus{background-color:#4f20b5;color:#fff;text-shadow:none}.ui.violet.button:active,.ui.violet.buttons .button:active{background-color:#502aa1;color:#fff;text-shadow:none}.ui.violet.active.button,.ui.violet.button .active.button:active,.ui.violet.buttons .active.button,.ui.violet.buttons .active.button:active{background-color:#5626bf;color:#fff;text-shadow:none}.ui.basic.violet.button,.ui.basic.violet.buttons .button{box-shadow:inset 0 0 0 1px #6435c9!important;color:#6435c9!important}.ui.basic.violet.button:hover,.ui.basic.violet.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #5829bb!important;color:#5829bb!important}.ui.basic.violet.button:focus,.ui.basic.violet.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #4f20b5!important;color:#5829bb!important}.ui.basic.violet.active.button,.ui.basic.violet.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #5626bf!important;color:#502aa1!important}.ui.basic.violet.button:active,.ui.basic.violet.buttons .button:active{box-shadow:inset 0 0 0 1px #502aa1!important;color:#502aa1!important}.ui.buttons:not(.vertical)>.basic.violet.button:not(:first-child){margin-left:-1px}.ui.inverted.violet.button,.ui.inverted.violet.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #a291fb!important;color:#a291fb}.ui.inverted.violet.button.active,.ui.inverted.violet.button:active,.ui.inverted.violet.button:focus,.ui.inverted.violet.button:hover,.ui.inverted.violet.buttons .button.active,.ui.inverted.violet.buttons .button:active,.ui.inverted.violet.buttons .button:focus,.ui.inverted.violet.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.violet.button:hover,.ui.inverted.violet.buttons .button:hover{background-color:#8a73ff}.ui.inverted.violet.button:focus,.ui.inverted.violet.buttons .button:focus{background-color:#7d64ff}.ui.inverted.violet.active.button,.ui.inverted.violet.buttons .active.button{background-color:#8a73ff}.ui.inverted.violet.button:active,.ui.inverted.violet.buttons .button:active{background-color:#7860f9}.ui.inverted.violet.basic.button,.ui.inverted.violet.basic.buttons .button,.ui.inverted.violet.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.violet.basic.button:hover,.ui.inverted.violet.basic.buttons .button:hover,.ui.inverted.violet.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #8a73ff!important;color:#a291fb!important}.ui.inverted.violet.basic.button:focus,.ui.inverted.violet.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #7d64ff!important;color:#a291fb!important}.ui.inverted.violet.basic.active.button,.ui.inverted.violet.basic.buttons .active.button,.ui.inverted.violet.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #8a73ff!important;color:#a291fb!important}.ui.inverted.violet.basic.button:active,.ui.inverted.violet.basic.buttons .button:active,.ui.inverted.violet.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #7860f9!important;color:#a291fb!important}.ui.purple.button,.ui.purple.buttons .button{background-color:#a333c8;color:#fff;text-shadow:none;background-image:none}.ui.purple.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.purple.button:hover,.ui.purple.buttons .button:hover{background-color:#9627ba;color:#fff;text-shadow:none}.ui.purple.button:focus,.ui.purple.buttons .button:focus{background-color:#8f1eb4;color:#fff;text-shadow:none}.ui.purple.button:active,.ui.purple.buttons .button:active{background-color:#82299f;color:#fff;text-shadow:none}.ui.purple.active.button,.ui.purple.button .active.button:active,.ui.purple.buttons .active.button,.ui.purple.buttons .active.button:active{background-color:#9724be;color:#fff;text-shadow:none}.ui.basic.purple.button,.ui.basic.purple.buttons .button{box-shadow:inset 0 0 0 1px #a333c8!important;color:#a333c8!important}.ui.basic.purple.button:hover,.ui.basic.purple.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #9627ba!important;color:#9627ba!important}.ui.basic.purple.button:focus,.ui.basic.purple.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #8f1eb4!important;color:#9627ba!important}.ui.basic.purple.active.button,.ui.basic.purple.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #9724be!important;color:#82299f!important}.ui.basic.purple.button:active,.ui.basic.purple.buttons .button:active{box-shadow:inset 0 0 0 1px #82299f!important;color:#82299f!important}.ui.buttons:not(.vertical)>.basic.purple.button:not(:first-child){margin-left:-1px}.ui.inverted.purple.button,.ui.inverted.purple.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #dc73ff!important;color:#dc73ff}.ui.inverted.purple.button.active,.ui.inverted.purple.button:active,.ui.inverted.purple.button:focus,.ui.inverted.purple.button:hover,.ui.inverted.purple.buttons .button.active,.ui.inverted.purple.buttons .button:active,.ui.inverted.purple.buttons .button:focus,.ui.inverted.purple.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.purple.button:hover,.ui.inverted.purple.buttons .button:hover{background-color:#d65aff}.ui.inverted.purple.button:focus,.ui.inverted.purple.buttons .button:focus{background-color:#d24aff}.ui.inverted.purple.active.button,.ui.inverted.purple.buttons .active.button{background-color:#d65aff}.ui.inverted.purple.button:active,.ui.inverted.purple.buttons .button:active{background-color:#cf40ff}.ui.inverted.purple.basic.button,.ui.inverted.purple.basic.buttons .button,.ui.inverted.purple.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.purple.basic.button:hover,.ui.inverted.purple.basic.buttons .button:hover,.ui.inverted.purple.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #d65aff!important;color:#dc73ff!important}.ui.inverted.purple.basic.button:focus,.ui.inverted.purple.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #d24aff!important;color:#dc73ff!important}.ui.inverted.purple.basic.active.button,.ui.inverted.purple.basic.buttons .active.button,.ui.inverted.purple.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #d65aff!important;color:#dc73ff!important}.ui.inverted.purple.basic.button:active,.ui.inverted.purple.basic.buttons .button:active,.ui.inverted.purple.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #cf40ff!important;color:#dc73ff!important}.ui.red.button,.ui.red.buttons .button{background-color:#db2828;color:#fff;text-shadow:none;background-image:none}.ui.red.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.red.button:hover,.ui.red.buttons .button:hover{background-color:#d01919;color:#fff;text-shadow:none}.ui.red.button:focus,.ui.red.buttons .button:focus{background-color:#ca1010;color:#fff;text-shadow:none}.ui.red.button:active,.ui.red.buttons .button:active{background-color:#b21e1e;color:#fff;text-shadow:none}.ui.red.active.button,.ui.red.button .active.button:active,.ui.red.buttons .active.button,.ui.red.buttons .active.button:active{background-color:#d41515;color:#fff;text-shadow:none}.ui.basic.red.button,.ui.basic.red.buttons .button{box-shadow:inset 0 0 0 1px #db2828!important;color:#db2828!important}.ui.basic.red.button:hover,.ui.basic.red.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #d01919!important;color:#d01919!important}.ui.basic.red.button:focus,.ui.basic.red.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #ca1010!important;color:#d01919!important}.ui.basic.red.active.button,.ui.basic.red.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #d41515!important;color:#b21e1e!important}.ui.basic.red.button:active,.ui.basic.red.buttons .button:active{box-shadow:inset 0 0 0 1px #b21e1e!important;color:#b21e1e!important}.ui.buttons:not(.vertical)>.basic.red.button:not(:first-child){margin-left:-1px}.ui.inverted.red.button,.ui.inverted.red.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff695e!important;color:#ff695e}.ui.inverted.red.button.active,.ui.inverted.red.button:active,.ui.inverted.red.button:focus,.ui.inverted.red.button:hover,.ui.inverted.red.buttons .button.active,.ui.inverted.red.buttons .button:active,.ui.inverted.red.buttons .button:focus,.ui.inverted.red.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.red.button:hover,.ui.inverted.red.buttons .button:hover{background-color:#ff5144}.ui.inverted.red.button:focus,.ui.inverted.red.buttons .button:focus{background-color:#ff4335}.ui.inverted.red.active.button,.ui.inverted.red.buttons .active.button{background-color:#ff5144}.ui.inverted.red.button:active,.ui.inverted.red.buttons .button:active{background-color:#ff392b}.ui.inverted.red.basic.button,.ui.inverted.red.basic.buttons .button,.ui.inverted.red.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.red.basic.button:hover,.ui.inverted.red.basic.buttons .button:hover,.ui.inverted.red.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ff5144!important;color:#ff695e!important}.ui.inverted.red.basic.button:focus,.ui.inverted.red.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #ff4335!important;color:#ff695e!important}.ui.inverted.red.basic.active.button,.ui.inverted.red.basic.buttons .active.button,.ui.inverted.red.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff5144!important;color:#ff695e!important}.ui.inverted.red.basic.button:active,.ui.inverted.red.basic.buttons .button:active,.ui.inverted.red.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ff392b!important;color:#ff695e!important}.ui.teal.button,.ui.teal.buttons .button{background-color:#00b5ad;color:#fff;text-shadow:none;background-image:none}.ui.teal.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.teal.button:hover,.ui.teal.buttons .button:hover{background-color:#009c95;color:#fff;text-shadow:none}.ui.teal.button:focus,.ui.teal.buttons .button:focus{background-color:#008c86;color:#fff;text-shadow:none}.ui.teal.button:active,.ui.teal.buttons .button:active{background-color:#00827c;color:#fff;text-shadow:none}.ui.teal.active.button,.ui.teal.button .active.button:active,.ui.teal.buttons .active.button,.ui.teal.buttons .active.button:active{background-color:#009c95;color:#fff;text-shadow:none}.ui.basic.teal.button,.ui.basic.teal.buttons .button{box-shadow:inset 0 0 0 1px #00b5ad!important;color:#00b5ad!important}.ui.basic.teal.button:hover,.ui.basic.teal.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #009c95!important;color:#009c95!important}.ui.basic.teal.button:focus,.ui.basic.teal.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #008c86!important;color:#009c95!important}.ui.basic.teal.active.button,.ui.basic.teal.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #009c95!important;color:#00827c!important}.ui.basic.teal.button:active,.ui.basic.teal.buttons .button:active{box-shadow:inset 0 0 0 1px #00827c!important;color:#00827c!important}.ui.buttons:not(.vertical)>.basic.teal.button:not(:first-child){margin-left:-1px}.ui.inverted.teal.button,.ui.inverted.teal.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #6dffff!important;color:#6dffff}.ui.inverted.teal.button.active,.ui.inverted.teal.button:active,.ui.inverted.teal.button:focus,.ui.inverted.teal.button:hover,.ui.inverted.teal.buttons .button.active,.ui.inverted.teal.buttons .button:active,.ui.inverted.teal.buttons .button:focus,.ui.inverted.teal.buttons .button:hover{box-shadow:none!important;color:rgba(0,0,0,.6)}.ui.inverted.teal.button:hover,.ui.inverted.teal.buttons .button:hover{background-color:#54ffff}.ui.inverted.teal.button:focus,.ui.inverted.teal.buttons .button:focus{background-color:#4ff}.ui.inverted.teal.active.button,.ui.inverted.teal.buttons .active.button{background-color:#54ffff}.ui.inverted.teal.button:active,.ui.inverted.teal.buttons .button:active{background-color:#3affff}.ui.inverted.teal.basic.button,.ui.inverted.teal.basic.buttons .button,.ui.inverted.teal.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.teal.basic.button:hover,.ui.inverted.teal.basic.buttons .button:hover,.ui.inverted.teal.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #54ffff!important;color:#6dffff!important}.ui.inverted.teal.basic.button:focus,.ui.inverted.teal.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #4ff!important;color:#6dffff!important}.ui.inverted.teal.basic.active.button,.ui.inverted.teal.basic.buttons .active.button,.ui.inverted.teal.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #54ffff!important;color:#6dffff!important}.ui.inverted.teal.basic.button:active,.ui.inverted.teal.basic.buttons .button:active,.ui.inverted.teal.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #3affff!important;color:#6dffff!important}.ui.olive.button,.ui.olive.buttons .button{background-color:#b5cc18;color:#fff;text-shadow:none;background-image:none}.ui.olive.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.olive.button:hover,.ui.olive.buttons .button:hover{background-color:#a7bd0d;color:#fff;text-shadow:none}.ui.olive.button:focus,.ui.olive.buttons .button:focus{background-color:#a0b605;color:#fff;text-shadow:none}.ui.olive.button:active,.ui.olive.buttons .button:active{background-color:#8d9e13;color:#fff;text-shadow:none}.ui.olive.active.button,.ui.olive.button .active.button:active,.ui.olive.buttons .active.button,.ui.olive.buttons .active.button:active{background-color:#aac109;color:#fff;text-shadow:none}.ui.basic.olive.button,.ui.basic.olive.buttons .button{box-shadow:inset 0 0 0 1px #b5cc18!important;color:#b5cc18!important}.ui.basic.olive.button:hover,.ui.basic.olive.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #a7bd0d!important;color:#a7bd0d!important}.ui.basic.olive.button:focus,.ui.basic.olive.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #a0b605!important;color:#a7bd0d!important}.ui.basic.olive.active.button,.ui.basic.olive.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #aac109!important;color:#8d9e13!important}.ui.basic.olive.button:active,.ui.basic.olive.buttons .button:active{box-shadow:inset 0 0 0 1px #8d9e13!important;color:#8d9e13!important}.ui.buttons:not(.vertical)>.basic.olive.button:not(:first-child){margin-left:-1px}.ui.inverted.olive.button,.ui.inverted.olive.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d9e778!important;color:#d9e778}.ui.inverted.olive.button.active,.ui.inverted.olive.button:active,.ui.inverted.olive.button:focus,.ui.inverted.olive.button:hover,.ui.inverted.olive.buttons .button.active,.ui.inverted.olive.buttons .button:active,.ui.inverted.olive.buttons .button:focus,.ui.inverted.olive.buttons .button:hover{box-shadow:none!important;color:rgba(0,0,0,.6)}.ui.inverted.olive.button:hover,.ui.inverted.olive.buttons .button:hover{background-color:#d8ea5c}.ui.inverted.olive.button:focus,.ui.inverted.olive.buttons .button:focus{background-color:#daef47}.ui.inverted.olive.active.button,.ui.inverted.olive.buttons .active.button{background-color:#daed59}.ui.inverted.olive.button:active,.ui.inverted.olive.buttons .button:active{background-color:#cddf4d}.ui.inverted.olive.basic.button,.ui.inverted.olive.basic.buttons .button,.ui.inverted.olive.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.olive.basic.button:hover,.ui.inverted.olive.basic.buttons .button:hover,.ui.inverted.olive.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #d8ea5c!important;color:#d9e778!important}.ui.inverted.olive.basic.button:focus,.ui.inverted.olive.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #daef47!important;color:#d9e778!important}.ui.inverted.olive.basic.active.button,.ui.inverted.olive.basic.buttons .active.button,.ui.inverted.olive.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #daed59!important;color:#d9e778!important}.ui.inverted.olive.basic.button:active,.ui.inverted.olive.basic.buttons .button:active,.ui.inverted.olive.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #cddf4d!important;color:#d9e778!important}.ui.yellow.button,.ui.yellow.buttons .button{background-color:#fbbd08;color:#fff;text-shadow:none;background-image:none}.ui.yellow.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.yellow.button:hover,.ui.yellow.buttons .button:hover{background-color:#eaae00;color:#fff;text-shadow:none}.ui.yellow.button:focus,.ui.yellow.buttons .button:focus{background-color:#daa300;color:#fff;text-shadow:none}.ui.yellow.button:active,.ui.yellow.buttons .button:active{background-color:#cd9903;color:#fff;text-shadow:none}.ui.yellow.active.button,.ui.yellow.button .active.button:active,.ui.yellow.buttons .active.button,.ui.yellow.buttons .active.button:active{background-color:#eaae00;color:#fff;text-shadow:none}.ui.basic.yellow.button,.ui.basic.yellow.buttons .button{box-shadow:inset 0 0 0 1px #fbbd08!important;color:#fbbd08!important}.ui.basic.yellow.button:hover,.ui.basic.yellow.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #eaae00!important;color:#eaae00!important}.ui.basic.yellow.button:focus,.ui.basic.yellow.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #daa300!important;color:#eaae00!important}.ui.basic.yellow.active.button,.ui.basic.yellow.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #eaae00!important;color:#cd9903!important}.ui.basic.yellow.button:active,.ui.basic.yellow.buttons .button:active{box-shadow:inset 0 0 0 1px #cd9903!important;color:#cd9903!important}.ui.buttons:not(.vertical)>.basic.yellow.button:not(:first-child){margin-left:-1px}.ui.inverted.yellow.button,.ui.inverted.yellow.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ffe21f!important;color:#ffe21f}.ui.inverted.yellow.button.active,.ui.inverted.yellow.button:active,.ui.inverted.yellow.button:focus,.ui.inverted.yellow.button:hover,.ui.inverted.yellow.buttons .button.active,.ui.inverted.yellow.buttons .button:active,.ui.inverted.yellow.buttons .button:focus,.ui.inverted.yellow.buttons .button:hover{box-shadow:none!important;color:rgba(0,0,0,.6)}.ui.inverted.yellow.button:hover,.ui.inverted.yellow.buttons .button:hover{background-color:#ffdf05}.ui.inverted.yellow.button:focus,.ui.inverted.yellow.buttons .button:focus{background-color:#f5d500}.ui.inverted.yellow.active.button,.ui.inverted.yellow.buttons .active.button{background-color:#ffdf05}.ui.inverted.yellow.button:active,.ui.inverted.yellow.buttons .button:active{background-color:#ebcd00}.ui.inverted.yellow.basic.button,.ui.inverted.yellow.basic.buttons .button,.ui.inverted.yellow.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.yellow.basic.button:hover,.ui.inverted.yellow.basic.buttons .button:hover,.ui.inverted.yellow.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ffdf05!important;color:#ffe21f!important}.ui.inverted.yellow.basic.button:focus,.ui.inverted.yellow.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #f5d500!important;color:#ffe21f!important}.ui.inverted.yellow.basic.active.button,.ui.inverted.yellow.basic.buttons .active.button,.ui.inverted.yellow.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ffdf05!important;color:#ffe21f!important}.ui.inverted.yellow.basic.button:active,.ui.inverted.yellow.basic.buttons .button:active,.ui.inverted.yellow.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ebcd00!important;color:#ffe21f!important}.ui.primary.button,.ui.primary.buttons .button{background-color:#2c6a9e;color:#fff;text-shadow:none;background-image:none}.ui.primary.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.primary.button:hover,.ui.primary.buttons .button:hover{background-color:#215d8f;color:#fff;text-shadow:none}.ui.primary.button:focus,.ui.primary.buttons .button:focus{background-color:#1a5587;color:#fff;text-shadow:none}.ui.primary.button:active,.ui.primary.buttons .button:active{background-color:#214f76;color:#fff;text-shadow:none}.ui.primary.active.button,.ui.primary.button .active.button:active,.ui.primary.buttons .active.button,.ui.primary.buttons .active.button:active{background-color:#1f5d92;color:#fff;text-shadow:none}.ui.basic.primary.button,.ui.basic.primary.buttons .button{box-shadow:inset 0 0 0 1px #2c6a9e!important;color:#2c6a9e!important}.ui.basic.primary.button:hover,.ui.basic.primary.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #215d8f!important;color:#215d8f!important}.ui.basic.primary.button:focus,.ui.basic.primary.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #1a5587!important;color:#215d8f!important}.ui.basic.primary.active.button,.ui.basic.primary.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #1f5d92!important;color:#214f76!important}.ui.basic.primary.button:active,.ui.basic.primary.buttons .button:active{box-shadow:inset 0 0 0 1px #214f76!important;color:#214f76!important}.ui.inverted.primary.button,.ui.inverted.primary.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #5391c5!important;color:#5391c5}.ui.inverted.primary.button.active,.ui.inverted.primary.button:active,.ui.inverted.primary.button:focus,.ui.inverted.primary.button:hover,.ui.inverted.primary.buttons .button.active,.ui.inverted.primary.buttons .button:active,.ui.inverted.primary.buttons .button:focus,.ui.inverted.primary.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.primary.button:hover,.ui.inverted.primary.buttons .button:hover{background-color:#3a85c5}.ui.inverted.primary.button:focus,.ui.inverted.primary.buttons .button:focus{background-color:#307ebf}.ui.inverted.primary.active.button,.ui.inverted.primary.buttons .active.button{background-color:#3786c8}.ui.inverted.primary.button:active,.ui.inverted.primary.buttons .button:active{background-color:#3a77ab}.ui.inverted.primary.basic.button,.ui.inverted.primary.basic.buttons .button,.ui.inverted.primary.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.primary.basic.button:hover,.ui.inverted.primary.basic.buttons .button:hover,.ui.inverted.primary.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #3a85c5!important;color:#5391c5!important}.ui.inverted.primary.basic.button:focus,.ui.inverted.primary.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #307ebf!important;color:#5391c5!important}.ui.inverted.primary.basic.active.button,.ui.inverted.primary.basic.buttons .active.button,.ui.inverted.primary.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #3786c8!important;color:#5391c5!important}.ui.inverted.primary.basic.button:active,.ui.inverted.primary.basic.buttons .button:active,.ui.inverted.primary.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #3a77ab!important;color:#5391c5!important}.ui.secondary.button,.ui.secondary.buttons .button{background-color:#1b1c1d;color:#fff;text-shadow:none;background-image:none}.ui.secondary.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.secondary.button:hover,.ui.secondary.buttons .button:hover{background-color:#27292a;color:#fff;text-shadow:none}.ui.secondary.button:focus,.ui.secondary.buttons .button:focus{background-color:#2e3032;color:#fff;text-shadow:none}.ui.secondary.button:active,.ui.secondary.buttons .button:active{background-color:#343637;color:#fff;text-shadow:none}.ui.secondary.active.button,.ui.secondary.button .active.button:active,.ui.secondary.buttons .active.button,.ui.secondary.buttons .active.button:active{background-color:#27292a;color:#fff;text-shadow:none}.ui.basic.secondary.button,.ui.basic.secondary.buttons .button{box-shadow:inset 0 0 0 1px #1b1c1d!important;color:#1b1c1d!important}.ui.basic.secondary.button:hover,.ui.basic.secondary.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #27292a!important;color:#27292a!important}.ui.basic.secondary.button:focus,.ui.basic.secondary.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #2e3032!important;color:#27292a!important}.ui.basic.secondary.active.button,.ui.basic.secondary.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #27292a!important;color:#343637!important}.ui.basic.secondary.button:active,.ui.basic.secondary.buttons .button:active{box-shadow:inset 0 0 0 1px #343637!important;color:#343637!important}.ui.inverted.secondary.button,.ui.inverted.secondary.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #545454!important;color:#545454}.ui.inverted.secondary.button.active,.ui.inverted.secondary.button:active,.ui.inverted.secondary.button:focus,.ui.inverted.secondary.button:hover,.ui.inverted.secondary.buttons .button.active,.ui.inverted.secondary.buttons .button:active,.ui.inverted.secondary.buttons .button:focus,.ui.inverted.secondary.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.secondary.button:hover,.ui.inverted.secondary.buttons .button:hover{background-color:#616161}.ui.inverted.secondary.button:focus,.ui.inverted.secondary.buttons .button:focus{background-color:#686868}.ui.inverted.secondary.active.button,.ui.inverted.secondary.buttons .active.button{background-color:#616161}.ui.inverted.secondary.button:active,.ui.inverted.secondary.buttons .button:active{background-color:#6e6e6e}.ui.inverted.secondary.basic.button,.ui.inverted.secondary.basic.buttons .button,.ui.inverted.secondary.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.secondary.basic.button:hover,.ui.inverted.secondary.basic.buttons .button:hover,.ui.inverted.secondary.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #616161!important;color:#545454!important}.ui.inverted.secondary.basic.button:focus,.ui.inverted.secondary.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #686868!important;color:#545454!important}.ui.inverted.secondary.basic.active.button,.ui.inverted.secondary.basic.buttons .active.button,.ui.inverted.secondary.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #616161!important;color:#545454!important}.ui.inverted.secondary.basic.button:active,.ui.inverted.secondary.basic.buttons .button:active,.ui.inverted.secondary.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #6e6e6e!important;color:#545454!important}.ui.positive.button,.ui.positive.buttons .button{background-color:#21ba45;color:#fff;text-shadow:none;background-image:none}.ui.positive.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.positive.button:hover,.ui.positive.buttons .button:hover{background-color:#16ab39;color:#fff;text-shadow:none}.ui.positive.button:focus,.ui.positive.buttons .button:focus{background-color:#0ea432;color:#fff;text-shadow:none}.ui.positive.button:active,.ui.positive.buttons .button:active{background-color:#198f35;color:#fff;text-shadow:none}.ui.positive.active.button,.ui.positive.button .active.button:active,.ui.positive.buttons .active.button,.ui.positive.buttons .active.button:active{background-color:#13ae38;color:#fff;text-shadow:none}.ui.basic.positive.button,.ui.basic.positive.buttons .button{box-shadow:inset 0 0 0 1px #21ba45!important;color:#21ba45!important}.ui.basic.positive.button:hover,.ui.basic.positive.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #16ab39!important;color:#16ab39!important}.ui.basic.positive.button:focus,.ui.basic.positive.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #0ea432!important;color:#16ab39!important}.ui.basic.positive.active.button,.ui.basic.positive.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #13ae38!important;color:#198f35!important}.ui.basic.positive.button:active,.ui.basic.positive.buttons .button:active{box-shadow:inset 0 0 0 1px #198f35!important;color:#198f35!important}.ui.negative.button,.ui.negative.buttons .button{background-color:#db2828;color:#fff;text-shadow:none;background-image:none}.ui.negative.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.negative.button:hover,.ui.negative.buttons .button:hover{background-color:#d01919;color:#fff;text-shadow:none}.ui.negative.button:focus,.ui.negative.buttons .button:focus{background-color:#ca1010;color:#fff;text-shadow:none}.ui.negative.button:active,.ui.negative.buttons .button:active{background-color:#b21e1e;color:#fff;text-shadow:none}.ui.negative.active.button,.ui.negative.button .active.button:active,.ui.negative.buttons .active.button,.ui.negative.buttons .active.button:active{background-color:#d41515;color:#fff;text-shadow:none}.ui.basic.negative.button,.ui.basic.negative.buttons .button{box-shadow:inset 0 0 0 1px #db2828!important;color:#db2828!important}.ui.basic.negative.button:hover,.ui.basic.negative.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #d01919!important;color:#d01919!important}.ui.basic.negative.button:focus,.ui.basic.negative.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #ca1010!important;color:#d01919!important}.ui.basic.negative.active.button,.ui.basic.negative.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #d41515!important;color:#b21e1e!important}.ui.basic.negative.button:active,.ui.basic.negative.buttons .button:active{box-shadow:inset 0 0 0 1px #b21e1e!important;color:#b21e1e!important}.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child){margin-left:-1px}.ui.buttons{display:inline-flex;flex-direction:row;font-size:0;vertical-align:baseline;margin:0 .25em 0 0}.ui.buttons:not(.basic):not(.inverted){box-shadow:none}.ui.buttons:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.buttons .button{flex:1 0 auto;border-radius:0;margin:0}.ui.buttons:not(.basic):not(.inverted)>.button,.ui.buttons>.ui.button:not(.basic):not(.inverted){box-shadow:inset 0 0 0 1px transparent,inset 0 0 0 0 rgba(34,36,38,.15)}.ui.buttons .button:first-child{border-left:none;margin-left:0;border-top-left-radius:2.999px;border-top-left-radius:.21428571rem;border-bottom-left-radius:2.999px;border-bottom-left-radius:.21428571rem}.ui.buttons .button:last-child{border-top-right-radius:2.999px;border-top-right-radius:.21428571rem;border-bottom-right-radius:2.999px;border-bottom-right-radius:.21428571rem}.ui.vertical.buttons{display:inline-flex;flex-direction:column}.ui.vertical.buttons .button{display:block;float:none;width:100%;margin:0;box-shadow:none;border-radius:0}.ui.vertical.buttons .button:first-child{border-top-left-radius:2.999px;border-top-left-radius:.21428571rem;border-top-right-radius:2.999px;border-top-right-radius:.21428571rem}.ui.vertical.buttons .button:last-child{margin-bottom:0;border-bottom-left-radius:2.999px;border-bottom-left-radius:.21428571rem;border-bottom-right-radius:2.999px;border-bottom-right-radius:.21428571rem}.ui.vertical.buttons .button:only-child{border-radius:.21428571rem}.ui.basic.blue.active.button,.ui.basic.blue.buttons .active.button{background:rgba(44,106,158,.1)!important;box-shadow:inset 0 0 0 1px #1f5d92!important;color:#214f76!important}
/*!
 * # Semantic UI - Container
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.container{display:block;max-width:100%!important}@media only screen and (max-width:767px){.ui.container{margin-left:.5em!important;margin-right:.5em!important}.ui.container,.ui.grid.container,.ui.relaxed.grid.container,.ui.very.relaxed.grid.container{width:auto!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.container{width:calc(100% - .5rem);margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(100% - .5rem)!important}.ui.relaxed.grid.container{width:calc(100% + 2.5rem)!important}.ui.very.relaxed.grid.container{width:calc(100% + 4.5rem)!important}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.container{width:calc(100% - 1rem - 17px);margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(100% - 1rem)!important}.ui.relaxed.grid.container{width:calc(100% + 2rem - 17px)!important}.ui.very.relaxed.grid.container{width:calc(100% + 4rem - 17px)!important}}@media only screen and (min-width:1200px){.ui.container{width:calc(100% - 1rem - 17px);margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(100% - 1rem)!important}.ui.relaxed.grid.container{width:calc(100% + 2rem - 17px)!important}.ui.very.relaxed.grid.container{width:calc(100% + 4rem - 17px)!important}}.ui.text.container{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;max-width:700px!important;line-height:1.5;font-size:15.999px;font-size:1.14285714rem}.ui.fluid.container{width:100%}.ui[class*="left aligned"].container{text-align:left}.ui[class*="center aligned"].container{text-align:center}.ui[class*="right aligned"].container{text-align:right}.ui.justified.container{text-align:justify;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}
/*!
 * # Semantic UI - Divider
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.divider{margin:1rem 0;line-height:1;height:0;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:rgba(0,0,0,.85);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui.divider:not(.vertical):not(.horizontal){border-top:1px solid rgba(34,36,38,.15);border-bottom:1px solid hsla(0,0%,100%,.1)}.ui.grid>.column+.divider,.ui.grid>.row>.column+.divider{left:auto}.ui.horizontal.divider{display:table;white-space:nowrap;height:auto;margin:"";line-height:1;text-align:center}.ui.horizontal.divider:after,.ui.horizontal.divider:before{content:"";display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat}.ui.horizontal.divider:before{background-position:right 1em top 50%}.ui.horizontal.divider:after{background-position:left 1em top 50%}.ui.vertical.divider{position:absolute;z-index:2;top:50%;left:50%;margin:0;padding:0;width:auto;height:50%;line-height:0;text-align:center;transform:translateX(-50%)}.ui.vertical.divider:after,.ui.vertical.divider:before{position:absolute;left:50%;content:"";z-index:3;border-left:1px solid rgba(34,36,38,.15);border-right:1px solid hsla(0,0%,100%,.1);width:0;height:calc(100% - 1rem)}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider,.ui.stackable.grid .ui.vertical.divider{display:table;white-space:nowrap;height:auto;margin:"";overflow:hidden;line-height:1;text-align:center;position:static;top:0;left:0;transform:none}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{position:static;left:0;border-left:none;border-right:none;content:"";display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat}.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:before{background-position:right 1em top 50%}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:after{background-position:left 1em top 50%}}.ui.divider>.icon{margin:0;font-size:14px;font-size:1rem;height:1em;vertical-align:middle}.ui.hidden.divider{border-color:transparent!important}.ui.hidden.divider:after,.ui.hidden.divider:before{display:none}.ui.divider.inverted,.ui.horizontal.inverted.divider,.ui.vertical.inverted.divider{color:#fff}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-color:rgba(34,36,38,.15) hsla(0,0%,100%,.15) hsla(0,0%,100%,.15) rgba(34,36,38,.15)!important}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}.ui.divider{font-size:14px;font-size:1rem}.ui.horizontal.divider:after,.ui.horizontal.divider:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC")}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC")}}
/*!
 * # Semantic UI - Flag
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */i.flag:not(.icon){line-height:11px;vertical-align:baseline;margin:0 .5em 0 0;text-decoration:inherit;speak:none;font-smoothing:antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden}i.flag:not(.icon),i.flag:not(.icon):before{display:inline-block;width:16px;height:11px}i.flag:not(.icon):before{content:"";background:url(/assets/images/flags.png) no-repeat -108px -1976px}i.flag.ad:before,i.flag.andorra:before{background-position:0 0}i.flag.ae:before,i.flag.uae:before,i.flag.united.arab.emirates:before{background-position:0 -26px}i.flag.af:before,i.flag.afghanistan:before{background-position:0 -52px}i.flag.ag:before,i.flag.antigua:before{background-position:0 -78px}i.flag.ai:before,i.flag.anguilla:before{background-position:0 -104px}i.flag.al:before,i.flag.albania:before{background-position:0 -130px}i.flag.am:before,i.flag.armenia:before{background-position:0 -156px}i.flag.an:before,i.flag.netherlands.antilles:before{background-position:0 -182px}i.flag.angola:before,i.flag.ao:before{background-position:0 -208px}i.flag.ar:before,i.flag.argentina:before{background-position:0 -234px}i.flag.american.samoa:before,i.flag.as:before{background-position:0 -260px}i.flag.at:before,i.flag.austria:before{background-position:0 -286px}i.flag.au:before,i.flag.australia:before{background-position:0 -312px}i.flag.aruba:before,i.flag.aw:before{background-position:0 -338px}i.flag.aland.islands:before,i.flag.ax:before{background-position:0 -364px}i.flag.az:before,i.flag.azerbaijan:before{background-position:0 -390px}i.flag.ba:before,i.flag.bosnia:before{background-position:0 -416px}i.flag.barbados:before,i.flag.bb:before{background-position:0 -442px}i.flag.bangladesh:before,i.flag.bd:before{background-position:0 -468px}i.flag.be:before,i.flag.belgium:before{background-position:0 -494px}i.flag.bf:before,i.flag.burkina.faso:before{background-position:0 -520px}i.flag.bg:before,i.flag.bulgaria:before{background-position:0 -546px}i.flag.bahrain:before,i.flag.bh:before{background-position:0 -572px}i.flag.bi:before,i.flag.burundi:before{background-position:0 -598px}i.flag.benin:before,i.flag.bj:before{background-position:0 -624px}i.flag.bermuda:before,i.flag.bm:before{background-position:0 -650px}i.flag.bn:before,i.flag.brunei:before{background-position:0 -676px}i.flag.bo:before,i.flag.bolivia:before{background-position:0 -702px}i.flag.br:before,i.flag.brazil:before{background-position:0 -728px}i.flag.bahamas:before,i.flag.bs:before{background-position:0 -754px}i.flag.bhutan:before,i.flag.bt:before{background-position:0 -780px}i.flag.bouvet.island:before,i.flag.bv:before{background-position:0 -806px}i.flag.botswana:before,i.flag.bw:before{background-position:0 -832px}i.flag.belarus:before,i.flag.by:before{background-position:0 -858px}i.flag.belize:before,i.flag.bz:before{background-position:0 -884px}i.flag.ca:before,i.flag.canada:before{background-position:0 -910px}i.flag.cc:before,i.flag.cocos.islands:before{background-position:0 -962px}i.flag.cd:before,i.flag.congo:before{background-position:0 -988px}i.flag.central.african.republic:before,i.flag.cf:before{background-position:0 -1014px}i.flag.cg:before,i.flag.congo.brazzaville:before{background-position:0 -1040px}i.flag.ch:before,i.flag.switzerland:before{background-position:0 -1066px}i.flag.ci:before,i.flag.cote.divoire:before{background-position:0 -1092px}i.flag.ck:before,i.flag.cook.islands:before{background-position:0 -1118px}i.flag.chile:before,i.flag.cl:before{background-position:0 -1144px}i.flag.cameroon:before,i.flag.cm:before{background-position:0 -1170px}i.flag.china:before,i.flag.cn:before{background-position:0 -1196px}i.flag.co:before,i.flag.colombia:before{background-position:0 -1222px}i.flag.costa.rica:before,i.flag.cr:before{background-position:0 -1248px}i.flag.cs:before,i.flag.serbia:before{background-position:0 -1274px}i.flag.cu:before,i.flag.cuba:before{background-position:0 -1300px}i.flag.cape.verde:before,i.flag.cv:before{background-position:0 -1326px}i.flag.christmas.island:before,i.flag.cx:before{background-position:0 -1352px}i.flag.cy:before,i.flag.cyprus:before{background-position:0 -1378px}i.flag.cz:before,i.flag.czech.republic:before{background-position:0 -1404px}i.flag.de:before,i.flag.germany:before{background-position:0 -1430px}i.flag.dj:before,i.flag.djibouti:before{background-position:0 -1456px}i.flag.denmark:before,i.flag.dk:before{background-position:0 -1482px}i.flag.dm:before,i.flag.dominica:before{background-position:0 -1508px}i.flag.do:before,i.flag.dominican.republic:before{background-position:0 -1534px}i.flag.algeria:before,i.flag.dz:before{background-position:0 -1560px}i.flag.ec:before,i.flag.ecuador:before{background-position:0 -1586px}i.flag.ee:before,i.flag.estonia:before{background-position:0 -1612px}i.flag.eg:before,i.flag.egypt:before{background-position:0 -1638px}i.flag.eh:before,i.flag.western.sahara:before{background-position:0 -1664px}i.flag.england:before,i.flag.gb.eng:before{background-position:0 -1690px}i.flag.er:before,i.flag.eritrea:before{background-position:0 -1716px}i.flag.es:before,i.flag.spain:before{background-position:0 -1742px}i.flag.et:before,i.flag.ethiopia:before{background-position:0 -1768px}i.flag.eu:before,i.flag.european.union:before{background-position:0 -1794px}i.flag.fi:before,i.flag.finland:before{background-position:0 -1846px}i.flag.fiji:before,i.flag.fj:before{background-position:0 -1872px}i.flag.falkland.islands:before,i.flag.fk:before{background-position:0 -1898px}i.flag.fm:before,i.flag.micronesia:before{background-position:0 -1924px}i.flag.faroe.islands:before,i.flag.fo:before{background-position:0 -1950px}i.flag.fr:before,i.flag.france:before{background-position:0 -1976px}i.flag.ga:before,i.flag.gabon:before{background-position:-36px 0}i.flag.gb:before,i.flag.uk:before,i.flag.united.kingdom:before{background-position:-36px -26px}i.flag.gd:before,i.flag.grenada:before{background-position:-36px -52px}i.flag.ge:before,i.flag.georgia:before{background-position:-36px -78px}i.flag.french.guiana:before,i.flag.gf:before{background-position:-36px -104px}i.flag.gh:before,i.flag.ghana:before{background-position:-36px -130px}i.flag.gi:before,i.flag.gibraltar:before{background-position:-36px -156px}i.flag.gl:before,i.flag.greenland:before{background-position:-36px -182px}i.flag.gambia:before,i.flag.gm:before{background-position:-36px -208px}i.flag.gn:before,i.flag.guinea:before{background-position:-36px -234px}i.flag.gp:before,i.flag.guadeloupe:before{background-position:-36px -260px}i.flag.equatorial.guinea:before,i.flag.gq:before{background-position:-36px -286px}i.flag.gr:before,i.flag.greece:before{background-position:-36px -312px}i.flag.gs:before,i.flag.sandwich.islands:before{background-position:-36px -338px}i.flag.gt:before,i.flag.guatemala:before{background-position:-36px -364px}i.flag.gu:before,i.flag.guam:before{background-position:-36px -390px}i.flag.guinea-bissau:before,i.flag.gw:before{background-position:-36px -416px}i.flag.guyana:before,i.flag.gy:before{background-position:-36px -442px}i.flag.hk:before,i.flag.hong.kong:before{background-position:-36px -468px}i.flag.heard.island:before,i.flag.hm:before{background-position:-36px -494px}i.flag.hn:before,i.flag.honduras:before{background-position:-36px -520px}i.flag.croatia:before,i.flag.hr:before{background-position:-36px -546px}i.flag.haiti:before,i.flag.ht:before{background-position:-36px -572px}i.flag.hu:before,i.flag.hungary:before{background-position:-36px -598px}i.flag.id:before,i.flag.indonesia:before{background-position:-36px -624px}i.flag.ie:before,i.flag.ireland:before{background-position:-36px -650px}i.flag.il:before,i.flag.israel:before{background-position:-36px -676px}i.flag.in:before,i.flag.india:before{background-position:-36px -702px}i.flag.indian.ocean.territory:before,i.flag.io:before{background-position:-36px -728px}i.flag.iq:before,i.flag.iraq:before{background-position:-36px -754px}i.flag.ir:before,i.flag.iran:before{background-position:-36px -780px}i.flag.iceland:before,i.flag.is:before{background-position:-36px -806px}i.flag.it:before,i.flag.italy:before{background-position:-36px -832px}i.flag.jamaica:before,i.flag.jm:before{background-position:-36px -858px}i.flag.jo:before,i.flag.jordan:before{background-position:-36px -884px}i.flag.japan:before,i.flag.jp:before{background-position:-36px -910px}i.flag.ke:before,i.flag.kenya:before{background-position:-36px -936px}i.flag.kg:before,i.flag.kyrgyzstan:before{background-position:-36px -962px}i.flag.cambodia:before,i.flag.kh:before{background-position:-36px -988px}i.flag.ki:before,i.flag.kiribati:before{background-position:-36px -1014px}i.flag.comoros:before,i.flag.km:before{background-position:-36px -1040px}i.flag.kn:before,i.flag.saint.kitts.and.nevis:before{background-position:-36px -1066px}i.flag.kp:before,i.flag.north.korea:before{background-position:-36px -1092px}i.flag.kr:before,i.flag.south.korea:before{background-position:-36px -1118px}i.flag.kuwait:before,i.flag.kw:before{background-position:-36px -1144px}i.flag.cayman.islands:before,i.flag.ky:before{background-position:-36px -1170px}i.flag.kazakhstan:before,i.flag.kz:before{background-position:-36px -1196px}i.flag.la:before,i.flag.laos:before{background-position:-36px -1222px}i.flag.lb:before,i.flag.lebanon:before{background-position:-36px -1248px}i.flag.lc:before,i.flag.saint.lucia:before{background-position:-36px -1274px}i.flag.li:before,i.flag.liechtenstein:before{background-position:-36px -1300px}i.flag.lk:before,i.flag.sri.lanka:before{background-position:-36px -1326px}i.flag.liberia:before,i.flag.lr:before{background-position:-36px -1352px}i.flag.lesotho:before,i.flag.ls:before{background-position:-36px -1378px}i.flag.lithuania:before,i.flag.lt:before{background-position:-36px -1404px}i.flag.lu:before,i.flag.luxembourg:before{background-position:-36px -1430px}i.flag.latvia:before,i.flag.lv:before{background-position:-36px -1456px}i.flag.libya:before,i.flag.ly:before{background-position:-36px -1482px}i.flag.ma:before,i.flag.morocco:before{background-position:-36px -1508px}i.flag.mc:before,i.flag.monaco:before{background-position:-36px -1534px}i.flag.md:before,i.flag.moldova:before{background-position:-36px -1560px}i.flag.me:before,i.flag.montenegro:before{background-position:-36px -1586px}i.flag.madagascar:before,i.flag.mg:before{background-position:-36px -1613px}i.flag.marshall.islands:before,i.flag.mh:before{background-position:-36px -1639px}i.flag.macedonia:before,i.flag.mk:before{background-position:-36px -1665px}i.flag.mali:before,i.flag.ml:before{background-position:-36px -1691px}i.flag.burma:before,i.flag.mm:before,i.flag.myanmar:before{background-position:-73px -1821px}i.flag.mn:before,i.flag.mongolia:before{background-position:-36px -1743px}i.flag.macau:before,i.flag.mo:before{background-position:-36px -1769px}i.flag.mp:before,i.flag.northern.mariana.islands:before{background-position:-36px -1795px}i.flag.martinique:before,i.flag.mq:before{background-position:-36px -1821px}i.flag.mauritania:before,i.flag.mr:before{background-position:-36px -1847px}i.flag.montserrat:before,i.flag.ms:before{background-position:-36px -1873px}i.flag.malta:before,i.flag.mt:before{background-position:-36px -1899px}i.flag.mauritius:before,i.flag.mu:before{background-position:-36px -1925px}i.flag.maldives:before,i.flag.mv:before{background-position:-36px -1951px}i.flag.malawi:before,i.flag.mw:before{background-position:-36px -1977px}i.flag.mexico:before,i.flag.mx:before{background-position:-72px 0}i.flag.malaysia:before,i.flag.my:before{background-position:-72px -26px}i.flag.mozambique:before,i.flag.mz:before{background-position:-72px -52px}i.flag.na:before,i.flag.namibia:before{background-position:-72px -78px}i.flag.nc:before,i.flag.new.caledonia:before{background-position:-72px -104px}i.flag.ne:before,i.flag.niger:before{background-position:-72px -130px}i.flag.nf:before,i.flag.norfolk.island:before{background-position:-72px -156px}i.flag.ng:before,i.flag.nigeria:before{background-position:-72px -182px}i.flag.ni:before,i.flag.nicaragua:before{background-position:-72px -208px}i.flag.netherlands:before,i.flag.nl:before{background-position:-72px -234px}i.flag.no:before,i.flag.norway:before{background-position:-72px -260px}i.flag.nepal:before,i.flag.np:before{background-position:-72px -286px}i.flag.nauru:before,i.flag.nr:before{background-position:-72px -312px}i.flag.niue:before,i.flag.nu:before{background-position:-72px -338px}i.flag.new.zealand:before,i.flag.nz:before{background-position:-72px -364px}i.flag.om:before,i.flag.oman:before{background-position:-72px -390px}i.flag.pa:before,i.flag.panama:before{background-position:-72px -416px}i.flag.pe:before,i.flag.peru:before{background-position:-72px -442px}i.flag.french.polynesia:before,i.flag.pf:before{background-position:-72px -468px}i.flag.new.guinea:before,i.flag.pg:before{background-position:-72px -494px}i.flag.ph:before,i.flag.philippines:before{background-position:-72px -520px}i.flag.pakistan:before,i.flag.pk:before{background-position:-72px -546px}i.flag.pl:before,i.flag.poland:before{background-position:-72px -572px}i.flag.pm:before,i.flag.saint.pierre:before{background-position:-72px -598px}i.flag.pitcairn.islands:before,i.flag.pn:before{background-position:-72px -624px}i.flag.pr:before,i.flag.puerto.rico:before{background-position:-72px -650px}i.flag.palestine:before,i.flag.ps:before{background-position:-72px -676px}i.flag.portugal:before,i.flag.pt:before{background-position:-72px -702px}i.flag.palau:before,i.flag.pw:before{background-position:-72px -728px}i.flag.paraguay:before,i.flag.py:before{background-position:-72px -754px}i.flag.qa:before,i.flag.qatar:before{background-position:-72px -780px}i.flag.re:before,i.flag.reunion:before{background-position:-72px -806px}i.flag.ro:before,i.flag.romania:before{background-position:-72px -832px}i.flag.rs:before,i.flag.serbia:before{background-position:-72px -858px}i.flag.ru:before,i.flag.russia:before{background-position:-72px -884px}i.flag.rw:before,i.flag.rwanda:before{background-position:-72px -910px}i.flag.sa:before,i.flag.saudi.arabia:before{background-position:-72px -936px}i.flag.sb:before,i.flag.solomon.islands:before{background-position:-72px -962px}i.flag.sc:before,i.flag.seychelles:before{background-position:-72px -988px}i.flag.gb.sct:before,i.flag.scotland:before{background-position:-72px -1014px}i.flag.sd:before,i.flag.sudan:before{background-position:-72px -1040px}i.flag.se:before,i.flag.sweden:before{background-position:-72px -1066px}i.flag.sg:before,i.flag.singapore:before{background-position:-72px -1092px}i.flag.saint.helena:before,i.flag.sh:before{background-position:-72px -1118px}i.flag.si:before,i.flag.slovenia:before{background-position:-72px -1144px}i.flag.jan.mayen:before,i.flag.sj:before,i.flag.svalbard:before{background-position:-72px -1170px}i.flag.sk:before,i.flag.slovakia:before{background-position:-72px -1196px}i.flag.sierra.leone:before,i.flag.sl:before{background-position:-72px -1222px}i.flag.san.marino:before,i.flag.sm:before{background-position:-72px -1248px}i.flag.senegal:before,i.flag.sn:before{background-position:-72px -1274px}i.flag.so:before,i.flag.somalia:before{background-position:-72px -1300px}i.flag.sr:before,i.flag.suriname:before{background-position:-72px -1326px}i.flag.sao.tome:before,i.flag.st:before{background-position:-72px -1352px}i.flag.el.salvador:before,i.flag.sv:before{background-position:-72px -1378px}i.flag.sy:before,i.flag.syria:before{background-position:-72px -1404px}i.flag.swaziland:before,i.flag.sz:before{background-position:-72px -1430px}i.flag.caicos.islands:before,i.flag.tc:before{background-position:-72px -1456px}i.flag.chad:before,i.flag.td:before{background-position:-72px -1482px}i.flag.french.territories:before,i.flag.tf:before{background-position:-72px -1508px}i.flag.tg:before,i.flag.togo:before{background-position:-72px -1534px}i.flag.th:before,i.flag.thailand:before{background-position:-72px -1560px}i.flag.tajikistan:before,i.flag.tj:before{background-position:-72px -1586px}i.flag.tk:before,i.flag.tokelau:before{background-position:-72px -1612px}i.flag.timorleste:before,i.flag.tl:before{background-position:-72px -1638px}i.flag.tm:before,i.flag.turkmenistan:before{background-position:-72px -1664px}i.flag.tn:before,i.flag.tunisia:before{background-position:-72px -1690px}i.flag.to:before,i.flag.tonga:before{background-position:-72px -1716px}i.flag.tr:before,i.flag.turkey:before{background-position:-72px -1742px}i.flag.trinidad:before,i.flag.tt:before{background-position:-72px -1768px}i.flag.tuvalu:before,i.flag.tv:before{background-position:-72px -1794px}i.flag.taiwan:before,i.flag.tw:before{background-position:-72px -1820px}i.flag.tanzania:before,i.flag.tz:before{background-position:-72px -1846px}i.flag.ua:before,i.flag.ukraine:before{background-position:-72px -1872px}i.flag.ug:before,i.flag.uganda:before{background-position:-72px -1898px}i.flag.um:before,i.flag.us.minor.islands:before{background-position:-72px -1924px}i.flag.america:before,i.flag.united.states:before,i.flag.us:before{background-position:-72px -1950px}i.flag.uruguay:before,i.flag.uy:before{background-position:-72px -1976px}i.flag.uz:before,i.flag.uzbekistan:before{background-position:-108px 0}i.flag.va:before,i.flag.vatican.city:before{background-position:-108px -26px}i.flag.saint.vincent:before,i.flag.vc:before{background-position:-108px -52px}i.flag.ve:before,i.flag.venezuela:before{background-position:-108px -78px}i.flag.british.virgin.islands:before,i.flag.vg:before{background-position:-108px -104px}i.flag.us.virgin.islands:before,i.flag.vi:before{background-position:-108px -130px}i.flag.vietnam:before,i.flag.vn:before{background-position:-108px -156px}i.flag.vanuatu:before,i.flag.vu:before{background-position:-108px -182px}i.flag.gb.wls:before,i.flag.wales:before{background-position:-108px -208px}i.flag.wallis.and.futuna:before,i.flag.wf:before{background-position:-108px -234px}i.flag.samoa:before,i.flag.ws:before{background-position:-108px -260px}i.flag.ye:before,i.flag.yemen:before{background-position:-108px -286px}i.flag.mayotte:before,i.flag.yt:before{background-position:-108px -312px}i.flag.south.africa:before,i.flag.za:before{background-position:-108px -338px}i.flag.zambia:before,i.flag.zm:before{background-position:-108px -364px}i.flag.zimbabwe:before,i.flag.zw:before{background-position:-108px -390px}
/*!
 * # Semantic UI - Header
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.header{border:none;margin:calc(2rem - .14286em) 0 1rem;padding:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:400;line-height:1.28571429em;text-transform:none;color:rgba(0,0,0,.87)}.ui.header:first-child{margin-top:-.14285714em}.ui.header:last-child{margin-bottom:0}.ui.header .sub.header{display:block;font-weight:400;padding:0;margin:0;line-height:1.2em;color:rgba(0,0,0,.6)}.ui.header>.icon{display:table-cell;opacity:1;font-size:1.5em;padding-top:0;vertical-align:middle}.ui.header .icon:only-child{display:inline-block;padding:0;margin-right:.75rem}.ui.header>.image:not(.icon),.ui.header>img{display:inline-block;margin-top:.14285714em;width:2.5em;height:auto;vertical-align:middle}.ui.header>.image:not(.icon):only-child,.ui.header>img:only-child{margin-right:.75rem}.ui.header .content{display:inline-block;vertical-align:top}.ui.header>.icon+.content,.ui.header>.image+.content,.ui.header>img+.content{padding-left:.75rem;vertical-align:middle}.ui.header>.icon+.content{display:table-cell}.ui.header .ui.label{font-size:"";margin-left:.5rem;vertical-align:middle}.ui.header+p{margin-top:0}h1.ui.header{font-size:28px;font-size:2rem}h2.ui.header{font-size:23.999px;font-size:1.71428571rem}h3.ui.header{font-size:18px;font-size:1.28571429rem}h4.ui.header{font-size:14.999px;font-size:1.07142857rem}h5.ui.header{font-size:14px;font-size:1rem}h1.ui.header .sub.header,h2.ui.header .sub.header{font-size:15.999px;font-size:1.14285714rem}h3.ui.header .sub.header,h4.ui.header .sub.header{font-size:14px;font-size:1rem}h5.ui.header .sub.header{font-size:13px;font-size:.92857143rem}.ui.huge.header{min-height:1em;font-size:2em}.ui.large.header{font-size:1.71428571em}.ui.medium.header{font-size:1.28571429em}.ui.small.header{font-size:1.07142857em}.ui.tiny.header{font-size:1em}.ui.huge.header .sub.header,.ui.large.header .sub.header{font-size:15.999px;font-size:1.14285714rem}.ui.header .sub.header,.ui.small.header .sub.header{font-size:14px;font-size:1rem}.ui.tiny.header .sub.header{font-size:13px;font-size:.92857143rem}.ui.sub.header{padding:0;margin-bottom:.14285714rem;font-weight:700;text-transform:uppercase;color:""}.ui.small.sub.header{font-size:.78571429em}.ui.sub.header{font-size:.85714286em}.ui.large.sub.header{font-size:.92857143em}.ui.huge.sub.header{font-size:1em}.ui.icon.header{display:inline-block;text-align:center;margin:2rem 0 1rem}.ui.icon.header:after{content:"";display:block;height:0;clear:both;visibility:hidden}.ui.icon.header:first-child{margin-top:0}.ui.icon.header .icon{float:none;width:auto;height:auto;line-height:1;font-size:3em;margin:0 auto .5rem;opacity:1}.ui.icon.header .content,.ui.icon.header .icon{display:block;padding:0}.ui.icon.header .circular.icon,.ui.icon.header .square.icon{font-size:2em}.ui.block.icon.header .icon{margin-bottom:0}.ui.icon.header.aligned{margin-left:auto;margin-right:auto;display:block}.ui.disabled.header{opacity:.45}.ui.inverted.header{color:#fff}.ui.inverted.header .sub.header{color:hsla(0,0%,100%,.8)}.ui.inverted.attached.header{border-color:transparent}.ui.inverted.attached.header,.ui.inverted.block.header{background:#545454 linear-gradient(transparent,rgba(0,0,0,.05));box-shadow:none}.ui.inverted.block.header{border-bottom:none}.ui.red.header{color:#db2828!important}a.ui.red.header:hover{color:#d01919!important}.ui.red.dividing.header{border-bottom:2px solid #db2828}.ui.inverted.red.header{color:#ff695e!important}a.ui.inverted.red.header:hover{color:#ff5144!important}.ui.orange.header{color:#f2711c!important}a.ui.orange.header:hover{color:#f26202!important}.ui.orange.dividing.header{border-bottom:2px solid #f2711c}.ui.inverted.orange.header{color:#ff851b!important}a.ui.inverted.orange.header:hover{color:#ff7701!important}.ui.olive.header{color:#b5cc18!important}a.ui.olive.header:hover{color:#a7bd0d!important}.ui.olive.dividing.header{border-bottom:2px solid #b5cc18}.ui.inverted.olive.header{color:#d9e778!important}a.ui.inverted.olive.header:hover{color:#d8ea5c!important}.ui.yellow.header{color:#fbbd08!important}a.ui.yellow.header:hover{color:#eaae00!important}.ui.yellow.dividing.header{border-bottom:2px solid #fbbd08}.ui.inverted.yellow.header{color:#ffe21f!important}a.ui.inverted.yellow.header:hover{color:#ffdf05!important}.ui.green.header{color:#21ba45!important}a.ui.green.header:hover{color:#16ab39!important}.ui.green.dividing.header{border-bottom:2px solid #21ba45}.ui.inverted.green.header{color:#2ecc40!important}a.ui.inverted.green.header:hover{color:#22be34!important}.ui.teal.header{color:#00b5ad!important}a.ui.teal.header:hover{color:#009c95!important}.ui.teal.dividing.header{border-bottom:2px solid #00b5ad}.ui.inverted.teal.header{color:#6dffff!important}a.ui.inverted.teal.header:hover{color:#54ffff!important}.ui.blue.header{color:#2c6a9e!important}a.ui.blue.header:hover{color:#215d8f!important}.ui.blue.dividing.header{border-bottom:2px solid #2c6a9e}.ui.inverted.blue.header{color:#5391c5!important}a.ui.inverted.blue.header:hover{color:#3a85c5!important}.ui.violet.header{color:#6435c9!important}a.ui.violet.header:hover{color:#5829bb!important}.ui.violet.dividing.header{border-bottom:2px solid #6435c9}.ui.inverted.violet.header{color:#a291fb!important}a.ui.inverted.violet.header:hover{color:#8a73ff!important}.ui.purple.header{color:#a333c8!important}a.ui.purple.header:hover{color:#9627ba!important}.ui.purple.dividing.header{border-bottom:2px solid #a333c8}.ui.inverted.purple.header{color:#dc73ff!important}a.ui.inverted.purple.header:hover{color:#d65aff!important}.ui.pink.header{color:#e03997!important}a.ui.pink.header:hover{color:#e61a8d!important}.ui.pink.dividing.header{border-bottom:2px solid #e03997}.ui.inverted.pink.header{color:#ff8edf!important}a.ui.inverted.pink.header:hover{color:#ff74d8!important}.ui.brown.header{color:#a5673f!important}a.ui.brown.header:hover{color:#975b33!important}.ui.brown.dividing.header{border-bottom:2px solid #a5673f}.ui.inverted.brown.header{color:#d67c1c!important}a.ui.inverted.brown.header:hover{color:#c86f11!important}.ui.grey.header{color:#767676!important}a.ui.grey.header:hover{color:#838383!important}.ui.grey.dividing.header{border-bottom:2px solid #767676}.ui.inverted.grey.header{color:#dcddde!important}a.ui.inverted.grey.header:hover{color:#cfd0d2!important}.ui.left.aligned.header{text-align:left}.ui.right.aligned.header{text-align:right}.ui.center.aligned.header,.ui.centered.header{text-align:center}.ui.justified.header{text-align:justify}.ui.justified.header:after{display:inline-block;content:"";width:100%}.ui.floated.header,.ui[class*="left floated"].header{float:left;margin-top:0;margin-right:.5em}.ui[class*="right floated"].header{float:right;margin-top:0;margin-left:.5em}.ui.fitted.header{padding:0}.ui.dividing.header{border-bottom:1px solid rgba(34,36,38,.15)}.ui.dividing.header,.ui.dividing.header .sub.header{padding-bottom:.21428571rem}.ui.dividing.header .icon{margin-bottom:0}.ui.inverted.dividing.header{border-bottom-color:hsla(0,0%,100%,.1)}.ui.block.header{background:#f3f4f5;padding:.78571429rem 1rem;box-shadow:none;border:1px solid #d4d4d5;border-radius:.21428571rem}.ui.tiny.block.header{font-size:12px;font-size:.85714286rem}.ui.small.block.header{font-size:13px;font-size:.92857143rem}.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){font-size:14px;font-size:1rem}.ui.large.block.header{font-size:15.999px;font-size:1.14285714rem}.ui.huge.block.header{font-size:20px;font-size:1.42857143rem}.ui.attached.header{background:#fff;padding:.78571429rem 1rem;margin-left:-1px;margin-right:-1px;box-shadow:none;border:1px solid #d4d4d5}.ui.attached.block.header{background:#f3f4f5}.ui.attached:not(.top):not(.bottom).header{margin-top:0;margin-bottom:0;border-top:none;border-radius:0}.ui.top.attached.header{margin-bottom:0;border-radius:.21428571rem .21428571rem 0 0}.ui.bottom.attached.header{margin-top:0;border-top:none;border-radius:0 0 .21428571rem .21428571rem}.ui.tiny.attached.header{font-size:.85714286em}.ui.small.attached.header{font-size:.92857143em}.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){font-size:1em}.ui.large.attached.header{font-size:1.14285714em}.ui.huge.attached.header{font-size:1.42857143em}.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){font-size:1.28571429em}
/*!
 * # Semantic UI - Icon
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */@font-face{font-family:Icons;src:url(/assets/fonts/icons.eot);src:url(/assets/fonts/icons.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/icons.woff2) format("woff2"),url(/assets/fonts/icons.woff) format("woff"),url(/assets/fonts/icons.ttf) format("truetype"),url(/assets/fonts/icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon{display:inline-block;opacity:1;margin:0 .25rem 0 0;width:1.18em;height:1em;font-family:Icons;font-style:normal;font-weight:400;text-decoration:inherit;text-align:center;speak:none;font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden}i.icon:before{background:none!important}i.icon.loading{height:1em;line-height:1;-webkit-animation:icon-loading 2s linear infinite;animation:icon-loading 2s linear infinite}@-webkit-keyframes icon-loading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes icon-loading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}i.emphasized.icon,i.icon.active,i.icon.hover{opacity:1!important}i.disabled.icon{opacity:.45!important}i.fitted.icon{width:auto;margin:0!important}i.link.icon,i.link.icons{cursor:pointer;opacity:.8;transition:opacity .1s ease}i.link.icon:hover,i.link.icons:hover{opacity:1!important}i.circular.icon{border-radius:500em!important;line-height:1!important;padding:.5em 0!important;box-shadow:inset 0 0 0 .1em rgba(0,0,0,.1);width:2em!important;height:2em!important}i.circular.inverted.icon{border:none;box-shadow:none}i.flipped.icon,i.horizontally.flipped.icon{transform:scaleX(-1)}i.vertically.flipped.icon{transform:scaleY(-1)}i.clockwise.rotated.icon,i.right.rotated.icon,i.rotated.icon{transform:rotate(90deg)}i.counterclockwise.rotated.icon,i.left.rotated.icon{transform:rotate(-90deg)}i.bordered.icon{line-height:1;vertical-align:baseline;width:2em;height:2em;padding:.5em 0!important;box-shadow:inset 0 0 0 .1em rgba(0,0,0,.1)}i.bordered.inverted.icon{border:none;box-shadow:none}i.inverted.bordered.icon,i.inverted.circular.icon{background-color:#1b1c1d!important;color:#fff!important}i.inverted.icon{color:#fff}i.red.icon{color:#db2828!important}i.inverted.red.icon{color:#ff695e!important}i.inverted.bordered.red.icon,i.inverted.circular.red.icon{background-color:#db2828!important;color:#fff!important}i.orange.icon{color:#f2711c!important}i.inverted.orange.icon{color:#ff851b!important}i.inverted.bordered.orange.icon,i.inverted.circular.orange.icon{background-color:#f2711c!important;color:#fff!important}i.yellow.icon{color:#fbbd08!important}i.inverted.yellow.icon{color:#ffe21f!important}i.inverted.bordered.yellow.icon,i.inverted.circular.yellow.icon{background-color:#fbbd08!important;color:#fff!important}i.olive.icon{color:#b5cc18!important}i.inverted.olive.icon{color:#d9e778!important}i.inverted.bordered.olive.icon,i.inverted.circular.olive.icon{background-color:#b5cc18!important;color:#fff!important}i.green.icon{color:#21ba45!important}i.inverted.green.icon{color:#2ecc40!important}i.inverted.bordered.green.icon,i.inverted.circular.green.icon{background-color:#21ba45!important;color:#fff!important}i.teal.icon{color:#00b5ad!important}i.inverted.teal.icon{color:#6dffff!important}i.inverted.bordered.teal.icon,i.inverted.circular.teal.icon{background-color:#00b5ad!important;color:#fff!important}i.blue.icon{color:#2c6a9e!important}i.inverted.blue.icon{color:#5391c5!important}i.inverted.bordered.blue.icon,i.inverted.circular.blue.icon{background-color:#2c6a9e!important;color:#fff!important}i.violet.icon{color:#6435c9!important}i.inverted.violet.icon{color:#a291fb!important}i.inverted.bordered.violet.icon,i.inverted.circular.violet.icon{background-color:#6435c9!important;color:#fff!important}i.purple.icon{color:#a333c8!important}i.inverted.purple.icon{color:#dc73ff!important}i.inverted.bordered.purple.icon,i.inverted.circular.purple.icon{background-color:#a333c8!important;color:#fff!important}i.pink.icon{color:#e03997!important}i.inverted.pink.icon{color:#ff8edf!important}i.inverted.bordered.pink.icon,i.inverted.circular.pink.icon{background-color:#e03997!important;color:#fff!important}i.brown.icon{color:#a5673f!important}i.inverted.brown.icon{color:#d67c1c!important}i.inverted.bordered.brown.icon,i.inverted.circular.brown.icon{background-color:#a5673f!important;color:#fff!important}i.grey.icon{color:#767676!important}i.inverted.grey.icon{color:#dcddde!important}i.inverted.bordered.grey.icon,i.inverted.circular.grey.icon{background-color:#767676!important;color:#fff!important}i.black.icon{color:#1b1c1d!important}i.inverted.black.icon{color:#545454!important}i.inverted.bordered.black.icon,i.inverted.circular.black.icon{background-color:#1b1c1d!important;color:#fff!important}i.mini.icon,i.mini.icons{line-height:1;font-size:.4em}i.tiny.icon,i.tiny.icons{line-height:1;font-size:.5em}i.small.icon,i.small.icons{line-height:1;font-size:.75em}i.icon,i.icons{font-size:1em}i.large.icon,i.large.icons{line-height:1;vertical-align:middle;font-size:1.5em}i.big.icon,i.big.icons{line-height:1;vertical-align:middle;font-size:2em}i.huge.icon,i.huge.icons{line-height:1;vertical-align:middle;font-size:4em}i.massive.icon,i.massive.icons{line-height:1;vertical-align:middle;font-size:8em}i.icons{display:inline-block;position:relative;line-height:1}i.icons .icon{position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);margin:0}i.icons .icon:first-child{position:static;width:auto;height:auto;vertical-align:top;transform:none;margin-right:.25rem}i.icons .corner.icon{top:auto;left:auto;right:0;bottom:0;transform:none;font-size:.45em;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}i.icons .top.right.corner.icon{top:0;left:auto;right:0;bottom:auto}i.icons .top.left.corner.icon{top:0;left:0;right:auto;bottom:auto}i.icons .bottom.left.corner.icon{top:auto;left:0;right:auto;bottom:0}i.icons .bottom.right.corner.icon{top:auto;left:auto;right:0;bottom:0}i.icons .inverted.corner.icon{text-shadow:-1px -1px 0 #1b1c1d,1px -1px 0 #1b1c1d,-1px 1px 0 #1b1c1d,1px 1px 0 #1b1c1d}i.icon.linkedin.in:before{content:"\f0e1"}i.icon.zoom.in:before{content:"\f00e"}i.icon.zoom.out:before{content:"\f010"}i.icon.sign.in:before{content:"\f2f6"}i.icon.in.cart:before{content:"\f218"}i.icon.log.out:before,i.icon.sign.out:before{content:"\f2f5"}i.icon.\35 00px:before{content:"\f26e"}i.icon.accessible.icon:before{content:"\f368"}i.icon.accusoft:before{content:"\f369"}i.icon.address.book:before{content:"\f2b9"}i.icon.address.card:before{content:"\f2bb"}i.icon.adjust:before{content:"\f042"}i.icon.adn:before{content:"\f170"}i.icon.adversal:before{content:"\f36a"}i.icon.affiliatetheme:before{content:"\f36b"}i.icon.algolia:before{content:"\f36c"}i.icon.align.center:before{content:"\f037"}i.icon.align.justify:before{content:"\f039"}i.icon.align.left:before{content:"\f036"}i.icon.align.right:before{content:"\f038"}i.icon.amazon:before{content:"\f270"}i.icon.amazon.pay:before{content:"\f42c"}i.icon.ambulance:before{content:"\f0f9"}i.icon.american.sign.language.interpreting:before{content:"\f2a3"}i.icon.amilia:before{content:"\f36d"}i.icon.anchor:before{content:"\f13d"}i.icon.android:before{content:"\f17b"}i.icon.angellist:before{content:"\f209"}i.icon.angle.double.down:before{content:"\f103"}i.icon.angle.double.left:before{content:"\f100"}i.icon.angle.double.right:before{content:"\f101"}i.icon.angle.double.up:before{content:"\f102"}i.icon.angle.down:before{content:"\f107"}i.icon.angle.left:before{content:"\f104"}i.icon.angle.right:before{content:"\f105"}i.icon.angle.up:before{content:"\f106"}i.icon.angrycreative:before{content:"\f36e"}i.icon.angular:before{content:"\f420"}i.icon.app.store:before{content:"\f36f"}i.icon.app.store.ios:before{content:"\f370"}i.icon.apper:before{content:"\f371"}i.icon.apple:before{content:"\f179"}i.icon.apple.pay:before{content:"\f415"}i.icon.archive:before{content:"\f187"}i.icon.arrow.alternate.circle.down:before{content:"\f358"}i.icon.arrow.alternate.circle.left:before{content:"\f359"}i.icon.arrow.alternate.circle.right:before{content:"\f35a"}i.icon.arrow.alternate.circle.up:before{content:"\f35b"}i.icon.arrow.circle.down:before{content:"\f0ab"}i.icon.arrow.circle.left:before{content:"\f0a8"}i.icon.arrow.circle.right:before{content:"\f0a9"}i.icon.arrow.circle.up:before{content:"\f0aa"}i.icon.arrow.down:before{content:"\f063"}i.icon.arrow.left:before{content:"\f060"}i.icon.arrow.right:before{content:"\f061"}i.icon.arrow.up:before{content:"\f062"}i.icon.arrows.alternate:before{content:"\f0b2"}i.icon.arrows.alternate.horizontal:before{content:"\f337"}i.icon.arrows.alternate.vertical:before{content:"\f338"}i.icon.assistive.listening.systems:before{content:"\f2a2"}i.icon.asterisk:before{content:"\f069"}i.icon.asymmetrik:before{content:"\f372"}i.icon.at:before{content:"\f1fa"}i.icon.audible:before{content:"\f373"}i.icon.audio.description:before{content:"\f29e"}i.icon.autoprefixer:before{content:"\f41c"}i.icon.avianex:before{content:"\f374"}i.icon.aviato:before{content:"\f421"}i.icon.aws:before{content:"\f375"}i.icon.backward:before{content:"\f04a"}i.icon.balance.scale:before{content:"\f24e"}i.icon.ban:before{content:"\f05e"}i.icon.band.aid:before{content:"\f462"}i.icon.bandcamp:before{content:"\f2d5"}i.icon.barcode:before{content:"\f02a"}i.icon.bars:before{content:"\f0c9"}i.icon.baseball.ball:before{content:"\f433"}i.icon.basketball.ball:before{content:"\f434"}i.icon.bath:before{content:"\f2cd"}i.icon.battery.empty:before{content:"\f244"}i.icon.battery.full:before{content:"\f240"}i.icon.battery.half:before{content:"\f242"}i.icon.battery.quarter:before{content:"\f243"}i.icon.battery.three.quarters:before{content:"\f241"}i.icon.bed:before{content:"\f236"}i.icon.beer:before{content:"\f0fc"}i.icon.behance:before{content:"\f1b4"}i.icon.behance.square:before{content:"\f1b5"}i.icon.bell:before{content:"\f0f3"}i.icon.bell.slash:before{content:"\f1f6"}i.icon.bicycle:before{content:"\f206"}i.icon.bimobject:before{content:"\f378"}i.icon.binoculars:before{content:"\f1e5"}i.icon.birthday.cake:before{content:"\f1fd"}i.icon.bitbucket:before{content:"\f171"}i.icon.bitcoin:before{content:"\f379"}i.icon.bity:before{content:"\f37a"}i.icon.black.tie:before{content:"\f27e"}i.icon.blackberry:before{content:"\f37b"}i.icon.blind:before{content:"\f29d"}i.icon.blogger:before{content:"\f37c"}i.icon.blogger.b:before{content:"\f37d"}i.icon.bluetooth:before{content:"\f293"}i.icon.bluetooth.b:before{content:"\f294"}i.icon.bold:before{content:"\f032"}i.icon.bolt:before{content:"\f0e7"}i.icon.bomb:before{content:"\f1e2"}i.icon.book:before{content:"\f02d"}i.icon.bookmark:before{content:"\f02e"}i.icon.bowling.ball:before{content:"\f436"}i.icon.box:before{content:"\f466"}i.icon.boxes:before{content:"\f468"}i.icon.braille:before{content:"\f2a1"}i.icon.briefcase:before{content:"\f0b1"}i.icon.btc:before{content:"\f15a"}i.icon.bug:before{content:"\f188"}i.icon.building:before{content:"\f1ad"}i.icon.bullhorn:before{content:"\f0a1"}i.icon.bullseye:before{content:"\f140"}i.icon.buromobelexperte:before{content:"\f37f"}i.icon.bus:before{content:"\f207"}i.icon.buysellads:before{content:"\f20d"}i.icon.calculator:before{content:"\f1ec"}i.icon.calendar:before{content:"\f133"}i.icon.calendar.alternate:before{content:"\f073"}i.icon.calendar.check:before{content:"\f274"}i.icon.calendar.minus:before{content:"\f272"}i.icon.calendar.plus:before{content:"\f271"}i.icon.calendar.times:before{content:"\f273"}i.icon.camera:before{content:"\f030"}i.icon.camera.retro:before{content:"\f083"}i.icon.car:before{content:"\f1b9"}i.icon.caret.down:before{content:"\f0d7"}i.icon.caret.left:before{content:"\f0d9"}i.icon.caret.right:before{content:"\f0da"}i.icon.caret.square.down:before{content:"\f150"}i.icon.caret.square.left:before{content:"\f191"}i.icon.caret.square.right:before{content:"\f152"}i.icon.caret.square.up:before{content:"\f151"}i.icon.caret.up:before{content:"\f0d8"}i.icon.cart.arrow.down:before{content:"\f218"}i.icon.cart.plus:before{content:"\f217"}i.icon.cc.amazon.pay:before{content:"\f42d"}i.icon.cc.amex:before{content:"\f1f3"}i.icon.cc.apple.pay:before{content:"\f416"}i.icon.cc.diners.club:before{content:"\f24c"}i.icon.cc.discover:before{content:"\f1f2"}i.icon.cc.jcb:before{content:"\f24b"}i.icon.cc.mastercard:before{content:"\f1f1"}i.icon.cc.paypal:before{content:"\f1f4"}i.icon.cc.stripe:before{content:"\f1f5"}i.icon.cc.visa:before{content:"\f1f0"}i.icon.centercode:before{content:"\f380"}i.icon.certificate:before{content:"\f0a3"}i.icon.chart.area:before{content:"\f1fe"}i.icon.chart.bar:before{content:"\f080"}i.icon.chart.line:before{content:"\f201"}i.icon.chart.pie:before{content:"\f200"}i.icon.check:before{content:"\f00c"}i.icon.check.circle:before{content:"\f058"}i.icon.check.square:before{content:"\f14a"}i.icon.chess:before{content:"\f439"}i.icon.chess.bishop:before{content:"\f43a"}i.icon.chess.board:before{content:"\f43c"}i.icon.chess.king:before{content:"\f43f"}i.icon.chess.knight:before{content:"\f441"}i.icon.chess.pawn:before{content:"\f443"}i.icon.chess.queen:before{content:"\f445"}i.icon.chess.rook:before{content:"\f447"}i.icon.chevron.circle.down:before{content:"\f13a"}i.icon.chevron.circle.left:before{content:"\f137"}i.icon.chevron.circle.right:before{content:"\f138"}i.icon.chevron.circle.up:before{content:"\f139"}i.icon.chevron.down:before{content:"\f078"}i.icon.chevron.left:before{content:"\f053"}i.icon.chevron.right:before{content:"\f054"}i.icon.chevron.up:before{content:"\f077"}i.icon.child:before{content:"\f1ae"}i.icon.chrome:before{content:"\f268"}i.icon.circle:before{content:"\f111"}i.icon.circle.notch:before{content:"\f1ce"}i.icon.clipboard:before{content:"\f328"}i.icon.clipboard.check:before{content:"\f46c"}i.icon.clipboard.list:before{content:"\f46d"}i.icon.clock:before{content:"\f017"}i.icon.clone:before{content:"\f24d"}i.icon.closed.captioning:before{content:"\f20a"}i.icon.cloud:before{content:"\f0c2"}i.icon.cloudscale:before{content:"\f383"}i.icon.cloudsmith:before{content:"\f384"}i.icon.cloudversify:before{content:"\f385"}i.icon.code:before{content:"\f121"}i.icon.code.branch:before{content:"\f126"}i.icon.codepen:before{content:"\f1cb"}i.icon.codiepie:before{content:"\f284"}i.icon.coffee:before{content:"\f0f4"}i.icon.cog:before{content:"\f013"}i.icon.cogs:before{content:"\f085"}i.icon.columns:before{content:"\f0db"}i.icon.comment:before{content:"\f075"}i.icon.comment.alternate:before{content:"\f27a"}i.icon.comments:before{content:"\f086"}i.icon.compass:before{content:"\f14e"}i.icon.compress:before{content:"\f066"}i.icon.connectdevelop:before{content:"\f20e"}i.icon.contao:before{content:"\f26d"}i.icon.copy:before{content:"\f0c5"}i.icon.copyright:before{content:"\f1f9"}i.icon.cpanel:before{content:"\f388"}i.icon.creative.commons:before{content:"\f25e"}i.icon.credit.card:before{content:"\f09d"}i.icon.crop:before{content:"\f125"}i.icon.crosshairs:before{content:"\f05b"}i.icon.css3:before{content:"\f13c"}i.icon.css3.alternate:before{content:"\f38b"}i.icon.cube:before{content:"\f1b2"}i.icon.cubes:before{content:"\f1b3"}i.icon.cut:before{content:"\f0c4"}i.icon.cuttlefish:before{content:"\f38c"}i.icon.d.and.d:before{content:"\f38d"}i.icon.dashcube:before{content:"\f210"}i.icon.database:before{content:"\f1c0"}i.icon.deaf:before{content:"\f2a4"}i.icon.delicious:before{content:"\f1a5"}i.icon.deploydog:before{content:"\f38e"}i.icon.deskpro:before{content:"\f38f"}i.icon.desktop:before{content:"\f108"}i.icon.deviantart:before{content:"\f1bd"}i.icon.digg:before{content:"\f1a6"}i.icon.digital.ocean:before{content:"\f391"}i.icon.discord:before{content:"\f392"}i.icon.discourse:before{content:"\f393"}i.icon.dna:before{content:"\f471"}i.icon.dochub:before{content:"\f394"}i.icon.docker:before{content:"\f395"}i.icon.dollar.sign:before{content:"\f155"}i.icon.dolly:before{content:"\f472"}i.icon.dolly.flatbed:before{content:"\f474"}i.icon.dot.circle:before{content:"\f192"}i.icon.download:before{content:"\f019"}i.icon.draft2digital:before{content:"\f396"}i.icon.dribbble:before{content:"\f17d"}i.icon.dribbble.square:before{content:"\f397"}i.icon.dropbox:before{content:"\f16b"}i.icon.drupal:before{content:"\f1a9"}i.icon.dyalog:before{content:"\f399"}i.icon.earlybirds:before{content:"\f39a"}i.icon.edge:before{content:"\f282"}i.icon.edit:before{content:"\f044"}i.icon.eject:before{content:"\f052"}i.icon.elementor:before{content:"\f430"}i.icon.ellipsis.horizontal:before{content:"\f141"}i.icon.ellipsis.vertical:before{content:"\f142"}i.icon.ember:before{content:"\f423"}i.icon.empire:before{content:"\f1d1"}i.icon.envelope:before{content:"\f0e0"}i.icon.envelope.open:before{content:"\f2b6"}i.icon.envelope.square:before{content:"\f199"}i.icon.envira:before{content:"\f299"}i.icon.eraser:before{content:"\f12d"}i.icon.erlang:before{content:"\f39d"}i.icon.ethereum:before{content:"\f42e"}i.icon.etsy:before{content:"\f2d7"}i.icon.euro.sign:before{content:"\f153"}i.icon.exchange.alternate:before{content:"\f362"}i.icon.exclamation:before{content:"\f12a"}i.icon.exclamation.circle:before{content:"\f06a"}i.icon.exclamation.triangle:before{content:"\f071"}i.icon.expand:before{content:"\f065"}i.icon.expand.arrows.alternate:before{content:"\f31e"}i.icon.expeditedssl:before{content:"\f23e"}i.icon.external.alternate:before{content:"\f35d"}i.icon.external.square.alternate:before{content:"\f360"}i.icon.eye:before{content:"\f06e"}i.icon.eye.dropper:before{content:"\f1fb"}i.icon.eye.slash:before{content:"\f070"}i.icon.facebook:before{content:"\f09a"}i.icon.facebook.f:before{content:"\f39e"}i.icon.facebook.messenger:before{content:"\f39f"}i.icon.facebook.square:before{content:"\f082"}i.icon.fast.backward:before{content:"\f049"}i.icon.fast.forward:before{content:"\f050"}i.icon.fax:before{content:"\f1ac"}i.icon.female:before{content:"\f182"}i.icon.fighter.jet:before{content:"\f0fb"}i.icon.file:before{content:"\f15b"}i.icon.file.alternate:before{content:"\f15c"}i.icon.file.archive:before{content:"\f1c6"}i.icon.file.audio:before{content:"\f1c7"}i.icon.file.code:before{content:"\f1c9"}i.icon.file.excel:before{content:"\f1c3"}i.icon.file.image:before{content:"\f1c5"}i.icon.file.pdf:before{content:"\f1c1"}i.icon.file.powerpoint:before{content:"\f1c4"}i.icon.file.video:before{content:"\f1c8"}i.icon.file.word:before{content:"\f1c2"}i.icon.film:before{content:"\f008"}i.icon.filter:before{content:"\f0b0"}i.icon.fire:before{content:"\f06d"}i.icon.fire.extinguisher:before{content:"\f134"}i.icon.firefox:before{content:"\f269"}i.icon.first.aid:before{content:"\f479"}i.icon.first.order:before{content:"\f2b0"}i.icon.firstdraft:before{content:"\f3a1"}i.icon.flag:before{content:"\f024"}i.icon.flag.checkered:before{content:"\f11e"}i.icon.flask:before{content:"\f0c3"}i.icon.flickr:before{content:"\f16e"}i.icon.flipboard:before{content:"\f44d"}i.icon.fly:before{content:"\f417"}i.icon.folder:before{content:"\f07b"}i.icon.folder.open:before{content:"\f07c"}i.icon.font:before{content:"\f031"}i.icon.font.awesome:before{content:"\f2b4"}i.icon.font.awesome.alternate:before{content:"\f35c"}i.icon.font.awesome.flag:before{content:"\f425"}i.icon.fonticons:before{content:"\f280"}i.icon.fonticons.fi:before{content:"\f3a2"}i.icon.football.ball:before{content:"\f44e"}i.icon.fort.awesome:before{content:"\f286"}i.icon.fort.awesome.alternate:before{content:"\f3a3"}i.icon.forumbee:before{content:"\f211"}i.icon.forward:before{content:"\f04e"}i.icon.foursquare:before{content:"\f180"}i.icon.free.code.camp:before{content:"\f2c5"}i.icon.freebsd:before{content:"\f3a4"}i.icon.frown:before{content:"\f119"}i.icon.futbol:before{content:"\f1e3"}i.icon.gamepad:before{content:"\f11b"}i.icon.gavel:before{content:"\f0e3"}i.icon.gem:before{content:"\f3a5"}i.icon.genderless:before{content:"\f22d"}i.icon.get.pocket:before{content:"\f265"}i.icon.gg:before{content:"\f260"}i.icon.gg.circle:before{content:"\f261"}i.icon.gift:before{content:"\f06b"}i.icon.git:before{content:"\f1d3"}i.icon.git.square:before{content:"\f1d2"}i.icon.github:before{content:"\f09b"}i.icon.github.alternate:before{content:"\f113"}i.icon.github.square:before{content:"\f092"}i.icon.gitkraken:before{content:"\f3a6"}i.icon.gitlab:before{content:"\f296"}i.icon.gitter:before{content:"\f426"}i.icon.glass.martini:before{content:"\f000"}i.icon.glide:before{content:"\f2a5"}i.icon.glide.g:before{content:"\f2a6"}i.icon.globe:before{content:"\f0ac"}i.icon.gofore:before{content:"\f3a7"}i.icon.golf.ball:before{content:"\f450"}i.icon.goodreads:before{content:"\f3a8"}i.icon.goodreads.g:before{content:"\f3a9"}i.icon.google:before{content:"\f1a0"}i.icon.google.drive:before{content:"\f3aa"}i.icon.google.play:before{content:"\f3ab"}i.icon.google.plus:before{content:"\f2b3"}i.icon.google.plus.g:before{content:"\f0d5"}i.icon.google.plus.square:before{content:"\f0d4"}i.icon.google.wallet:before{content:"\f1ee"}i.icon.graduation.cap:before{content:"\f19d"}i.icon.gratipay:before{content:"\f184"}i.icon.grav:before{content:"\f2d6"}i.icon.gripfire:before{content:"\f3ac"}i.icon.grunt:before{content:"\f3ad"}i.icon.gulp:before{content:"\f3ae"}i.icon.h.square:before{content:"\f0fd"}i.icon.hacker.news:before{content:"\f1d4"}i.icon.hacker.news.square:before{content:"\f3af"}i.icon.hand.lizard:before{content:"\f258"}i.icon.hand.paper:before{content:"\f256"}i.icon.hand.peace:before{content:"\f25b"}i.icon.hand.point.down:before{content:"\f0a7"}i.icon.hand.point.left:before{content:"\f0a5"}i.icon.hand.point.right:before{content:"\f0a4"}i.icon.hand.point.up:before{content:"\f0a6"}i.icon.hand.pointer:before{content:"\f25a"}i.icon.hand.rock:before{content:"\f255"}i.icon.hand.scissors:before{content:"\f257"}i.icon.hand.spock:before{content:"\f259"}i.icon.handshake:before{content:"\f2b5"}i.icon.hashtag:before{content:"\f292"}i.icon.hdd:before{content:"\f0a0"}i.icon.heading:before{content:"\f1dc"}i.icon.headphones:before{content:"\f025"}i.icon.heart:before{content:"\f004"}i.icon.heartbeat:before{content:"\f21e"}i.icon.hips:before{content:"\f452"}i.icon.hire.a.helper:before{content:"\f3b0"}i.icon.history:before{content:"\f1da"}i.icon.hockey.puck:before{content:"\f453"}i.icon.home:before{content:"\f015"}i.icon.hooli:before{content:"\f427"}i.icon.hospital:before{content:"\f0f8"}i.icon.hospital.symbol:before{content:"\f47e"}i.icon.hotjar:before{content:"\f3b1"}i.icon.hourglass:before{content:"\f254"}i.icon.hourglass.end:before{content:"\f253"}i.icon.hourglass.half:before{content:"\f252"}i.icon.hourglass.start:before{content:"\f251"}i.icon.houzz:before{content:"\f27c"}i.icon.html5:before{content:"\f13b"}i.icon.hubspot:before{content:"\f3b2"}i.icon.i.cursor:before{content:"\f246"}i.icon.id.badge:before{content:"\f2c1"}i.icon.id.card:before{content:"\f2c2"}i.icon.image:before{content:"\f03e"}i.icon.images:before{content:"\f302"}i.icon.imdb:before{content:"\f2d8"}i.icon.inbox:before{content:"\f01c"}i.icon.indent:before{content:"\f03c"}i.icon.industry:before{content:"\f275"}i.icon.info:before{content:"\f129"}i.icon.info.circle:before{content:"\f05a"}i.icon.instagram:before{content:"\f16d"}i.icon.internet.explorer:before{content:"\f26b"}i.icon.ioxhost:before{content:"\f208"}i.icon.italic:before{content:"\f033"}i.icon.itunes:before{content:"\f3b4"}i.icon.itunes.note:before{content:"\f3b5"}i.icon.jenkins:before{content:"\f3b6"}i.icon.joget:before{content:"\f3b7"}i.icon.joomla:before{content:"\f1aa"}i.icon.js:before{content:"\f3b8"}i.icon.js.square:before{content:"\f3b9"}i.icon.jsfiddle:before{content:"\f1cc"}i.icon.key:before{content:"\f084"}i.icon.keyboard:before{content:"\f11c"}i.icon.keycdn:before{content:"\f3ba"}i.icon.kickstarter:before{content:"\f3bb"}i.icon.kickstarter.k:before{content:"\f3bc"}i.icon.korvue:before{content:"\f42f"}i.icon.language:before{content:"\f1ab"}i.icon.laptop:before{content:"\f109"}i.icon.laravel:before{content:"\f3bd"}i.icon.lastfm:before{content:"\f202"}i.icon.lastfm.square:before{content:"\f203"}i.icon.leaf:before{content:"\f06c"}i.icon.leanpub:before{content:"\f212"}i.icon.lemon:before{content:"\f094"}i.icon.less:before{content:"\f41d"}i.icon.level.down.alternate:before{content:"\f3be"}i.icon.level.up.alternate:before{content:"\f3bf"}i.icon.life.ring:before{content:"\f1cd"}i.icon.lightbulb:before{content:"\f0eb"}i.icon.linechat:before{content:"\f3c0"}i.icon.linkedin:before{content:"\f08c"}i.icon.linkedin.alt:before{content:"\f0e1"}i.icon.linode:before{content:"\f2b8"}i.icon.linux:before{content:"\f17c"}i.icon.lira.sign:before{content:"\f195"}i.icon.list:before{content:"\f03a"}i.icon.list.alternate:before{content:"\f022"}i.icon.list.ol:before{content:"\f0cb"}i.icon.list.ul:before{content:"\f0ca"}i.icon.location.arrow:before{content:"\f124"}i.icon.lock:before{content:"\f023"}i.icon.lock.open:before{content:"\f3c1"}i.icon.long.arrow.alternate.down:before{content:"\f309"}i.icon.long.arrow.alternate.left:before{content:"\f30a"}i.icon.long.arrow.alternate.right:before{content:"\f30b"}i.icon.long.arrow.alternate.up:before{content:"\f30c"}i.icon.low.vision:before{content:"\f2a8"}i.icon.lyft:before{content:"\f3c3"}i.icon.magento:before{content:"\f3c4"}i.icon.magic:before{content:"\f0d0"}i.icon.magnet:before{content:"\f076"}i.icon.male:before{content:"\f183"}i.icon.map:before{content:"\f279"}i.icon.map.marker:before{content:"\f041"}i.icon.map.marker.alternate:before{content:"\f3c5"}i.icon.map.pin:before{content:"\f276"}i.icon.map.signs:before{content:"\f277"}i.icon.mars:before{content:"\f222"}i.icon.mars.double:before{content:"\f227"}i.icon.mars.stroke:before{content:"\f229"}i.icon.mars.stroke.horizontal:before{content:"\f22b"}i.icon.mars.stroke.vertical:before{content:"\f22a"}i.icon.maxcdn:before{content:"\f136"}i.icon.medapps:before{content:"\f3c6"}i.icon.medium:before{content:"\f23a"}i.icon.medium.m:before{content:"\f3c7"}i.icon.medkit:before{content:"\f0fa"}i.icon.medrt:before{content:"\f3c8"}i.icon.meetup:before{content:"\f2e0"}i.icon.meh:before{content:"\f11a"}i.icon.mercury:before{content:"\f223"}i.icon.microchip:before{content:"\f2db"}i.icon.microphone:before{content:"\f130"}i.icon.microphone.slash:before{content:"\f131"}i.icon.microsoft:before{content:"\f3ca"}i.icon.minus:before{content:"\f068"}i.icon.minus.circle:before{content:"\f056"}i.icon.minus.square:before{content:"\f146"}i.icon.mix:before{content:"\f3cb"}i.icon.mixcloud:before{content:"\f289"}i.icon.mizuni:before{content:"\f3cc"}i.icon.mobile:before{content:"\f10b"}i.icon.mobile.alternate:before{content:"\f3cd"}i.icon.modx:before{content:"\f285"}i.icon.monero:before{content:"\f3d0"}i.icon.money.bill.alternate:before{content:"\f3d1"}i.icon.moon:before{content:"\f186"}i.icon.motorcycle:before{content:"\f21c"}i.icon.mouse.pointer:before{content:"\f245"}i.icon.music:before{content:"\f001"}i.icon.napster:before{content:"\f3d2"}i.icon.neuter:before{content:"\f22c"}i.icon.newspaper:before{content:"\f1ea"}i.icon.nintendo.switch:before{content:"\f418"}i.icon.node:before{content:"\f419"}i.icon.node.js:before{content:"\f3d3"}i.icon.npm:before{content:"\f3d4"}i.icon.ns8:before{content:"\f3d5"}i.icon.nutritionix:before{content:"\f3d6"}i.icon.object.group:before{content:"\f247"}i.icon.object.ungroup:before{content:"\f248"}i.icon.odnoklassniki:before{content:"\f263"}i.icon.odnoklassniki.square:before{content:"\f264"}i.icon.opencart:before{content:"\f23d"}i.icon.openid:before{content:"\f19b"}i.icon.opera:before{content:"\f26a"}i.icon.optin.monster:before{content:"\f23c"}i.icon.osi:before{content:"\f41a"}i.icon.outdent:before{content:"\f03b"}i.icon.page4:before{content:"\f3d7"}i.icon.pagelines:before{content:"\f18c"}i.icon.paint.brush:before{content:"\f1fc"}i.icon.palfed:before{content:"\f3d8"}i.icon.pallet:before{content:"\f482"}i.icon.paper.plane:before{content:"\f1d8"}i.icon.paperclip:before{content:"\f0c6"}i.icon.paragraph:before{content:"\f1dd"}i.icon.paste:before{content:"\f0ea"}i.icon.patreon:before{content:"\f3d9"}i.icon.pause:before{content:"\f04c"}i.icon.pause.circle:before{content:"\f28b"}i.icon.paw:before{content:"\f1b0"}i.icon.paypal:before{content:"\f1ed"}i.icon.pen.square:before{content:"\f14b"}i.icon.pencil.alternate:before{content:"\f303"}i.icon.percent:before{content:"\f295"}i.icon.periscope:before{content:"\f3da"}i.icon.phabricator:before{content:"\f3db"}i.icon.phoenix.framework:before{content:"\f3dc"}i.icon.phone:before{content:"\f095"}i.icon.phone.square:before{content:"\f098"}i.icon.phone.volume:before{content:"\f2a0"}i.icon.php:before{content:"\f457"}i.icon.pied.piper:before{content:"\f2ae"}i.icon.pied.piper.alternate:before{content:"\f1a8"}i.icon.pied.piper.pp:before{content:"\f1a7"}i.icon.pills:before{content:"\f484"}i.icon.pinterest:before{content:"\f0d2"}i.icon.pinterest.p:before{content:"\f231"}i.icon.pinterest.square:before{content:"\f0d3"}i.icon.plane:before{content:"\f072"}i.icon.play:before{content:"\f04b"}i.icon.play.circle:before{content:"\f144"}i.icon.playstation:before{content:"\f3df"}i.icon.plug:before{content:"\f1e6"}i.icon.plus:before{content:"\f067"}i.icon.plus.circle:before{content:"\f055"}i.icon.plus.square:before{content:"\f0fe"}i.icon.podcast:before{content:"\f2ce"}i.icon.pound.sign:before{content:"\f154"}i.icon.power.off:before{content:"\f011"}i.icon.print:before{content:"\f02f"}i.icon.product.hunt:before{content:"\f288"}i.icon.pushed:before{content:"\f3e1"}i.icon.puzzle.piece:before{content:"\f12e"}i.icon.python:before{content:"\f3e2"}i.icon.qq:before{content:"\f1d6"}i.icon.qrcode:before{content:"\f029"}i.icon.question:before{content:"\f128"}i.icon.question.circle:before{content:"\f059"}i.icon.quidditch:before{content:"\f458"}i.icon.quinscape:before{content:"\f459"}i.icon.quora:before{content:"\f2c4"}i.icon.quote.left:before{content:"\f10d"}i.icon.quote.right:before{content:"\f10e"}i.icon.random:before{content:"\f074"}i.icon.ravelry:before{content:"\f2d9"}i.icon.react:before{content:"\f41b"}i.icon.rebel:before{content:"\f1d0"}i.icon.recycle:before{content:"\f1b8"}i.icon.redriver:before{content:"\f3e3"}i.icon.reddit:before{content:"\f1a1"}i.icon.reddit.alien:before{content:"\f281"}i.icon.reddit.square:before{content:"\f1a2"}i.icon.redo:before{content:"\f01e"}i.icon.redo.alternate:before{content:"\f2f9"}i.icon.registered:before{content:"\f25d"}i.icon.rendact:before{content:"\f3e4"}i.icon.renren:before{content:"\f18b"}i.icon.reply:before{content:"\f3e5"}i.icon.reply.all:before{content:"\f122"}i.icon.replyd:before{content:"\f3e6"}i.icon.resolving:before{content:"\f3e7"}i.icon.retweet:before{content:"\f079"}i.icon.road:before{content:"\f018"}i.icon.rocket:before{content:"\f135"}i.icon.rocketchat:before{content:"\f3e8"}i.icon.rockrms:before{content:"\f3e9"}i.icon.rss:before{content:"\f09e"}i.icon.rss.square:before{content:"\f143"}i.icon.ruble.sign:before{content:"\f158"}i.icon.rupee.sign:before{content:"\f156"}i.icon.safari:before{content:"\f267"}i.icon.sass:before{content:"\f41e"}i.icon.save:before{content:"\f0c7"}i.icon.schlix:before{content:"\f3ea"}i.icon.scribd:before{content:"\f28a"}i.icon.search:before{content:"\f002"}i.icon.search.minus:before{content:"\f010"}i.icon.search.plus:before{content:"\f00e"}i.icon.searchengin:before{content:"\f3eb"}i.icon.sellcast:before{content:"\f2da"}i.icon.sellsy:before{content:"\f213"}i.icon.server:before{content:"\f233"}i.icon.servicestack:before{content:"\f3ec"}i.icon.share:before{content:"\f064"}i.icon.share.alternate:before{content:"\f1e0"}i.icon.share.alternate.square:before{content:"\f1e1"}i.icon.share.square:before{content:"\f14d"}i.icon.shekel.sign:before{content:"\f20b"}i.icon.shield.alternate:before{content:"\f3ed"}i.icon.ship:before{content:"\f21a"}i.icon.shipping.fast:before{content:"\f48b"}i.icon.shirtsinbulk:before{content:"\f214"}i.icon.shopping.bag:before{content:"\f290"}i.icon.shopping.basket:before{content:"\f291"}i.icon.shopping.cart:before{content:"\f07a"}i.icon.shower:before{content:"\f2cc"}i.icon.sign.language:before{content:"\f2a7"}i.icon.signal:before{content:"\f012"}i.icon.simplybuilt:before{content:"\f215"}i.icon.sistrix:before{content:"\f3ee"}i.icon.sitemap:before{content:"\f0e8"}i.icon.skyatlas:before{content:"\f216"}i.icon.skype:before{content:"\f17e"}i.icon.slack:before{content:"\f198"}i.icon.slack.hash:before{content:"\f3ef"}i.icon.sliders.horizontal:before{content:"\f1de"}i.icon.slideshare:before{content:"\f1e7"}i.icon.smile:before{content:"\f118"}i.icon.snapchat:before{content:"\f2ab"}i.icon.snapchat.ghost:before{content:"\f2ac"}i.icon.snapchat.square:before{content:"\f2ad"}i.icon.snowflake:before{content:"\f2dc"}i.icon.sort:before{content:"\f0dc"}i.icon.sort.alphabet.down:before{content:"\f15d"}i.icon.sort.alphabet.up:before{content:"\f15e"}i.icon.sort.amount.down:before{content:"\f160"}i.icon.sort.amount.up:before{content:"\f161"}i.icon.sort.down:before{content:"\f0dd"}i.icon.sort.numeric.down:before{content:"\f162"}i.icon.sort.numeric.up:before{content:"\f163"}i.icon.sort.up:before{content:"\f0de"}i.icon.soundcloud:before{content:"\f1be"}i.icon.space.shuttle:before{content:"\f197"}i.icon.speakap:before{content:"\f3f3"}i.icon.spinner:before{content:"\f110"}i.icon.spotify:before{content:"\f1bc"}i.icon.square:before{content:"\f0c8"}i.icon.square.full:before{content:"\f45c"}i.icon.stack.exchange:before{content:"\f18d"}i.icon.stack.overflow:before{content:"\f16c"}i.icon.star:before{content:"\f005"}i.icon.star.half:before{content:"\f089"}i.icon.staylinked:before{content:"\f3f5"}i.icon.steam:before{content:"\f1b6"}i.icon.steam.square:before{content:"\f1b7"}i.icon.steam.symbol:before{content:"\f3f6"}i.icon.step.backward:before{content:"\f048"}i.icon.step.forward:before{content:"\f051"}i.icon.stethoscope:before{content:"\f0f1"}i.icon.sticker.mule:before{content:"\f3f7"}i.icon.sticky.note:before{content:"\f249"}i.icon.stop:before{content:"\f04d"}i.icon.stop.circle:before{content:"\f28d"}i.icon.stopwatch:before{content:"\f2f2"}i.icon.strava:before{content:"\f428"}i.icon.street.view:before{content:"\f21d"}i.icon.strikethrough:before{content:"\f0cc"}i.icon.stripe:before{content:"\f429"}i.icon.stripe.s:before{content:"\f42a"}i.icon.studiovinari:before{content:"\f3f8"}i.icon.stumbleupon:before{content:"\f1a4"}i.icon.stumbleupon.circle:before{content:"\f1a3"}i.icon.subscript:before{content:"\f12c"}i.icon.subway:before{content:"\f239"}i.icon.suitcase:before{content:"\f0f2"}i.icon.sun:before{content:"\f185"}i.icon.superpowers:before{content:"\f2dd"}i.icon.superscript:before{content:"\f12b"}i.icon.supple:before{content:"\f3f9"}i.icon.sync:before{content:"\f021"}i.icon.sync.alternate:before{content:"\f2f1"}i.icon.syringe:before{content:"\f48e"}i.icon.table:before{content:"\f0ce"}i.icon.table.tennis:before{content:"\f45d"}i.icon.tablet:before{content:"\f10a"}i.icon.tablet.alternate:before{content:"\f3fa"}i.icon.tachometer.alternate:before{content:"\f3fd"}i.icon.tag:before{content:"\f02b"}i.icon.tags:before{content:"\f02c"}i.icon.tasks:before{content:"\f0ae"}i.icon.taxi:before{content:"\f1ba"}i.icon.telegram:before{content:"\f2c6"}i.icon.telegram.plane:before{content:"\f3fe"}i.icon.tencent.weibo:before{content:"\f1d5"}i.icon.terminal:before{content:"\f120"}i.icon.text.height:before{content:"\f034"}i.icon.text.width:before{content:"\f035"}i.icon.th:before{content:"\f00a"}i.icon.th.large:before{content:"\f009"}i.icon.th.list:before{content:"\f00b"}i.icon.themeisle:before{content:"\f2b2"}i.icon.thermometer:before{content:"\f491"}i.icon.thermometer.empty:before{content:"\f2cb"}i.icon.thermometer.full:before{content:"\f2c7"}i.icon.thermometer.half:before{content:"\f2c9"}i.icon.thermometer.quarter:before{content:"\f2ca"}i.icon.thermometer.three.quarters:before{content:"\f2c8"}i.icon.thumbs.down:before{content:"\f165"}i.icon.thumbs.up:before{content:"\f164"}i.icon.thumbtack:before{content:"\f08d"}i.icon.ticket.alternate:before{content:"\f3ff"}i.icon.times:before{content:"\f00d"}i.icon.times.circle:before{content:"\f057"}i.icon.tint:before{content:"\f043"}i.icon.toggle.off:before{content:"\f204"}i.icon.toggle.on:before{content:"\f205"}i.icon.trademark:before{content:"\f25c"}i.icon.train:before{content:"\f238"}i.icon.transgender:before{content:"\f224"}i.icon.transgender.alternate:before{content:"\f225"}i.icon.trash:before{content:"\f1f8"}i.icon.trash.alternate:before{content:"\f2ed"}i.icon.tree:before{content:"\f1bb"}i.icon.trello:before{content:"\f181"}i.icon.tripadvisor:before{content:"\f262"}i.icon.trophy:before{content:"\f091"}i.icon.truck:before{content:"\f0d1"}i.icon.tty:before{content:"\f1e4"}i.icon.tumblr:before{content:"\f173"}i.icon.tumblr.square:before{content:"\f174"}i.icon.tv:before{content:"\f26c"}i.icon.twitch:before{content:"\f1e8"}i.icon.twitter:before{content:"\f099"}i.icon.twitter.square:before{content:"\f081"}i.icon.typo3:before{content:"\f42b"}i.icon.uber:before{content:"\f402"}i.icon.uikit:before{content:"\f403"}i.icon.umbrella:before{content:"\f0e9"}i.icon.underline:before{content:"\f0cd"}i.icon.undo:before{content:"\f0e2"}i.icon.undo.alternate:before{content:"\f2ea"}i.icon.uniregistry:before{content:"\f404"}i.icon.universal.access:before{content:"\f29a"}i.icon.university:before{content:"\f19c"}i.icon.unlink:before{content:"\f127"}i.icon.unlock:before{content:"\f09c"}i.icon.unlock.alternate:before{content:"\f13e"}i.icon.untappd:before{content:"\f405"}i.icon.upload:before{content:"\f093"}i.icon.usb:before{content:"\f287"}i.icon.user:before{content:"\f007"}i.icon.user.circle:before{content:"\f2bd"}i.icon.user.md:before{content:"\f0f0"}i.icon.user.plus:before{content:"\f234"}i.icon.user.secret:before{content:"\f21b"}i.icon.user.times:before{content:"\f235"}i.icon.users:before{content:"\f0c0"}i.icon.ussunnah:before{content:"\f407"}i.icon.utensil.spoon:before{content:"\f2e5"}i.icon.utensils:before{content:"\f2e7"}i.icon.vaadin:before{content:"\f408"}i.icon.venus:before{content:"\f221"}i.icon.venus.double:before{content:"\f226"}i.icon.venus.mars:before{content:"\f228"}i.icon.viacoin:before{content:"\f237"}i.icon.viadeo:before{content:"\f2a9"}i.icon.viadeo.square:before{content:"\f2aa"}i.icon.viber:before{content:"\f409"}i.icon.video:before{content:"\f03d"}i.icon.vimeo:before{content:"\f40a"}i.icon.vimeo.square:before{content:"\f194"}i.icon.vimeo.v:before{content:"\f27d"}i.icon.vine:before{content:"\f1ca"}i.icon.vk:before{content:"\f189"}i.icon.vnv:before{content:"\f40b"}i.icon.volleyball.ball:before{content:"\f45f"}i.icon.volume.down:before{content:"\f027"}i.icon.volume.off:before{content:"\f026"}i.icon.volume.up:before{content:"\f028"}i.icon.vuejs:before{content:"\f41f"}i.icon.warehouse:before{content:"\f494"}i.icon.weibo:before{content:"\f18a"}i.icon.weight:before{content:"\f496"}i.icon.weixin:before{content:"\f1d7"}i.icon.whatsapp:before{content:"\f232"}i.icon.whatsapp.square:before{content:"\f40c"}i.icon.wheelchair:before{content:"\f193"}i.icon.whmcs:before{content:"\f40d"}i.icon.wifi:before{content:"\f1eb"}i.icon.wikipedia.w:before{content:"\f266"}i.icon.window.close:before{content:"\f410"}i.icon.window.maximize:before{content:"\f2d0"}i.icon.window.minimize:before{content:"\f2d1"}i.icon.window.restore:before{content:"\f2d2"}i.icon.windows:before{content:"\f17a"}i.icon.won.sign:before{content:"\f159"}i.icon.wordpress:before{content:"\f19a"}i.icon.wordpress.simple:before{content:"\f411"}i.icon.wpbeginner:before{content:"\f297"}i.icon.wpexplorer:before{content:"\f2de"}i.icon.wpforms:before{content:"\f298"}i.icon.wrench:before{content:"\f0ad"}i.icon.xbox:before{content:"\f412"}i.icon.xing:before{content:"\f168"}i.icon.xing.square:before{content:"\f169"}i.icon.y.combinator:before{content:"\f23b"}i.icon.yahoo:before{content:"\f19e"}i.icon.yandex:before{content:"\f413"}i.icon.yandex.international:before{content:"\f414"}i.icon.yelp:before{content:"\f1e9"}i.icon.yen.sign:before{content:"\f157"}i.icon.yoast:before{content:"\f2b1"}i.icon.youtube:before{content:"\f167"}i.icon.youtube.square:before{content:"\f431"}i.icon.chess.rock:before{content:"\f447"}i.icon.ordered.list:before{content:"\f0cb"}i.icon.unordered.list:before{content:"\f0ca"}i.icon.user.doctor:before{content:"\f0f0"}i.icon.shield:before{content:"\f3ed"}i.icon.puzzle:before{content:"\f12e"}i.icon.credit.card.amazon.pay:before{content:"\f42d"}i.icon.credit.card.american.express:before{content:"\f1f3"}i.icon.credit.card.diners.club:before{content:"\f24c"}i.icon.credit.card.discover:before{content:"\f1f2"}i.icon.credit.card.jcb:before{content:"\f24b"}i.icon.credit.card.mastercard:before{content:"\f1f1"}i.icon.credit.card.paypal:before{content:"\f1f4"}i.icon.credit.card.stripe:before{content:"\f1f5"}i.icon.credit.card.visa:before{content:"\f1f0"}i.icon.add.circle:before{content:"\f055"}i.icon.add.square:before{content:"\f0fe"}i.icon.add.to.calendar:before{content:"\f271"}i.icon.add.to.cart:before{content:"\f217"}i.icon.add.user:before{content:"\f234"}i.icon.add:before{content:"\f067"}i.icon.alarm.mute:before{content:"\f1f6"}i.icon.alarm:before{content:"\f0f3"}i.icon.ald:before,i.icon.als:before{content:"\f2a2"}i.icon.american.express.card:before,i.icon.american.express:before,i.icon.amex:before{content:"\f1f3"}i.icon.announcement:before{content:"\f0a1"}i.icon.area.chart:before,i.icon.area.graph:before{content:"\f1fe"}i.icon.arrow.down.cart:before{content:"\f218"}i.icon.asexual:before{content:"\f22d"}i.icon.asl.interpreting:before,i.icon.asl:before{content:"\f2a3"}i.icon.assistive.listening.devices:before{content:"\f2a2"}i.icon.attach:before{content:"\f0c6"}i.icon.attention:before{content:"\f06a"}i.icon.balance:before{content:"\f24e"}i.icon.bar:before{content:"\f0fc"}i.icon.bathtub:before{content:"\f2cd"}i.icon.battery.four:before{content:"\f240"}i.icon.battery.high:before{content:"\f241"}i.icon.battery.low:before{content:"\f243"}i.icon.battery.medium:before{content:"\f242"}i.icon.battery.one:before{content:"\f243"}i.icon.battery.three:before{content:"\f241"}i.icon.battery.two:before{content:"\f242"}i.icon.battery.zero:before{content:"\f244"}i.icon.birthday:before{content:"\f1fd"}i.icon.block.layout:before{content:"\f009"}i.icon.bluetooth.alternative:before{content:"\f294"}i.icon.broken.chain:before{content:"\f127"}i.icon.browser:before{content:"\f022"}i.icon.call.square:before{content:"\f098"}i.icon.call:before{content:"\f095"}i.icon.cancel:before{content:"\f00d"}i.icon.cart:before{content:"\f07a"}i.icon.cc:before{content:"\f20a"}i.icon.chain:before{content:"\f0c1"}i.icon.chat:before{content:"\f075"}i.icon.checked.calendar:before{content:"\f274"}i.icon.checkmark:before{content:"\f00c"}i.icon.circle.notched:before{content:"\f1ce"}i.icon.close:before{content:"\f00d"}i.icon.cny:before{content:"\f157"}i.icon.cocktail:before{content:"\f000"}i.icon.commenting:before{content:"\f27a"}i.icon.computer:before{content:"\f108"}i.icon.configure:before{content:"\f0ad"}i.icon.content:before{content:"\f0c9"}i.icon.deafness:before{content:"\f2a4"}i.icon.delete.calendar:before{content:"\f273"}i.icon.delete:before{content:"\f00d"}i.icon.detective:before{content:"\f21b"}i.icon.diners.club.card:before,i.icon.diners.club:before{content:"\f24c"}i.icon.discover.card:before,i.icon.discover:before{content:"\f1f2"}i.icon.discussions:before{content:"\f086"}i.icon.doctor:before{content:"\f0f0"}i.icon.dollar:before{content:"\f155"}i.icon.dont:before{content:"\f05e"}i.icon.dribble:before{content:"\f17d"}i.icon.drivers.license:before{content:"\f2c2"}i.icon.dropdown:before{content:"\f0d7"}i.icon.eercast:before{content:"\f2da"}i.icon.emergency:before{content:"\f0f9"}i.icon.envira.gallery:before{content:"\f299"}i.icon.erase:before{content:"\f12d"}i.icon.eur:before,i.icon.euro:before{content:"\f153"}i.icon.eyedropper:before{content:"\f1fb"}i.icon.fa:before{content:"\f2b4"}i.icon.factory:before{content:"\f275"}i.icon.favorite:before{content:"\f005"}i.icon.feed:before{content:"\f09e"}i.icon.female.homosexual:before{content:"\f226"}i.icon.file.text:before{content:"\f15c"}i.icon.find:before{content:"\f1e5"}i.icon.first.aid:before{content:"\f0fa"}i.icon.five.hundred.pixels:before{content:"\f26e"}i.icon.fork:before{content:"\f126"}i.icon.game:before{content:"\f11b"}i.icon.gay:before{content:"\f227"}i.icon.gbp:before{content:"\f154"}i.icon.gittip:before{content:"\f184"}i.icon.google.plus.circle:before,i.icon.google.plus.official:before{content:"\f2b3"}i.icon.grab:before{content:"\f255"}i.icon.graduation:before{content:"\f19d"}i.icon.grid.layout:before{content:"\f00a"}i.icon.group:before{content:"\f0c0"}i.icon.h:before{content:"\f0fd"}i.icon.hand.victory:before{content:"\f25b"}i.icon.handicap:before{content:"\f193"}i.icon.hard.of.hearing:before{content:"\f2a4"}i.icon.header:before{content:"\f1dc"}i.icon.help.circle:before{content:"\f059"}i.icon.help:before{content:"\f128"}i.icon.heterosexual:before{content:"\f228"}i.icon.hide:before{content:"\f070"}i.icon.hotel:before{content:"\f236"}i.icon.hourglass.four:before,i.icon.hourglass.full:before{content:"\f254"}i.icon.hourglass.one:before{content:"\f251"}i.icon.hourglass.three:before{content:"\f253"}i.icon.hourglass.two:before{content:"\f252"}i.icon.idea:before{content:"\f0eb"}i.icon.ils:before{content:"\f20b"}i.icon.in-cart:before{content:"\f218"}i.icon.inr:before{content:"\f156"}i.icon.intergender:before,i.icon.intersex:before{content:"\f224"}i.icon.japan.credit.bureau.card:before,i.icon.japan.credit.bureau:before,i.icon.jcb:before{content:"\f24b"}i.icon.jpy:before{content:"\f157"}i.icon.krw:before{content:"\f159"}i.icon.lab:before{content:"\f0c3"}i.icon.law:before{content:"\f24e"}i.icon.legal:before{content:"\f0e3"}i.icon.lesbian:before{content:"\f226"}i.icon.lightning:before{content:"\f0e7"}i.icon.like:before{content:"\f004"}i.icon.line.graph:before{content:"\f201"}i.icon.linkedin.square:before{content:"\f08c"}i.icon.linkify:before{content:"\f0c1"}i.icon.lira:before{content:"\f195"}i.icon.list.layout:before{content:"\f00b"}i.icon.magnify:before{content:"\f00e"}i.icon.mail.forward:before{content:"\f064"}i.icon.mail.square:before{content:"\f199"}i.icon.mail:before{content:"\f0e0"}i.icon.male.homosexual:before{content:"\f227"}i.icon.man:before{content:"\f222"}i.icon.marker:before{content:"\f041"}i.icon.mars.alternate:before{content:"\f229"}i.icon.mars.horizontal:before{content:"\f22b"}i.icon.mars.vertical:before{content:"\f22a"}i.icon.mastercard.card:before,i.icon.mastercard:before{content:"\f1f1"}i.icon.microsoft.edge:before{content:"\f282"}i.icon.military:before{content:"\f0fb"}i.icon.ms.edge:before{content:"\f282"}i.icon.mute:before{content:"\f131"}i.icon.new.pied.piper:before{content:"\f2ae"}i.icon.non.binary.transgender:before{content:"\f223"}i.icon.numbered.list:before{content:"\f0cb"}i.icon.optinmonster:before{content:"\f23c"}i.icon.options:before{content:"\f1de"}i.icon.other.gender.horizontal:before{content:"\f22b"}i.icon.other.gender.vertical:before{content:"\f22a"}i.icon.other.gender:before{content:"\f229"}i.icon.payment:before{content:"\f09d"}i.icon.paypal.card:before{content:"\f1f4"}i.icon.pencil.square:before{content:"\f14b"}i.icon.photo:before{content:"\f030"}i.icon.picture:before{content:"\f03e"}i.icon.pie.chart:before,i.icon.pie.graph:before{content:"\f200"}i.icon.pied.piper.hat:before{content:"\f2ae"}i.icon.pin:before{content:"\f08d"}i.icon.plus.cart:before{content:"\f217"}i.icon.pocket:before{content:"\f265"}i.icon.point:before{content:"\f041"}i.icon.pointing.down:before{content:"\f0a7"}i.icon.pointing.left:before{content:"\f0a5"}i.icon.pointing.right:before{content:"\f0a4"}i.icon.pointing.up:before{content:"\f0a6"}i.icon.pound:before{content:"\f154"}i.icon.power.cord:before{content:"\f1e6"}i.icon.power:before{content:"\f011"}i.icon.privacy:before{content:"\f084"}i.icon.r.circle:before{content:"\f25d"}i.icon.rain:before{content:"\f0e9"}i.icon.record:before{content:"\f03d"}i.icon.refresh:before{content:"\f021"}i.icon.remove.circle:before{content:"\f057"}i.icon.remove.from.calendar:before{content:"\f272"}i.icon.remove.user:before{content:"\f235"}i.icon.remove:before{content:"\f00d"}i.icon.repeat:before{content:"\f01e"}i.icon.rmb:before{content:"\f157"}i.icon.rouble:before,i.icon.rub:before,i.icon.ruble:before{content:"\f158"}i.icon.rupee:before{content:"\f156"}i.icon.s15:before{content:"\f2cd"}i.icon.selected.radio:before{content:"\f192"}i.icon.send:before{content:"\f1d8"}i.icon.setting:before{content:"\f013"}i.icon.settings:before{content:"\f085"}i.icon.shekel:before,i.icon.sheqel:before{content:"\f20b"}i.icon.shipping:before{content:"\f0d1"}i.icon.shop:before{content:"\f07a"}i.icon.shuffle:before{content:"\f074"}i.icon.shutdown:before{content:"\f011"}i.icon.sidebar:before{content:"\f0c9"}i.icon.signing:before{content:"\f2a7"}i.icon.signup:before{content:"\f044"}i.icon.sliders:before{content:"\f1de"}i.icon.soccer:before{content:"\f1e3"}i.icon.sort.alphabet.ascending:before{content:"\f15d"}i.icon.sort.alphabet.descending:before{content:"\f15e"}i.icon.sort.ascending:before{content:"\f0de"}i.icon.sort.content.ascending:before{content:"\f160"}i.icon.sort.content.descending:before{content:"\f161"}i.icon.sort.descending:before{content:"\f0dd"}i.icon.sort.numeric.ascending:before{content:"\f162"}i.icon.sort.numeric.descending:before{content:"\f163"}i.icon.sound:before{content:"\f025"}i.icon.spy:before{content:"\f21b"}i.icon.stripe.card:before{content:"\f1f5"}i.icon.student:before{content:"\f19d"}i.icon.talk:before{content:"\f27a"}i.icon.target:before{content:"\f140"}i.icon.teletype:before{content:"\f1e4"}i.icon.television:before{content:"\f26c"}i.icon.text.cursor:before{content:"\f246"}i.icon.text.telephone:before{content:"\f1e4"}i.icon.theme.isle:before{content:"\f2b2"}i.icon.theme:before{content:"\f043"}i.icon.thermometer:before{content:"\f2c7"}i.icon.thumb.tack:before{content:"\f08d"}i.icon.time:before{content:"\f017"}i.icon.tm:before{content:"\f25c"}i.icon.toggle.down:before{content:"\f150"}i.icon.toggle.left:before{content:"\f191"}i.icon.toggle.right:before{content:"\f152"}i.icon.toggle.up:before{content:"\f151"}i.icon.translate:before{content:"\f1ab"}i.icon.travel:before{content:"\f0b1"}i.icon.treatment:before{content:"\f0f1"}i.icon.triangle.down:before{content:"\f0d7"}i.icon.triangle.left:before{content:"\f0d9"}i.icon.triangle.right:before{content:"\f0da"}i.icon.triangle.up:before{content:"\f0d8"}i.icon.try:before{content:"\f195"}i.icon.unhide:before{content:"\f06e"}i.icon.unlinkify:before{content:"\f127"}i.icon.unmute:before{content:"\f130"}i.icon.usd:before{content:"\f155"}i.icon.user.cancel:before,i.icon.user.close:before,i.icon.user.delete:before,i.icon.user.x:before{content:"\f235"}i.icon.vcard:before{content:"\f2bb"}i.icon.video.camera:before{content:"\f03d"}i.icon.video.play:before{content:"\f144"}i.icon.visa.card:before,i.icon.visa:before{content:"\f1f0"}i.icon.volume.control.phone:before{content:"\f2a0"}i.icon.wait:before{content:"\f017"}i.icon.warning.circle:before{content:"\f06a"}i.icon.warning.sign:before{content:"\f071"}i.icon.warning:before{content:"\f12a"}i.icon.wechat:before{content:"\f1d7"}i.icon.wi-fi:before{content:"\f1eb"}i.icon.wikipedia:before{content:"\f266"}i.icon.winner:before{content:"\f091"}i.icon.wizard:before{content:"\f0d0"}i.icon.woman:before{content:"\f221"}i.icon.won:before{content:"\f159"}i.icon.wordpress.beginner:before{content:"\f297"}i.icon.wordpress.forms:before{content:"\f298"}i.icon.world:before{content:"\f0ac"}i.icon.write.square:before{content:"\f14b"}i.icon.x:before{content:"\f00d"}i.icon.yc:before,i.icon.ycombinator:before{content:"\f23b"}i.icon.yen:before{content:"\f157"}i.icon.zip:before{content:"\f187"}i.icon.zoom-in:before{content:"\f00e"}i.icon.zoom-out:before{content:"\f010"}i.icon.zoom:before{content:"\f00e"}i.icon.bitbucket.square:before{content:"\f171"}i.icon.checkmark.box:before{content:"\f14a"}i.icon.circle.thin:before{content:"\f111"}i.icon.cloud.download:before{content:"\f381"}i.icon.cloud.upload:before{content:"\f382"}i.icon.compose:before{content:"\f303"}i.icon.conversation:before{content:"\f086"}i.icon.credit.card.alternative:before{content:"\f09d"}i.icon.currency:before{content:"\f3d1"}i.icon.dashboard:before{content:"\f3fd"}i.icon.diamond:before{content:"\f3a5"}i.icon.disk:before{content:"\f0a0"}i.icon.exchange:before{content:"\f362"}i.icon.external.share:before{content:"\f14d"}i.icon.external.square:before{content:"\f360"}i.icon.external:before{content:"\f35d"}i.icon.facebook.official:before{content:"\f082"}i.icon.food:before{content:"\f2e7"}i.icon.hourglass.zero:before{content:"\f253"}i.icon.level.down:before{content:"\f3be"}i.icon.level.up:before{content:"\f3bf"}i.icon.logout:before{content:"\f2f5"}i.icon.meanpath:before{content:"\f0c8"}i.icon.money:before{content:"\f3d1"}i.icon.move:before{content:"\f0b2"}i.icon.pencil:before{content:"\f303"}i.icon.protect:before{content:"\f023"}i.icon.radio:before{content:"\f192"}i.icon.remove.bookmark:before{content:"\f02e"}i.icon.resize.horizontal:before{content:"\f337"}i.icon.resize.vertical:before{content:"\f338"}i.icon.sign-in:before{content:"\f2f6"}i.icon.sign-out:before{content:"\f2f5"}i.icon.spoon:before{content:"\f2e5"}i.icon.star.half.empty:before,i.icon.star.half.full:before{content:"\f089"}i.icon.ticket:before{content:"\f3ff"}i.icon.times.rectangle:before{content:"\f410"}i.icon.write:before{content:"\f303"}i.icon.youtube.play:before{content:"\f167"}@font-face{font-family:outline-icons;src:url(/assets/fonts/outline-icons.eot);src:url(/assets/fonts/outline-icons.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/outline-icons.woff2) format("woff2"),url(/assets/fonts/outline-icons.woff) format("woff"),url(/assets/fonts/outline-icons.ttf) format("truetype"),url(/assets/fonts/outline-icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon.outline{font-family:outline-icons}i.icon.address.book.outline:before{content:"\f2b9"}i.icon.address.card.outline:before{content:"\f2bb"}i.icon.arrow.alternate.circle.down.outline:before{content:"\f358"}i.icon.arrow.alternate.circle.left.outline:before{content:"\f359"}i.icon.arrow.alternate.circle.right.outline:before{content:"\f35a"}i.icon.arrow.alternate.circle.up.outline:before{content:"\f35b"}i.icon.bell.outline:before{content:"\f0f3"}i.icon.bell.slash.outline:before{content:"\f1f6"}i.icon.bookmark.outline:before{content:"\f02e"}i.icon.building.outline:before{content:"\f1ad"}i.icon.calendar.outline:before{content:"\f133"}i.icon.calendar.alternate.outline:before{content:"\f073"}i.icon.calendar.check.outline:before{content:"\f274"}i.icon.calendar.minus.outline:before{content:"\f272"}i.icon.calendar.plus.outline:before{content:"\f271"}i.icon.calendar.times.outline:before{content:"\f273"}i.icon.caret.square.down.outline:before{content:"\f150"}i.icon.caret.square.left.outline:before{content:"\f191"}i.icon.caret.square.right.outline:before{content:"\f152"}i.icon.caret.square.up.outline:before{content:"\f151"}i.icon.chart.bar.outline:before{content:"\f080"}i.icon.check.circle.outline:before{content:"\f058"}i.icon.check.square.outline:before{content:"\f14a"}i.icon.circle.outline:before{content:"\f111"}i.icon.clipboard.outline:before{content:"\f328"}i.icon.clock.outline:before{content:"\f017"}i.icon.clone.outline:before{content:"\f24d"}i.icon.closed.captioning.outline:before{content:"\f20a"}i.icon.comment.outline:before{content:"\f075"}i.icon.comment.alternate.outline:before{content:"\f27a"}i.icon.comments.outline:before{content:"\f086"}i.icon.compass.outline:before{content:"\f14e"}i.icon.copy.outline:before{content:"\f0c5"}i.icon.copyright.outline:before{content:"\f1f9"}i.icon.credit.card.outline:before{content:"\f09d"}i.icon.dot.circle.outline:before{content:"\f192"}i.icon.edit.outline:before{content:"\f044"}i.icon.envelope.outline:before{content:"\f0e0"}i.icon.envelope.open.outline:before{content:"\f2b6"}i.icon.eye.slash.outline:before{content:"\f070"}i.icon.file.outline:before{content:"\f15b"}i.icon.file.alternate.outline:before{content:"\f15c"}i.icon.file.archive.outline:before{content:"\f1c6"}i.icon.file.audio.outline:before{content:"\f1c7"}i.icon.file.code.outline:before{content:"\f1c9"}i.icon.file.excel.outline:before{content:"\f1c3"}i.icon.file.image.outline:before{content:"\f1c5"}i.icon.file.pdf.outline:before{content:"\f1c1"}i.icon.file.powerpoint.outline:before{content:"\f1c4"}i.icon.file.video.outline:before{content:"\f1c8"}i.icon.file.word.outline:before{content:"\f1c2"}i.icon.flag.outline:before{content:"\f024"}i.icon.folder.outline:before{content:"\f07b"}i.icon.folder.open.outline:before{content:"\f07c"}i.icon.frown.outline:before{content:"\f119"}i.icon.futbol.outline:before{content:"\f1e3"}i.icon.gem.outline:before{content:"\f3a5"}i.icon.hand.lizard.outline:before{content:"\f258"}i.icon.hand.paper.outline:before{content:"\f256"}i.icon.hand.peace.outline:before{content:"\f25b"}i.icon.hand.point.down.outline:before{content:"\f0a7"}i.icon.hand.point.left.outline:before{content:"\f0a5"}i.icon.hand.point.right.outline:before{content:"\f0a4"}i.icon.hand.point.up.outline:before{content:"\f0a6"}i.icon.hand.pointer.outline:before{content:"\f25a"}i.icon.hand.rock.outline:before{content:"\f255"}i.icon.hand.scissors.outline:before{content:"\f257"}i.icon.hand.spock.outline:before{content:"\f259"}i.icon.handshake.outline:before{content:"\f2b5"}i.icon.hdd.outline:before{content:"\f0a0"}i.icon.heart.outline:before{content:"\f004"}i.icon.hospital.outline:before{content:"\f0f8"}i.icon.hourglass.outline:before{content:"\f254"}i.icon.id.badge.outline:before{content:"\f2c1"}i.icon.id.card.outline:before{content:"\f2c2"}i.icon.image.outline:before{content:"\f03e"}i.icon.images.outline:before{content:"\f302"}i.icon.keyboard.outline:before{content:"\f11c"}i.icon.lemon.outline:before{content:"\f094"}i.icon.life.ring.outline:before{content:"\f1cd"}i.icon.lightbulb.outline:before{content:"\f0eb"}i.icon.list.alternate.outline:before{content:"\f022"}i.icon.map.outline:before{content:"\f279"}i.icon.meh.outline:before{content:"\f11a"}i.icon.minus.square.outline:before{content:"\f146"}i.icon.money.bill.alternate.outline:before{content:"\f3d1"}i.icon.moon.outline:before{content:"\f186"}i.icon.newspaper.outline:before{content:"\f1ea"}i.icon.object.group.outline:before{content:"\f247"}i.icon.object.ungroup.outline:before{content:"\f248"}i.icon.paper.plane.outline:before{content:"\f1d8"}i.icon.pause.circle.outline:before{content:"\f28b"}i.icon.play.circle.outline:before{content:"\f144"}i.icon.plus.square.outline:before{content:"\f0fe"}i.icon.question.circle.outline:before{content:"\f059"}i.icon.registered.outline:before{content:"\f25d"}i.icon.save.outline:before{content:"\f0c7"}i.icon.share.square.outline:before{content:"\f14d"}i.icon.smile.outline:before{content:"\f118"}i.icon.snowflake.outline:before{content:"\f2dc"}i.icon.square.outline:before{content:"\f0c8"}i.icon.star.outline:before{content:"\f005"}i.icon.star.half.outline:before{content:"\f089"}i.icon.sticky.note.outline:before{content:"\f249"}i.icon.stop.circle.outline:before{content:"\f28d"}i.icon.sun.outline:before{content:"\f185"}i.icon.thumbs.down.outline:before{content:"\f165"}i.icon.thumbs.up.outline:before{content:"\f164"}i.icon.times.circle.outline:before{content:"\f057"}i.icon.trash.alternate.outline:before{content:"\f2ed"}i.icon.user.outline:before{content:"\f007"}i.icon.user.circle.outline:before{content:"\f2bd"}i.icon.window.close.outline:before{content:"\f410"}i.icon.window.maximize.outline:before{content:"\f2d0"}i.icon.window.minimize.outline:before{content:"\f2d1"}i.icon.window.restore.outline:before{content:"\f2d2"}i.icon.disk.outline:before{content:"\f0a0"}i.icon.heart.empty,i.icon.star.empty{font-family:outline-icons}i.icon.heart.empty:before{content:"\f004"}i.icon.star.empty:before{content:"\f089"}@font-face{font-family:brand-icons;src:url(/assets/fonts/brand-icons.eot);src:url(/assets/fonts/brand-icons.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/brand-icons.woff2) format("woff2"),url(/assets/fonts/brand-icons.woff) format("woff"),url(/assets/fonts/brand-icons.ttf) format("truetype"),url(/assets/fonts/brand-icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon.\35 00px,i.icon.accessible.icon,i.icon.accusoft,i.icon.adn,i.icon.adversal,i.icon.affiliatetheme,i.icon.algolia,i.icon.amazon,i.icon.amazon.pay,i.icon.amilia,i.icon.android,i.icon.angellist,i.icon.angrycreative,i.icon.angular,i.icon.app.store,i.icon.app.store.ios,i.icon.apper,i.icon.apple,i.icon.apple.pay,i.icon.asymmetrik,i.icon.audible,i.icon.autoprefixer,i.icon.avianex,i.icon.aviato,i.icon.aws,i.icon.bandcamp,i.icon.behance,i.icon.behance.square,i.icon.bimobject,i.icon.bitbucket,i.icon.bitcoin,i.icon.bity,i.icon.black.tie,i.icon.blackberry,i.icon.blogger,i.icon.blogger.b,i.icon.bluetooth,i.icon.bluetooth.b,i.icon.btc,i.icon.buromobelexperte,i.icon.buysellads,i.icon.cc.amazon.pay,i.icon.cc.amex,i.icon.cc.apple.pay,i.icon.cc.diners.club,i.icon.cc.discover,i.icon.cc.jcb,i.icon.cc.mastercard,i.icon.cc.paypal,i.icon.cc.stripe,i.icon.cc.visa,i.icon.centercode,i.icon.chrome,i.icon.cloudscale,i.icon.cloudsmith,i.icon.cloudversify,i.icon.codepen,i.icon.codiepie,i.icon.connectdevelop,i.icon.contao,i.icon.cpanel,i.icon.creative.commons,i.icon.css3,i.icon.css3.alternate,i.icon.cuttlefish,i.icon.d.and.d,i.icon.dashcube,i.icon.delicious,i.icon.deploydog,i.icon.deskpro,i.icon.deviantart,i.icon.digg,i.icon.digital.ocean,i.icon.discord,i.icon.discourse,i.icon.dochub,i.icon.docker,i.icon.draft2digital,i.icon.dribbble,i.icon.dribbble.square,i.icon.dropbox,i.icon.drupal,i.icon.dyalog,i.icon.earlybirds,i.icon.edge,i.icon.elementor,i.icon.ember,i.icon.empire,i.icon.envira,i.icon.erlang,i.icon.ethereum,i.icon.etsy,i.icon.expeditedssl,i.icon.facebook,i.icon.facebook.f,i.icon.facebook.messenger,i.icon.facebook.square,i.icon.firefox,i.icon.first.order,i.icon.firstdraft,i.icon.flickr,i.icon.flipboard,i.icon.fly,i.icon.font.awesome,i.icon.font.awesome.alternate,i.icon.font.awesome.flag,i.icon.fonticons,i.icon.fonticons.fi,i.icon.fort.awesome,i.icon.fort.awesome.alternate,i.icon.forumbee,i.icon.foursquare,i.icon.free.code.camp,i.icon.freebsd,i.icon.get.pocket,i.icon.gg,i.icon.gg.circle,i.icon.git,i.icon.git.square,i.icon.github,i.icon.github.alternate,i.icon.github.square,i.icon.gitkraken,i.icon.gitlab,i.icon.gitter,i.icon.glide,i.icon.glide.g,i.icon.gofore,i.icon.goodreads,i.icon.goodreads.g,i.icon.google,i.icon.google.drive,i.icon.google.play,i.icon.google.plus,i.icon.google.plus.g,i.icon.google.plus.square,i.icon.google.wallet,i.icon.gratipay,i.icon.grav,i.icon.gripfire,i.icon.grunt,i.icon.gulp,i.icon.hacker.news,i.icon.hacker.news.square,i.icon.hips,i.icon.hire.a.helper,i.icon.hooli,i.icon.hotjar,i.icon.houzz,i.icon.html5,i.icon.hubspot,i.icon.imdb,i.icon.instagram,i.icon.internet.explorer,i.icon.ioxhost,i.icon.itunes,i.icon.itunes.note,i.icon.jenkins,i.icon.joget,i.icon.joomla,i.icon.js,i.icon.js.square,i.icon.jsfiddle,i.icon.keycdn,i.icon.kickstarter,i.icon.kickstarter.k,i.icon.korvue,i.icon.laravel,i.icon.lastfm,i.icon.lastfm.square,i.icon.leanpub,i.icon.less,i.icon.linechat,i.icon.linkedin,i.icon.linkedin.alternate,i.icon.linkedin.in,i.icon.linode,i.icon.linux,i.icon.lyft,i.icon.magento,i.icon.maxcdn,i.icon.medapps,i.icon.medium,i.icon.medium.m,i.icon.medrt,i.icon.meetup,i.icon.microsoft,i.icon.mix,i.icon.mixcloud,i.icon.mizuni,i.icon.modx,i.icon.monero,i.icon.napster,i.icon.nintendo.switch,i.icon.node,i.icon.node.js,i.icon.npm,i.icon.ns8,i.icon.nutritionix,i.icon.odnoklassniki,i.icon.odnoklassniki.square,i.icon.opencart,i.icon.openid,i.icon.opera,i.icon.optin.monster,i.icon.osi,i.icon.page4,i.icon.pagelines,i.icon.palfed,i.icon.patreon,i.icon.paypal,i.icon.periscope,i.icon.phabricator,i.icon.phoenix.framework,i.icon.php,i.icon.pied.piper,i.icon.pied.piper.alternate,i.icon.pied.piper.pp,i.icon.pinterest,i.icon.pinterest.p,i.icon.pinterest.square,i.icon.playstation,i.icon.product.hunt,i.icon.pushed,i.icon.python,i.icon.qq,i.icon.quinscape,i.icon.quora,i.icon.ravelry,i.icon.react,i.icon.rebel,i.icon.reddit,i.icon.reddit.alien,i.icon.reddit.square,i.icon.redriver,i.icon.rendact,i.icon.renren,i.icon.replyd,i.icon.resolving,i.icon.rocketchat,i.icon.rockrms,i.icon.safari,i.icon.sass,i.icon.schlix,i.icon.scribd,i.icon.searchengin,i.icon.sellcast,i.icon.sellsy,i.icon.servicestack,i.icon.shirtsinbulk,i.icon.simplybuilt,i.icon.sistrix,i.icon.skyatlas,i.icon.skype,i.icon.slack,i.icon.slack.hash,i.icon.slideshare,i.icon.snapchat,i.icon.snapchat.ghost,i.icon.snapchat.square,i.icon.soundcloud,i.icon.speakap,i.icon.spotify,i.icon.stack.exchange,i.icon.stack.overflow,i.icon.staylinked,i.icon.steam,i.icon.steam.square,i.icon.steam.symbol,i.icon.sticker.mule,i.icon.strava,i.icon.stripe,i.icon.stripe.s,i.icon.studiovinari,i.icon.stumbleupon,i.icon.stumbleupon.circle,i.icon.superpowers,i.icon.supple,i.icon.telegram,i.icon.telegram.plane,i.icon.tencent.weibo,i.icon.themeisle,i.icon.trello,i.icon.tripadvisor,i.icon.tumblr,i.icon.tumblr.square,i.icon.twitch,i.icon.twitter,i.icon.twitter.square,i.icon.typo3,i.icon.uber,i.icon.uikit,i.icon.uniregistry,i.icon.untappd,i.icon.usb,i.icon.ussunnah,i.icon.vaadin,i.icon.viacoin,i.icon.viadeo,i.icon.viadeo.square,i.icon.viber,i.icon.vimeo,i.icon.vimeo.square,i.icon.vimeo.v,i.icon.vine,i.icon.vk,i.icon.vnv,i.icon.vuejs,i.icon.wechat,i.icon.weibo,i.icon.weixin,i.icon.whatsapp,i.icon.whatsapp.square,i.icon.whmcs,i.icon.wikipedia.w,i.icon.windows,i.icon.wordpress,i.icon.wordpress.simple,i.icon.wpbeginner,i.icon.wpexplorer,i.icon.wpforms,i.icon.xbox,i.icon.xing,i.icon.xing.square,i.icon.y.combinator,i.icon.yahoo,i.icon.yandex,i.icon.yandex.international,i.icon.yelp,i.icon.yoast,i.icon.youtube,i.icon.youtube.square{font-family:brand-icons}
/*!
 * # Semantic UI - Image
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:transparent}img.ui.image{display:block}.ui.image img,.ui.image svg{display:block;max-width:100%;height:auto}.ui.hidden.image,.ui.hidden.images{display:none}.ui.hidden.transition.image,.ui.hidden.transition.images{display:block;visibility:hidden}.ui.images>.hidden.transition{display:inline-block;visibility:hidden}.ui.disabled.image,.ui.disabled.images{cursor:default;opacity:.45}.ui.inline.image,.ui.inline.image img,.ui.inline.image svg{display:inline-block}.ui.top.aligned.image,.ui.top.aligned.image img,.ui.top.aligned.images .image,.ui.top.aligned.image svg{display:inline-block;vertical-align:top}.ui.middle.aligned.image,.ui.middle.aligned.image img,.ui.middle.aligned.images .image,.ui.middle.aligned.image svg{display:inline-block;vertical-align:middle}.ui.bottom.aligned.image,.ui.bottom.aligned.image img,.ui.bottom.aligned.images .image,.ui.bottom.aligned.image svg{display:inline-block;vertical-align:bottom}.ui.rounded.image,.ui.rounded.image>*,.ui.rounded.images .image,.ui.rounded.images .image>*{border-radius:.3125em}.ui.bordered.image img,.ui.bordered.images .image,.ui.bordered.images img,.ui.bordered.images svg,.ui.bordered.image svg,img.ui.bordered.image{border:1px solid rgba(0,0,0,.1)}.ui.circular.image,.ui.circular.images{overflow:hidden}.ui.circular.image,.ui.circular.image>*,.ui.circular.images .image,.ui.circular.images .image>*{border-radius:500rem}.ui.fluid.image,.ui.fluid.image img,.ui.fluid.images,.ui.fluid.images img,.ui.fluid.images svg,.ui.fluid.image svg{display:block;width:100%;height:auto}.ui.avatar.image,.ui.avatar.image img,.ui.avatar.images .image,.ui.avatar.images img,.ui.avatar.images svg,.ui.avatar.image svg{margin-right:.25em;display:inline-block;width:2em;height:2em;border-radius:500rem}.ui.spaced.image{display:inline-block!important;margin-left:.5em;margin-right:.5em}.ui[class*="left spaced"].image{margin-left:.5em;margin-right:0}.ui[class*="right spaced"].image{margin-left:0;margin-right:.5em}.ui.floated.image,.ui.floated.images{float:left;margin-right:1em;margin-bottom:1em}.ui.right.floated.image,.ui.right.floated.images{float:right;margin-right:0;margin-bottom:1em;margin-left:1em}.ui.floated.image:last-child,.ui.floated.images:last-child{margin-bottom:0}.ui.centered.image,.ui.centered.images{margin-left:auto;margin-right:auto}.ui.mini.image,.ui.mini.images .image,.ui.mini.images img,.ui.mini.images svg{width:35px;height:auto;font-size:11px;font-size:.78571429rem}.ui.tiny.image,.ui.tiny.images .image,.ui.tiny.images img,.ui.tiny.images svg{width:80px;height:auto;font-size:12px;font-size:.85714286rem}.ui.small.image,.ui.small.images .image,.ui.small.images img,.ui.small.images svg{width:150px;height:auto;font-size:13px;font-size:.92857143rem}.ui.medium.image,.ui.medium.images .image,.ui.medium.images img,.ui.medium.images svg{width:300px;height:auto;font-size:14px;font-size:1rem}.ui.large.image,.ui.large.images .image,.ui.large.images img,.ui.large.images svg{width:450px;height:auto;font-size:15.999px;font-size:1.14285714rem}.ui.big.image,.ui.big.images .image,.ui.big.images img,.ui.big.images svg{width:600px;height:auto;font-size:18px;font-size:1.28571429rem}.ui.huge.image,.ui.huge.images .image,.ui.huge.images img,.ui.huge.images svg{width:800px;height:auto;font-size:20px;font-size:1.42857143rem}.ui.massive.image,.ui.massive.images .image,.ui.massive.images img,.ui.massive.images svg{width:960px;height:auto;font-size:23.999px;font-size:1.71428571rem}.ui.images{font-size:0;margin:0 -.25rem}.ui.images .image,.ui.images>img,.ui.images>svg{display:inline-block;margin:0 .25rem .5rem}
/*!
 * # Semantic UI - Input
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.input{position:relative;font-weight:400;font-style:normal;display:inline-flex;color:rgba(0,0,0,.87)}.ui.input>input{margin:0;max-width:100%;flex:1 0 auto;outline:none;-webkit-tap-highlight-color:rgba(255,255,255,0);text-align:left;line-height:1.21428571em;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;padding:.67857143em 1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);border-radius:.21428571rem;transition:box-shadow .1s ease,border-color .1s ease;box-shadow:none}.ui.input>input::-webkit-input-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.input>input::-moz-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.input>input:-ms-input-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.disabled.input,.ui.input:not(.disabled) input[disabled]{opacity:.45}.ui.disabled.input>input,.ui.input:not(.disabled) input[disabled]{pointer-events:none}.ui.input.down input,.ui.input>input:active{border-color:rgba(0,0,0,.3);background:#fafafa;color:rgba(0,0,0,.87);box-shadow:none}.ui.loading.loading.input>i.icon:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.loading.input>i.icon:after,.ui.loading.loading.input>i.icon:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.loading.input>i.icon:after{-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#767676;box-shadow:0 0 0 1px transparent}.ui.input.focus>input,.ui.input>input:focus{border-color:#85b7d9;background:#fff;color:rgba(0,0,0,.8);box-shadow:none}.ui.input.focus>input::-webkit-input-placeholder,.ui.input>input:focus::-webkit-input-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.input.focus>input::-moz-placeholder,.ui.input>input:focus::-moz-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.input.focus>input:-ms-input-placeholder,.ui.input>input:focus:-ms-input-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.input.error>input{background-color:#fff6f6;border-color:#e0b4b4;color:#9f3a38;box-shadow:none}.ui.input.error>input::-webkit-input-placeholder{color:#e7bdbc}.ui.input.error>input::-moz-placeholder{color:#e7bdbc}.ui.input.error>input:-ms-input-placeholder{color:#e7bdbc!important}.ui.input.error>input:focus::-webkit-input-placeholder{color:#da9796}.ui.input.error>input:focus::-moz-placeholder{color:#da9796}.ui.input.error>input:focus:-ms-input-placeholder{color:#da9796!important}.ui.transparent.input>input{border-color:transparent!important;background-color:transparent!important;padding:0!important;box-shadow:none!important;border-radius:0!important}.ui.transparent.icon.input>i.icon{width:1.1em}.ui.transparent.icon.input>input{padding-left:0!important;padding-right:2em!important}.ui.transparent[class*="left icon"].input>input{padding-left:2em!important;padding-right:0!important}.ui.transparent.inverted.input{color:#fff}.ui.transparent.inverted.input>input{color:inherit}.ui.transparent.inverted.input>input::-webkit-input-placeholder{color:hsla(0,0%,100%,.5)}.ui.transparent.inverted.input>input::-moz-placeholder{color:hsla(0,0%,100%,.5)}.ui.transparent.inverted.input>input:-ms-input-placeholder{color:hsla(0,0%,100%,.5)}.ui.icon.input>i.icon{cursor:default;position:absolute;line-height:1;text-align:center;top:0;right:0;margin:0;height:100%;width:2.67142857em;opacity:.5;border-radius:0 .21428571rem .21428571rem 0;transition:opacity .3s ease}.ui.icon.input>i.icon:not(.link){pointer-events:none}.ui.icon.input>input{padding-right:2.67142857em!important}.ui.icon.input>i.icon:after,.ui.icon.input>i.icon:before{left:0;position:absolute;text-align:center;top:50%;width:100%;margin-top:-.5em}.ui.icon.input>i.link.icon{cursor:pointer}.ui.icon.input>i.circular.icon{top:.35em;right:.5em}.ui[class*="left icon"].input>i.icon{right:auto;left:1px;border-radius:.21428571rem 0 0 .21428571rem}.ui[class*="left icon"].input>i.circular.icon{right:auto;left:.5em}.ui[class*="left icon"].input>input{padding-left:2.67142857em!important;padding-right:1em!important}.ui.icon.input>input:focus~i.icon{opacity:1}.ui.labeled.input>.label{flex:0 0 auto;margin:0;font-size:1em}.ui.labeled.input>.label:not(.corner){padding-top:.78571429em;padding-bottom:.78571429em}.ui.labeled.input:not([class*="corner labeled"]) .label:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ui.labeled.input:not([class*="corner labeled"]) .label:first-child+input{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:transparent}.ui.labeled.input:not([class*="corner labeled"]) .label:first-child+input:focus{border-left-color:#85b7d9}.ui[class*="right labeled"].input>input{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right-color:transparent!important}.ui[class*="right labeled"].input>input+.label{border-top-left-radius:0;border-bottom-left-radius:0}.ui[class*="right labeled"].input>input:focus{border-right-color:#85b7d9!important}.ui.labeled.input .corner.label{top:1px;right:1px;font-size:.64285714em;border-radius:0 .21428571rem 0 0}.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input>input{padding-right:2.5em!important}.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"])>input{padding-right:3.25em!important}.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"])>.icon{margin-right:1.25em}.ui[class*="left corner labeled"].labeled.input>input{padding-left:2.5em!important}.ui[class*="left corner labeled"].icon.input>input{padding-left:3.25em!important}.ui[class*="left corner labeled"].icon.input>.icon{margin-left:1.25em}.ui.input>.ui.corner.label{top:1px;right:1px}.ui.input>.ui.left.corner.label{right:auto;left:1px}.ui.action.input>.button,.ui.action.input>.buttons{display:flex;align-items:center;flex:0 0 auto}.ui.action.input>.button,.ui.action.input>.buttons>.button{padding-top:.78571429em;padding-bottom:.78571429em;margin:0}.ui.action.input:not([class*="left action"])>input{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right-color:transparent!important}.ui.action.input:not([class*="left action"])>.button:not(:first-child),.ui.action.input:not([class*="left action"])>.buttons:not(:first-child)>.button,.ui.action.input:not([class*="left action"])>.dropdown:not(:first-child){border-radius:0}.ui.action.input:not([class*="left action"])>.button:last-child,.ui.action.input:not([class*="left action"])>.buttons:last-child>.button,.ui.action.input:not([class*="left action"])>.dropdown:last-child{border-radius:0 .21428571rem .21428571rem 0}.ui.action.input:not([class*="left action"])>input:focus{border-right-color:#85b7d9!important}.ui[class*="left action"].input>input{border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-left-color:transparent!important}.ui[class*="left action"].input>.button,.ui[class*="left action"].input>.buttons>.button,.ui[class*="left action"].input>.dropdown{border-radius:0}.ui[class*="left action"].input>.button:first-child,.ui[class*="left action"].input>.buttons:first-child>.button,.ui[class*="left action"].input>.dropdown:first-child{border-radius:.21428571rem 0 0 .21428571rem}.ui[class*="left action"].input>input:focus{border-left-color:#85b7d9!important}.ui.inverted.input>input{border:none}.ui.fluid.input{display:flex}.ui.fluid.input>input{width:0!important}.ui.mini.input{font-size:.78571429em}.ui.small.input{font-size:.92857143em}.ui.input{font-size:1em}.ui.large.input{font-size:1.14285714em}.ui.big.input{font-size:1.28571429em}.ui.huge.input{font-size:1.42857143em}.ui.massive.input{font-size:1.71428571em}
/*!
 * # Semantic UI - Label
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.label{display:inline-block;line-height:1;vertical-align:baseline;margin:0 .14285714em;background-color:#e8e8e8;background-image:none;padding:.5833em .833em;color:rgba(0,0,0,.6);text-transform:none;font-weight:700;border:0 solid transparent;border-radius:.21428571rem;transition:background .1s ease}.ui.label:first-child{margin-left:0}.ui.label:last-child{margin-right:0}.ui.label>a,a.ui.label{cursor:pointer}.ui.label>a{color:inherit;opacity:.5;transition:opacity .1s ease}.ui.label>a:hover{opacity:1}.ui.label>img{width:auto!important;vertical-align:middle;height:2.1666em!important}.ui.label>.icon{width:auto;margin:0 .75em 0 0}.ui.label>.detail{display:inline-block;vertical-align:top;font-weight:700;margin-left:1em;opacity:.8}.ui.label>.detail .icon{margin:0 .25em 0 0}.ui.label>.close.icon,.ui.label>.delete.icon{cursor:pointer;margin-right:0;margin-left:.5em;font-size:.92857143em;opacity:.5;transition:background .1s ease}.ui.label>.delete.icon:hover{opacity:1}.ui.labels>.label{margin:0 .5em .5em 0}.ui.header>.ui.label{margin-top:-.29165em}.ui.attached.segment>.ui.top.left.attached.label,.ui.bottom.attached.segment>.ui.top.left.attached.label{border-top-left-radius:0}.ui.attached.segment>.ui.top.right.attached.label,.ui.bottom.attached.segment>.ui.top.right.attached.label{border-top-right-radius:0}.ui.top.attached.segment>.ui.bottom.left.attached.label{border-bottom-left-radius:0}.ui.top.attached.segment>.ui.bottom.right.attached.label{border-bottom-right-radius:0}.ui.top.attached.label+[class*="right floated"]+*,.ui.top.attached.label:first-child+:not(.attached){margin-top:2rem!important}.ui.bottom.attached.label:first-child~:last-child:not(.attached){margin-top:0;margin-bottom:2rem!important}.ui.image.label{width:auto!important;margin-top:0;margin-bottom:0;max-width:9999px;vertical-align:baseline;text-transform:none;background:#e8e8e8;padding:.5833em .833em .5833em .5em;border-radius:.21428571rem;box-shadow:none}.ui.image.label img{display:inline-block;vertical-align:top;height:2.1666em;margin:-.5833em .5em -.5833em -.5em;border-radius:.21428571rem 0 0 .21428571rem}.ui.image.label .detail{background:rgba(0,0,0,.1);margin:-.5833em -.833em -.5833em .5em;padding:.5833em .833em;border-radius:0 .21428571rem .21428571rem 0}.ui.tag.label,.ui.tag.labels .label{margin-left:1em;position:relative;padding-left:1.5em;padding-right:1.5em;border-radius:0 .21428571rem .21428571rem 0;transition:none}.ui.tag.label:before,.ui.tag.labels .label:before{position:absolute;transform:translateY(-50%) translateX(50%) rotate(-45deg);top:50%;right:100%;content:"";background-color:inherit;background-image:none;width:1.56em;height:1.56em;transition:none}.ui.tag.label:after,.ui.tag.labels .label:after{position:absolute;content:"";top:50%;left:-.25em;margin-top:-.25em;background-color:#fff!important;width:.5em;height:.5em;box-shadow:0 -1px 1px 0 rgba(0,0,0,.3);border-radius:500rem}.ui.corner.label{margin:0;padding:0;text-align:center;border-color:#e8e8e8;width:4em;height:4em;z-index:1}.ui.corner.label,.ui.corner.label:after{position:absolute;top:0;right:0;transition:border-color .1s ease;background-color:transparent!important}.ui.corner.label:after{content:"";z-index:-1;width:0;height:0;border-color:transparent;border-style:solid;border-width:0 4em 4em 0;border-right-color:inherit}.ui.corner.label .icon{cursor:default;position:relative;top:.64285714em;left:.78571429em;font-size:1.14285714em;margin:0}.ui.left.corner.label,.ui.left.corner.label:after{right:auto;left:0}.ui.left.corner.label:after{border-color:transparent;border-style:solid;border-width:4em 4em 0 0;border-top-color:inherit}.ui.left.corner.label .icon{left:-.78571429em}.ui.segment>.ui.corner.label{top:-1px;right:-1px}.ui.segment>.ui.left.corner.label{right:auto;left:-1px}.ui.ribbon.label{position:relative;margin:0;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;border-radius:0 .21428571rem .21428571rem 0;border-color:rgba(0,0,0,.15)}.ui.ribbon.label:after{position:absolute;content:"";top:100%;left:0;background-color:transparent!important;border-color:transparent;border-style:solid;border-width:0 1.2em 1.2em 0;border-right-color:inherit;width:0;height:0}.ui.ribbon.label{left:-2.2rem;margin-right:-1.2em;padding-left:2.2rem;padding-right:1.2em}.ui[class*="right ribbon"].label{left:102.2%;padding-left:1.2em;padding-right:2.2rem;text-align:left;transform:translateX(-100%);border-radius:.21428571rem 0 0 .21428571rem}.ui[class*="right ribbon"].label:after{left:auto;right:0;border-color:transparent;border-style:solid;border-width:1.2em 1.2em 0 0;border-top-color:inherit}.ui.card .image>.ribbon.label,.ui.image>.ribbon.label{position:absolute;top:14px;top:1rem}.ui.card .image>.ui.ribbon.label,.ui.image>.ui.ribbon.label{left:-1.15rem}.ui.card .image>.ui[class*="right ribbon"].label,.ui.image>.ui[class*="right ribbon"].label{left:101.15%;padding-left:.833em}.ui.table td>.ui.ribbon.label{left:-1.98571em}.ui.table td>.ui[class*="right ribbon"].label{left:101.98571%;padding-left:.833em}.ui.attached.label,.ui[class*="top attached"].label{width:100%;position:absolute;margin:0;top:0;left:0;padding:.75em 1em;border-radius:.21428571rem .21428571rem 0 0}.ui[class*="bottom attached"].label{top:auto;bottom:0;border-radius:0 0 .21428571rem .21428571rem}.ui[class*="top left attached"].label{width:auto;margin-top:0!important;border-radius:.21428571rem 0 .21428571rem 0}.ui[class*="top right attached"].label{width:auto;left:auto;right:0;border-radius:0 .21428571rem 0 .21428571rem}.ui[class*="bottom left attached"].label{width:auto;top:auto;bottom:0;border-radius:0 .21428571rem 0 .21428571rem}.ui[class*="bottom right attached"].label{top:auto;bottom:0;left:auto;right:0;width:auto;border-radius:.21428571rem 0 .21428571rem 0}.ui.label.disabled{opacity:.5}a.ui.label:hover,a.ui.labels .label:hover{background-color:#e0e0e0;border-color:#e0e0e0;background-image:none;color:rgba(0,0,0,.8)}.ui.labels a.label:hover:before,a.ui.label:hover:before{color:rgba(0,0,0,.8)}.ui.active.label{border-color:#d0d0d0}.ui.active.label,.ui.active.label:before{background-color:#d0d0d0;background-image:none;color:rgba(0,0,0,.95)}a.ui.active.label:hover,a.ui.labels .active.label:hover{border-color:#c8c8c8}.ui.labels a.active.label:ActiveHover:before,a.ui.active.label:ActiveHover:before,a.ui.active.label:hover,a.ui.labels .active.label:hover{background-color:#c8c8c8;background-image:none;color:rgba(0,0,0,.95)}.ui.label.visible:not(.dropdown),.ui.labels.visible .label{display:inline-block!important}.ui.label.hidden,.ui.labels.hidden .label{display:none!important}.ui.red.label,.ui.red.labels .label{background-color:#db2828!important;border-color:#db2828!important;color:#fff!important}.ui.red.labels .label:hover,a.ui.red.label:hover{background-color:#d01919!important;border-color:#d01919!important;color:#fff!important}.ui.red.corner.label,.ui.red.corner.label:hover{background-color:transparent!important}.ui.red.ribbon.label{border-color:#b21e1e!important}.ui.basic.red.label{background:none #fff!important;color:#db2828!important;border-color:#db2828!important}.ui.basic.red.labels a.label:hover,a.ui.basic.red.label:hover{background-color:#fff!important;color:#d01919!important;border-color:#d01919!important}.ui.orange.label,.ui.orange.labels .label{background-color:#f2711c!important;border-color:#f2711c!important;color:#fff!important}.ui.orange.labels .label:hover,a.ui.orange.label:hover{background-color:#f26202!important;border-color:#f26202!important;color:#fff!important}.ui.orange.corner.label,.ui.orange.corner.label:hover{background-color:transparent!important}.ui.orange.ribbon.label{border-color:#cf590c!important}.ui.basic.orange.label{background:none #fff!important;color:#f2711c!important;border-color:#f2711c!important}.ui.basic.orange.labels a.label:hover,a.ui.basic.orange.label:hover{background-color:#fff!important;color:#f26202!important;border-color:#f26202!important}.ui.yellow.label,.ui.yellow.labels .label{background-color:#fbbd08!important;border-color:#fbbd08!important;color:#fff!important}.ui.yellow.labels .label:hover,a.ui.yellow.label:hover{background-color:#eaae00!important;border-color:#eaae00!important;color:#fff!important}.ui.yellow.corner.label,.ui.yellow.corner.label:hover{background-color:transparent!important}.ui.yellow.ribbon.label{border-color:#cd9903!important}.ui.basic.yellow.label{background:none #fff!important;color:#fbbd08!important;border-color:#fbbd08!important}.ui.basic.yellow.labels a.label:hover,a.ui.basic.yellow.label:hover{background-color:#fff!important;color:#eaae00!important;border-color:#eaae00!important}.ui.olive.label,.ui.olive.labels .label{background-color:#b5cc18!important;border-color:#b5cc18!important;color:#fff!important}.ui.olive.labels .label:hover,a.ui.olive.label:hover{background-color:#a7bd0d!important;border-color:#a7bd0d!important;color:#fff!important}.ui.olive.corner.label,.ui.olive.corner.label:hover{background-color:transparent!important}.ui.olive.ribbon.label{border-color:#198f35!important}.ui.basic.olive.label{background:none #fff!important;color:#b5cc18!important;border-color:#b5cc18!important}.ui.basic.olive.labels a.label:hover,a.ui.basic.olive.label:hover{background-color:#fff!important;color:#a7bd0d!important;border-color:#a7bd0d!important}.ui.green.label,.ui.green.labels .label{background-color:#21ba45!important;border-color:#21ba45!important;color:#fff!important}.ui.green.labels .label:hover,a.ui.green.label:hover{background-color:#16ab39!important;border-color:#16ab39!important;color:#fff!important}.ui.green.corner.label,.ui.green.corner.label:hover{background-color:transparent!important}.ui.green.ribbon.label{border-color:#198f35!important}.ui.basic.green.label{background:none #fff!important;color:#21ba45!important;border-color:#21ba45!important}.ui.basic.green.labels a.label:hover,a.ui.basic.green.label:hover{background-color:#fff!important;color:#16ab39!important;border-color:#16ab39!important}.ui.teal.label,.ui.teal.labels .label{background-color:#00b5ad!important;border-color:#00b5ad!important;color:#fff!important}.ui.teal.labels .label:hover,a.ui.teal.label:hover{background-color:#009c95!important;border-color:#009c95!important;color:#fff!important}.ui.teal.corner.label,.ui.teal.corner.label:hover{background-color:transparent!important}.ui.teal.ribbon.label{border-color:#00827c!important}.ui.basic.teal.label{background:none #fff!important;color:#00b5ad!important;border-color:#00b5ad!important}.ui.basic.teal.labels a.label:hover,a.ui.basic.teal.label:hover{background-color:#fff!important;color:#009c95!important;border-color:#009c95!important}.ui.blue.label,.ui.blue.labels .label{background-color:#2c6a9e!important;border-color:#2c6a9e!important;color:#fff!important}.ui.blue.labels .label:hover,a.ui.blue.label:hover{background-color:#215d8f!important;border-color:#215d8f!important;color:#fff!important}.ui.blue.corner.label,.ui.blue.corner.label:hover{background-color:transparent!important}.ui.blue.ribbon.label{border-color:#214f76!important}.ui.basic.blue.label{background:none #fff!important;color:#2c6a9e!important;border-color:#2c6a9e!important}.ui.basic.blue.labels a.label:hover,a.ui.basic.blue.label:hover{background-color:#fff!important;color:#215d8f!important;border-color:#215d8f!important}.ui.violet.label,.ui.violet.labels .label{background-color:#6435c9!important;border-color:#6435c9!important;color:#fff!important}.ui.violet.labels .label:hover,a.ui.violet.label:hover{background-color:#5829bb!important;border-color:#5829bb!important;color:#fff!important}.ui.violet.corner.label,.ui.violet.corner.label:hover{background-color:transparent!important}.ui.violet.ribbon.label{border-color:#502aa1!important}.ui.basic.violet.label{background:none #fff!important;color:#6435c9!important;border-color:#6435c9!important}.ui.basic.violet.labels a.label:hover,a.ui.basic.violet.label:hover{background-color:#fff!important;color:#5829bb!important;border-color:#5829bb!important}.ui.purple.label,.ui.purple.labels .label{background-color:#a333c8!important;border-color:#a333c8!important;color:#fff!important}.ui.purple.labels .label:hover,a.ui.purple.label:hover{background-color:#9627ba!important;border-color:#9627ba!important;color:#fff!important}.ui.purple.corner.label,.ui.purple.corner.label:hover{background-color:transparent!important}.ui.purple.ribbon.label{border-color:#82299f!important}.ui.basic.purple.label{background:none #fff!important;color:#a333c8!important;border-color:#a333c8!important}.ui.basic.purple.labels a.label:hover,a.ui.basic.purple.label:hover{background-color:#fff!important;color:#9627ba!important;border-color:#9627ba!important}.ui.pink.label,.ui.pink.labels .label{background-color:#e03997!important;border-color:#e03997!important;color:#fff!important}.ui.pink.labels .label:hover,a.ui.pink.label:hover{background-color:#e61a8d!important;border-color:#e61a8d!important;color:#fff!important}.ui.pink.corner.label,.ui.pink.corner.label:hover{background-color:transparent!important}.ui.pink.ribbon.label{border-color:#c71f7e!important}.ui.basic.pink.label{background:none #fff!important;color:#e03997!important;border-color:#e03997!important}.ui.basic.pink.labels a.label:hover,a.ui.basic.pink.label:hover{background-color:#fff!important;color:#e61a8d!important;border-color:#e61a8d!important}.ui.brown.label,.ui.brown.labels .label{background-color:#a5673f!important;border-color:#a5673f!important;color:#fff!important}.ui.brown.labels .label:hover,a.ui.brown.label:hover{background-color:#975b33!important;border-color:#975b33!important;color:#fff!important}.ui.brown.corner.label,.ui.brown.corner.label:hover{background-color:transparent!important}.ui.brown.ribbon.label{border-color:#805031!important}.ui.basic.brown.label{background:none #fff!important;color:#a5673f!important;border-color:#a5673f!important}.ui.basic.brown.labels a.label:hover,a.ui.basic.brown.label:hover{background-color:#fff!important;color:#975b33!important;border-color:#975b33!important}.ui.grey.label,.ui.grey.labels .label{background-color:#767676!important;border-color:#767676!important;color:#fff!important}.ui.grey.labels .label:hover,a.ui.grey.label:hover{background-color:#838383!important;border-color:#838383!important;color:#fff!important}.ui.grey.corner.label,.ui.grey.corner.label:hover{background-color:transparent!important}.ui.grey.ribbon.label{border-color:#805031!important}.ui.basic.grey.label{background:none #fff!important;color:#767676!important;border-color:#767676!important}.ui.basic.grey.labels a.label:hover,a.ui.basic.grey.label:hover{background-color:#fff!important;color:#838383!important;border-color:#838383!important}.ui.black.label,.ui.black.labels .label{background-color:#1b1c1d!important;border-color:#1b1c1d!important;color:#fff!important}.ui.black.labels .label:hover,a.ui.black.label:hover{background-color:#27292a!important;border-color:#27292a!important;color:#fff!important}.ui.black.corner.label,.ui.black.corner.label:hover{background-color:transparent!important}.ui.black.ribbon.label{border-color:#805031!important}.ui.basic.black.label{background:none #fff!important;color:#1b1c1d!important;border-color:#1b1c1d!important}.ui.basic.black.labels a.label:hover,a.ui.basic.black.label:hover{background-color:#fff!important;color:#27292a!important;border-color:#27292a!important}.ui.basic.label{background:none #fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);box-shadow:none}a.ui.basic.label:hover{text-decoration:none;background:none #fff;color:#3277b2;box-shadow:1px solid rgba(34,36,38,.15);box-shadow:none}.ui.basic.pointing.label:before{border-color:inherit}.ui.fluid.labels>.label,.ui.label.fluid{width:100%;box-sizing:border-box}.ui.inverted.label,.ui.inverted.labels .label{color:hsla(0,0%,100%,.9)!important}.ui.horizontal.label,.ui.horizontal.labels .label{margin:0 .5em 0 0;padding:.4em .833em;min-width:3em;text-align:center}.ui.circular.label,.ui.circular.labels .label{min-width:2em;min-height:2em;padding:.5em!important;line-height:1em;text-align:center;border-radius:500rem}.ui.empty.circular.label,.ui.empty.circular.labels .label{min-width:0;min-height:0;overflow:hidden;width:.5em;height:.5em;vertical-align:baseline}.ui.pointing.label{position:relative}.ui.attached.pointing.label{position:absolute}.ui.pointing.label:before{background-color:inherit;background-image:inherit;border:0 solid;border-color:inherit;position:absolute;content:"";transform:rotate(45deg);background-image:none;z-index:2;width:.6666em;height:.6666em;transition:background .1s ease}.ui.pointing.label,.ui[class*="pointing above"].label{margin-top:1em}.ui.pointing.label:before,.ui[class*="pointing above"].label:before{border-width:1px 0 0 1px;transform:translateX(-50%) translateY(-50%) rotate(45deg);top:0;left:50%}.ui[class*="bottom pointing"].label,.ui[class*="pointing below"].label{margin-top:0;margin-bottom:1em}.ui[class*="bottom pointing"].label:before,.ui[class*="pointing below"].label:before{border-width:0 1px 1px 0;top:auto;right:auto;transform:translateX(-50%) translateY(-50%) rotate(45deg);top:100%;left:50%}.ui[class*="left pointing"].label{margin-top:0;margin-left:.6666em}.ui[class*="left pointing"].label:before{border-width:0 0 1px 1px;transform:translateX(-50%) translateY(-50%) rotate(45deg);bottom:auto;right:auto;top:50%;left:0}.ui[class*="right pointing"].label{margin-top:0;margin-right:.6666em}.ui[class*="right pointing"].label:before{border-width:1px 1px 0 0;transform:translateX(50%) translateY(-50%) rotate(45deg);top:50%;right:0;bottom:auto;left:auto}.ui.basic.pointing.label:before,.ui.basic[class*="pointing above"].label:before{margin-top:-1px}.ui.basic[class*="bottom pointing"].label:before,.ui.basic[class*="pointing below"].label:before{bottom:auto;top:100%;margin-top:1px}.ui.basic[class*="left pointing"].label:before{top:50%;left:-1px}.ui.basic[class*="right pointing"].label:before{top:50%;right:-1px}.ui.floating.label{position:absolute;z-index:100;top:-1em;left:100%;margin:0 0 0 -1.5em!important}.ui.mini.label,.ui.mini.labels .label{font-size:8.999px;font-size:.64285714rem}.ui.tiny.label,.ui.tiny.labels .label{font-size:9.999px;font-size:.71428571rem}.ui.small.label,.ui.small.labels .label{font-size:11px;font-size:.78571429rem}.ui.label,.ui.labels .label{font-size:12px;font-size:.85714286rem}.ui.large.label,.ui.large.labels .label{font-size:14px;font-size:1rem}.ui.big.label,.ui.big.labels .label{font-size:18px;font-size:1.28571429rem}.ui.huge.label,.ui.huge.labels .label{font-size:20px;font-size:1.42857143rem}.ui.massive.label,.ui.massive.labels .label{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - List
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.list,ol.ui.list,ul.ui.list{list-style-type:none;margin:1em 0;padding:0}.ui.list:first-child,ol.ui.list:first-child,ul.ui.list:first-child{margin-top:0;padding-top:0}.ui.list:last-child,ol.ui.list:last-child,ul.ui.list:last-child{margin-bottom:0;padding-bottom:0}.ui.list .list>.item,.ui.list>.item,ol.ui.list li,ul.ui.list li{display:list-item;table-layout:fixed;list-style-type:none;list-style-position:outside;padding:.21428571em 0;line-height:1.14285714em}.ui.list>.item:after,.ui.list>.list>.item,ol.ui.list>li:first-child:after,ul.ui.list>li:first-child:after{content:"";display:block;height:0;clear:both;visibility:hidden}.ui.list .list>.item:first-child,.ui.list>.item:first-child,ol.ui.list li:first-child,ul.ui.list li:first-child{padding-top:0}.ui.list .list>.item:last-child,.ui.list>.item:last-child,ol.ui.list li:last-child,ul.ui.list li:last-child{padding-bottom:0}.ui.list .list,ol.ui.list ol,ul.ui.list ul{clear:both;margin:0;padding:.75em 0 .25em .5em}.ui.list .list>.item,ol.ui.list ol li,ul.ui.list ul li{padding:.14285714em 0;line-height:inherit}.ui.list .list>.item>i.icon,.ui.list>.item>i.icon{display:table-cell;margin:0;padding-top:0;padding-right:.28571429em;vertical-align:top;transition:color .1s ease}.ui.list .list>.item>i.icon:only-child,.ui.list>.item>i.icon:only-child{display:inline-block;vertical-align:top}.ui.list .list>.item>.image,.ui.list>.item>.image{display:table-cell;background-color:transparent;margin:0;vertical-align:top}.ui.list .list>.item>.image:not(:only-child):not(img),.ui.list>.item>.image:not(:only-child):not(img){padding-right:.5em}.ui.list .list>.item>.image img,.ui.list>.item>.image img{vertical-align:top}.ui.list .list>.item>.image:only-child,.ui.list .list>.item>img.image,.ui.list>.item>.image:only-child,.ui.list>.item>img.image{display:inline-block}.ui.list .list>.item>.content,.ui.list>.item>.content{line-height:1.14285714em}.ui.list .list>.item>.icon+.content,.ui.list .list>.item>.image+.content,.ui.list>.item>.icon+.content,.ui.list>.item>.image+.content{display:table-cell;width:100%;padding:0 0 0 .5em;vertical-align:top}.ui.list .list>.item>img.image+.content,.ui.list>.item>img.image+.content{display:inline-block;width:auto}.ui.list .list>.item>.content>.list,.ui.list>.item>.content>.list{margin-left:0;padding-left:0}.ui.list .list>.item .header,.ui.list>.item .header{display:block;margin:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;color:rgba(0,0,0,.87)}.ui.list .list>.item .description,.ui.list>.item .description{display:block;color:rgba(0,0,0,.7)}.ui.list .list>.item a,.ui.list>.item a{cursor:pointer}.ui.list .list>a.item,.ui.list>a.item{cursor:pointer;color:#2c6a9e}.ui.list .list>a.item:hover,.ui.list>a.item:hover{color:#3277b2}.ui.list .list>a.item i.icon,.ui.list>a.item i.icon{color:rgba(0,0,0,.4)}.ui.list .list>.item a.header,.ui.list>.item a.header{cursor:pointer;color:#2c6a9e!important}.ui.list .list>.item a.header:hover,.ui.list>.item a.header:hover{color:#3277b2!important}.ui[class*="left floated"].list{float:left}.ui[class*="right floated"].list{float:right}.ui.list .list>.item [class*="left floated"],.ui.list>.item [class*="left floated"]{float:left;margin:0 1em 0 0}.ui.list .list>.item [class*="right floated"],.ui.list>.item [class*="right floated"]{float:right;margin:0 0 0 1em}.ui.menu .ui.list .list>.item,.ui.menu .ui.list>.item{display:list-item;table-layout:fixed;background-color:transparent;list-style-type:none;list-style-position:outside;padding:.21428571em 0;line-height:1.14285714em}.ui.menu .ui.list .list>.item:before,.ui.menu .ui.list>.item:before{border:none;background:none}.ui.menu .ui.list .list>.item:first-child,.ui.menu .ui.list>.item:first-child{padding-top:0}.ui.menu .ui.list .list>.item:last-child,.ui.menu .ui.list>.item:last-child{padding-bottom:0}.ui.horizontal.list{display:inline-block;font-size:0}.ui.horizontal.list>.item{display:inline-block;margin-left:1em;font-size:14px;font-size:1rem}.ui.horizontal.list:not(.celled)>.item:first-child{margin-left:0!important;padding-left:0!important}.ui.horizontal.list .list{padding-left:0;padding-bottom:0}.ui.horizontal.list .list>.item>.content,.ui.horizontal.list .list>.item>.icon,.ui.horizontal.list .list>.item>.image,.ui.horizontal.list>.item>.content,.ui.horizontal.list>.item>.icon,.ui.horizontal.list>.item>.image{vertical-align:middle}.ui.horizontal.list>.item:first-child,.ui.horizontal.list>.item:last-child{padding-top:.21428571em;padding-bottom:.21428571em}.ui.horizontal.list>.item>i.icon{margin:0;padding:0 .25em 0 0}.ui.horizontal.list>.item>.icon,.ui.horizontal.list>.item>.icon+.content{float:none;display:inline-block}.ui.list .list>.disabled.item,.ui.list>.disabled.item{pointer-events:none;color:rgba(40,40,40,.3)!important}.ui.inverted.list .list>.disabled.item,.ui.inverted.list>.disabled.item{color:hsla(0,0%,88.2%,.3)!important}.ui.list .list>a.item:hover .icon,.ui.list>a.item:hover .icon{color:rgba(0,0,0,.87)}.ui.inverted.list .list>a.item>.icon,.ui.inverted.list>a.item>.icon{color:hsla(0,0%,100%,.7)}.ui.inverted.list .list>.item .header,.ui.inverted.list>.item .header{color:hsla(0,0%,100%,.9)}.ui.inverted.list .list>.item .description,.ui.inverted.list>.item .description{color:hsla(0,0%,100%,.7)}.ui.inverted.list .list>a.item,.ui.inverted.list>a.item{cursor:pointer;color:hsla(0,0%,100%,.9)}.ui.inverted.list .list>a.item:hover,.ui.inverted.list>a.item:hover{color:#3277b2}.ui.inverted.list .item a:not(.ui){color:hsla(0,0%,100%,.9)!important}.ui.inverted.list .item a:not(.ui):hover{color:#3277b2!important}.ui.list [class*="top aligned"],.ui.list[class*="top aligned"] .content,.ui.list[class*="top aligned"] .image{vertical-align:top!important}.ui.list [class*="middle aligned"],.ui.list[class*="middle aligned"] .content,.ui.list[class*="middle aligned"] .image{vertical-align:middle!important}.ui.list [class*="bottom aligned"],.ui.list[class*="bottom aligned"] .content,.ui.list[class*="bottom aligned"] .image{vertical-align:bottom!important}.ui.link.list .item,.ui.link.list .item a:not(.ui),.ui.link.list a.item{color:rgba(0,0,0,.4);transition:color .1s ease}.ui.link.list.list .item a:not(.ui):hover,.ui.link.list.list a.item:hover{color:rgba(0,0,0,.8)}.ui.link.list.list .item a:not(.ui):active,.ui.link.list.list a.item:active{color:rgba(0,0,0,.9)}.ui.link.list.list .active.item,.ui.link.list.list .active.item a:not(.ui){color:rgba(0,0,0,.95)}.ui.inverted.link.list .item,.ui.inverted.link.list .item a:not(.ui),.ui.inverted.link.list a.item{color:hsla(0,0%,100%,.5)}.ui.inverted.link.list.list .active.item a:not(.ui),.ui.inverted.link.list.list .item a:not(.ui):active,.ui.inverted.link.list.list .item a:not(.ui):hover,.ui.inverted.link.list.list a.active.item,.ui.inverted.link.list.list a.item:active,.ui.inverted.link.list.list a.item:hover{color:#fff}.ui.selection.list .list>.item,.ui.selection.list>.item{cursor:pointer;background:transparent;padding:.5em;margin:0;color:rgba(0,0,0,.4);border-radius:.5em;transition:color .1s ease,padding-left .1s ease,background-color .1s ease}.ui.selection.list .list>.item:last-child,.ui.selection.list>.item:last-child{margin-bottom:0}.ui.selection.list.list>.item:hover,.ui.selection.list>.item:hover{background:rgba(0,0,0,.03);color:rgba(0,0,0,.8)}.ui.selection.list .list>.item:active,.ui.selection.list>.item:active{background:rgba(0,0,0,.05);color:rgba(0,0,0,.9)}.ui.selection.list .list>.item.active,.ui.selection.list>.item.active{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.inverted.selection.list>.item{background:transparent;color:hsla(0,0%,100%,.5)}.ui.inverted.selection.list>.item:hover{background:hsla(0,0%,100%,.02);color:#fff}.ui.inverted.selection.list>.item.active,.ui.inverted.selection.list>.item:active{background:hsla(0,0%,100%,.08);color:#fff}.ui.celled.selection.list .list>.item,.ui.celled.selection.list>.item,.ui.divided.selection.list .list>.item,.ui.divided.selection.list>.item{border-radius:0}.ui.animated.list>.item{transition:color .25s ease .1s,padding-left .25s ease .1s,background-color .25s ease .1s}.ui.animated.list:not(.horizontal)>.item:hover{padding-left:1em}.ui.fitted.list:not(.selection) .list>.item,.ui.fitted.list:not(.selection)>.item{padding-left:0;padding-right:0}.ui.fitted.selection.list .list>.item,.ui.fitted.selection.list>.item{margin-left:-.5em;margin-right:-.5em}.ui.bulleted.list,ul.ui.list{margin-left:1.25rem}.ui.bulleted.list .list>.item,.ui.bulleted.list>.item,ul.ui.list li{position:relative}.ui.bulleted.list .list>.item:before,.ui.bulleted.list>.item:before,ul.ui.list li:before{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;position:absolute;top:auto;left:auto;font-weight:400;margin-left:-1.25rem;content:"•";opacity:1;color:inherit;vertical-align:top}.ui.bulleted.list .list>a.item:before,.ui.bulleted.list>a.item:before,ul.ui.list li:before{color:rgba(0,0,0,.87)}.ui.bulleted.list .list,ul.ui.list ul{padding-left:1.25rem}.ui.horizontal.bulleted.list,ul.ui.horizontal.bulleted.list{margin-left:0}.ui.horizontal.bulleted.list>.item,ul.ui.horizontal.bulleted.list li{margin-left:1.75rem}.ui.horizontal.bulleted.list>.item:first-child,ul.ui.horizontal.bulleted.list li:first-child{margin-left:0}.ui.horizontal.bulleted.list>.item:before,ul.ui.horizontal.bulleted.list li:before{color:rgba(0,0,0,.87)}.ui.horizontal.bulleted.list>.item:first-child:before,ul.ui.horizontal.bulleted.list li:first-child:before{display:none}.ui.ordered.list,.ui.ordered.list .list,ol.ui.list,ol.ui.list ol{counter-reset:ordered;margin-left:1.25rem;list-style-type:none}.ui.ordered.list .list>.item,.ui.ordered.list>.item,ol.ui.list li{list-style-type:none;position:relative}.ui.ordered.list .list>.item:before,.ui.ordered.list>.item:before,ol.ui.list li:before{position:absolute;top:auto;left:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;margin-left:-1.25rem;counter-increment:ordered;content:counters(ordered,".") " ";text-align:right;color:rgba(0,0,0,.87);vertical-align:middle;opacity:.8}.ui.ordered.inverted.list .list>.item:before,.ui.ordered.inverted.list>.item:before,ol.ui.inverted.list li:before{color:hsla(0,0%,100%,.7)}.ui.ordered.list>.item[data-value],.ui.ordered.list>.list>.item[data-value]{content:attr(data-value)}ol.ui.list li[value]:before{content:attr(value)}.ui.ordered.list .list,ol.ui.list ol{margin-left:1em}.ui.ordered.list .list>.item:before,ol.ui.list ol li:before{margin-left:-2em}.ui.ordered.horizontal.list,ol.ui.horizontal.list{margin-left:0}.ui.ordered.horizontal.list .list>.item:before,.ui.ordered.horizontal.list>.item:before,ol.ui.horizontal.list li:before{position:static;margin:0 .5em 0 0}.ui.divided.list>.item{border-top:1px solid rgba(34,36,38,.15)}.ui.divided.list .item .list>.item,.ui.divided.list .list>.item,.ui.divided.list .list>.item:first-child,.ui.divided.list>.item:first-child{border-top:none}.ui.divided.list:not(.horizontal) .list>.item:first-child{border-top-width:1px}.ui.divided.bulleted.list .list,.ui.divided.bulleted.list:not(.horizontal){margin-left:0;padding-left:0}.ui.divided.bulleted.list>.item:not(.horizontal){padding-left:1.25rem}.ui.divided.ordered.list{margin-left:0}.ui.divided.ordered.list .list>.item,.ui.divided.ordered.list>.item{padding-left:1.25rem}.ui.divided.ordered.list .item .list{margin-left:0;margin-right:0;padding-bottom:.21428571em}.ui.divided.ordered.list .item .list>.item{padding-left:1em}.ui.divided.selection.list .list>.item,.ui.divided.selection.list>.item{margin:0;border-radius:0}.ui.divided.horizontal.list{margin-left:0}.ui.divided.horizontal.list>.item:not(:first-child){padding-left:.5em}.ui.divided.horizontal.list>.item:not(:last-child){padding-right:.5em}.ui.divided.horizontal.list>.item{border-top:none;border-left:1px solid rgba(34,36,38,.15);margin:0;line-height:.6}.ui.horizontal.divided.list>.item:first-child{border-left:none}.ui.divided.inverted.horizontal.list>.item,.ui.divided.inverted.list>.item,.ui.divided.inverted.list>.list{border-color:hsla(0,0%,100%,.1)}.ui.celled.list>.item,.ui.celled.list>.list{border-top:1px solid rgba(34,36,38,.15);padding-left:.5em;padding-right:.5em}.ui.celled.list>.item:last-child{border-bottom:1px solid rgba(34,36,38,.15)}.ui.celled.list>.item:first-child,.ui.celled.list>.item:last-child{padding-top:.21428571em;padding-bottom:.21428571em}.ui.celled.list .item .list>.item{border-width:0}.ui.celled.list .list>.item:first-child{border-top-width:0}.ui.celled.bulleted.list{margin-left:0}.ui.celled.bulleted.list .list>.item,.ui.celled.bulleted.list>.item{padding-left:1.25rem}.ui.celled.bulleted.list .item .list{margin-left:-1.25rem;margin-right:-1.25rem;padding-bottom:.21428571em}.ui.celled.ordered.list{margin-left:0}.ui.celled.ordered.list .list>.item,.ui.celled.ordered.list>.item{padding-left:1.25rem}.ui.celled.ordered.list .item .list{margin-left:0;margin-right:0;padding-bottom:.21428571em}.ui.celled.ordered.list .list>.item{padding-left:1em}.ui.horizontal.celled.list{margin-left:0}.ui.horizontal.celled.list .list>.item,.ui.horizontal.celled.list>.item{border-top:none;border-left:1px solid rgba(34,36,38,.15);margin:0;padding-left:.5em;padding-right:.5em;line-height:.6}.ui.horizontal.celled.list .list>.item:last-child,.ui.horizontal.celled.list>.item:last-child{border-bottom:none;border-right:1px solid rgba(34,36,38,.15)}.ui.celled.inverted.horizontal.list .list>.item,.ui.celled.inverted.horizontal.list>.item,.ui.celled.inverted.list>.item,.ui.celled.inverted.list>.list{border-color:1px solid hsla(0,0%,100%,.1)}.ui.relaxed.list:not(.horizontal)>.item:not(:first-child){padding-top:.42857143em}.ui.relaxed.list:not(.horizontal)>.item:not(:last-child){padding-bottom:.42857143em}.ui.horizontal.relaxed.list .list>.item:not(:first-child),.ui.horizontal.relaxed.list>.item:not(:first-child){padding-left:1rem}.ui.horizontal.relaxed.list .list>.item:not(:last-child),.ui.horizontal.relaxed.list>.item:not(:last-child){padding-right:1rem}.ui[class*="very relaxed"].list:not(.horizontal)>.item:not(:first-child){padding-top:.85714286em}.ui[class*="very relaxed"].list:not(.horizontal)>.item:not(:last-child){padding-bottom:.85714286em}.ui.horizontal[class*="very relaxed"].list .list>.item:not(:first-child),.ui.horizontal[class*="very relaxed"].list>.item:not(:first-child){padding-left:1.5rem}.ui.horizontal[class*="very relaxed"].list .list>.item:not(:last-child),.ui.horizontal[class*="very relaxed"].list>.item:not(:last-child){padding-right:1.5rem}.ui.mini.list{font-size:.78571429em}.ui.tiny.list{font-size:.85714286em}.ui.small.list{font-size:.92857143em}.ui.list{font-size:1em}.ui.large.list{font-size:1.14285714em}.ui.big.list{font-size:1.28571429em}.ui.huge.list{font-size:1.42857143em}.ui.massive.list{font-size:1.71428571em}.ui.mini.horizontal.list .list>.item,.ui.mini.horizontal.list>.item{font-size:11px;font-size:.78571429rem}.ui.tiny.horizontal.list .list>.item,.ui.tiny.horizontal.list>.item{font-size:12px;font-size:.85714286rem}.ui.small.horizontal.list .list>.item,.ui.small.horizontal.list>.item{font-size:13px;font-size:.92857143rem}.ui.horizontal.list .list>.item,.ui.horizontal.list>.item{font-size:14px;font-size:1rem}.ui.large.horizontal.list .list>.item,.ui.large.horizontal.list>.item{font-size:15.999px;font-size:1.14285714rem}.ui.big.horizontal.list .list>.item,.ui.big.horizontal.list>.item{font-size:18px;font-size:1.28571429rem}.ui.huge.horizontal.list .list>.item,.ui.huge.horizontal.list>.item{font-size:20px;font-size:1.42857143rem}.ui.massive.horizontal.list .list>.item,.ui.massive.horizontal.list>.item{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Loader
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.loader{display:none;position:absolute;top:50%;left:50%;margin:0;text-align:center;z-index:1000;transform:translateX(-50%) translateY(-50%)}.ui.loader:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loader:after,.ui.loader:before{position:absolute;content:"";top:0;left:50%;width:100%;height:100%}.ui.loader:after{-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#767676;box-shadow:0 0 0 1px transparent}@-webkit-keyframes loader{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes loader{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui.mini.loader:after,.ui.mini.loader:before{width:14px;width:1rem;height:14px;height:1rem;margin:0 0 0 -.5rem}.ui.tiny.loader:after,.ui.tiny.loader:before{width:15.999px;width:1.14285714rem;height:15.999px;height:1.14285714rem;margin:0 0 0 -.57142857rem}.ui.small.loader:after,.ui.small.loader:before{width:23.999px;width:1.71428571rem;height:23.999px;height:1.71428571rem;margin:0 0 0 -.85714286rem}.ui.loader:after,.ui.loader:before{width:32px;width:2.28571429rem;height:32px;height:2.28571429rem;margin:0 0 0 -1.14285714rem}.ui.large.loader:after,.ui.large.loader:before{width:48px;width:3.42857143rem;height:48px;height:3.42857143rem;margin:0 0 0 -1.71428571rem}.ui.big.loader:after,.ui.big.loader:before{width:51.999px;width:3.71428571rem;height:51.999px;height:3.71428571rem;margin:0 0 0 -1.85714286rem}.ui.huge.loader:after,.ui.huge.loader:before{width:57.999px;width:4.14285714rem;height:57.999px;height:4.14285714rem;margin:0 0 0 -2.07142857rem}.ui.massive.loader:after,.ui.massive.loader:before{width:63.999px;width:4.57142857rem;height:63.999px;height:4.57142857rem;margin:0 0 0 -2.28571429rem}.ui.dimmer .loader{display:block}.ui.dimmer .ui.loader{color:hsla(0,0%,100%,.9)}.ui.dimmer .ui.loader:before{border-color:hsla(0,0%,100%,.15)}.ui.dimmer .ui.loader:after{border-color:#fff transparent transparent}.ui.inverted.dimmer .ui.loader{color:rgba(0,0,0,.87)}.ui.inverted.dimmer .ui.loader:before{border-color:rgba(0,0,0,.1)}.ui.inverted.dimmer .ui.loader:after{border-color:#767676 transparent transparent}.ui.text.loader{width:auto!important;height:auto!important;text-align:center;font-style:normal}.ui.indeterminate.loader:after{animation-direction:reverse;-webkit-animation-duration:1.2s;animation-duration:1.2s}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.inverted.dimmer .ui.mini.loader,.ui.mini.loader{width:14px;width:1rem;height:14px;height:1rem;font-size:.78571429em}.ui.inverted.dimmer .ui.tiny.loader,.ui.tiny.loader{width:15.999px;width:1.14285714rem;height:15.999px;height:1.14285714rem;font-size:.85714286em}.ui.inverted.dimmer .ui.small.loader,.ui.small.loader{width:23.999px;width:1.71428571rem;height:23.999px;height:1.71428571rem;font-size:.92857143em}.ui.inverted.dimmer .ui.loader,.ui.loader{width:32px;width:2.28571429rem;height:32px;height:2.28571429rem;font-size:1em}.ui.inverted.dimmer .ui.large.loader,.ui.large.loader{width:48px;width:3.42857143rem;height:48px;height:3.42857143rem;font-size:1.14285714em}.ui.big.loader,.ui.inverted.dimmer .ui.big.loader{width:51.999px;width:3.71428571rem;height:51.999px;height:3.71428571rem;font-size:1.28571429em}.ui.huge.loader,.ui.inverted.dimmer .ui.huge.loader{width:57.999px;width:4.14285714rem;height:57.999px;height:4.14285714rem;font-size:1.42857143em}.ui.inverted.dimmer .ui.massive.loader,.ui.massive.loader{width:63.999px;width:4.57142857rem;height:63.999px;height:4.57142857rem;font-size:1.71428571em}.ui.mini.text.loader{min-width:14px;min-width:1rem;padding-top:1.78571429rem}.ui.tiny.text.loader{min-width:15.999px;min-width:1.14285714rem;padding-top:1.92857143rem}.ui.small.text.loader{min-width:23.999px;min-width:1.71428571rem;padding-top:2.5rem}.ui.text.loader{min-width:32px;min-width:2.28571429rem;padding-top:3.07142857rem}.ui.large.text.loader{min-width:48px;min-width:3.42857143rem;padding-top:4.21428571rem}.ui.big.text.loader{min-width:51.999px;min-width:3.71428571rem;padding-top:4.5rem}.ui.huge.text.loader{min-width:57.999px;min-width:4.14285714rem;padding-top:4.92857143rem}.ui.massive.text.loader{min-width:63.999px;min-width:4.57142857rem;padding-top:5.35714286rem}.ui.inverted.loader{color:hsla(0,0%,100%,.9)}.ui.inverted.loader:before{border-color:hsla(0,0%,100%,.15)}.ui.inverted.loader:after{border-top-color:#fff}.ui.inline.loader{position:relative;vertical-align:middle;margin:0;left:0;top:0;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}.ui.centered.inline.loader.active,.ui.centered.inline.loader.visible{display:block;margin-left:auto;margin-right:auto}
/*!
 * # Semantic UI - Loader
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.placeholder{position:static;overflow:hidden;-webkit-animation:placeholderShimmer 2s linear;animation:placeholderShimmer 2s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;background-color:#fff;background-image:linear-gradient(90deg,rgba(0,0,0,.08) 0,rgba(0,0,0,.15) 15%,rgba(0,0,0,.08) 30%);background-size:1200px 100%;max-width:420px;max-width:30rem}@-webkit-keyframes placeholderShimmer{0%{background-position:-1200px 0}to{background-position:1200px 0}}@keyframes placeholderShimmer{0%{background-position:-1200px 0}to{background-position:1200px 0}}.ui.placeholder+.ui.placeholder{margin-top:2rem;-webkit-animation-delay:.15s;animation-delay:.15s}.ui.placeholder+.ui.placeholder+.ui.placeholder{-webkit-animation-delay:.3s;animation-delay:.3s}.ui.placeholder+.ui.placeholder+.ui.placeholder+.ui.placeholder{-webkit-animation-delay:.45s;animation-delay:.45s}.ui.placeholder+.ui.placeholder+.ui.placeholder+.ui.placeholder+.ui.placeholder{-webkit-animation-delay:.6s;animation-delay:.6s}.ui.placeholder,.ui.placeholder .image.header:after,.ui.placeholder .line,.ui.placeholder .line:after,.ui.placeholder>:before{background-color:#fff}.ui.placeholder .image:not(.header):not(.ui){height:100px}.ui.placeholder .square.image:not(.header){height:0;overflow:hidden;padding-top:100%}.ui.placeholder .rectangular.image:not(.header){height:0;overflow:hidden;padding-top:75%}.ui.placeholder .line{position:relative;height:.85714286em}.ui.placeholder .line:after,.ui.placeholder .line:before{top:100%;position:absolute;content:"";background-color:inherit}.ui.placeholder .line:before{left:0}.ui.placeholder .line:after{right:0}.ui.placeholder .line{margin-bottom:.5em}.ui.placeholder .line:after,.ui.placeholder .line:before{height:.5em}.ui.placeholder .line:not(:first-child){margin-top:.5em}.ui.placeholder .header{position:relative;overflow:hidden}.ui.placeholder .line:first-child:after{width:0}.ui.placeholder .line:nth-child(2):after{width:50%}.ui.placeholder .line:nth-child(3):after{width:10%}.ui.placeholder .line:nth-child(4):after{width:35%}.ui.placeholder .line:nth-child(5):after{width:65%}.ui.placeholder .header .line{margin-bottom:.64285714em}.ui.placeholder .header .line:after,.ui.placeholder .header .line:before{height:.64285714em}.ui.placeholder .header .line:not(:first-child){margin-top:.64285714em}.ui.placeholder .header .line:after{width:20%}.ui.placeholder .header .line:nth-child(2):after{width:60%}.ui.placeholder .image.header .line{margin-left:3em}.ui.placeholder .image.header .line:before{width:9.999px;width:.71428571rem}.ui.placeholder .image.header:after{display:block;height:.85714286em;content:"";margin-left:3em}.ui.placeholder .header .line:first-child,.ui.placeholder .image .line:first-child,.ui.placeholder .paragraph .line:first-child{height:.01px}.ui.placeholder .header:not(:first-child):before,.ui.placeholder .image:not(:first-child):before,.ui.placeholder .paragraph:not(:first-child):before{height:1.42857143em;content:"";display:block}.ui.inverted.placeholder{background-image:linear-gradient(90deg,hsla(0,0%,100%,.08) 0,hsla(0,0%,100%,.14) 15%,hsla(0,0%,100%,.08) 30%)}.ui.inverted.placeholder,.ui.inverted.placeholder .image.header:after,.ui.inverted.placeholder .line,.ui.inverted.placeholder .line:after,.ui.inverted.placeholder>:before{background-color:#1b1c1d}.ui.placeholder .full.line.line.line:after{width:0}.ui.placeholder .very.long.line.line.line:after{width:10%}.ui.placeholder .long.line.line.line:after{width:35%}.ui.placeholder .medium.line.line.line:after{width:50%}.ui.placeholder .short.line.line.line:after{width:65%}.ui.placeholder .very.short.line.line.line:after{width:80%}.ui.fluid.placeholder{max-width:none}
/*!
 * # Semantic UI - Rail
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.rail{position:absolute;top:0;width:300px;height:100%}.ui.left.rail{left:auto;right:100%;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.right.rail{left:100%}.ui.left.internal.rail,.ui.right.rail{right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.left.internal.rail{left:0}.ui.right.internal.rail{left:auto;right:0;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.dividing.rail{width:302.5px}.ui.left.dividing.rail{padding:0 2.5rem 0 0;margin:0 2.5rem 0 0;border-right:1px solid rgba(34,36,38,.15)}.ui.right.dividing.rail{border-left:1px solid rgba(34,36,38,.15);padding:0 0 0 2.5rem;margin:0 0 0 2.5rem}.ui.close.rail{width:calc(300px + 1em)}.ui.close.left.rail{padding:0 1em 0 0;margin:0 1em 0 0}.ui.close.right.rail{padding:0 0 0 1em;margin:0 0 0 1em}.ui.very.close.rail{width:calc(300px + .5em)}.ui.very.close.left.rail{padding:0 .5em 0 0;margin:0 .5em 0 0}.ui.very.close.right.rail{padding:0 0 0 .5em;margin:0 0 0 .5em}.ui.attached.left.rail,.ui.attached.right.rail{padding:0;margin:0}.ui.mini.rail{font-size:11px;font-size:.78571429rem}.ui.tiny.rail{font-size:12px;font-size:.85714286rem}.ui.small.rail{font-size:13px;font-size:.92857143rem}.ui.rail{font-size:14px;font-size:1rem}.ui.large.rail{font-size:15.999px;font-size:1.14285714rem}.ui.big.rail{font-size:18px;font-size:1.28571429rem}.ui.huge.rail{font-size:20px;font-size:1.42857143rem}.ui.massive.rail{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Reveal
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.reveal{display:inherit;position:relative!important;font-size:0!important}.ui.reveal>.visible.content{position:absolute!important;top:0!important;left:0!important;z-index:3!important;transition:all .5s ease .1s}.ui.reveal>.hidden.content{position:relative!important;z-index:2!important}.ui.active.reveal .visible.content,.ui.reveal:hover .visible.content{z-index:4!important}.ui.slide.reveal{position:relative!important;overflow:hidden!important;white-space:nowrap}.ui.slide.reveal>.content{display:block;width:100%;white-space:normal;float:left;margin:0;transition:transform .5s ease .1s}.ui.slide.reveal>.visible.content{position:relative!important}.ui.slide.reveal>.hidden.content{position:absolute!important;left:0!important;width:100%!important;transform:translateX(100%)!important}.ui.slide.active.reveal>.visible.content,.ui.slide.reveal:hover>.visible.content{transform:translateX(-100%)!important}.ui.slide.active.reveal>.hidden.content,.ui.slide.reveal:hover>.hidden.content,.ui.slide.right.reveal>.visible.content{transform:translateX(0)!important}.ui.slide.right.reveal>.hidden.content{transform:translateX(-100%)!important}.ui.slide.right.active.reveal>.visible.content,.ui.slide.right.reveal:hover>.visible.content{transform:translateX(100%)!important}.ui.slide.right.active.reveal>.hidden.content,.ui.slide.right.reveal:hover>.hidden.content{transform:translateX(0)!important}.ui.slide.up.reveal>.hidden.content{transform:translateY(100%)!important}.ui.slide.up.active.reveal>.visible.content,.ui.slide.up.reveal:hover>.visible.content{transform:translateY(-100%)!important}.ui.slide.up.active.reveal>.hidden.content,.ui.slide.up.reveal:hover>.hidden.content{transform:translateY(0)!important}.ui.slide.down.reveal>.hidden.content{transform:translateY(-100%)!important}.ui.slide.down.active.reveal>.visible.content,.ui.slide.down.reveal:hover>.visible.content{transform:translateY(100%)!important}.ui.slide.down.active.reveal>.hidden.content,.ui.slide.down.reveal:hover>.hidden.content{transform:translateY(0)!important}.ui.fade.reveal>.visible.content{opacity:1}.ui.fade.active.reveal>.visible.content,.ui.fade.reveal:hover>.visible.content{opacity:0}.ui.move.reveal{position:relative!important;overflow:hidden!important;white-space:nowrap}.ui.move.reveal>.content{display:block;float:left;white-space:normal;margin:0;transition:transform .5s cubic-bezier(.175,.885,.32,1) .1s}.ui.move.reveal>.visible.content{position:relative!important}.ui.move.reveal>.hidden.content{position:absolute!important;left:0!important;width:100%!important}.ui.move.active.reveal>.visible.content,.ui.move.reveal:hover>.visible.content{transform:translateX(-100%)!important}.ui.move.right.active.reveal>.visible.content,.ui.move.right.reveal:hover>.visible.content{transform:translateX(100%)!important}.ui.move.up.active.reveal>.visible.content,.ui.move.up.reveal:hover>.visible.content{transform:translateY(-100%)!important}.ui.move.down.active.reveal>.visible.content,.ui.move.down.reveal:hover>.visible.content{transform:translateY(100%)!important}.ui.rotate.reveal>.visible.content{transition-duration:.5s;transform:rotate(0deg)}.ui.rotate.reveal>.visible.content,.ui.rotate.right.reveal>.visible.content{transform-origin:bottom right}.ui.rotate.active.reveal>.visible.content,.ui.rotate.reveal:hover>.visible.content,.ui.rotate.right.active.reveal>.visible.content,.ui.rotate.right.reveal:hover>.visible.content{transform:rotate(110deg)}.ui.rotate.left.reveal>.visible.content{transform-origin:bottom left}.ui.rotate.left.active.reveal>.visible.content,.ui.rotate.left.reveal:hover>.visible.content{transform:rotate(-110deg)}.ui.disabled.reveal:hover>.visible.visible.content{position:static!important;display:block!important;opacity:1!important;top:0!important;left:0!important;right:auto!important;bottom:auto!important;transform:none!important}.ui.disabled.reveal:hover>.hidden.hidden.content{display:none!important}.ui.reveal>.ui.ribbon.label{z-index:5}.ui.visible.reveal{overflow:visible}.ui.instant.reveal>.content{transition-delay:0s!important}.ui.reveal>.content{font-size:14px!important;font-size:1rem!important}
/*!
 * # Semantic UI - Segment
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.segment{position:relative;background:#fff;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15);margin:1rem 0;padding:1em;border-radius:.21428571rem;border:none}.ui.segment:first-child{margin-top:0}.ui.segment:last-child{margin-bottom:0}.ui.vertical.segment{margin:0;padding-left:0;padding-right:0;background:none transparent;border-radius:0;box-shadow:none;border:none;border-bottom:1px solid rgba(34,36,38,.15)}.ui.vertical.segment:last-child{border-bottom:none}.ui.inverted.segment>.ui.header{color:#fff}.ui[class*="bottom attached"].segment>[class*="top attached"].label{border-top-left-radius:0;border-top-right-radius:0}.ui[class*="top attached"].segment>[class*="bottom attached"].label{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.attached.segment:not(.top):not(.bottom)>[class*="top attached"].label{border-top-left-radius:0;border-top-right-radius:0}.ui.attached.segment:not(.top):not(.bottom)>[class*="bottom attached"].label{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.grid>.row>.ui.segment.column,.ui.grid>.ui.segment.column,.ui.page.grid.segment{padding-top:2em;padding-bottom:2em}.ui.grid.segment{margin:1rem 0;border-radius:.21428571rem}.ui.basic.table.segment{background:#fff;border:none;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15)}.ui[class*="very basic"].table.segment{padding:1em}.ui.placeholder.segment{display:flex;flex-direction:column;justify-content:center;align-items:stretch;max-width:none;-webkit-animation:none;animation:none;overflow:visible;padding:1em;min-height:252px;min-height:18rem;background:#f9fafb;border-color:rgba(34,36,38,.15);box-shadow:inset 0 2px 25px 0 rgba(34,36,38,.05)}.ui.placeholder.segment .button,.ui.placeholder.segment textarea{display:block}.ui.placeholder.segment .button,.ui.placeholder.segment .column .button,.ui.placeholder.segment .column .field,.ui.placeholder.segment .column>.ui.input,.ui.placeholder.segment .column textarea,.ui.placeholder.segment .field,.ui.placeholder.segment>.ui.input,.ui.placeholder.segment textarea{max-width:210px;max-width:15rem;margin-left:auto;margin-right:auto}.ui.placeholder.segment>.inline{align-self:center}.ui.placeholder.segment>.inline>.button{display:inline-block;width:auto;margin:0 .35714286rem 0 0}.ui.placeholder.segment>.inline>.button:last-child{margin-right:0}.ui.piled.segment,.ui.piled.segments{margin:3em 0;box-shadow:"";z-index:auto}.ui.piled.segment:first-child{margin-top:0}.ui.piled.segment:last-child{margin-bottom:0}.ui.piled.segment:after,.ui.piled.segment:before,.ui.piled.segments:after,.ui.piled.segments:before{background-color:#fff;visibility:visible;content:"";display:block;height:100%;left:0;position:absolute;width:100%;border:none;box-shadow:""}.ui.piled.segment:before,.ui.piled.segments:before{transform:rotate(-1.2deg);top:0;z-index:-2}.ui.piled.segment:after,.ui.piled.segments:after{transform:rotate(1.2deg);top:0;z-index:-1}.ui[class*="top attached"].piled.segment{margin-top:3em;margin-bottom:0}.ui.piled.segment[class*="top attached"]:first-child{margin-top:0}.ui.piled.segment[class*="bottom attached"]{margin-top:0;margin-bottom:3em}.ui.piled.segment[class*="bottom attached"]:last-child{margin-bottom:0}.ui.stacked.segment{padding-bottom:1.4em}.ui.stacked.segment:after,.ui.stacked.segment:before,.ui.stacked.segments:after,.ui.stacked.segments:before{content:"";position:absolute;bottom:-3px;left:0;border-top:1px solid rgba(34,36,38,.15);background:rgba(0,0,0,.03);width:100%;height:6px;visibility:visible}.ui.stacked.segment:before,.ui.stacked.segments:before{display:none}.ui.tall.stacked.segment:before,.ui.tall.stacked.segments:before{display:block;bottom:0}.ui.stacked.inverted.segment:after,.ui.stacked.inverted.segment:before,.ui.stacked.inverted.segments:after,.ui.stacked.inverted.segments:before{background-color:rgba(0,0,0,.03);border-top:1px solid rgba(34,36,38,.35)}.ui.padded.segment{padding:1.5em}.ui[class*="very padded"].segment{padding:3em}.ui.padded.segment.vertical.segment,.ui[class*="very padded"].vertical.segment{padding-left:0;padding-right:0}.ui.compact.segment{display:table}.ui.compact.segments{display:inline-flex}.ui.compact.segments .segment,.ui.segments .compact.segment{display:block;flex:0 1 auto}.ui.circular.segment{display:table-cell;padding:2em;text-align:center;vertical-align:middle;border-radius:500em}.ui.raised.segment,.ui.raised.segments{box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.segments{flex-direction:column;position:relative;margin:1rem 0;border:none;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15);border-radius:.21428571rem}.ui.segments:first-child{margin-top:0}.ui.segments:last-child{margin-bottom:0}.ui.segments>.segment{top:0;bottom:0;border-radius:0;margin:0;width:auto;box-shadow:none;border:none}.ui.segments:not(.horizontal)>.segment:first-child{border-top:none;margin-top:0;bottom:0;margin-bottom:0;top:0;border-radius:.21428571rem .21428571rem 0 0}.ui.segments:not(.horizontal)>.segment:last-child{top:0;bottom:0;margin-top:0;margin-bottom:0;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15),none;border-radius:0 0 .21428571rem .21428571rem}.ui.segments:not(.horizontal)>.segment:only-child{border-radius:.21428571rem}.ui.segments>.ui.segments{border-top:none;margin:1rem}.ui.segments>.segments:first-child{border-top:none}.ui.segments>.segment+.segments:not(.horizontal){margin-top:0}.ui.horizontal.segments{display:flex;flex-direction:row;background-color:transparent;border-radius:0;padding:0;background-color:#fff;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15);margin:1rem 0;border-radius:.21428571rem;border:none}.ui.horizontal.segments>.segment,.ui.segments>.horizontal.segments{margin:0;background-color:transparent;border-radius:0;box-shadow:none;border:none}.ui.horizontal.segments>.segment{flex:1 1 auto;-ms-flex:1 1 0px;min-width:0;border-left:1px solid rgba(34,36,38,.15)}.ui.segments>.horizontal.segments:first-child{border-top:none}.ui.horizontal.segments>.segment:first-child{border-left:none}.ui.disabled.segment{opacity:.45;color:rgba(40,40,40,.3)}.ui.loading.segment{position:relative;cursor:default;pointer-events:none;text-shadow:none!important;color:transparent!important;transition:all 0s linear}.ui.loading.segment:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.8);width:100%;height:100%;border-radius:.21428571rem;z-index:100}.ui.loading.segment:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid rgba(0,0,0,.1);border-top-color:#767676;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}@-webkit-keyframes segment-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes segment-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui.basic.segment{background:none transparent;box-shadow:none;border:none;border-radius:0}.ui.clearing.segment:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.red.segment:not(.inverted){border-top:2px solid #db2828!important}.ui.inverted.red.segment{background-color:#db2828!important;color:#fff!important}.ui.orange.segment:not(.inverted){border-top:2px solid #f2711c!important}.ui.inverted.orange.segment{background-color:#f2711c!important;color:#fff!important}.ui.yellow.segment:not(.inverted){border-top:2px solid #fbbd08!important}.ui.inverted.yellow.segment{background-color:#fbbd08!important;color:#fff!important}.ui.olive.segment:not(.inverted){border-top:2px solid #b5cc18!important}.ui.inverted.olive.segment{background-color:#b5cc18!important;color:#fff!important}.ui.green.segment:not(.inverted){border-top:2px solid #21ba45!important}.ui.inverted.green.segment{background-color:#21ba45!important;color:#fff!important}.ui.teal.segment:not(.inverted){border-top:2px solid #00b5ad!important}.ui.inverted.teal.segment{background-color:#00b5ad!important;color:#fff!important}.ui.blue.segment:not(.inverted){border-top:2px solid #2c6a9e!important}.ui.inverted.blue.segment{background-color:#2c6a9e!important;color:#fff!important}.ui.violet.segment:not(.inverted){border-top:2px solid #6435c9!important}.ui.inverted.violet.segment{background-color:#6435c9!important;color:#fff!important}.ui.purple.segment:not(.inverted){border-top:2px solid #a333c8!important}.ui.inverted.purple.segment{background-color:#a333c8!important;color:#fff!important}.ui.pink.segment:not(.inverted){border-top:2px solid #e03997!important}.ui.inverted.pink.segment{background-color:#e03997!important;color:#fff!important}.ui.brown.segment:not(.inverted){border-top:2px solid #a5673f!important}.ui.inverted.brown.segment{background-color:#a5673f!important;color:#fff!important}.ui.grey.segment:not(.inverted){border-top:2px solid #767676!important}.ui.inverted.grey.segment{background-color:#767676!important;color:#fff!important}.ui.black.segment:not(.inverted){border-top:2px solid #1b1c1d!important}.ui.inverted.black.segment{background-color:#1b1c1d!important;color:#fff!important}.ui[class*="left aligned"].segment{text-align:left}.ui[class*="right aligned"].segment{text-align:right}.ui[class*="center aligned"].segment{text-align:center}.ui.floated.segment,.ui[class*="left floated"].segment{float:left;margin-right:1em}.ui[class*="right floated"].segment{float:right;margin-left:1em}.ui.inverted.segment{border:none;box-shadow:none}.ui.inverted.segment,.ui.primary.inverted.segment{background:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.inverted.segment .segment{color:rgba(0,0,0,.87)}.ui.inverted.segment .inverted.segment{color:hsla(0,0%,100%,.9)}.ui.inverted.attached.segment{border-color:#555}.ui.secondary.segment{background:#f3f4f5;color:rgba(0,0,0,.6)}.ui.secondary.inverted.segment{background:#4c4f52 linear-gradient(hsla(0,0%,100%,.2),hsla(0,0%,100%,.2));color:hsla(0,0%,100%,.8)}.ui.tertiary.segment{background:#dcddde;color:rgba(0,0,0,.6)}.ui.tertiary.inverted.segment{background:#717579 linear-gradient(hsla(0,0%,100%,.35),hsla(0,0%,100%,.35));color:hsla(0,0%,100%,.8)}.ui.attached.segment{top:0;bottom:0;border-radius:0;margin:0 -1px;width:102%;max-width:102%;box-shadow:none;border:1px solid #d4d4d5}.ui.attached:not(.message)+.ui.attached.segment:not(.top){border-top:none}.ui[class*="top attached"].segment{bottom:0;margin-bottom:0;top:0;margin-top:1rem;border-radius:.21428571rem .21428571rem 0 0}.ui.segment[class*="top attached"]:first-child{margin-top:0}.ui.segment[class*="bottom attached"]{bottom:0;margin-top:0;top:0;margin-bottom:1rem;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15),none;border-radius:0 0 .21428571rem .21428571rem}.ui.segment[class*="bottom attached"]:last-child{margin-bottom:0}.ui.mini.segment,.ui.mini.segments .segment{font-size:11px;font-size:.78571429rem}.ui.tiny.segment,.ui.tiny.segments .segment{font-size:12px;font-size:.85714286rem}.ui.small.segment,.ui.small.segments .segment{font-size:13px;font-size:.92857143rem}.ui.segment,.ui.segments .segment{font-size:14px;font-size:1rem}.ui.large.segment,.ui.large.segments .segment{font-size:15.999px;font-size:1.14285714rem}.ui.big.segment,.ui.big.segments .segment{font-size:18px;font-size:1.28571429rem}.ui.huge.segment,.ui.huge.segments .segment{font-size:20px;font-size:1.42857143rem}.ui.massive.segment,.ui.massive.segments .segment{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Step
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.steps{display:inline-flex;flex-direction:row;align-items:stretch;margin:1em 0;background:"";box-shadow:none;line-height:1.14285714em;border-radius:.21428571rem;border:1px solid rgba(34,36,38,.15)}.ui.steps:first-child{margin-top:0}.ui.steps:last-child{margin-bottom:0}.ui.steps .step{position:relative;display:flex;flex:1 0 auto;flex-wrap:wrap;flex-direction:row;vertical-align:middle;align-items:center;justify-content:center;margin:0;padding:1.14285714em 2em;background:#fff;color:rgba(0,0,0,.87);box-shadow:none;border-radius:0;border:none;border-right:1px solid rgba(34,36,38,.15)}.ui.steps .step,.ui.steps .step:after{transition:background-color .1s ease,opacity .1s ease,color .1s ease,box-shadow .1s ease}.ui.steps .step:after{display:none;position:absolute;z-index:2;content:"";top:50%;right:0;background-color:#fff;width:1.14285714em;height:1.14285714em;border:solid rgba(34,36,38,.15);border-width:0 1px 1px 0;transform:translateY(-50%) translateX(50%) rotate(-45deg)}.ui.steps .step:first-child{padding-left:2em;border-radius:.21428571rem 0 0 .21428571rem}.ui.steps .step:last-child{border-radius:0 .21428571rem .21428571rem 0;border-right:none;margin-right:0}.ui.steps .step:only-child{border-radius:.21428571rem}.ui.steps .step .title{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1.14285714em;font-weight:700}.ui.steps .step>.title{width:100%}.ui.steps .step .description{font-weight:400;font-size:.92857143em;color:rgba(0,0,0,.87)}.ui.steps .step>.description{width:100%}.ui.steps .step .title~.description{margin-top:.25em}.ui.steps .step>.icon{line-height:1;font-size:2.5em;margin:0 1rem 0 0}.ui.steps .step>.icon,.ui.steps .step>.icon~.content{display:block;flex:0 1 auto;align-self:middle}.ui.steps .step>.icon~.content{flex-grow:1 0 auto}.ui.steps:not(.vertical) .step>.icon{width:auto}.ui.steps .link.step,.ui.steps a.step{cursor:pointer}.ui.ordered.steps{counter-reset:ordered}.ui.ordered.steps .step:before{position:static;text-align:center;content:counters(ordered,".");margin-right:1rem;font-size:2.5em;counter-increment:ordered;font-family:inherit;font-weight:700}.ui.ordered.steps .step:before,.ui.ordered.steps .step>*{display:block;align-self:middle}.ui.vertical.steps{display:inline-flex;flex-direction:column;overflow:visible}.ui.vertical.steps .step{justify-content:flex-start;border-radius:0;padding:1.14285714em 2em;border-right:none;border-bottom:1px solid rgba(34,36,38,.15)}.ui.vertical.steps .step:first-child{padding:1.14285714em 2em;border-radius:.21428571rem .21428571rem 0 0}.ui.vertical.steps .step:last-child{border-bottom:none;border-radius:0 0 .21428571rem .21428571rem}.ui.vertical.steps .step:only-child{border-radius:.21428571rem}.ui.vertical.steps .step:after{top:50%;right:0;border-width:0 1px 1px 0;display:none}.ui.vertical.steps .active.step:after{display:block}.ui.vertical.steps .step:last-child:after{display:none}.ui.vertical.steps .active.step:last-child:after{display:block}@media only screen and (max-width:767px){.ui.steps:not(.unstackable){display:inline-flex;overflow:visible;flex-direction:column}.ui.steps:not(.unstackable) .step{width:100%!important;flex-direction:column;border-radius:0;padding:1.14285714em 2em}.ui.steps:not(.unstackable) .step:first-child{padding:1.14285714em 2em;border-radius:.21428571rem .21428571rem 0 0}.ui.steps:not(.unstackable) .step:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui.steps:not(.unstackable) .step:after{display:none!important}.ui.steps:not(.unstackable) .step .content{text-align:center}.ui.ordered.steps:not(.unstackable) .step:before,.ui.steps:not(.unstackable) .step>.icon{margin:0 0 1rem}}.ui.steps .link.step:hover,.ui.steps .link.step:hover:after,.ui.steps a.step:hover,.ui.steps a.step:hover:after{background:#f9fafb;color:rgba(0,0,0,.8)}.ui.steps .link.step:active,.ui.steps .link.step:active:after,.ui.steps a.step:active,.ui.steps a.step:active:after{background:#f3f4f5;color:rgba(0,0,0,.9)}.ui.steps .step.active{cursor:auto;background:#f3f4f5}.ui.steps .step.active:after{background:#f3f4f5}.ui.steps .step.active .title{color:#2c6a9e}.ui.ordered.steps .step.active:before,.ui.steps .active.step .icon{color:rgba(0,0,0,.85)}.ui.steps .active.step:after,.ui.steps .step:after{display:block}.ui.steps .active.step:last-child:after,.ui.steps .step:last-child:after{display:none}.ui.steps .link.active.step:hover,.ui.steps .link.active.step:hover:after,.ui.steps a.active.step:hover,.ui.steps a.active.step:hover:after{cursor:pointer;background:#dcddde;color:rgba(0,0,0,.87)}.ui.ordered.steps .step.completed:before,.ui.steps .step.completed>.icon:before{color:#21ba45}.ui.steps .disabled.step{cursor:auto;background:#fff;pointer-events:none}.ui.steps .disabled.step,.ui.steps .disabled.step .description,.ui.steps .disabled.step .title{color:rgba(40,40,40,.3)}.ui.steps .disabled.step:after{background:#fff}@media only screen and (max-width:991px){.ui[class*="tablet stackable"].steps{display:inline-flex;overflow:visible;flex-direction:column}.ui[class*="tablet stackable"].steps .step{flex-direction:column;border-radius:0;padding:1.14285714em 2em}.ui[class*="tablet stackable"].steps .step:first-child{padding:1.14285714em 2em;border-radius:.21428571rem .21428571rem 0 0}.ui[class*="tablet stackable"].steps .step:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui[class*="tablet stackable"].steps .step:after{display:none!important}.ui[class*="tablet stackable"].steps .step .content{text-align:center}.ui[class*="tablet stackable"].ordered.steps .step:before,.ui[class*="tablet stackable"].steps .step>.icon{margin:0 0 1rem}}.ui.fluid.steps{display:flex;width:100%}.ui.attached.steps{width:102%!important;margin:0 -1px;max-width:102%;border-radius:.21428571rem .21428571rem 0 0}.ui.attached.steps .step:first-child{border-radius:.21428571rem 0 0 0}.ui.attached.steps .step:last-child{border-radius:0 .21428571rem 0 0}.ui.bottom.attached.steps{margin:0 -1px;border-radius:0 0 .21428571rem .21428571rem}.ui.bottom.attached.steps .step:first-child{border-radius:0 0 0 .21428571rem}.ui.bottom.attached.steps .step:last-child{border-radius:0 0 .21428571rem 0}.ui.eight.steps,.ui.five.steps,.ui.four.steps,.ui.one.steps,.ui.seven.steps,.ui.six.steps,.ui.three.steps,.ui.two.steps{width:100%}.ui.eight.steps>.step,.ui.five.steps>.step,.ui.four.steps>.step,.ui.one.steps>.step,.ui.seven.steps>.step,.ui.six.steps>.step,.ui.three.steps>.step,.ui.two.steps>.step{flex-wrap:nowrap}.ui.one.steps>.step{width:100%}.ui.two.steps>.step{width:50%}.ui.three.steps>.step{width:33.333%}.ui.four.steps>.step{width:25%}.ui.five.steps>.step{width:20%}.ui.six.steps>.step{width:16.666%}.ui.seven.steps>.step{width:14.285%}.ui.eight.steps>.step{width:12.5%}.ui.mini.step,.ui.mini.steps .step{font-size:11px;font-size:.78571429rem}.ui.tiny.step,.ui.tiny.steps .step{font-size:12px;font-size:.85714286rem}.ui.small.step,.ui.small.steps .step{font-size:13px;font-size:.92857143rem}.ui.step,.ui.steps .step{font-size:14px;font-size:1rem}.ui.large.step,.ui.large.steps .step{font-size:15.999px;font-size:1.14285714rem}.ui.big.step,.ui.big.steps .step{font-size:18px;font-size:1.28571429rem}.ui.huge.step,.ui.huge.steps .step{font-size:20px;font-size:1.42857143rem}.ui.massive.step,.ui.massive.steps .step{font-size:23.999px;font-size:1.71428571rem}@font-face{font-family:Step;src:url(data:application/x-font-ttf;charset=utf-8;;base64,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) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,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) format("woff")}.ui.ordered.steps .step.completed:before,.ui.steps .step.completed>.icon:before{font-family:Step;content:"\e800"}
/*!
 * # Semantic UI - Breadcrumb
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.breadcrumb{line-height:1;display:inline-block;margin:0;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.7;margin:0 .21428571rem;font-size:.92857143em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#2c6a9e}.ui.breadcrumb a:hover{color:#3277b2}.ui.breadcrumb .icon.divider{font-size:.85714286em;vertical-align:baseline}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.78571429em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.mini.breadcrumb{font-size:11px;font-size:.78571429rem}.ui.tiny.breadcrumb{font-size:12px;font-size:.85714286rem}.ui.small.breadcrumb{font-size:13px;font-size:.92857143rem}.ui.breadcrumb{font-size:14px;font-size:1rem}.ui.large.breadcrumb{font-size:15.999px;font-size:1.14285714rem}.ui.big.breadcrumb{font-size:18px;font-size:1.28571429rem}.ui.huge.breadcrumb{font-size:20px;font-size:1.42857143rem}.ui.massive.breadcrumb{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Form
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.form{position:relative;max-width:100%}.ui.form>p{margin:1em 0}.ui.form .field{clear:both;margin:0 0 1em}.ui.form .field:last-child,.ui.form .fields:last-child .field{margin-bottom:0}.ui.form .fields .field{clear:both;margin:0}.ui.form .field>label{display:block;margin:0 0 .28571429rem;color:rgba(0,0,0,.87);font-size:.92857143em;font-weight:700;text-transform:none}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=file],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url],.ui.form textarea{width:100%;vertical-align:top}.ui.form ::-webkit-datetime-edit,.ui.form ::-webkit-inner-spin-button{height:1.21428571em}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=file],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url]{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0;outline:none;-webkit-appearance:none;tap-highlight-color:hsla(0,0%,100%,0);line-height:1.21428571em;padding:.67857143em 1em;font-size:1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);border-radius:.21428571rem;box-shadow:inset 0 0 0 0 transparent;transition:color .1s ease,border-color .1s ease}.ui.form textarea{margin:0;-webkit-appearance:none;tap-highlight-color:hsla(0,0%,100%,0);padding:.78571429em 1em;background:#fff;border:1px solid rgba(34,36,38,.15);outline:none;color:rgba(0,0,0,.87);border-radius:.21428571rem;box-shadow:inset 0 0 0 0 transparent;transition:color .1s ease,border-color .1s ease;font-size:1em;line-height:1.2857;resize:vertical}.ui.form textarea:not([rows]){height:12em;min-height:8em;max-height:24em}.ui.form input[type=checkbox],.ui.form textarea{vertical-align:top}.ui.form input.attached{width:auto}.ui.form select{display:block;height:auto;width:100%;background:#fff;border:1px solid rgba(34,36,38,.15);border-radius:.21428571rem;box-shadow:inset 0 0 0 0 transparent;padding:.62em 1em;color:rgba(0,0,0,.87);transition:color .1s ease,border-color .1s ease}.ui.form .field>.selection.dropdown{width:100%}.ui.form .field>.selection.dropdown>.dropdown.icon{float:right}.ui.form .inline.field>.selection.dropdown,.ui.form .inline.fields .field>.selection.dropdown{width:auto}.ui.form .inline.field>.selection.dropdown>.dropdown.icon,.ui.form .inline.fields .field>.selection.dropdown>.dropdown.icon{float:none}.ui.form .field .ui.input,.ui.form .fields .field .ui.input,.ui.form .wide.field .ui.input{width:100%}.ui.form .inline.field:not(.wide) .ui.input,.ui.form .inline.fields .field:not(.wide) .ui.input{width:auto;vertical-align:middle}.ui.form .field .ui.input input,.ui.form .fields .field .ui.input input{width:auto}.ui.form .eight.fields .ui.input input,.ui.form .five.fields .ui.input input,.ui.form .four.fields .ui.input input,.ui.form .nine.fields .ui.input input,.ui.form .seven.fields .ui.input input,.ui.form .six.fields .ui.input input,.ui.form .ten.fields .ui.input input,.ui.form .three.fields .ui.input input,.ui.form .two.fields .ui.input input,.ui.form .wide.field .ui.input input{flex:1 0 auto;width:0}.ui.form .error.message,.ui.form .success.message,.ui.form .warning.message{display:none}.ui.form .message:first-child{margin-top:0}.ui.form .field .prompt.label{white-space:normal;background:#fff!important;border:1px solid #e0b4b4!important;color:#9f3a38!important}.ui.form .inline.field .prompt,.ui.form .inline.fields .field .prompt{vertical-align:top;margin:-.25em 0 -.5em .5em}.ui.form .inline.field .prompt:before,.ui.form .inline.fields .field .prompt:before{border-width:0 0 1px 1px;bottom:auto;right:auto;top:50%;left:0}.ui.form .field.field input:-webkit-autofill{box-shadow:inset 0 0 0 100px ivory!important;border-color:#e5dfa1!important}.ui.form .field.field input:-webkit-autofill:focus{box-shadow:inset 0 0 0 100px ivory!important;border-color:#d5c315!important}.ui.form .error.error input:-webkit-autofill{box-shadow:inset 0 0 0 100px #fffaf0!important;border-color:#e0b4b4!important}.ui.form ::-webkit-input-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.form :-ms-input-placeholder{color:hsla(0,0%,74.9%,.87)!important}.ui.form ::-moz-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.form :focus::-webkit-input-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.form :focus:-ms-input-placeholder{color:hsla(0,0%,45.1%,.87)!important}.ui.form :focus::-moz-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.form .error ::-webkit-input-placeholder{color:#e7bdbc}.ui.form .error :-ms-input-placeholder{color:#e7bdbc!important}.ui.form .error ::-moz-placeholder{color:#e7bdbc}.ui.form .error :focus::-webkit-input-placeholder{color:#da9796}.ui.form .error :focus:-ms-input-placeholder{color:#da9796!important}.ui.form .error :focus::-moz-placeholder{color:#da9796}.ui.form input:not([type]):focus,.ui.form input[type=date]:focus,.ui.form input[type=datetime-local]:focus,.ui.form input[type=email]:focus,.ui.form input[type=file]:focus,.ui.form input[type=number]:focus,.ui.form input[type=password]:focus,.ui.form input[type=search]:focus,.ui.form input[type=tel]:focus,.ui.form input[type=text]:focus,.ui.form input[type=time]:focus,.ui.form input[type=url]:focus,.ui.form textarea:focus{color:rgba(0,0,0,.95);border-color:#85b7d9;border-radius:.21428571rem;background:#fff;box-shadow:inset 0 0 0 0 rgba(34,36,38,.35)}.ui.form textarea:focus{-webkit-appearance:none}.ui.form.success .success.message:not(:empty){display:block}.ui.form.success .compact.success.message:not(:empty){display:inline-block}.ui.form.success .icon.success.message:not(:empty){display:flex}.ui.form.warning .warning.message:not(:empty){display:block}.ui.form.warning .compact.warning.message:not(:empty){display:inline-block}.ui.form.warning .icon.warning.message:not(:empty){display:flex}.ui.form.error .error.message:not(:empty){display:block}.ui.form.error .compact.error.message:not(:empty){display:inline-block}.ui.form.error .icon.error.message:not(:empty){display:flex}.ui.form .field.error .input,.ui.form .field.error label,.ui.form .fields.error .field .input,.ui.form .fields.error .field label{color:#9f3a38}.ui.form .field.error .corner.label,.ui.form .fields.error .field .corner.label{border-color:#9f3a38;color:#fff}.ui.form .field.error input:not([type]),.ui.form .field.error input[type=date],.ui.form .field.error input[type=datetime-local],.ui.form .field.error input[type=email],.ui.form .field.error input[type=file],.ui.form .field.error input[type=number],.ui.form .field.error input[type=password],.ui.form .field.error input[type=search],.ui.form .field.error input[type=tel],.ui.form .field.error input[type=text],.ui.form .field.error input[type=time],.ui.form .field.error input[type=url],.ui.form .field.error select,.ui.form .field.error textarea,.ui.form .fields.error .field input:not([type]),.ui.form .fields.error .field input[type=date],.ui.form .fields.error .field input[type=datetime-local],.ui.form .fields.error .field input[type=email],.ui.form .fields.error .field input[type=file],.ui.form .fields.error .field input[type=number],.ui.form .fields.error .field input[type=password],.ui.form .fields.error .field input[type=search],.ui.form .fields.error .field input[type=tel],.ui.form .fields.error .field input[type=text],.ui.form .fields.error .field input[type=time],.ui.form .fields.error .field input[type=url],.ui.form .fields.error .field select,.ui.form .fields.error .field textarea{background:#fff6f6;border-color:#e0b4b4;color:#9f3a38;border-radius:"";box-shadow:none}.ui.form .field.error input:not([type]):focus,.ui.form .field.error input[type=date]:focus,.ui.form .field.error input[type=datetime-local]:focus,.ui.form .field.error input[type=email]:focus,.ui.form .field.error input[type=file]:focus,.ui.form .field.error input[type=number]:focus,.ui.form .field.error input[type=password]:focus,.ui.form .field.error input[type=search]:focus,.ui.form .field.error input[type=tel]:focus,.ui.form .field.error input[type=text]:focus,.ui.form .field.error input[type=time]:focus,.ui.form .field.error input[type=url]:focus,.ui.form .field.error select:focus,.ui.form .field.error textarea:focus{background:#fff6f6;border-color:#e0b4b4;color:#9f3a38;-webkit-appearance:none;box-shadow:none}.ui.form .field.error select{-webkit-appearance:menulist-button}.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown .item,.ui.form .field.error .ui.dropdown .text,.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown .item{background:#fff6f6;color:#9f3a38}.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown:hover,.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown:hover{border-color:#e0b4b4!important}.ui.form .field.error .ui.dropdown:hover .menu,.ui.form .fields.error .field .ui.dropdown:hover .menu{border-color:#e0b4b4}.ui.form .field.error .ui.multiple.selection.dropdown>.label,.ui.form .fields.error .field .ui.multiple.selection.dropdown>.label{background-color:#eacbcb;color:#9f3a38}.ui.form .field.error .ui.dropdown .menu .item:hover,.ui.form .field.error .ui.dropdown .menu .selected.item,.ui.form .fields.error .field .ui.dropdown .menu .item:hover,.ui.form .fields.error .field .ui.dropdown .menu .selected.item{background-color:#fbe7e7}.ui.form .field.error .ui.dropdown .menu .active.item,.ui.form .fields.error .field .ui.dropdown .menu .active.item{background-color:#fdcfcf!important}.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box,.ui.form .field.error .checkbox:not(.toggle):not(.slider) label,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label{color:#9f3a38}.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.error .checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label:before{background:#fff6f6;border-color:#e0b4b4}.ui.form .field.error .checkbox .box:after,.ui.form .field.error .checkbox label:after,.ui.form .fields.error .field .checkbox .box:after,.ui.form .fields.error .field .checkbox label:after{color:#9f3a38}.ui.form .disabled.field,.ui.form .disabled.fields .field,.ui.form .field :disabled{pointer-events:none;opacity:.45}.ui.form .field.disabled>label,.ui.form .fields.disabled>label{opacity:.45}.ui.form .field.disabled :disabled{opacity:1}.ui.loading.form{position:relative;cursor:default;pointer-events:none}.ui.loading.form:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.8);width:100%;height:100%;z-index:100}.ui.loading.form:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:form-spin .6s linear;animation:form-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid rgba(0,0,0,.1);border-top-color:#767676;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}@-webkit-keyframes form-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes form-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui.form .required.field>.checkbox:after,.ui.form .required.field>label:after,.ui.form .required.fields.grouped>label:after,.ui.form .required.fields:not(.grouped)>.field>.checkbox:after,.ui.form .required.fields:not(.grouped)>.field>label:after{margin:-.2em 0 0 .2em;content:"*";color:#db2828}.ui.form .required.field>label:after,.ui.form .required.fields.grouped>label:after,.ui.form .required.fields:not(.grouped)>.field>label:after{display:inline-block;vertical-align:top}.ui.form .required.field>.checkbox:after,.ui.form .required.fields:not(.grouped)>.field>.checkbox:after{position:absolute;top:0;left:100%}.ui.form .inverted.segment .ui.checkbox .box,.ui.form .inverted.segment .ui.checkbox label,.ui.form .inverted.segment label,.ui.inverted.form .inline.field>label,.ui.inverted.form .inline.field>p,.ui.inverted.form .inline.fields .field>label,.ui.inverted.form .inline.fields .field>p,.ui.inverted.form .inline.fields>label,.ui.inverted.form .ui.checkbox .box,.ui.inverted.form .ui.checkbox label,.ui.inverted.form label{color:hsla(0,0%,100%,.9)}.ui.inverted.form input:not([type]),.ui.inverted.form input[type=date],.ui.inverted.form input[type=datetime-local],.ui.inverted.form input[type=email],.ui.inverted.form input[type=file],.ui.inverted.form input[type=number],.ui.inverted.form input[type=password],.ui.inverted.form input[type=search],.ui.inverted.form input[type=tel],.ui.inverted.form input[type=text],.ui.inverted.form input[type=time],.ui.inverted.form input[type=url]{background:#fff;border-color:hsla(0,0%,100%,.1);color:rgba(0,0,0,.87);box-shadow:none}.ui.form .grouped.fields{display:block;margin:0 0 1em}.ui.form .grouped.fields:last-child{margin-bottom:0}.ui.form .grouped.fields>label{margin:0 0 .28571429rem;color:rgba(0,0,0,.87);font-size:.92857143em;font-weight:700;text-transform:none}.ui.form .grouped.fields .field,.ui.form .grouped.inline.fields .field{display:block;margin:.5em 0;padding:0}.ui.form .fields{display:flex;flex-direction:row;margin:0 -.5em 1em}.ui.form .fields>.field{flex:0 1 auto;padding-left:.5em;padding-right:.5em}.ui.form .fields>.field:first-child{border-left:none;box-shadow:none}.ui.form .two.fields>.field,.ui.form .two.fields>.fields{width:50%}.ui.form .three.fields>.field,.ui.form .three.fields>.fields{width:33.33333333%}.ui.form .four.fields>.field,.ui.form .four.fields>.fields{width:25%}.ui.form .five.fields>.field,.ui.form .five.fields>.fields{width:20%}.ui.form .six.fields>.field,.ui.form .six.fields>.fields{width:16.66666667%}.ui.form .seven.fields>.field,.ui.form .seven.fields>.fields{width:14.28571429%}.ui.form .eight.fields>.field,.ui.form .eight.fields>.fields{width:12.5%}.ui.form .nine.fields>.field,.ui.form .nine.fields>.fields{width:11.11111111%}.ui.form .ten.fields>.field,.ui.form .ten.fields>.fields{width:10%}@media only screen and (max-width:767px){.ui.form .fields{flex-wrap:wrap}.ui.form:not(.unstackable) .eight.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .eight.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .five.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .five.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .four.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .four.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .nine.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .nine.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .seven.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .seven.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .six.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .six.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .ten.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .ten.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .three.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .three.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .two.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .two.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) [class*="equal width"].fields:not(.unstackable)>.field,.ui[class*="equal width"].form:not(.unstackable) .fields>.field{width:100%!important;margin:0 0 1em}}.ui.form .fields .wide.field{width:6.25%;padding-left:.5em;padding-right:.5em}.ui.form .one.wide.field{width:6.25%!important}.ui.form .two.wide.field{width:12.5%!important}.ui.form .three.wide.field{width:18.75%!important}.ui.form .four.wide.field{width:25%!important}.ui.form .five.wide.field{width:31.25%!important}.ui.form .six.wide.field{width:37.5%!important}.ui.form .seven.wide.field{width:43.75%!important}.ui.form .eight.wide.field{width:50%!important}.ui.form .nine.wide.field{width:56.25%!important}.ui.form .ten.wide.field{width:62.5%!important}.ui.form .eleven.wide.field{width:68.75%!important}.ui.form .twelve.wide.field{width:75%!important}.ui.form .thirteen.wide.field{width:81.25%!important}.ui.form .fourteen.wide.field{width:87.5%!important}.ui.form .fifteen.wide.field{width:93.75%!important}.ui.form .sixteen.wide.field{width:100%!important}@media only screen and (max-width:767px){.ui.form:not(.unstackable) .fields:not(.unstackable)>.eight.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.eleven.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.fifteen.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.five.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.four.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.fourteen.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.nine.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.seven.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.six.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.sixteen.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.ten.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.thirteen.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.three.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.twelve.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.two.wide.field,.ui.form:not(.unstackable) .five.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .five.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .four.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .four.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .three.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .three.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .two.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .two.fields:not(.unstackable)>.fields{width:100%!important}.ui.form .fields{margin-bottom:0}}.ui.form [class*="equal width"].fields>.field,.ui[class*="equal width"].form .fields>.field{width:100%;flex:1 1 auto}.ui.form .inline.fields{margin:0 0 1em;align-items:center}.ui.form .inline.fields .field{margin:0;padding:0 1em 0 0}.ui.form .inline.field>label,.ui.form .inline.field>p,.ui.form .inline.fields .field>label,.ui.form .inline.fields .field>p,.ui.form .inline.fields>label{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:baseline;font-size:.92857143em;font-weight:700;color:rgba(0,0,0,.87);text-transform:none}.ui.form .inline.fields>label{margin:.035714em 1em 0 0}.ui.form .inline.field>input,.ui.form .inline.field>select,.ui.form .inline.fields .field>input,.ui.form .inline.fields .field>select{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:middle;font-size:1em}.ui.form .inline.field>:first-child,.ui.form .inline.fields .field>:first-child{margin:0 .85714286em 0 0}.ui.form .inline.field>:only-child,.ui.form .inline.fields .field>:only-child{margin:0}.ui.form .inline.fields .wide.field{display:flex;align-items:center}.ui.form .inline.fields .wide.field>input,.ui.form .inline.fields .wide.field>select{width:100%}.ui.mini.form{font-size:11px;font-size:.78571429rem}.ui.tiny.form{font-size:12px;font-size:.85714286rem}.ui.small.form{font-size:13px;font-size:.92857143rem}.ui.form{font-size:14px;font-size:1rem}.ui.large.form{font-size:15.999px;font-size:1.14285714rem}.ui.big.form{font-size:18px;font-size:1.28571429rem}.ui.huge.form{font-size:20px;font-size:1.42857143rem}.ui.massive.form{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Grid
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.grid{display:flex;flex-direction:row;flex-wrap:wrap;align-items:stretch;padding:0;margin:-1rem}.ui.relaxed.grid{margin-left:-1.5rem;margin-right:-1.5rem}.ui[class*="very relaxed"].grid{margin-left:-2.5rem;margin-right:-2.5rem}.ui.grid+.grid{margin-top:1rem}.ui.grid>.column:not(.row),.ui.grid>.row>.column{position:relative;display:inline-block;width:6.25%;padding-left:1rem;padding-right:1rem;vertical-align:top}.ui.grid>*{padding-left:1rem;padding-right:1rem}.ui.grid>.row{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:inherit;align-items:stretch;width:100%!important;padding:1rem 0}.ui.grid>.column:not(.row){padding-top:1rem;padding-bottom:1rem}.ui.grid>.row>.column{margin-top:0;margin-bottom:0}.ui.grid>.row>.column>img,.ui.grid>.row>img{max-width:100%}.ui.grid>.ui.grid:first-child{margin-top:0}.ui.grid>.ui.grid:last-child{margin-bottom:0}.ui.aligned.grid .column>.segment:not(.compact):not(.attached),.ui.grid .aligned.row>.column>.segment:not(.compact):not(.attached){width:100%}.ui.grid .row+.ui.divider{flex-grow:1;margin:1rem}.ui.grid .column+.ui.vertical.divider{height:49%}.ui.grid>.column:last-child>.horizontal.segment,.ui.grid>.row>.column:last-child>.horizontal.segment{box-shadow:none}@media only screen and (max-width:767px){.ui.page.grid{width:auto;padding-left:0;padding-right:0;margin-left:0;margin-right:0}}@media only screen and (min-width:768px) and (max-width:991px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:2em;padding-right:2em}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:3%;padding-right:3%}}@media only screen and (min-width:1200px) and (max-width:1919px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:15%;padding-right:15%}}@media only screen and (min-width:1920px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:23%;padding-right:23%}}.ui.grid>.column:only-child,.ui.grid>.row>.column:only-child,.ui[class*="one column"].grid>.column:not(.row),.ui[class*="one column"].grid>.row>.column{width:100%}.ui[class*="two column"].grid>.column:not(.row),.ui[class*="two column"].grid>.row>.column{width:50%}.ui[class*="three column"].grid>.column:not(.row),.ui[class*="three column"].grid>.row>.column{width:33.33333333%}.ui[class*="four column"].grid>.column:not(.row),.ui[class*="four column"].grid>.row>.column{width:25%}.ui[class*="five column"].grid>.column:not(.row),.ui[class*="five column"].grid>.row>.column{width:20%}.ui[class*="six column"].grid>.column:not(.row),.ui[class*="six column"].grid>.row>.column{width:16.66666667%}.ui[class*="seven column"].grid>.column:not(.row),.ui[class*="seven column"].grid>.row>.column{width:14.28571429%}.ui[class*="eight column"].grid>.column:not(.row),.ui[class*="eight column"].grid>.row>.column{width:12.5%}.ui[class*="nine column"].grid>.column:not(.row),.ui[class*="nine column"].grid>.row>.column{width:11.11111111%}.ui[class*="ten column"].grid>.column:not(.row),.ui[class*="ten column"].grid>.row>.column{width:10%}.ui[class*="eleven column"].grid>.column:not(.row),.ui[class*="eleven column"].grid>.row>.column{width:9.09090909%}.ui[class*="twelve column"].grid>.column:not(.row),.ui[class*="twelve column"].grid>.row>.column{width:8.33333333%}.ui[class*="thirteen column"].grid>.column:not(.row),.ui[class*="thirteen column"].grid>.row>.column{width:7.69230769%}.ui[class*="fourteen column"].grid>.column:not(.row),.ui[class*="fourteen column"].grid>.row>.column{width:7.14285714%}.ui[class*="fifteen column"].grid>.column:not(.row),.ui[class*="fifteen column"].grid>.row>.column{width:6.66666667%}.ui[class*="sixteen column"].grid>.column:not(.row),.ui[class*="sixteen column"].grid>.row>.column{width:6.25%}.ui.grid>[class*="one column"].row>.column{width:100%!important}.ui.grid>[class*="two column"].row>.column{width:50%!important}.ui.grid>[class*="three column"].row>.column{width:33.33333333%!important}.ui.grid>[class*="four column"].row>.column{width:25%!important}.ui.grid>[class*="five column"].row>.column{width:20%!important}.ui.grid>[class*="six column"].row>.column{width:16.66666667%!important}.ui.grid>[class*="seven column"].row>.column{width:14.28571429%!important}.ui.grid>[class*="eight column"].row>.column{width:12.5%!important}.ui.grid>[class*="nine column"].row>.column{width:11.11111111%!important}.ui.grid>[class*="ten column"].row>.column{width:10%!important}.ui.grid>[class*="eleven column"].row>.column{width:9.09090909%!important}.ui.grid>[class*="twelve column"].row>.column{width:8.33333333%!important}.ui.grid>[class*="thirteen column"].row>.column{width:7.69230769%!important}.ui.grid>[class*="fourteen column"].row>.column{width:7.14285714%!important}.ui.grid>[class*="fifteen column"].row>.column{width:6.66666667%!important}.ui.grid>[class*="sixteen column"].row>.column{width:6.25%!important}.ui.celled.page.grid{box-shadow:none}.ui.column.grid>[class*="one wide"].column,.ui.grid>.column.row>[class*="one wide"].column,.ui.grid>.row>[class*="one wide"].column,.ui.grid>[class*="one wide"].column{width:6.25%!important}.ui.column.grid>[class*="two wide"].column,.ui.grid>.column.row>[class*="two wide"].column,.ui.grid>.row>[class*="two wide"].column,.ui.grid>[class*="two wide"].column{width:12.5%!important}.ui.column.grid>[class*="three wide"].column,.ui.grid>.column.row>[class*="three wide"].column,.ui.grid>.row>[class*="three wide"].column,.ui.grid>[class*="three wide"].column{width:18.75%!important}.ui.column.grid>[class*="four wide"].column,.ui.grid>.column.row>[class*="four wide"].column,.ui.grid>.row>[class*="four wide"].column,.ui.grid>[class*="four wide"].column{width:25%!important}.ui.column.grid>[class*="five wide"].column,.ui.grid>.column.row>[class*="five wide"].column,.ui.grid>.row>[class*="five wide"].column,.ui.grid>[class*="five wide"].column{width:31.25%!important}.ui.column.grid>[class*="six wide"].column,.ui.grid>.column.row>[class*="six wide"].column,.ui.grid>.row>[class*="six wide"].column,.ui.grid>[class*="six wide"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide"].column,.ui.grid>.column.row>[class*="seven wide"].column,.ui.grid>.row>[class*="seven wide"].column,.ui.grid>[class*="seven wide"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide"].column,.ui.grid>.column.row>[class*="eight wide"].column,.ui.grid>.row>[class*="eight wide"].column,.ui.grid>[class*="eight wide"].column{width:50%!important}.ui.column.grid>[class*="nine wide"].column,.ui.grid>.column.row>[class*="nine wide"].column,.ui.grid>.row>[class*="nine wide"].column,.ui.grid>[class*="nine wide"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide"].column,.ui.grid>.column.row>[class*="ten wide"].column,.ui.grid>.row>[class*="ten wide"].column,.ui.grid>[class*="ten wide"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide"].column,.ui.grid>.column.row>[class*="eleven wide"].column,.ui.grid>.row>[class*="eleven wide"].column,.ui.grid>[class*="eleven wide"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide"].column,.ui.grid>.column.row>[class*="twelve wide"].column,.ui.grid>.row>[class*="twelve wide"].column,.ui.grid>[class*="twelve wide"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide"].column,.ui.grid>.column.row>[class*="thirteen wide"].column,.ui.grid>.row>[class*="thirteen wide"].column,.ui.grid>[class*="thirteen wide"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide"].column,.ui.grid>.column.row>[class*="fourteen wide"].column,.ui.grid>.row>[class*="fourteen wide"].column,.ui.grid>[class*="fourteen wide"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide"].column,.ui.grid>.column.row>[class*="fifteen wide"].column,.ui.grid>.row>[class*="fifteen wide"].column,.ui.grid>[class*="fifteen wide"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide"].column,.ui.grid>.column.row>[class*="sixteen wide"].column,.ui.grid>.row>[class*="sixteen wide"].column,.ui.grid>[class*="sixteen wide"].column{width:100%!important}@media only screen and (min-width:320px) and (max-width:767px){.ui.column.grid>[class*="one wide mobile"].column,.ui.grid>.column.row>[class*="one wide mobile"].column,.ui.grid>.row>[class*="one wide mobile"].column,.ui.grid>[class*="one wide mobile"].column{width:6.25%!important}.ui.column.grid>[class*="two wide mobile"].column,.ui.grid>.column.row>[class*="two wide mobile"].column,.ui.grid>.row>[class*="two wide mobile"].column,.ui.grid>[class*="two wide mobile"].column{width:12.5%!important}.ui.column.grid>[class*="three wide mobile"].column,.ui.grid>.column.row>[class*="three wide mobile"].column,.ui.grid>.row>[class*="three wide mobile"].column,.ui.grid>[class*="three wide mobile"].column{width:18.75%!important}.ui.column.grid>[class*="four wide mobile"].column,.ui.grid>.column.row>[class*="four wide mobile"].column,.ui.grid>.row>[class*="four wide mobile"].column,.ui.grid>[class*="four wide mobile"].column{width:25%!important}.ui.column.grid>[class*="five wide mobile"].column,.ui.grid>.column.row>[class*="five wide mobile"].column,.ui.grid>.row>[class*="five wide mobile"].column,.ui.grid>[class*="five wide mobile"].column{width:31.25%!important}.ui.column.grid>[class*="six wide mobile"].column,.ui.grid>.column.row>[class*="six wide mobile"].column,.ui.grid>.row>[class*="six wide mobile"].column,.ui.grid>[class*="six wide mobile"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide mobile"].column,.ui.grid>.column.row>[class*="seven wide mobile"].column,.ui.grid>.row>[class*="seven wide mobile"].column,.ui.grid>[class*="seven wide mobile"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide mobile"].column,.ui.grid>.column.row>[class*="eight wide mobile"].column,.ui.grid>.row>[class*="eight wide mobile"].column,.ui.grid>[class*="eight wide mobile"].column{width:50%!important}.ui.column.grid>[class*="nine wide mobile"].column,.ui.grid>.column.row>[class*="nine wide mobile"].column,.ui.grid>.row>[class*="nine wide mobile"].column,.ui.grid>[class*="nine wide mobile"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide mobile"].column,.ui.grid>.column.row>[class*="ten wide mobile"].column,.ui.grid>.row>[class*="ten wide mobile"].column,.ui.grid>[class*="ten wide mobile"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide mobile"].column,.ui.grid>.column.row>[class*="eleven wide mobile"].column,.ui.grid>.row>[class*="eleven wide mobile"].column,.ui.grid>[class*="eleven wide mobile"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide mobile"].column,.ui.grid>.column.row>[class*="twelve wide mobile"].column,.ui.grid>.row>[class*="twelve wide mobile"].column,.ui.grid>[class*="twelve wide mobile"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide mobile"].column,.ui.grid>.column.row>[class*="thirteen wide mobile"].column,.ui.grid>.row>[class*="thirteen wide mobile"].column,.ui.grid>[class*="thirteen wide mobile"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide mobile"].column,.ui.grid>.column.row>[class*="fourteen wide mobile"].column,.ui.grid>.row>[class*="fourteen wide mobile"].column,.ui.grid>[class*="fourteen wide mobile"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide mobile"].column,.ui.grid>.column.row>[class*="fifteen wide mobile"].column,.ui.grid>.row>[class*="fifteen wide mobile"].column,.ui.grid>[class*="fifteen wide mobile"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide mobile"].column,.ui.grid>.column.row>[class*="sixteen wide mobile"].column,.ui.grid>.row>[class*="sixteen wide mobile"].column,.ui.grid>[class*="sixteen wide mobile"].column{width:100%!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.column.grid>[class*="one wide tablet"].column,.ui.grid>.column.row>[class*="one wide tablet"].column,.ui.grid>.row>[class*="one wide tablet"].column,.ui.grid>[class*="one wide tablet"].column{width:6.25%!important}.ui.column.grid>[class*="two wide tablet"].column,.ui.grid>.column.row>[class*="two wide tablet"].column,.ui.grid>.row>[class*="two wide tablet"].column,.ui.grid>[class*="two wide tablet"].column{width:12.5%!important}.ui.column.grid>[class*="three wide tablet"].column,.ui.grid>.column.row>[class*="three wide tablet"].column,.ui.grid>.row>[class*="three wide tablet"].column,.ui.grid>[class*="three wide tablet"].column{width:18.75%!important}.ui.column.grid>[class*="four wide tablet"].column,.ui.grid>.column.row>[class*="four wide tablet"].column,.ui.grid>.row>[class*="four wide tablet"].column,.ui.grid>[class*="four wide tablet"].column{width:25%!important}.ui.column.grid>[class*="five wide tablet"].column,.ui.grid>.column.row>[class*="five wide tablet"].column,.ui.grid>.row>[class*="five wide tablet"].column,.ui.grid>[class*="five wide tablet"].column{width:31.25%!important}.ui.column.grid>[class*="six wide tablet"].column,.ui.grid>.column.row>[class*="six wide tablet"].column,.ui.grid>.row>[class*="six wide tablet"].column,.ui.grid>[class*="six wide tablet"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide tablet"].column,.ui.grid>.column.row>[class*="seven wide tablet"].column,.ui.grid>.row>[class*="seven wide tablet"].column,.ui.grid>[class*="seven wide tablet"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide tablet"].column,.ui.grid>.column.row>[class*="eight wide tablet"].column,.ui.grid>.row>[class*="eight wide tablet"].column,.ui.grid>[class*="eight wide tablet"].column{width:50%!important}.ui.column.grid>[class*="nine wide tablet"].column,.ui.grid>.column.row>[class*="nine wide tablet"].column,.ui.grid>.row>[class*="nine wide tablet"].column,.ui.grid>[class*="nine wide tablet"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide tablet"].column,.ui.grid>.column.row>[class*="ten wide tablet"].column,.ui.grid>.row>[class*="ten wide tablet"].column,.ui.grid>[class*="ten wide tablet"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide tablet"].column,.ui.grid>.column.row>[class*="eleven wide tablet"].column,.ui.grid>.row>[class*="eleven wide tablet"].column,.ui.grid>[class*="eleven wide tablet"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide tablet"].column,.ui.grid>.column.row>[class*="twelve wide tablet"].column,.ui.grid>.row>[class*="twelve wide tablet"].column,.ui.grid>[class*="twelve wide tablet"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide tablet"].column,.ui.grid>.column.row>[class*="thirteen wide tablet"].column,.ui.grid>.row>[class*="thirteen wide tablet"].column,.ui.grid>[class*="thirteen wide tablet"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide tablet"].column,.ui.grid>.column.row>[class*="fourteen wide tablet"].column,.ui.grid>.row>[class*="fourteen wide tablet"].column,.ui.grid>[class*="fourteen wide tablet"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide tablet"].column,.ui.grid>.column.row>[class*="fifteen wide tablet"].column,.ui.grid>.row>[class*="fifteen wide tablet"].column,.ui.grid>[class*="fifteen wide tablet"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide tablet"].column,.ui.grid>.column.row>[class*="sixteen wide tablet"].column,.ui.grid>.row>[class*="sixteen wide tablet"].column,.ui.grid>[class*="sixteen wide tablet"].column{width:100%!important}}@media only screen and (min-width:992px){.ui.column.grid>[class*="one wide computer"].column,.ui.grid>.column.row>[class*="one wide computer"].column,.ui.grid>.row>[class*="one wide computer"].column,.ui.grid>[class*="one wide computer"].column{width:6.25%!important}.ui.column.grid>[class*="two wide computer"].column,.ui.grid>.column.row>[class*="two wide computer"].column,.ui.grid>.row>[class*="two wide computer"].column,.ui.grid>[class*="two wide computer"].column{width:12.5%!important}.ui.column.grid>[class*="three wide computer"].column,.ui.grid>.column.row>[class*="three wide computer"].column,.ui.grid>.row>[class*="three wide computer"].column,.ui.grid>[class*="three wide computer"].column{width:18.75%!important}.ui.column.grid>[class*="four wide computer"].column,.ui.grid>.column.row>[class*="four wide computer"].column,.ui.grid>.row>[class*="four wide computer"].column,.ui.grid>[class*="four wide computer"].column{width:25%!important}.ui.column.grid>[class*="five wide computer"].column,.ui.grid>.column.row>[class*="five wide computer"].column,.ui.grid>.row>[class*="five wide computer"].column,.ui.grid>[class*="five wide computer"].column{width:31.25%!important}.ui.column.grid>[class*="six wide computer"].column,.ui.grid>.column.row>[class*="six wide computer"].column,.ui.grid>.row>[class*="six wide computer"].column,.ui.grid>[class*="six wide computer"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide computer"].column,.ui.grid>.column.row>[class*="seven wide computer"].column,.ui.grid>.row>[class*="seven wide computer"].column,.ui.grid>[class*="seven wide computer"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide computer"].column,.ui.grid>.column.row>[class*="eight wide computer"].column,.ui.grid>.row>[class*="eight wide computer"].column,.ui.grid>[class*="eight wide computer"].column{width:50%!important}.ui.column.grid>[class*="nine wide computer"].column,.ui.grid>.column.row>[class*="nine wide computer"].column,.ui.grid>.row>[class*="nine wide computer"].column,.ui.grid>[class*="nine wide computer"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide computer"].column,.ui.grid>.column.row>[class*="ten wide computer"].column,.ui.grid>.row>[class*="ten wide computer"].column,.ui.grid>[class*="ten wide computer"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide computer"].column,.ui.grid>.column.row>[class*="eleven wide computer"].column,.ui.grid>.row>[class*="eleven wide computer"].column,.ui.grid>[class*="eleven wide computer"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide computer"].column,.ui.grid>.column.row>[class*="twelve wide computer"].column,.ui.grid>.row>[class*="twelve wide computer"].column,.ui.grid>[class*="twelve wide computer"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide computer"].column,.ui.grid>.column.row>[class*="thirteen wide computer"].column,.ui.grid>.row>[class*="thirteen wide computer"].column,.ui.grid>[class*="thirteen wide computer"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide computer"].column,.ui.grid>.column.row>[class*="fourteen wide computer"].column,.ui.grid>.row>[class*="fourteen wide computer"].column,.ui.grid>[class*="fourteen wide computer"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide computer"].column,.ui.grid>.column.row>[class*="fifteen wide computer"].column,.ui.grid>.row>[class*="fifteen wide computer"].column,.ui.grid>[class*="fifteen wide computer"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide computer"].column,.ui.grid>.column.row>[class*="sixteen wide computer"].column,.ui.grid>.row>[class*="sixteen wide computer"].column,.ui.grid>[class*="sixteen wide computer"].column{width:100%!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.ui.column.grid>[class*="one wide large screen"].column,.ui.grid>.column.row>[class*="one wide large screen"].column,.ui.grid>.row>[class*="one wide large screen"].column,.ui.grid>[class*="one wide large screen"].column{width:6.25%!important}.ui.column.grid>[class*="two wide large screen"].column,.ui.grid>.column.row>[class*="two wide large screen"].column,.ui.grid>.row>[class*="two wide large screen"].column,.ui.grid>[class*="two wide large screen"].column{width:12.5%!important}.ui.column.grid>[class*="three wide large screen"].column,.ui.grid>.column.row>[class*="three wide large screen"].column,.ui.grid>.row>[class*="three wide large screen"].column,.ui.grid>[class*="three wide large screen"].column{width:18.75%!important}.ui.column.grid>[class*="four wide large screen"].column,.ui.grid>.column.row>[class*="four wide large screen"].column,.ui.grid>.row>[class*="four wide large screen"].column,.ui.grid>[class*="four wide large screen"].column{width:25%!important}.ui.column.grid>[class*="five wide large screen"].column,.ui.grid>.column.row>[class*="five wide large screen"].column,.ui.grid>.row>[class*="five wide large screen"].column,.ui.grid>[class*="five wide large screen"].column{width:31.25%!important}.ui.column.grid>[class*="six wide large screen"].column,.ui.grid>.column.row>[class*="six wide large screen"].column,.ui.grid>.row>[class*="six wide large screen"].column,.ui.grid>[class*="six wide large screen"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide large screen"].column,.ui.grid>.column.row>[class*="seven wide large screen"].column,.ui.grid>.row>[class*="seven wide large screen"].column,.ui.grid>[class*="seven wide large screen"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide large screen"].column,.ui.grid>.column.row>[class*="eight wide large screen"].column,.ui.grid>.row>[class*="eight wide large screen"].column,.ui.grid>[class*="eight wide large screen"].column{width:50%!important}.ui.column.grid>[class*="nine wide large screen"].column,.ui.grid>.column.row>[class*="nine wide large screen"].column,.ui.grid>.row>[class*="nine wide large screen"].column,.ui.grid>[class*="nine wide large screen"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide large screen"].column,.ui.grid>.column.row>[class*="ten wide large screen"].column,.ui.grid>.row>[class*="ten wide large screen"].column,.ui.grid>[class*="ten wide large screen"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide large screen"].column,.ui.grid>.column.row>[class*="eleven wide large screen"].column,.ui.grid>.row>[class*="eleven wide large screen"].column,.ui.grid>[class*="eleven wide large screen"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide large screen"].column,.ui.grid>.column.row>[class*="twelve wide large screen"].column,.ui.grid>.row>[class*="twelve wide large screen"].column,.ui.grid>[class*="twelve wide large screen"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide large screen"].column,.ui.grid>.column.row>[class*="thirteen wide large screen"].column,.ui.grid>.row>[class*="thirteen wide large screen"].column,.ui.grid>[class*="thirteen wide large screen"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide large screen"].column,.ui.grid>.column.row>[class*="fourteen wide large screen"].column,.ui.grid>.row>[class*="fourteen wide large screen"].column,.ui.grid>[class*="fourteen wide large screen"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide large screen"].column,.ui.grid>.column.row>[class*="fifteen wide large screen"].column,.ui.grid>.row>[class*="fifteen wide large screen"].column,.ui.grid>[class*="fifteen wide large screen"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide large screen"].column,.ui.grid>.column.row>[class*="sixteen wide large screen"].column,.ui.grid>.row>[class*="sixteen wide large screen"].column,.ui.grid>[class*="sixteen wide large screen"].column{width:100%!important}}@media only screen and (min-width:1920px){.ui.column.grid>[class*="one wide widescreen"].column,.ui.grid>.column.row>[class*="one wide widescreen"].column,.ui.grid>.row>[class*="one wide widescreen"].column,.ui.grid>[class*="one wide widescreen"].column{width:6.25%!important}.ui.column.grid>[class*="two wide widescreen"].column,.ui.grid>.column.row>[class*="two wide widescreen"].column,.ui.grid>.row>[class*="two wide widescreen"].column,.ui.grid>[class*="two wide widescreen"].column{width:12.5%!important}.ui.column.grid>[class*="three wide widescreen"].column,.ui.grid>.column.row>[class*="three wide widescreen"].column,.ui.grid>.row>[class*="three wide widescreen"].column,.ui.grid>[class*="three wide widescreen"].column{width:18.75%!important}.ui.column.grid>[class*="four wide widescreen"].column,.ui.grid>.column.row>[class*="four wide widescreen"].column,.ui.grid>.row>[class*="four wide widescreen"].column,.ui.grid>[class*="four wide widescreen"].column{width:25%!important}.ui.column.grid>[class*="five wide widescreen"].column,.ui.grid>.column.row>[class*="five wide widescreen"].column,.ui.grid>.row>[class*="five wide widescreen"].column,.ui.grid>[class*="five wide widescreen"].column{width:31.25%!important}.ui.column.grid>[class*="six wide widescreen"].column,.ui.grid>.column.row>[class*="six wide widescreen"].column,.ui.grid>.row>[class*="six wide widescreen"].column,.ui.grid>[class*="six wide widescreen"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide widescreen"].column,.ui.grid>.column.row>[class*="seven wide widescreen"].column,.ui.grid>.row>[class*="seven wide widescreen"].column,.ui.grid>[class*="seven wide widescreen"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide widescreen"].column,.ui.grid>.column.row>[class*="eight wide widescreen"].column,.ui.grid>.row>[class*="eight wide widescreen"].column,.ui.grid>[class*="eight wide widescreen"].column{width:50%!important}.ui.column.grid>[class*="nine wide widescreen"].column,.ui.grid>.column.row>[class*="nine wide widescreen"].column,.ui.grid>.row>[class*="nine wide widescreen"].column,.ui.grid>[class*="nine wide widescreen"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide widescreen"].column,.ui.grid>.column.row>[class*="ten wide widescreen"].column,.ui.grid>.row>[class*="ten wide widescreen"].column,.ui.grid>[class*="ten wide widescreen"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide widescreen"].column,.ui.grid>.column.row>[class*="eleven wide widescreen"].column,.ui.grid>.row>[class*="eleven wide widescreen"].column,.ui.grid>[class*="eleven wide widescreen"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide widescreen"].column,.ui.grid>.column.row>[class*="twelve wide widescreen"].column,.ui.grid>.row>[class*="twelve wide widescreen"].column,.ui.grid>[class*="twelve wide widescreen"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide widescreen"].column,.ui.grid>.column.row>[class*="thirteen wide widescreen"].column,.ui.grid>.row>[class*="thirteen wide widescreen"].column,.ui.grid>[class*="thirteen wide widescreen"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide widescreen"].column,.ui.grid>.column.row>[class*="fourteen wide widescreen"].column,.ui.grid>.row>[class*="fourteen wide widescreen"].column,.ui.grid>[class*="fourteen wide widescreen"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide widescreen"].column,.ui.grid>.column.row>[class*="fifteen wide widescreen"].column,.ui.grid>.row>[class*="fifteen wide widescreen"].column,.ui.grid>[class*="fifteen wide widescreen"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide widescreen"].column,.ui.grid>.column.row>[class*="sixteen wide widescreen"].column,.ui.grid>.row>[class*="sixteen wide widescreen"].column,.ui.grid>[class*="sixteen wide widescreen"].column{width:100%!important}}.ui.centered.grid,.ui.centered.grid>.row,.ui.grid>.centered.row{text-align:center;justify-content:center}.ui.centered.grid>.column:not(.aligned):not(.justified):not(.row),.ui.centered.grid>.row>.column:not(.aligned):not(.justified),.ui.grid .centered.row>.column:not(.aligned):not(.justified){text-align:left}.ui.grid>.centered.column,.ui.grid>.row>.centered.column{display:block;margin-left:auto;margin-right:auto}.ui.grid>.relaxed.row>.column,.ui.relaxed.grid>.column:not(.row),.ui.relaxed.grid>.row>.column{padding-left:1.5rem;padding-right:1.5rem}.ui.grid>[class*="very relaxed"].row>.column,.ui[class*="very relaxed"].grid>.column:not(.row),.ui[class*="very relaxed"].grid>.row>.column{padding-left:2.5rem;padding-right:2.5rem}.ui.grid .relaxed.row+.ui.divider,.ui.relaxed.grid .row+.ui.divider{margin-left:1.5rem;margin-right:1.5rem}.ui.grid [class*="very relaxed"].row+.ui.divider,.ui[class*="very relaxed"].grid .row+.ui.divider{margin-left:2.5rem;margin-right:2.5rem}.ui.padded.grid:not(.vertically):not(.horizontally){margin:0!important}[class*="horizontally padded"].ui.grid{margin-left:0!important;margin-right:0!important}[class*="vertically padded"].ui.grid{margin-top:0!important;margin-bottom:0!important}.ui.grid [class*="left floated"].column{margin-right:auto}.ui.grid [class*="right floated"].column{margin-left:auto}.ui.divided.grid:not([class*="vertically divided"])>.column:not(.row),.ui.divided.grid:not([class*="vertically divided"])>.row>.column{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="vertically divided"].grid>.column:not(.row),.ui[class*="vertically divided"].grid>.row>.column{margin-top:1rem;margin-bottom:1rem;padding-top:0;padding-bottom:0}.ui[class*="vertically divided"].grid>.row{margin-top:0;margin-bottom:0}.ui.divided.grid:not([class*="vertically divided"])>.column:first-child,.ui.divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:none}.ui[class*="vertically divided"].grid>.row:first-child>.column{margin-top:0}.ui.grid>.divided.row>.column{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui.grid>.divided.row>.column:first-child{box-shadow:none}.ui[class*="vertically divided"].grid>.row{position:relative}.ui[class*="vertically divided"].grid>.row:before{position:absolute;content:"";top:0;left:0;width:98%;height:1px;margin:0 1rem;box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.padded.divided.grid:not(.vertically):not(.horizontally),[class*="horizontally padded"].ui.divided.grid{width:100%}.ui[class*="vertically divided"].grid>.row:first-child:before{box-shadow:none}.ui.inverted.divided.grid:not([class*="vertically divided"])>.column:not(.row),.ui.inverted.divided.grid:not([class*="vertically divided"])>.row>.column{box-shadow:-1px 0 0 0 hsla(0,0%,100%,.1)}.ui.inverted.divided.grid:not([class*="vertically divided"])>.column:not(.row):first-child,.ui.inverted.divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:none}.ui.inverted[class*="vertically divided"].grid>.row:before{box-shadow:0 -1px 0 0 hsla(0,0%,100%,.1)}.ui.relaxed[class*="vertically divided"].grid>.row:before{margin-left:1.5rem;margin-right:1.5rem;width:97%}.ui[class*="very relaxed"][class*="vertically divided"].grid>.row:before{margin-left:2.5rem;margin-right:2.5rem;width:95%}.ui.celled.grid{width:100%;margin:1em 0;box-shadow:0 0 0 1px #d4d4d5}.ui.celled.grid>.row{width:100%!important;margin:0;padding:0;box-shadow:0 -1px 0 0 #d4d4d5}.ui.celled.grid>.column:not(.row),.ui.celled.grid>.row>.column{box-shadow:-1px 0 0 0 #d4d4d5}.ui.celled.grid>.column:first-child,.ui.celled.grid>.row>.column:first-child{box-shadow:none}.ui.celled.grid>.column:not(.row),.ui.celled.grid>.row>.column{padding:1em}.ui.relaxed.celled.grid>.column:not(.row),.ui.relaxed.celled.grid>.row>.column{padding:1.5em}.ui[class*="very relaxed"].celled.grid>.column:not(.row),.ui[class*="very relaxed"].celled.grid>.row>.column{padding:2em}.ui[class*="internally celled"].grid{box-shadow:none;margin:0}.ui[class*="internally celled"].grid>.row:first-child,.ui[class*="internally celled"].grid>.row>.column:first-child{box-shadow:none}.ui.grid>.row>[class*="top aligned"].column,.ui.grid>[class*="top aligned"].column:not(.row),.ui.grid>[class*="top aligned"].row>.column,.ui[class*="top aligned"].grid>.column:not(.row),.ui[class*="top aligned"].grid>.row>.column{flex-direction:column;vertical-align:top;align-self:flex-start!important}.ui.grid>.row>[class*="middle aligned"].column,.ui.grid>[class*="middle aligned"].column:not(.row),.ui.grid>[class*="middle aligned"].row>.column,.ui[class*="middle aligned"].grid>.column:not(.row),.ui[class*="middle aligned"].grid>.row>.column{flex-direction:column;vertical-align:middle;align-self:center!important}.ui.grid>.row>[class*="bottom aligned"].column,.ui.grid>[class*="bottom aligned"].column:not(.row),.ui.grid>[class*="bottom aligned"].row>.column,.ui[class*="bottom aligned"].grid>.column:not(.row),.ui[class*="bottom aligned"].grid>.row>.column{flex-direction:column;vertical-align:bottom;align-self:flex-end!important}.ui.grid>.row>.stretched.column,.ui.grid>.stretched.column:not(.row),.ui.grid>.stretched.row>.column,.ui.stretched.grid>.column,.ui.stretched.grid>.row>.column{display:inline-flex!important;align-self:stretch;flex-direction:column}.ui.grid>.row>.stretched.column>*,.ui.grid>.stretched.column:not(.row)>*,.ui.grid>.stretched.row>.column>*,.ui.stretched.grid>.column>*,.ui.stretched.grid>.row>.column>*{flex-grow:1}.ui.grid>.row>[class*="left aligned"].column.column,.ui.grid>[class*="left aligned"].column.column,.ui.grid>[class*="left aligned"].row>.column,.ui[class*="left aligned"].grid>.column,.ui[class*="left aligned"].grid>.row>.column{text-align:left;align-self:inherit}.ui.grid>.row>[class*="center aligned"].column.column,.ui.grid>[class*="center aligned"].column.column,.ui.grid>[class*="center aligned"].row>.column,.ui[class*="center aligned"].grid>.column,.ui[class*="center aligned"].grid>.row>.column{text-align:center;align-self:inherit}.ui[class*="center aligned"].grid{justify-content:center}.ui.grid>.row>[class*="right aligned"].column.column,.ui.grid>[class*="right aligned"].column.column,.ui.grid>[class*="right aligned"].row>.column,.ui[class*="right aligned"].grid>.column,.ui[class*="right aligned"].grid>.row>.column{text-align:right;align-self:inherit}.ui.grid>.justified.column.column,.ui.grid>.justified.row>.column,.ui.grid>.row>.justified.column.column,.ui.justified.grid>.column,.ui.justified.grid>.row>.column{text-align:justify;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.ui.grid>.row>.black.column,.ui.grid>.row>.blue.column,.ui.grid>.row>.brown.column,.ui.grid>.row>.green.column,.ui.grid>.row>.grey.column,.ui.grid>.row>.olive.column,.ui.grid>.row>.orange.column,.ui.grid>.row>.pink.column,.ui.grid>.row>.purple.column,.ui.grid>.row>.red.column,.ui.grid>.row>.teal.column,.ui.grid>.row>.violet.column,.ui.grid>.row>.yellow.column{margin-top:-1rem;margin-bottom:-1rem;padding-top:1rem;padding-bottom:1rem}.ui.grid>.red.column,.ui.grid>.red.row,.ui.grid>.row>.red.column{background-color:#db2828!important;color:#fff}.ui.grid>.orange.column,.ui.grid>.orange.row,.ui.grid>.row>.orange.column{background-color:#f2711c!important;color:#fff}.ui.grid>.row>.yellow.column,.ui.grid>.yellow.column,.ui.grid>.yellow.row{background-color:#fbbd08!important;color:#fff}.ui.grid>.olive.column,.ui.grid>.olive.row,.ui.grid>.row>.olive.column{background-color:#b5cc18!important;color:#fff}.ui.grid>.green.column,.ui.grid>.green.row,.ui.grid>.row>.green.column{background-color:#21ba45!important;color:#fff}.ui.grid>.row>.teal.column,.ui.grid>.teal.column,.ui.grid>.teal.row{background-color:#00b5ad!important;color:#fff}.ui.grid>.blue.column,.ui.grid>.blue.row,.ui.grid>.row>.blue.column{background-color:#2c6a9e!important;color:#fff}.ui.grid>.row>.violet.column,.ui.grid>.violet.column,.ui.grid>.violet.row{background-color:#6435c9!important;color:#fff}.ui.grid>.purple.column,.ui.grid>.purple.row,.ui.grid>.row>.purple.column{background-color:#a333c8!important;color:#fff}.ui.grid>.pink.column,.ui.grid>.pink.row,.ui.grid>.row>.pink.column{background-color:#e03997!important;color:#fff}.ui.grid>.brown.column,.ui.grid>.brown.row,.ui.grid>.row>.brown.column{background-color:#a5673f!important;color:#fff}.ui.grid>.grey.column,.ui.grid>.grey.row,.ui.grid>.row>.grey.column{background-color:#767676!important;color:#fff}.ui.grid>.black.column,.ui.grid>.black.row,.ui.grid>.row>.black.column{background-color:#1b1c1d!important;color:#fff}.ui.grid>[class*="equal width"].row>.column,.ui[class*="equal width"].grid>.column:not(.row),.ui[class*="equal width"].grid>.row>.column{display:inline-block;flex-grow:1}.ui.grid>[class*="equal width"].row>.wide.column,.ui[class*="equal width"].grid>.row>.wide.column,.ui[class*="equal width"].grid>.wide.column{flex-grow:0}@media only screen and (max-width:767px){.ui.grid>[class*="mobile reversed"].row,.ui[class*="mobile reversed"].grid,.ui[class*="mobile reversed"].grid>.row{flex-direction:row-reverse}.ui.stackable[class*="mobile reversed"],.ui[class*="mobile vertically reversed"].grid{flex-direction:column-reverse}.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.column:first-child,.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.column:last-child,.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:last-child{box-shadow:none}.ui.grid[class*="vertically divided"][class*="mobile vertically reversed"]>.row:first-child:before{box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.grid[class*="vertically divided"][class*="mobile vertically reversed"]>.row:last-child:before{box-shadow:none}.ui[class*="mobile reversed"].celled.grid>.row>.column:first-child{box-shadow:-1px 0 0 0 #d4d4d5}.ui[class*="mobile reversed"].celled.grid>.row>.column:last-child{box-shadow:none}}@media only screen and (min-width:768px) and (max-width:991px){.ui.grid>[class*="tablet reversed"].row,.ui[class*="tablet reversed"].grid,.ui[class*="tablet reversed"].grid>.row{flex-direction:row-reverse}.ui[class*="tablet vertically reversed"].grid{flex-direction:column-reverse}.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.column:first-child,.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.column:last-child,.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:last-child{box-shadow:none}.ui.grid[class*="vertically divided"][class*="tablet vertically reversed"]>.row:first-child:before{box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.grid[class*="vertically divided"][class*="tablet vertically reversed"]>.row:last-child:before{box-shadow:none}.ui[class*="tablet reversed"].celled.grid>.row>.column:first-child{box-shadow:-1px 0 0 0 #d4d4d5}.ui[class*="tablet reversed"].celled.grid>.row>.column:last-child{box-shadow:none}}@media only screen and (min-width:992px){.ui.grid>[class*="computer reversed"].row,.ui[class*="computer reversed"].grid,.ui[class*="computer reversed"].grid>.row{flex-direction:row-reverse}.ui[class*="computer vertically reversed"].grid{flex-direction:column-reverse}.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.column:first-child,.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.column:last-child,.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:last-child{box-shadow:none}.ui.grid[class*="vertically divided"][class*="computer vertically reversed"]>.row:first-child:before{box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.grid[class*="vertically divided"][class*="computer vertically reversed"]>.row:last-child:before{box-shadow:none}.ui[class*="computer reversed"].celled.grid>.row>.column:first-child{box-shadow:-1px 0 0 0 #d4d4d5}.ui[class*="computer reversed"].celled.grid>.row>.column:last-child{box-shadow:none}}@media only screen and (min-width:768px) and (max-width:991px){.ui.doubling.grid{width:auto}.ui.doubling.grid>.row,.ui.grid>.doubling.row{margin:0!important;padding:0!important}.ui.doubling.grid>.row>.column,.ui.grid>.doubling.row>.column{display:inline-block!important;padding-top:1rem!important;padding-bottom:1rem!important;box-shadow:none!important;margin:0}.ui.grid>[class*="two column"].doubling.row.row>.column,.ui[class*="two column"].doubling.grid>.column:not(.row),.ui[class*="two column"].doubling.grid>.row>.column{width:100%!important}.ui.grid>[class*="four column"].doubling.row.row>.column,.ui.grid>[class*="three column"].doubling.row.row>.column,.ui[class*="four column"].doubling.grid>.column:not(.row),.ui[class*="four column"].doubling.grid>.row>.column,.ui[class*="three column"].doubling.grid>.column:not(.row),.ui[class*="three column"].doubling.grid>.row>.column{width:50%!important}.ui.grid>[class*="five column"].doubling.row.row>.column,.ui.grid>[class*="seven column"].doubling.row.row>.column,.ui.grid>[class*="six column"].doubling.row.row>.column,.ui[class*="five column"].doubling.grid>.column:not(.row),.ui[class*="five column"].doubling.grid>.row>.column,.ui[class*="seven column"].doubling.grid>.column:not(.row),.ui[class*="seven column"].doubling.grid>.row>.column,.ui[class*="six column"].doubling.grid>.column:not(.row),.ui[class*="six column"].doubling.grid>.row>.column{width:33.33333333%!important}.ui.grid>[class*="eight column"].doubling.row.row>.column,.ui.grid>[class*="nine column"].doubling.row.row>.column,.ui[class*="eight column"].doubling.grid>.column:not(.row),.ui[class*="eight column"].doubling.grid>.row>.column,.ui[class*="nine column"].doubling.grid>.column:not(.row),.ui[class*="nine column"].doubling.grid>.row>.column{width:25%!important}.ui.grid>[class*="eleven column"].doubling.row.row>.column,.ui.grid>[class*="ten column"].doubling.row.row>.column,.ui[class*="eleven column"].doubling.grid>.column:not(.row),.ui[class*="eleven column"].doubling.grid>.row>.column,.ui[class*="ten column"].doubling.grid>.column:not(.row),.ui[class*="ten column"].doubling.grid>.row>.column{width:20%!important}.ui.grid>[class*="thirteen column"].doubling.row.row>.column,.ui.grid>[class*="twelve column"].doubling.row.row>.column,.ui[class*="thirteen column"].doubling.grid>.column:not(.row),.ui[class*="thirteen column"].doubling.grid>.row>.column,.ui[class*="twelve column"].doubling.grid>.column:not(.row),.ui[class*="twelve column"].doubling.grid>.row>.column{width:16.66666667%!important}.ui.grid>[class*="fifteen column"].doubling.row.row>.column,.ui.grid>[class*="fourteen column"].doubling.row.row>.column,.ui[class*="fifteen column"].doubling.grid>.column:not(.row),.ui[class*="fifteen column"].doubling.grid>.row>.column,.ui[class*="fourteen column"].doubling.grid>.column:not(.row),.ui[class*="fourteen column"].doubling.grid>.row>.column{width:14.28571429%!important}.ui.grid>[class*="sixteen column"].doubling.row.row>.column,.ui[class*="sixteen column"].doubling.grid>.column:not(.row),.ui[class*="sixteen column"].doubling.grid>.row>.column{width:12.5%!important}}@media only screen and (max-width:767px){.ui.doubling.grid>.row,.ui.grid>.doubling.row{margin:0!important;padding:0!important}.ui.doubling.grid>.row>.column,.ui.grid>.doubling.row>.column{padding-top:1rem!important;padding-bottom:1rem!important;margin:0!important;box-shadow:none!important}.ui.grid>[class*="two column"].doubling:not(.stackable).row.row>.column,.ui[class*="two column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="two column"].doubling:not(.stackable).grid>.row>.column{width:100%!important}.ui.grid>[class*="eight column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="five column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="four column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="seven column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="six column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="three column"].doubling:not(.stackable).row.row>.column,.ui[class*="eight column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="eight column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="five column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="five column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="four column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="four column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="seven column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="seven column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="six column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="six column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="three column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="three column"].doubling:not(.stackable).grid>.row>.column{width:50%!important}.ui.grid>[class*="eleven column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="nine column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="ten column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="thirteen column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="twelve column"].doubling:not(.stackable).row.row>.column,.ui[class*="eleven column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="eleven column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="nine column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="nine column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="ten column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="ten column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="thirteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="thirteen column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="twelve column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="twelve column"].doubling:not(.stackable).grid>.row>.column{width:33.33333333%!important}.ui.grid>[class*="fifteen column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="fourteen column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="sixteen column"].doubling:not(.stackable).row.row>.column,.ui[class*="fifteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="fifteen column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="fourteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="fourteen column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="sixteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="sixteen column"].doubling:not(.stackable).grid>.row>.column{width:25%!important}}@media only screen and (max-width:767px){.ui.stackable.grid{width:auto;margin-left:0!important;margin-right:0!important}.ui.grid>.stackable.stackable.row>.column,.ui.stackable.grid>.column.grid>.column,.ui.stackable.grid>.column.row>.column,.ui.stackable.grid>.column:not(.row),.ui.stackable.grid>.row>.column,.ui.stackable.grid>.row>.wide.column,.ui.stackable.grid>.wide.column{width:100%!important;margin:0!important;box-shadow:none!important;padding:1rem .5rem!important}.ui.stackable.grid:not(.vertically)>.row{margin:0;padding:0}.ui.container>.ui.stackable.grid>.column,.ui.container>.ui.stackable.grid>.row>.column{padding-left:0!important;padding-right:0!important}.ui.grid .ui.stackable.grid,.ui.segment:not(.vertical) .ui.stackable.page.grid{margin-left:-.5rem!important;margin-right:-.5rem!important}.ui.stackable.celled.grid>.column:not(.row):first-child,.ui.stackable.celled.grid>.row:first-child>.column:first-child,.ui.stackable.divided.grid>.column:not(.row):first-child,.ui.stackable.divided.grid>.row:first-child>.column:first-child{border-top:none!important}.ui.inverted.stackable.celled.grid>.column:not(.row),.ui.inverted.stackable.celled.grid>.row>.column,.ui.inverted.stackable.divided.grid>.column:not(.row),.ui.inverted.stackable.divided.grid>.row>.column{border-top:1px solid hsla(0,0%,100%,.1)}.ui.stackable.celled.grid>.column:not(.row),.ui.stackable.celled.grid>.row>.column,.ui.stackable.divided:not(.vertically).grid>.column:not(.row),.ui.stackable.divided:not(.vertically).grid>.row>.column{border-top:1px solid rgba(34,36,38,.15);box-shadow:none!important;padding-top:2rem!important;padding-bottom:2rem!important}.ui.stackable.celled.grid>.row{box-shadow:none!important}.ui.stackable.divided:not(.vertically).grid>.column:not(.row),.ui.stackable.divided:not(.vertically).grid>.row>.column{padding-left:0!important;padding-right:0!important}}@media only screen and (max-width:767px){.ui.grid.grid.grid>.row>[class*="computer only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="computer only"].column:not(.mobile),.ui.grid.grid.grid>[class*="computer only"].row:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].row:not(.mobile),.ui.grid.grid.grid>[class*="tablet only"].column:not(.mobile),.ui.grid.grid.grid>[class*="tablet only"].row:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="computer only"].grid.grid.grid:not(.mobile),.ui[class*="large screen only"].grid.grid.grid:not(.mobile),.ui[class*="tablet only"].grid.grid.grid:not(.mobile),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.grid.grid.grid>.row>[class*="computer only"].column:not(.tablet),.ui.grid.grid.grid>.row>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.tablet),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="computer only"].column:not(.tablet),.ui.grid.grid.grid>[class*="computer only"].row:not(.tablet),.ui.grid.grid.grid>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].row:not(.mobile),.ui.grid.grid.grid>[class*="mobile only"].column:not(.tablet),.ui.grid.grid.grid>[class*="mobile only"].row:not(.tablet),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="computer only"].grid.grid.grid:not(.tablet),.ui[class*="large screen only"].grid.grid.grid:not(.mobile),.ui[class*="mobile only"].grid.grid.grid:not(.tablet),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.grid.grid.grid>.row>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].row:not(.mobile),.ui.grid.grid.grid>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].row:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].row:not(.computer),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="large screen only"].grid.grid.grid:not(.mobile),.ui[class*="mobile only"].grid.grid.grid:not(.computer),.ui[class*="tablet only"].grid.grid.grid:not(.computer),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].row:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].row:not(.computer),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="mobile only"].grid.grid.grid:not(.computer),.ui[class*="tablet only"].grid.grid.grid:not(.computer),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:1920px){.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].row:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].row:not(.computer),.ui[class*="mobile only"].grid.grid.grid:not(.computer),.ui[class*="tablet only"].grid.grid.grid:not(.computer){display:none!important}}.ui.menu{display:flex;margin:1rem 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;background:#fff;font-weight:400;border:1px solid rgba(34,36,38,.15);box-shadow:0 1px 1px 0 rgba(34,36,38,.15);border-radius:.21428571rem;min-height:2.85714286em}.ui.menu:after{content:"";display:block;height:0;clear:both;visibility:hidden}.ui.menu:first-child{margin-top:0}.ui.menu:last-child{margin-bottom:0}.ui.menu .menu{margin:0}.ui.menu:not(.vertical)>.menu{display:flex}.ui.menu:not(.vertical) .item{display:flex;align-items:center}.ui.menu .item{position:relative;vertical-align:middle;line-height:1;text-decoration:none;-webkit-tap-highlight-color:transparent;flex:0 0 auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:none;padding:.92857143em 1.14285714em;text-transform:none;color:rgba(0,0,0,.87);font-weight:400;transition:background .1s ease,box-shadow .1s ease,color .1s ease}.ui.menu>.item:first-child{border-radius:.21428571rem 0 0 .21428571rem}.ui.menu .item:before{position:absolute;content:"";top:0;right:0;height:100%;width:1px;background:rgba(34,36,38,.1)}.ui.menu .item>a:not(.ui),.ui.menu .item>p:only-child,.ui.menu .text.item>*{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;line-height:1.3}.ui.menu .item>p:first-child{margin-top:0}.ui.menu .item>p:last-child{margin-bottom:0}.ui.menu .item>i.icon{opacity:.9;float:none;margin:0 .35714286em 0 0}.ui.menu:not(.vertical) .item>.button{position:relative;top:0;margin:-.5em 0;padding-bottom:.78571429em;padding-top:.78571429em;font-size:1em}.ui.menu>.container,.ui.menu>.grid{display:flex;align-items:inherit;flex-direction:inherit}.ui.menu .item>.input{width:100%}.ui.menu:not(.vertical) .item>.input{position:relative;top:0;margin:-.5em 0}.ui.menu .item>.input input{font-size:1em;padding-top:.57142857em;padding-bottom:.57142857em}.ui.menu .header.item,.ui.vertical.menu .header.item{margin:0;background:"";text-transform:normal;font-weight:700}.ui.vertical.menu .item>.header:not(.ui){margin:0 0 .5em;font-size:1em;font-weight:700}.ui.menu .item>i.dropdown.icon{padding:0;float:right;margin:0 0 0 1em}.ui.menu .dropdown.item .menu{min-width:99%;border-radius:0 0 .21428571rem .21428571rem;background:#fff;margin:0;box-shadow:0 1px 3px 0 rgba(0,0,0,.08);flex-direction:column!important}.ui.menu .ui.dropdown .menu>.item{margin:0;text-align:left;font-size:1em!important;padding:.78571429em 1.14285714em!important;background:transparent!important;color:rgba(0,0,0,.87)!important;text-transform:none!important;font-weight:400!important;box-shadow:none!important;transition:none!important}.ui.menu .ui.dropdown .menu>.item:hover,.ui.menu .ui.dropdown .menu>.selected.item{background:rgba(0,0,0,.05)!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown .menu>.active.item{background:rgba(0,0,0,.03)!important;font-weight:700!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown.item .menu .item:not(.filtered){display:block}.ui.menu .ui.dropdown .menu>.item .icon:not(.dropdown){display:inline-block;font-size:1em!important;float:none;margin:0 .75em 0 0!important}.ui.secondary.menu .dropdown.item>.menu,.ui.text.menu .dropdown.item>.menu{border-radius:.21428571rem;margin-top:.35714286em}.ui.menu .pointing.dropdown.item .menu{margin-top:.75em}.ui.inverted.menu .search.dropdown.item>.search,.ui.inverted.menu .search.dropdown.item>.text{color:hsla(0,0%,100%,.9)}.ui.vertical.menu .dropdown.item>.icon{float:right;content:"\f0da";margin-left:1em}.ui.vertical.menu .dropdown.item .menu{left:100%;min-width:0;margin:0;box-shadow:0 1px 3px 0 rgba(0,0,0,.08);border-radius:0 .21428571rem .21428571rem .21428571rem}.ui.vertical.menu .dropdown.item.upward .menu{bottom:0}.ui.vertical.menu .dropdown.item:not(.upward) .menu{top:0}.ui.vertical.menu .active.dropdown.item{border-top-right-radius:0;border-bottom-right-radius:0}.ui.vertical.menu .dropdown.active.item{box-shadow:none}.ui.item.menu .dropdown .menu .item{width:100%}.ui.menu .item>.label{background:#999;color:#fff;margin-left:1em;padding:.3em .78571429em}.ui.vertical.menu .item>.label{background:#999;color:#fff;margin-top:-.15em;margin-bottom:-.15em;padding:.3em .78571429em}.ui.menu .item>.floating.label{padding:.3em .78571429em}.ui.menu .item>img:not(.ui){display:inline-block;vertical-align:middle;margin:-.3em 0;width:2.5em}.ui.vertical.menu .item>img:not(.ui):only-child{display:block;max-width:100%;width:auto}.ui.menu .list .item:before{background:none!important}.ui.vertical.sidebar.menu>.item:first-child:before{display:block!important}.ui.vertical.sidebar.menu>.item:before{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.menu>.ui.container{width:100%!important;margin-left:0!important;margin-right:0!important}}@media only screen and (min-width:768px){.ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless)>.container>.item:not(.right):not(.borderless):first-child{border-left:1px solid rgba(34,36,38,.1)}}.ui.link.menu .item:hover,.ui.menu .dropdown.item:hover,.ui.menu .link.item:hover,.ui.menu a.item:hover{cursor:pointer;background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.link.menu .item:active,.ui.menu .link.item:active,.ui.menu a.item:active{background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.menu .active.item{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);font-weight:400;box-shadow:none}.ui.menu .active.item>i.icon{opacity:1}.ui.menu .active.item:hover,.ui.vertical.menu .active.item:hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.menu .item.disabled,.ui.menu .item.disabled:hover{cursor:default!important;background-color:transparent!important;color:rgba(40,40,40,.3)!important}.ui.menu:not(.vertical) .left.item,.ui.menu:not(.vertical) :not(.dropdown)>.left.menu{display:flex;margin-right:auto!important}.ui.menu:not(.vertical) .right.item,.ui.menu:not(.vertical) .right.menu{display:flex;margin-left:auto!important}.ui.menu .right.item:before,.ui.menu .right.menu>.item:before{right:auto;left:0}.ui.vertical.menu{display:block;flex-direction:column;background:#fff;box-shadow:0 1px 1px 0 rgba(34,36,38,.15)}.ui.vertical.menu .item{display:block;background:none;border-top:none;border-right:none}.ui.vertical.menu>.item:first-child{border-radius:.21428571rem .21428571rem 0 0}.ui.vertical.menu>.item:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui.vertical.menu .item>.label{float:right;text-align:center}.ui.vertical.menu .item>i.icon{width:1.18em;float:right;margin:0 0 0 .5em}.ui.vertical.menu .item>.label+i.icon{float:none;margin:0 .5em 0 0}.ui.vertical.menu .item:before{position:absolute;content:"";top:0;left:0;width:100%;height:1px;background:rgba(34,36,38,.1)}.ui.vertical.menu .item:first-child:before{display:none!important}.ui.vertical.menu .item>.menu{margin:.5em -1.14285714em 0}.ui.vertical.menu .menu .item{background:none;padding:.5em 1.33333333em;font-size:.85714286em;color:rgba(0,0,0,.5)}.ui.vertical.menu .item .menu .link.item:hover,.ui.vertical.menu .item .menu a.item:hover{color:rgba(0,0,0,.85)}.ui.vertical.menu .menu .item:before{display:none}.ui.vertical.menu .active.item{background:rgba(0,0,0,.05);border-radius:0;box-shadow:none}.ui.vertical.menu>.active.item:first-child{border-radius:.21428571rem .21428571rem 0 0}.ui.vertical.menu>.active.item:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui.vertical.menu>.active.item:only-child{border-radius:.21428571rem}.ui.vertical.menu .active.item .menu .active.item{border-left:none}.ui.vertical.menu .item .menu .active.item{background-color:transparent;font-weight:700;color:rgba(0,0,0,.95)}.ui.tabular.menu{border-radius:0;box-shadow:none!important;background:none transparent;border:none;border-bottom:1px solid #d4d4d5}.ui.tabular.fluid.menu{width:102%!important}.ui.tabular.menu .item{background:transparent;border:1px solid transparent;border-top:2px solid transparent;border-bottom:none;padding:.92857143em 1.42857143em;color:rgba(0,0,0,.87)}.ui.tabular.menu .item:before{display:none}.ui.tabular.menu .item:hover{background-color:transparent;color:rgba(0,0,0,.8)}.ui.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-top-width:1px;border-color:#d4d4d5;font-weight:700;margin-bottom:-1px;box-shadow:none;border-radius:.21428571rem .21428571rem 0 0!important}.ui.tabular.menu+.attached:not(.top).segment,.ui.tabular.menu+.attached:not(.top).segment+.attached:not(.top).segment{border-top:none;margin-left:0;margin-top:0;margin-right:0;width:100%}.top.attached.segment+.ui.bottom.tabular.menu{position:relative;width:102%;left:-1px}.ui.bottom.tabular.menu{background:none transparent;border-radius:0;box-shadow:none!important;border-bottom:none;border-top:1px solid #d4d4d5}.ui.bottom.tabular.menu .item{background:none;border:1px solid transparent;border-top:none}.ui.bottom.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:-1px 0 0;border-radius:0 0 .21428571rem .21428571rem!important}.ui.vertical.tabular.menu{background:none transparent;border-radius:0;box-shadow:none!important;border-bottom:none;border-right:1px solid #d4d4d5}.ui.vertical.tabular.menu .item{background:none;border:1px solid transparent;border-right:none}.ui.vertical.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:0 -1px 0 0;border-radius:.21428571rem 0 0 .21428571rem!important}.ui.vertical.right.tabular.menu{background:none transparent;border-radius:0;box-shadow:none!important;border-bottom:none;border-right:none;border-left:1px solid #d4d4d5}.ui.vertical.right.tabular.menu .item{background:none;border:1px solid transparent;border-left:none}.ui.vertical.right.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:0 0 0 -1px;border-radius:0 .21428571rem .21428571rem 0!important}.ui.tabular.menu .active.dropdown.item{margin-bottom:0;border:1px solid transparent;border-top:2px solid transparent;border-bottom:none}.ui.pagination.menu{margin:0;display:inline-flex;vertical-align:middle}.ui.pagination.menu .item:last-child{border-radius:0 .21428571rem .21428571rem 0}.ui.pagination.menu .item:last-child:before{display:none}.ui.pagination.menu .item{min-width:3em;text-align:center}.ui.pagination.menu .icon.item i.icon{vertical-align:top}.ui.pagination.menu .active.item{border-top:none;padding-top:.92857143em;background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.95);box-shadow:none}.ui.secondary.menu{background:none;margin-left:-.35714286em;margin-right:-.35714286em;border-radius:0;border:none;box-shadow:none}.ui.secondary.menu .item{align-self:center;box-shadow:none;border:none;padding:.78571429em .92857143em;margin:0 .35714286em;background:none;transition:color .1s ease;border-radius:.21428571rem}.ui.secondary.menu .item:before{display:none!important}.ui.secondary.menu .header.item{border-radius:0;border-right:none;background:none transparent}.ui.secondary.menu .item>img:not(.ui){margin:0}.ui.secondary.menu .dropdown.item:hover,.ui.secondary.menu .link.item:hover,.ui.secondary.menu a.item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.secondary.menu .active.item{border-radius:.21428571rem}.ui.secondary.menu .active.item,.ui.secondary.menu .active.item:hover{box-shadow:none;background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.secondary.inverted.menu .link.item,.ui.secondary.inverted.menu a.item{color:hsla(0,0%,100%,.7)!important}.ui.secondary.inverted.menu .dropdown.item:hover,.ui.secondary.inverted.menu .link.item:hover,.ui.secondary.inverted.menu a.item:hover{background:hsla(0,0%,100%,.08);color:#fff!important}.ui.secondary.inverted.menu .active.item{background:hsla(0,0%,100%,.15);color:#fff!important}.ui.secondary.item.menu{margin-left:0;margin-right:0}.ui.secondary.item.menu .item:last-child{margin-right:0}.ui.secondary.attached.menu{box-shadow:none}.ui.vertical.secondary.menu .item:not(.dropdown)>.menu{margin:0 -.92857143em}.ui.vertical.secondary.menu .item:not(.dropdown)>.menu>.item{margin:0;padding:.5em 1.33333333em}.ui.secondary.vertical.menu>.item{border:none;margin:0 0 .35714286em;border-radius:.21428571rem!important}.ui.secondary.vertical.menu>.header.item{border-radius:0}.ui.secondary.inverted.menu,.ui.vertical.secondary.menu .item>.menu .item{background-color:transparent}.ui.secondary.pointing.menu{margin-left:0;margin-right:0;border-bottom:2px solid rgba(34,36,38,.15)}.ui.secondary.pointing.menu .item{border-radius:0;align-self:flex-end;margin:0 0 -2px;padding:.85714286em 1.14285714em;border-bottom:2px solid transparent;transition:color .1s ease}.ui.secondary.pointing.menu .header.item{color:rgba(0,0,0,.85)!important}.ui.secondary.pointing.menu .text.item{box-shadow:none!important}.ui.secondary.pointing.menu .item:after{display:none}.ui.secondary.pointing.menu .dropdown.item:hover,.ui.secondary.pointing.menu .link.item:hover,.ui.secondary.pointing.menu a.item:hover{background-color:transparent;color:rgba(0,0,0,.87)}.ui.secondary.pointing.menu .dropdown.item:active,.ui.secondary.pointing.menu .link.item:active,.ui.secondary.pointing.menu a.item:active{background-color:transparent;border-color:rgba(34,36,38,.15)}.ui.secondary.pointing.menu .active.item{background-color:transparent;box-shadow:none;font-weight:700}.ui.secondary.pointing.menu .active.item,.ui.secondary.pointing.menu .active.item:hover{border-color:#1b1c1d;color:rgba(0,0,0,.95)}.ui.secondary.pointing.menu .active.dropdown.item{border-color:transparent}.ui.secondary.vertical.pointing.menu{border-bottom-width:0;border-right:2px solid rgba(34,36,38,.15)}.ui.secondary.vertical.pointing.menu .item{border-bottom:none;border-radius:0!important;margin:0 -2px 0 0;border-right:2px solid transparent}.ui.secondary.vertical.pointing.menu .active.item{border-color:#1b1c1d}.ui.secondary.inverted.pointing.menu{border-color:hsla(0,0%,100%,.1);border-width:2px;border-color:rgba(34,36,38,.15)}.ui.secondary.inverted.pointing.menu .item{color:hsla(0,0%,100%,.9)}.ui.secondary.inverted.pointing.menu .header.item{color:#fff!important}.ui.secondary.inverted.pointing.menu .link.item:hover,.ui.secondary.inverted.pointing.menu a.item:hover{color:rgba(0,0,0,.95)}.ui.secondary.inverted.pointing.menu .active.item{border-color:#fff;color:#fff}.ui.text.menu{background:none transparent;border-radius:0;box-shadow:none;border:none;margin:1em -.5em}.ui.text.menu .item{border-radius:0;box-shadow:none;align-self:center;margin:0;padding:.35714286em .5em;font-weight:400;color:rgba(0,0,0,.6);transition:opacity .1s ease}.ui.text.menu .item:before,.ui.text.menu .menu .item:before{display:none!important}.ui.text.menu .header.item{background-color:transparent;opacity:1;color:rgba(0,0,0,.85);font-size:.92857143em;text-transform:uppercase;font-weight:700}.ui.text.item.menu .item,.ui.text.menu .item>img:not(.ui){margin:0}.ui.vertical.text.menu{margin:1em 0}.ui.vertical.text.menu:first-child{margin-top:0}.ui.vertical.text.menu:last-child{margin-bottom:0}.ui.vertical.text.menu .item{margin:.57142857em 0;padding-left:0;padding-right:0}.ui.vertical.text.menu .item>i.icon{float:none;margin:0 .35714286em 0 0}.ui.vertical.text.menu .header.item{margin:.57142857em 0 .71428571em}.ui.vertical.text.menu .item:not(.dropdown)>.menu{margin:0}.ui.vertical.text.menu .item:not(.dropdown)>.menu>.item{margin:0;padding:.5em 0}.ui.text.menu .item:hover{opacity:1;background-color:transparent}.ui.text.menu .active.item{border:none;box-shadow:none;font-weight:400;color:rgba(0,0,0,.95)}.ui.text.menu .active.item,.ui.text.menu .active.item:hover{background-color:transparent}.ui.text.attached.menu,.ui.text.pointing.menu .active.item:after{box-shadow:none}.ui.inverted.text.menu,.ui.inverted.text.menu .active.item,.ui.inverted.text.menu .item,.ui.inverted.text.menu .item:hover{background-color:transparent!important}.ui.fluid.text.menu{margin-left:0;margin-right:0}.ui.vertical.icon.menu{display:inline-block;width:auto}.ui.icon.menu .item{height:auto;text-align:center;color:#1b1c1d}.ui.icon.menu .item>.icon:not(.dropdown){margin:0;opacity:1}.ui.icon.menu .icon:before{opacity:1}.ui.menu .icon.item>.icon{width:auto;margin:0 auto}.ui.vertical.icon.menu .item>.icon:not(.dropdown){display:block;opacity:1;margin:0 auto;float:none}.ui.inverted.icon.menu .item{color:#fff}.ui.labeled.icon.menu{text-align:center}.ui.labeled.icon.menu .item{min-width:6em;flex-direction:column}.ui.labeled.icon.menu .item>.icon:not(.dropdown){height:1em;display:block;font-size:1.71428571em!important;margin:0 auto .5rem!important}.ui.fluid.labeled.icon.menu>.item{min-width:0}@media only screen and (max-width:767px){.ui.stackable.menu{flex-direction:column}.ui.stackable.menu .item{width:100%!important}.ui.stackable.menu .item:before{position:absolute;content:"";top:auto;bottom:0;left:0;width:100%;height:1px;background:rgba(34,36,38,.1)}.ui.stackable.menu .left.item,.ui.stackable.menu .left.menu{margin-right:0!important}.ui.stackable.menu .right.item,.ui.stackable.menu .right.menu{margin-left:0!important}.ui.stackable.menu .left.menu,.ui.stackable.menu .right.menu{flex-direction:column}}.ui.menu .red.active.item,.ui.red.menu .active.item{border-color:#db2828!important;color:#db2828!important}.ui.menu .orange.active.item,.ui.orange.menu .active.item{border-color:#f2711c!important;color:#f2711c!important}.ui.menu .yellow.active.item,.ui.yellow.menu .active.item{border-color:#fbbd08!important;color:#fbbd08!important}.ui.menu .olive.active.item,.ui.olive.menu .active.item{border-color:#b5cc18!important;color:#b5cc18!important}.ui.green.menu .active.item,.ui.menu .green.active.item{border-color:#21ba45!important;color:#21ba45!important}.ui.menu .teal.active.item,.ui.teal.menu .active.item{border-color:#00b5ad!important;color:#00b5ad!important}.ui.blue.menu .active.item,.ui.menu .blue.active.item{border-color:#2c6a9e!important;color:#2c6a9e!important}.ui.menu .violet.active.item,.ui.violet.menu .active.item{border-color:#6435c9!important;color:#6435c9!important}.ui.menu .purple.active.item,.ui.purple.menu .active.item{border-color:#a333c8!important;color:#a333c8!important}.ui.menu .pink.active.item,.ui.pink.menu .active.item{border-color:#e03997!important;color:#e03997!important}.ui.brown.menu .active.item,.ui.menu .brown.active.item{border-color:#a5673f!important;color:#a5673f!important}.ui.grey.menu .active.item,.ui.menu .grey.active.item{border-color:#767676!important;color:#767676!important}.ui.inverted.menu{border:0 solid transparent;background:#1b1c1d;box-shadow:none}.ui.inverted.menu .item,.ui.inverted.menu .item>a:not(.ui){background:transparent;color:hsla(0,0%,100%,.9)}.ui.inverted.menu .item.menu{background:transparent}.ui.inverted.menu .item:before,.ui.vertical.inverted.menu .item:before{background:hsla(0,0%,100%,.08)}.ui.vertical.inverted.menu .menu .item,.ui.vertical.inverted.menu .menu .item a:not(.ui){color:hsla(0,0%,100%,.5)}.ui.inverted.menu .header.item{margin:0;background:transparent;box-shadow:none}.ui.inverted.menu .item.disabled,.ui.inverted.menu .item.disabled:hover{color:hsla(0,0%,88.2%,.3)}.ui.inverted.menu .dropdown.item:hover,.ui.inverted.menu .link.item:hover,.ui.inverted.menu a.item:hover,.ui.link.inverted.menu .item:hover{background:hsla(0,0%,100%,.08);color:#fff}.ui.vertical.inverted.menu .item .menu .link.item:hover,.ui.vertical.inverted.menu .item .menu a.item:hover{background:transparent;color:#fff}.ui.inverted.menu .link.item:active,.ui.inverted.menu a.item:active{background:hsla(0,0%,100%,.08);color:#fff}.ui.inverted.menu .active.item{background:hsla(0,0%,100%,.15);color:#fff!important}.ui.inverted.vertical.menu .item .menu .active.item{background:transparent;color:#fff}.ui.inverted.pointing.menu .active.item:after{background:#28608e!important;margin:0!important;box-shadow:none!important;border:none!important}.ui.inverted.menu .active.item:hover{background:hsla(0,0%,100%,.15);color:#fff!important}.ui.inverted.pointing.menu .active.item:hover:after{background:#28608e!important}.ui.floated.menu{float:left;margin:0 .5rem 0 0}.ui.floated.menu .item:last-child:before{display:none}.ui.right.floated.menu{float:right;margin:0 0 0 .5rem}.ui.inverted.menu .red.active.item,.ui.inverted.red.menu{background-color:#db2828}.ui.inverted.red.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.red.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .orange.active.item,.ui.inverted.orange.menu{background-color:#f2711c}.ui.inverted.orange.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.orange.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .yellow.active.item,.ui.inverted.yellow.menu{background-color:#fbbd08}.ui.inverted.yellow.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.yellow.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .olive.active.item,.ui.inverted.olive.menu{background-color:#b5cc18}.ui.inverted.olive.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.olive.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.green.menu,.ui.inverted.menu .green.active.item{background-color:#21ba45}.ui.inverted.green.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.green.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .teal.active.item,.ui.inverted.teal.menu{background-color:#00b5ad}.ui.inverted.teal.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.teal.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.blue.menu,.ui.inverted.menu .blue.active.item{background-color:#2c6a9e}.ui.inverted.blue.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.blue.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .violet.active.item,.ui.inverted.violet.menu{background-color:#6435c9}.ui.inverted.violet.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.violet.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .purple.active.item,.ui.inverted.purple.menu{background-color:#a333c8}.ui.inverted.purple.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.purple.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .pink.active.item,.ui.inverted.pink.menu{background-color:#e03997}.ui.inverted.pink.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.pink.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.brown.menu,.ui.inverted.menu .brown.active.item{background-color:#a5673f}.ui.inverted.brown.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.brown.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.grey.menu,.ui.inverted.menu .grey.active.item{background-color:#767676}.ui.inverted.grey.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.grey.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.fitted.menu .item,.ui.fitted.menu .item .menu .item,.ui.menu .fitted.item{padding:0}.ui.horizontally.fitted.menu .item,.ui.horizontally.fitted.menu .item .menu .item,.ui.menu .horizontally.fitted.item{padding-top:.92857143em;padding-bottom:.92857143em}.ui.menu .vertically.fitted.item,.ui.vertically.fitted.menu .item,.ui.vertically.fitted.menu .item .menu .item{padding-left:1.14285714em;padding-right:1.14285714em}.ui.borderless.menu .item .menu .item:before,.ui.borderless.menu .item:before,.ui.menu .borderless.item:before{background:none!important}.ui.compact.menu{display:inline-flex;margin:0;vertical-align:middle}.ui.compact.vertical.menu{display:inline-block}.ui.compact.menu .item:last-child{border-radius:0 .21428571rem .21428571rem 0}.ui.compact.menu .item:last-child:before{display:none}.ui.compact.vertical.menu{width:auto!important}.ui.compact.vertical.menu .item:last-child:before{display:block}.ui.menu.fluid,.ui.vertical.menu.fluid{width:100%!important}.ui.item.menu,.ui.item.menu .item{width:100%;padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;text-align:center;justify-content:center}.ui.attached.item.menu{margin:0 -1px!important}.ui.item.menu .item:last-child:before{display:none}.ui.menu.two.item .item{width:50%}.ui.menu.three.item .item{width:33.333%}.ui.menu.four.item .item{width:25%}.ui.menu.five.item .item{width:20%}.ui.menu.six.item .item{width:16.666%}.ui.menu.seven.item .item{width:14.285%}.ui.menu.eight.item .item{width:12.5%}.ui.menu.nine.item .item{width:11.11%}.ui.menu.ten.item .item{width:10%}.ui.menu.eleven.item .item{width:9.09%}.ui.menu.twelve.item .item{width:8.333%}.ui.menu.fixed{position:fixed;z-index:101;margin:0;width:100%}.ui.menu.fixed,.ui.menu.fixed .item:first-child,.ui.menu.fixed .item:last-child{border-radius:0!important}.ui.fixed.menu,.ui[class*="top fixed"].menu{top:0;left:0;right:auto;bottom:auto}.ui[class*="top fixed"].menu{border-top:none;border-left:none;border-right:none}.ui[class*="right fixed"].menu{border-top:none;border-bottom:none;border-right:none;top:0;right:0;left:auto;bottom:auto;width:auto;height:100%}.ui[class*="bottom fixed"].menu{border-bottom:none;border-left:none;border-right:none;bottom:0;left:0;top:auto;right:auto}.ui[class*="left fixed"].menu{border-top:none;border-bottom:none;border-left:none;top:0;left:0;right:auto;bottom:auto;width:auto;height:100%}.ui.fixed.menu+.ui.grid{padding-top:2.75rem}.ui.pointing.menu .item:after{visibility:hidden;position:absolute;content:"";top:100%;left:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);background:none;margin:.5px 0 0;width:.57142857em;height:.57142857em;border:1px solid #d4d4d5;border-top:none;border-left:none;z-index:2;transition:background .1s ease}.ui.vertical.pointing.menu .item:after{position:absolute;top:50%;right:0;bottom:auto;left:auto;transform:translateX(50%) translateY(-50%) rotate(45deg);margin:0 -.5px 0 0;border:1px solid #d4d4d5;border-bottom:none;border-left:none}.ui.pointing.menu .active.item:after{visibility:visible}.ui.pointing.menu .active.dropdown.item:after{visibility:hidden}.ui.pointing.menu .active.item .menu .active.item:after,.ui.pointing.menu .dropdown.active.item:after{display:none}.ui.pointing.menu .active.item:after,.ui.pointing.menu .active.item:hover:after,.ui.vertical.pointing.menu .active.item:after,.ui.vertical.pointing.menu .active.item:hover:after{background-color:#f2f2f2}.ui.vertical.pointing.menu .menu .active.item:after{background-color:#fff}.ui.attached.menu{top:0;bottom:0;border-radius:0;margin:0 -1px;width:102%;max-width:102%;box-shadow:none}.ui.attached+.ui.attached.menu:not(.top){border-top:none}.ui[class*="top attached"].menu{bottom:0;margin-bottom:0;top:0;margin-top:1rem;border-radius:.21428571rem .21428571rem 0 0}.ui.menu[class*="top attached"]:first-child{margin-top:0}.ui[class*="bottom attached"].menu{bottom:0;margin-top:0;top:0;margin-bottom:1rem;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),none;border-radius:0 0 .21428571rem .21428571rem}.ui[class*="bottom attached"].menu:last-child{margin-bottom:0}.ui.top.attached.menu>.item:first-child{border-radius:.21428571rem 0 0 0}.ui.bottom.attached.menu>.item:first-child{border-radius:0 0 0 .21428571rem}.ui.attached.menu:not(.tabular){border:1px solid #d4d4d5}.ui.attached.inverted.menu{border:none}.ui.attached.tabular.menu{margin-left:0;margin-right:0;width:100%}.ui.mini.menu{font-size:11px;font-size:.78571429rem}.ui.mini.vertical.menu{width:126px;width:9rem}.ui.tiny.menu{font-size:12px;font-size:.85714286rem}.ui.tiny.vertical.menu{width:154px;width:11rem}.ui.small.menu{font-size:13px;font-size:.92857143rem}.ui.small.vertical.menu{width:182px;width:13rem}.ui.menu{font-size:14px;font-size:1rem}.ui.vertical.menu{width:210px;width:15rem}.ui.large.menu{font-size:14.999px;font-size:1.07142857rem}.ui.large.vertical.menu{width:252px;width:18rem}.ui.huge.menu{font-size:16.999px;font-size:1.21428571rem}.ui.huge.vertical.menu{width:308px;width:22rem}.ui.big.menu{font-size:15.999px;font-size:1.14285714rem}.ui.big.vertical.menu{width:280px;width:20rem}.ui.massive.menu{font-size:18px;font-size:1.28571429rem}.ui.massive.vertical.menu{width:350px;width:25rem}
/*!
 * # Semantic UI - Message
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.message{position:relative;min-height:1em;margin:1em 0;background:#f8f8f9;padding:1em 1.5em;line-height:1.4285em;color:rgba(0,0,0,.87);transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;border-radius:.21428571rem;box-shadow:inset 0 0 0 1px rgba(34,36,38,.22),0 0 0 0 transparent}.ui.message:first-child{margin-top:0}.ui.message:last-child{margin-bottom:0}.ui.message .header{display:block;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;margin:-.14285714em 0 0}.ui.message .header:not(.ui){font-size:1.14285714em}.ui.message p{opacity:.85;margin:.75em 0}.ui.message p:first-child{margin-top:0}.ui.message p:last-child{margin-bottom:0}.ui.message .header+p{margin-top:.25em}.ui.message .list:not(.ui){text-align:left;padding:0;opacity:.85;list-style-position:inside;margin:.5em 0 0}.ui.message .list:not(.ui):first-child{margin-top:0}.ui.message .list:not(.ui):last-child{margin-bottom:0}.ui.message .list:not(.ui) li{position:relative;list-style-type:none;margin:0 0 .3em 1em;padding:0}.ui.message .list:not(.ui) li:before{position:absolute;content:"•";left:-1em;height:100%;vertical-align:baseline}.ui.message .list:not(.ui) li:last-child{margin-bottom:0}.ui.message>.icon{margin-right:.6em}.ui.message>.close.icon{cursor:pointer;position:absolute;margin:0;top:.78575em;right:.5em;opacity:.7;transition:opacity .1s ease}.ui.message>.close.icon:hover{opacity:1}.ui.message>:first-child{margin-top:0}.ui.message>:last-child{margin-bottom:0}.ui.dropdown .menu>.message{margin:0 -1px}.ui.visible.visible.visible.visible.message{display:block}.ui.icon.visible.visible.visible.visible.message{display:flex}.ui.hidden.hidden.hidden.hidden.message{display:none}.ui.compact.message{display:inline-block}.ui.compact.icon.message{display:inline-flex}.ui.attached.message{margin-bottom:-1px;border-radius:.21428571rem .21428571rem 0 0;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15);margin-left:-1px;margin-right:-1px}.ui.attached+.ui.attached.message:not(.top):not(.bottom){margin-top:-1px;border-radius:0}.ui.bottom.attached.message{margin-top:-1px;border-radius:0 0 .21428571rem .21428571rem;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15),0 1px 1px 0 rgba(34,36,38,.15)}.ui.bottom.attached.message:not(:last-child){margin-bottom:1em}.ui.attached.icon.message{width:auto}.ui.icon.message{display:flex;width:100%;align-items:center}.ui.icon.message>.icon:not(.close){display:block;flex:0 0 auto;width:auto;line-height:1;vertical-align:middle;font-size:3em;opacity:.8}.ui.icon.message>.content{display:block;flex:1 1 auto;vertical-align:middle}.ui.icon.message .icon:not(.close)+.content{padding-left:0}.ui.icon.message .circular.icon{width:1em}.ui.floating.message{box-shadow:inset 0 0 0 1px rgba(34,36,38,.22),0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.black.message{background-color:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.positive.message{background-color:#fcfff5;color:#2c662d}.ui.attached.positive.message,.ui.positive.message{box-shadow:inset 0 0 0 1px #a3c293,0 0 0 0 transparent}.ui.positive.message .header{color:#1a531b}.ui.negative.message{background-color:#fff6f6;color:#9f3a38}.ui.attached.negative.message,.ui.negative.message{box-shadow:inset 0 0 0 1px #e0b4b4,0 0 0 0 transparent}.ui.negative.message .header{color:#912d2b}.ui.info.message{background-color:#f8ffff;color:#276f86}.ui.attached.info.message,.ui.info.message{box-shadow:inset 0 0 0 1px #a9d5de,0 0 0 0 transparent}.ui.info.message .header{color:#0e566c}.ui.warning.message{background-color:#fffaf3;color:#573a08}.ui.attached.warning.message,.ui.warning.message{box-shadow:inset 0 0 0 1px #c9ba9b,0 0 0 0 transparent}.ui.warning.message .header{color:#794b02}.ui.error.message{background-color:#fff6f6;color:#9f3a38}.ui.attached.error.message,.ui.error.message{box-shadow:inset 0 0 0 1px #e0b4b4,0 0 0 0 transparent}.ui.error.message .header{color:#912d2b}.ui.success.message{background-color:#fcfff5;color:#2c662d}.ui.attached.success.message,.ui.success.message{box-shadow:inset 0 0 0 1px #a3c293,0 0 0 0 transparent}.ui.success.message .header{color:#1a531b}.ui.black.message,.ui.inverted.message{background-color:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.red.message{background-color:#ffe8e6;color:#db2828;box-shadow:inset 0 0 0 1px #db2828,0 0 0 0 transparent}.ui.red.message .header{color:#c82121}.ui.orange.message{background-color:#ffedde;color:#f2711c;box-shadow:inset 0 0 0 1px #f2711c,0 0 0 0 transparent}.ui.orange.message .header{color:#e7640d}.ui.yellow.message{background-color:#fff8db;color:#b58105;box-shadow:inset 0 0 0 1px #b58105,0 0 0 0 transparent}.ui.yellow.message .header{color:#9c6f04}.ui.olive.message{background-color:#fbfdef;color:#8abc1e;box-shadow:inset 0 0 0 1px #8abc1e,0 0 0 0 transparent}.ui.olive.message .header{color:#7aa61a}.ui.green.message{background-color:#e5f9e7;color:#1ebc30;box-shadow:inset 0 0 0 1px #1ebc30,0 0 0 0 transparent}.ui.green.message .header{color:#1aa62a}.ui.teal.message{background-color:#e1f7f7;color:#10a3a3;box-shadow:inset 0 0 0 1px #10a3a3,0 0 0 0 transparent}.ui.teal.message .header{color:#0e8c8c}.ui.blue.message{background-color:#dff0ff;color:#2c6a9e;box-shadow:inset 0 0 0 1px #2c6a9e,0 0 0 0 transparent}.ui.blue.message .header{color:#265d8a}.ui.violet.message{background-color:#eae7ff;color:#6435c9;box-shadow:inset 0 0 0 1px #6435c9,0 0 0 0 transparent}.ui.violet.message .header{color:#5a30b5}.ui.purple.message{background-color:#f6e7ff;color:#a333c8;box-shadow:inset 0 0 0 1px #a333c8,0 0 0 0 transparent}.ui.purple.message .header{color:#922eb4}.ui.pink.message{background-color:#ffe3fb;color:#e03997;box-shadow:inset 0 0 0 1px #e03997,0 0 0 0 transparent}.ui.pink.message .header{color:#dd238b}.ui.brown.message{background-color:#f1e2d3;color:#a5673f;box-shadow:inset 0 0 0 1px #a5673f,0 0 0 0 transparent}.ui.brown.message .header{color:#935b38}.ui.mini.message{font-size:.78571429em}.ui.tiny.message{font-size:.85714286em}.ui.small.message{font-size:.92857143em}.ui.message{font-size:1em}.ui.large.message{font-size:1.14285714em}.ui.big.message{font-size:1.28571429em}.ui.huge.message{font-size:1.42857143em}.ui.massive.message{font-size:1.71428571em}
/*!
 * # Semantic UI - Table
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.table{width:100%;background:#fff;margin:1em 0;border:1px solid rgba(34,36,38,.15);box-shadow:none;border-radius:.21428571rem;text-align:left;color:rgba(0,0,0,.87);border-collapse:separate;border-spacing:0}.ui.table:first-child{margin-top:0}.ui.table:last-child{margin-bottom:0}.ui.table td,.ui.table th{transition:background .1s ease,color .1s ease}.ui.table thead{box-shadow:none}.ui.table thead th{cursor:auto;background:#f9fafb;text-align:inherit;color:rgba(0,0,0,.87);padding:.92857143em .78571429em;vertical-align:inherit;font-style:none;font-weight:700;text-transform:none;border-bottom:1px solid rgba(34,36,38,.1);border-left:none}.ui.table thead tr>th:first-child{border-left:none}.ui.table thead tr:first-child>th:first-child{border-radius:.21428571rem 0 0 0}.ui.table thead tr:first-child>th:last-child{border-radius:0 .21428571rem 0 0}.ui.table thead tr:first-child>th:only-child{border-radius:.21428571rem .21428571rem 0 0}.ui.table tfoot{box-shadow:none}.ui.table tfoot th{cursor:auto;border-top:1px solid rgba(34,36,38,.15);background:#f9fafb;text-align:inherit;color:rgba(0,0,0,.87);padding:.78571429em;vertical-align:middle;font-style:normal;font-weight:400;text-transform:none}.ui.table tfoot tr>th:first-child{border-left:none}.ui.table tfoot tr:first-child>th:first-child{border-radius:0 0 0 .21428571rem}.ui.table tfoot tr:first-child>th:last-child{border-radius:0 0 .21428571rem 0}.ui.table tfoot tr:first-child>th:only-child{border-radius:0 0 .21428571rem .21428571rem}.ui.table tr td{border-top:1px solid rgba(34,36,38,.1)}.ui.table tr:first-child td{border-top:none}.ui.table tbody+tbody tr:first-child td{border-top:1px solid rgba(34,36,38,.1)}.ui.table td{padding:.78571429em;text-align:inherit}.ui.table>.icon{vertical-align:baseline}.ui.table>.icon:only-child{margin:0}.ui.table.segment{padding:0}.ui.table.segment:after{display:none}.ui.table.segment.stacked:after{display:block}@media only screen and (max-width:767px){.ui.table:not(.unstackable){width:100%}.ui.table:not(.unstackable) tbody,.ui.table:not(.unstackable) tr,.ui.table:not(.unstackable) tr>td,.ui.table:not(.unstackable) tr>th{width:auto!important;display:block!important}.ui.table:not(.unstackable){padding:0}.ui.table:not(.unstackable) tfoot,.ui.table:not(.unstackable) thead{display:block}.ui.table:not(.unstackable) tr{padding-top:1em;padding-bottom:1em;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1)!important}.ui.table:not(.unstackable) tr>td,.ui.table:not(.unstackable) tr>th{background:none;border:none!important;padding:.25em .75em!important;box-shadow:none!important}.ui.table:not(.unstackable) td:first-child,.ui.table:not(.unstackable) th:first-child{font-weight:700}.ui.definition.table:not(.unstackable) thead th:first-child{box-shadow:none!important}}.ui.table td .image,.ui.table td .image img,.ui.table th .image,.ui.table th .image img{max-width:none}.ui.structured.table{border-collapse:collapse}.ui.structured.table thead th{border-left:none;border-right:none}.ui.structured.sortable.table thead th{border-left:1px solid rgba(34,36,38,.15);border-right:1px solid rgba(34,36,38,.15)}.ui.structured.basic.table th{border-left:none;border-right:none}.ui.structured.celled.table tr td,.ui.structured.celled.table tr th{border-left:1px solid rgba(34,36,38,.1);border-right:1px solid rgba(34,36,38,.1)}.ui.definition.table thead:not(.full-width) th:first-child{pointer-events:none;background:transparent;font-weight:400;color:rgba(0,0,0,.4);box-shadow:-1px -1px 0 1px #fff}.ui.definition.table tfoot:not(.full-width) th:first-child{pointer-events:none;background:transparent;font-weight:rgba(0,0,0,.4);color:normal;box-shadow:1px 1px 0 1px #fff}.ui.celled.definition.table thead:not(.full-width) th:first-child{box-shadow:0 -1px 0 1px #fff}.ui.celled.definition.table tfoot:not(.full-width) th:first-child{box-shadow:0 1px 0 1px #fff}.ui.definition.table tr td.definition,.ui.definition.table tr td:first-child:not(.ignored){background:rgba(0,0,0,.03);font-weight:700;color:rgba(0,0,0,.95);text-transform:"";box-shadow:"";text-align:"";font-size:1em;padding-left:"";padding-right:""}.ui.definition.table td:nth-child(2),.ui.definition.table tfoot:not(.full-width) th:nth-child(2),.ui.definition.table thead:not(.full-width) th:nth-child(2){border-left:1px solid rgba(34,36,38,.15)}.ui.table td.positive,.ui.table tr.positive{box-shadow:inset 0 0 0 #a3c293;background:#fcfff5!important;color:#2c662d!important}.ui.table td.negative,.ui.table tr.negative{box-shadow:inset 0 0 0 #e0b4b4;background:#fff6f6!important;color:#9f3a38!important}.ui.table td.error,.ui.table tr.error{box-shadow:inset 0 0 0 #e0b4b4;background:#fff6f6!important;color:#9f3a38!important}.ui.table td.warning,.ui.table tr.warning{box-shadow:inset 0 0 0 #c9ba9b;background:#fffaf3!important;color:#573a08!important}.ui.table td.active,.ui.table tr.active{box-shadow:inset 0 0 0 rgba(0,0,0,.87);background:#e0e0e0!important;color:rgba(0,0,0,.87)!important}.ui.table tr.disabled:hover,.ui.table tr.disabled td,.ui.table tr:hover td.disabled,.ui.table tr td.disabled{pointer-events:none;color:rgba(40,40,40,.3)}@media only screen and (max-width:991px){.ui[class*="tablet stackable"].table,.ui[class*="tablet stackable"].table tbody,.ui[class*="tablet stackable"].table tr,.ui[class*="tablet stackable"].table tr>td,.ui[class*="tablet stackable"].table tr>th{width:100%!important;display:block!important}.ui[class*="tablet stackable"].table{padding:0}.ui[class*="tablet stackable"].table tfoot,.ui[class*="tablet stackable"].table thead{display:block}.ui[class*="tablet stackable"].table tr{padding-top:1em;padding-bottom:1em;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1)!important}.ui[class*="tablet stackable"].table tr>td,.ui[class*="tablet stackable"].table tr>th{background:none;border:none!important;padding:.25em .75em;box-shadow:none!important}.ui.definition[class*="tablet stackable"].table thead th:first-child{box-shadow:none!important}}.ui.table[class*="left aligned"],.ui.table [class*="left aligned"]{text-align:left}.ui.table[class*="center aligned"],.ui.table [class*="center aligned"]{text-align:center}.ui.table[class*="right aligned"],.ui.table [class*="right aligned"]{text-align:right}.ui.table[class*="top aligned"],.ui.table [class*="top aligned"]{vertical-align:top}.ui.table[class*="middle aligned"],.ui.table [class*="middle aligned"]{vertical-align:middle}.ui.table[class*="bottom aligned"],.ui.table [class*="bottom aligned"]{vertical-align:bottom}.ui.table td.collapsing,.ui.table th.collapsing{width:1px;white-space:nowrap}.ui.fixed.table{table-layout:fixed}.ui.fixed.table td,.ui.fixed.table th{overflow:hidden;text-overflow:ellipsis}.ui.selectable.table tbody tr:hover,.ui.table tbody tr td.selectable:hover{background:rgba(0,0,0,.05)!important;color:rgba(0,0,0,.95)!important}.ui.inverted.table tbody tr td.selectable:hover,.ui.selectable.inverted.table tbody tr:hover{background:hsla(0,0%,100%,.08)!important;color:#fff!important}.ui.table tbody tr td.selectable{padding:0}.ui.table tbody tr td.selectable>a:not(.ui){display:block;color:inherit;padding:.78571429em}.ui.selectable.table tr.error:hover,.ui.selectable.table tr:hover td.error,.ui.table tr td.selectable.error:hover{background:#ffe7e7!important;color:#943634!important}.ui.selectable.table tr.warning:hover,.ui.selectable.table tr:hover td.warning,.ui.table tr td.selectable.warning:hover{background:#fff4e4!important;color:#493107!important}.ui.selectable.table tr.active:hover,.ui.selectable.table tr:hover td.active,.ui.table tr td.selectable.active:hover{background:#e0e0e0!important;color:rgba(0,0,0,.87)!important}.ui.selectable.table tr.positive:hover,.ui.selectable.table tr:hover td.positive,.ui.table tr td.selectable.positive:hover{background:#f7ffe6!important;color:#275b28!important}.ui.selectable.table tr.negative:hover,.ui.selectable.table tr:hover td.negative,.ui.table tr td.selectable.negative:hover{background:#ffe7e7!important;color:#943634!important}.ui.attached.table{top:0;bottom:0;border-radius:0;margin:0 -1px;width:102%;max-width:102%;box-shadow:none;border:1px solid #d4d4d5}.ui.attached+.ui.attached.table:not(.top){border-top:none}.ui[class*="top attached"].table{bottom:0;margin-bottom:0;top:0;margin-top:1em;border-radius:.21428571rem .21428571rem 0 0}.ui.table[class*="top attached"]:first-child{margin-top:0}.ui[class*="bottom attached"].table{bottom:0;margin-top:0;top:0;margin-bottom:1em;box-shadow:none,none;border-radius:0 0 .21428571rem .21428571rem}.ui[class*="bottom attached"].table:last-child{margin-bottom:0}.ui.striped.table>tr:nth-child(2n),.ui.striped.table tbody tr:nth-child(2n){background-color:rgba(0,0,50,.02)}.ui.inverted.striped.table>tr:nth-child(2n),.ui.inverted.striped.table tbody tr:nth-child(2n){background-color:hsla(0,0%,100%,.05)}.ui.striped.selectable.selectable.selectable.table tbody tr.active:hover{background:#efefef!important;color:rgba(0,0,0,.95)!important}.ui.table[class*="single line"],.ui.table [class*="single line"]{white-space:nowrap}.ui.red.table{border-top:.2em solid #db2828}.ui.inverted.red.table{background-color:#db2828!important;color:#fff!important}.ui.orange.table{border-top:.2em solid #f2711c}.ui.inverted.orange.table{background-color:#f2711c!important;color:#fff!important}.ui.yellow.table{border-top:.2em solid #fbbd08}.ui.inverted.yellow.table{background-color:#fbbd08!important;color:#fff!important}.ui.olive.table{border-top:.2em solid #b5cc18}.ui.inverted.olive.table{background-color:#b5cc18!important;color:#fff!important}.ui.green.table{border-top:.2em solid #21ba45}.ui.inverted.green.table{background-color:#21ba45!important;color:#fff!important}.ui.teal.table{border-top:.2em solid #00b5ad}.ui.inverted.teal.table{background-color:#00b5ad!important;color:#fff!important}.ui.blue.table{border-top:.2em solid #2c6a9e}.ui.inverted.blue.table{background-color:#2c6a9e!important;color:#fff!important}.ui.violet.table{border-top:.2em solid #6435c9}.ui.inverted.violet.table{background-color:#6435c9!important;color:#fff!important}.ui.purple.table{border-top:.2em solid #a333c8}.ui.inverted.purple.table{background-color:#a333c8!important;color:#fff!important}.ui.pink.table{border-top:.2em solid #e03997}.ui.inverted.pink.table{background-color:#e03997!important;color:#fff!important}.ui.brown.table{border-top:.2em solid #a5673f}.ui.inverted.brown.table{background-color:#a5673f!important;color:#fff!important}.ui.grey.table{border-top:.2em solid #767676}.ui.inverted.grey.table{background-color:#767676!important;color:#fff!important}.ui.black.table{border-top:.2em solid #1b1c1d}.ui.inverted.black.table{background-color:#1b1c1d!important;color:#fff!important}.ui.one.column.table td{width:100%}.ui.two.column.table td{width:50%}.ui.three.column.table td{width:33.33333333%}.ui.four.column.table td{width:25%}.ui.five.column.table td{width:20%}.ui.six.column.table td{width:16.66666667%}.ui.seven.column.table td{width:14.28571429%}.ui.eight.column.table td{width:12.5%}.ui.nine.column.table td{width:11.11111111%}.ui.ten.column.table td{width:10%}.ui.eleven.column.table td{width:9.09090909%}.ui.twelve.column.table td{width:8.33333333%}.ui.thirteen.column.table td{width:7.69230769%}.ui.fourteen.column.table td{width:7.14285714%}.ui.fifteen.column.table td{width:6.66666667%}.ui.sixteen.column.table td,.ui.table td.one.wide,.ui.table th.one.wide{width:6.25%}.ui.table td.two.wide,.ui.table th.two.wide{width:12.5%}.ui.table td.three.wide,.ui.table th.three.wide{width:18.75%}.ui.table td.four.wide,.ui.table th.four.wide{width:25%}.ui.table td.five.wide,.ui.table th.five.wide{width:31.25%}.ui.table td.six.wide,.ui.table th.six.wide{width:37.5%}.ui.table td.seven.wide,.ui.table th.seven.wide{width:43.75%}.ui.table td.eight.wide,.ui.table th.eight.wide{width:50%}.ui.table td.nine.wide,.ui.table th.nine.wide{width:56.25%}.ui.table td.ten.wide,.ui.table th.ten.wide{width:62.5%}.ui.table td.eleven.wide,.ui.table th.eleven.wide{width:68.75%}.ui.table td.twelve.wide,.ui.table th.twelve.wide{width:75%}.ui.table td.thirteen.wide,.ui.table th.thirteen.wide{width:81.25%}.ui.table td.fourteen.wide,.ui.table th.fourteen.wide{width:87.5%}.ui.table td.fifteen.wide,.ui.table th.fifteen.wide{width:93.75%}.ui.table td.sixteen.wide,.ui.table th.sixteen.wide{width:100%}.ui.sortable.table thead th{cursor:pointer;white-space:nowrap;border-left:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87)}.ui.sortable.table thead th:first-child{border-left:none}.ui.sortable.table thead th.sorted,.ui.sortable.table thead th.sorted:hover{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.sortable.table thead th:after{display:none;font-style:normal;font-weight:400;text-decoration:inherit;content:"";height:1em;width:auto;opacity:.8;margin:0 0 0 .5em;font-family:Icons}.ui.sortable.table thead th.ascending:after{content:"\f0d8"}.ui.sortable.table thead th.descending:after{content:"\f0d7"}.ui.sortable.table th.disabled:hover{cursor:auto;color:rgba(40,40,40,.3)}.ui.sortable.table thead th:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.8)}.ui.sortable.table thead th.sorted{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.sortable.table thead th.sorted:after{display:inline-block}.ui.sortable.table thead th.sorted:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.inverted.sortable.table thead th.sorted{background:hsla(0,0%,100%,.15) linear-gradient(transparent,rgba(0,0,0,.05));color:#fff}.ui.inverted.sortable.table thead th:hover{background:hsla(0,0%,100%,.08) linear-gradient(transparent,rgba(0,0,0,.05));color:#fff}.ui.inverted.sortable.table thead th{border-left-color:transparent;border-right-color:transparent}.ui.inverted.table{background:#333;color:hsla(0,0%,100%,.9);border:none}.ui.inverted.table th{background-color:rgba(0,0,0,.15);color:hsla(0,0%,100%,.9)!important}.ui.inverted.table th,.ui.inverted.table tr td{border-color:hsla(0,0%,100%,.1)!important}.ui.inverted.table tr.disabled:hover td,.ui.inverted.table tr.disabled td,.ui.inverted.table tr:hover td.disabled,.ui.inverted.table tr td.disabled{pointer-events:none;color:hsla(0,0%,88.2%,.3)}.ui.inverted.definition.table tfoot:not(.full-width) th:first-child,.ui.inverted.definition.table thead:not(.full-width) th:first-child{background:#fff}.ui.inverted.definition.table tr td:first-child{background:hsla(0,0%,100%,.02);color:#fff}.ui.collapsing.table{width:auto}.ui.basic.table{background:transparent;border:1px solid rgba(34,36,38,.15);box-shadow:none}.ui.basic.table tfoot,.ui.basic.table thead{box-shadow:none}.ui.basic.table th{background:transparent;border-left:none}.ui.basic.table tbody tr{border-bottom:1px solid rgba(0,0,0,.1)}.ui.basic.table td{background:transparent}.ui.basic.striped.table tbody tr:nth-child(2n){background-color:rgba(0,0,0,.05)!important}.ui[class*="very basic"].table{border:none}.ui[class*="very basic"].table:not(.sortable):not(.striped) td,.ui[class*="very basic"].table:not(.sortable):not(.striped) th{padding:""}.ui[class*="very basic"].table:not(.sortable):not(.striped) td:first-child,.ui[class*="very basic"].table:not(.sortable):not(.striped) th:first-child{padding-left:0}.ui[class*="very basic"].table:not(.sortable):not(.striped) td:last-child,.ui[class*="very basic"].table:not(.sortable):not(.striped) th:last-child{padding-right:0}.ui[class*="very basic"].table:not(.sortable):not(.striped) thead tr:first-child th{padding-top:0}.ui.celled.table tr td,.ui.celled.table tr th{border-left:1px solid rgba(34,36,38,.1)}.ui.celled.table tr td:first-child,.ui.celled.table tr th:first-child{border-left:none}.ui.padded.table th{padding-left:1em;padding-right:1em}.ui.padded.table td,.ui.padded.table th{padding:1em}.ui[class*="very padded"].table th{padding-left:1.5em;padding-right:1.5em}.ui[class*="very padded"].table td{padding:1.5em}.ui.compact.table th{padding-left:.7em;padding-right:.7em}.ui.compact.table td{padding:.5em .7em}.ui[class*="very compact"].table th{padding-left:.6em;padding-right:.6em}.ui[class*="very compact"].table td{padding:.4em .6em}.ui.small.table{font-size:.9em}.ui.table{font-size:1em}.ui.large.table{font-size:1.1em}
/*!
 * # Semantic UI - Ad
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Copyright 2013 Contributors
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.ad{display:block;overflow:hidden;margin:1em 0}.ui.ad:first-child,.ui.ad:last-child{margin:0}.ui.ad iframe{margin:0;padding:0;border:none;overflow:hidden}.ui.leaderboard.ad{width:728px;height:90px}.ui[class*="medium rectangle"].ad{width:300px;height:250px}.ui[class*="large rectangle"].ad{width:336px;height:280px}.ui[class*="half page"].ad{width:300px;height:600px}.ui.square.ad{width:250px;height:250px}.ui[class*="small square"].ad{width:200px;height:200px}.ui[class*="small rectangle"].ad{width:180px;height:150px}.ui[class*="vertical rectangle"].ad{width:240px;height:400px}.ui.button.ad{width:120px;height:90px}.ui[class*="square button"].ad{width:125px;height:125px}.ui[class*="small button"].ad{width:120px;height:60px}.ui.skyscraper.ad{width:120px;height:600px}.ui[class*="wide skyscraper"].ad{width:160px}.ui.banner.ad{width:468px;height:60px}.ui[class*="vertical banner"].ad{width:120px;height:240px}.ui[class*="top banner"].ad{width:930px;height:180px}.ui[class*="half banner"].ad{width:234px;height:60px}.ui[class*="large leaderboard"].ad{width:970px;height:90px}.ui.billboard.ad{width:970px;height:250px}.ui.panorama.ad{width:980px;height:120px}.ui.netboard.ad{width:580px;height:400px}.ui[class*="large mobile banner"].ad{width:320px;height:100px}.ui[class*="mobile leaderboard"].ad{width:320px;height:50px}.ui.mobile.ad{display:none}@media only screen and (max-width:767px){.ui.mobile.ad{display:block}}.ui.centered.ad{margin-left:auto;margin-right:auto}.ui.test.ad{position:relative;background:#545454}.ui.test.ad:after{position:absolute;top:50%;left:50%;width:100%;text-align:center;transform:translateX(-50%) translateY(-50%);content:"Ad";color:#fff;font-size:1em;font-weight:700}.ui.mobile.test.ad:after{font-size:.85714286em}.ui.test.ad[data-text]:after{content:attr(data-text)}
/*!
 * # Semantic UI - Item
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.card,.ui.cards>.card{max-width:100%;position:relative;display:flex;flex-direction:column;width:290px;min-height:0;background:#fff;padding:0;border:none;border-radius:.21428571rem;box-shadow:0 1px 3px 0 #d4d4d5,0 0 0 1px #d4d4d5;transition:box-shadow .1s ease,transform .1s ease;z-index:""}.ui.card{margin:1em 0}.ui.card a,.ui.cards>.card a{cursor:pointer}.ui.card:first-child{margin-top:0}.ui.card:last-child{margin-bottom:0}.ui.cards{display:flex;margin:-.875em -.5em;flex-wrap:wrap}.ui.cards>.card{display:flex;margin:.875em .5em;float:none}.ui.card:after,.ui.cards:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.cards~.ui.cards{margin-top:.875em}.ui.card>:first-child,.ui.cards>.card>:first-child{border-radius:.21428571rem .21428571rem 0 0!important;border-top:none!important}.ui.card>:last-child,.ui.cards>.card>:last-child{border-radius:0 0 .21428571rem .21428571rem!important}.ui.card>:only-child,.ui.cards>.card>:only-child{border-radius:.21428571rem!important}.ui.card>.image,.ui.cards>.card>.image{position:relative;display:block;flex:0 0 auto;padding:0;background:rgba(0,0,0,.05)}.ui.card>.image>img,.ui.cards>.card>.image>img{display:block;width:100%;height:auto;border-radius:inherit}.ui.card>.image:not(.ui)>img,.ui.cards>.card>.image:not(.ui)>img{border:none}.ui.card>.content,.ui.cards>.card>.content{flex-grow:1;border:none;border-top:1px solid rgba(34,36,38,.1);background:none;margin:0;padding:1em;box-shadow:none;font-size:1em;border-radius:0}.ui.card>.content:after,.ui.cards>.card>.content:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.card>.content>.header,.ui.cards>.card>.content>.header{display:block;margin:"";font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;color:rgba(0,0,0,.85)}.ui.card>.content>.header:not(.ui),.ui.cards>.card>.content>.header:not(.ui){font-weight:700;font-size:1.28571429em;margin-top:-.21425em;line-height:1.28571429em}.ui.card>.content>.header+.description,.ui.card>.content>.meta+.description,.ui.cards>.card>.content>.header+.description,.ui.cards>.card>.content>.meta+.description{margin-top:.5em}.ui.card [class*="left floated"],.ui.cards>.card [class*="left floated"]{float:left}.ui.card [class*="right floated"],.ui.cards>.card [class*="right floated"]{float:right}.ui.card [class*="left aligned"],.ui.cards>.card [class*="left aligned"]{text-align:left}.ui.card [class*="center aligned"],.ui.cards>.card [class*="center aligned"]{text-align:center}.ui.card [class*="right aligned"],.ui.cards>.card [class*="right aligned"]{text-align:right}.ui.card .content img,.ui.cards>.card .content img{display:inline-block;vertical-align:middle;width:""}.ui.card .avatar img,.ui.card img.avatar,.ui.cards>.card .avatar img,.ui.cards>.card img.avatar{width:2em;height:2em;border-radius:500rem}.ui.card>.content>.description,.ui.cards>.card>.content>.description{clear:both;color:rgba(0,0,0,.68)}.ui.card>.content p,.ui.cards>.card>.content p{margin:0 0 .5em}.ui.card>.content p:last-child,.ui.cards>.card>.content p:last-child{margin-bottom:0}.ui.card .meta,.ui.cards>.card .meta{font-size:1em;color:rgba(0,0,0,.4)}.ui.card .meta *,.ui.cards>.card .meta *{margin-right:.3em}.ui.card .meta :last-child,.ui.cards>.card .meta :last-child{margin-right:0}.ui.card .meta [class*="right floated"],.ui.cards>.card .meta [class*="right floated"]{margin-right:0;margin-left:.3em}.ui.card>.content a:not(.ui),.ui.cards>.card>.content a:not(.ui){color:"";transition:color .1s ease}.ui.card>.content a:not(.ui):hover,.ui.cards>.card>.content a:not(.ui):hover{color:""}.ui.card>.content>a.header,.ui.cards>.card>.content>a.header{color:rgba(0,0,0,.85)}.ui.card>.content>a.header:hover,.ui.cards>.card>.content>a.header:hover{color:#3277b2}.ui.card .meta>a:not(.ui),.ui.cards>.card .meta>a:not(.ui){color:rgba(0,0,0,.4)}.ui.card .meta>a:not(.ui):hover,.ui.cards>.card .meta>a:not(.ui):hover{color:rgba(0,0,0,.87)}.ui.card>.button,.ui.card>.buttons,.ui.cards>.card>.button,.ui.cards>.card>.buttons{margin:0 -1px;width:calc(100% + 2px)}.ui.card .dimmer,.ui.cards>.card .dimmer{background-color:"";z-index:10}.ui.card>.content .star.icon,.ui.cards>.card>.content .star.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.card>.content .star.icon:hover,.ui.cards>.card>.content .star.icon:hover{opacity:1;color:#ffb70a}.ui.card>.content .active.star.icon,.ui.cards>.card>.content .active.star.icon{color:#ffe623}.ui.card>.content .like.icon,.ui.cards>.card>.content .like.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.card>.content .like.icon:hover,.ui.cards>.card>.content .like.icon:hover{opacity:1;color:#ff2733}.ui.card>.content .active.like.icon,.ui.cards>.card>.content .active.like.icon{color:#ff2733}.ui.card>.extra,.ui.cards>.card>.extra{max-width:100%;min-height:0!important;flex-grow:0;border-top:1px solid rgba(0,0,0,.05)!important;position:static;background:none;width:auto;margin:0;padding:.75em 1em;top:0;left:0;color:rgba(0,0,0,.4);box-shadow:none;transition:color .1s ease}.ui.card>.extra a:not(.ui),.ui.cards>.card>.extra a:not(.ui){color:rgba(0,0,0,.4)}.ui.card>.extra a:not(.ui):hover,.ui.cards>.card>.extra a:not(.ui):hover{color:#3277b2}.ui.link.cards .raised.card:hover,.ui.link.raised.card:hover,.ui.raised.cards a.card:hover,a.ui.raised.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 4px 0 rgba(34,36,38,.15),0 2px 10px 0 rgba(34,36,38,.25)}.ui.raised.card,.ui.raised.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.centered.cards{justify-content:center}.ui.centered.card{margin-left:auto;margin-right:auto}.ui.fluid.card{width:100%;max-width:9999px}.ui.cards a.card,.ui.link.card,.ui.link.cards .card,a.ui.card{transform:none}.ui.cards a.card:hover,.ui.link.card:hover,.ui.link.cards .card:hover,a.ui.card:hover{cursor:pointer;z-index:5;background:#fff;border:none;box-shadow:0 1px 3px 0 #bcbdbd,0 0 0 1px #d4d4d5;transform:translateY(-3px)}.ui.cards>.red.card,.ui.red.card,.ui.red.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #db2828,0 1px 3px 0 #d4d4d5}.ui.cards>.red.card:hover,.ui.red.card:hover,.ui.red.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #d01919,0 1px 3px 0 #bcbdbd}.ui.cards>.orange.card,.ui.orange.card,.ui.orange.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #f2711c,0 1px 3px 0 #d4d4d5}.ui.cards>.orange.card:hover,.ui.orange.card:hover,.ui.orange.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #f26202,0 1px 3px 0 #bcbdbd}.ui.cards>.yellow.card,.ui.yellow.card,.ui.yellow.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #fbbd08,0 1px 3px 0 #d4d4d5}.ui.cards>.yellow.card:hover,.ui.yellow.card:hover,.ui.yellow.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #eaae00,0 1px 3px 0 #bcbdbd}.ui.cards>.olive.card,.ui.olive.card,.ui.olive.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #b5cc18,0 1px 3px 0 #d4d4d5}.ui.cards>.olive.card:hover,.ui.olive.card:hover,.ui.olive.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #a7bd0d,0 1px 3px 0 #bcbdbd}.ui.cards>.green.card,.ui.green.card,.ui.green.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #21ba45,0 1px 3px 0 #d4d4d5}.ui.cards>.green.card:hover,.ui.green.card:hover,.ui.green.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #16ab39,0 1px 3px 0 #bcbdbd}.ui.cards>.teal.card,.ui.teal.card,.ui.teal.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #00b5ad,0 1px 3px 0 #d4d4d5}.ui.cards>.teal.card:hover,.ui.teal.card:hover,.ui.teal.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #009c95,0 1px 3px 0 #bcbdbd}.ui.blue.card,.ui.blue.cards>.card,.ui.cards>.blue.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #2c6a9e,0 1px 3px 0 #d4d4d5}.ui.blue.card:hover,.ui.blue.cards>.card:hover,.ui.cards>.blue.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #215d8f,0 1px 3px 0 #bcbdbd}.ui.cards>.violet.card,.ui.violet.card,.ui.violet.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #6435c9,0 1px 3px 0 #d4d4d5}.ui.cards>.violet.card:hover,.ui.violet.card:hover,.ui.violet.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #5829bb,0 1px 3px 0 #bcbdbd}.ui.cards>.purple.card,.ui.purple.card,.ui.purple.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #a333c8,0 1px 3px 0 #d4d4d5}.ui.cards>.purple.card:hover,.ui.purple.card:hover,.ui.purple.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #9627ba,0 1px 3px 0 #bcbdbd}.ui.cards>.pink.card,.ui.pink.card,.ui.pink.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #e03997,0 1px 3px 0 #d4d4d5}.ui.cards>.pink.card:hover,.ui.pink.card:hover,.ui.pink.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #e61a8d,0 1px 3px 0 #bcbdbd}.ui.brown.card,.ui.brown.cards>.card,.ui.cards>.brown.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #a5673f,0 1px 3px 0 #d4d4d5}.ui.brown.card:hover,.ui.brown.cards>.card:hover,.ui.cards>.brown.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #975b33,0 1px 3px 0 #bcbdbd}.ui.cards>.grey.card,.ui.grey.card,.ui.grey.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #767676,0 1px 3px 0 #d4d4d5}.ui.cards>.grey.card:hover,.ui.grey.card:hover,.ui.grey.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #838383,0 1px 3px 0 #bcbdbd}.ui.black.card,.ui.black.cards>.card,.ui.cards>.black.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #1b1c1d,0 1px 3px 0 #d4d4d5}.ui.black.card:hover,.ui.black.cards>.card:hover,.ui.cards>.black.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #27292a,0 1px 3px 0 #bcbdbd}.ui.one.cards{margin-left:0;margin-right:0}.ui.one.cards>.card{width:100%}.ui.two.cards{margin-left:-1em;margin-right:-1em}.ui.two.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.three.cards{margin-left:-1em;margin-right:-1em}.ui.three.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.four.cards{margin-left:-.75em;margin-right:-.75em}.ui.four.cards>.card{width:calc(25% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.five.cards{margin-left:-.75em;margin-right:-.75em}.ui.five.cards>.card{width:calc(20% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.six.cards{margin-left:-.75em;margin-right:-.75em}.ui.six.cards>.card{width:calc(16.66667% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.seven.cards{margin-left:-.5em;margin-right:-.5em}.ui.seven.cards>.card{width:calc(14.28571% - 1em);margin-left:.5em;margin-right:.5em}.ui.eight.cards{margin-left:-.5em;margin-right:-.5em}.ui.eight.cards>.card{width:calc(12.5% - 1em);margin-left:.5em;margin-right:.5em;font-size:11px}.ui.nine.cards{margin-left:-.5em;margin-right:-.5em}.ui.nine.cards>.card{width:calc(11.11111% - 1em);margin-left:.5em;margin-right:.5em;font-size:10px}.ui.ten.cards{margin-left:-.5em;margin-right:-.5em}.ui.ten.cards>.card{width:calc(10% - 1em);margin-left:.5em;margin-right:.5em}@media only screen and (max-width:767px){.ui.two.doubling.cards{margin-left:0;margin-right:0}.ui.two.doubling.cards>.card{width:100%;margin-left:0;margin-right:0}.ui.three.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.three.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.four.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.four.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.five.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.five.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.six.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.six.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.seven.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.seven.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.eight.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.eight.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.nine.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.nine.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.ten.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.ten.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}}@media only screen and (min-width:768px) and (max-width:991px){.ui.two.doubling.cards{margin-left:0;margin-right:0}.ui.two.doubling.cards>.card{width:100%;margin-left:0;margin-right:0}.ui.three.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.three.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.four.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.four.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.five.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.five.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.six.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.six.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.eight.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.eight.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.eight.doubling.cards{margin-left:-.75em;margin-right:-.75em}.ui.eight.doubling.cards>.card{width:calc(25% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.nine.doubling.cards{margin-left:-.75em;margin-right:-.75em}.ui.nine.doubling.cards>.card{width:calc(25% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.ten.doubling.cards{margin-left:-.75em;margin-right:-.75em}.ui.ten.doubling.cards>.card{width:calc(20% - 1.5em);margin-left:.75em;margin-right:.75em}}@media only screen and (max-width:767px){.ui.stackable.cards{display:block!important}.ui.stackable.cards .card:first-child{margin-top:0!important}.ui.stackable.cards>.card{display:block!important;height:auto!important;margin:1em;padding:0!important;width:calc(100% - 2em)!important}}.ui.cards>.card{font-size:1em}
/*!
 * # Semantic UI - Comment
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.comments{margin:1.5em 0;max-width:650px}.ui.comments:first-child{margin-top:0}.ui.comments:last-child{margin-bottom:0}.ui.comments .comment{position:relative;background:none;margin:.5em 0 0;padding:.5em 0 0;border:none;line-height:1.2}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .comments{margin:0 0 .5em .5em;padding:1em 0 1em 1em}.ui.comments .comment .comments:before{position:absolute;top:0;left:0}.ui.comments .comment .comments .comment{border:none;background:none}.ui.comments .comment .avatar{display:block;width:2.5em;height:auto;float:left;margin:.2em 0 0}.ui.comments .comment .avatar img,.ui.comments .comment img.avatar{display:block;margin:0 auto;width:100%;height:100%;border-radius:.25rem}.ui.comments .comment>.content{display:block}.ui.comments .comment>.avatar~.content{margin-left:3.5em}.ui.comments .comment .author{font-size:1em;color:rgba(0,0,0,.87);font-weight:700}.ui.comments .comment a.author{cursor:pointer}.ui.comments .comment a.author:hover{color:#3277b2}.ui.comments .comment .metadata{display:inline-block;margin-left:.5em;color:rgba(0,0,0,.4);font-size:.875em}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .5em 0 0}.ui.comments .comment .metadata>:last-child{margin-right:0}.ui.comments .comment .text{margin:.25em 0 .5em;font-size:1em;word-wrap:break-word;color:rgba(0,0,0,.87);line-height:1.3}.ui.comments .comment .actions{font-size:.875em}.ui.comments .comment .actions a{cursor:pointer;display:inline-block;margin:0 .75em 0 0;color:rgba(0,0,0,.4)}.ui.comments .comment .actions a:last-child{margin-right:0}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.8)}.ui.comments>.reply.form{margin-top:1em}.ui.comments .comment .reply.form{width:100%;margin-top:1em}.ui.comments .reply.form textarea{font-size:1em;height:12em}.ui.collapsed.comments,.ui.comments .collapsed.comment,.ui.comments .collapsed.comments{display:none}.ui.threaded.comments .comment .comments{margin:-1.5em 0 -1em 1.25em;padding:3em 0 2em 2.25em;box-shadow:-1px 0 0 rgba(34,36,38,.15)}.ui.minimal.comments .comment .actions{opacity:0;position:absolute;top:0;right:0;left:auto;transition:opacity .2s ease;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.mini.comments{font-size:11px;font-size:.78571429rem}.ui.tiny.comments{font-size:12px;font-size:.85714286rem}.ui.small.comments{font-size:13px;font-size:.92857143rem}.ui.comments{font-size:14px;font-size:1rem}.ui.large.comments{font-size:15.999px;font-size:1.14285714rem}.ui.big.comments{font-size:18px;font-size:1.28571429rem}.ui.huge.comments{font-size:20px;font-size:1.42857143rem}.ui.massive.comments{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Feed
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.feed{margin:1em 0}.ui.feed:first-child{margin-top:0}.ui.feed:last-child{margin-bottom:0}.ui.feed>.event{display:flex;flex-direction:row;width:100%;padding:.21428571rem 0;margin:0;background:none;border-top:none}.ui.feed>.event:first-child{border-top:0;padding-top:0}.ui.feed>.event:last-child{padding-bottom:0}.ui.feed>.event>.label{display:block;flex:0 0 auto;width:2.5em;height:auto;align-self:stretch;text-align:left}.ui.feed>.event>.label .icon{opacity:1;font-size:1.5em;width:100%;padding:.25em;background:none;border:none;border-radius:none;color:rgba(0,0,0,.6)}.ui.feed>.event>.label img{width:100%;height:auto;border-radius:500rem}.ui.feed>.event>.label+.content{margin:.5em 0 .35714286em 1.14285714em}.ui.feed>.event>.content{display:block;flex:1 1 auto;align-self:stretch;text-align:left;word-wrap:break-word}.ui.feed>.event:last-child>.content{padding-bottom:0}.ui.feed>.event>.content a{cursor:pointer}.ui.feed>.event>.content .date{margin:-.5rem 0 0;padding:0;font-weight:400;font-size:1em;font-style:normal;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .summary{margin:0;font-size:1em;font-weight:700;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .summary img{display:inline-block;width:auto;height:10em;margin:-.25em .25em 0 0;border-radius:.25em;vertical-align:middle}.ui.feed>.event>.content .user{display:inline-block;font-weight:700;margin-right:0;vertical-align:baseline}.ui.feed>.event>.content .user img{margin:-.25em .25em 0 0;width:auto;height:10em;vertical-align:middle}.ui.feed>.event>.content .summary>.date{display:inline-block;float:none;font-weight:400;font-size:.85714286em;font-style:normal;margin:0 0 0 .5em;padding:0;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .extra{margin:.5em 0 0;background:none;padding:0;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .extra.images img{display:inline-block;margin:0 .25em 0 0;width:6em}.ui.feed>.event>.content .extra.text{padding:0;border-left:none;font-size:1em;max-width:500px;line-height:1.4285em}.ui.feed>.event>.content .meta{display:inline-block;font-size:.85714286em;margin:.5em 0 0;background:none;border:none;border-radius:0;box-shadow:none;padding:0;color:rgba(0,0,0,.6)}.ui.feed>.event>.content .meta>*{position:relative;margin-left:.75em}.ui.feed>.event>.content .meta>:after{content:"";color:rgba(0,0,0,.2);top:0;left:-1em;opacity:1;position:absolute;vertical-align:top}.ui.feed>.event>.content .meta .like{color:"";transition:color .2s ease}.ui.feed>.event>.content .meta .like:hover .icon{color:#ff2733}.ui.feed>.event>.content .meta .active.like .icon{color:#ef404a}.ui.feed>.event>.content .meta>:first-child{margin-left:0}.ui.feed>.event>.content .meta>:first-child:after{display:none}.ui.feed>.event>.content .meta>.icon,.ui.feed>.event>.content .meta a{cursor:pointer;opacity:1;color:rgba(0,0,0,.5);transition:color .1s ease}.ui.feed>.event>.content .meta>.icon:hover,.ui.feed>.event>.content .meta a:hover,.ui.feed>.event>.content .meta a:hover .icon{color:rgba(0,0,0,.95)}.ui.small.feed{font-size:13px;font-size:.92857143rem}.ui.feed{font-size:14px;font-size:1rem}.ui.large.feed{font-size:15.999px;font-size:1.14285714rem}
/*!
 * # Semantic UI - Item
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.items>.item{display:flex;margin:1em 0;width:100%;min-height:0;background:transparent;padding:0;border:none;border-radius:0;box-shadow:none;transition:box-shadow .1s ease;z-index:""}.ui.items>.item a{cursor:pointer}.ui.items{margin:1.5em 0}.ui.items:first-child{margin-top:0!important}.ui.items:last-child{margin-bottom:0!important}.ui.items>.item:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item:first-child{margin-top:0}.ui.items>.item:last-child{margin-bottom:0}.ui.items>.item>.image{position:relative;flex:0 0 auto;display:block;float:none;margin:0;padding:0;max-height:"";align-self:top}.ui.items>.item>.image>img{display:block;width:100%;height:auto;border-radius:.125rem;border:none}.ui.items>.item>.image:only-child>img{border-radius:0}.ui.items>.item>.content{display:block;flex:1 1 auto;background:none;margin:0;padding:0;box-shadow:none;font-size:1em;border:none;border-radius:0}.ui.items>.item>.content:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image+.content{min-width:0;width:auto;display:block;margin-left:0;align-self:top;padding-left:1.5em}.ui.items>.item>.content>.header{display:inline-block;margin:-.21425em 0 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;color:rgba(0,0,0,.85)}.ui.items>.item>.content>.header:not(.ui){font-size:1.28571429em}.ui.items>.item [class*="left floated"]{float:left}.ui.items>.item [class*="right floated"]{float:right}.ui.items>.item .content img{align-self:middle;width:""}.ui.items>.item .avatar img,.ui.items>.item img.avatar{width:"";height:"";border-radius:500rem}.ui.items>.item>.content>.description{margin-top:.6em;max-width:auto;font-size:1em;line-height:1.4285em;color:rgba(0,0,0,.87)}.ui.items>.item>.content p{margin:0 0 .5em}.ui.items>.item>.content p:last-child{margin-bottom:0}.ui.items>.item .meta{margin:.5em 0;font-size:1em;line-height:1em;color:rgba(0,0,0,.6)}.ui.items>.item .meta *{margin-right:.3em}.ui.items>.item .meta :last-child{margin-right:0}.ui.items>.item .meta [class*="right floated"]{margin-right:0;margin-left:.3em}.ui.items>.item>.content a:not(.ui){color:"";transition:color .1s ease}.ui.items>.item>.content a:not(.ui):hover{color:""}.ui.items>.item>.content>a.header{color:rgba(0,0,0,.85)}.ui.items>.item>.content>a.header:hover{color:#3277b2}.ui.items>.item .meta>a:not(.ui){color:rgba(0,0,0,.4)}.ui.items>.item .meta>a:not(.ui):hover{color:rgba(0,0,0,.87)}.ui.items>.item>.content .favorite.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.items>.item>.content .favorite.icon:hover{opacity:1;color:#ffb70a}.ui.items>.item>.content .active.favorite.icon{color:#ffe623}.ui.items>.item>.content .like.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.items>.item>.content .like.icon:hover{opacity:1;color:#ff2733}.ui.items>.item>.content .active.like.icon{color:#ff2733}.ui.items>.item .extra{display:block;position:relative;background:none;margin:.5rem 0 0;width:100%;padding:0;top:0;left:0;color:rgba(0,0,0,.4);box-shadow:none;transition:color .1s ease;border-top:none}.ui.items>.item .extra>*{margin:.25rem .5rem .25rem 0}.ui.items>.item .extra>[class*="right floated"]{margin:.25rem 0 .25rem .5rem}.ui.items>.item .extra:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image:not(.ui){width:175px}@media only screen and (min-width:768px) and (max-width:991px){.ui.items>.item{margin:1em 0}.ui.items>.item>.image:not(.ui){width:150px}.ui.items>.item>.image+.content{display:block;padding:0 0 0 1em}}@media only screen and (max-width:767px){.ui.items:not(.unstackable)>.item{flex-direction:column;margin:2em 0}.ui.items:not(.unstackable)>.item>.image{display:block;margin-left:auto;margin-right:auto}.ui.items:not(.unstackable)>.item>.image,.ui.items:not(.unstackable)>.item>.image>img{max-width:100%!important;width:auto!important;max-height:250px!important}.ui.items:not(.unstackable)>.item>.image+.content{display:block;padding:1.5em 0 0}}.ui.items>.item>.image+[class*="top aligned"].content{align-self:flex-start}.ui.items>.item>.image+[class*="middle aligned"].content{align-self:center}.ui.items>.item>.image+[class*="bottom aligned"].content{align-self:flex-end}.ui.relaxed.items>.item{margin:1.5em 0}.ui[class*="very relaxed"].items>.item{margin:2em 0}.ui.divided.items>.item{border-top:1px solid rgba(34,36,38,.15);margin:0;padding:1em 0}.ui.divided.items>.item:first-child{border-top:none;margin-top:0!important;padding-top:0!important}.ui.divided.items>.item:last-child{margin-bottom:0!important;padding-bottom:0!important}.ui.relaxed.divided.items>.item{margin:0;padding:1.5em 0}.ui[class*="very relaxed"].divided.items>.item{margin:0;padding:2em 0}.ui.items a.item:hover,.ui.link.items>.item:hover{cursor:pointer}.ui.items a.item:hover .content .header,.ui.link.items>.item:hover .content .header{color:#3277b2}.ui.items>.item{font-size:1em}@media only screen and (max-width:767px){.ui.unstackable.items>.item>.image,.ui.unstackable.items>.item>.image>img{width:125px!important}}
/*!
 * # Semantic UI - Statistic
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.statistic{display:inline-flex;flex-direction:column;margin:1em 0;max-width:auto}.ui.statistic+.ui.statistic{margin:0 0 0 1.4em}.ui.statistic:first-child{margin-top:0}.ui.statistic:last-child{margin-bottom:0}.ui.statistics{align-items:flex-start;flex-wrap:wrap}.ui.statistics>.statistic{display:inline-flex;flex:0 1 auto;flex-direction:column;margin:0 0 1em 1.4em;max-width:auto}.ui.statistics{display:flex;margin:1em -1.4em -1em}.ui.statistics:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.statistics:first-child{margin-top:0}.ui.statistic>.value,.ui.statistics .statistic>.value{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1.8em;font-weight:400;line-height:1em;color:#1b1c1d;text-transform:uppercase;text-align:left}.ui.statistic>.label,.ui.statistics .statistic>.label{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.9em;font-weight:700;color:rgba(0,0,0,.87);text-transform:uppercase;text-align:left}.ui.statistic>.label~.value,.ui.statistic>.value~.label,.ui.statistics .statistic>.label~.value,.ui.statistics .statistic>.value~.label{margin-top:0}.ui.statistic>.value .icon,.ui.statistics .statistic>.value .icon{opacity:1;width:auto;margin:0}.ui.statistic>.text.value,.ui.statistics .statistic>.text.value{line-height:1em;min-height:2em;font-weight:700;text-align:center}.ui.statistic>.text.value+.label,.ui.statistics .statistic>.text.value+.label{text-align:center}.ui.statistic>.value img,.ui.statistics .statistic>.value img{max-height:42px;max-height:3rem;vertical-align:baseline}.ui.ten.statistics{margin:0 0 -1em}.ui.ten.statistics .statistic{min-width:10%;margin:0 0 1em}.ui.nine.statistics{margin:0 0 -1em}.ui.nine.statistics .statistic{min-width:11.11111111%;margin:0 0 1em}.ui.eight.statistics{margin:0 0 -1em}.ui.eight.statistics .statistic{min-width:12.5%;margin:0 0 1em}.ui.seven.statistics{margin:0 0 -1em}.ui.seven.statistics .statistic{min-width:14.28571429%;margin:0 0 1em}.ui.six.statistics{margin:0 0 -1em}.ui.six.statistics .statistic{min-width:16.66666667%;margin:0 0 1em}.ui.five.statistics{margin:0 0 -1em}.ui.five.statistics .statistic{min-width:20%;margin:0 0 1em}.ui.four.statistics{margin:0 0 -1em}.ui.four.statistics .statistic{min-width:25%;margin:0 0 1em}.ui.three.statistics{margin:0 0 -1em}.ui.three.statistics .statistic{min-width:33.33333333%;margin:0 0 1em}.ui.two.statistics{margin:0 0 -1em}.ui.two.statistics .statistic{min-width:50%;margin:0 0 1em}.ui.one.statistics{margin:0 0 -1em}.ui.one.statistics .statistic{min-width:100%;margin:0 0 1em}.ui.horizontal.statistic{flex-direction:row;align-items:center}.ui.horizontal.statistics{flex-direction:column;margin:0;max-width:none}.ui.horizontal.statistics .statistic{flex-direction:row;align-items:center;max-width:none;margin:1em 0}.ui.horizontal.statistic>.text.value,.ui.horizontal.statistics>.statistic>.text.value{min-height:0!important}.ui.horizontal.statistic>.value .icon,.ui.horizontal.statistics .statistic>.value .icon{width:1.18em}.ui.horizontal.statistic>.value,.ui.horizontal.statistics .statistic>.value{display:inline-block;vertical-align:middle}.ui.horizontal.statistic>.label,.ui.horizontal.statistics .statistic>.label{display:inline-block;vertical-align:middle;margin:0 0 0 .75em}.ui.red.statistic>.value,.ui.red.statistics .statistic>.value,.ui.statistics .red.statistic>.value{color:#db2828}.ui.orange.statistic>.value,.ui.orange.statistics .statistic>.value,.ui.statistics .orange.statistic>.value{color:#f2711c}.ui.statistics .yellow.statistic>.value,.ui.yellow.statistic>.value,.ui.yellow.statistics .statistic>.value{color:#fbbd08}.ui.olive.statistic>.value,.ui.olive.statistics .statistic>.value,.ui.statistics .olive.statistic>.value{color:#b5cc18}.ui.green.statistic>.value,.ui.green.statistics .statistic>.value,.ui.statistics .green.statistic>.value{color:#21ba45}.ui.statistics .teal.statistic>.value,.ui.teal.statistic>.value,.ui.teal.statistics .statistic>.value{color:#00b5ad}.ui.blue.statistic>.value,.ui.blue.statistics .statistic>.value,.ui.statistics .blue.statistic>.value{color:#2c6a9e}.ui.statistics .violet.statistic>.value,.ui.violet.statistic>.value,.ui.violet.statistics .statistic>.value{color:#6435c9}.ui.purple.statistic>.value,.ui.purple.statistics .statistic>.value,.ui.statistics .purple.statistic>.value{color:#a333c8}.ui.pink.statistic>.value,.ui.pink.statistics .statistic>.value,.ui.statistics .pink.statistic>.value{color:#e03997}.ui.brown.statistic>.value,.ui.brown.statistics .statistic>.value,.ui.statistics .brown.statistic>.value{color:#a5673f}.ui.grey.statistic>.value,.ui.grey.statistics .statistic>.value,.ui.statistics .grey.statistic>.value{color:#767676}.ui.inverted.statistic .value,.ui.inverted.statistics .statistic>.value{color:#fff}.ui.inverted.statistic .label,.ui.inverted.statistics .statistic>.label{color:hsla(0,0%,100%,.9)}.ui.inverted.red.statistic>.value,.ui.inverted.red.statistics .statistic>.value,.ui.statistics .inverted.red.statistic>.value{color:#ff695e}.ui.inverted.orange.statistic>.value,.ui.inverted.orange.statistics .statistic>.value,.ui.statistics .inverted.orange.statistic>.value{color:#ff851b}.ui.inverted.yellow.statistic>.value,.ui.inverted.yellow.statistics .statistic>.value,.ui.statistics .inverted.yellow.statistic>.value{color:#ffe21f}.ui.inverted.olive.statistic>.value,.ui.inverted.olive.statistics .statistic>.value,.ui.statistics .inverted.olive.statistic>.value{color:#d9e778}.ui.inverted.green.statistic>.value,.ui.inverted.green.statistics .statistic>.value,.ui.statistics .inverted.green.statistic>.value{color:#2ecc40}.ui.inverted.teal.statistic>.value,.ui.inverted.teal.statistics .statistic>.value,.ui.statistics .inverted.teal.statistic>.value{color:#6dffff}.ui.inverted.blue.statistic>.value,.ui.inverted.blue.statistics .statistic>.value,.ui.statistics .inverted.blue.statistic>.value{color:#5391c5}.ui.inverted.violet.statistic>.value,.ui.inverted.violet.statistics .statistic>.value,.ui.statistics .inverted.violet.statistic>.value{color:#a291fb}.ui.inverted.purple.statistic>.value,.ui.inverted.purple.statistics .statistic>.value,.ui.statistics .inverted.purple.statistic>.value{color:#dc73ff}.ui.inverted.pink.statistic>.value,.ui.inverted.pink.statistics .statistic>.value,.ui.statistics .inverted.pink.statistic>.value{color:#ff8edf}.ui.inverted.brown.statistic>.value,.ui.inverted.brown.statistics .statistic>.value,.ui.statistics .inverted.brown.statistic>.value{color:#d67c1c}.ui.inverted.grey.statistic>.value,.ui.inverted.grey.statistics .statistic>.value,.ui.statistics .inverted.grey.statistic>.value{color:#dcddde}.ui[class*="left floated"].statistic{float:left;margin:0 2em 1em 0}.ui[class*="right floated"].statistic{float:right;margin:0 0 1em 2em}.ui.floated.statistic:last-child{margin-bottom:0}.ui.mini.horizontal.statistic>.value,.ui.mini.horizontal.statistics .statistic>.value,.ui.mini.statistic>.value,.ui.mini.statistics .statistic>.value{font-size:21px!important;font-size:1.5rem!important}.ui.mini.statistic>.text.value,.ui.mini.statistics .statistic>.text.value{font-size:14px!important;font-size:1rem!important}.ui.tiny.horizontal.statistic>.value,.ui.tiny.horizontal.statistics .statistic>.value,.ui.tiny.statistic>.value,.ui.tiny.statistics .statistic>.value{font-size:28px!important;font-size:2rem!important}.ui.tiny.statistic>.text.value,.ui.tiny.statistics .statistic>.text.value{font-size:14px!important;font-size:1rem!important}.ui.small.statistic>.value,.ui.small.statistics .statistic>.value{font-size:42px!important;font-size:3rem!important}.ui.small.horizontal.statistic>.value,.ui.small.horizontal.statistics .statistic>.value{font-size:28px!important;font-size:2rem!important}.ui.small.statistic>.text.value,.ui.small.statistics .statistic>.text.value{font-size:14px!important;font-size:1rem!important}.ui.statistic>.value,.ui.statistics .statistic>.value{font-size:1.8em!important}.ui.horizontal.statistic>.value,.ui.horizontal.statistics .statistic>.value{font-size:42px!important;font-size:3rem!important}.ui.statistic>.text.value,.ui.statistics .statistic>.text.value{font-size:28px!important;font-size:2rem!important}.ui.large.statistic>.value,.ui.large.statistics .statistic>.value{font-size:70px!important;font-size:5rem!important}.ui.large.horizontal.statistic>.value,.ui.large.horizontal.statistics .statistic>.value{font-size:56px!important;font-size:4rem!important}.ui.large.statistic>.text.value,.ui.large.statistics .statistic>.text.value{font-size:35px!important;font-size:2.5rem!important}.ui.huge.statistic>.value,.ui.huge.statistics .statistic>.value{font-size:84px!important;font-size:6rem!important}.ui.huge.horizontal.statistic>.value,.ui.huge.horizontal.statistics .statistic>.value{font-size:70px!important;font-size:5rem!important}.ui.huge.statistic>.text.value,.ui.huge.statistics .statistic>.text.value{font-size:35px!important;font-size:2.5rem!important}
/*!
 * # Semantic UI - Accordion
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.accordion,.ui.accordion .accordion{max-width:100%}.ui.accordion .accordion{margin:1em 0 0;padding:0}.ui.accordion .accordion .title,.ui.accordion .title{cursor:pointer}.ui.accordion .title:not(.ui){padding:.5em 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1em;color:rgba(0,0,0,.87)}.ui.accordion .accordion .title~.content,.ui.accordion .title~.content{display:none}.ui.accordion:not(.styled) .accordion .title~.content:not(.ui),.ui.accordion:not(.styled) .title~.content:not(.ui){margin:"";padding:.5em 0 1em}.ui.accordion:not(.styled) .title~.content:not(.ui):last-child{padding-bottom:0}.ui.accordion .accordion .title .dropdown.icon,.ui.accordion .title .dropdown.icon{display:inline-block;float:none;opacity:1;width:1.25em;height:1em;margin:0 .25rem 0 0;padding:0;font-size:1em;transition:transform .1s ease,opacity .1s ease;vertical-align:baseline;transform:none}.ui.accordion.menu .item .title{display:block;padding:0}.ui.accordion.menu .item .title>.dropdown.icon{float:right;margin:.21425em 0 0 1em;transform:rotate(180deg)}.ui.accordion .ui.header .dropdown.icon{font-size:1em;margin:0 .25rem 0 0}.ui.accordion .accordion .active.title .dropdown.icon,.ui.accordion .active.title .dropdown.icon,.ui.accordion.menu .item .active.title>.dropdown.icon{transform:rotate(90deg)}.ui.styled.accordion{width:600px}.ui.styled.accordion,.ui.styled.accordion .accordion{border-radius:.21428571rem;background:#fff;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15)}.ui.styled.accordion .accordion .title,.ui.styled.accordion .title{margin:0;padding:.75em 1em;color:rgba(0,0,0,.4);font-weight:700;border-top:1px solid rgba(34,36,38,.15);transition:background .1s ease,color .1s ease}.ui.styled.accordion .accordion .title:first-child,.ui.styled.accordion>.title:first-child{border-top:none}.ui.styled.accordion .accordion .content,.ui.styled.accordion .content{margin:0;padding:.5em 1em 1.5em}.ui.styled.accordion .accordion .content{padding:.5em 1em 1.5em}.ui.styled.accordion .accordion .active.title,.ui.styled.accordion .accordion .title:hover,.ui.styled.accordion .active.title,.ui.styled.accordion .title:hover{background:transparent;color:rgba(0,0,0,.87)}.ui.styled.accordion .accordion .active.title,.ui.styled.accordion .active.title{background:transparent;color:rgba(0,0,0,.95)}.ui.accordion .accordion .active.content,.ui.accordion .active.content{display:block}.ui.fluid.accordion,.ui.fluid.accordion .accordion{width:100%}.ui.inverted.accordion .title:not(.ui){color:hsla(0,0%,100%,.9)}@font-face{font-family:Accordion;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfOIKAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zryj6HgAAAFwAAAAyGhlYWT/0IhHAAACOAAAADZoaGVhApkB5wAAAnAAAAAkaG10eAJuABIAAAKUAAAAGGxvY2EAjABWAAACrAAAAA5tYXhwAAgAFgAAArwAAAAgbmFtZfC1n04AAALcAAABPHBvc3QAAwAAAAAEGAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQASAEkAtwFuABMAADc0PwE2FzYXFh0BFAcGJwYvASY1EgaABQgHBQYGBQcIBYAG2wcGfwcBAQcECf8IBAcBAQd/BgYAAAAAAQAAAEkApQFuABMAADcRNDc2MzIfARYVFA8BBiMiJyY1AAUGBwgFgAYGgAUIBwYFWwEACAUGBoAFCAcFgAYGBQcAAAABAAAAAQAAqWYls18PPPUACwIAAAAAAM/9o+4AAAAAz/2j7gAAAAAAtwFuAAAACAACAAAAAAAAAAEAAAHg/+AAAAIAAAAAAAC3AAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAQAAAAC3ABIAtwAAAAAAAAAKABQAHgBCAGQAAAABAAAABgAUAAEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAASwAAoAAAAABGgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAS0AAAEtFpovuE9TLzIAAAIkAAAAYAAAAGAIIweQY21hcAAAAoQAAABMAAAATA984gpnYXNwAAAC0AAAAAgAAAAIAAAAEGhlYWQAAALYAAAANgAAADb/0IhHaGhlYQAAAxAAAAAkAAAAJAKZAedobXR4AAADNAAAABgAAAAYAm4AEm1heHAAAANMAAAABgAAAAYABlAAbmFtZQAAA1QAAAE8AAABPPC1n05wb3N0AAAEkAAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLa/iU+HQFHQAAAHkPHQAAAH4RHQAAAAkdAAABJBIABwEBBw0PERQZHnJhdGluZ3JhdGluZ3UwdTF1MjB1RjBEOXVGMERBAAACAYkABAAGAQEEBwoNVp38lA78lA78lA77lA773Z33bxWLkI2Qj44I9xT3FAWOj5CNkIuQi4+JjoePiI2Gi4YIi/uUBYuGiYeHiIiHh4mGi4aLho2Ijwj7FPcUBYeOiY+LkAgO+92L5hWL95QFi5CNkI6Oj4+PjZCLkIuQiY6HCPcU+xQFj4iNhouGi4aJh4eICPsU+xQFiIeGiYaLhouHjYePiI6Jj4uQCA74lBT4lBWLDAoAAAAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAADfYOJZfDzz1AAsCAAAAAADP/aPuAAAAAM/9o+4AAAAAALcBbgAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAAAtwABAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAEAAAAAtwASALcAAAAAUAAABgAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("woff");font-weight:400;font-style:normal}.ui.accordion .accordion .title .dropdown.icon,.ui.accordion .title .dropdown.icon{font-family:Accordion;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;font-weight:400;font-style:normal;text-align:center}.ui.accordion .accordion .title .dropdown.icon:before,.ui.accordion .title .dropdown.icon:before{content:"\f0da"}
/*!
 * # Semantic UI - Checkbox
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.checkbox{position:relative;display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:none;vertical-align:baseline;font-style:normal;min-height:17px;font-size:14px;font-size:1rem;line-height:17px;min-width:17px}.ui.checkbox input[type=checkbox],.ui.checkbox input[type=radio]{cursor:pointer;position:absolute;top:0;left:0;opacity:0!important;outline:none;z-index:3;width:17px;height:17px}.ui.checkbox .box,.ui.checkbox label{cursor:auto;position:relative;display:block;padding-left:1.85714em;outline:none;font-size:1em}.ui.checkbox .box:before,.ui.checkbox label:before{content:"";background:#fff;border-radius:.21428571rem;border:1px solid #d4d4d5}.ui.checkbox .box:after,.ui.checkbox .box:before,.ui.checkbox label:after,.ui.checkbox label:before{position:absolute;top:0;left:0;width:17px;height:17px;transition:border .1s ease,opacity .1s ease,transform .1s ease,box-shadow .1s ease}.ui.checkbox .box:after,.ui.checkbox label:after{font-size:14px;text-align:center;opacity:0;color:rgba(0,0,0,.87)}.ui.checkbox+label,.ui.checkbox label{color:rgba(0,0,0,.87);transition:color .1s ease}.ui.checkbox+label{vertical-align:middle}.ui.checkbox .box:hover:before,.ui.checkbox label:hover:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox+label:hover,.ui.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.checkbox .box:active:before,.ui.checkbox label:active:before{background:#f9fafb;border-color:rgba(34,36,38,.35)}.ui.checkbox .box:active:after,.ui.checkbox input:active~label,.ui.checkbox label:active:after{color:rgba(0,0,0,.95)}.ui.checkbox input:focus~.box:before,.ui.checkbox input:focus~label:before{background:#fff;border-color:#96c8da}.ui.checkbox input:focus~.box:after,.ui.checkbox input:focus~label,.ui.checkbox input:focus~label:after{color:rgba(0,0,0,.95)}.ui.checkbox input:checked~.box:before,.ui.checkbox input:checked~label:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{opacity:1;color:rgba(0,0,0,.95)}.ui.checkbox input:not([type=radio]):indeterminate~.box:before,.ui.checkbox input:not([type=radio]):indeterminate~label:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox input:not([type=radio]):indeterminate~.box:after,.ui.checkbox input:not([type=radio]):indeterminate~label:after{opacity:1;color:rgba(0,0,0,.95)}.ui.checkbox input:checked:focus~.box:before,.ui.checkbox input:checked:focus~label:before,.ui.checkbox input:not([type=radio]):indeterminate:focus~.box:before,.ui.checkbox input:not([type=radio]):indeterminate:focus~label:before{background:#fff;border-color:#96c8da}.ui.checkbox input:checked:focus~.box:after,.ui.checkbox input:checked:focus~label:after,.ui.checkbox input:not([type=radio]):indeterminate:focus~.box:after,.ui.checkbox input:not([type=radio]):indeterminate:focus~label:after{color:rgba(0,0,0,.95)}.ui.read-only.checkbox,.ui.read-only.checkbox label{cursor:default}.ui.checkbox input[disabled]~.box:after,.ui.checkbox input[disabled]~label,.ui.disabled.checkbox .box:after,.ui.disabled.checkbox label{cursor:default!important;opacity:.5;color:#000}.ui.checkbox input.hidden{z-index:-1}.ui.checkbox input.hidden+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.radio.checkbox{min-height:15px}.ui.radio.checkbox .box,.ui.radio.checkbox label{padding-left:1.85714em}.ui.radio.checkbox .box:before,.ui.radio.checkbox label:before{content:"";transform:none;width:15px;height:15px;border-radius:500rem;top:1px;left:0}.ui.radio.checkbox .box:after,.ui.radio.checkbox label:after{border:none;content:""!important;line-height:15px;top:1px;left:0;width:15px;height:15px;border-radius:500rem;transform:scale(.46666667);background-color:rgba(0,0,0,.87)}.ui.radio.checkbox input:focus~.box:before,.ui.radio.checkbox input:focus~label:before{background-color:#fff}.ui.radio.checkbox input:focus~.box:after,.ui.radio.checkbox input:focus~label:after{background-color:rgba(0,0,0,.95)}.ui.radio.checkbox input:indeterminate~.box:after,.ui.radio.checkbox input:indeterminate~label:after{opacity:0}.ui.radio.checkbox input:checked~.box:before,.ui.radio.checkbox input:checked~label:before{background-color:#fff}.ui.radio.checkbox input:checked~.box:after,.ui.radio.checkbox input:checked~label:after{background-color:rgba(0,0,0,.95)}.ui.radio.checkbox input:focus:checked~.box:before,.ui.radio.checkbox input:focus:checked~label:before{background-color:#fff}.ui.radio.checkbox input:focus:checked~.box:after,.ui.radio.checkbox input:focus:checked~label:after{background-color:rgba(0,0,0,.95)}.ui.slider.checkbox{min-height:17.5px;min-height:1.25rem}.ui.slider.checkbox input{width:49px;width:3.5rem;height:17.5px;height:1.25rem}.ui.slider.checkbox .box,.ui.slider.checkbox label{padding-left:4.5rem;line-height:14px;line-height:1rem;color:rgba(0,0,0,.4)}.ui.slider.checkbox .box:before,.ui.slider.checkbox label:before{display:block;position:absolute;content:"";border:none!important;left:0;z-index:1;top:5.6px;top:.4rem;background-color:rgba(0,0,0,.05);width:49px;width:3.5rem;height:2.999px;height:.21428571rem;transform:none;border-radius:500rem;transition:background .3s ease}.ui.slider.checkbox .box:after,.ui.slider.checkbox label:after{background:#fff linear-gradient(transparent,rgba(0,0,0,.05));position:absolute;content:""!important;opacity:1;z-index:2;border:none;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15);width:21px;width:1.5rem;height:21px;height:1.5rem;top:-3.5px;top:-.25rem;left:0;transform:none;border-radius:500rem;transition:left .3s ease}.ui.slider.checkbox input:focus~.box:before,.ui.slider.checkbox input:focus~label:before{background-color:rgba(0,0,0,.15);border:none}.ui.slider.checkbox .box:hover,.ui.slider.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.slider.checkbox .box:hover:before,.ui.slider.checkbox label:hover:before{background:rgba(0,0,0,.15)}.ui.slider.checkbox input:checked~.box,.ui.slider.checkbox input:checked~label{color:rgba(0,0,0,.95)!important}.ui.slider.checkbox input:checked~.box:before,.ui.slider.checkbox input:checked~label:before{background-color:#545454!important}.ui.slider.checkbox input:checked~.box:after,.ui.slider.checkbox input:checked~label:after{left:28px;left:2rem}.ui.slider.checkbox input:focus:checked~.box,.ui.slider.checkbox input:focus:checked~label{color:rgba(0,0,0,.95)!important}.ui.slider.checkbox input:focus:checked~.box:before,.ui.slider.checkbox input:focus:checked~label:before{background-color:#000!important}.ui.toggle.checkbox{min-height:21px;min-height:1.5rem}.ui.toggle.checkbox input{width:49px;width:3.5rem;height:21px;height:1.5rem}.ui.toggle.checkbox .box,.ui.toggle.checkbox label{min-height:21px;min-height:1.5rem;padding-left:4.5rem;color:rgba(0,0,0,.87)}.ui.toggle.checkbox label{padding-top:.15em}.ui.toggle.checkbox .box:before,.ui.toggle.checkbox label:before{display:block;position:absolute;content:"";z-index:1;transform:none;border:none;top:0;background:rgba(0,0,0,.05);box-shadow:none;width:49px;width:3.5rem;height:21px;height:1.5rem;border-radius:500rem}.ui.toggle.checkbox .box:after,.ui.toggle.checkbox label:after{background:#fff linear-gradient(transparent,rgba(0,0,0,.05));position:absolute;content:""!important;opacity:1;z-index:2;border:none;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15);width:21px;width:1.5rem;height:21px;height:1.5rem;top:0;left:0;border-radius:500rem;transition:background .3s ease,left .3s ease}.ui.toggle.checkbox input~.box:after,.ui.toggle.checkbox input~label:after{left:-.7px;left:-.05rem;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15)}.ui.toggle.checkbox .box:hover:before,.ui.toggle.checkbox input:focus~.box:before,.ui.toggle.checkbox input:focus~label:before,.ui.toggle.checkbox label:hover:before{background-color:rgba(0,0,0,.15);border:none}.ui.toggle.checkbox input:checked~.box,.ui.toggle.checkbox input:checked~label{color:rgba(0,0,0,.95)!important}.ui.toggle.checkbox input:checked~.box:before,.ui.toggle.checkbox input:checked~label:before{background-color:#2c6a9e!important}.ui.toggle.checkbox input:checked~.box:after,.ui.toggle.checkbox input:checked~label:after{left:30.099px;left:2.15rem;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15)}.ui.toggle.checkbox input:focus:checked~.box,.ui.toggle.checkbox input:focus:checked~label{color:rgba(0,0,0,.95)!important}.ui.toggle.checkbox input:focus:checked~.box:before,.ui.toggle.checkbox input:focus:checked~label:before{background-color:#1a5587!important}.ui.fitted.checkbox .box,.ui.fitted.checkbox label{padding-left:0!important}.ui.fitted.slider.checkbox,.ui.fitted.toggle.checkbox{width:49px;width:3.5rem}@font-face{font-family:Checkbox;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("truetype")}.ui.checkbox .box:after,.ui.checkbox label:after{font-family:Checkbox}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{content:"\e800"}.ui.checkbox input:indeterminate~.box:after,.ui.checkbox input:indeterminate~label:after{font-size:12px;content:"\e801"}
/*!
 * # Semantic UI - Dimmer
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.dimmable:not(body){position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;left:0!important;width:100%;height:100%;text-align:center;vertical-align:middle;padding:1em;background-color:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;animation-duration:.5s;transition:background-color .5s linear;flex-direction:column;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:opacity;z-index:1000}.ui.dimmer>.content{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;color:#fff}.ui.segment>.ui.dimmer{border-radius:inherit!important}.ui.dimmer:not(.inverted)::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive{background:hsla(0,0%,100%,.15)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.35)}.animating.dimmable:not(body),.dimmed.dimmable:not(body){overflow:hidden}.dimmed.dimmable>.ui.animating.dimmer,.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:flex;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.dimmed.dimmable>.ui.animating.legacy.dimmer,.dimmed.dimmable>.ui.visible.legacy.dimmer,.ui.active.legacy.dimmer{display:block}.ui[class*="top aligned"].dimmer{justify-content:flex-start}.ui[class*="bottom aligned"].dimmer{justify-content:flex-end}.ui.page.dimmer{position:fixed;transform-style:"";perspective:2000px;transform-origin:center center}body.animating.in.dimmable,body.dimmed.dimmable{overflow:hidden}body.dimmable>.dimmer{position:fixed}.blurring.dimmable>:not(.dimmer){filter:blur(0) grayscale(0);transition:filter .8s ease}.blurring.dimmed.dimmable>:not(.dimmer){filter:blur(5px) grayscale(.7)}.blurring.dimmable>.dimmer{background-color:rgba(0,0,0,.6)}.blurring.dimmable>.inverted.dimmer{background-color:hsla(0,0%,100%,.6)}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.ui.inverted.dimmer{background-color:hsla(0,0%,100%,.85)}.ui.inverted.dimmer>.content>*{color:#fff}.ui.simple.dimmer{display:block;overflow:hidden;opacity:1;width:0;height:0%;z-index:-100;background-color:transparent}.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background-color:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background-color:hsla(0,0%,100%,0)}.dimmed.dimmable>.ui.simple.inverted.dimmer{background-color:hsla(0,0%,100%,.85)}
/*!
 * # Semantic UI - Dropdown
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.dropdown{cursor:pointer;position:relative;display:inline-block;outline:none;text-align:left;transition:box-shadow .1s ease,width .1s ease;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui.dropdown .menu{cursor:auto;position:absolute;display:none;outline:none;top:100%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;margin:0;padding:0;background:#fff;font-size:1em;text-shadow:none;text-align:left;box-shadow:0 2px 3px 0 rgba(34,36,38,.15);border:1px solid rgba(34,36,38,.15);border-radius:.21428571rem;transition:opacity .1s ease;z-index:11;will-change:transform,opacity}.ui.dropdown .menu>*{white-space:nowrap}.ui.dropdown>input:not(.search):first-child,.ui.dropdown>select{display:none!important}.ui.dropdown>.dropdown.icon{position:relative;font-size:.85714286em;margin:0 0 0 1em}.ui.dropdown .menu>.item .dropdown.icon{width:auto;float:right;margin:0 0 0 1em}.ui.dropdown .menu>.item .dropdown.icon+.text{margin-right:1em}.ui.dropdown>.text{display:inline-block;transition:none}.ui.dropdown .menu>.item{position:relative;cursor:pointer;display:block;height:auto;text-align:left;border:none;line-height:1em;color:rgba(0,0,0,.87);padding:.78571429rem 1.14285714rem!important;font-size:14px;font-size:1rem;text-transform:none;font-weight:400;box-shadow:none;-webkit-touch-callout:none}.ui.dropdown .menu>.item:first-child{border-top-width:0}.ui.dropdown .menu .item>[class*="right floated"],.ui.dropdown>.text>[class*="right floated"]{float:right!important;margin-right:0!important;margin-left:1em!important}.ui.dropdown .menu .item>[class*="left floated"],.ui.dropdown>.text>[class*="left floated"]{float:left!important;margin-left:0!important;margin-right:1em!important}.ui.dropdown .menu .item>.flag.floated,.ui.dropdown .menu .item>.icon.floated,.ui.dropdown .menu .item>.image.floated,.ui.dropdown .menu .item>img.floated{margin-top:0}.ui.dropdown .menu>.header{margin:1rem 0 .75rem;padding:0 1.14285714rem;color:rgba(0,0,0,.85);font-size:.78571429em;font-weight:700;text-transform:uppercase}.ui.dropdown .menu>.divider{border-top:1px solid rgba(34,36,38,.1);height:0;margin:.5em 0}.ui.dropdown.dropdown .menu>.input{width:auto;display:flex;margin:1.14285714rem .78571429rem;min-width:140px;min-width:10rem}.ui.dropdown .menu>.header+.input{margin-top:0}.ui.dropdown .menu>.input:not(.transparent) input{padding:.5em 1em}.ui.dropdown .menu>.input:not(.transparent) .button,.ui.dropdown .menu>.input:not(.transparent) .icon,.ui.dropdown .menu>.input:not(.transparent) .label{padding-top:.5em;padding-bottom:.5em}.ui.dropdown .menu>.item>.description,.ui.dropdown>.text>.description{float:right;margin:0 0 0 1em;color:rgba(0,0,0,.4)}.ui.dropdown .menu>.message{padding:.78571429rem 1.14285714rem;font-weight:400}.ui.dropdown .menu>.message:not(.ui){color:rgba(0,0,0,.4)}.ui.dropdown .menu .menu{top:0!important;left:100%;right:auto;margin:0 0 0 -.5em!important;border-radius:.21428571rem!important;z-index:21!important}.ui.dropdown .menu .menu:after{display:none}.ui.dropdown .menu>.item>.flag,.ui.dropdown .menu>.item>.icon,.ui.dropdown .menu>.item>.image,.ui.dropdown .menu>.item>.label,.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.flag,.ui.dropdown>.text>.icon,.ui.dropdown>.text>.image,.ui.dropdown>.text>.label,.ui.dropdown>.text>img{margin-top:0}.ui.dropdown .menu>.item>.flag,.ui.dropdown .menu>.item>.icon,.ui.dropdown .menu>.item>.image,.ui.dropdown .menu>.item>.label,.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.flag,.ui.dropdown>.text>.icon,.ui.dropdown>.text>.image,.ui.dropdown>.text>.label,.ui.dropdown>.text>img{margin-left:0;float:none;margin-right:.78571429rem}.ui.dropdown .menu>.item>.image,.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.image,.ui.dropdown>.text>img{display:inline-block;vertical-align:top;width:auto;margin-top:-.5em;margin-bottom:-.5em;max-height:2em}.ui.dropdown .ui.menu>.item:before,.ui.menu .ui.dropdown .menu>.item:before{display:none}.ui.menu .ui.dropdown .menu .active.item{border-left:none}.ui.buttons>.ui.dropdown:last-child .menu,.ui.menu .right.dropdown.item .menu,.ui.menu .right.menu .dropdown:last-child .menu{left:auto;right:0}.ui.label.dropdown .menu{min-width:100%}.ui.dropdown.icon.button>.dropdown.icon{margin:0}.ui.button.dropdown .menu{min-width:100%}.ui.selection.dropdown{cursor:pointer;word-wrap:break-word;line-height:1em;white-space:normal;outline:0;transform:rotate(0deg);min-width:14em;min-height:2.71428571em;background:#fff;display:inline-block;padding:.78571429em 2.1em .78571429em 1em;color:rgba(0,0,0,.87);box-shadow:none;border:1px solid rgba(34,36,38,.15);border-radius:.21428571rem;transition:box-shadow .1s ease,width .1s ease}.ui.selection.dropdown.active,.ui.selection.dropdown.visible{z-index:10}select.ui.dropdown{height:38px;padding:.5em;border:1px solid rgba(34,36,38,.15);visibility:visible}.ui.selection.dropdown>.delete.icon,.ui.selection.dropdown>.dropdown.icon,.ui.selection.dropdown>.search.icon{cursor:pointer;position:absolute;width:auto;height:auto;line-height:1.21428571em;top:.78571429em;right:1em;z-index:3;margin:-.78571429em;padding:.91666667em;opacity:.8;transition:opacity .1s ease}.ui.compact.selection.dropdown{min-width:0}.ui.selection.dropdown .menu{overflow-x:hidden;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch;border-top-width:0!important;width:auto;outline:none;margin:0 -1px;min-width:calc(100% + 2px);width:calc(100% + 2px);border-radius:0 0 .21428571rem .21428571rem;box-shadow:0 2px 3px 0 rgba(34,36,38,.15);transition:opacity .1s ease}.ui.selection.dropdown .menu:after,.ui.selection.dropdown .menu:before{display:none}.ui.selection.dropdown .menu>.message{padding:.78571429rem 1.14285714rem}@media only screen and (max-width:767px){.ui.selection.dropdown .menu{max-height:8.01428571rem}}@media only screen and (min-width:768px){.ui.selection.dropdown .menu{max-height:10.68571429rem}}@media only screen and (min-width:992px){.ui.selection.dropdown .menu{max-height:16.02857143rem}}@media only screen and (min-width:1920px){.ui.selection.dropdown .menu{max-height:21.37142857rem}}.ui.selection.dropdown .menu>.item{border-top:1px solid #fafafa;padding:.78571429rem 1.14285714rem!important;white-space:normal;word-wrap:normal}.ui.selection.dropdown .menu>.hidden.addition.item{display:none}.ui.selection.dropdown:hover{border-color:rgba(34,36,38,.35);box-shadow:none}.ui.selection.active.dropdown,.ui.selection.active.dropdown .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.selection.dropdown:focus{border-color:#96c8da;box-shadow:none}.ui.selection.dropdown:focus .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.selection.visible.dropdown>.text:not(.default){font-weight:400;color:rgba(0,0,0,.8)}.ui.selection.active.dropdown:hover,.ui.selection.active.dropdown:hover .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.active.selection.dropdown>.dropdown.icon,.ui.visible.selection.dropdown>.dropdown.icon{opacity:"";z-index:3}.ui.active.selection.dropdown{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ui.active.empty.selection.dropdown{border-radius:.21428571rem!important;box-shadow:none!important}.ui.active.empty.selection.dropdown .menu{border:none!important;box-shadow:none!important}.ui.search.dropdown{min-width:""}.ui.search.dropdown>input.search{background:none transparent!important;border:none!important;box-shadow:none!important;cursor:text;top:0;left:1px;width:100%;outline:none;-webkit-tap-highlight-color:rgba(255,255,255,0);padding:inherit;position:absolute;z-index:2}.ui.search.dropdown>.text{cursor:text;position:relative;left:1px;z-index:3}.ui.search.selection.dropdown>input.search,.ui.search.selection.dropdown>span.sizer{line-height:1.21428571em;padding:.67857143em 2.1em .67857143em 1em}.ui.search.selection.dropdown>span.sizer{display:none;white-space:pre}.ui.search.dropdown.active>input.search,.ui.search.dropdown.visible>input.search{cursor:auto}.ui.search.dropdown.active>.text,.ui.search.dropdown.visible>.text{pointer-events:none}.ui.active.search.dropdown input.search:focus+.text .flag,.ui.active.search.dropdown input.search:focus+.text .icon{opacity:.45}.ui.active.search.dropdown input.search:focus+.text{color:hsla(0,0%,45.1%,.87)!important}.ui.search.dropdown .menu{overflow-x:hidden;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch}@media only screen and (max-width:767px){.ui.search.dropdown .menu{max-height:8.01428571rem}}@media only screen and (min-width:768px){.ui.search.dropdown .menu{max-height:10.68571429rem}}@media only screen and (min-width:992px){.ui.search.dropdown .menu{max-height:16.02857143rem}}@media only screen and (min-width:1920px){.ui.search.dropdown .menu{max-height:21.37142857rem}}.ui.multiple.dropdown{padding:.22619048em 2.1em .22619048em .35714286em}.ui.multiple.dropdown .menu{cursor:auto}.ui.multiple.search.dropdown,.ui.multiple.search.dropdown>input.search{cursor:text}.ui.multiple.dropdown>.label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;vertical-align:top;white-space:normal;font-size:1em;padding:.35714286em .78571429em;margin:.14285714rem .28571429rem .14285714rem 0;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15)}.ui.multiple.dropdown .dropdown.icon{margin:"";padding:""}.ui.multiple.dropdown>.text{position:static;padding:0;max-width:100%;margin:.45238095em 0 .45238095em .64285714em;line-height:1.21428571em}.ui.multiple.dropdown>.label~input.search{margin-left:.14285714em!important}.ui.multiple.dropdown>.label~.text{display:none}.ui.multiple.search.dropdown>.text{display:inline-block;position:absolute;top:0;left:0;padding:inherit;margin:.45238095em 0 .45238095em .64285714em;line-height:1.21428571em}.ui.multiple.search.dropdown>.label~.text{display:none}.ui.multiple.search.dropdown>input.search{position:static;padding:0;max-width:100%;margin:.45238095em 0 .45238095em .64285714em;width:2.2em;line-height:1.21428571em}.ui.inline.dropdown{cursor:pointer;display:inline-block;color:inherit}.ui.inline.dropdown .dropdown.icon{margin:0 .21428571em;vertical-align:baseline}.ui.inline.dropdown>.text{font-weight:700}.ui.inline.dropdown .menu{cursor:auto;margin-top:.21428571em;border-radius:.21428571rem}.ui.dropdown .menu .active.item{background:transparent;font-weight:700;color:rgba(0,0,0,.95);box-shadow:none;z-index:12}.ui.dropdown .menu>.item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);z-index:13}.ui.loading.dropdown>i.icon{height:1em!important}.ui.loading.selection.dropdown>i.icon{padding:1.5em 1.28571429em!important}.ui.loading.dropdown>i.icon:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.dropdown>i.icon:after,.ui.loading.dropdown>i.icon:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.dropdown>i.icon:after{box-shadow:0 0 0 1px transparent;-webkit-animation:dropdown-spin .6s linear;animation:dropdown-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#767676}.ui.loading.dropdown.button>i.icon:after,.ui.loading.dropdown.button>i.icon:before{display:none}@-webkit-keyframes dropdown-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes dropdown-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui.default.dropdown:not(.button)>.text,.ui.dropdown:not(.button)>.default.text{color:hsla(0,0%,74.9%,.87)}.ui.default.dropdown:not(.button)>input:focus~.text,.ui.dropdown:not(.button)>input:focus~.default.text{color:hsla(0,0%,45.1%,.87)}.ui.loading.dropdown>.text{transition:none}.ui.dropdown .loading.menu{display:block;visibility:hidden;z-index:-1}.ui.dropdown>.loading.menu{left:0!important;right:auto!important}.ui.dropdown>.menu .loading.menu{left:100%!important;right:auto!important}.ui.dropdown .menu .selected.item,.ui.dropdown.selected{background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.dropdown>.filtered.text{visibility:hidden}.ui.dropdown .filtered.item{display:none!important}.ui.dropdown.error,.ui.dropdown.error>.default.text,.ui.dropdown.error>.text{color:#9f3a38}.ui.selection.dropdown.error{background:#fff6f6;border-color:#e0b4b4}.ui.dropdown.error>.menu,.ui.dropdown.error>.menu .menu,.ui.selection.dropdown.error:hover{border-color:#e0b4b4}.ui.dropdown.error>.menu>.item{color:#9f3a38}.ui.multiple.selection.error.dropdown>.label{border-color:#e0b4b4}.ui.dropdown.error>.menu>.item:hover{background-color:#fff2f2}.ui.dropdown.error>.menu .active.item{background-color:#fdcfcf}.ui.dropdown>.clear.dropdown.icon{opacity:.8;transition:opacity .1s ease}.ui.dropdown>.clear.dropdown.icon:hover{opacity:1}.ui.disabled.dropdown,.ui.dropdown .menu>.disabled.item{cursor:default;pointer-events:none;opacity:.45}.ui.dropdown .menu{left:0}.ui.dropdown .menu .right.menu,.ui.dropdown .right.menu>.menu{left:100%!important;right:auto!important;border-radius:.21428571rem!important}.ui.dropdown>.left.menu{left:auto!important;right:0!important}.ui.dropdown .menu .left.menu,.ui.dropdown>.left.menu .menu{left:auto;right:100%;margin:0 -.5em 0 0!important;border-radius:.21428571rem!important}.ui.dropdown .item .left.dropdown.icon,.ui.dropdown .left.menu .item .dropdown.icon{width:auto;float:left;margin:0}.ui.dropdown .item .left.dropdown.icon+.text,.ui.dropdown .left.menu .item .dropdown.icon+.text{margin-left:1em;margin-right:0}.ui.upward.dropdown>.menu{top:auto;bottom:100%;box-shadow:0 0 3px 0 rgba(0,0,0,.08);border-radius:.21428571rem .21428571rem 0 0}.ui.dropdown .upward.menu{top:auto!important;bottom:0!important}.ui.simple.upward.active.dropdown,.ui.simple.upward.dropdown:hover{border-radius:.21428571rem .21428571rem 0 0!important}.ui.upward.dropdown.button:not(.pointing):not(.floating).active{border-radius:.21428571rem .21428571rem 0 0}.ui.upward.selection.dropdown .menu{border-top-width:1px!important;border-bottom-width:0!important;box-shadow:0 -2px 3px 0 rgba(0,0,0,.08)}.ui.upward.selection.dropdown:hover{box-shadow:0 0 2px 0 rgba(0,0,0,.05)}.ui.active.upward.selection.dropdown,.ui.upward.selection.dropdown.visible{border-radius:0 0 .21428571rem .21428571rem!important}.ui.upward.selection.dropdown.visible{box-shadow:0 0 3px 0 rgba(0,0,0,.08)}.ui.upward.active.selection.dropdown:hover{box-shadow:0 0 3px 0 rgba(0,0,0,.05)}.ui.upward.active.selection.dropdown:hover .menu{box-shadow:0 -2px 3px 0 rgba(0,0,0,.08)}.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{overflow-x:hidden;overflow-y:auto}.ui.scrolling.dropdown .menu{overflow-x:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch}.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{overflow-y:auto;min-width:100%!important;width:auto!important}.ui.dropdown .scrolling.menu{position:static;box-shadow:none!important;border-radius:0!important;margin:0!important;border:none;border-top:1px solid rgba(34,36,38,.15)}.ui.dropdown .scrolling.menu .item:first-child,.ui.dropdown .scrolling.menu>.item.item.item,.ui.scrolling.dropdown .menu .item.item.item,.ui.scrolling.dropdown .menu .item:first-child{border-top:none}.ui.dropdown>.animating.menu .scrolling.menu,.ui.dropdown>.visible.menu .scrolling.menu{display:block}@media (-ms-high-contrast:none){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{min-width:83%}}@media only screen and (max-width:767px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:10.28571429rem}}@media only screen and (min-width:768px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:15.42857143rem}}@media only screen and (min-width:992px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:20.57142857rem}}@media only screen and (min-width:1920px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:20.57142857rem}}.ui.simple.dropdown .menu:after,.ui.simple.dropdown .menu:before{display:none}.ui.simple.dropdown .menu{position:absolute;display:block;overflow:hidden;top:-9999px!important;opacity:0;width:0;height:0;transition:opacity .1s ease}.ui.simple.active.dropdown,.ui.simple.dropdown:hover{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ui.simple.active.dropdown>.menu,.ui.simple.dropdown:hover>.menu{overflow:visible;width:auto;height:auto;top:100%!important;opacity:1}.ui.simple.dropdown:hover>.menu>.item:hover>.menu,.ui.simple.dropdown>.menu>.item:active>.menu{overflow:visible;width:auto;height:auto;top:0!important;left:100%!important;opacity:1}.ui.simple.disabled.dropdown:hover .menu{display:none;height:0;width:0;overflow:hidden}.ui.simple.visible.dropdown>.menu{display:block}.ui.fluid.dropdown{display:block;width:100%;min-width:0}.ui.fluid.dropdown>.dropdown.icon{float:right}.ui.floating.dropdown .menu{left:0;right:auto;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)!important;border-radius:.21428571rem!important}.ui.floating.dropdown>.menu{margin-top:.5em!important;border-radius:.21428571rem!important}.ui.pointing.dropdown>.menu{top:100%;margin-top:.78571429rem;border-radius:.21428571rem}.ui.pointing.dropdown>.menu:after{display:block;position:absolute;pointer-events:none;content:"";visibility:visible;transform:rotate(45deg);width:.5em;height:.5em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15);background:#fff;z-index:2;top:-.25em;left:50%;margin:0 0 0 -.25em}.ui.top.left.pointing.dropdown>.menu{top:100%;bottom:auto;left:0;right:auto;margin:1em 0 0}.ui.top.left.pointing.dropdown>.menu:after{top:-.25em;left:1em;right:auto;margin:0;transform:rotate(45deg)}.ui.top.right.pointing.dropdown>.menu{top:100%;bottom:auto;right:0;left:auto;margin:1em 0 0}.ui.top.pointing.dropdown>.left.menu:after,.ui.top.right.pointing.dropdown>.menu:after{top:-.25em;left:auto!important;right:1em!important;margin:0;transform:rotate(45deg)}.ui.left.pointing.dropdown>.menu{top:0;left:100%;right:auto;margin:0 0 0 1em}.ui.left.pointing.dropdown>.menu:after{top:1em;left:-.25em;margin:0;transform:rotate(-45deg)}.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu{left:auto!important;right:100%!important;margin:0 1em 0 0}.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu:after{top:1em;left:auto;right:-.25em;margin:0;transform:rotate(135deg)}.ui.right.pointing.dropdown>.menu{top:0;left:auto;right:100%;margin:0 1em 0 0}.ui.right.pointing.dropdown>.menu:after{top:1em;left:auto;right:-.25em;margin:0;transform:rotate(135deg)}.ui.bottom.pointing.dropdown>.menu{top:auto;bottom:100%;left:0;right:auto;margin:0 0 1em}.ui.bottom.pointing.dropdown>.menu:after{top:auto;bottom:-.25em;right:auto;margin:0;transform:rotate(-135deg)}.ui.bottom.pointing.dropdown>.menu .menu{top:auto!important;bottom:0!important}.ui.bottom.left.pointing.dropdown>.menu{left:0;right:auto}.ui.bottom.left.pointing.dropdown>.menu:after{left:1em;right:auto}.ui.bottom.right.pointing.dropdown>.menu{right:0;left:auto}.ui.bottom.right.pointing.dropdown>.menu:after{left:auto;right:1em}.ui.pointing.upward.dropdown .menu,.ui.top.pointing.upward.dropdown .menu{top:auto!important;bottom:100%!important;margin:0 0 .78571429rem;border-radius:.21428571rem}.ui.pointing.upward.dropdown .menu:after,.ui.top.pointing.upward.dropdown .menu:after{top:100%!important;bottom:auto!important;box-shadow:1px 1px 0 0 rgba(34,36,38,.15);margin:-.25em 0 0}.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu{top:auto!important;bottom:0!important;margin:0 1em 0 0}.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after{top:auto!important;bottom:0!important;margin:0 0 1em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15)}.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu{top:auto!important;bottom:0!important;margin:0 0 0 1em}.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after{top:auto!important;bottom:0!important;margin:0 0 1em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15)}@font-face{font-family:Dropdown;src:url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAVgAA8AAAAACFAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABWAAAABwAAAAchGgaq0dERUYAAAF0AAAAHAAAAB4AJwAPT1MvMgAAAZAAAABDAAAAVnW4TJdjbWFwAAAB1AAAAEsAAAFS8CcaqmN2dCAAAAIgAAAABAAAAAQAEQFEZ2FzcAAAAiQAAAAIAAAACP//AANnbHlmAAACLAAAAQoAAAGkrRHP9WhlYWQAAAM4AAAAMAAAADYPK8YyaGhlYQAAA2gAAAAdAAAAJANCAb1obXR4AAADiAAAACIAAAAiCBkAOGxvY2EAAAOsAAAAFAAAABQBnAIybWF4cAAAA8AAAAAfAAAAIAEVAF5uYW1lAAAD4AAAATAAAAKMFGlj5HBvc3QAAAUQAAAARgAAAHJoedjqd2ViZgAABVgAAAAGAAAABrO7W5UAAAABAAAAANXulPUAAAAA1r4hgAAAAADXu2Q1eNpjYGRgYOABYjEgZmJgBEIOIGYB8xgAA/YAN3jaY2BktGOcwMDKwMI4jTGNgYHBHUp/ZZBkaGFgYGJgZWbACgLSXFMYHFT/fLjFeOD/AQY9xjMMbkBhRpAcAN48DQYAeNpjYGBgZoBgGQZGBhDwAfIYwXwWBgMgzQGETAwMqn8+8H649f8/lHX9//9b7Pzf+fWgusCAkY0BzmUE6gHpQwGMDMMeAACbxg7SAAARAUQAAAAB//8AAnjadZBPSsNAGMXfS+yMqYgOhpSuSlKadmUhiVEhEMQzFF22m17BbbvzCh5BXCUn6EG8gjeQ4DepwYo4i+/ffL95j4EDA+CFC7jQuKyIeVHrI3wkleq9F7XrSInKteOeHdda8bOoaeepSc00NWPz/LRec9G8GabyGtEdF7h19z033GAMTK7zbM42xNEZpzYof0RtQ5CUHAQJ73OtVyutc+3b7Ou//b8XNlsPx3jgjUifABdhEohKJJL5iM5p39uqc7X1+sRQSqmGrUVhlsJ4lpmEUVwyT8SUYtg0P9DyNzPADDs+tjrGV6KRCRfsui3eHcL4/p8ZXvfMlcnEU+CLv7hDykOP+AKTPTxbAAB42mNgZGBgAGKuf5KP4vltvjLIMzGAwLV9ig0g+vruFFMQzdjACOJzMIClARh0CTJ42mNgZGBgPPD/AJD8wgAEjA0MjAyogAMAbOQEAQAAAAC7ABEAAAAAAKoAAAH0AAABgAAAAUAACAFAAAgAwAAXAAAAAAAAACoAKgAqADIAbACGAKAAugDSeNpjYGRgYOBkUGFgYgABEMkFhAwM/xn0QAIADdUBdAB42qWQvUoDQRSFv3GjaISUQaymSmGxJoGAsRC0iPYLsU50Y6IxrvlRtPCJJKUPIBb+PIHv4EN4djKuKAqCDHfmu+feOdwZoMCUAJNbAlYUMzaUlM14jjxbngOq7HnOia89z1Pk1vMCa9x7ztPkzfMyJbPj+ZGi6Xp+omxuPD+zaD7meaFg7mb8GrBqHmhwxoAxlm0uiRkpP9X5m26pKRoMxTGR1D49Dv/Yb/91o6l8qL6eu5n2hZQzn68utR9m3FU2cB4t9cdSLG2utI+44Eh/P9bqKO+oJ/WxmXssj77YkrjasZQD6SFddythk3Wtzrf+UF2p076Udla1VNzsERP3kkjVRKel7mp1udXYcHtZSlV7RfmJe1GiFWveluaeKD5/MuJcSk8Tpm/vvwPIbmJleNpjYGKAAFYG7ICTgYGRiZGZkYWRlZGNkZ2Rg5GTLT2nsiDDEEIZsZfmZRqZujmDaDcDAxcI7WIOpS2gtCWUdgQAZkcSmQAAAAFblbO6AAA=) format("woff");font-weight:400;font-style:normal}.ui.dropdown>.dropdown.icon{font-family:Dropdown;line-height:1;height:1em;width:1.23em;-webkit-backface-visibility:hidden;backface-visibility:hidden;font-weight:400;font-style:normal;text-align:center;width:auto}.ui.dropdown>.dropdown.icon:before{content:"\f0d7"}.ui.dropdown .menu .item .dropdown.icon:before{content:"\f0da"}.ui.dropdown .item .left.dropdown.icon:before,.ui.dropdown .left.menu .item .dropdown.icon:before{content:"\f0d9"}.ui.vertical.menu .dropdown.item>.dropdown.icon:before{content:"\f0da"}.ui.dropdown>.clear.icon:before{content:"\f00d"}
/*!
 * # Semantic UI - Video
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.embed{position:relative;max-width:100%;height:0;overflow:hidden;background:#dcddde;padding-bottom:56.25%}.ui.embed embed,.ui.embed iframe,.ui.embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.embed>.embed{display:none}.ui.embed>.placeholder{display:block;background-color:radial-gradient(transparent 45%,rgba(0,0,0,.3))}.ui.embed>.icon,.ui.embed>.placeholder{position:absolute;cursor:pointer;top:0;left:0;width:100%;height:100%}.ui.embed>.icon{z-index:2}.ui.embed>.icon:after{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;content:"";background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:.5;transition:opacity .5s ease}.ui.embed>.icon:before{position:absolute;top:50%;left:50%;z-index:4;transform:translateX(-50%) translateY(-50%);color:#fff;font-size:84px;font-size:6rem;text-shadow:0 2px 10px rgba(34,36,38,.2);transition:opacity .5s ease,color .5s ease;z-index:10}.ui.embed .icon:hover:after{background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:1}.ui.embed .icon:hover:before{color:#fff}.ui.active.embed>.icon,.ui.active.embed>.placeholder{display:none}.ui.active.embed>.embed{display:block}.ui.square.embed{padding-bottom:100%}.ui[class*="4:3"].embed{padding-bottom:75%}.ui[class*="16:9"].embed{padding-bottom:56.25%}.ui[class*="21:9"].embed{padding-bottom:42.85714286%}
/*!
 * # Semantic UI - Modal
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.modal{position:absolute;display:none;z-index:1001;text-align:left;background:#fff;border:none;box-shadow:1px 3px 3px 0 rgba(0,0,0,.2),1px 3px 15px 2px rgba(0,0,0,.2);transform-origin:50% 25%;flex:0 0 auto;border-radius:.21428571rem;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;will-change:top,left,margin,transform,opacity}.ui.modal>.icon:first-child+*,.ui.modal>:first-child:not(.icon){border-top-left-radius:2.999px;border-top-left-radius:.21428571rem;border-top-right-radius:2.999px;border-top-right-radius:.21428571rem}.ui.modal>:last-child{border-bottom-left-radius:2.999px;border-bottom-left-radius:.21428571rem;border-bottom-right-radius:2.999px;border-bottom-right-radius:.21428571rem}.ui.modal>.close{cursor:pointer;position:absolute;top:-35px;top:-2.5rem;right:-35px;right:-2.5rem;z-index:1;opacity:.8;font-size:1.25em;color:#fff;width:31.5px;width:2.25rem;height:31.5px;height:2.25rem;padding:.625rem 0 0}.ui.modal>.close:hover{opacity:1}.ui.modal>.header{display:block;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;background:#fff;margin:0;padding:1.25rem 1.5rem;box-shadow:none;color:rgba(0,0,0,.85);border-bottom:1px solid rgba(34,36,38,.15)}.ui.modal>.header:not(.ui){font-size:20px;font-size:1.42857143rem;line-height:1.28571429em;font-weight:700}.ui.modal>.content{display:block;width:100%;font-size:1em;line-height:1.4;padding:1.5rem;background:#fff}.ui.modal>.image.content{display:flex;flex-direction:row}.ui.modal>.content>.image{display:block;flex:0 1 auto;width:"";align-self:top}.ui.modal>[class*="top aligned"]{align-self:top}.ui.modal>[class*="middle aligned"]{align-self:middle}.ui.modal>[class*=stretched]{align-self:stretch}.ui.modal>.content>.description{display:block;flex:1 0 auto;min-width:0;align-self:top}.ui.modal>.content>.icon+.description,.ui.modal>.content>.image+.description{flex:0 1 auto;min-width:"";width:auto;padding-left:2em}.ui.modal>.content>.image>i.icon{margin:0;opacity:1;width:auto;line-height:1;font-size:112px;font-size:8rem}.ui.modal>.actions{background:#f9fafb;padding:1rem;border-top:1px solid rgba(34,36,38,.15);text-align:right}.ui.modal .actions>.button{margin-left:.75em}@media only screen and (max-width:767px){.ui.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.modal{width:850px;margin:0}}@media only screen and (min-width:1200px){.ui.modal{width:900px;margin:0}}@media only screen and (min-width:1920px){.ui.modal{width:950px;margin:0}}@media only screen and (max-width:991px){.ui.modal>.header{padding-right:2.25rem}.ui.modal>.close{top:1.0535rem;right:1rem;color:rgba(0,0,0,.87)}}@media only screen and (max-width:767px){.ui.modal>.header{padding:.75rem 2.25rem .75rem 1rem!important}.ui.modal>.content{display:block;padding:1rem!important}.ui.modal>.close{top:.5rem!important;right:.5rem!important}.ui.modal .image.content{flex-direction:column}.ui.modal .content>.image{display:block;max-width:100%;margin:0 auto!important;text-align:center;padding:0 0 1rem!important}.ui.modal>.content>.image>i.icon{font-size:5rem;text-align:center}.ui.modal .content>.description{display:block;width:100%!important;margin:0!important;padding:1rem 0!important;box-shadow:none}.ui.modal>.actions{padding:1rem 1rem 0!important}.ui.modal .actions>.button,.ui.modal .actions>.buttons{margin-bottom:1rem}}.ui.inverted.dimmer>.ui.modal{box-shadow:1px 3px 10px 2px rgba(0,0,0,.2)}.ui.basic.modal{border:none;border-radius:0;box-shadow:none!important;color:#fff}.ui.basic.modal,.ui.basic.modal>.actions,.ui.basic.modal>.content,.ui.basic.modal>.header{background-color:transparent}.ui.basic.modal>.header{color:#fff}.ui.basic.modal>.close{top:14px;top:1rem;right:21px;right:1.5rem}.ui.inverted.dimmer>.basic.modal{color:rgba(0,0,0,.87)}.ui.inverted.dimmer>.ui.basic.modal>.header{color:rgba(0,0,0,.85)}.ui.legacy.modal,.ui.legacy.page.dimmer>.ui.modal{top:50%;left:50%}.ui.legacy.page.dimmer>.ui.scrolling.modal,.ui.page.dimmer>.ui.scrolling.legacy.modal,.ui.top.aligned.dimmer>.ui.legacy.modal,.ui.top.aligned.legacy.page.dimmer>.ui.modal{top:auto}@media only screen and (max-width:991px){.ui.basic.modal>.close{color:#fff}}.ui.loading.modal{display:block;visibility:hidden;z-index:-1}.ui.active.modal{display:block}.modals.dimmer[class*="top aligned"] .modal{margin:5vh auto}@media only screen and (max-width:767px){.modals.dimmer[class*="top aligned"] .modal{margin:1rem auto}}.legacy.modals.dimmer[class*="top aligned"]{padding-top:5vh}@media only screen and (max-width:767px){.legacy.modals.dimmer[class*="top aligned"]{padding-top:1rem}}.scrolling.dimmable.dimmed{overflow:hidden}.scrolling.dimmable>.dimmer{justify-content:flex-start}.scrolling.dimmable.dimmed>.dimmer{overflow:auto;-webkit-overflow-scrolling:touch}.scrolling.dimmable>.dimmer{position:fixed}.modals.dimmer .ui.scrolling.modal{margin:1rem auto}.scrolling.undetached.dimmable.dimmed{overflow:auto;-webkit-overflow-scrolling:touch}.scrolling.undetached.dimmable.dimmed>.dimmer{overflow:hidden}.scrolling.undetached.dimmable .ui.scrolling.modal{position:absolute;left:50%;margin-top:1rem!important}.ui.modal .scrolling.content{max-height:70vh;overflow:auto}.ui.fullscreen.modal{width:95%!important;margin:1em auto}.ui.fullscreen.modal>.header{padding-right:2.25rem}.ui.fullscreen.modal>.close{top:14.749px;top:1.0535rem;right:14px;right:1rem;color:rgba(0,0,0,.87)}.ui.modal{font-size:14px;font-size:1rem}.ui.mini.modal>.header:not(.ui){font-size:1.3em}@media only screen and (max-width:767px){.ui.mini.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.mini.modal{width:35.2%;margin:0}}@media only screen and (min-width:992px){.ui.mini.modal{width:340px;margin:0}}@media only screen and (min-width:1200px){.ui.mini.modal{width:360px;margin:0}}@media only screen and (min-width:1920px){.ui.mini.modal{width:380px;margin:0}}@media only screen and (max-width:767px){.ui.tiny.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.tiny.modal{width:52.8%;margin:0}}@media only screen and (min-width:992px){.ui.tiny.modal{width:510px;margin:0}}@media only screen and (min-width:1200px){.ui.tiny.modal{width:540px;margin:0}}@media only screen and (min-width:1920px){.ui.tiny.modal{width:570px;margin:0}}.ui.small.modal>.header:not(.ui){font-size:1.3em}@media only screen and (max-width:767px){.ui.small.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.small.modal{width:70.4%;margin:0}}@media only screen and (min-width:992px){.ui.small.modal{width:680px;margin:0}}@media only screen and (min-width:1200px){.ui.small.modal{width:720px;margin:0}}@media only screen and (min-width:1920px){.ui.small.modal{width:760px;margin:0}}.ui.large.modal>.header{font-size:1.6em}@media only screen and (max-width:767px){.ui.large.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.large.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.large.modal{width:1020px;margin:0}}@media only screen and (min-width:1200px){.ui.large.modal{width:1080px;margin:0}}@media only screen and (min-width:1920px){.ui.large.modal{width:1140px;margin:0}}
/*!
 * # Semantic UI - Nag
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:999;min-height:0;width:100%;margin:0;padding:.75em 1em;background:#555;box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:14px;font-size:1rem;text-align:center;color:rgba(0,0,0,.87);border-radius:0 0 .21428571rem .21428571rem;transition:background .2s ease}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#fff}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;font-size:1em;margin:-.5em 0 0;color:#fff;transition:opacity .2s ease}.ui.nag:hover{background:#555;opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag,.ui.bottom.nags{border-radius:.21428571rem .21428571rem 0 0;top:auto;bottom:0}.ui.inverted.nag,.ui.inverted.nags .nag{background-color:#f3f4f5;color:rgba(0,0,0,.85)}.ui.inverted.nag .close,.ui.inverted.nag .title,.ui.inverted.nags .nag .close,.ui.inverted.nags .nag .title{color:rgba(0,0,0,.4)}.ui.nags .nag{border-radius:0!important}.ui.nags .nag:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui.bottom.nags .nag:last-child{border-radius:.21428571rem .21428571rem 0 0}
/*!
 * # Semantic UI - Popup
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.popup{display:none;position:absolute;top:0;right:0;min-width:-webkit-min-content;min-width:-moz-min-content;min-width:min-content;z-index:1900;border:1px solid #d4d4d5;line-height:1.4285em;max-width:250px;background:#fff;padding:.833em 1em;font-weight:400;font-style:normal;color:rgba(0,0,0,.87);border-radius:.21428571rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.popup>.header{padding:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1.14285714em;line-height:1.2;font-weight:700}.ui.popup>.header+.content{padding-top:.5em}.ui.popup:before{position:absolute;content:"";width:.71428571em;height:.71428571em;background:#fff;transform:rotate(45deg);z-index:2;box-shadow:1px 1px 0 0 #bababc}[data-tooltip]{position:relative}[data-tooltip]:before{content:"";width:.71428571em;height:.71428571em;transform:rotate(45deg);z-index:2;box-shadow:1px 1px 0 0 #bababc}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;position:absolute;font-size:14px;font-size:1rem;background:#fff}[data-tooltip]:after{content:attr(data-tooltip);text-transform:none;text-align:left;white-space:nowrap;border:1px solid #d4d4d5;line-height:1.4285em;max-width:none;padding:.833em 1em;font-weight:400;font-style:normal;color:rgba(0,0,0,.87);border-radius:.21428571rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);z-index:1}[data-tooltip]:not([data-position]):before{top:auto;right:auto;bottom:100%;left:50%;background:#fff;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-tooltip]:not([data-position]):after{left:50%;transform:translateX(-50%);bottom:100%;margin-bottom:.5em}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;visibility:hidden}[data-tooltip]:before{opacity:0;transform:rotate(45deg) scale(0)!important;transform-origin:center top;transition:all .1s ease}[data-tooltip]:after{opacity:1;transform-origin:center bottom;transition:all .1s ease}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;pointer-events:auto}[data-tooltip]:hover:before{transform:rotate(45deg) scale(1)!important;opacity:1}[data-tooltip]:after,[data-tooltip][data-position="bottom center"]:after,[data-tooltip][data-position="top center"]:after{transform:translateX(-50%) scale(0)!important}[data-tooltip]:hover:after,[data-tooltip][data-position="bottom center"]:hover:after{transform:translateX(-50%) scale(1)!important}[data-tooltip][data-position="left center"]:after,[data-tooltip][data-position="right center"]:after{transform:translateY(-50%) scale(0)!important}[data-tooltip][data-position="left center"]:hover:after,[data-tooltip][data-position="right center"]:hover:after{transform:translateY(-50%) scale(1)!important}[data-tooltip][data-position="bottom left"]:after,[data-tooltip][data-position="bottom right"]:after,[data-tooltip][data-position="top left"]:after,[data-tooltip][data-position="top right"]:after{transform:scale(0)!important}[data-tooltip][data-position="bottom left"]:hover:after,[data-tooltip][data-position="bottom right"]:hover:after,[data-tooltip][data-position="top left"]:hover:after,[data-tooltip][data-position="top right"]:hover:after{transform:scale(1)!important}[data-tooltip][data-inverted]:before{box-shadow:none!important;background:#1b1c1d}[data-tooltip][data-inverted]:after{background:#1b1c1d;color:#fff;border:none;box-shadow:none}[data-tooltip][data-inverted]:after .header{background-color:none;color:#fff}[data-position="top center"][data-tooltip]:after{top:auto;right:auto;left:50%;bottom:100%;transform:translateX(-50%);margin-bottom:.5em}[data-position="top center"][data-tooltip]:before{top:auto;right:auto;bottom:100%;left:50%;background:#fff;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-position="top left"][data-tooltip]:after{top:auto;right:auto;left:0;bottom:100%;margin-bottom:.5em}[data-position="top left"][data-tooltip]:before{top:auto;right:auto;bottom:100%;left:1em;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-position="top right"][data-tooltip]:after{top:auto;left:auto;right:0;bottom:100%;margin-bottom:.5em}[data-position="top right"][data-tooltip]:before{top:auto;left:auto;bottom:100%;right:1em;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-position="bottom center"][data-tooltip]:after{bottom:auto;right:auto;left:50%;top:100%;transform:translateX(-50%);margin-top:.5em}[data-position="bottom center"][data-tooltip]:before{bottom:auto;right:auto;top:100%;left:50%;margin-left:-.07142857rem;margin-top:.14285714rem}[data-position="bottom left"][data-tooltip]:after{left:0;top:100%;margin-top:.5em}[data-position="bottom left"][data-tooltip]:before{bottom:auto;right:auto;top:100%;left:1em;margin-left:-.07142857rem;margin-top:.14285714rem}[data-position="bottom right"][data-tooltip]:after{right:0;top:100%;margin-top:.5em}[data-position="bottom right"][data-tooltip]:before{bottom:auto;left:auto;top:100%;right:1em;margin-left:-.14285714rem;margin-top:.07142857rem}[data-position="left center"][data-tooltip]:after{right:100%;top:50%;margin-right:.5em;transform:translateY(-50%)}[data-position="left center"][data-tooltip]:before{right:100%;top:50%;margin-top:-.14285714rem;margin-right:-.07142857rem}[data-position="right center"][data-tooltip]:after{left:100%;top:50%;margin-left:.5em;transform:translateY(-50%)}[data-position="right center"][data-tooltip]:before{left:100%;top:50%;margin-top:-.07142857rem;margin-left:.14285714rem}[data-position~=bottom][data-tooltip]:before{background:#fff;box-shadow:-1px -1px 0 0 #bababc}[data-position="left center"][data-tooltip]:before{background:#fff;box-shadow:1px -1px 0 0 #bababc}[data-position="right center"][data-tooltip]:before{background:#fff;box-shadow:-1px 1px 0 0 #bababc}[data-position~=top][data-tooltip]:before{background:#fff}[data-inverted][data-position~=bottom][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px -1px 0 0 #bababc}[data-inverted][data-position="left center"][data-tooltip]:before{background:#1b1c1d;box-shadow:1px -1px 0 0 #bababc}[data-inverted][data-position="right center"][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px 1px 0 0 #bababc}[data-inverted][data-position~=top][data-tooltip]:before{background:#1b1c1d}[data-position~=bottom][data-tooltip]:before{transform-origin:center bottom}[data-position~=bottom][data-tooltip]:after{transform-origin:center top}[data-position="left center"][data-tooltip]:before{transform-origin:top center}[data-position="left center"][data-tooltip]:after,[data-position="right center"][data-tooltip]:before{transform-origin:right center}[data-position="right center"][data-tooltip]:after{transform-origin:left center}.ui.popup{margin:0}.ui.top.popup{margin:0 0 .71428571em}.ui.top.left.popup{transform-origin:left bottom}.ui.top.center.popup{transform-origin:center bottom}.ui.top.right.popup{transform-origin:right bottom}.ui.left.center.popup{margin:0 .71428571em 0 0;transform-origin:right 50%}.ui.right.center.popup{margin:0 0 0 .71428571em;transform-origin:left 50%}.ui.bottom.popup{margin:.71428571em 0 0}.ui.bottom.left.popup{transform-origin:left top}.ui.bottom.center.popup{transform-origin:center top}.ui.bottom.right.popup{transform-origin:right top}.ui.bottom.center.popup:before{margin-left:-.30714286em;top:-.30714286em;left:50%;right:auto;bottom:auto;box-shadow:-1px -1px 0 0 #bababc}.ui.bottom.left.popup{margin-left:0}.ui.bottom.left.popup:before{top:-.30714286em;left:1em;right:auto;bottom:auto;margin-left:0;box-shadow:-1px -1px 0 0 #bababc}.ui.bottom.right.popup{margin-right:0}.ui.bottom.right.popup:before{top:-.30714286em;right:1em;bottom:auto;left:auto;margin-left:0;box-shadow:-1px -1px 0 0 #bababc}.ui.top.center.popup:before{top:auto;right:auto;bottom:-.30714286em;left:50%;margin-left:-.30714286em}.ui.top.left.popup{margin-left:0}.ui.top.left.popup:before{bottom:-.30714286em;left:1em;top:auto;right:auto;margin-left:0}.ui.top.right.popup{margin-right:0}.ui.top.right.popup:before{bottom:-.30714286em;right:1em;top:auto;left:auto;margin-left:0}.ui.left.center.popup:before{top:50%;right:-.30714286em;bottom:auto;left:auto;margin-top:-.30714286em;box-shadow:1px -1px 0 0 #bababc}.ui.right.center.popup:before{top:50%;left:-.30714286em;bottom:auto;right:auto;margin-top:-.30714286em;box-shadow:-1px 1px 0 0 #bababc}.ui.bottom.popup:before,.ui.left.center.popup:before,.ui.right.center.popup:before,.ui.top.popup:before{background:#fff}.ui.inverted.bottom.popup:before,.ui.inverted.left.center.popup:before,.ui.inverted.right.center.popup:before,.ui.inverted.top.popup:before{background:#1b1c1d}.ui.popup>.ui.grid:not(.padded){width:calc(100% + 1.75rem);margin:-.7rem -.875rem}.ui.loading.popup{display:block;visibility:hidden;z-index:-1}.ui.animating.popup,.ui.visible.popup{display:block}.ui.visible.popup{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.basic.popup:before{display:none}.ui.wide.popup{max-width:350px}.ui[class*="very wide"].popup{max-width:550px}@media only screen and (max-width:767px){.ui.wide.popup,.ui[class*="very wide"].popup{max-width:250px}}.ui.fluid.popup{width:100%;max-width:none}.ui.inverted.popup{background:#1b1c1d;color:#fff;border:none;box-shadow:none}.ui.inverted.popup .header{background-color:none;color:#fff}.ui.inverted.popup:before{background-color:#1b1c1d;box-shadow:none!important}.ui.flowing.popup{max-width:none}.ui.mini.popup{font-size:11px;font-size:.78571429rem}.ui.tiny.popup{font-size:12px;font-size:.85714286rem}.ui.small.popup{font-size:13px;font-size:.92857143rem}.ui.popup{font-size:14px;font-size:1rem}.ui.large.popup{font-size:15.999px;font-size:1.14285714rem}.ui.huge.popup{font-size:20px;font-size:1.42857143rem}
/*!
 * # Semantic UI - Progress Bar
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.progress{position:relative;display:block;max-width:100%;border:none;margin:1em 0 2.5em;box-shadow:none;background:rgba(0,0,0,.1);padding:0;border-radius:.21428571rem}.ui.progress:first-child{margin:0 0 2.5em}.ui.progress:last-child{margin:0 0 1.5em}.ui.progress .bar{display:block;line-height:1;position:relative;width:0;min-width:2em;background:#888;border-radius:.21428571rem;transition:width .1s ease,background-color .1s ease}.ui.progress .bar>.progress{white-space:nowrap;width:auto;font-size:.92857143em;top:50%;right:.5em;left:auto;color:hsla(0,0%,100%,.7);margin-top:-.5em;text-align:left}.ui.progress .bar>.progress,.ui.progress>.label{position:absolute;bottom:auto;text-shadow:none;font-weight:700}.ui.progress>.label{width:100%;font-size:1em;top:100%;right:auto;left:0;color:rgba(0,0,0,.87);margin-top:.2em;text-align:center;transition:color .4s ease}.ui.indicating.progress[data-percent^="1"] .bar,.ui.indicating.progress[data-percent^="2"] .bar{background-color:#d95c5c}.ui.indicating.progress[data-percent^="3"] .bar{background-color:#efbc72}.ui.indicating.progress[data-percent^="4"] .bar,.ui.indicating.progress[data-percent^="5"] .bar{background-color:#e6bb48}.ui.indicating.progress[data-percent^="6"] .bar{background-color:#ddc928}.ui.indicating.progress[data-percent^="7"] .bar,.ui.indicating.progress[data-percent^="8"] .bar{background-color:#b4d95c}.ui.indicating.progress[data-percent^="9"] .bar,.ui.indicating.progress[data-percent^="100"] .bar{background-color:#66da81}.ui.indicating.progress[data-percent^="1"] .label,.ui.indicating.progress[data-percent^="2"] .label,.ui.indicating.progress[data-percent^="3"] .label,.ui.indicating.progress[data-percent^="4"] .label,.ui.indicating.progress[data-percent^="5"] .label,.ui.indicating.progress[data-percent^="6"] .label,.ui.indicating.progress[data-percent^="7"] .label,.ui.indicating.progress[data-percent^="8"] .label,.ui.indicating.progress[data-percent^="9"] .label,.ui.indicating.progress[data-percent^="100"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress[data-percent="1"] .bar,.ui.indicating.progress[data-percent="2"] .bar,.ui.indicating.progress[data-percent="3"] .bar,.ui.indicating.progress[data-percent="4"] .bar,.ui.indicating.progress[data-percent="5"] .bar,.ui.indicating.progress[data-percent="6"] .bar,.ui.indicating.progress[data-percent="7"] .bar,.ui.indicating.progress[data-percent="8"] .bar,.ui.indicating.progress[data-percent="9"] .bar{background-color:#d95c5c}.ui.indicating.progress[data-percent="1"] .label,.ui.indicating.progress[data-percent="2"] .label,.ui.indicating.progress[data-percent="3"] .label,.ui.indicating.progress[data-percent="4"] .label,.ui.indicating.progress[data-percent="5"] .label,.ui.indicating.progress[data-percent="6"] .label,.ui.indicating.progress[data-percent="7"] .label,.ui.indicating.progress[data-percent="8"] .label,.ui.indicating.progress[data-percent="9"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress.success .label{color:#1a531b}.ui.progress.success .bar{background-color:#21ba45!important}.ui.progress.success .bar,.ui.progress.success .bar:after{-webkit-animation:none!important;animation:none!important}.ui.progress.success>.label{color:#1a531b}.ui.progress.warning .bar{background-color:#f2c037!important}.ui.progress.warning .bar,.ui.progress.warning .bar:after{-webkit-animation:none!important;animation:none!important}.ui.progress.warning>.label{color:#794b02}.ui.progress.error .bar{background-color:#db2828!important}.ui.progress.error .bar,.ui.progress.error .bar:after{-webkit-animation:none!important;animation:none!important}.ui.progress.error>.label{color:#912d2b}.ui.active.progress .bar{position:relative;min-width:2em}.ui.active.progress .bar:after{content:"";opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;background:#fff;border-radius:.21428571rem;-webkit-animation:progress-active 2s ease infinite;animation:progress-active 2s ease infinite}@-webkit-keyframes progress-active{0%{opacity:.3;width:0}to{opacity:0;width:100%}}@keyframes progress-active{0%{opacity:.3;width:0}to{opacity:0;width:100%}}.ui.disabled.progress{opacity:.35}.ui.disabled.progress .bar,.ui.disabled.progress .bar:after{-webkit-animation:none!important;animation:none!important}.ui.inverted.progress{background:hsla(0,0%,100%,.08);border:none}.ui.inverted.progress .bar{background:#888}.ui.inverted.progress .bar>.progress{color:#f9fafb}.ui.inverted.progress>.label{color:#fff}.ui.inverted.progress.success>.label{color:#21ba45}.ui.inverted.progress.warning>.label{color:#f2c037}.ui.inverted.progress.error>.label{color:#db2828}.ui.progress.attached{background:transparent;position:relative;border:none;margin:0}.ui.progress.attached,.ui.progress.attached .bar{display:block;height:2.8px;height:.2rem;padding:0;overflow:hidden;border-radius:0 0 .21428571rem .21428571rem}.ui.progress.attached .bar{border-radius:0}.ui.progress.top.attached,.ui.progress.top.attached .bar{top:0;border-radius:.21428571rem .21428571rem 0 0}.ui.progress.top.attached .bar{border-radius:0}.ui.card>.ui.attached.progress,.ui.segment>.ui.attached.progress{position:absolute;top:auto;left:0;bottom:100%;width:100%}.ui.card>.ui.bottom.attached.progress,.ui.segment>.ui.bottom.attached.progress{top:100%;bottom:auto}.ui.red.progress .bar{background-color:#db2828}.ui.red.inverted.progress .bar{background-color:#ff695e}.ui.orange.progress .bar{background-color:#f2711c}.ui.orange.inverted.progress .bar{background-color:#ff851b}.ui.yellow.progress .bar{background-color:#fbbd08}.ui.yellow.inverted.progress .bar{background-color:#ffe21f}.ui.olive.progress .bar{background-color:#b5cc18}.ui.olive.inverted.progress .bar{background-color:#d9e778}.ui.green.progress .bar{background-color:#21ba45}.ui.green.inverted.progress .bar{background-color:#2ecc40}.ui.teal.progress .bar{background-color:#00b5ad}.ui.teal.inverted.progress .bar{background-color:#6dffff}.ui.blue.progress .bar{background-color:#2c6a9e}.ui.blue.inverted.progress .bar{background-color:#5391c5}.ui.violet.progress .bar{background-color:#6435c9}.ui.violet.inverted.progress .bar{background-color:#a291fb}.ui.purple.progress .bar{background-color:#a333c8}.ui.purple.inverted.progress .bar{background-color:#dc73ff}.ui.pink.progress .bar{background-color:#e03997}.ui.pink.inverted.progress .bar{background-color:#ff8edf}.ui.brown.progress .bar{background-color:#a5673f}.ui.brown.inverted.progress .bar{background-color:#d67c1c}.ui.grey.progress .bar{background-color:#767676}.ui.grey.inverted.progress .bar{background-color:#dcddde}.ui.black.progress .bar{background-color:#1b1c1d}.ui.black.inverted.progress .bar{background-color:#545454}.ui.tiny.progress{font-size:12px;font-size:.85714286rem}.ui.tiny.progress .bar{height:.5em}.ui.small.progress{font-size:13px;font-size:.92857143rem}.ui.small.progress .bar{height:1em}.ui.progress{font-size:14px;font-size:1rem}.ui.progress .bar{height:1.75em}.ui.large.progress{font-size:15.999px;font-size:1.14285714rem}.ui.large.progress .bar{height:2.5em}.ui.big.progress{font-size:18px;font-size:1.28571429rem}.ui.big.progress .bar{height:3.5em}
/*!
 * # Semantic UI - Rating
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.rating{display:inline-flex;white-space:nowrap;vertical-align:baseline}.ui.rating:last-child{margin-right:0}.ui.rating .icon{padding:0;margin:0;flex:1 0 auto;cursor:pointer;width:1.25em;height:auto;transition:opacity .1s ease,background .1s ease,text-shadow .1s ease,color .1s ease;background:transparent;color:rgba(0,0,0,.15)}.ui.rating .active.icon{background:transparent;color:rgba(0,0,0,.85)}.ui.rating .icon.selected,.ui.rating .icon.selected.active{background:transparent;color:rgba(0,0,0,.87)}.ui.star.rating .icon{width:1.25em;height:auto;background:transparent;color:rgba(0,0,0,.15);text-shadow:none}.ui.star.rating .active.icon{background:transparent!important;color:#ffe623!important;text-shadow:0 -1px 0 #ddc507,-1px 0 0 #ddc507,0 1px 0 #ddc507,1px 0 0 #ddc507!important}.ui.star.rating .icon.selected,.ui.star.rating .icon.selected.active{background:transparent!important;color:#fc0!important;text-shadow:0 -1px 0 #e6a200,-1px 0 0 #e6a200,0 1px 0 #e6a200,1px 0 0 #e6a200!important}.ui.heart.rating .icon{width:1.4em;height:auto;background:transparent;color:rgba(0,0,0,.15);text-shadow:none!important}.ui.heart.rating .active.icon{background:transparent!important;color:#ff6d75!important;text-shadow:0 -1px 0 #cd0707,-1px 0 0 #cd0707,0 1px 0 #cd0707,1px 0 0 #cd0707!important}.ui.heart.rating .icon.selected,.ui.heart.rating .icon.selected.active{background:transparent!important;color:#ff3000!important;text-shadow:0 -1px 0 #aa0101,-1px 0 0 #aa0101,0 1px 0 #aa0101,1px 0 0 #aa0101!important}.ui.disabled.rating .icon{cursor:default}.ui.rating .icon.selected,.ui.rating.selected .active.icon,.ui.rating.selected .icon.selected{opacity:1}.ui.mini.rating{font-size:11px;font-size:.78571429rem}.ui.tiny.rating{font-size:12px;font-size:.85714286rem}.ui.small.rating{font-size:13px;font-size:.92857143rem}.ui.rating{font-size:14px;font-size:1rem}.ui.large.rating{font-size:15.999px;font-size:1.14285714rem}.ui.huge.rating{font-size:20px;font-size:1.42857143rem}.ui.massive.rating{font-size:28px;font-size:2rem}@font-face{font-family:Rating;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,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kIiRi5MI5vdUFfcni4vCBYufhJx8mn2ZepJ3i3aLeoR9fX18g3qLdwiLVAUO+yaLshWL+AQFi5GNkY+RjpCQj5KNj42PjI+LCPfAiwWPi4+Kj4mRiZCHj4aPhY2Fi4UIi/wEBYuEiYWHhoeGhoeFiIiKhoqHi4GLhI6EkQj7EvcN+xL7DQWEhYOIgouHi4eLh42EjoaPiJCHkImRi5IIDov3XRWLko2Rj5Kltq+vuKW4pbuZvYu9i7t9uHG4ca9npWCPhI2Fi4SLhYmEh4RxYGdoXnAIXnFbflmLWYtbmF6lXqZnrnG2h5KJkouRCLCLFaRkq2yxdLF0tH+4i7iLtJexorGiq6qksm64Z61goZZ3kXaLdItnfm1ycnJybX9oiwhoi22XcqRypH6pi6+LopGglp9gdWdpbl4I9xiwFYuHjIiOiI6IjoqPi4+LjoyOjo2OjY6Lj4ubkJmXl5eWmZGbi4+LjoyOjo2OjY6LjwiLj4mOiY6IjYiNh4tzi3eCenp6eoJ3i3MIDov3XRWLko2Sj5GouK+utqW3pbqYvouci5yJnIgIm6cFjY6NjI+LjIuNi42JjYqOio+JjomOiY6KjomOiY6JjoqNioyKjomMiYuHi4qLiouLCHdnbVVjQ2NDbVV3Zwh9cgWJiIiJiIuJi36SdJiIjYmOi46LjY+UlJlvl3KcdJ90oHeie6WHkYmSi5IIsIsVqlq0Z711CKGzBXqXfpqCnoKdhp6LoIuikaCWn2B1Z2luXgj3GLAVi4eMiI6IjoiOio+Lj4uOjI6OjY6NjouPi5uQmZeXl5aZkZuLj4uOjI6OjY6NjouPCIuPiY6JjoiNiI2Hi3OLd4J6enp6gneLcwji+10VoLAFtI+wmK2hrqKnqKKvdq1wp2uhCJ2rBZ1/nHycepx6mHqWeY+EjYWLhIuEiYWHhIR/gH1+fG9qaXJmeWV5Y4Jhiwi53BXb9yQFjIKMg4uEi3CDc3x1fHV3fHOBCA6L1BWL90sFi5WPlJKSkpKTj5aLCNmLBZKPmJqepJaZlZeVlY+Qj5ONl42WjpeOmI+YkZWTk5OSk46Vi5uLmYiYhZiFlIGSfgiSfo55i3WLeYd5gXgIvosFn4uchJl8mn2Seot3i3qGfIJ9jYSLhYuEi3yIfoR+i4eLh4uHi3eGen99i3CDdnt8CHt8dYNwiwhmiwV5i3mNeY95kHeRc5N1k36Ph4sIOYsFgIuDjoSShJKHlIuVCLCdFYuGjIePiI+Hj4mQi5CLj42Pj46OjY+LkIuQiZCIjoePh42Gi4aLh4mHh4eIioaLhgjUeRWUiwWNi46Lj4qOi4+KjYqOi4+Kj4mQio6KjYqNio+Kj4mQio6KjIqzfquEpIsIrosFr4uemouri5CKkYqQkY6QkI6SjpKNkouSi5KJkoiRlZWQlouYi5CKkImRiZGJj4iOCJGMkI+PlI+UjZKLkouViJODk4SSgo+CiwgmiwWLlpCalJ6UnpCbi5aLnoiYhJSFlH+QeYuGhoeDiYCJf4h/h3+IfoWBg4KHh4SCgH4Ii4qIiYiGh4aIh4mIiIiIh4eGh4aHh4eHiIiHiIeHiIiHiIeKh4mIioiLCIKLi/tLBQ6L90sVi/dLBYuVj5OSk5KSk46WiwjdiwWPi5iPoZOkk6CRnZCdj56Nn4sIq4sFpougg5x8m3yTd4txCIuJBZd8kHuLd4uHi4eLh5J+jn6LfIuEi4SJhZR9kHyLeot3hHp8fH19eoR3iwhYiwWVeI95i3mLdIh6hH6EfoKBfoV+hX2He4uBi4OPg5KFkYaTh5SHlYiTipOKk4qTiJMIiZSIkYiPgZSBl4CaeKR+moSPCD2LBYCLg4+EkoSSh5SLlQiw9zgVi4aMh4+Ij4ePiZCLkIuPjY+Pjo6Nj4uQi5CJkIiOh4+HjYaLhouHiYeHh4iKhouGCNT7OBWUiwWOi46Kj4mPio+IjoiPh4+IjoePiI+Hj4aPho6HjoiNiI6Hj4aOho6Ii4qWfpKDj4YIk4ORgY5+j36OgI1/jYCPg5CGnYuXj5GUkpSOmYuei5aGmoKfgp6GmouWCPCLBZSLlI+SkpOTjpOLlYuSiZKHlIeUho+Fi46PjY+NkY2RjJCLkIuYhpaBlY6RjZKLkgiLkomSiJKIkoaQhY6MkIyRi5CLm4aXgpOBkn6Pe4sIZosFcotrhGN9iouIioaJh4qHiomKiYqIioaKh4mHioiKiYuHioiLh4qIi4mLCIKLi/tLBQ77lIv3txWLkpCPlo0I9yOgzPcWBY6SkI+RiwiL/BL7FUcFh4mHioiLh4uIjImOiY6KjouPi4yLjYyOCKP3IyPwBYaQiZCLjwgOi/fFFYu1l6yjoqOjrZe2i5aLl4mYh5eHloWWhJaElIWShZOE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) format("woff");font-weight:400;font-style:normal}.ui.rating .icon{font-family:Rating;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;font-weight:400;font-style:normal;text-align:center}.ui.rating .active.icon:before,.ui.rating .icon:before,.ui.star.rating .active.icon:before,.ui.star.rating .icon:before{content:"\f005"}.ui.star.rating .partial.icon:before{content:"\f006"}.ui.star.rating .partial.icon{content:"\f005"}.ui.heart.rating .active.icon:before,.ui.heart.rating .icon:before{content:"\f004"}
/*!
 * # Semantic UI - Search
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.search{position:relative}.ui.search>.prompt{margin:0;outline:none;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);text-shadow:none;font-style:normal;font-weight:400;line-height:1.21428571em;padding:.67857143em 1em;font-size:1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);box-shadow:inset 0 0 0 0 transparent;transition:background-color .1s ease,color .1s ease,box-shadow .1s ease,border-color .1s ease}.ui.search .prompt{border-radius:500rem}.ui.search .prompt~.search.icon{cursor:pointer}.ui.search>.results{display:none;position:absolute;top:100%;left:0;transform-origin:center top;white-space:normal;text-align:left;text-transform:none;background:#fff;margin-top:.5em;width:19em;border-radius:.21428571rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);border:1px solid #d4d4d5;z-index:998}.ui.search>.results>:first-child{border-radius:.21428571rem .21428571rem 0 0}.ui.search>.results>:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui.search>.results .result{cursor:pointer;display:block;overflow:hidden;font-size:1em;padding:.85714286em 1.14285714em;color:rgba(0,0,0,.87);line-height:1.6;border-bottom:1px solid rgba(34,36,38,.1)}.ui.search>.results .result:last-child{border-bottom:none!important}.ui.search>.results .result .image{float:right;overflow:hidden;background:none;width:5em;height:3em;border-radius:.25em}.ui.search>.results .result .image img{display:block;width:auto;height:100%}.ui.search>.results .result .image+.content{margin:0 6em 0 0}.ui.search>.results .result .title{margin:-.14285714em 0 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;font-size:1em;color:rgba(0,0,0,.85)}.ui.search>.results .result .description{margin-top:0;font-size:.85714286em;color:rgba(0,0,0,.4)}.ui.search>.results .result .price{float:right;color:#2c6a9e}.ui.search>.results>.message{padding:1em}.ui.search>.results>.message .header{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:14px;font-size:1rem;font-weight:700;color:rgba(0,0,0,.87)}.ui.search>.results>.message .description{margin-top:.25rem;font-size:1em;color:rgba(0,0,0,.87)}.ui.search>.results>.action{display:block;border-top:none;background:#f3f4f5;padding:.92857143em 1em;color:rgba(0,0,0,.87);font-weight:700;text-align:center}.ui.search>.prompt:focus{border-color:rgba(34,36,38,.35);background:#fff;color:rgba(0,0,0,.95)}.ui.loading.search .input>i.icon:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.search .input>i.icon:after,.ui.loading.search .input>i.icon:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.search .input>i.icon:after{-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#767676;box-shadow:0 0 0 1px transparent}.ui.category.search>.results .category .result:hover,.ui.search>.results .result:hover{background:#f9fafb}.ui.search .action:hover{background:#e0e0e0}.ui.category.search>.results .category.active{background:#f3f4f5}.ui.category.search>.results .category.active>.name{color:rgba(0,0,0,.87)}.ui.category.search>.results .category .result.active,.ui.search>.results .result.active{position:relative;border-left-color:rgba(34,36,38,.1);background:#f3f4f5;box-shadow:none}.ui.search>.results .result.active .description,.ui.search>.results .result.active .title{color:rgba(0,0,0,.85)}.ui.disabled.search{cursor:default;pointer-events:none;opacity:.45}.ui.search.selection .prompt{border-radius:.21428571rem}.ui.search.selection>.icon.input>.remove.icon{pointer-events:none;position:absolute;left:auto;opacity:0;color:"";top:0;right:0;transition:color .1s ease,opacity .1s ease}.ui.search.selection>.icon.input>.active.remove.icon{cursor:pointer;opacity:.8;pointer-events:auto}.ui.search.selection>.icon.input:not([class*="left icon"])>.icon~.remove.icon{right:1.85714em}.ui.search.selection>.icon.input>.remove.icon:hover{opacity:1;color:#db2828}.ui.category.search .results{width:28em}.ui.category.search .results.animating,.ui.category.search .results.visible{display:table}.ui.category.search>.results .category{display:table-row;background:#f3f4f5;box-shadow:none;transition:background .1s ease,border-color .1s ease}.ui.category.search>.results .category:last-child{border-bottom:none}.ui.category.search>.results .category:first-child .name+.result{border-radius:0 .21428571rem 0 0}.ui.category.search>.results .category:last-child .result:last-child{border-radius:0 0 .21428571rem 0}.ui.category.search>.results .category>.name{display:table-cell;text-overflow:ellipsis;width:100px;white-space:nowrap;background:transparent;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1em;padding:.4em 1em;font-weight:700;color:rgba(0,0,0,.4);border-bottom:1px solid rgba(34,36,38,.1)}.ui.category.search>.results .category .results{display:table-cell;background:#fff;border-left:1px solid rgba(34,36,38,.15);border-bottom:1px solid rgba(34,36,38,.1)}.ui.category.search>.results .category .result{border-bottom:1px solid rgba(34,36,38,.1);transition:background .1s ease,border-color .1s ease;padding:.85714286em 1.14285714em}.ui[class*="left aligned"].search>.results{right:auto;left:0}.ui[class*="right aligned"].search>.results{right:0;left:auto}.ui.fluid.search .results{width:100%}.ui.mini.search{font-size:.78571429em}.ui.small.search{font-size:.92857143em}.ui.search{font-size:1em}.ui.large.search{font-size:1.14285714em}.ui.big.search{font-size:1.28571429em}.ui.huge.search{font-size:1.42857143em}.ui.massive.search{font-size:1.71428571em}@media only screen and (max-width:767px){.ui.search .results{max-width:calc(100vw - 2rem)}}
/*!
 * # Semantic UI - Shape
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.shape{position:relative;vertical-align:top;display:inline-block;perspective:2000px;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out}.ui.shape .sides{transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none}.ui.shape .side *{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#e6e6e6;color:rgba(0,0,0,.87);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;display:block;z-index:100}.ui.shape .hidden.side{opacity:.6}.ui.shape.animating .sides{position:absolute;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out}.ui.shape.animating .side{transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block}
/*!
 * # Semantic UI - Sidebar
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.sidebar{position:fixed;top:0;left:0;transition:none;will-change:transform;transform:translateZ(0);visibility:hidden;-webkit-overflow-scrolling:touch;height:100%!important;max-height:100%;border-radius:0!important;margin:0!important;overflow-y:auto!important;z-index:102}.ui.sidebar,.ui.sidebar>*{-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.left.sidebar{right:auto;left:0;transform:translate3d(-100%,0,0)}.ui.right.sidebar{right:0!important;left:auto!important;transform:translate3d(100%,0,0)}.ui.bottom.sidebar,.ui.top.sidebar{width:100%!important;height:auto!important}.ui.top.sidebar{top:0!important;bottom:auto!important;transform:translate3d(0,-100%,0)}.ui.bottom.sidebar{top:auto!important;bottom:0!important;transform:translate3d(0,100%,0)}.pushable{height:100%;overflow-x:hidden;padding:0!important}body.pushable{background:#545454!important}.pushable:not(body){transform:translateZ(0)}.pushable:not(body)>.fixed,.pushable:not(body)>.pusher:after,.pushable:not(body)>.ui.sidebar{position:absolute}.pushable>.fixed{position:fixed;will-change:transform;z-index:101}.pushable>.fixed,.pushable>.pusher{-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .5s ease}.pushable>.pusher{position:relative;overflow:hidden;min-height:100%;z-index:2}body.pushable>.pusher{background:#e9eaed}.pushable>.pusher{background:inherit}.pushable>.pusher:after{position:fixed;top:0;right:0;content:"";background-color:rgba(0,0,0,.4);overflow:hidden;opacity:0;transition:opacity .5s;will-change:opacity;z-index:1000}.ui.sidebar.menu .item{border-radius:0!important}.pushable>.pusher.dimmed:after{width:100%!important;height:100%!important;opacity:1!important}.ui.animating.sidebar{visibility:visible}.ui.visible.sidebar{visibility:visible;transform:translateZ(0)}.ui.bottom.visible.sidebar,.ui.left.visible.sidebar,.ui.right.visible.sidebar,.ui.top.visible.sidebar{box-shadow:0 0 20px rgba(34,36,38,.15)}.ui.visible.left.sidebar~.fixed,.ui.visible.left.sidebar~.pusher{transform:translate3d(260px,0,0)}.ui.visible.right.sidebar~.fixed,.ui.visible.right.sidebar~.pusher{transform:translate3d(-260px,0,0)}.ui.visible.top.sidebar~.fixed,.ui.visible.top.sidebar~.pusher{transform:translate3d(0,36px,0)}.ui.visible.bottom.sidebar~.fixed,.ui.visible.bottom.sidebar~.pusher{transform:translate3d(0,-36px,0)}.ui.visible.left.sidebar~.ui.visible.right.sidebar~.fixed,.ui.visible.left.sidebar~.ui.visible.right.sidebar~.pusher,.ui.visible.right.sidebar~.ui.visible.left.sidebar~.fixed,.ui.visible.right.sidebar~.ui.visible.left.sidebar~.pusher{transform:translateZ(0)}.ui.thin.left.sidebar,.ui.thin.right.sidebar{width:150px}.ui[class*="very thin"].left.sidebar,.ui[class*="very thin"].right.sidebar{width:60px}.ui.left.sidebar,.ui.right.sidebar{width:260px}.ui.wide.left.sidebar,.ui.wide.right.sidebar{width:350px}.ui[class*="very wide"].left.sidebar,.ui[class*="very wide"].right.sidebar{width:475px}.ui.visible.thin.left.sidebar~.fixed,.ui.visible.thin.left.sidebar~.pusher{transform:translate3d(150px,0,0)}.ui.visible[class*="very thin"].left.sidebar~.fixed,.ui.visible[class*="very thin"].left.sidebar~.pusher{transform:translate3d(60px,0,0)}.ui.visible.wide.left.sidebar~.fixed,.ui.visible.wide.left.sidebar~.pusher{transform:translate3d(350px,0,0)}.ui.visible[class*="very wide"].left.sidebar~.fixed,.ui.visible[class*="very wide"].left.sidebar~.pusher{transform:translate3d(475px,0,0)}.ui.visible.thin.right.sidebar~.fixed,.ui.visible.thin.right.sidebar~.pusher{transform:translate3d(-150px,0,0)}.ui.visible[class*="very thin"].right.sidebar~.fixed,.ui.visible[class*="very thin"].right.sidebar~.pusher{transform:translate3d(-60px,0,0)}.ui.visible.wide.right.sidebar~.fixed,.ui.visible.wide.right.sidebar~.pusher{transform:translate3d(-350px,0,0)}.ui.visible[class*="very wide"].right.sidebar~.fixed,.ui.visible[class*="very wide"].right.sidebar~.pusher{transform:translate3d(-475px,0,0)}.ui.overlay.sidebar{z-index:102}.ui.left.overlay.sidebar{transform:translate3d(-100%,0,0)}.ui.right.overlay.sidebar{transform:translate3d(100%,0,0)}.ui.top.overlay.sidebar{transform:translate3d(0,-100%,0)}.ui.bottom.overlay.sidebar{transform:translate3d(0,100%,0)}.animating.ui.overlay.sidebar,.ui.visible.overlay.sidebar{transition:transform .5s ease}.ui.visible.bottom.overlay.sidebar,.ui.visible.left.overlay.sidebar,.ui.visible.right.overlay.sidebar,.ui.visible.top.overlay.sidebar{transform:translateZ(0)}.ui.visible.overlay.sidebar~.fixed,.ui.visible.overlay.sidebar~.pusher{transform:none!important}.ui.push.sidebar{transition:transform .5s ease;z-index:102}.ui.left.push.sidebar{transform:translate3d(-100%,0,0)}.ui.right.push.sidebar{transform:translate3d(100%,0,0)}.ui.top.push.sidebar{transform:translate3d(0,-100%,0)}.ui.bottom.push.sidebar{transform:translate3d(0,100%,0)}.ui.uncover.sidebar,.ui.visible.push.sidebar{transform:translateZ(0)}.ui.uncover.sidebar{z-index:1}.ui.visible.uncover.sidebar{transform:translateZ(0);transition:transform .5s ease}.ui.slide.along.sidebar{z-index:1}.ui.left.slide.along.sidebar{transform:translate3d(-50%,0,0)}.ui.right.slide.along.sidebar{transform:translate3d(50%,0,0)}.ui.top.slide.along.sidebar{transform:translate3d(0,-50%,0)}.ui.bottom.slide.along.sidebar{transform:translate3d(0,50%,0)}.ui.animating.slide.along.sidebar{transition:transform .5s ease}.ui.visible.slide.along.sidebar{transform:translateZ(0)}.ui.slide.out.sidebar{z-index:1}.ui.left.slide.out.sidebar{transform:translate3d(50%,0,0)}.ui.right.slide.out.sidebar{transform:translate3d(-50%,0,0)}.ui.top.slide.out.sidebar{transform:translate3d(0,50%,0)}.ui.bottom.slide.out.sidebar{transform:translate3d(0,-50%,0)}.ui.animating.slide.out.sidebar{transition:transform .5s ease}.ui.visible.slide.out.sidebar{transform:translateZ(0)}.ui.scale.down.sidebar{transition:transform .5s ease;z-index:102}.ui.left.scale.down.sidebar{transform:translate3d(-100%,0,0)}.ui.right.scale.down.sidebar{transform:translate3d(100%,0,0)}.ui.top.scale.down.sidebar{transform:translate3d(0,-100%,0)}.ui.bottom.scale.down.sidebar{transform:translate3d(0,100%,0)}.ui.scale.down.left.sidebar~.pusher{transform-origin:75% 50%}.ui.scale.down.right.sidebar~.pusher{transform-origin:25% 50%}.ui.scale.down.top.sidebar~.pusher{transform-origin:50% 75%}.ui.scale.down.bottom.sidebar~.pusher{transform-origin:50% 25%}.ui.animating.scale.down>.visible.ui.sidebar{transition:transform .5s ease}.ui.animating.scale.down.sidebar~.pusher,.ui.visible.scale.down.sidebar~.pusher{display:block!important;width:100%;height:100%;overflow:hidden!important}.ui.visible.scale.down.sidebar{transform:translateZ(0)}.ui.visible.scale.down.sidebar~.pusher{transform:scale(.75)}
/*!
 * # Semantic UI - Sticky
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.sticky{position:static;transition:none;z-index:800}.ui.sticky.bound{position:absolute;left:auto;right:auto}.ui.sticky.fixed{position:fixed;left:auto;right:auto}.ui.sticky.bound.top,.ui.sticky.fixed.top{top:0;bottom:auto}.ui.sticky.bound.bottom,.ui.sticky.fixed.bottom{top:auto;bottom:0}.ui.native.sticky{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky}
/*!
 * # Semantic UI - Tab
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:"";top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:"";top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#767676;box-shadow:0 0 0 1px transparent}
/*!
 * # Semantic UI - Transition
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{transform:scale(.8) translateZ(0);z-index:-1}10%{transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{transform:scale(.8) translateZ(0);z-index:-1}10%{transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:-1;transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:-1;transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:1;transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:1;transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}.drop.transition{transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes dropIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}@keyframes dropOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;transform:translateY(-10%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10%)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{transform:perspective(2000px) rotateY(-90deg);opacity:0}to{transform:perspective(2000px) rotateY(0deg);opacity:1}}@keyframes horizontalFlipIn{0%{transform:perspective(2000px) rotateY(-90deg);opacity:0}to{transform:perspective(2000px) rotateY(0deg);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{transform:perspective(2000px) rotateX(-90deg);opacity:0}to{transform:perspective(2000px) rotateX(0deg);opacity:1}}@keyframes verticalFlipIn{0%{transform:perspective(2000px) rotateX(-90deg);opacity:0}to{transform:perspective(2000px) rotateX(0deg);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{transform:perspective(2000px) rotateY(0deg);opacity:1}to{transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{transform:perspective(2000px) rotateY(0deg);opacity:1}to{transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{transform:perspective(2000px) rotateX(0deg);opacity:1}to{transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{transform:perspective(2000px) rotateX(0deg);opacity:1}to{transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;transform:translate3d(0,1500px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;transform:translate3d(0,1500px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;transform:translate3d(0,-1500px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes flyInDown{0%{opacity:0;transform:translate3d(0,-1500px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;transform:translate3d(1500px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes flyInLeft{0%{opacity:0;transform:translate3d(1500px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;transform:translate3d(-1500px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes flyInRight{0%{opacity:0;transform:translate3d(-1500px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@-webkit-keyframes flyOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;transform-origin:center left}@-webkit-keyframes swingInX{0%{transform:perspective(1000px) rotateX(90deg);opacity:0}40%{transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{transform:perspective(1000px) rotateX(15deg)}80%{transform:perspective(1000px) rotateX(-7.5deg)}to{transform:perspective(1000px) rotateX(0deg)}}@keyframes swingInX{0%{transform:perspective(1000px) rotateX(90deg);opacity:0}40%{transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{transform:perspective(1000px) rotateX(15deg)}80%{transform:perspective(1000px) rotateX(-7.5deg)}to{transform:perspective(1000px) rotateX(0deg)}}@-webkit-keyframes swingInY{0%{transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{transform:perspective(1000px) rotateY(30deg);opacity:1}60%{transform:perspective(1000px) rotateY(-17.5deg)}80%{transform:perspective(1000px) rotateY(7.5deg)}to{transform:perspective(1000px) rotateY(0deg)}}@keyframes swingInY{0%{transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{transform:perspective(1000px) rotateY(30deg);opacity:1}60%{transform:perspective(1000px) rotateY(-17.5deg)}80%{transform:perspective(1000px) rotateY(7.5deg)}to{transform:perspective(1000px) rotateY(0deg)}}@-webkit-keyframes swingOutX{0%{transform:perspective(1000px) rotateX(0deg)}40%{transform:perspective(1000px) rotateX(-7.5deg)}60%{transform:perspective(1000px) rotateX(17.5deg)}80%{transform:perspective(1000px) rotateX(-30deg);opacity:1}to{transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{transform:perspective(1000px) rotateX(0deg)}40%{transform:perspective(1000px) rotateX(-7.5deg)}60%{transform:perspective(1000px) rotateX(17.5deg)}80%{transform:perspective(1000px) rotateX(-30deg);opacity:1}to{transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{transform:perspective(1000px) rotateY(0deg)}40%{transform:perspective(1000px) rotateY(7.5deg)}60%{transform:perspective(1000px) rotateY(-10deg)}80%{transform:perspective(1000px) rotateY(30deg);opacity:1}to{transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{transform:perspective(1000px) rotateY(0deg)}40%{transform:perspective(1000px) rotateY(7.5deg)}60%{transform:perspective(1000px) rotateY(-10deg)}80%{transform:perspective(1000px) rotateY(30deg);opacity:1}to{transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}@-webkit-keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@-webkit-keyframes jiggle{0%{transform:scaleX(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleX(1)}}@keyframes jiggle{0%{transform:scaleX(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}.cs__tabs--maxWidth{margin-left:auto;margin-right:auto;max-width:1200px}.cs__tabs--vertical{display:flex}.cs__tabsWrapper{display:flex;box-shadow:2px 2px 10px hsla(0,0%,50.2%,.28)}@media only screen and (max-width:700px){.cs__tabsWrapper{flex-wrap:nowrap}}.cs__tabsWrapper--fixed{position:fixed;top:128px;left:0;width:100%;z-index:10;background-color:#fff}.cs__tabs--vertical .cs__tabsWrapper{flex:0 0 300px;flex-direction:column;justify-content:flex-start;align-items:flex-start}@media only screen and (max-width:700px){.cs__tabs--vertical .cs__tabsWrapper{flex:auto}}.cs__tabs--inverted .cs__tabsWrapper{background-color:#4c4c4c;padding:1em;color:#fff}.cs__tabItem{box-sizing:border-box;padding:1em;text-align:center;color:#929daf;overflow:hidden;text-overflow:ellipsis;display:block;cursor:pointer;transition:all .3s ease-in-out;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:1.25em;border-right:1px solid hsla(0,0%,50.2%,.3)}@media only screen and (max-width:700px){.cs__tabItem{font-size:1em;flex:auto;padding:.25em}}.cs__tabs--vertical .cs__tabItem{width:100%;text-align:left;border:0}.cs__tabs--inverted .cs__tabItem{color:#fff}.cs__tabs--inverted .cs__tabItem--sub{opacity:.8}.cs__tabs--inverted.cs__tabs--vertical .cs__tabItem--active{background-color:#536a8c;border-radius:5px;opacity:1}.cs__tabSection{width:100%}.cs__tabHead{padding:.5em;cursor:pointer}@media only screen and (max-width:700px){.cs__tabHead{font-size:1.2em}}.cs__tabItem--sub{height:0;padding:0 .5em 0 2em;font-size:.95em;transition:all .2s ease-in-out}@media only screen and (max-width:700px){.cs__tabItem--sub{font-size:1em}}.cs__tabSection.cs__tabSection--active .cs__tabItem--sub{padding:.5em .5em .5em 2em;height:auto}.cs__tabs--vertical .cs__tabItem--active{background-color:#ebf3ff}.cs__tabItem--active{background-color:#536a8c;color:#fff}.cs__tabHead:hover,.cs__tabItem:active,.cs__tabItem:focus,.cs__tabItem:hover{outline:0;opacity:.7}@media only screen and (max-width:700px){.cs__tab__contents{margin-top:1.5em}}.cs__tabs--vertical .cs__tab__contents{padding:2em}@media only screen and (max-width:700px){.cs__tabs--vertical .cs__tab__contents{display:none}}.cs__tab__content{overflow:hidden;opacity:0;height:0;transition:opacity .5s ease-in-out}.cs__tab__content--active{opacity:1;height:auto}.cs__table{border-radius:8px;border:1px solid rgba(0,0,0,.16);overflow:hidden}.cs__table table{width:100%;border-collapse:separate}.cs__table table th{font-size:1em;font-weight:700}.cs__table table td,.cs__table table th{padding:.5em}.cs__table table .cs__table__pillar--left{border-left:1px solid rgba(0,0,0,.16)}.cs__table table .cs__table__pillar--right{border-right:1px solid rgba(0,0,0,.16)}.cs__table table .cs__table__total{background-color:#ececec}.cs__table table .cs__table__total td,.cs__table table .cs__table__total th{border-top:1px solid rgba(0,0,0,.16)}.cs__table table thead{background-color:#f6f6f6}.cs__table table thead tr:not(last-child) td,.cs__table table thead tr:not(last-child) th{border-bottom:1px solid rgba(0,0,0,.16)}.cs__table table thead .cs__table__cell--invertedBlue{color:#3c92e1;background-color:#ecf6ff}.cs__table table tbody tr:first-child td,.cs__table table tbody tr:first-child th{border-top:1px solid rgba(0,0,0,.16)}.cs__table table tbody tr:last-child td,.cs__table table tbody tr:last-child th{border-bottom:1px solid rgba(0,0,0,.16)}.cs__table table tbody tr:nth-child(2n) td,.cs__table table tbody tr:nth-child(2n) th{background-color:#fafafa}.cs__table table tfoot{background-color:#ececec}.cs__table table .cs__table__cell--green{color:#13b713}.cs__table table .cs__table__cell--red{color:#ff3535}.cs__table table .cs__table__cell--num{text-align:right}.cs__table table .cs__table__text--alignLeft{text-align:left}.cs__table table .cs__table__cell--invertedBlue{font-weight:700;border-color:#3c92e1}.cs__table--centerAlign{text-align:center}.cs__table--marginTopBottom{margin:1em 0}@media only screen and (max-width:700px){.cs__table{overflow-x:scroll}.cs__table table{max-width:1200px}}.indices__slider{display:flex!important;align-items:center}#cs-indices-page .indices__slider.fixed{position:fixed!important;margin:0 .5em!important;width:calc(100% - 1.8em - 2px)!important;box-shadow:3px 3px 10px hsla(0,0%,50.2%,.3);height:75px!important;z-index:10}@media only screen and (max-width:700px){#cs-indices-page .indices__slider.fixed{position:static!important;width:100%!important;margin:0!important}}.indices__slider__slidesWrapper{position:relative;flex:0 0 calc(100% - 60px);height:75px;overflow:hidden}.indices__slider__slides{display:flex;align-items:center;position:absolute;left:0;top:0;width:100%;transition:left .25s}.indices__slider__slides .column{position:relative;min-width:14.3%;flex:0 0 14.3%;height:75px;background-color:#fff;padding:.5em}@media only screen and (max-width:767px){.indices__slider__slides .column{min-width:100%;flex:0 0 100%}}.indices__slider__slides .column .cs-index-container>a{display:flex;align-items:center;color:#000;font-weight:300}.indices__slider__slides .column .cs-index-container>a .indices__slider__name{font-size:1.3em}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart{position:relative;flex:0 0 40%}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .line{stroke-width:1.5px;stroke:#d4d4d5}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .area{opacity:0}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .x-grid,.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .y-grid{stroke:transparent}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .bg{stroke:transparent;fill:transparent}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .tick text{opacity:0}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart path:not(.line){stroke:transparent}.indices__slider__slides .column .cs-index-container>a .indices__slider__stats{flex:0 0 60%}.indices__slider__slides .column .cs-index-container>a .indices__slider__stats>div{white-space:nowrap}.indices__slider__slides .column .cs-index-container>a .indices__slider__points span:first-child{margin-right:5px}.indices__slider__slides .column .cs-index-container>a .green{color:#21ba45}.indices__slider__slides .column .cs-index-container>a .red{color:#db2828}.indices__slider__slides>.column:not(:last-child):before{content:"";position:absolute;border-left:1px dotted #c9c9c9;height:100%;right:0;top:0;z-index:11}@media only screen and (max-width:767px){.indices__slider__slides>.column:not(:last-child):before{display:none}}.indices__slider__controls{flex:0 0 30px;display:flex;align-items:center;justify-content:center;height:100%;background-color:#fff;cursor:pointer;transition:background-color .5s}.indices__slider__controls i{font-size:1.25em;margin:0;width:100%;display:flex;align-items:center;justify-content:center}.indices__slider__controls:hover{background-color:#f0f8ff}.cs-table th .icon.sort{float:right;margin-right:0;color:#999}.cs-table th:hover .icon.sort{color:#000}.cs-range-scale{font-size:.8em;text-align:left}.cs-range-scale .ui.header{margin-bottom:0}.cs-range-scale .bar{position:relative;height:8px;display:flex}.cs-range-scale .bar .point{height:8px;outline:1px solid #fff;flex:1 1 auto}.cs-range-scale .high,.cs-range-scale .low{font-weight:700}.cs-range-scale .high{float:right}.cs-range-scale .bar .caret{position:absolute;bottom:-10px;left:0;margin-left:-8px;font-size:1.3em}.cs-support-resistance{cursor:pointer;margin:0 .8em}.cs-support-resistance .rail{width:100%;height:40px;position:relative}.cs-support-resistance .rail .ui.popup{padding:.3em;background-color:#3a5b83;margin:0;right:unset;top:10px;left:0;text-align:center;z-index:auto;border-radius:5px;display:block}.cs-support-resistance .rail .ui.popup:before{background-color:#3a5b83}.cs-support-resistance .rail .icon{color:#000;position:absolute;top:0;margin:0;width:-webkit-min-content;width:-moz-min-content;width:min-content;font-size:18px;display:none}.cs-support-resistance .head{margin-left:-.8em;margin-bottom:1.6em}.cs-support-resistance .sr-bar{width:100%;background:linear-gradient(90deg,#f03635,#444657 50%,#3ac95c);height:15px;position:relative}.cs-support-resistance .sr-bar .point{top:-23.5px;width:45px;position:absolute;display:flex;flex-direction:column;align-items:center}.cs-support-resistance .sr-bar .point .title,.cs-support-resistance .sr-bar .point .value{text-align:center}.cs-support-resistance .sr-bar .point .title{color:#fff;border-radius:5px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:.8em}.cs-support-resistance .sr-bar .point .value{font-size:.65em}.cs-support-resistance .sr-bar .point.s2{left:-22.5px}.cs-support-resistance .sr-bar .point.s2 .title{background-color:#f63639}.cs-support-resistance .sr-bar .point.s1{left:calc(25% - 22.5px)}.cs-support-resistance .sr-bar .point.s1 .title{background-color:#bf4146}.cs-support-resistance .sr-bar .point.pp{left:calc(50% - 22.5px)}.cs-support-resistance .sr-bar .point.pp .title{background-color:#424655}.cs-support-resistance .sr-bar .point.r1{left:calc(75% - 22.5px)}.cs-support-resistance .sr-bar .point.r1 .title{background-color:#2f9e50}.cs-support-resistance .sr-bar .point.r2{left:calc(100% - 22.5px)}.cs-support-resistance .sr-bar .point.r2 .title{background-color:#32cb5b}.cs-support-resistance.show-pointer .rail{height:10px}.cs-support-resistance.show-pointer .rail .ui.popup{z-index:1;visibility:hidden;opacity:0;transition:visibility 0s,opacity .2s linear}.cs-support-resistance.show-pointer:hover .ui.popup{visibility:visible;opacity:1;transition:visibility 0s,opacity .2s linear}.cs-slider{padding:0 3em;position:relative}.cs-slider>i{position:absolute;font-size:2em;top:calc(50% - 15px);display:block;cursor:pointer;opacity:.7}.cs-slider>i.disabled{opacity:.1!important}.cs-slider>i:hover{opacity:1}.cs-slider>i.left{left:0}.cs-slider>i.right{right:0}.cs-slider .slider-rail .slide{margin:.5em 5px;min-width:calc(33.33% - 10px)}.cs-slider .slider-rail.two .slide{min-width:calc(50% - 10px)}.cs-slider .slider-rail.one .slide{min-width:calc(100% - 10px)}.cs-trend{padding:1em;border:1px solid #e2e2e2;font-weight:700}.cs-trend .red{color:red}.cs-trend .green{color:#25ba45}.cs-trend .ui.segment{min-height:0!important}@media only screen and (max-width:700px){.cs-trend{padding:.5em}.cs-trend .ui.header{font-size:1.2em}}.cs-header-wrapper{background:#fff;height:95px;width:100%;position:fixed;top:0;left:0;z-index:20}#cs-header{background-color:hsla(0,0%,100%,0);border:none;z-index:2;box-shadow:none;height:52px}#cs-header.cal{background-color:#029992}#cs-header .currency-rate{display:none;font-size:.8em;font-style:italic;margin-top:2px;color:#708090}#cs-header .currency-rate .rate{font-weight:700;color:#000}#cs-header .currency-rate.visible{display:block}#cs-header .ui.dropdown.cs-currency-dropdown{display:block;position:relative;padding:1.3em .5em .5em;z-index:1}#cs-header .ui.dropdown.cs-currency-dropdown img{width:17px;vertical-align:text-top;margin:0 .5em 0 0}#cs-header .ui.dropdown.cs-currency-dropdown:before{content:"Currency";position:absolute;top:3px;left:8px;font-size:.8em;color:#8a8989}#cs-header .ui.dropdown.cs-currency-dropdown.no-visiblitiy{visibility:hidden}#cs-header .cs-portal{margin:0;padding:1em .2em 1em .5em;font-weight:300}#cs-header-mobile{display:none;z-index:1000;border-radius:0}#cs-header-mobile .logo{background:url(/assets/images/logo-360.png) bottom;display:inline-block;background-size:35px 35px!important;width:35px;height:35px}#cs-header-mobile .mobile-btn{background:0;color:#fff;padding:0;font-size:1.5em}#cs-header-mobile .mobile-menu{display:none;position:absolute;z-index:900;width:100%;overflow-x:scroll;background-color:#1b5586;font-size:1.2em}#cs-header-mobile .mobile-menu .mobile__listItem{display:block;cursor:pointer;color:#fff;text-decoration:none;padding:1em}#cs-header-mobile .mobile-menu .mobile__listItem:not(:last-child){border-bottom:1px solid hsla(0,0%,100%,.17)}#cs-header-mobile .mobile-menu .mobile__listItem--dropdown{display:flex;justify-content:space-between}#cs-header-mobile .mobile-menu .mobile__listItem--disabled i,#cs-header-mobile .mobile-menu .mobile__listItem--hidden{display:none}#cs-header-mobile .mobile-menu .mobile__dropdownList{background-color:#54677b;max-height:0;overflow:hidden;transition:all .5s ease-in}#cs-header-mobile .mobile-menu .mobile__dropdownList--show{max-height:400px;transition:all .5s ease-out}#cs-header-mobile .mobile-menu .mobile__dropdownListItem{display:block;color:#fff;padding:1em}#cs-header-mobile .mobile-menu .mobile__dropdownList>.mobile__dropdownListItem:not(:last-child){border-bottom:1px solid hsla(0,0%,100%,.17)}#cs-header-mobile .mobile-menu .mobile__listItem--feedback{background:#43648c;text-align:center}#cs-header-mobile .mobile-menu .current__currency{display:flex;align-items:center;justify-content:flex-end}#cs-header-mobile .mobile-menu .ui.inverted.vertical.menu{width:100%;background:#1b5586}#cs-header-mobile .mobile-menu .item .sub-menu .item{border:0}#cs-header-mobile .mobile-menu .currency__flag{margin:0 .5em;display:flex}#cs-header-mobile .mobile-menu .currency__flag>img{height:20px}#cs-header-mobile .mobile-menu .currency__date,#cs-header-mobile .mobile-menu .currency__rate{font-size:.6em}#cs-header-mobile .mobile-menu .currency__date{margin:0 1em 0 .5em;opacity:.7}#cs-header-mobile .mobile-menu .mobile__listItem--currency{background-color:#585858}#cs-header-mobile .mobile-menu .mobile__dropdownList--currency{background-color:#868686}#cs-header-mobile .mobile-menu .mobile__dropdownListItem--currency{display:flex;justify-content:space-between}#cs-header-mobile .mobile-menu .mobile__dropdownListItem--currency.mobile__dropdownListItem--selected{background-color:#b3b3b3}#cs-header-mobile .search-bar,#cs-header-mobile .search-bar-menu{background-color:#1b5586;position:absolute;top:0;width:100%;z-index:1001}#cs-header-mobile .search-bar-menu .ui.input,#cs-header-mobile .search-bar-menu .ui.search,#cs-header-mobile .search-bar .ui.input,#cs-header-mobile .search-bar .ui.search{width:100%}#cs-header-mobile .search-bar-menu input,#cs-header-mobile .search-bar input{width:100%;border:none;border-bottom:1px solid hsla(0,0%,100%,.5);border-radius:0;background:none;padding-left:.4em;color:#fff;padding-top:.6em;padding-bottom:.5em;color:hsla(0,0%,100%,.5);height:35px}#cs-header-mobile .search-bar-menu .ui.input ::-moz-placeholder,#cs-header-mobile .search-bar .ui.input ::-moz-placeholder{color:hsla(0,0%,100%,.5)}#cs-header-mobile .search-bar-menu .ui.input :-ms-input-placeholder,#cs-header-mobile .search-bar .ui.input :-ms-input-placeholder{color:hsla(0,0%,100%,.5)}#cs-header-mobile .search-bar-menu .ui.input ::placeholder,#cs-header-mobile .search-bar .ui.input ::placeholder{color:hsla(0,0%,100%,.5)}.search-bar-menu{display:none;background:#2c6a9e!important}.search-bar-menu .ui.search .ui.input{width:90%!important}.search-bar-menu .ui.search .close.icon{font-size:1.3em;margin:0;width:9%}#cs-header .ui.grid{margin:0}#cs-header .item.logo-wrapper{padding:.5em .5em .2em .6em}#cs-footer .logo,#cs-header .logo{background:url(/assets/images/logo-360.png) bottom;display:inline-block}#cs-footer .logo.cal,#cs-header .logo.cal{background-image:url(/assets/images/logo-capitalanalytics.jpg)}#cs-header .logo{background-size:80px 80px;height:80px;margin-bottom:-40px;width:80px}#cs-header .logo.psx{background:url(/assets/images/psx.png) #fff bottom no-repeat;background-size:contain!important;border-radius:4px}#cs-footer .logo{background-size:90px 90px!important;width:90px!important;height:90px!important}#cs-header-menu{background-color:#1b5586;border-radius:0;margin:0;z-index:1}#cs-header-menu.cal{background-color:#017c77}#cs-header-mobile.cs-basic-menu{background:#2c6a9e}#cs-header-menu .ui.grid{margin:0}#cs-header-menu .item.home{margin-left:7em}#cs-header-menu.ui.inverted.menu .ui.dropdown .menu{background:#316591}#cs-header-menu.ui.inverted.menu .dropdown .menu .item{color:#fff!important}#cs-header-menu .item{font-size:15.4px;font-size:1.1rem}#cs-header-search{padding:0}#cs-header-search .ui.input input{border:none;border-radius:0;background:none;padding-left:.4em;color:#fff;padding-top:.6em;padding-bottom:.5em;max-width:160px}#cs-header-search .ui.input ::-moz-placeholder{color:#95b4cf}#cs-header-search .ui.input :-ms-input-placeholder{color:#95b4cf}#cs-header-search .ui.input ::placeholder{color:#95b4cf}#cs-header-menu.hide-research a[href="/client-research"],#cs-header-mobile.hide-research a[href="/client-research"]{display:none}#cs-header-menu .cs-currency-dropdown{width:190px;padding:.5em 1em!important;flex-wrap:wrap;display:none}#cs-header-menu .cs-currency-dropdown .currency-rate{flex:0 0 100%;display:none}#cs-header-menu .cs-currency-dropdown .currency-rate .date{opacity:.7}#cs-header-menu .cs-currency-dropdown .currency-rate.visible{display:block}@media only screen and (max-width:767px){#cs-header,#cs-header-menu{display:none}#cs-header-mobile{display:block}#cs-header-mobile .search-bar .ui.search .results{width:100%}}#cs-home .ui.ribbon.label{font-size:1.2em;left:-2rem}#cs-home .ui.ribbon.label:after{border-width:0 .9em .9em 0}#cs-home-stock{margin-top:0}#cs-home-stock.horizontal #cs-home-indices{width:40%}#cs-home-stock.horizontal #cs-home-performers{width:35%}#cs-home-stock.horizontal #cs-home-announcements{width:25%}#cs-home-performers .ui.tab.segment{padding:0;min-height:300px}#cs-home-commodities .ui.statistics .statistic>.value,#cs-home-forex .ui.statistics .statistic>.value,#cs-home-global .ui.statistics .statistic>.value{font-size:1.6em}#cs-home-calendar .ui.list>.item{padding-top:0;padding-bottom:.5em;padding-left:.3em;border-radius:4px;position:relative;transition-property:background;transition-duration:.3s;transition-timing-function:ease-in-out;cursor:pointer}#cs-home-calendar .ui.list>.item .header{line-height:2em;font-size:.9em;color:#767676;font-weight:400}#cs-home-calendar .circle{position:absolute;width:10px;height:10px;border-radius:5px;border:2px solid #2c6a9e;left:-1.392em;top:.54em;background:#fff;transition-property:background;transition-duration:.3s;transition-timing-function:ease-in-out}#cs-home-calendar .ui.list>.item .icon.external{opacity:0;transition:opacity .3s ease-in-out}#cs-home-calendar .ui.list>.item:hover{background:#eff7ff}#cs-home-calendar .ui.list>.item:hover .circle{background:#2c6a9e}#cs-home-calendar .ui.list>.item:hover .icon.external{opacity:1}.cs-modal-small{width:400px!important}@media only screen and (max-width:700px){.cs-modal-small .field{margin-bottom:.5em!important}.cs-modal-small .ui.facebook.button{margin:.9em!important;width:90%!important}}#signup-box form{padding-top:0!important}#signup-box .ui.red.message{display:none}#signup-box .ui.facebook.button{width:auto;margin:1.3em}#cs-feedback-modal #list{margin:1em 0;display:flex;overflow:scroll}#cs-feedback-modal #list span{margin:0 1em}#cs-feedback-modal #list span .thumb{width:150px}#top-fixed-nav{display:none;height:100px;background:#fff;box-shadow:0 0 0 1px #d4d4d5!important}#top-fixed-nav .logo{background-size:80px 80px!important;height:80px;margin:10px 10px 0 0;width:80px;background:url(/assets/images/logo-360.png) bottom;display:inline-block}#top-fixed-nav .logo.cal{background-image:url(/assets/images/logo-capitalanalytics.jpg)}#top-fixed-nav .logo.psx{background-image:url(/assets/images/psx.jpg)}#top-fixed-nav .cs-enterprise-logo{color:rgba(0,0,0,.87);font-size:20px;position:absolute;left:150px;top:42px;padding-left:27px;border-left:1px solid rgba(0,0,0,.87)}#top-fixed-nav .right.item.toc{display:none;margin-right:10px}#cs-signup-success-dialog h1,#cs-signup-success-dialog p{font-size:50px;text-align:center}#navbar-menu i{font-size:x-large;top:-119px!important;top:-8.5rem!important;right:21px!important;right:1.5rem!important}#navbar-menu .ui.menu.secondary{width:100%!important}#navbar-menu .ui.menu.secondary a.item{text-align:center}#navbar-menu .ui.menu.secondary .ui.inverted.button{width:100%}@media only screen and (max-width:700px){#top-fixed-nav{height:65px}#top-fixed-nav .cs-enterprise-logo{left:73px;top:23px;font-size:15px;padding-left:18px}#top-fixed-nav .right.menu .item{display:none}#top-fixed-nav .logo{margin-left:10px;background-size:45px 45px!important;width:45px;height:45px}#top-fixed-nav .right.item.toc{display:inline-block}}#cs-landing{background:#fff}#cs-landing #landing-chart{position:absolute;top:0;width:calc(100% + 40px);height:100%;left:-40px}#cs-landing #landing-chart svg{font:10px sans-serif;position:absolute}#cs-landing #landing-chart svg:first-of-type{background-color:#2c6a9e}#cs-landing #landing-chart .line{fill:none;stroke:#fff;stroke-width:1.5px}#cs-landing #landing-chart .axis line,#cs-landing #landing-chart .axis path{fill:none;stroke:#fff;shape-rendering:crispEdges}#cs-landing .ui.segment{border:0}#cs-landing .logo{background-size:80px 80px!important;height:80px;margin:0 40px -20px 0;width:80px;background:url(/assets/images/logo-360.png) bottom;display:inline-block}#cs-landing .logo.cal{background-image:url(/assets/images/logo-capitalanalytics.jpg);margin-right:12px}#cs-landing .logo.psx{background:url(/assets/images/psx.jpg) #fff bottom no-repeat;background-size:contain!important;border-radius:4px}#cs-landing #cs-footer .logo{background-size:90px 90px!important;width:90px!important;height:90px!important;margin:0}#cs-landing #cs-footer .logo.cal{background-image:url(/assets/images/logo-capitalanalytics.jpg)}#cs-landing #cs-footer .logo.psx{background:url(/assets/images/psx.png) #fff bottom no-repeat;background-size:contain!important;border-radius:4px}#cs-landing .cs-enterprise-logo{color:#fff;font-size:20px;position:absolute;left:150px;top:45px;padding-left:27px;border-left:1px solid #fff}#cs-landing .cs-discover{cursor:pointer;margin-top:40px}#cs-landing .cs-discover p{color:#fff;opacity:.5}#cs-landing .cs-discover .title{margin:0}#cs-landing .cs-discover .icon{font-size:20px}#cs-landing .cs-discover:hover p{opacity:1}#cs-landing .cs-discover:hover .icon i{-webkit-animation:bounce 2s infinite;animation:bounce 2s infinite}#cs-landing .hidden.menu{display:none}#cs-landing .ui.inverted.segment{background-color:#2c6a9e}#cs-landing .ui.secondary.inverted.pointing.menu{border-color:#2c6a9e}#cs-landing .masthead.segment{min-height:115px;padding:1em 0}#cs-landing .masthead .logo.item img{margin-right:1em}#cs-landing .masthead .ui.menu .ui.button{margin-left:.5em}#cs-landing .masthead h1.ui.header{margin-top:4em;margin-bottom:0;font-size:4em;font-weight:400}#cs-landing .masthead h2{font-size:1.7em;font-weight:400}#cs-landing .ui.vertical.stripe{padding:8em 0}#cs-landing .ui.vertical.stripe h3{font-size:2em}#cs-landing .ui.vertical.stripe .button+h3,#cs-landing .ui.vertical.stripe p+h3{margin-top:3em}#cs-landing .ui.vertical.stripe .floated.image{clear:both}#cs-landing .ui.vertical.stripe p{font-size:1.33em}#cs-landing .ui.vertical.stripe .horizontal.divider{margin:3em 0}#cs-landing .quote.stripe.segment{padding:0}#cs-landing .quote.stripe.segment .grid .column{padding-top:5em;padding-bottom:5em}#cs-landing .secondary.pointing.menu .toc.item{display:none}#cs-landing .segment-bottom-border{border-bottom:1px solid rgba(34,36,38,.15)!important}#cs-landing .cs-container-image{display:flex;align-items:center}#cs-landing .cs-container-image img{width:100%}#cs-landing #home-nav{min-height:0;height:10%;z-index:1;background-color:rgba(44,106,158,0)}#cs-landing #home-nav .ui.pointing.menu{border:0}#cs-landing #home-banner{position:relative;background-color:rgba(44,106,158,0);z-index:1;display:flex;align-items:center;height:90%}#cs-landing #home-banner .ui.inverted.header{margin:0;text-shadow:0 0 4px #0b3e69}#cs-landing #home-banner h2{text-shadow:0 0 4px #0b3e69}#cs-landing #home-banner .start-trial{margin:2em 0}#cs-landing #home-banner .cs-disclaimer-footer{position:absolute;bottom:0;left:0;margin:0;text-align:left;font-size:.8em;padding:1em;line-height:normal}#cs-landing #free-trial{border-bottom:1px solid rgba(34,36,38,.15);padding:4em}#cs-landing #free-trial p{font-weight:300;text-align:center}#cs-landing #free-trial input{width:100%;height:60px}#cs-landing #free-trial button{font-size:16px;width:100%;height:60px}#cs-landing .cs-container-text{width:1280px!important}#cs-landing .container-dark{background-color:#f9fafa}#cs-landing .cs-ent-row{width:100%!important}#cs-landing .cs-ent-row .column{padding:0}#cs-landing .cs-ent-row .column .image{height:660px;background-repeat:no-repeat;background-position-y:top;background-size:cover;background-position-x:left}#cs-landing .cs-ent-row .column .image-window{margin-top:6em;box-shadow:0 -5px 59px -15px #455d69}#cs-landing .cs-ent-row .column .image-window .image{height:400px}#cs-landing .cs-ent-row .column .image-window .window{display:none;height:30px;background-color:#798996;border-top-left-radius:7px}#cs-landing .cs-ent-row .description{display:flex;align-items:center;margin:0 auto;justify-content:center}#cs-landing .cs-ent-row .description .des-text h1{position:relative;max-width:450px;font-weight:lighter}#cs-landing .cs-ent-row .description .des-text p{font-weight:100;font-size:1.2em;line-height:1.7;color:#697782;max-width:450px}#cs-landing .cs-ent-row.cs-col-inverse{background-color:#f3f9f9}#cs-landing .cs-ent-row.cs-col-inverse .image-window .window{border-top-left-radius:0;border-top-right-radius:7px}#cs-landing .cs-ent-feature-1 .image{background-image:url(https://mention.com/wp-content/themes/mention/img/photos/office1.jpg);background-size:60% auto;background-attachment:fixed}#cs-landing .cs-ent-feature-2 .image{background-image:url(https://mention.com/wp-content/themes/mention/img/photos/macbookIphne.png);background-size:60% auto;background-attachment:fixed;background-position:right 25%}#cs-landing .cs-ent-feature-3 .image{background-image:url(https://mention.com/wp-content/themes/mention/img/photos/office2.jpg);background-size:60% auto;background-attachment:fixed;background-position:left 80%}#cs-landing .cs-ent-feature-4 .image{background-image:url(https://mention.com/wp-content/themes/mention/img/photos/iPhone2.png);background-size:10% auto;background-attachment:fixed;background-position:70%}#cs-landing .cs-companies-list .image{background-image:url(/assets/images/companies-list.jpg)}#cs-landing .cs-sector-overview .image{background-image:url(/assets/images/sector-overview.jpg)}#cs-landing .cs-company-snapshot .image{background-image:url(/assets/images/company-snapshot.jpg)}#cs-landing .cs-fundamental-indicators .image{background-image:url(/assets/images/fundamental-indicators.jpg)}#cs-landing .cs-financial-statements .image{background-image:url(/assets/images/financial-statements.jpg)}#cs-landing .cs-technical-charting .image{background-image:url(/assets/images/technical-charting-v2.png)}#cs-landing .cs-stock-screening .image{background-image:url(/assets/images/stock-screener.jpg)}#cs-landing .cs-live-data .image{background-image:url(/assets/images/live-data.jpg)}#cs-landing .cs-ent-location{height:400px}#cs-landing .cs-ent-location .description .des-text a{cursor:pointer}#cs-landing .cs-ent-location .description .des-text h1:before{display:none}#cs-landing .cs-ent-location .description .des-text h1{color:rgba(0,0,0,.87)}#cs-landing .cs-ent-location .description .des-text.address-one{padding:0 5em 0 11em;border-right:1px solid #e0e4ea}#cs-landing .cs-ent-location .description .des-text.address-two{padding:0 11em 0 5em}#cs-landing .cs-ent-location .image.nyc{background:url(https://mention.com/wp-content/themes/mention/img/photos/map-nyc.png);height:400px;background-repeat:no-repeat;background-position:50%;background-size:cover}#cs-landing .cs-ent-location .image.paris{background:url(https://mention.com/wp-content/themes/mention/img/photos/map-paris.png);height:400px;background-repeat:no-repeat;background-position:50%;background-size:cover}@media only screen and (max-width:700px){#cs-landing .cs-ent-location .description{display:block}#cs-landing .cs-ent-location .image.nyc,#cs-landing .cs-ent-location .image.paris{height:auto}#cs-landing .cs-ent-location .des-text{padding:20px 0!important}#cs-landing .cs-ent-location .address-one{border-bottom:1px solid #e0e4ea;border-right:0!important}}@media only screen and (max-width:700px){#cs-landing .ui.vertical.stripe{padding:1em 0!important}#cs-landing .ui.vertical.stripe .cs-media-heading .ui.header{font-size:2em!important;margin-top:3em}#cs-landing .ui.vertical.stripe .cs-media-heading p{font-size:1.2em;margin-bottom:5em}#cs-landing .cs-enterprise-logo{left:90px;top:30px}#cs-landing .logo{background-size:45px 45px!important;width:45px;height:45px}#cs-landing #free-trial{padding:4em 0}#cs-landing #cs-pricing .cs-pricing-heading p{width:90%!important}#cs-landing .ui.fixed.menu{display:none!important}#cs-landing .secondary.pointing.menu .item{display:none}#cs-landing .secondary.pointing.menu .toc.item{display:block}#cs-landing .masthead.segment{min-height:80px}#cs-landing .masthead h1.ui.header{font-size:2em;margin-top:1.5em}#cs-landing .masthead h2{margin-top:.5em;font-size:1.5em}#cs-landing .cs-container-text{width:auto!important;text-align:center}#cs-landing .cs-ent-row{height:auto}#cs-landing .cs-ent-row .column{padding-bottom:0!important}#cs-landing .cs-ent-row .image{width:100%;background-size:cover;background-attachment:scroll;background-position:50%}#cs-landing .cs-ent-row .image-window{margin:0!important}#cs-landing .cs-ent-row .image-window .window{border-top-left-radius:7px!important;border-top-right-radius:7px!important}#cs-landing .cs-ent-row .image-window .image{height:180px!important}#cs-landing .cs-ent-row .description .des-text{text-align:center;padding:0;margin-top:2em}#cs-landing .cs-ent-row.cs-col-inverse{flex-direction:column-reverse}#cs-landing .cs-ent-feature-4 .image{background-repeat:no-repeat;background-size:30% auto;background-position:50%}}#cs-landing .cs-media-monitoring p{color:#697782;font-weight:100}#cs-landing .cs-media-monitoring .ui.grid.container{max-width:1000px!important}#cs-landing .cs-media-monitoring .cs-media-heading h1.ui.header{font-size:3em;font-weight:lighter}#cs-landing .cs-media-monitoring .cs-media-heading p{width:66%;margin:0 auto}#cs-landing .cs-media-monitoring .cs-media-columns{margin-top:2em}#cs-landing .cs-media-monitoring .cs-media-columns .each-column{margin-bottom:2em}#cs-landing .cs-media-monitoring .cs-media-columns .each-column img{width:100%}#cs-landing .cs-media-monitoring .cs-media-columns .each-column h1 i{display:inline;padding:1em;margin:0;box-shadow:12px 15px 20px 0 rgba(46,61,73,.15);border-radius:50%}#cs-landing .cs-media-monitoring .cs-media-columns .each-column p{font-size:1.1em}#cs-landing .cs-media-monitoring .cs-media-columns .each-column .column-head{font-size:1.5em;margin-top:2em;margin-bottom:0;font-weight:lighter}@media only screen and (max-width:700px){#cs-landing .cs-media-monitoring .cs-media-heading p{width:100%;margin:0 auto}}#cs-landing .cs-media-monitoring.cs-company .ui.grid.container{max-width:1200px!important}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .ui.header{font-size:2em}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .image{height:400px;background-repeat:no-repeat;background-size:contain}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .image.image-1{background-image:url(/assets/images/cs-financials.jpg)}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .image.image-2{background-image:url(/assets/images/cs-performance.jpg);background-position-x:100%}@media only screen and (max-width:700px){#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .ui.header{margin-top:1em!important}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics p{margin:0!important}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .image{height:auto;min-height:220px;max-height:400px;background-position-x:50%!important}}#cs-exp-features{background-color:#f9fafd}#cs-exp-features p{color:#697782}#cs-exp-features .ui.grid.container{max-width:1000px!important}#cs-exp-features .cs-media-columns{margin-top:60px}@media only screen and (max-width:700px){#cs-exp-features{text-align:center}#cs-exp-features .cs-media-columns{margin-top:0}#cs-exp-features .eight.wide.right.floated.column{display:none}}#cs-world-best p{color:#697782}#cs-world-best .ui.grid.container{width:100%!important}#cs-world-best .cs-world-overflow{overflow-x:scroll}#cs-world-best .cs-media-columns{height:390px;min-width:1700px!important}#cs-world-best .cs-media-columns .column{width:20%!important}#cs-world-best .each-column{border:1px solid #e2e2e2;padding:20% 10%;height:360px}#cs-world-best .each-column .image img{display:block;margin:0 auto;height:64px;width:64px;border-radius:64px}@media only screen and (max-width:700px){#cs-world-best .ui.grid.container{width:100%!important}}#cs-ent-request-demo{padding:11em 0!important;background-color:#1797dd}#cs-ent-request-demo .ui.header{color:#fff;margin-bottom:50px}#cs-pricing .ui.grid.container{max-width:1300px!important}#cs-pricing .cs-pricing-heading p{width:50%;margin:0 auto}#cs-pricing .cs-pricing-checkbox .color-blue{color:#2c6a9e}#cs-pricing .cs-pricing-checkbox .monthly{display:inline-block;margin-bottom:0;margin-right:30px}#cs-pricing .cs-pricing-checkbox .yearly{display:inline-block;margin-left:6em}#cs-pricing .cs-pricing-checkbox .ui.toggle.checkbox .box{width:3em;height:3em}#cs-pricing .cs-pricing-checkbox label:before{width:5em;height:2.5em}#cs-pricing .cs-pricing-checkbox label:after{width:2.5em;height:2.5em}#cs-pricing .cs-pricing-checkbox .ui.toggle.checkbox{height:2.5em;position:absolute}#cs-pricing .cs-pricing-checkbox .sixteen.wide.column{position:relative}#cs-pricing .cs-pricing-checkbox .ui.toggle.checkbox input{width:5em;height:2.5em}#cs-pricing .cs-pricing-checkbox .ui.toggle.checkbox input:checked+label:after{left:2.5em}#cs-pricing .cs-pricing-columns .ui.segment{height:658px;padding:0;position:relative}#cs-pricing .cs-pricing-columns .heading.free{background-color:#fba92b}#cs-pricing .cs-pricing-columns .heading.standard{background-color:#56be8e}#cs-pricing .cs-pricing-columns .heading.gold{background-color:#3ea9f5}#cs-pricing .cs-pricing-columns .heading.platinum{background-color:#3769cc}#cs-pricing .cs-pricing-columns .heading{display:flex;align-items:center;justify-content:center;height:170px}#cs-pricing .cs-pricing-columns .heading p{font-style:italic;font-weight:300}#cs-pricing .cs-pricing-columns .heading h1,#cs-pricing .cs-pricing-columns .heading p{color:#fff}#cs-pricing .cs-pricing-columns .properties{padding:2em}#cs-pricing .cs-pricing-columns .properties p{font-size:1.2em!important;text-align:center;font-weight:300;line-height:2;padding-bottom:10px;margin:0 0 10px;border-bottom:1px solid #edeff1}#cs-pricing .cs-pricing-columns .choose-btn{padding:0 2em 2em;position:absolute;bottom:0;width:100%}#cs-pricing .cs-pricing-columns .choose-btn button{width:100%!important}#cs-pricing .cs-pricing-columns .choose-btn.free button{background-color:#fba92b}#cs-pricing .cs-pricing-columns .choose-btn.standard button{background-color:#56be8e}#cs-pricing .cs-pricing-columns .choose-btn.gold button{background-color:#3ea9f5}#cs-pricing .cs-pricing-columns .choose-btn.platinum button{background-color:#3769cc}@media only screen and (max-width:700px){#cs-pricing .cs-pricing-columns .ui.segment{height:auto}#cs-pricing .cs-pricing-columns .choose-btn{position:static}}@media only screen and (max-width:700px){#cs-pricing .cs-pricing-checkbox .ui.toggle.checkbox{position:inherit;display:inline-block;padding-top:10px;margin-left:10px}#cs-pricing .cs-pricing-checkbox .yearly{display:block;margin:0}#cs-pricing .cs-pricing-checkbox .monthly{display:inline-block;margin:0}}#cs-contact-us .ui.segments .ui.segment{flex:1}@media only screen and (max-width:700px){#cs-contact-us .ui.segments{display:block}}#cs-about-us{background:#fff;padding-bottom:1em}#cs-about-us .cs-about-statements{padding:4em 0;max-width:800px!important}#cs-about-us .cs-about-jumbotron .sixteen.wide.column{height:650px;background-image:url(/assets/images/about-cover.jpg);background-position:50%;background-size:cover;display:flex;align-items:center;justify-content:center}#cs-about-us .cs-about-jumbotron .sixteen.wide.column .ui.header{font-weight:400;font-size:3em}#cs-about-us .cs-about-team{background:#f0f8ff}#cs-about-us .cs-about-team .ui.text.container{max-width:1200px!important}#cs-about-us .cs-about-team .ui.cards{margin:0}#cs-about-us .cs-about-team .card{background:none;text-align:center;box-shadow:none;margin-bottom:4em;transition:all .2s ease-in;transform:scale(1)}#cs-about-us .cs-about-team .card img{border-radius:0}#cs-about-us .cs-about-team .card .meta{margin:1em}#cs-about-us .cs-about-team .card:hover{transition:all .2s ease-in;transform:scale(1.1)}#cs-about-us .cs-about-logos{max-width:900px!important;margin:1em auto 2em}#cs-about-us .cs-about-logos .column{display:flex!important;align-items:center}#cs-about-us .cs-about-logos .ui.image{transition:all .2s ease-in;transform:scale(1)}#cs-about-us .cs-about-memberships,#cs-about-us .cs-about-partners{max-width:600px!important}#cs-about-us .cs-about-partners .eight.wide.column{display:flex;align-items:center}#cs-about-us .cs-about-partners .ui.image{transition:all .2s ease-in;transform:scale(1)}#cs-about-us .cs-about-logos .ui.image:hover{transition:all .2s ease-in;transform:scale(1.2)}#cs-about-us h1.ui.header,#cs-about-us p{font-weight:300}#cs-about-us p{margin:0}@media only screen and (max-width:700px){#cs-about-us .cs-about-jumbotron{margin:0;width:100%!important;margin:0!important}#cs-about-us .cs-about-jumbotron .sixteen.wide.column{height:500px}#cs-about-us .cs-about-jumbotron .ui.header{font-size:2em!important;margin:.5em!important}#cs-about-us .card{width:100%}}@-webkit-keyframes ball-grid-beat{50%{opacity:.7}to{opacity:1}}@keyframes ball-grid-beat{50%{opacity:.7}to{opacity:1}}.ball-grid-beat{width:100px;height:100px;position:absolute;top:50%;left:50%;margin-top:-50px;margin-left:-50px;transition-property:opacity;transition-duration:1s;transition-timing-function:ease-in-out}.ball-grid-beat>div:first-child{-webkit-animation-delay:-.07s;animation-delay:-.07s;-webkit-animation-duration:1.53s;animation-duration:1.53s}.ball-grid-beat>div:nth-child(2){-webkit-animation-delay:.72s;animation-delay:.72s;-webkit-animation-duration:.94s;animation-duration:.94s}.ball-grid-beat>div:nth-child(3){-webkit-animation-delay:.11s;animation-delay:.11s;-webkit-animation-duration:1.25s;animation-duration:1.25s}.ball-grid-beat>div:nth-child(4){-webkit-animation-delay:.13s;animation-delay:.13s;-webkit-animation-duration:1.01s;animation-duration:1.01s}.ball-grid-beat>div:nth-child(5){-webkit-animation-delay:.1s;animation-delay:.1s;-webkit-animation-duration:1.2s;animation-duration:1.2s}.ball-grid-beat>div:nth-child(6){-webkit-animation-delay:.18s;animation-delay:.18s;-webkit-animation-duration:.97s;animation-duration:.97s}.ball-grid-beat>div:nth-child(7){-webkit-animation-delay:-.09s;animation-delay:-.09s;-webkit-animation-duration:.67s;animation-duration:.67s}.ball-grid-beat>div:nth-child(8){-webkit-animation-delay:.42s;animation-delay:.42s;-webkit-animation-duration:.92s;animation-duration:.92s}.ball-grid-beat>div:nth-child(9){-webkit-animation-delay:.52s;animation-delay:.52s;-webkit-animation-duration:1.43s;animation-duration:1.43s}.ball-grid-beat>div{background-color:#fff;width:29%;height:29%;border-radius:100%;margin:2%;-webkit-animation-fill-mode:both;animation-fill-mode:both;display:inline-block;float:left;-webkit-animation-name:ball-grid-beat;animation-name:ball-grid-beat;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-delay:0;animation-delay:0}#cs-company .ui.header .cs-symbol{float:right;margin-top:.3em}@media only screen and (max-width:767px){#cs-company .ui.header .cs-symbol{margin:0;float:none}}@media only screen and (max-width:767px){#cs-company-overview .ui.stackable.grid .sixteen.wide.column,#cs-company>.sixteen.wide.column{padding-left:0!important;padding-right:0!important}}#cs-company-chart-mobile{display:none}#cs-company-chart-mobile .cs-chart-options-mobile{margin-top:.5em;padding:.2em 0;border-top:1px solid rgba(0,0,0,.19);border-bottom:1px solid rgba(0,0,0,.19)}#cs-company-chart-mobile .cs-chart-options-mobile .ui.menu{padding-left:5px}#cs-company-chart-mobile .cs-chart-options-mobile .ui.menu .item{margin:0}#cs-company-chart-mobile .cs-chart-mobile.dark .y.axis .tick text{stroke:#fff}#cs-company-chart-mobile .cs-chart-mobile.dark .x-grid,#cs-company-chart-mobile .cs-chart-mobile.dark .y-grid{stroke:rgba(126,127,128,.34)}#cs-company-chart-mobile .cs-chart-mobile.dark .line{stroke-width:.3px}#cs-company-chart-mobile .cs-chart-mobile.light .x-grid,#cs-company-chart-mobile .cs-chart-mobile.light .y-grid{stroke:hsla(0,0%,86.3%,.52)}#cs-company-chart-mobile .cs-chart-mobile.light .area{opacity:.7}#cs-company-chart-mobile .cs-chart-mobile.red linearGradient stop{stop-color:#db2828}#cs-company-chart-mobile .cs-chart-mobile.red .line{stroke:#db2828}#cs-company-chart-mobile .cs-chart-mobile.green linearGradient stop{stop-color:#21ba45}#cs-company-chart-mobile .cs-chart-mobile.green .line{stroke:#21ba45}#cs-company-chart-mobile .cs-chart-mobile{min-height:137px}@media only screen and (max-width:767px){#cs-company-chart-mobile{display:block}}#cs-company-stats-mobile{display:none}#cs-company-stats-mobile .column .ui.header{font-weight:300}#cs-company-stats-mobile #cs-company-price{display:flex;flex-flow:row wrap;justify-content:space-around}#cs-company-stats-mobile #cs-company-price .ui.header{width:50%;margin:0;font-size:1.7em;overflow:hidden;white-space:nowrap}#cs-company-stats-mobile #cs-company-price .update{width:100%;margin:.3em 0}@media only screen and (max-width:767px){#cs-company-stats-mobile{display:block}}#cs-company-indexes{text-align:right;margin-right:-.3em;margin-bottom:-.5em}#cs-company-indexes .ui.label{margin:0 .5em .5em 0;padding:.5em}@media only screen and (max-width:767px){#cs-company-indexes{float:none;display:block;margin-top:.5em;line-height:2}}#cs-company-defaulter .type>span{width:9px;overflow:hidden;display:inline-block;vertical-align:bottom;transition:width .5s}#cs-company-defaulter .type:hover>span{width:51px;transition:width .5s}#cs-company-detail .company-title>h2{margin:0 0 .2em;display:flex;align-items:center;justify-content:space-between}#cs-company-detail .company-title>h2>span{display:inline-flex;align-items:center}#cs-company-detail .company-type{font-size:1em}#cs-company-detail .ui.segment{width:50%}@media only screen and (max-width:767px){#cs-company-detail{display:none}#cs-company-detail .ui.horizontal.segments{flex-direction:column}#cs-company-detail .ui.horizontal.segments .ui.segment{width:100%}#cs-company-detail .ui.horizontal.segments .cs-chart-options .ui.secondary.menu{font-size:.8em}#cs-company-detail .ui.horizontal.segments .cs-chart-options .mobile-hide{display:none}}#cs-company-detail-mobile{display:none}#cs-company-detail-mobile .ui.header{font-weight:300;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width:767px){#cs-company-detail-mobile{display:block}}#cs-company-tabs{padding-top:0!important}#cs-company-tabs .attached{width:100%}#cs-company-tabs .ui.attached.title{display:none}#cs-company-tabs>.tab{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#cs-company-tabs>.attached.menu.fixed.top{top:0;box-shadow:0 7px 20px 0 rgba(46,61,73,.15);height:45px;width:calc(100% - 2.6em);left:1.35em;z-index:2}#cs-company-tabs>.tab.fixed{margin-top:45px}#cs-company-tabs .cs-analyst-recommend .heading,#cs-company-tabs .cs-forward-pe .heading{display:flex;align-items:center;justify-content:space-between}#cs-company-tabs .cs-analyst-recommend .heading h3,#cs-company-tabs .cs-forward-pe .heading h3{margin:0}#cs-company-tabs .cs-analyst-recommend table .period,#cs-company-tabs .cs-forward-pe table .period{color:#c3c1c1}#cs-company-tabs .cs-analyst-recommend table .passed,#cs-company-tabs .cs-forward-pe table .passed{position:relative;color:rgba(195,193,193,.65);background:#f0f0f0}#cs-company-tabs .cs-analyst-recommend table .passed tr td:first-child,#cs-company-tabs .cs-forward-pe table .passed tr td:first-child{width:170px}#cs-company-tabs .cs-history-recommend{position:relative}#cs-company-tabs .cs-history-recommend .period{color:#c3c1c1;margin-left:.5em}#cs-company-tabs .cs-history-recommend .open-pdf{cursor:pointer}#cs-company-tabs .cs-history-recommend .table-container{max-height:477px;overflow:scroll}#cs-company-tabs .cs-history-recommend .table-fixed-header{position:absolute;top:35px;left:0;width:100%;padding:1rem}@media only screen and (max-width:767px){#cs-company-tabs .cs-history-recommend .table-container .ui.table{min-width:1000px}#cs-company-tabs .cs-history-recommend .table-fixed-header{display:none}}#cs-company-tabs .cs-analyst-research{display:none}#cs-company-tabs .ui.tab[data-tab=research] .ui.popup{width:150px!important}#cs-company-tabs .tab[data-tab=performance] .title-cell{position:relative}@media only screen and (max-width:767px){#cs-company-tabs .content{overflow-y:scroll}#cs-company-tabs>.attached.menu{overflow:scroll;background-color:#fff!important;border-bottom:1px solid #ccc}#cs-company-tabs>.attached.menu .item:after,#cs-company-tabs>.attached.menu .item:before{display:none}#cs-company-tabs>.attached.menu .item{color:#000!important;background-color:#fff!important}#cs-company-tabs>.attached.menu .item.active{border-bottom:1px solid #707175}#cs-company-tabs .tab[data-tab=financials],#cs-company-tabs .tab[data-tab=performance]{overflow-x:scroll}#cs-company-tabs .ui.tab[data-tab=research] .column{padding-left:0!important;padding-right:0!important}}#cs-analyst-price-chart .bg{stroke:#fff;fill:#fff}#cs-analyst-price-chart .line{stroke-width:2px}#cs-analyst-price-chart .x-grid{stroke:#fff}#cs-analyst-price-chart .target{stroke-dasharray:5;stroke-width:2px;stroke:#9ea7ae}#cs-analyst-price-chart circle{fill:#9a9a9a}#cs-analyst-price-chart.target-price-chart .line{stroke:#a9a9a9}#cs-analyst-price-chart.target-price-chart .area{fill:none!important}#cs-overview-profile .sixteen.wide.column{display:none}#cs-overview-profile .eight.wide.column{width:100%!important}#cs-overview-profile .eight.wide.column .ui.definition.unstackable.table{margin-top:2em}#cs-company-price h1{font-size:2.2em;margin-bottom:0;font-weight:700}#cs-company-price h2.header{margin-top:.2em}#cs-company-price .ui.header>.icon{font-size:.9em;vertical-align:top}#cs-company-price .ui.header>.icon+.content{padding-left:0}#cs-company-price .ui.header.company-price-value span.green{color:#21ba45!important}#cs-company-price .ui.header.company-price-value span.red{color:#db2828!important}#cs-company-price h2.header span{font-size:.6em}#cs-company-price .update{color:#767676;font-size:.9em}#cs-company-stats{font-size:.85em;position:relative;min-height:95px}#cs-company-stats .ui.statistics{display:flex;flex-direction:column}#cs-company-stats .ui.statistics .statistic{margin:0 0 1em 1.4em}#cs-company-stats .ui.horizontal.segment{padding-left:0}#cs-company-profile{position:relative;padding-top:.14em}#cs-company-recommend .ui.accordion .title .ui.label{font-size:.7em;vertical-align:middle;margin-top:-1px}#cs-company-recommend .ui.accordion .title .dropdown.icon,#cs-company-recommend .ui.accordion .title .text{vertical-align:middle}#cs-company .cs-range-scale{margin-bottom:2em}.cs-financials-buttons{margin-bottom:.5em;display:flex;justify-content:space-between}.cs-financials-buttons .cs-financials-download{flex:auto;display:flex;align-items:center;justify-content:flex-end}.cs-financial-table{position:relative}.cs-financial-table .cs-table-fixed-header{display:none;position:fixed;top:45px;width:calc(100% - 8em);z-index:1}.cs-financial-table .cs-table-container.fixed-header .cs-table-fixed-header{display:block}.cs-financial-table .ui.definition.table{border-top:0;border-right:0}.cs-financial-table .ui.definition.table thead:not(.full-width) th:nth-child(2){border-left:none}.cs-financial-table .ui.definition.table thead th{position:relative;font-size:1.2em;line-height:1.3em;font-weight:900;text-align:center;border-left:none;background:none;color:#2c6a9e}.cs-financial-table .ui.definition.table thead th:hover .year .period{opacity:1;visibility:visible}.cs-financial-table .ui.definition.table thead th.year{text-align:right}.cs-financial-table .ui.definition.table thead th .year .period{position:absolute;top:-40px;border:1px solid #d3d3d3;padding:.5em;border-radius:4px;font-size:.8em;visibility:hidden;opacity:0;transition:all .2s;display:block;min-width:280px;right:-100px}.cs-financial-table .ui.definition.table thead th .year.quarterly .period{min-width:100px;right:-10px}.cs-financial-table .ui.definition.table thead th .year{text-align:center;color:#2c6a9e;font-weight:700;vertical-align:bottom;display:flex;align-items:center;justify-content:flex-end}.cs-financial-table .ui.definition.table thead th .year .quarter{color:#737176;margin-bottom:.1em;padding-bottom:.2em;border-bottom:1px solid #e2e2e2}.cs-financial-table .ui.definition.table thead th .year .year-end-date{font-size:.8em}.cs-financial-table .ui.definition.table thead th .year .cs-open-report{visibility:hidden;cursor:pointer;position:absolute;right:-.5em;z-index:1}.cs-financial-table .ui.definition.table thead th .year .cs-open-report i{margin:0 0 0 5px}.cs-financial-table .ui.definition.table tr td:last-child{border-right:1px solid rgba(34,36,38,.15)}.cs-financial-table .ui.definition.table tr.header-row td{background-color:#e4e4e4;font-weight:700}.cs-financial-table .ui.definition.table tr:not(.header-row) td{font-weight:500}.cs-financial-table .ui.definition.table thead:not(.full-width) th:first-child{font-size:1.4em;color:#2c6a9e;text-align:left;font-weight:700}.cs-financial-table .ui.definition.table .trend{position:relative}.cs-financial-table .ui.definition.table .change.red{color:#db2828}.cs-financial-table .ui.definition.table .change.green{color:#21ba45}.cs-financial-table .ui.definition.table .value--hidden{display:none}#cs-company-returns table{margin-top:0}#cs-company-returns th{padding:.5em .5em .2em;font-size:.9em;color:grey}#cs-company-returns .title-header{display:none}#cs-company-returns .cell{color:#fff;padding:.5em;border-left:2px solid #fff;width:15%}#cs-company-returns .cell.red{background-color:#db2828}#cs-company-returns .cell.green{background-color:#21ba45}#cs-company-returns .cs-time-frame{display:none}@media only screen and (max-width:767px){#cs-company-returns{padding:.5em 0 1.5em;border:1px solid rgba(34,36,38,.15);border-width:1px 0}#cs-company-returns .title-header{display:block}#cs-company-returns .title-cell{display:none}#cs-company-returns .cell{text-align:center}#cs-company-returns thead{display:none}#cs-company-returns .cs-time-frame{display:inline}}#cs-company-overview .cs-financial-table thead th,.ui.tab[data-tab=technical] .cs-financial-table thead th{font-size:.9em;padding-top:0;font-weight:700}#cs-company-overview .cs-financial-table .field,.ui.tab[data-tab=technical] .cs-financial-table .field{width:200px}#cs-company-overview .cs-financial-table td,.ui.tab[data-tab=technical] .cs-financial-table td{font-weight:700}#cs-company-fundamentals .title-cell{width:225px}#cs-company-fundamentals .range-cell{font-size:.8em;text-align:center;width:130px;position:relative}#cs-company-fundamentals .range-cell .cs-range-scale{margin-bottom:0;padding:10px 0}#cs-company-fundamentals .range-cell .cs-range-scale .bar,#cs-company-fundamentals .range-cell .cs-range-scale .bar .point{height:10px}#cs-company-fundamentals .range-cell .cs-range-scale .bar .caret{bottom:-7px;margin-left:-9px;font-size:1.6em}#cs-company-fundamentals .saperator{width:30px}#cs-company-fundamentals .mjx-chtml,#cs-company-fundamentals .MJXc-display{font-size:.8em;text-align:left!important}#cs-company-fundamentals .cs-info.ui.popup{padding-right:1.8em;max-width:none}#cs-company-fundamentals .cs-info.ui.popup .content{max-width:280px}#cs-company-fundamentals .cs-versus-info.ui.popup{font-size:.9em;width:200px}#cs-company-fundamentals .cs-versus-info.ui.popup .header{font-weight:700}#cs-company-fundamentals .cs-versus-info.ui.popup .content{background:#f2f2f2;border-radius:4px;padding:.4em .6em .2em;margin-top:.3em}@media only screen and (max-width:767px){#cs-company-fundamentals{width:1000px;font-size:.9em}#cs-company-fundamentals .ui.table td{padding:.2em .4em}#cs-company-fundamentals .title-cell{width:124px;font-size:.8em}}.cs-median-range .text{text-align:center}.cs-median-range .text>div{display:inline-block}.cs-median-range .text .min{float:left;text-align:left}.cs-median-range .text .max{float:right;text-align:right}.cs-median-range .text .num{font-weight:700;font-size:.9em}.cs-median-range .line{margin:10px 0 5px;height:1px;border-top:2px solid #ccc;width:100%;position:relative}.cs-median-range .line>div{position:absolute;width:1px;height:10px;border-left:2px solid #ccc;top:-6px}.cs-median-range .line .circle{width:10px;border-radius:5px;background:#767676;border:none;margin-left:-5px}.cs-median-range .line .min{left:0}.cs-median-range .line .max{right:0}.cs-median-range .line .median{left:50%}.cs-row-bar{width:32px;display:inline-block;height:16px;border-radius:2px;overflow:hidden;border:1px solid #ccc}.cs-row-bar .bar{height:14px}#cs-home-newsletter{padding-top:0}#cs-home-newsletter .ui.menu{border-radius:5px}#cs-home-newsletter .ui.form{font-size:1.1em}.cs-chart-options .ui.secondary.menu .active.item{background:#2c6a9e!important;color:#fff!important}#cs-company-announcements .date-cell{width:120px}#cs-company-announcements .announce__date__calenderView,#cs-company-announcements .company__selection{display:none}#cs-company-announcements #announce-calendar{display:none!important}@media only screen and (max-width:767px){#cs-company-announcements{overflow-x:scroll}#cs-company-announcements .ui.table{width:650px}#cs-company-announcements .ui.table td{padding:.2em .4em}#cs-company-announcements .announce__filters{position:static;padding:0}}.cs-financials-overview-buttons{float:right;display:inline-block}@media only screen and (max-width:767px){.cs-financials-overview-buttons{float:none;display:block}}#outerContainer #mainContainer div.toolbar{display:none!important}#outerContainer #mainContainer #viewerContainer{top:0!important}#cs-company-financials{position:relative}#cs-company-financials .fiscal-year{position:absolute;top:1em;font-size:1.3em;right:1em;color:#a4a4a4}@media only screen and (max-width:767px){#cs-company-financials .fiscal-year{position:static;margin:1em .7em 0}}#cs-target-eps-menu{position:absolute;top:-11px;right:2.5em}@media only screen and (max-width:767px){#cs-target-eps-menu{right:0}}#cs-pivot-points table tbody td{padding:.99em}@media only screen and (max-width:767px){#cs-equity-profile table{display:flex;align-items:center}#cs-equity-profile table thead{background-color:rgba(0,0,0,.03)}#cs-equity-profile table thead th{padding:1em!important;border-bottom:1px solid #e2e2e2!important}#cs-equity-profile table thead th:first-child{padding-top:0!important}#cs-equity-profile table thead th:last-child{padding-bottom:0!important;border-bottom:none!important}#cs-equity-profile table tbody td{padding:1em!important;border-bottom:1px solid #e2e2e2!important}#cs-equity-profile table tbody td:first-child{padding-top:0!important}#cs-equity-profile table tbody td:last-child{padding-bottom:0!important;border-bottom:none!important}}#cs-company-insider .insider-table table th{text-align:center}@media only screen and (max-width:767px){#cs-company-insider .insider-table{overflow-x:scroll}#cs-company-insider .insider-table table{min-width:1030px}}#cs-company-insider-header{padding:.5em;border:1px solid #e0e2e2}#cs-company-insider-header i{margin:0;font-size:1.3em}#cs-company-insider-header .green{color:#25ba45}#cs-company-insider-header .red{color:#db2830}#cs-company-insider-header .amount{font-weight:700;color:#7cb342}@media only screen and (max-width:767px){#cs-company-insider-header{font-size:1em;text-align:center;line-height:1.5;min-height:90px;display:flex;justify-content:center;align-items:center}}#cs-company-payout .ui.segment{padding:0}#cs-company-payout .cs-payout-nav{display:flex;align-items:center;justify-content:space-between}#cs-company-payout .cs-payout-nav .ui.menu{margin:0}#cs-company-payout .cs-payout-nav .ui.dropdown{width:450px}#cs-company-payout .disabled-cell{background-color:#e2e2e2;color:#a0a0a0}#cs-company-payout .danger-cell{color:#fff;background-color:#ff5858}#cs-company-payout .upcoming-cell{color:#fff;background-color:#3b5a81}#cs-company-payout .legends-values{display:flex;align-items:center;justify-content:space-between;margin:0 0 1em}#cs-company-payout .legends-values h1{margin:0}#cs-company-payout .ui.secondary.menu .item.active{background:#5a88b5;color:#fff}#cs-company-payout .cs-payout-table tbody{display:block;overflow-y:scroll;max-height:400px}#cs-company-payout .cs-payout-table tbody::-webkit-scrollbar{-webkit-appearance:none;width:7px;background-color:#c4c8cc}#cs-company-payout .cs-payout-table tbody::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(0,0,0,.5);-webkit-box-shadow:0 0 1px hsla(0,0%,100%,.5)}#cs-company-payout .cs-payout-table tr{display:flex}#cs-company-payout .cs-payout-table tr td,#cs-company-payout .cs-payout-table tr th{flex:1}#cs-company-payout .cs-payout-table thead{background-color:#c4c8cc}#cs-company-payout .cs-payout-table thead tr{width:calc(100% - 7px)}#cs-company-payout .cs-payout-table .image-icon{color:#2c6a9e}#cs-company-payout .cs-payout-table .pdf-icon{color:#df4142;margin-right:.5em}#cs-company-payout .cs-payout-chart-wrapper{min-height:250px}#cs-company-payout .cs-payout-chart-wrapper.loading:before,#cs-company-payout .cs-payout-tables-wrapper.loading:before{background:#fff}@media only screen and (max-width:767px){#cs-company-payout .cs-payout-chart-wrapper{min-height:130px}#cs-company-payout>.ui.grid{flex-direction:column-reverse}#cs-company-payout .cs-payout-table{width:800px}#cs-company-payout #cs-payout-historical-cash,#cs-company-payout #cs-payout-historical-others{overflow:scroll}}#cs-payout-trend .payout__trends{display:flex;justify-content:space-between}#cs-payout-trend .payout__trends>div{flex:0 0 32%}#cs-payout-trend .payout__trend{display:flex;align-items:center;justify-content:flex-start;flex-direction:column;padding:.5em;border-radius:5px;border:1px solid #5383b2;text-align:center;background-color:#5383b2;color:#fff}#cs-payout-trend .payout__trendTitle{font-size:.95em}#cs-payout-trend .payout__trendStat{font-size:2em;font-weight:700;margin:.25em 0;color:#dceeff;line-height:1.2}@media only screen and (max-width:767px){#cs-payout-trend .payout__trendStat{font-size:1.8em}}#cs-payout-trend-header .ui.header{padding:.5em;border:1px solid #e0e2e2;margin-bottom:1em}#cs-payout-trend-header .amount{color:#25ba45}.cs-payout-top-section--fixed{position:absolute;top:-9999px;left:-9999px;width:calc(100vw - 2em)}#cs-company-payout-chart{width:100%}@media only screen and (max-width:767px){#cs-company-payout-chart{width:calc(100vw - 2em)}}.cs__company__subHead{display:flex;align-items:center;justify-content:space-between;margin-top:1em}#cs-sectors{overflow:hidden;margin-top:96px;background:#2c6a9e;color:#fff;min-height:650px;position:relative;border-top:1px solid #2c6a9e}@media only screen and (max-width:767px){#cs-sectors{margin-top:0}}@media only screen and (max-width:767px){#cs-sectors.cs-sector-view #cs-sectors-header .ui.divider{display:none}#cs-sectors.cs-sector-view #cs-sectors-header .last-update{float:none}#cs-sectors.cs-sector-view #cs-sectors-header .value-text{float:none;text-align:left}#cs-sectors.cs-sector-view #cs-sectors-grid .cell.companies{display:none!important}#cs-sectors.cs-sector-view #cs-sectors-grid .cell.sector{width:50%!important}#cs-sectors.cs-sector-view #cs-sectors-grid .cell.sector .text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#cs-sectors.cs-sector-view #cs-sectors-grid .cell.change,#cs-sectors.cs-sector-view #cs-sectors-grid .cell.market-cap{width:25%!important}}#cs-sectors.cs-companies-view{width:100%;overflow-x:scroll}@media only screen and (max-width:767px){#cs-sectors.cs-companies-view #cs-companies-grid.cs-grid,#cs-sectors.cs-companies-view #cs-sectors-header{width:1350px!important}#cs-sectors.cs-companies-view #cs-companies-grid .body,#cs-sectors.cs-companies-view #cs-companies-grid .head{width:100%!important}}#cs-sectors .ui.header{font-weight:light}#cs-sectors>.ui.container>.ui.segment.basic{padding:0}#cs-sectors-header{position:fixed;opacity:0;transition-property:opacity;transition-duration:.8s;transition-timing-function:ease-in-out;width:100%;z-index:10;background:#2c6a9e;padding:1em 0 0;top:96px}#cs-sectors-header .ui.header{width:100%}#cs-sectors-header .title{display:inline-block;width:16em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:-7px;text-transform:capitalize}#cs-sectors-header .indicator{float:right;font-size:.7em;margin-right:2em;font-weight:200;margin-top:2px}#cs-sectors-header .back{color:#fff;float:right;font-size:.8em;opacity:.8}#cs-sectors-header .back:hover{opacity:1}#cs-sectors-header .last-update{float:right;font-size:.5em;margin-top:.6em}#cs-sectors-header .value-text{float:right;font-size:.5em;font-style:italic;margin-top:0;text-align:right}@media only screen and (max-width:767px){#cs-sectors-header{padding:0;position:relative;top:62px}}#cs-sectors-header .ui.header{font-size:1.8em}.cs-grid{transition-property:opacity;transition-duration:.8s;transition-timing-function:ease-in-out;display:none;position:relative;margin-top:94px}.cs-grid .head{height:42px;position:fixed;width:100%;top:184px;background:#2c6a9e;z-index:11}.cs-grid .body{height:100px;transition-property:height;transition-duration:2s;transition-timing-function:ease-in-out;padding-top:38px}.cs-grid .row{opacity:0;transition-property:transform,opacity;transition-duration:1s;transition-timing-function:ease-in-out;position:absolute;width:100%;display:block;text-decoration:none}.cs-grid .cell{display:inline-block;line-height:2.2em;font-size:1.1em;width:8%;text-align:right;cursor:pointer;float:left;color:#fff}.cs-grid .cell .text{padding:0 4px}.cs-grid .head .cell{font-size:.9em;line-height:1.5em}.cs-grid .head .cell .subtext{font-size:.8em;color:#cdcdcd}.cs-grid .blink-me{-webkit-animation:blinker 1.5s linear infinite;animation:blinker 1.5s linear infinite}@-webkit-keyframes blinker{50%{opacity:0}}@keyframes blinker{50%{opacity:0}}.cs-grid .body .cell.sector,.cs-grid .head .cell.sector{width:24%;text-align:left}.cs-grid .body .cell .text{border:solid #2c6a9e;border-width:0 2px 0 0;text-transform:capitalize}.cs-grid .body .cell.sector{opacity:.8}.cs-grid .body .row:hover .cell.sector{background:#225a8a;opacity:1}.cs-grid .body .cell.change,.cs-grid .head .cell.change{width:6%}.cs-grid .body .cell.companies{width:61%;margin-left:1%;text-align:left;display:flex;flex-direction:row;flex-wrap:nowrap}.cs-grid .body .cell.companies .company{flex:1 1 auto;background-color:#ccc;overflow:hidden;opacity:.8}.cs-grid .body .cell.companies .company .text{padding-right:0}.cs-grid .body .cell.companies .company:hover{opacity:1}@media only screen and (max-width:767px){.cs-grid{margin-top:70px}.cs-grid .head{position:relative;top:0}}#cs-companies-grid .sector.cell{width:20%}#cs-companies-grid .sector.cell .text{width:98%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#cs-companies-grid .head{height:60px}#cs-companies-grid .body{padding-top:50px}#cs-companies-grid .cell{width:8.7%}#cs-companies-grid .head .cell{height:60px;position:relative}#cs-companies-grid .head .cell.group .line{height:100%;border-left:1px solid #fff;position:absolute;left:0;top:0}#cs-companies-grid .head .cell .heading{position:absolute;top:-3px;left:8px;white-space:nowrap;font-weight:700}#cs-companies-grid .head .cell .text{position:absolute;bottom:4px;width:100%;right:4px;line-height:1.2em}#cs-companies-grid .cell.market-cap{margin-left:1%}#cs-companies-grid .cell.markup{width:9%}@media only screen and (max-width:767px){#cs-companies-grid .body{padding-top:40px}}#cs-sectors-grid-popup{width:350px}#cs-sectors-grid-popup .ui.header{margin:0 0 .2em}#cs-sectors-grid-popup .desc,#cs-sectors-grid-popup .sector{font-size:.8em;color:#767676}#cs-sectors-grid-popup strong{font-weight:700}#cs-sectors-grid-popup .change{padding:.2em 0}#cs-sectors-grid-popup .red{color:#db2828}#cs-sectors-grid-popup .green{color:#21ba45}.cs-sector-treemap{background:#262931;border-top:1px solid #262931}.cs-sector-treemap .ui.menu{background:#363a46;margin:0 0 .5em;box-shadow:1px 1px 0 #111;border:none;border-radius:0}.cs-sector-treemap .menu.right{background-color:#708090}.cs-sector-treemap .ui.menu .dropdown.item{border-left:1px solid #000;color:#fff}.cs-sector-treemap .ui.menu .item{color:#ccd5e8;padding:.5em .7em}.cs-sector-treemap .ui.menu .dropdown.item:hover{color:#fff}.cs-sector-treemap .chart-wrapper{padding:0 1em}.cs-sector-treemap .info{color:#fff;font-size:11px;padding-left:20px;margin-left:26px;margin-top:18px;line-height:13px}.cs-sector-treemap .scale{color:#fff;font-size:11px;font-weight:400;line-height:24px;text-shadow:0 1px 0 rgba(0,0,0,.25);margin-top:18px;margin-bottom:10px;margin-right:26px}.cs-sector-treemap .scale div{cursor:default;display:inline-block;float:left;text-align:center;margin-left:1px;margin-bottom:7px}.cs-sector-treemap .beep{height:10px;position:relative;width:10px;display:inline-block;margin:-1px .7em 0 .5em}.cs-sector-treemap .beep .circle{position:absolute;width:8px;height:8px;left:50%;top:50%;transform:translate(-50%,-50%);background:#666;border-radius:6px}.cs-sector-treemap .beep.open .circle{-webkit-animation:beep 2s infinite;animation:beep 2s infinite;background:#64f341}.cs-sector-treemap .beep-text{color:#64f341;font-weight:700;overflow:hidden;width:0;transition-property:width;transition-duration:.5s;transition-timing-function:ease-in-out;font-size:1.1em}.cs-sector-treemap .beep-text.open{width:40px}@-webkit-keyframes beep{0%{box-shadow:0 0 0 0 rgba(12,150,10,.8)}80%{box-shadow:0 0 0 10px rgba(12,150,10,0)}to{box-shadow:0 0 0 0 rgba(12,150,10,0)}}@keyframes beep{0%{box-shadow:0 0 0 0 rgba(12,150,10,.8)}80%{box-shadow:0 0 0 10px rgba(12,150,10,0)}to{box-shadow:0 0 0 0 rgba(12,150,10,0)}}#cs-treemap-popup{width:280px;position:absolute;top:100%;left:100%;padding:1em;border:1px solid #333;border-radius:3px;background:#fff;z-index:10}#cs-treemap-popup table{width:100%}#cs-treemap-popup hr{border-bottom:0;background-color:grey}#cs-treemap-popup .right{text-align:right}#cs-treemap-popup .sector{font-size:.8em;color:#999}#cs-treemap-popup .name{color:#004892}#cs-treemap-popup .price,#cs-treemap-popup .symbol{font-weight:700;font-size:1.3em}#cs-treemap-popup .change{text-align:right}#cs-treemap-popup strong{font-weight:700}#cs-treemap-popup .red{color:#db2828}#cs-treemap-popup .green{color:#21ba45}#cs-treemap-popup td{padding:2px 0}svg{display:block}.axis{font-size:10px;stroke:#767676}.axis line,.axis path{fill:none;stroke:#dcddde;shape-rendering:crispEdges;stroke-width:1px}.axis text{stroke-width:.5px}.x-grid,.y-grid{fill:none;shape-rendering:crispEdges;stroke:#dcddde;stroke-width:1px}.line{fill:none;stroke:#1b5586;stroke-width:1px}.bar.positive{fill:#21ba45}.bar.negative{fill:#db2828}.circle{fill:#1b5586}.area{fill:#5391c5;stroke:none;opacity:.1}.bar{fill:#1b5586}.zeroline{fill:none;stroke:red;stroke-width:.5px;stroke-dasharray:5 5}.zerolinetext{fill:red}.overlay{fill:none;stroke:none;pointer-events:all}.focusLine{fill:none;stroke:#4682b4;stroke-width:.5px}.focusCircle{stroke:#fff}.focusCircleGlow{fill:#5391c5;opacity:.1}.cs-chart{position:relative;min-height:200px}@media only screen and (max-width:767px){.cs-chart{min-height:auto}}.cs-chart .ui.pointing.left.label{display:none;position:absolute;height:22px;font-size:10px;font-weight:400;width:54px;padding:5px 3px;text-align:center}.cs-chart-footnote{text-align:right;color:#888;font-size:.7em;font-style:italic}.cs-waterfall .axis.x line,.cs-waterfall .axis.x path{stroke:none}.cs-waterfall .axis.x text{font-size:11px}.cs-waterfall .x-grid{stroke-dasharray:5}.cs-timeseries .axis.y path{stroke:none}.cs-timeseries .volume{stroke:none;fill:#909090}.cs-chart-timeseries .ui.popup{transition-property:top,left;transition-duration:.08s;transition-timing-function:ease-in-out}.cs-chart-timeseries .ui.popup:before{position:relative;width:0!important;height:0!important;left:0!important;margin:0!important}.cs-chart-timeseries .focusLine{fill:none;stroke-width:1px}.cs-chart-timeseries .focusCircle{stroke:#fff}.cs-chart-timeseries .focusCircleGlow{opacity:.3}.cs-chart-timeseries.dark .bg{fill:#2c6a9e}.cs-chart-timeseries.dark .volume .bar{fill:#fff;opacity:.5}.cs-chart-timeseries.dark .axis path{stroke:none}.cs-chart-timeseries.dark .x-grid,.cs-chart-timeseries.dark .y-grid{stroke:#3575ab}.cs-chart-timeseries.dark .line{stroke:#ecf6ff}.cs-chart-timeseries.dark .axis text{stroke-width:.5px;font-size:12px;stroke:#9c9c9c}.cs-chart-timeseries.dark .axis line{stroke:none}.cs-chart-timeseries.dark .area{opacity:1}.cs-chart-timeseries.dark .focusLine{stroke:#fff;stroke-width:.5px}@media only screen and (max-width:767px){.cs-chart-timeseries.dark .axis text{font-size:10px}}.cs-chart-timeseries.light .bg{stroke:#dcdcdc;fill:#f9f9f9}.cs-chart-timeseries.light .x-grid,.cs-chart-timeseries.light .y-grid{stroke:#dcdcdc}.cs-chart-timeseries.light .focusLine{stroke:#767676;stroke-width:.5px}#cs-treemap rect{pointer-events:all;cursor:pointer;stroke:#262931}#cs-treemap .highlight rect{stroke:#ffd614}#cs-treemap .parent .label{color:#fff}#cs-treemap .highlight .label{color:#000}#cs-treemap text{fill:#fff;text-shadow:1px 1px 1px #000;font-weight:700;pointer-events:none}#cs-treemap .labelbody{background:transparent;min-width:100%;padding:0 1px 0 2px;font-size:12px;font-weight:400}#cs-treemap .highlight .labelbody{background:#ffd614}#cs-treemap .label{white-space:pre;overflow:hidden;text-overflow:ellipsis}#cs-treemap .cell{font-size:11px;cursor:pointer}.dual-axis-chart{position:relative}.dual-axis-chart .chart-tooltip{position:absolute;background-color:#fff;box-shadow:3px 3px 10px rgba(19,19,19,.12156863);border:1px solid #e2e2e2;border-radius:7px;font-size:.9em;padding-bottom:.3em;overflow:hidden;transition:.1s;min-width:180px}.dual-axis-chart .chart-tooltip .tool-x{padding:.3em;color:#fff;background-color:#289aef;text-align:center;font-weight:700;font-size:1em}.dual-axis-chart .chart-tooltip .tool-y{display:flex;align:center;justify-content:space-between;padding:.3em;line-height:1.4}.dual-axis-chart .chart-tooltip .tool-y .value{color:grey}.dual-axis-chart .chart-tooltip .tool-y .label{display:flex;align-items:center;font-weight:700}.dual-axis-chart .chart-tooltip .tool-y .tool-color-block{display:inline-block;height:15px;width:15px;margin-right:5px}.dual-axis-chart .bar-popup{position:absolute}.dual-axis-chart .bar-popup.top{top:1em}.dual-axis-chart .bar-popup.bottom{bottom:1em}.dual-axis-chart .bar-popup.left{left:1em}.dual-axis-chart .bar-popup.right{right:1em}.dual-axis-chart .bar-popup,.dual-axis-chart rect.bar:hover{transition:opacity .5s}.dual-axis-chart rect.bar.positive{fill:#499ca0}.dual-axis-chart rect.bar.negative{fill:#844991}.dual-axis-chart path.line{stroke:#289aef;stroke-width:2px}.dual-axis-chart .axis{font-size:.9em}.dual-axis-chart .axis line,.dual-axis-chart .axis path{fill:none;stroke:hsla(0,0%,100%,0);shape-rendering:crispEdges;stroke-width:1.5px;stroke-dasharray:9,7}.dual-axis-chart line.y-grid{fill:none;stroke:#dcddde;shape-rendering:crispEdges;stroke-width:1.5px;stroke-dasharray:2,4}.dual-axis-chart line.y-grid.zero-line{stroke:#b3b3b3;stroke-dasharray:0}.dual-axis-chart .x.axis.trim .tick:nth-child(2n){opacity:0!important}@media only screen and (max-width:767px){.dual-axis-chart .x.axis .tick text{transform:rotate(-45deg);font-size:.65em}}.sunburst__chart{font-family:Lato,Sans-serif;font-size:11px;position:relative}.sunburst__chart .section{stroke:hsla(0,0%,100%,.1)}.sunburst__chart .section:hover{opacity:.9;cursor:pointer}.sunburst__chart .hidden-arc{fill:none}.sunburst__chart text{pointer-events:none;dominant-baseline:middle;text-anchor:middle;fill:#fff}.sunburst__chart .sunburst-tooltip{min-width:200px;position:absolute;top:-9999px;left:-9999px;z-index:10;border:1px solid #57677f;border-radius:5px;display:none;background-color:#fff;padding:3px 5px;box-shadow:5px 5px 7px rgba(0,0,0,.1)}.sunburst__chart .sunburst-tooltip .title{font-weight:700;font-size:1.3em}.sunburst__chart .sunburst-tooltip .click-note{font-style:italic;font-size:.9em;text-align:center}#cs-media-options{min-height:500px;position:relative}#cs-technicals{background-color:#333}#cs-technicals-menu{margin:0;border-radius:0}#cs-technicals-menu .cs-display .dropdown{line-height:.9em}#cs-technicals-labels{margin:0;border-radius:0;background:#333;font-size:.9em}#cs-technicals-labels .item{padding:.5em;min-width:50px}#cs-technicals-labels .item[data-value=date]{min-width:74px}#cs-technicals-labels .item[data-value=volume]{min-width:80px}#cs-technicals-labels .item.time[data-value=date]{min-width:124px}#cs-technicals-labels .item .icon.close{margin:0 0 0 1em;cursor:pointer}#cs-technicals-labels .item .icon.close:hover{color:#fff}#cs-technicals-labels .ui.statistic{margin-bottom:0}#cs-technicals-labels .ui.statistic .label{font-size:.65em;line-height:1.5em}#cs-technicals-labels .ui.statistic .value{font-size:1em}#cs-technicals-chart{min-height:500px;padding:0}#cs-technicals .ui.fixed.sticky+.ui.container{margin-top:82px}.ui.fixed.sticky #cs-technicals-labels{box-shadow:0 2px 6px #000}.cs-chart-technicals text.version{fill:#555;font:8px sans-serif}.cs-chart-technicals .axis line,.cs-chart-technicals .axis path{fill:none;stroke:#bbb;shape-rendering:crispEdges}.cs-chart-technicals text{fill:#ddd}.cs-chart-technicals path{fill:none;stroke-width:1}.cs-chart-technicals .close path{stroke:#f6f6f6;stroke-width:1}.cs-chart-technicals path.candle{stroke:#000}.cs-chart-technicals path.candle.body{stroke-width:0}.cs-chart-technicals path.candle{fill:#777;stroke:#777}.cs-chart-technicals path.candle.up{fill:#0a0;stroke:#0a0}.cs-chart-technicals path.candle.down{fill:red;stroke:red}.cs-chart-technicals path.ohlc{stroke:#000;stroke-width:1}.cs-chart-technicals path.ohlc.up{stroke:#0a0}.cs-chart-technicals path.ohlc.down{stroke:red}.cs-chart-technicals .closeValue.annotation.up path{fill:#0a0}.cs-chart-technicals path.volume.up{fill:#4fc301}.cs-chart-technicals path.volume.down{fill:#ef2a2a}.cs-chart-technicals .indicator path.line{fill:none;stroke-width:1.5}.cs-chart-technicals button{position:absolute;right:110px;top:25px}.cs-chart-technicals path.macd{stroke:#aec7e8}.cs-chart-technicals path.signal{stroke:#f99}.cs-chart-technicals path.zero{stroke:#bbb;stroke-dasharray:0;stroke-opacity:.5}.cs-chart-technicals path.difference{fill:#777}.cs-chart-technicals path.rsi{stroke:#aec7e8}.cs-chart-technicals path.overbought,.cs-chart-technicals path.oversold{stroke:#f99;stroke-dasharray:5,5}.cs-chart-technicals path.middle,.cs-chart-technicals path.zero{stroke:#bbb;stroke-dasharray:5,5}.cs-chart-technicals .analysis circle,.cs-chart-technicals .analysis path{stroke:#ff0;stroke-width:.7}.cs-chart-technicals .interaction circle,.cs-chart-technicals .interaction path{pointer-events:all}.cs-chart-technicals .interaction .body{cursor:move}.cs-chart-technicals .trendlines .interaction .end,.cs-chart-technicals .trendlines .interaction .start{cursor:nwse-resize}.cs-chart-technicals .trendline circle{stroke-width:0;display:none}.cs-chart-technicals .mouseover .trendline path{stroke-width:1}.cs-chart-technicals .mouseover .trendline circle{stroke-width:1;fill:#ff0;display:inline}.cs-chart-technicals .supstance path{stroke-dasharray:2,2}.cs-chart-technicals .supstances .interaction path{pointer-events:all;cursor:ns-resize}.cs-chart-technicals .supstances .axisannotation{display:none}.cs-chart-technicals .supstances .mouseover .axisannotation{display:inline}.cs-chart-technicals .supstances .axisannotation path{fill:#806517;stroke:none}.cs-chart-technicals .mouseover .supstance path{stroke-width:1.5}.cs-chart-technicals .crosshair{cursor:crosshair}.cs-chart-technicals .crosshair path.wire{stroke:#555;stroke-dasharray:1,1}.cs-chart-technicals .crosshair .axisannotation path{fill:#777}.cs-chart-technicals .crosshair .axisannotation text{font-size:11px}.cs-chart-technicals .x-grid,.cs-chart-technicals .y-grid{stroke:#636363;stroke-width:.5px;opacity:1}
/*!
 * Stylesheet for the Date Range Picker, for use with Semantic UI
 *
 * Copyright 2013-2015 Dan Grossman ( http://www.dangrossman.info )
 * Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php
 *
 * Built for http://www.improvely.com
 */.daterangepicker.dropdown-menu{max-width:none;display:none;z-index:3000;border:1px solid #ccc;box-shadow:0 0 5px #ccc}.daterangepicker.opensleft .calendar,.daterangepicker.opensleft .ranges{float:left;margin:4px}.daterangepicker.openscenter .calendar,.daterangepicker.openscenter .ranges,.daterangepicker.opensright .calendar,.daterangepicker.opensright .ranges{float:right;margin:4px}.daterangepicker.single .calendar,.daterangepicker.single .ranges{float:none}.daterangepicker .ranges{width:160px;text-align:left}.daterangepicker .ranges .range_inputs>div{float:left}.daterangepicker .ranges .range_inputs>div:nth-child(2){padding-left:11px}.daterangepicker .calendar{display:none;max-width:270px}.daterangepicker.show-calendar .calendar{display:block}.daterangepicker .calendar.single .calendar-date{border:none}.daterangepicker .calendar td,.daterangepicker .calendar th{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;white-space:nowrap;text-align:center;min-width:32px}.daterangepicker .daterangepicker_end_input label,.daterangepicker .daterangepicker_start_input label{color:#333;display:block;font-size:11px;font-weight:400;height:20px;line-height:20px;margin-bottom:2px;text-shadow:#fff 1px 1px 0;text-transform:uppercase;width:74px}.daterangepicker .ranges input{font-size:11px}.daterangepicker .ranges .input-mini{border:1px solid #ccc;border-radius:4px;color:#555;display:block;font-size:11px;height:30px;line-height:30px;vertical-align:middle;margin:0 0 10px;padding:0 6px;width:74px}.daterangepicker .ranges ul{list-style:none;margin:0;padding:0}.daterangepicker .ranges li{font-size:13px;background:#f5f5f5;border:1px solid #f5f5f5;color:#08c;padding:3px 12px;margin-bottom:8px;border-radius:5px;cursor:pointer}.daterangepicker .ranges li.active,.daterangepicker .ranges li:hover{background:#08c;border:1px solid #08c;color:#fff}.daterangepicker .calendar-date{border:1px solid #ddd;padding:4px;border-radius:4px;background:#fff}.daterangepicker .calendar-time{text-align:center;margin:8px auto 0;line-height:30px}.daterangepicker{position:absolute;background:#fff;top:100px;left:20px;padding:4px;margin-top:1px;border-radius:4px}.daterangepicker.opensleft:before{position:absolute;top:-7px;right:9px;display:inline-block;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.2);content:""}.daterangepicker.opensleft:after{position:absolute;top:-6px;right:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:""}.daterangepicker.openscenter:before{top:-7px;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.2)}.daterangepicker.openscenter:after,.daterangepicker.openscenter:before{position:absolute;left:0;right:0;width:0;margin-left:auto;margin-right:auto;display:inline-block;content:""}.daterangepicker.openscenter:after{top:-6px;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent}.daterangepicker.opensright:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.2);content:""}.daterangepicker.opensright:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:""}.daterangepicker.dropup{margin-top:-5px}.daterangepicker.dropup:before{top:auto;bottom:-7px;border-bottom:initial;border-top:7px solid #ccc}.daterangepicker.dropup:after{top:auto;bottom:-6px;border-bottom:initial;border-top:6px solid #fff}.daterangepicker table{width:100%;margin:0}.daterangepicker td,.daterangepicker th{text-align:center;width:20px;height:20px;padding:5px;border-radius:4px;cursor:pointer;white-space:nowrap}.daterangepicker option.disabled,.daterangepicker td.disabled,.daterangepicker td.off{color:#999}.daterangepicker td.available:hover,.daterangepicker th.available:hover{background:#eee}.daterangepicker td.in-range{background:#ebf4f8;border-radius:0}.daterangepicker td.start-date{border-radius:4px 0 0 4px}.daterangepicker td.end-date{border-radius:0 4px 4px 0}.daterangepicker td.start-date.end-date{border-radius:4px}.daterangepicker td.active,.daterangepicker td.active:hover{background-color:#357ebd;border-color:#3071a9;color:#fff}.daterangepicker td.week,.daterangepicker th.week{font-size:80%;color:#ccc}.daterangepicker .ui.dropdown.monthselect,.daterangepicker .ui.dropdown.yearselect{font-size:12px;padding:5px;margin:0 5px 0 0;height:auto;cursor:default}.daterangepicker select.monthselect{margin-right:2%;width:auto}.daterangepicker select.yearselect{width:auto}.daterangepicker select.ui.dropdown.ampmselect,.daterangepicker select.ui.dropdown.hourselect,.daterangepicker select.ui.dropdown.minuteselect,.daterangepicker select.ui.dropdown.secondselect{padding:3px;height:2em}.daterangepicker .ui.dropdown.ampmselect,.daterangepicker .ui.dropdown.hourselect,.daterangepicker .ui.dropdown.minuteselect,.daterangepicker .ui.dropdown.secondselect{padding:5px}.daterangepicker .ui.dropdown.ampmselect>.text,.daterangepicker .ui.dropdown.hourselect>.text,.daterangepicker .ui.dropdown.minuteselect>.text,.daterangepicker .ui.dropdown.monthselect>.text,.daterangepicker .ui.dropdown.secondselect>.text,.daterangepicker .ui.dropdown.yearselect>.text{margin-right:1.25em}.daterangepicker .ui.dropdown.ampmselect>.dropdown.icon,.daterangepicker .ui.dropdown.hourselect>.dropdown.icon,.daterangepicker .ui.dropdown.minuteselect>.dropdown.icon,.daterangepicker .ui.dropdown.monthselect>.dropdown.icon,.daterangepicker .ui.dropdown.secondselect>.dropdown.icon,.daterangepicker .ui.dropdown.yearselect>.dropdown.icon{padding:.8em .15em .8em .8em}.daterangepicker_start_input{float:left}.daterangepicker_end_input{float:left;padding-left:11px}.daterangepicker th.month{width:auto;padding:0}.daterangepicker .next .right.arrow.icon,.daterangepicker .prev .left.arrow.icon{margin:0}.cs-dashboard-loader{position:absolute;top:0;left:0;height:100%;background:#fff;z-index:10;width:100%}#cs-recent-research .item .header{font-weight:300;margin-bottom:.3em}@media only screen and (max-width:767px){#cs-recent-research .item .header{font-size:1.25rem;font-weight:700}}@media only screen and (max-width:767px){#cs-recent-research .item .ui.label.tiny:not(.grey){display:none}}#cs-dashboard-news .image{margin-right:1em;height:100px;background-position:50%;background-size:cover}#cs-dashboard-news .content{padding:0;margin:auto}@media only screen and (max-width:767px){#cs-dashboard-news{display:none!important}#cs-dashboard-news img{width:100%!important;max-width:none;max-height:inherit;padding:0}#cs-dashboard-news .content{padding-top:1em}}#cs-dashboard-news-mobile{display:none}#cs-dashboard-news-mobile .content{padding:0;margin:auto}#cs-dashboard-news-mobile .news-image-title{display:flex}#cs-dashboard-news-mobile .news-image-title img{padding-right:1em;max-width:140px;max-height:100px}#cs-dashboard-news-mobile .news-image-title .content{font-size:1.3em;line-height:1.2}#cs-dashboard-news-mobile .news-image-title .content .header{color:#000}#cs-dashboard-news-mobile .news-image-title .content .extra{font-size:.7em}@media only screen and (max-width:767px){#cs-dashboard-news-mobile{display:block!important}}#cs-board-meeting-table,#cs-economy-table,#cs-financial-result-table{overflow-x:scroll;overflow-y:hidden;white-space:nowrap}#cs-dashboard-portfolio-settlement .cs-mobile-chart-labels{display:none;padding:0 .5em}#cs-dashboard-portfolio-settlement .cs-mobile-chart-labels p{margin:0;font-size:.7em;font-style:italic}#cs-dashboard-portfolio-settlement .cs-chart[time="3m"] .x.axis .tick:nth-child(odd) text{fill:hsla(0,0%,100%,0);stroke:hsla(0,0%,100%,0)}#cs-dashboard-portfolio-settlement .ui.popup{background-color:#fff!important}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup{min-width:275px}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item{display:flex;align-items:center;justify-content:center;padding:0}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p{margin:0}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p b{font-weight:700;font-size:1.3em}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p:first-child{text-align:left;width:70%;text-transform:capitalize}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p:last-child{text-align:right;width:30%}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p.red{color:#db2828}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p.green{color:#21ba45}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item.total p:first-child{font-weight:700}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item.total p:last-child{border-top:1px solid grey;border-bottom:1px solid grey}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup p.date{text-align:center;font-style:italic}@media only screen and (max-width:767px){#cs-dashboard-portfolio-settlement .ui.popup{padding:.2em}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup{min-width:auto}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item{font-size:.7em}}#cs-dashboard-portfolio-settlement .ui.pointing.menu .item{font-weight:300;color:#d4d4d5}#cs-dashboard-portfolio-settlement .ui.pointing.menu .item.active{color:#000}#cs-dashboard-portfolio-settlement .ui.tab{position:relative}#cs-dashboard-portfolio-settlement .cs-chart-options{border-top:1px solid #dcdcdc;padding:1em;margin-top:8px}#cs-dashboard-portfolio-settlement .cs-chart-options .cs-time-buttons{margin-right:25px}#cs-dashboard-portfolio-settlement .cs-chart-options .cs-time-buttons.mobile{display:none;margin:0}@media only screen and (max-width:767px){#cs-dashboard-portfolio-settlement .cs-chart-options .fourteen.wide.column{padding:0!important;display:flex;align-items:center;justify-content:center}#cs-dashboard-portfolio-settlement .cs-chart-options .cs-time-buttons.desktop{display:none}#cs-dashboard-portfolio-settlement .cs-chart-options .cs-time-buttons.mobile{display:block;flex:auto}#cs-dashboard-portfolio-settlement .cs-chart-options .ui.button{padding:.5em}#cs-dashboard-portfolio-settlement .cs-chart-options .cs-client-type-buttons{flex:auto}#cs-dashboard-portfolio-settlement .cs-chart-options .ui.dropdown{width:100%;margin-top:1em}#cs-dashboard-portfolio-settlement .cs-chart-options .two.wide.column{padding:0!important}#cs-dashboard-portfolio-settlement .cs-chart-options .two.wide.column .ui.label{margin-top:1em}}@media only screen and (max-width:767px){#cs-dashboard-portfolio-settlement .cs-portfolio-settlement-menu{margin:0}#cs-dashboard-portfolio-settlement .cs-portfolio-settlement-menu .item{padding:.5em;max-width:100px;font-size:.8em}#cs-dashboard-portfolio-settlement .cs-mobile-chart-labels{display:flex;align-items:center;justify-content:space-between}#cs-dashboard-portfolio-settlement .cs__port__chart{overflow-x:scroll}#cs-dashboard-portfolio-settlement .cs-chart[time=one-day][type=local] .x.axis .tick:nth-child(odd) text{fill:hsla(0,0%,100%,0);stroke:hsla(0,0%,100%,0)}}#cs-dashboard-portfolio-settlement .dark{background:#000}#cs-dashboard-portfolio-settlement .dark text{fill:#fff}#cs-dashboard-portfolio-settlement .dark circle{fill:#ff0}#cs-dashboard-portfolio-settlement .dark .line{stroke:#90ccff}#cs-dashboard-settlement .bar{fill:#c0e2ff!important}#cs-dashboard-settlement .sub-bar{fill:#6ea4d2!important}#cs-dashboard-settlement .line{stroke:#ff7600!important}#cs-dashboard-foreign-local .cs-header{display:flex;align-items:center;justify-content:flex-end}#cs-dashboard-foreign-local .cs-header .ui.header{flex:auto}#cs-dashboard-foreign-local .cs-type-buttons{position:absolute;top:-65px}#cs-dashboard-foreign-local .ui.header{margin-top:0}#cs-dashboard-foreign-local .ui.segment{position:relative;height:100%}#cs-dashboard-foreign-local .zero-line{stroke:#d73027;stroke-width:3px;stroke-dasharray:15}@media only screen and (max-width:767px){#cs-dashboard-foreign-local .cs-type-buttons{top:-40px}#cs-dashboard-foreign-local .ui.segment{padding:1em .3em}#cs-dashboard-foreign-local .cs-header{margin-bottom:1em;padding:0 .5em}#cs-dashboard-foreign-local .cs-header .ui.button{padding:.5em}#cs-dashboard-foreign-local .cs-header .ui.header{font-size:1.5em;margin:0}}#cs-dashboard #cs-dashboard-time-stamp{position:absolute;right:1.5em;top:1.5em;display:flex;justify-content:flex-end}#cs-dashboard #cs-dashboard-time-stamp .indices__status{padding:0;font-size:1.5em}#cs-dashboard .ui.segment{box-shadow:7px 10px 20px 0 rgba(46,61,73,.15)}#cs-dashboard .ui.table td{padding:.5em 0}#cs-dashboard .cs-dashboard-tables{overflow-x:scroll;overflow-y:hidden;position:relative;min-height:85px}#cs-dashboard .cs-dashboard-tables .ui.table{background-color:#fff}#cs-dashboard .cs-dashboard-tables .ui.table th{background:grey;color:#fff;padding:1em 0}#cs-dashboard .cs-dashboard-tables .ui.table tr td:first-child{background-color:rgba(44,106,158,.06)}#cs-dashboard .cs-dashboard-tables .ui.table tr td:nth-child(2){color:#cc9e1c;background:rgba(204,158,28,.09)}#cs-dashboard .cs-dashboard-tables .ui.table tr td:nth-child(3){color:#21ba47;background-color:rgba(33,186,71,.05)}#cs-dashboard .cs-dashboard-tables .ui.table tr td:nth-child(4){color:#000;background-color:rgba(0,0,0,.08)}#cs-dashboard .column{padding:0 .5em}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile{margin-top:2em!important;display:none!important}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile .sixteen.wide.column{padding:0 1em!important}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile #cs-dashboard-summary-stats-mobile{margin-bottom:3em!important}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile #cs-dashboard-summary-stats-mobile .ui.statistic{margin-bottom:1em}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile #cs-dashboard-summary-stats-mobile .ui.statistic .label,#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile #cs-dashboard-summary-stats-mobile .ui.statistic .value{font-weight:300}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile .cs-range{height:55px}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile .title{display:flex;height:35px;align-items:center;font-size:.8em}#cs-dashboard #cs-dashboard-market-summary .ui.header{margin-top:0;font-weight:300}#cs-dashboard #cs-dashboard-market-summary .ui.segment{position:relative;height:100%}#cs-dashboard #cs-dashboard-market-summary .ui.grid.padded.stackable{padding-top:.5em}#cs-dashboard #cs-dashboard-market-summary .ui.secondary.menu{margin:0}#cs-dashboard #cs-dashboard-market-summary .cs-range{height:65px}#cs-dashboard #cs-dashboard-market-summary .cs-range h5{text-align:center;font-size:1.5em;font-weight:300}#cs-dashboard #cs-dashboard-market-summary .cs-range .high,#cs-dashboard #cs-dashboard-market-summary .cs-range .low{font-size:1em;font-weight:300}@media only screen and (max-width:767px){#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group{display:none}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile{display:block!important}#cs-dashboard #cs-dashboard-market-summary .ui.header{font-size:1.5em}#cs-dashboard #cs-dashboard-market-summary .ui.grid.padded.stackable,#cs-dashboard #cs-dashboard-market-summary .ui.grid.padded.stackable .column{padding-top:0}}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table{width:100%}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table td{padding-top:0;padding-bottom:1em;border:none}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table td .label{font-weight:300}@media only screen and (max-width:767px){#cs-dashboard #cs-dashboard-summary-stats .ui.grid.padded.stackable{padding:0}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table{text-align:center}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table .statistic{width:100%;margin-left:0}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table .statistic .label,#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table .statistic .value{text-align:center;font-weight:300}}#cs-dashboard #cs-dashboard-summary-chart{padding:0;box-shadow:none;height:auto!important;margin:1em 0}#cs-dashboard #cs-dashboard-summary-chart .line{stroke-width:1px}#cs-dashboard .cs-dashboard-summary-options.cs-summary-desktop{border-top:1px solid #dcdcdc;padding:1em .4em;margin-top:-3px}#cs-dashboard .cs-dashboard-summary-options.cs-summary-desktop .ui.secondary.menu .item{padding:.5em;margin:0 .1em}@media only screen and (max-width:767px){#cs-dashboard .cs-dashboard-summary-options.cs-summary-desktop{display:none}}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile{display:none}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile .ui.secondary.menu .item:first-child{margin-left:0!important}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile .ui.secondary.menu .item:last-child{margin-right:0!important}@media only screen and (max-width:767px){#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile{display:block}}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile.cs-indices{margin-top:0}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile.cs-time-opts{border-top:1px solid #dcdcdc;padding:.5em 0 0;margin-top:1em;margin-bottom:1em;border-bottom:1px solid #dcdcdc}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile.cs-time-opts .sixteen.wide.column{padding-bottom:.5em!important}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile.cs-time-opts .ui.menu .item{padding:.5em}#cs-dashboard #cs-dashboard-performers .ui.basic.tab{overflow-x:scroll;overflow-y:hidden;white-space:nowrap}#cs-dashboard #cs-dashboard-performers .cs-loader{height:100%;z-index:5}#cs-dashboard #cs-dashboard-performers .cs-chart{margin-top:3.2em}@media only screen and (max-width:767px){#cs-dashboard #cs-dashboard-performers{height:auto}}@media only screen and (max-width:767px){#cs-dashboard{margin-top:1em!important}#cs-dashboard .cs-chart-timeseries.light .x-grid,#cs-dashboard .cs-chart-timeseries.light .y-grid{stroke:hsla(0,0%,85.9%,.42)}#cs-dashboard .column{padding-top:0!important}#cs-dashboard #cs-dashboard-time-stamp{margin:0;position:static;padding:0}}#cs-dashbard-analyst-opinion{margin-bottom:1em}#cs-recent-research .ui.list{overflow-y:scroll;overflow-x:hidden;padding:0 .5rem;max-height:542.5px;max-height:38.75rem}#cs-dashboard-research-tabs .hidden{display:none;width:0;overflow:hidden;padding:0}#cs-top-stocks{box-shadow:none;margin-bottom:1em;border-bottom:1px solid #dcdcdc;padding-bottom:1em}#cs-top-stocks .ui.grid{margin:0}#cs-top-stocks .ui.header{margin-bottom:.3em;font-size:1.5em}#cs-top-stocks .ui.header span{font-size:.5em}#cs-top-stocks .ui.header,#cs-top-stocks p{line-height:1}#cs-top-stocks p{color:#989898}#cs-top-stocks .list .list-item{display:flex;justify-content:space-between;align-items:center;box-shadow:0 0 1px grey;border-radius:5px;overflow:hidden;margin-bottom:.7em;background:#fff}#cs-top-stocks .list .list-item .value{font-size:1.3em;color:#fff;padding:.7em 0;background:grey;flex:0 0 86px;display:flex;align-items:center;justify-content:center}#cs-top-stocks .list .list-item .details{flex:auto;display:flex;align-items:center;justify-content:space-between;padding:0 .5em}#cs-top-stocks .list .list-item .details .close{text-align:right}#cs-top-stocks .list .list-item .details .symbol{color:#989898;font-size:1.15em;font-weight:700}#cs-top-stocks .list .list-item .details .change.red{color:red}#cs-top-stocks .list .list-item .details .change.green{color:#67cc38}#cs-top-stocks .column.di{padding-left:0}#cs-top-stocks .column.di .ui.header{color:#84786d}#cs-top-stocks .column.di .list .list-item .value{background:#84786d}#cs-top-stocks .column.per .ui.header{color:#b39430}#cs-top-stocks .column.per .list .list-item .value{background:#b39430}#cs-top-stocks .column.pr .ui.header{color:#14615f}#cs-top-stocks .column.pr .list .list-item .value{background:#14615f}#cs-top-stocks .column.vt{padding-right:0}#cs-top-stocks .column.vt .ui.header{color:#3f7fa6}#cs-top-stocks .column.vt .list .list-item .value{background:#3f7fa6}#cs-top-stocks .list .list-item:last-child{margin-bottom:0}@media only screen and (max-width:767px){#cs-top-stocks{margin-top:1em}#cs-top-stocks .column{margin-bottom:2em}}.cs-top-stocks-nav{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}.cs-top-stocks-nav .note{font-style:italic;font-size:.8em;color:grey;line-height:1}@media only screen and (max-width:767px){.cs-top-stocks-nav .note{margin-top:1em}.cs-top-stocks-nav #cs-stock-indices{width:100%}.cs-top-stocks-nav #cs-stock-indices .ui.button{flex:auto;padding:1em .5em}}.update__product__modal .header{text-align:center}.update__product__modal .content img{width:100%;border-radius:15px;margin:1em 0}.update__product__modal h3{display:flex;align-items:center;justify-content:space-between}@media only screen and (max-width:767px){.update__product__modal h3{flex-direction:column}.update__product__modal h3 .ui.button{margin-top:1em}}.stk__advert .ui.button{border-radius:8px;max-width:193.375px;max-width:13.8125rem;width:100%;padding:1rem;font-size:16.625px;font-size:1.1875rem;font-weight:500;text-transform:capitalize;line-height:17.5px;line-height:1.25rem}.stk__advert .ui.button.primary{background:linear-gradient(0deg,#264ce0,#264ce0),#0e5dbe}.stk__advert .ui.button.green{background:#3cc062}.stk__advert .ui.button:hover{opacity:.9}.stk__advert__widget{position:relative;padding:2.5rem 1.25rem}.stk__advert__widget .bg-1{position:absolute;background:linear-gradient(180deg,#09131c,#0c1823),linear-gradient(180deg,#f6f6f6,#fff);width:100%;height:100%;left:0;top:0;z-index:2;border-radius:2px}.stk__advert__widget .bg-2{z-index:1;position:absolute;background:linear-gradient(78.6deg,#3acdd9 8.47%,#264cdf 38.24%,#20ced9 73.88%,#3dc162 95.08%);border-radius:2px;width:calc(100% + 8px);height:calc(100% + 8px);left:-4px;top:-4px}.stk__advert__widget .bg-3{z-index:3;width:389px;height:196px;left:34px;top:164px;position:absolute;background:linear-gradient(0deg,rgba(0,0,0,.41),rgba(0,0,0,.41)),conic-gradient(from 180deg at 50% 50%,#20d0da 47deg,#264ce0 150deg,#3ec45f 297deg,#175cb9 1turn);box-shadow:400px 400px 400px;border-radius:9999px;filter:blur(200px)}.stk__advert__widget .content{position:relative;z-index:4;width:100%;height:100%;display:flex;align-items:center;justify-content:center;gap:21px;gap:1.5rem;text-align:center;flex-direction:column}.stk__advert__widget .heading{color:#fff;font-size:26.25px;font-size:1.875rem;line-height:35px;line-height:2.5rem;font-weight:700}.stk__advert__widget .sub-heading{color:#e0e9f2;font-size:14px;font-size:1rem;font-weight:400}.stk__advert__overlay{overflow:hidden;position:fixed;width:100%;z-index:11;bottom:0;left:0;padding:3.3rem 2.5rem;background:linear-gradient(180deg,#09131c,#0c1823),linear-gradient(180deg,#f6f6f6,#fff)}@media only screen and (max-width:767px){.stk__advert__overlay{display:none}}.stk__advert__overlay .content{display:grid;grid-template-columns:1fr 1fr;gap:21px;gap:1.5rem}.stk__advert__overlay .content__left{display:flex;align-items:flex-start;flex-direction:column;gap:21px;gap:1.5rem}.stk__advert__overlay .content__right{position:relative;display:flex;align-items:flex-end;justify-content:flex-end;padding-bottom:2rem;gap:15.75px;gap:1.125rem}.stk__advert__overlay .content__right:after{content:"";position:absolute;width:100%;height:100%;right:-60px;bottom:-30px;background:#000;box-shadow:400px 400px 400px;border-radius:9999px;filter:blur(100px);z-index:-1}.stk__advert__overlay .heading{color:#20ceda;background:linear-gradient(88.5deg,#20ceda .87%,#264edd 34.06%,#3dc260 66.74%,#175cb9 98.91%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:39.375px;font-size:2.8125rem;line-height:39.375px;line-height:2.8125rem;font-weight:700;word-wrap:break-word}.stk__advert__overlay .sub-heading{color:#e0e9f2;font-size:18.375px;font-size:1.3125rem;font-weight:400;line-height:25.375px;line-height:1.8125rem;word-wrap:break-word}.stk__advert__overlay .bg-view{border-top-left-radius:9px;border-top-right-radius:9px;border-left:4px solid #3acdd9;border-top:4px solid #3acdd9;border-right:4px solid #3acdd9;position:absolute;width:45%;top:84px;top:6rem;right:56px;right:4rem;z-index:-1}.stk__advert__overlay .ui.button.close{color:#505c7c!important;position:absolute;top:21px;top:1.5rem;right:21px;right:1.5rem;width:39.813px;width:2.8438rem;height:39.813px;height:2.8438rem;display:flex;align-items:center;justify-content:center;border:none!important;box-shadow:none!important}.ui.modal .close.icon{color:#d4d4d5!important}.ui.list a.item{cursor:default;padding:.5em;position:relative}.ui.list a.item .content{padding:0 1em 0 .5em}.ui.list a.item .header{font-weight:300;margin-bottom:.3em;padding-right:1em}.ui.list a.item .header:hover{color:#2c6aa0}.ui.list a.item .header,.ui.list a.item .label{cursor:pointer}.ui.list a.item .label:hover{opacity:.8}#cs-clientres .cs-embed{width:100%}@media only screen and (max-width:767px){#cs-clientres .cs-embed{overflow:scroll;height:500px;-webkit-overflow-scrolling:touch}}#cs-clientres .cs-research-preview{padding-top:0}@media only screen and (max-width:767px){#cs-clientres .cs-research-preview{height:auto;display:none}}#cs-clientres .cs-editor-segment{display:none}#cs-clientres .cs-editor-segment .cs-editor-note{display:flex;flex-direction:column;justify-content:center;align-items:center;height:80vh;text-align:center}#cs-clientres .cs-editor-segment .cs-editor-note h1{font-weight:100;font-size:3em}#cs-clientres .cs-editor-segment .cs-editor-note p{font-size:1.5em;font-weight:300;color:grey}#cs-clientres .cs-no-research{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}#cs-clientres .cs-no-research h1{font-weight:100;font-size:3em}#cs-clientres .cs-no-research.hide{display:none}#cs-clientres iframe{border:none}#cs-clientres .ui.accordion .title{font-size:1.5em;font-weight:300}#cs-clientres .ui.icon.buttons .ui.popup{padding:.5em;text-align:center}#cs-clientres .ui.accordion>.content{max-height:245px;overflow:scroll;background:hsla(0,0%,48.6%,.8);padding:.5em .5em 1.5em}.ui.modal i.close.icon{color:#fff;top:-2em;right:-1.5em}#cs-research-archive-modal .ui.list{max-height:450px;overflow:scroll}#cs-analyst-profile-modal .item{padding:3em}#cs-analyst-profile-modal .item .header{font-size:2em}#cs-analyst-profile-modal .item .ui.table tr td:first-child{font-weight:300}#cs-analyst-profile-modal .item .ui.table td{border:0}@media only screen and (max-width:767px){#cs-analyst-profile-modal .content{padding:0!important}#cs-analyst-profile-modal .content .item{padding:.5em!important}#cs-analyst-profile-modal .content .item .ui.image{max-width:120px!important;max-height:120px!important}#cs-analyst-profile-modal .content .item .header{float:none;text-align:center;display:block;font-size:1.5em}#cs-analyst-profile-modal .content .item #cs-edit-analyst-btn{float:none;width:100%;margin:1em 0}#cs-analyst-profile-modal .content .item .ui.table{margin:0}#cs-analyst-profile-modal .content .item .ui.table tr{padding:0 0 .5em}}#cs-report-name{margin:.5em 0;font-weight:300;display:inline-table;width:100%}#cs-upload-modal .dropzone{border:2px dashed #0087fe;font-size:2em;margin-top:1em}#cs-upload-modal .dropzone .dz-message{font-weight:300}#cs-upload-modal .dropzone .dz-filename{margin-top:3.5em}#cs-upload-modal .dropzone .dz-details{padding:1em}#cs-upload-modal .dropzone .dz-progress{top:40%}#cs-upload-modal .ui.toggle.checkbox .box:before,#cs-upload-modal .ui.toggle.checkbox label:before{background:#21ba45!important}#cs-upload-modal .ui.toggle.checkbox input:checked~.box:before,#cs-upload-modal .ui.toggle.checkbox input:checked~label:before,#cs-upload-modal .ui.toggle.checkbox input:focus:checked~.box:before,#cs-upload-modal .ui.toggle.checkbox input:focus:checked~label:before{background:#db2828!important}.cs-tag-generator{padding:.5em;border:1px solid rgba(34,36,38,.15)}.cs-tag-generator input{font-size:.9em!important;min-width:230px;display:inline-block;border:0!important;width:auto!important}.cs-tag-generator .tag-group{display:inline-block}#cs-edit-category-modal .ui.dividing.header{margin:1rem 0!important}#cs-edit-category-forms{max-height:370px;overflow:scroll;background:hsla(0,0%,50.2%,.11);padding:1em;box-shadow:inset 0 0 11px #a29e9e}#cs-add-category-btn{margin:1em 0 0}#cs-add-category-forms{padding:1em}#cs-manage-analyst-modal{width:400px}#cs-search-research-modal .ui.list{max-height:40vh;overflow-y:scroll}#cs-search-research-modal .content{min-height:415px}@media only screen and (max-width:767px){#cs-search-research-modal .ui.form .fifteen.wide.field{width:calc(100% - 70px)!important}#cs-search-research-modal .ui.form .one.wide.field{width:55px!important}}#cs-add-exp-modal .ui.form .ui.header{display:none;margin:0 0 1em;background:hsla(0,0%,82.7%,.49);padding:.7em;font-weight:300}.cs-opinion-modals:not(.cs-add-opinion):not(#cs-delete-opinion-modal):not(.cs-edit-opinion){width:500px!important}.cs-opinion-modals .ui.message{display:none}.cs-opinion-modals .actions .cs-skip-modal{background-color:hsla(0,0%,100%,0);margin:0}.cs-opinion-modals .ui.dropdown{min-width:100%}.cr__headRow{display:flex;align-items:center;justify-content:space-between}.cr__advSearch{background-color:#e9f2fa!important;box-shadow:inset 0 0 0 1px #2185d0,0 0 0 0 transparent!important}.cr__advSearch .ui.dividing.header{border-color:#2185d0}#cs-search-result{max-height:40vh;min-height:20vh;overflow:hidden;overflow-y:scroll;padding:0}@media only screen and (max-width:767px){#cs-search-result{overflow-x:scroll}}#cs-search-result table th i.sort{cursor:pointer;text-align:right;margin-right:0}#cs-search-result table th:not(.no-sort):after{width:14px!important;display:inline-block!important;content:"\f0dc"!important}#cs-search-result table th.ascending:after{content:"\f0d8"!important}#cs-search-result table th.descending:after{content:"\f0d7"!important}#cs-category-accordion .item__controls{display:flex;align-items:center;justify-content:center;position:absolute;top:7px;top:.5rem;right:7px;right:.5rem}#cs-category-accordion .item__controls>i{color:#fff}#cs-category-accordion .item__controls>i.close:hover{color:#db2828}#cs-category-accordion .item__controls>i.pencil:hover{color:#0087fe}@-webkit-keyframes passing-through{0%{opacity:0;transform:translateY(40px)}30%,70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}@keyframes passing-through{0%{opacity:0;transform:translateY(40px)}30%,70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}@-webkit-keyframes slide-in{0%{opacity:0;transform:translateY(40px)}30%{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translateY(40px)}30%{opacity:1;transform:translateY(0)}}@-webkit-keyframes pulse{0%{transform:scale(1)}10%{transform:scale(1.1)}20%{transform:scale(1)}}.dropzone,.dropzone *{box-sizing:border-box}.dropzone{min-height:150px;border:2px solid rgba(0,0,0,.3);background:#fff;padding:20px}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message *{cursor:pointer}.dropzone.dz-started .dz-message{display:none}.dropzone.dz-drag-hover{border-style:solid}.dropzone.dz-drag-hover .dz-message{opacity:.5}.dropzone .dz-message{text-align:center;margin:2em 0}.dropzone .dz-preview{position:relative;display:inline-block;vertical-align:top;margin:16px;min-height:100px}.dropzone .dz-preview:hover{z-index:1000}.dropzone .dz-preview.dz-file-preview .dz-image{border-radius:20px;background:#999;background:linear-gradient(180deg,#eee,#ddd)}.dropzone .dz-preview.dz-file-preview .dz-details{opacity:1}.dropzone .dz-preview.dz-image-preview{background:#fff}.dropzone .dz-preview.dz-image-preview .dz-details{transition:opacity .2s linear}.dropzone .dz-preview .dz-remove{font-size:14px;text-align:center;display:block;cursor:pointer;border:none}.dropzone .dz-preview .dz-remove:hover{text-decoration:underline}.dropzone .dz-preview:hover .dz-details{opacity:1}.dropzone .dz-preview .dz-details{z-index:20;position:absolute;top:0;left:0;opacity:0;font-size:13px;min-width:100%;max-width:100%;padding:2em 1em;text-align:center;color:rgba(0,0,0,.9);line-height:150%}.dropzone .dz-preview .dz-details .dz-size{margin-bottom:1em;font-size:16px}.dropzone .dz-preview .dz-details .dz-filename{white-space:nowrap}.dropzone .dz-preview .dz-details .dz-filename:hover span{border:1px solid hsla(0,0%,78.4%,.8);background-color:hsla(0,0%,100%,.8)}.dropzone .dz-preview .dz-details .dz-filename:not(:hover){overflow:hidden;text-overflow:ellipsis}.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span{border:1px solid transparent}.dropzone .dz-preview .dz-details .dz-filename span,.dropzone .dz-preview .dz-details .dz-size span{background-color:hsla(0,0%,100%,.4);padding:0 .4em;border-radius:3px}.dropzone .dz-preview:hover .dz-image img{transform:scale(1.05);filter:blur(8px)}.dropzone .dz-preview .dz-image{border-radius:20px;overflow:hidden;width:120px;height:120px;position:relative;display:block;z-index:10}.dropzone .dz-preview .dz-image img{display:block}.dropzone .dz-preview.dz-success .dz-success-mark{-webkit-animation:passing-through 3s cubic-bezier(.77,0,.175,1);animation:passing-through 3s cubic-bezier(.77,0,.175,1)}.dropzone .dz-preview.dz-error .dz-error-mark{opacity:1;-webkit-animation:slide-in 3s cubic-bezier(.77,0,.175,1);animation:slide-in 3s cubic-bezier(.77,0,.175,1)}.dropzone .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark{pointer-events:none;opacity:0;z-index:500;position:absolute;display:block;top:50%;left:50%;margin-left:-27px;margin-top:-27px}.dropzone .dz-preview .dz-error-mark svg,.dropzone .dz-preview .dz-success-mark svg{display:block;width:54px;height:54px}.dropzone .dz-preview.dz-processing .dz-progress{opacity:1;transition:all .2s linear}.dropzone .dz-preview.dz-complete .dz-progress{opacity:0;transition:opacity .4s ease-in}.dropzone .dz-preview:not(.dz-processing) .dz-progress{-webkit-animation:pulse 6s ease infinite;animation:pulse 6s ease infinite}.dropzone .dz-preview .dz-progress{opacity:1;z-index:1000;pointer-events:none;position:absolute;height:16px;left:50%;top:50%;margin-top:-8px;width:80px;margin-left:-40px;background:hsla(0,0%,100%,.9);-webkit-transform:scale(1);border-radius:8px;overflow:hidden}.dropzone .dz-preview .dz-progress .dz-upload{background:#333;background:linear-gradient(180deg,#666,#444);position:absolute;top:0;left:0;bottom:0;width:0;transition:width .3s ease-in-out}.dropzone .dz-preview.dz-error .dz-error-message{display:block}.dropzone .dz-preview.dz-error:hover .dz-error-message{opacity:1;pointer-events:auto}.dropzone .dz-preview .dz-error-message{pointer-events:none;z-index:1000;position:absolute;display:block;display:none;opacity:0;transition:opacity .3s ease;border-radius:8px;font-size:13px;top:130px;left:-10px;width:140px;background:#be2626;background:linear-gradient(180deg,#be2626,#a92222);padding:.5em 1.2em;color:#fff}.dropzone .dz-preview .dz-error-message:after{content:"";position:absolute;top:-6px;left:64px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #be2626}#cs-pivot-points .ui.segment{min-height:650px}#cs-pivot-points .ui.header.dividing{border-color:#e2e2e2;padding-bottom:.3em}#cs-pivot-points .cs-pivot-tabs{margin:0}#cs-pivot-points .cs-support-resistance h5.head{visibility:hidden;height:0;margin-bottom:5px}#cs-pivot-points .cs-support-resistance .sr-bar .value{display:none}#cs-pivot-points .cs-support-resistance .point{top:-3.5px}#cs-pivot-points .ui.tab[data-tab=stocks]{position:relative}#cs-pivot-points .ui.tab[data-tab=stocks] .ui.dropdown.index-filter{position:absolute;top:14px;right:220px}@media only screen and (max-width:700px){#cs-pivot-points .ui.tab[data-tab=stocks] .ui.dropdown.index-filter{position:-webkit-sticky;position:sticky;width:100%;margin:1em 0}}#cs-pivot-points .ui.tab[data-tab=stocks] .ui.dropdown.paging-type{position:absolute;top:14px;right:425px}@media only screen and (max-width:700px){#cs-pivot-points .ui.tab[data-tab=stocks] .ui.dropdown.paging-type{position:-webkit-sticky;position:sticky;width:100%;margin:1em 0}}#cs-pivot-points .cs-table thead th:first-child .ui.input{width:200px!important}@media only screen and (max-width:700px){#cs-pivot-points .cs-table thead th:first-child{text-align:left!important}#cs-pivot-points .cs-table thead th:first-child .ui.input{width:calc(100vw - 3.5em)!important}}#cs-historical-data .generate-excel{flex:auto;text-align:right;display:flex;align-items:flex-end;justify-content:flex-end}#cs-historical-data .cs-hd-table{display:none}#cs-historical-data .cs-hd-table>.ui.header{margin:0;background-color:#3175a7}#cs-historical-data .cs-table .ui.icon.input{width:auto!important}#cs-historical-data .cs-table table tbody tr td:first-child,#cs-historical-data .cs-table table tbody tr th:not(.aligned):first-child,#cs-historical-data .cs-table table thead tr td:first-child,#cs-historical-data .cs-table table thead tr th:not(.aligned):first-child{text-align:left}#cs-historical-data .cs-table table tbody tr td,#cs-historical-data .cs-table table tbody tr th:not(.aligned),#cs-historical-data .cs-table table thead tr td,#cs-historical-data .cs-table table thead tr th:not(.aligned){text-align:center}#cs-historical-data .cs-table table tbody tr .positive,#cs-historical-data .cs-table table thead tr .positive{color:green!important;background:none!important}#cs-historical-data .cs-table table tbody tr .negative,#cs-historical-data .cs-table table thead tr .negative{color:red!important;background:none!important}#cs-historical-data .ui.tab[data-tab=historical-data] .cs-table table{table-layout:fixed}#cs-historical-data .ui.tab[data-tab=historical-data] .cs-table table thead tr th:first-child,#cs-historical-data .ui.tab[data-tab=historical-data] .cs-table table thead tr th:nth-child(2){width:150px}#cs-insider-page .cs-insider-header{margin:.2em 0 .5em}@media only screen and (max-width:700px){#cs-insider-page .cs-insider-header{text-align:center;margin:.2em auto;font-size:1.2em;max-width:220px}}@media only screen and (max-width:700px){#cs-insider-page .cs-insider-chart-wrapper{padding:.5em}}#cs-insider-paginate{display:inline-flex}#cs-insider-transaction .cs-insider-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1em}#cs-insider-transaction .cs-insider-nav .ui.menu{background-color:#3c92df;margin:0}#cs-insider-transaction .cs-insider-nav .cs-insider-nav-filters{display:flex}#cs-insider-transaction .cs-insider-nav .cs-insider-nav-filters .trend-filters{margin-right:1em}@media only screen and (max-width:700px){#cs-insider-transaction .cs-insider-nav{flex-direction:column}#cs-insider-transaction .cs-insider-nav .ui.menu{width:100%}#cs-insider-transaction .cs-insider-nav .ui.menu .item{flex:1;justify-content:center}#cs-insider-transaction .cs-insider-nav .ui.dropdown{width:100%;margin-bottom:1em}#cs-insider-transaction .cs-insider-nav .cs-insider-nav-filters{flex-direction:column;margin-top:1em;width:100%}}#cs-insider-transaction .ui.accordion{border:1px solid #e2e2e2;font-size:1.2em;max-height:7500px}#cs-insider-transaction .ui.accordion .content.grey,#cs-insider-transaction .ui.accordion .title.grey{background-color:#fbfbfb}#cs-insider-transaction .ui.accordion .insider-trend-wrapper{display:flex;align-items:center;justify-content:space-between}#cs-insider-transaction .ui.accordion .insider-trend-wrapper .top-activity{font-style:italic;font-size:.9em}#cs-insider-transaction .ui.accordion .insider-trend-wrapper .top-activity span{font-weight:300}#cs-insider-transaction .ui.accordion .insider-trend{display:flex;align-items:center}#cs-insider-transaction .ui.accordion .title .ui.popup .content{padding:0}#cs-insider-transaction .ui.accordion .trend{margin-left:.5em}#cs-insider-transaction .ui.accordion .trend i{margin:0}#cs-insider-transaction .ui.accordion .trend .number{font-weight:300}#cs-insider-transaction .ui.accordion .content{display:flex;align-items:flex-start}#cs-insider-transaction .ui.accordion .content .table-wrapper{position:relative;flex:1}#cs-insider-transaction .ui.accordion .content .table-wrapper .static-table{background-color:#fff;max-height:64px;overflow-y:hidden;margin-left:.5em;transition:max-height .25s ease-out}#cs-insider-transaction .ui.accordion .content .table-wrapper table{font-size:.8em;display:table!important;margin:0}#cs-insider-transaction .ui.accordion .content .table-wrapper table thead th{font-size:.8em;padding:.2em .7em;background:#f1f1f1}#cs-insider-transaction .ui.accordion .content .table-wrapper table thead .name{width:25%}#cs-insider-transaction .ui.accordion .content .table-wrapper table tbody .name{text-transform:capitalize}@media only screen and (max-width:700px){#cs-insider-transaction .ui.accordion .content .table-wrapper table .name{width:auto}}@media only screen and (max-width:700px){#cs-insider-transaction .ui.accordion .content .table-wrapper{overflow-x:scroll}#cs-insider-transaction .ui.accordion .content .table-wrapper .static-table{width:1300px}}#cs-insider-transaction .ui.accordion .content .table-wrapper.expand .static-table{max-height:280px;transition:max-height .5s ease-in;overflow-y:scroll}@media only screen and (max-width:700px){#cs-insider-transaction .ui.accordion{max-height:6000px}#cs-insider-transaction .ui.accordion .insider-trend-wrapper{display:block}#cs-insider-transaction .ui.accordion .insider-trend-wrapper .top-activity{text-align:right;font-size:.8em;margin-top:.5em}}#cs-insider-transaction .cs-insider-table{text-align:center}@media only screen and (max-width:700px){#cs-insider-transaction{padding:.5em}#cs-insider-transaction .trend{font-size:.8em}#cs-insider-transaction .cs-insider-table{overflow-x:scroll}#cs-insider-transaction .cs-insider-table table{width:1450px}#cs-insider-transaction .cs-insider-table table .cs-insider-table__messageRow{display:inline-flex}#cs-insider-transaction .cs-insider-table table tbody tr td:first-child{white-space:nowrap}}#announce-calendar{background-color:#e9eaef;margin:0 -1.1em}.announce__filters{display:flex;align-items:flex-end}.announce__search__popup{display:none;height:38px;margin-left:.5em}.announce__search__popup .ui.button{height:100%;margin:0;display:flex;align-items:center;padding:.5em;font-size:.9em}.announce__date__calenderView{display:none;top:-10px;right:0;position:absolute;color:#719abc;border:1px solid;align-items:center;border-radius:5px;padding:3px;cursor:pointer;font-size:.9em}.announce__date__calenderView i{font-size:1.2em;width:15px;height:20px;margin-right:5px}.announce__date__calenderView--show{display:flex}@media only screen and (max-width:700px){.announce__date__calenderView{position:static;width:100%;justify-content:center;margin:1em 0 .5em;padding:.5em}}.announce__date__filters{display:flex;align-items:flex-end;justify-content:flex-end;padding-left:1em;border-left:5px solid #466fc5;margin-left:1em;position:relative}.announce__date__filters .field{display:flex;flex-direction:column;margin-right:.5em}.announce__date__filters .field label{margin-bottom:5px}.announce__date__filters>.field:last-child{margin:0}.announce__date__filters .daterange{width:135px}.announce__date__filters .two.fields{display:flex;align-items:flex-end;margin-right:5px;width:280px}.announce__date__filters .button{margin:0}@media only screen and (max-width:700px){.announce__date__filters{flex-wrap:wrap;border-left:none;padding:5px 0 0;margin:5px 0 0;justify-content:space-between;align-items:flex-end}.announce__date__filters .company__selection{width:100%}.announce__date__filters .field{margin-right:0;margin-bottom:5px;width:100%}.announce__date__filters .field .ui.input{width:100%}.announce__date__filters .two.fields{justify-content:space-between;width:100%}.announce__date__filters .two.fields .field{width:49%}.announce__date__filters .apply{margin-bottom:5px}}.announce__type__filter{margin-left:0!important;margin-bottom:0!important;flex:auto}.announce__type__filter .item{margin:0!important;height:100%;padding:2.5em 1.25em!important;background-color:#f1f1f3!important;color:#7c7c80!important;border-radius:0!important;text-transform:uppercase!important;letter-spacing:1.5px!important;font-size:.75em!important;font-weight:700!important}.announce__type__filter .item.active{background-color:#2b6a9e!important;color:#fff!important}.announce__calendar{display:flex}.announce__calendarControls{font-size:4em;font-weight:700;color:#5383b2;cursor:pointer;background-color:#fff;display:flex;align-items:center;justify-content:center;border-radius:7px;box-shadow:1px 1px 5px #e8e8e8;transition:all .5s}.announce__calendarControls:hover{background-color:#eef7ff}.announce__calendarControls--disabled{opacity:.5;cursor:not-allowed}.announce__calendarControls>i{height:.5em;width:50px}.announce__calendarItems{display:flex;justify-content:space-between;margin:0 8px;flex:auto;overflow:hidden;height:200px}.announce__calendarItems>div{flex:0 0 13.7%}.announce__calendarItems>div:not(:last-child){margin-right:8px}.announce__calendarItem{border:1px solid #e0e0e0;box-shadow:1px 1px 5px #e8e8e8;border-radius:8px;background-color:#fff;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;position:relative;overflow:hidden;transition:all 1s}.announce__calendarItem--selected{border:1px solid #9a9c9e;box-shadow:0 0 5px #9a9c9e}.announce__calendarItem--message{flex:0 0 100%!important;height:220px;display:flex;align-items:center;justify-content:center}.announce__calendarDate{font-size:3em;line-height:0;margin:0;display:flex;align-items:center;height:64px;background-color:#eef7ff;padding:15px 5px;position:relative}.announce__calendarItem--selected .announce__calendarDate{background-color:#11365b;color:#fff}.announce__calendarDate>div{height:100%}.announce__calendarDate--today:before{content:"TODAY";color:#fff;background-color:#d53c90;position:absolute;bottom:-8px;left:calc(50% - 25px);width:50px;text-align:center;padding:3px;font-size:11px;border-radius:15px;line-height:1;z-index:1}.announce__calendarItem>.ui.dividing.header{margin:.5em 0}.announce__calendarItem--selected>.ui.dividing.header{border-color:#5289ce}.announce__calendarDate>span{line-height:1}.announce__calender__dayNumber{font-weight:700;display:flex;align-items:center}.announce__calendar__monthDayWeek{display:flex;flex-direction:column;margin-left:5px}.announce__calendarText{flex:auto;min-height:75px;padding:15px 5px;position:relative}.announce__calendarText .ui.label{font-size:9.599px!important;font-size:.685714rem!important}.announce__calender__month{font-size:.4em;font-weight:700}.announce__calender__dayWeek,.announce__calender__month{height:20px;display:flex;align-items:center}.announce__calender__dayWeek{font-weight:300;font-size:.3em}.announce__calendarItem--selected .announce__calender__dayWeek{opacity:.7}.announce__calendarReporting{font-weight:700}.announce__typeNumbers{font-size:.75em;text-transform:uppercase;display:flex;align-items:center}.announce__calendarText>.announce__typeNumbers:not(last-child){margin-bottom:8px}.announce__typeNumberLabel{background-color:#000;color:#fff;border-radius:15px;width:30px;display:inline-block;text-align:center;margin-right:10px}.announce__typeNumberLabel--widthAuto{min-width:30px;width:auto;padding:0 5px}.announce__typeNumberLabel--purple{background-color:#893ad6}.announce__typeNumberLabel--orange{background-color:#d5653e}.announce__typeNumberLabel--teal{background-color:#38bcd4}.announce__typeNumberLabel--liteblue{background-color:#b1bad6}.announce__typeNumberLabel--seagreen{background-color:#35bf9f}.announce__typeNumberLabel--green{background-color:#18c314}.announce__typeNumberText{font-size:1.1em;line-height:1.2;font-weight:700}.announce__calendarEmpty{background:repeating-linear-gradient(-46deg,transparent,transparent 13px,rgba(0,0,0,.05) 0,rgba(0,0,0,.05) 17px);height:100%;min-height:95px;margin:-10px 0}.announce__calendarFooter{display:flex;align-items:center;justify-content:space-between;padding:5px;color:#637a92;background-color:#f7f7f7}.annoucement-table-wrapper{padding:0!important}.announce__modalImageWrapper{display:flex;justify-content:center;align-items:flex-start;overflow:scroll;background:#333;height:90vh}#announce-table table{border-left:0;border-right:0}#announce-table .announce__calendarEmpty{background:repeating-linear-gradient(-46deg,transparent,transparent 8px,rgba(0,0,0,.05) 0,rgba(0,0,0,.05) 12px);min-height:25px}#announce-table .announce__calendarEmpty--FR{min-height:55px}#announce-table .new{-webkit-animation:change-bg-new-color 10s;animation:change-bg-new-color 10s}#announce-table .info-message{padding:70px 0;text-align:center}#announce-table .updated{-webkit-animation:change-bg-update-color 10s;animation:change-bg-update-color 10s}#announce-table table{margin:0}#announce-table .ui.header{margin:0;padding:1em;font-weight:700}#announce-table .ui.striped.table>tr:nth-child(2n),#announce-table .ui.striped.table tbody tr:nth-child(2n){background-color:rgba(10,10,10,.05)}.announce__table--fixed tr{display:flex}.announce__table--fixed tr td,.announce__table--fixed tr th{display:flex;flex-direction:column;justify-content:center}.announce__table--fixed tr .announce__tableRow--fullWidth{flex:0 0 100%!important}.announce__table--fixedHeader thead{position:fixed;top:128px;width:calc(100% - 3em);z-index:102;box-shadow:3px 3px 10px hsla(0,0%,50.2%,.3)!important}.announce__table--fixed.announce__table--FR tr td,.announce__table--fixed.announce__table--FR tr th{flex:0 0 95px}.announce__table--fixed.announce__table--FR tr td:first-child,.announce__table--fixed.announce__table--FR tr th:first-child{flex:auto}.announce__table--fixed.announce__table--FR tr td:last-child,.announce__table--fixed.announce__table--FR tr td:nth-child(3),.announce__table--fixed.announce__table--FR tr td:nth-child(4),.announce__table--fixed.announce__table--FR tr th:last-child,.announce__table--fixed.announce__table--FR tr th:nth-child(3),.announce__table--fixed.announce__table--FR tr th:nth-child(4){flex:0 0 100px}.announce__table--fixed.announce__table--FR tr td:nth-child(2),.announce__table--fixed.announce__table--FR tr th:nth-child(2){flex:0 0 190px}.announce__table--fixed.announce__table--BRM tr td,.announce__table--fixed.announce__table--BRM tr th{flex:0 0 15%}.announce__table--fixed.announce__table--BRM tr td:first-child,.announce__table--fixed.announce__table--BRM tr th:first-child{flex:auto}.announce__table--fixed.announce__table--BRM tr td:last-child,.announce__table--fixed.announce__table--BRM tr th:last-child{flex:0 0 12%}.announce__table--fixed.announce__table--BRM tr td:nth-child(2),.announce__table--fixed.announce__table--BRM tr th:nth-child(2){flex:0 0 18%}.announce__table--fixed.announce__table--EOGM tr td,.announce__table--fixed.announce__table--EOGM tr th{flex:0 0 30%}.announce__table--fixed.announce__table--EOGM tr td:first-child,.announce__table--fixed.announce__table--EOGM tr th:first-child{flex:auto}.announce__table--fixed.announce__table--EOGM tr td:last-child,.announce__table--fixed.announce__table--EOGM tr th:last-child{flex:0 0 12%}.announce__table--fixed.announce__table--PYT tr td,.announce__table--fixed.announce__table--PYT tr th{flex:0 0 120px}.announce__table--fixed.announce__table--PYT tr td:first-child,.announce__table--fixed.announce__table--PYT tr th:first-child{flex:auto}.announce__table--fixed.announce__table--PYT tr td:last-child,.announce__table--fixed.announce__table--PYT tr th:last-child{flex:0 0 100px}.announce__table--fixed.announce__table--PYT tr td:nth-child(2),.announce__table--fixed.announce__table--PYT tr td:nth-child(8),.announce__table--fixed.announce__table--PYT tr th:nth-child(2),.announce__table--fixed.announce__table--PYT tr th:nth-child(8){flex:0 0 225px}.announce__tableRow{padding:0 .5em;display:flex;align-items:center}.announce__tableRowLeft{flex:0 0 400px}.announce__tableRowRight{flex:0 0 100px;margin-left:1em}.announce__tableRow__companyName,.announce__tableRow__title{font-weight:700;font-size:1em;margin-bottom:5px}.announce__tableRow__companyName{text-transform:uppercase;font-size:.9em}.announce__tableRow__posted{font-style:italic;font-weight:300;color:#2b6a9d;font-size:.8em;margin-top:.5em}.announce__tableRow__companyName>.ui.blue.label{min-width:65px;text-align:center;margin-right:.5em}.annoucement-table-wrapper:after{top:80px!important}.announce__tableRowCenter{flex:auto;padding:1em;border-left:5px solid #719abc;background-color:#d7edff;border-radius:5px;display:flex;justify-content:space-between;align-items:flex-end}.announce__tableRowCenter--purple{border-left:5px solid #893ad6;background-color:#e3d5f2}.announce__tableRowCenter--orange{border-left:5px solid #d5653e;background-color:#f9e2da}.announce__tableRowCenter--red{border-left:5px solid red;background-color:#f9e2da}.announce__tableRowCenter--teal{border-left:5px solid #38bcd4;background-color:#c2eff7}.announce__tableRowCenter--green{border-left:5px solid #18c314;background-color:#c8fdc6}.announce__tableRowCenter--gold{border-left:5px solid gold;background-color:#ffee91}.announce__tableRowCenter--olive{border-left:5px solid #cddc39;background-color:#faffc6}.announce__tableRow__subText{font-style:italic;font-weight:300}.announce__tableRow__optionWrapper{flex:0 0 100px;text-align:right}.announce__tableRow__options{line-height:1;font-size:.9em;color:#2c6a9e;cursor:pointer;margin-left:.5em}.announce__tableColDivider{border-left:1px solid #ababab!important}.announce__tableFiles--horizontal{display:flex}.announce__tableFiles>a:not(:last-child){cursor:pointer}.announce__tableFiles--vertical>a:not(:last-child){margin-bottom:1em}.announce__tableFiles--horizontal>a:not(:last-child){margin-right:1em}.announce__type__filter--mobile{display:none!important}.announce__tableHeader{display:flex;align-items:center;justify-content:space-between}.announce__tableLegends{padding:1em;display:flex;flex:auto;max-width:700px;font-size:.7em;justify-content:flex-end}.announce__tableLegends--mobile{display:none;margin-top:1em}.announce__tableLegends>div:not(:last-child){margin-right:5px}.announce__legend{display:flex;align-items:center;flex:auto}.announce__legend__text{opacity:.6;white-space:nowrap}.announce__legend__colorBlock{flex:0 0 13px;height:13px;margin-right:5px}.announce__tablePeriod{margin:.5em 0;color:grey}.announce__legend__colorBlock--purple{background-color:#893ad6}.announce__legend__colorBlock--orange{background-color:#d5653e}.announce__legend__colorBlock--red{background-color:red}.announce__legend__colorBlock--teal{background-color:#38bcd4}.announce__legend__colorBlock--green{background-color:#18c314}.announce__legend__colorBlock--gold{background-color:gold}.announce__legend__colorBlock--blue{background-color:#719abc}.announce__legend__colorBlock--olive{background-color:#cddc39}@-webkit-keyframes change-bg-new-color{0%{background-color:#fff1c8}to{background-color:#fff}}@keyframes change-bg-new-color{0%{background-color:#fff1c8}to{background-color:#fff}}@-webkit-keyframes change-bg-update-color{0%{background-color:#cbd9f1}to{background-color:#fff}}@keyframes change-bg-update-color{0%{background-color:#cbd9f1}to{background-color:#fff}}@media only screen and (max-width:1420px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.95em!important}.announce__type__filter{font-size:1em!important}}@media only screen and (max-width:1375px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.9em!important}}@media only screen and (max-width:1350px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.85em!important}.announce__type__filter{font-size:1.02em!important}}@media only screen and (max-width:1325px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.8em!important}.announce__type__filter{font-size:1.06em!important}}@media only screen and (max-width:1300px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.75em!important}.announce__type__filter{font-size:1.1em!important}}@media only screen and (max-width:1275px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.7em!important}.announce__type__filter{font-size:1.2em!important}}@media only screen and (max-width:1250px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.65em!important}.announce__type__filter{font-size:1.3em!important}}@media only screen and (max-width:1225px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.6em!important}.announce__type__filter{font-size:1.4em!important}}@media only screen and (max-width:1200px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.55em!important}.announce__type__filter{font-size:1.5em!important}}@media only screen and (max-width:700px){.announce__legend{flex:0 0 48%;margin-right:5px}.announce__search__popup{display:block}.announce__date__filters--desktop{display:none}.announce__tableLegends--mobile{display:flex}.announce__tableLegends--desktop{display:none}.annoucement-calendar-wrapper,.annoucement-table-wrapper,.announce__type__filter{font-size:1em!important}.announce__type__filter--desktop{display:none!important}.announce__type__filter--mobile{display:block!important;background-color:#2b6a9e!important;border:1px solid #2b6a9e!important}.announce__type__filter--mobile .text,.announce__type__filter--mobile i{color:#fff!important}.announce__type__filter--mobile .menu{border:1px solid #2b6a9e!important}.announce__type__filter--mobile .text{text-transform:uppercase!important;letter-spacing:1px!important}.announce__type__filter--mobile.ui.dropdown .menu>.item{padding:1.5em!important}.announce__type__filter--mobile.ui.dropdown .menu{max-height:unset}.announce__calendarControls{font-size:3em}.announce__calendarControls>i{width:30px;margin:0}.announce__calendarItems{overflow-x:scroll}.announce__calendarItems>div{flex:0 0 200px}.announce__tableRow{display:block}.announce__tableRowCenter{margin:1em 0}.announce__tableRowRight{margin-left:0;display:flex}#announce-table .ui.header{padding:.5em}.announce__tableHeader{flex-direction:column}.announce__tableLegends{flex-wrap:wrap;padding-top:0}.announce__legend{margin-bottom:.5em}.annoucement-calendar-wrapper:first-child{height:64px}.announce__filters{position:fixed;z-index:10;top:calc(100px - .5em);left:0;width:100%;padding:1em}.announce__filters .ui.button,.announce__filters .ui.dropdown{box-shadow:3px 2px 5px rgba(0,0,0,.25)}.announce__tableRow{padding:0}.announce__table--fixed.announce__table--BRM tr td,.announce__table--fixed.announce__table--EOGM tr td,.announce__table--fixed.announce__table--FR tr td,.announce__table--fixed.announce__table--PYT tr td{flex:auto!important}.announce__table--mobile .company-type{margin:0}.announce__table--mobile .announce__tableRow{display:flex;flex-wrap:wrap}.announce__table--mobile .announce__tableRowLeft,.announce__table--mobile .announce__tableRowRight{flex:auto}.announce__table--mobile .announce__tableRowLeft{flex:0 0 130px}.announce__table--mobile .announce__tablePeriod{text-align:center;flex:0 0 100%;font-size:1.2em;font-weight:700;color:#8eafca;margin-top:1em;text-align:left}.announce__table--mobile .announce__mobileTable{width:100%;overflow:hidden}.announce__table--mobile .announce__mobileTable>div{padding:.05em .25em;display:flex;align-items:center;justify-content:space-between}.announce__table--mobile .announce__mobileTable>div>span{color:grey}.announce__table--mobile .announce__mobileTable>div>span:first-child{font-weight:700;margin-right:.5em;color:#000;font-size:.9em}}#cs-indices-page .ui.loading.segment:after,#cs-indices-page .ui.loading.segment:before{z-index:10}#cs-indices-page>.column,#cs-indices-page>.row>.column{padding:.5rem;height:100%}#cs-indices-page>.row{padding:0}@media only screen and (max-width:700px){#cs-indices-page>.column,#cs-indices-page>.row>.column{height:auto;padding-left:0!important;padding-right:0!important}}.indices__menu__wrapper{margin-top:1em}.indices__menu__wrapper #cs-kse-indices{padding:0!important;height:75px!important;box-shadow:none;margin:.5em}@media only screen and (max-width:700px){.indices__menu__wrapper #cs-kse-indices{display:block}}.indices__menu>.column{position:relative;cursor:pointer}.indices__menu>.column:after{content:" ";position:absolute;width:100%;height:3px;bottom:0;left:0;background-color:#fff;transition:background-color .25s}.indices__menu>.column:hover:after{background-color:#b0d3f0}.indices__menu>.column.active:after{background-color:#2b6ba8}.indices__header{color:#585858;font-size:1.5em;border-bottom:1px solid;padding-bottom:.5em;margin-bottom:.5em}.indices__header--summary,.indices__header--tabs{display:flex;align-items:center;justify-content:space-between}.indices__headerTabs{border:3px solid #2b6ba8;border-radius:8px;overflow:hidden}.indices__headerTabs .ui.button{font-size:15.4px;font-size:1.1rem;background-color:#2b6ba8!important;min-height:auto;min-width:130px;padding:.6rem 1rem}.indices__headerTabs .ui.button.active{background-color:#fff!important;color:#2b6ba8!important}.indices__market__table{width:100%;margin-bottom:2em}.indices__market__table--noMargin{margin:0}.indices__market__table td{text-align:right;font-weight:700}.indices__market__table--horizontal td{border:1px solid #dadada}.indices__market__table--center td{text-align:center}.indices__market__table th{text-align:left;background-color:#f3f3f3;color:#717171}.indices__market__table--horizontal th{border:1px solid #dadada}.indices__market__table--center th{text-align:center}.indices__market__table td,.indices__market__table th{padding:7px;border-bottom:1px solid #e2e2e2}.indices__market__table--horizontal th{font-size:.8em;padding:2px}.indices__market__table .green{color:#42d044}.indices__market__table .red{color:#ff1b1b}.indices__volume__table .indices__market__table td,.indices__volume__table .indices__market__table th{width:50%}.indices__rangeScales{display:flex;align-items:center;justify-content:space-between;margin-bottom:2em}.indices__rangeScale{flex:0 0 49%}.indices__rangeScale .ui.header{text-align:center;font-size:16.8px;font-size:1.2rem}.indices__volume{display:flex}.indices__volume--marginBottom{margin-bottom:2em}.indices__volume>div{flex:0 0 50%;height:70px}.indices__chart .bar.positive{fill:#2fc798!important}.indices__chart .bar.negative{fill:#c72152!important}.indices__chart .tool-color-block.green{background-color:#2fc798}.indices__chart .tool-color-block.red{background-color:#c72152}.indices__chart text.bar-text{font-weight:300}.indices__chart text.bar-text.green{stroke:#2fc798}.indices__chart text.bar-text.red{stroke:#c72152}.indices__chart .y-grid{stroke:transparent!important}.indices__chart .tick text{opacity:0}.indices__chart .cs-sector-treemap{margin:0;border:none}.indices__chart .cs-sector-treemap .scale{margin:0;float:right}.indices__chart .cs-sector-treemap .scale div{margin:0}.indices__constituentTable tr{display:flex}.indices__constituentTable thead tr{background-color:#d8d8d8}.indices__constituentTable--fixed{padding-top:35px}.indices__constituentTable--fixed thead{position:fixed;top:202px;width:calc(100% - 4em);z-index:10;box-shadow:3px 3px 10px hsla(0,0%,50.2%,.3)!important}.indices__constituentTable tr td:not(:first-child),.indices__constituentTable tr th:not(:first-child){text-align:right}.indices__constituentTable tr td:first-child,.indices__constituentTable tr th:first-child{flex:auto}.indices__constituentTable tr td,.indices__constituentTable tr th{flex:0 0 107px}.indices__constituentTable thead tr th{cursor:pointer!important;border-radius:0!important;border-bottom:1px solid #b6b6bb!important;border-top:1px solid #b6b6bb!important;padding:.5em!important}.indices__constituentTable thead tr th:first-child{border-left:1px solid #b6b6bb!important}.indices__constituentTable thead tr th:last-child{border-right:1px solid #b6b6bb!important}.indices__tab{display:none}.indices__tab--active{display:block}.indices__symbol{margin-right:10px!important;min-width:80px;text-align:center}.indices__barStats{display:flex;align-items:center;font-size:1.3em;padding:0!important}.indices__barStat--symbol{text-align:left}.indices__barStats--green{box-shadow:5px 5px 0 #2fc798!important;border:1px solid #2fc798!important}.indices__barStats--red{box-shadow:5px 5px 0 #c72152!important;border:1px solid #c72152!important}.indices__barStat{padding:.5em;text-align:center;height:100%;min-width:90px}.indices__barStat__title{font-size:.7em;font-weight:300;margin-bottom:2px}.indices__barStats .indices__barStat:not(:first-child){border-left:1px solid #eaeaea}.indices__barStat__value--green{color:#2fc798}.indices__barStat__value--red{color:#c72152}.indices__barStat--name{font-size:.7em;font-weight:300;text-align:left}.indices__tab[data-tab=companies] .indices__constituentTable tr td:nth-child(2),.indices__tab[data-tab=companies] .indices__constituentTable tr td:nth-child(3),.indices__tab[data-tab=companies] .indices__constituentTable tr td:nth-child(4),.indices__tab[data-tab=companies] .indices__constituentTable tr th:nth-child(2),.indices__tab[data-tab=companies] .indices__constituentTable tr th:nth-child(3),.indices__tab[data-tab=companies] .indices__constituentTable tr th:nth-child(4){flex:0 0 125px}.indices__tab[data-tab=companies] .indices__constituentTable tr td:last-child,.indices__tab[data-tab=companies] .indices__constituentTable tr th:last-child{flex:0 0 155px}.indices__tab[data-tab=sectors] .indices__constituentTable tr td:nth-child(2),.indices__tab[data-tab=sectors] .indices__constituentTable tr td:nth-child(3),.indices__tab[data-tab=sectors] .indices__constituentTable tr th:nth-child(2),.indices__tab[data-tab=sectors] .indices__constituentTable tr th:nth-child(3){flex:0 0 125px}.indices__tab[data-tab=sectors] .indices__constituentTable tr td:nth-child(4),.indices__tab[data-tab=sectors] .indices__constituentTable tr td:nth-child(5),.indices__tab[data-tab=sectors] .indices__constituentTable tr th:nth-child(4),.indices__tab[data-tab=sectors] .indices__constituentTable tr th:nth-child(5){flex:0 0 155px}#cs-indices-sunburst-chart,.indices__sector__chart{height:100%}.indices__performance__divider{margin:1em 0;height:1px;background-color:#c5c5c5}.indices__performance__title{font-weight:300;font-size:1.7em;margin:.5em 0;line-height:1}.indices__performance__title--dualMargin{margin:.7em 0}.indices__performance__statTitle{font-size:.8em;font-weight:300;margin-bottom:5px}.indices__performance__stats{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.indices__performance__stats>div{flex:0 0 50%}.indices__performance__stat{padding:.5em 0}.indices__performance__statValue{font-size:1.5em}.indices__performance__statValue i{width:auto}.indices__performance__statChange{margin-top:.5em;line-height:1}.indices__performance__statValue--red{color:#ff1b1b}.indices__performance__statValue--green{color:#42d044}.indices__performance__statValue--blue{color:#075283}.indices__performance__changePercent{font-size:.7em}.indices__performance__table{width:100%;table-layout:fixed}.indices__performance__table td,.indices__performance__table th{text-align:center;padding:.5em}.indices__performance__table th{font-size:.8em;background-color:#e4e4e4}.indices__performance__table td{font-weight:700;font-size:1.3em}.indices__performance__table td.green{color:#07720e}.indices__performance__table td.red{color:#f03828}.indices__performance__table td.blue{color:#075283}.indices__kseStats__table{width:100%;margin-bottom:2em}.indices__kseStats__table tr{display:flex}.indices__kseStats__table td,.indices__kseStats__table th{flex:1;text-align:left;padding:.8em 0;font-size:1.1em;background-image:linear-gradient(90deg,#333 40%,hsla(0,0%,100%,0) 0);background-position:bottom;background-size:3px 2px;background-repeat:repeat-x;display:flex;align-items:center;white-space:nowrap}.indices__kseStats__table th{color:#5f5d5e;justify-content:flex-start}.indices__kseStats__table td{color:#636263;justify-content:flex-end}.indices__kseStats__table tr td:nth-child(2){margin-right:10px}.indices__kseStats__table tr td:nth-child(3){margin-left:10px}.indices__kseStats__table .red{color:#ff1b1b}.indices__kseStats__table .green{color:#42d044}.indices__note{text-align:right;font-style:right;font-size:.8em;color:grey}.indices__status{display:flex;align-items:center}.indices__statusPulse{display:inline-block;margin-right:.5em;width:8px;height:8px;border-radius:50%;background:#57677f;cursor:pointer;box-shadow:0 0 0 rgba(204,169,44,.4);-webkit-animation:pulse 2s infinite;animation:pulse 2s infinite}.indices__statusText{font-size:.8em;color:#57677f}.indices__status--live .indices__statusPulse{background:#30c79b;box-shadow:0 0 0 rgba(49,199,155,.4);-webkit-animation:pulseLive 2s infinite;animation:pulseLive 2s infinite}.indices__status--live .indices__statusText{color:#30c79b}.indices__status--close .indices__statusPulse{background:#cecece;box-shadow:0 0 0 #cecece;-webkit-animation:none;animation:none}.indices__status--close .indices__statusText{color:#cecece}.indices__menuMobile__wrapper{display:none!important;position:fixed!important;top:94px;z-index:-1;opacity:0;left:0;transition:all .5s}.indices__menuMobile__wrapper .dropdown{border-radius:0}@media only screen and (max-width:700px){.indices__menuMobile__wrapper{display:block!important}}.indices__menuMobile__wrapper--show{z-index:20;opacity:1}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(87,103,127,.4)}70%{box-shadow:0 0 0 10px rgba(87,103,127,0)}to{box-shadow:0 0 0 0 rgba(87,103,127,0)}}@-webkit-keyframes pulseLive{0%{box-shadow:0 0 0 0 rgba(49,199,155,.4)}70%{box-shadow:0 0 0 10px rgba(49,199,155,0)}to{box-shadow:0 0 0 0 rgba(49,199,155,0)}}@keyframes pulseLive{0%{box-shadow:0 0 0 0 rgba(49,199,155,.4)}70%{box-shadow:0 0 0 10px rgba(49,199,155,0)}to{box-shadow:0 0 0 0 rgba(49,199,155,0)}}@media only screen and (max-width:700px){.indices__performance__divider{margin:.5em 0}.indices__performance__statTitle{font-size:.75em;line-height:1}.indices__kseStats__table th{font-size:.9em}.indices__volume>div{flex:0 0 35%}.indices__volume__table{flex:0 0 65%!important}.indices__market__table th{font-size:.8em}.indices__header--tabs{flex-direction:column}.indices__header--tabs .indices__headerText{margin-bottom:.5em;font-size:.9em}.indices__headerTabs{width:100%}.indices__chart text.bar-text{font-size:.65em}.indices__barStats{font-size:1em;flex-direction:column}.indices__barStat{padding:2px;min-width:70px}.indices__barStat__title{margin-bottom:4px;line-height:1}.indices__barStat--name{display:none}.indices__barStat--symbol{text-align:center}.indices__barStat--mcap{display:none}.indices__constituentTable--fixed{padding-top:0}.indices__constituentTable--fixed thead{position:static}.indices__tab{width:100%;overflow-x:scroll}.indices__constituentTable{width:1250px!important}.indices__volume__table .indices__market__table td,.indices__volume__table .indices__market__table th{width:auto}.indices__dummy__wrapper{display:none!important}}#cs-help{background-color:#fff}#cs-help-tabs>.cs__tab__contents{margin-top:182px}.cs__help__content{font-size:1.2em}.cs__help__content h2{margin-top:0!important}.cs__help__content .urd{text-align:right;font-family:Urdu Nastaliq Unicode;font-size:1.2em}.cs__help__content ol.urd,.cs__help__content ul.urd{text-align:right;list-style-position:inside;direction:rtl}.cs__help__content .ui.header{font-weight:700}.cs__help__langBtn{width:100%;text-align:center;background-color:hsla(0,0%,100%,.15);padding:1em;border-radius:8px;margin-top:1em}.cs__help__langBtn .text{margin-bottom:1em}.cs__help__image{position:relative;border:1px solid #e2e2e2!important}.cs__help__imagePanel{position:absolute;right:15px;top:15px;transition:all .3s;opacity:0}.cs__help__image:hover .cs__help__imagePanel{opacity:1}.cs__help__uploadImage{position:relative}.cs__help__uploadImage input[type=file]{position:absolute;width:100%;height:100%;top:0;right:0;opacity:0}#cs-port-invest-page .cs-chart .negative{fill:#c72152}#cs-port-invest-page .cs-chart .positive{fill:#2fc798}#cs-port-invest-page .cs-type-buttons{position:static}#cs-port-invest-page .ui.grid{margin:-.5em}#cs-port-invest-page .ui.grid .column{padding:.5em}#cs-port-invest-page .cs__table table{border-collapse:collapse}#cs-port-invest-page .cs__table tbody tr td{width:80px}#cs-port-invest-page .indices__note{text-align:right}#cs-port-invest-page .indices__note .indices__note--mobile{display:none}@media only screen and (max-width:700px){#cs-port-invest-page .indices__note{text-align:center}#cs-port-invest-page .indices__note .indices__note--desktop{display:none}#cs-port-invest-page .indices__note .indices__note--mobile{display:block}}#cs-port-invest-page .mobile{display:none}@media only screen and (max-width:700px){#cs-port-invest-page{overflow:visible!important}#cs-port-invest-page .mobile{display:block}#cs-port-invest-page .desktop{display:none}}.cs__port__topPanel{position:fixed!important;width:97%;top:150px;height:auto!important;z-index:11;box-shadow:0 1px 1px 0 rgba(34,36,38,.5),0 0 0 0 rgba(34,36,38,.5)!important;margin:0!important}@media only screen and (max-width:700px){.cs__port__topPanel{width:100%}}.cs__port__topHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:1em}.cs__port__topHeader .ui.header{margin:0}@media only screen and (max-width:700px){.cs__port__topHeader{display:block;margin-bottom:1em}.cs__port__topHeader h1{text-align:center}}.cs__port__topHeaderButtons>div:not(first-child){margin-left:1em!important}@media only screen and (max-width:700px){.cs__port__topHeaderButtons>div:not(first-child){margin-left:0!important}}@media only screen and (max-width:700px){.cs__port__topHeaderButtons .ui.dropdown{display:block;margin-top:1em!important;margin-bottom:1em!important}}.cs__port__sectorChart{position:relative;width:100%;height:100%}.cs__port__sectorChart .red{color:#c72152}.cs__port__sectorChart .green{color:#2fc798}.cs__port__sectorChart .tooltip{position:absolute}.cs__port__sectorChart .axis line,.cs__port__sectorChart .axis path{shape-rendering:crispEdges}.cs__port__sectorChart div.tooltip{font-size:1.25em;text-align:right;padding:.5em;background:#fff;border:1px solid #d3d3d3;border-radius:8px;pointer-events:none;left:0;top:0;box-shadow:1px 1px 1px 0 rgba(34,36,38,.25)}@media only screen and (max-width:700px){.cs__port__chart .cs-chart{width:150%}.cs__port__sectorChart{min-height:300px}}#cs-client-portfolio{margin-top:127px!important}.cs-clport__menu{height:51px;margin-bottom:1em}.cs-clport__menu .ui.menu{margin-top:127px;z-index:1}.cs-clport__menu .ui.menu .ui.dropdown .text i.checkmark{display:none}.cs-clport__menu .ui.menu .ui.dropdown .item i.checkmark{color:#24d224;opacity:0}.cs-clport__menu .ui.menu .ui.dropdown .item.selected i.checkmark{opacity:1}.cs-clport__add-trade .ui.attached.segment,.cs-clport__add-valuations .ui.attached.segment,.cs-clport__create .ui.attached.segment{width:calc(100% + 2px)}.cs-clport__add-trade form.ui.attached.segment,.cs-clport__add-valuations form.ui.attached.segment,.cs-clport__create form.ui.attached.segment{border:1px solid #2c6a9e}.cs-clport__create-header{display:none}.cs-clport__create-header--show{display:block}.cs-clport__open-view-valuations{background-color:#2c6a9e!important;color:#fff!important}.cs-clport__open-add-trade,.cs-clport__open-add-valuations{background-color:#24d224!important;color:#fff!important}.cs-clport__open-create-portfolio{background-color:#ff5722!important;color:#fff!important}.cs-clport__select-company .menu .item span,.cs-clport__select-company .text span{font-style:italic;font-weight:300}.cs-clport__add-trade input[readonly]{background-color:rgba(240,248,255,.94)!important}.cs-clport__summary .cs-clport__summary__portValue .value{font-size:3em!important}.cs-clport__summary .statistic .value{text-transform:capitalize!important}.cs-clport__summary .six.wide.column{position:relative}.cs-clport__summary .six.wide.column .statistic .value{font-size:2.25em!important}.cs-clport__summary .six.wide.column:before{content:" ";position:absolute;left:-1em;top:0;height:90%;width:1px;background-color:#d1d1d1}.cs-clport__trade-table{margin-top:1.5em}.cs-clport__trade-table th i.sort{cursor:pointer;text-align:right;margin-right:0}.cs-clport__trade-table th:not(.no-sort):after{width:14px!important;display:inline-block!important;content:"\f0dc"!important}.cs-clport__trade-table th.ascending:after{content:"\f0d8"!important}.cs-clport__trade-table th.descending:after{content:"\f0d7"!important}#cs-portfolio-builder{margin-top:128px!important;margin-bottom:-1rem}.pb__body{padding:3rem 4.286rem;background-color:#fcfcfc;margin-bottom:-1rem}.pb__body--bg-blue{background:linear-gradient(182.31deg,#014089 1.52%,#092473 94.56%)}.pb__grid{display:flex}.pb__grid--spc-btw{justify-content:space-between}.pb__grid--flx-end{justify-content:flex-end}.pb__grid--algn-cntr{align-items:center}.pb__grid--nrml-spc{margin:-.5rem}.pb__grid--med-spc{margin:-.71428571rem}.pb__grid--vertical{flex-direction:column}.pb__grid--eq-box>div{flex:1}.pb__grid--nrml-spc>div{margin:.5rem}.pb__grid--med-spc>div{margin:.7142857142857143rem}.pb__grid--modal{padding:1.25rem 1.25rem 0}.pb__grid>.pb__grid__column--flex-2{flex:2}.pb__header{font-size:20px;font-size:1.4285714285714286rem;line-height:20px;line-height:1.4285714285714286rem}.pb__header--lg{font-size:27.02px;font-size:1.93rem;line-height:36.12px;line-height:2.58rem}.pb__btn{background-color:#f1f1f3;color:#7c7c80;border-radius:7px;padding:.57rem 1.14rem;cursor:pointer;box-shadow:0 .29rem .29rem rgba(0,0,0,.25);transition:opacity .25s;display:inline-block;min-width:86px;text-align:center}.pb__btn--min-wdth-56{min-width:56px}.pb__btn:hover{opacity:.75}.pb__btn>span{font-size:12.04px;font-size:.86rem}.pb__btn--fnt-med>span{font-size:14px;font-size:1rem}.pb__btn--fnt-smll>span{font-size:9px;font-size:.6428571428571429rem}.pb__btn--bg-orange{background-color:#f76014;color:#fff}.pb__btn--bg-white{background-color:#fff}.pb__btn--bg-red{background-color:#e71717;color:#fff}.pb__btn--bg-green{background-color:#07a595;color:#fff}.pb__btn--bg-blue{background-color:#114b9b;color:#fff}.pb__btn--txt--drkBlue{color:#114b9b}.pb__btn--txt--orange{color:#f76014}.pb__btn--no-shdw{box-shadow:none}.pb__btn--no-brdr-rad{border-radius:0}.pb__btn--brdr-drk-blue{border:1px solid #114b9b}.pb__btn--brdr-orange{border:1px solid #f76014}.pb__btn--disabled{cursor:default;pointer-events:none;opacity:.65}.pb__btn--loading{cursor:default;pointer-events:none;position:relative;color:transparent}.pb__btn--loading:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.5);width:100%;height:100%;z-index:14}.pb__btn--loading:after{position:absolute;content:"";top:calc(50% - .75rem);left:calc(50% - .75rem);width:21px;width:1.5rem;height:21px;height:1.5rem;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2rem solid hsla(0,0%,100%,.25);border-top-color:#fff;box-shadow:0 0 0 .07142857rem transparent;visibility:visible;z-index:101}.pb__btn--txt--drkBlue.pb__btn--bg-white.pb__btn--brdr-drk-blue.pb__btn--loading:before{background:#114b9b}.pb__btns{display:flex}.pb__btns--spc-btw{justify-content:space-between}.pb__btns--flx-end{justify-content:flex-end}.pb__btns>.pb__btn:not(:last-child){margin-right:.8571428571428571rem}.pb__btns--group>.pb__btn{margin:0!important}.pb__btns--group>.pb__btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.pb__btns--group>.pb__btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.pb__btns--group-full-wdth>.pb__btn{flex:1}.pb__section{display:none}.pb__section--active{display:block}table.pb__table{border-collapse:collapse;width:100%;border-radius:3px 3px 0 0}table.pb__table thead td,table.pb__table thead th{font-size:12px;font-size:.85714286rem;line-height:20px;line-height:1.4285714285714286rem;background-color:#ebebeb;padding:1.14285714rem}table.pb__table tbody td,table.pb__table tbody th{font-size:13px;font-size:.9285714285714286rem;line-height:20px;line-height:1.4285714285714286rem;background-color:#fff;padding:1.14285714rem}table.pb__table tbody tr:not(:last-child) td,table.pb__table tbody tr:not(:last-child) th{border-bottom:1px solid rgba(34,36,38,.1)}table.pb__table tbody tr td:not(:first-child),table.pb__table tbody tr th:not(:first-child),table.pb__table thead tr td:not(:first-child),table.pb__table thead tr th:not(:first-child){text-align:right}table.pb__table tbody tr td:first-child,table.pb__table tbody tr th:first-child,table.pb__table thead tr td:first-child,table.pb__table thead tr th:first-child{text-align:left}table.pb__table .pb__table__noData{font-size:14px;font-size:1rem;text-align:center!important;height:125px;height:8.928571428571429rem}.pb__segment{max-width:600px;margin-left:auto;margin-right:auto;background-color:#fff;border-radius:.21428571rem}.pb__segment--full-wdth{width:100%;max-width:none}.pb__segment__header{text-align:center;padding:1.1428571428571428rem 1rem}.pb__segment__header>span{font-size:23px;font-size:1.6428571428571428rem;line-height:31px;line-height:2.2142857142857144rem}.pb__segment__header--spc-btw{display:flex;align-items:center;justify-content:space-between}.pb__segment__header--spc-btw>span:last-child{font-size:13px;font-size:.9285714285714286rem}.pb__segment__headerMenu{display:flex;align-items:center;padding:1.1428571428571428rem 1rem}.pb__segment__headerMenu>.pb__segment__header{flex:auto;padding:0}.pb__segment__menu__toggle{width:34.938px;width:2.4955714285714286rem;height:34.938px;height:2.4955714285714286rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.pb__segment__menu__toggle>i{margin:0;line-height:1}.pb__segment__content{border-top:1px solid rgba(34,36,38,.1);border-bottom:1px solid rgba(34,36,38,.1)}.pb__segment__content--no-brdr{border:0!important}.pb__segment__actions,.pb__segment__content{padding:1rem}.pb__segment__actions .pb__btn{min-width:120px}.pb__create__stepsProgress{display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin-left:auto;margin-right:auto;position:relative;height:16px;height:1.1428571428571428rem;margin-bottom:2rem}.pb__create__progressRail{position:absolute;left:0;width:100%;top:calc(50% - .14286rem);height:4px;height:.2857142857142857rem;background-color:#6b8ac7}.pb__create__progressPoint{position:relative;height:100%;display:flex;align-items:center}.pb__create__progressPoint__dot{width:12px;width:.8571428571428571rem;height:12px;height:.8571428571428571rem;display:inline-block;border-radius:50%;background-color:#6b8ac7;border:.14285714rem solid hsla(0,0%,100%,0)}.pb__create__progressPoint--active>.pb__create__progressPoint__dot{width:16px;width:1.1428571428571428rem;height:16px;height:1.1428571428571428rem;background-color:#fff;border-color:#f76014}.pb__create__progressPoint--completed>.pb__create__progressPoint__dot{width:16px;width:1.1428571428571428rem;height:16px;height:1.1428571428571428rem;background-color:#f76014;border-color:#f76014;display:flex;align-items:center;justify-content:center}.pb__create__progressPoint--completed>.pb__create__progressPoint__dot:before{content:"\f00c";font-family:Icons;font-style:normal;color:#fff;font-size:11.2px;font-size:.8rem}.pb__create__progressPoint__text{width:120px;width:8.571428571428571rem;text-align:center;position:absolute;left:-3.85714rem;bottom:-21px;bottom:-1.5rem;color:#fff;font-size:12px;font-size:.8571428571428571rem;opacity:.65}.pb__create__progressPoint--active>.pb__create__progressPoint__text{opacity:1}.pb__create__step{display:none}.pb__create__step--active{display:block}.pb__pie__chart{margin:2.857142857142857rem auto 1.4285714285714286rem;width:182px;width:13rem;min-height:182px;min-height:13rem}.pb__pie__chart__labels{margin-top:1rem}.pb__pie__chart__label{text-align:center;font-size:12px;font-size:.8571428571428571rem;line-height:24px;line-height:1.7142857142857142rem}.pb__pie__chart__label span{display:inline-block;width:9.999px;width:.71428571rem;height:9.999px;height:.71428571rem;border-radius:.21428571rem;margin-right:.5rem}.pb__items>.pb__item:not(:last-child){margin-bottom:1.4285714285714286rem}.pb__item__title{font-size:12px;font-size:.8571428571428571rem;color:rgba(0,0,0,.65);line-height:20px;line-height:1.4285714285714286rem;margin-bottom:.5714285714285714rem}.pb__item__subText{font-size:14px;font-size:1rem}.pb__symbol__label{padding:.28571429rem .71428571rem;background-color:#033984;border-radius:.21428571rem;color:#fff;display:inline-block;cursor:pointer}.pb__symbol__label>span{font-size:12px;font-size:.85714286rem;line-height:12px;line-height:.85714286rem}.pb__criterias{display:flex}.pb__criterias>.pb__criteria:not(:last-child){margin-right:.28571429rem}.pb__criteria{padding:.28571429rem .71428571rem;border-radius:.21428571rem}.pb__criteria--high_yield{background-color:rgba(7,165,149,.2);color:#07a595}.pb__criteria--high_growth{background-color:rgba(80,115,184,.2);color:#5073b8}.pb__criteria--volatility{background-color:rgba(231,76,60,.2);color:#e74c3c}.pb__slider{position:relative}.pb__slider .ui-widget.ui-widget-content{background-color:#ccc;border-color:#ccc;border-radius:.28571429rem;height:4px;height:.28571429rem}.pb__slider .ui-widget-header{background-color:#f76014}.pb__slider .ui-button,.pb__slider .ui-state-default,.pb__slider .ui-widget-content .ui-state-default,.pb__slider .ui-widget-header .ui-state-default,.pb__slider html .ui-button.ui-state-disabled:active,.pb__slider html .ui-button.ui-state-disabled:hover{border:.14285714rem solid #f76014;background-color:#fff;border-radius:50%;outline:0;width:15.999px;width:1.14285714rem;height:15.999px;height:1.14285714rem;top:-7px;top:-.5rem}.pb__slider .pb__segment{position:absolute;width:344px;width:24.571428571428573rem;z-index:1}.pb__slider__rangeExtent{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-size:.85714286rem}.pb__box--mg-bt-lg{margin-bottom:4rem}.pb__box--mg-bt-med{margin-bottom:3rem}.pb__box--mg-bt-nrml{margin-bottom:1.8571428571428572rem}.pb__box--mg-bt-smll{margin-bottom:1.42857143rem}.pb__box--mg-bt-xs-smll{margin-bottom:.71428571rem}.pb__box--mg-tp-nrml{margin-top:1.8571428571428572rem}.pb__box--mg-tp-smll{margin-top:1.42857143rem}.pb__box--no-mg-bt{margin-bottom:0!important}.pb__box--no-pd{padding:0!important}.pb__box--shdw{box-shadow:7px 10px 20px rgba(46,61,73,.15)}.pb__box--hide{display:none}.pb__box--loading{position:relative}.pb__box--loading:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.8);width:100%;height:100%;z-index:14}.pb__box--loading:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5rem 0 0 -1.5rem;width:42px;width:3rem;height:42px;height:3rem;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2rem solid rgba(0,0,0,.1);border-top-color:#767676;box-shadow:0 0 0 .07142857rem transparent;visibility:visible;z-index:101}.pb__text--clr-wht{color:#fff}.pb__text--clr-sl-wht{color:hsla(0,0%,100%,.87)}.pb__text--upcase{text-transform:uppercase}.pb__text--wrd-spc{letter-spacing:1.5px;letter-spacing:.10714285714285714rem}.pb__text--left-algn{text-align:left!important}.pb__text--rght-algn{text-align:right!important}.pb__text--cntr-algn{text-align:center!important}.pb__text--color-grey{color:#7c7c80}.pb__text--color-red{color:#e71717}.pb__temp--stocks-filters{padding:1rem;width:100%;margin:0!important}.pb__temp--stocks-filters.fields>.field{flex:1!important}.pb__event--value-allocate{width:150px}#cs-video-research{margin-top:128px!important;margin-bottom:-1rem}@media only screen and (max-width:700px){#cs-video-research{margin-top:5rem!important}}.vr__body{padding:2.143rem 1.42857143rem}.vr__body .ui.header{font-weight:300;display:inline-block;margin:.2rem 0 .5rem}@media only screen and (max-width:700px){.vr__body{overflow:hidden}.vr__body .vr__btn{padding:.5rem!important}}.vr__body--loading{position:relative;height:calc(100vh - 129px);overflow:hidden}.vr__body--loading:before{position:absolute;content:"";top:0;left:0;background:#fff;width:100%;height:100%;border-radius:.21428571rem;z-index:100}.vr__body--loading:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid rgba(0,0,0,.1);border-top-color:#767676;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}.vr__btn{font-size:12px!important;font-size:.85714286rem!important;background-color:#264ce0!important;padding:.71428571rem 1.42857143rem!important;line-height:14px!important;line-height:1rem!important;transition:all .25s!important;color:#fff!important}.vr__btn--red{background-color:#f14f63!important}.vr__btn:hover{opacity:.8}.vr__videoItems{display:flex;margin:-.429rem}.vr__videoItems--ver{flex-wrap:wrap}@media only screen and (max-width:700px){.vr__videoItems--ver{display:block}.vr__videoItems--ver>.vr__videoItem{margin:1rem .375rem!important}}.vr__videoItems--horz{flex-direction:column}.vr__videoItem{background:#fff;box-shadow:0 2px 2px rgba(0,0,0,.06);border-radius:.357rem;display:flex;overflow:hidden;position:relative}@media only screen and (max-width:700px){.vr__videoItem{display:block}}.vr__videoItems--loading{height:300px;position:relative}.vr__videoItems--loading:before{position:absolute;content:"";top:0;left:0;background:#e9eaed;width:100%;height:100%;border-radius:.21428571rem;z-index:100}.vr__videoItems--loading:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid rgba(0,0,0,.1);border-top-color:#767676;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}.vr__videoItems>.vr__videoItem{flex:0 0 15.92%;margin:.375rem;transition:all .25s}@media only screen and (max-width:1450px){.vr__videoItems>.vr__videoItem{flex:0 0 18.875%}}@media only screen and (max-width:1250px){.vr__videoItems>.vr__videoItem{flex:0 0 23.875%}}.vr__videoItems>.vr__videoItem:hover{box-shadow:0 6px 7px rgba(0,0,0,.2)}.vr__videoItems--ver>.vr__videoItem{display:block}.vr__videoItem__thumb{flex:0 0 427.875px;flex:0 0 30.5625rem;height:238px;height:17rem;position:relative;background-color:#0a2540;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden}@media only screen and (max-width:700px){.vr__videoItem__thumb{height:10.5rem}}.vr__videoItem__thumb>img{width:100%}.vr__videoItems--ver>.vr__videoItem .vr__videoItem__thumb{height:157.5px;height:11.25rem}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__thumb{height:95.375px;height:6.8125rem;flex:0 0 169.75px;flex:0 0 12.125rem}@media only screen and (max-width:700px){.vr__videoItems--horz>.vr__videoItem .vr__videoItem__thumb{height:10.5rem}}.vr__videoItem__time{color:#fff;font-size:12px;font-size:.85714286rem;line-height:12px;line-height:.85714286rem;background:#041424;border-radius:.21428571rem;padding:.357rem;position:absolute;bottom:6.006px;bottom:.429rem;right:6.006px;right:.429rem}.vr__videoItem__details{padding:1.42857143rem}@media only screen and (max-width:700px){.vr__videoItem__details{padding:.75rem}}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__details,.vr__videoItems--ver>.vr__videoItem .vr__videoItem__details{padding:1rem}.vr__videoItem__title{font-weight:700;font-size:23.996px;font-size:1.714rem;line-height:28px;line-height:2rem;color:#0a2540;cursor:pointer;display:block}@media only screen and (max-width:700px){.vr__videoItem__title{font-size:1.25rem}}.vr__videoItem__title:hover{color:#264ce0}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__title,.vr__videoItems--ver>.vr__videoItem .vr__videoItem__title{font-size:14px;font-size:1rem;line-height:15.999px;line-height:1.14285714rem}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__title{display:-webkit-box;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal;-webkit-line-clamp:1;overflow:hidden}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__labels{margin-top:.5rem!important}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__labels .ui.label{font-size:9.1px!important;font-size:.65rem!important}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__meta{margin-bottom:0!important;margin-top:.25rem}.vr__videoItem__labels{margin-top:1rem!important}@media only screen and (max-width:700px){.vr__videoItem__labels{margin-top:.5rem!important}}.vr__videoItem__label.ui.label{background-color:#264ce0!important;font-size:12px!important;font-size:.85714286rem!important;line-height:12px!important;line-height:.85714286rem!important;padding:.28571429rem .357rem!important}.vr__videoItem__meta{font-size:12px;font-size:.85714286rem;line-height:12px;line-height:.85714286rem;margin:1rem 0}@media only screen and (max-width:700px){.vr__videoItem__meta{margin:.5rem 0}}.vr__videoItem__meta>span:not(:first-child){margin-left:.5rem}.vr__videoItems--ver>.vr__videoItem .vr__videoItem__meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:0!important}.vr__videoItem__desc{font-size:14px;font-size:1rem;line-height:20px;line-height:1.42857143rem;color:#505c7c}.vr__videoItem__desc .vr__videoItem__descText{margin-bottom:.5rem;min-height:58.8px;min-height:4.2rem}.vr__videoItem__desc .vr__videoItem__descText--hidden{overflow:hidden;height:58.8px;height:4.2rem;width:100%}.vr__videoItem__desc>a{margin-top:.5rem;cursor:pointer;text-transform:uppercase;color:#264ce0;font-size:11.9px;font-size:.85rem}.vr__videoItem__pin{font-size:20px!important;font-size:1.42857143rem!important;position:absolute;top:21.994px;top:1.571rem;right:25.004px;right:1.786rem;color:#76809b;cursor:pointer}.vr__videoItem__player{background-color:#0a2540;border-radius:.357rem;height:41.06776vw;overflow:hidden}@media only screen and (max-width:700px){.vr__videoItem__player{margin:auto -1.5rem;border-radius:0;height:57.14286vw}}.vr__playback__left .vr__videoItem__details{padding-left:0;padding-right:0}.vr__playback{display:flex}@media only screen and (max-width:700px){.vr__playback.ui.grid>.wide.column{padding-left:0!important;padding-right:0!important}}.vr__tabs__list{background:#fff;box-shadow:0 2px 2px rgba(0,0,0,.06);border-radius:.357rem;margin:1.42857143rem 0;display:flex;align-items:center;justify-content:space-between}@media only screen and (max-width:700px){.vr__tabs__list{display:block}}.vr__tabs__list>ul{display:flex;list-style:none;margin:0;overflow-x:scroll;padding:0 0 .125rem;position:relative;border-right:.0625rem solid #dededf}.vr__tabs__list>ul::-webkit-scrollbar{height:3.5px;height:.25rem;border-radius:.125rem}.vr__tabs__list>ul::-webkit-scrollbar-thumb{background:rgba(80,92,124,.25);border-radius:.125rem;opacity:.5}.vr__tabs__list>ul>*{font-size:14.994px;font-size:1.071rem;line-height:18.004px;line-height:1.286rem;padding:1.286rem 0;margin:0 1rem 0 1.42857143rem;color:#505c7c;cursor:pointer;border-bottom:.21428571rem solid #fff;transition:all .25s;position:relative;white-space:nowrap}.vr__tabs__list>ul>:hover{color:#264ce0}.vr__tabs__list>ul>li.vr__tab--active{color:#264ce0;border-bottom:.21428571rem solid #264ce0}.vr__tabs__list>ul>li>i.close{position:absolute;right:-16.099px;right:-1.15rem;top:19.25px;top:1.375rem;font-size:11.9px;font-size:.85rem;margin:0;opacity:0;transition:all .25s}.vr__tabs__list>ul>li:hover>i.close{opacity:1}.vr__search{margin:0 .85714286rem;flex:0 0 437.5px;flex:0 0 31.25rem}.vr__search .vr__btn{display:none}.vr__search .ui.input{height:39.375px;height:2.8125rem;margin-left:.5rem}@media only screen and (max-width:700px){.vr__search .ui.dropdown,.vr__search .ui.input{margin:.5rem 0 0;width:100%}.vr__search .ui.input{margin-bottom:.5rem}.vr__search .vr__btn{width:100%;margin-top:.5rem;display:block}}.vr__video__sort{width:230px}.vr__videoItem__options{position:absolute;left:7px;left:.5rem;top:7px;top:.5rem}.vr__videoItem__options .ui.button{background-color:#f14f63!important;padding:.5rem}.vr__videoItem__options .ui.button:hover{opacity:.75}.vr__videoItems--preview{margin-bottom:1rem}.vr__videoItems--preview>.vr__videoItem{flex:0 0 280px!important;flex:0 0 20rem!important}.vr__videoItems--preview .vr__videoItem__desc,.vr__videoItems--preview .vr__videoItem__options{display:none}.vr__analysts>.vr__analystItem:not(:last-child){margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #e2e2e2}.vr__analystItem{display:flex;align-items:center;justify-content:space-between}.vr__analystItem__name{font-size:14px;font-size:1rem}#cs-etf .ui.loading.segment:after,#cs-etf .ui.loading.segment:before{z-index:10}#cs-etf>.ui.grid>.row{padding:0}#cs-etf>.ui.grid>.row>.column{padding:.5rem}#cs-etf .ui.segment:not(.tab){height:100%}@media only screen and (max-width:767px){#cs-etf .ui.segment:not(.tab){height:auto;min-height:auto}}#cs-etf .ui.segment.loading:not(.tab){min-height:300px}.etf__title{display:flex;align-items:center;justify-content:space-between}.etf__title .ui.header{margin:0}.etf__sector{margin-top:.5em}.etf__change,.etf__close{font-size:2em}.etf__close{color:#2c6a9e}.etf__change{display:inline-flex;align-items:center;margin:.5em 0}.etf__change--red{color:#db2828}.etf__change--green{color:#21ba45}.etf__summary .ui.statistics>.statistic{height:100%}.etf__summary .ui.statistics>.statistic:not(:last-child){border-right:1px solid #e2e2e2;padding-right:1em}.etf__summary .update{font-size:.9em;color:grey}.etf__range .head,.etf__range .ui.header{text-align:center;font-weight:700}.etf__chart{position:relative}.etf__chart__note{font-size:.75em;position:absolute;bottom:1em;right:1em}.etf__chart__options{margin-bottom:2em}.etf__chart__options .item.hidden{display:none!important}.etf__chart__empty{position:relative}.etf__chart__empty:before{content:"Can't Render Chart. Data is Empty!";position:absolute;width:100%;height:100%;left:0;top:0;background-color:hsla(0,0%,100%,.7);display:flex;align-items:center;justify-content:center}.etf__chart__options .ui.secondary.menu .active.item{background-color:#00b5ad;color:#fff!important}.etf__tabs{height:auto;padding:0!important;position:relative}.etf__tabs>.ui.menu{position:absolute;top:0;width:100%;z-index:2}.etf__tabs>.ui.menu.fixed{position:fixed;left:.8em;width:calc(100% - 1.6em)}.etf__tabs .ui.segment.tab{margin:0;min-height:70vh}.etf__tabs .ui.inverted.pointing.menu .active.item:after{background-color:#00a49d!important}.etf__tabs .ui.very.basic.table thead tr{outline:1px solid #bbb;font-weight:700;background-color:#e8e8e8}.etf__tabs .ui.very.basic.table thead tr th{padding-top:.5em;padding-bottom:.5em}.etf__tabs .ui.very.basic.table tbody tr:hover{background-color:rgba(0,230,221,.2)!important}.etf__tabs .ui.very.basic.table tfoot tr{background-color:#e8e8e8}.etf__tabs .ui.very.basic.table tfoot tr th{font-weight:700}.etf__tabs--error{min-height:300px;color:#282828!important}.etf__tabs--error:before{content:"Data Not Found!";font-size:2em;position:absolute;width:100%;height:100%;left:0;top:0;background-color:hsla(0,0%,100%,.7);display:flex;align-items:center;justify-content:center}.etf__tabs__text{font-size:1.3em;line-height:2;font-weight:200}.etf__symbol{margin-right:1em!important;min-width:60px;text-align:center}.etf__overview__stats{margin-bottom:2em}.etf__overview__sunburstChart{width:100%;min-height:200px}.etf__overview__sunburstChart .cs-sector-treemap,.etf__overview__sunburstChart .indices__note{display:none}.etf__overview__sectorHoldings{padding-top:110px}.etf__overview__holdings table,.etf__overview__sectorHoldings table{font-size:.9em!important}.etf__summary .etf__change,.etf__summary .etf__close{font-size:1.8em}.etf__summary .ui.statistics{font-size:.9em}.etf__company__holdings{margin-top:1em}.etf__company__holdings .ui.header{margin:0}.etf__company__holdings table tbody tr td:not(:first-child){width:130px}.etf__announcements .annoucement-calendar-wrapper,.etf__announcements .annoucement-table-wrapper{height:auto!important;min-height:unset!important;padding-top:0!important;padding-left:0!important;padding-right:0!important;box-shadow:unset!important}.etf__announcements #announce-calendar{display:none!important}.etf__message{height:100%;display:flex;align-items:center;justify-content:center}.etf__financials .fiscal-year{position:absolute;top:1em;font-size:1.3em;right:1em;color:#a4a4a4}.etf__company{display:inline-flex;align-items:flex-start}.etf__table__wrapper{margin-top:1em;width:100%;overflow-x:scroll}.etf__table__wrapper table{min-width:800px}.etf__chart .line{stroke-width:2px}.etf__chart__mobile{display:none}.etf__chart__colorBlock{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}@media only screen and (max-width:767px){#cs-etf>.ui.grid>.row>.column{padding:.5em 0!important}.etf__chart__column{display:none!important}.etf__tabs .ui.menu{width:100%;overflow-x:scroll}.etf__overview__sectorHoldings{padding-top:0}.etf__financials .ui.tab.segment{padding:0}.etf__financials .fiscal-year{position:static;margin:1em 0}.etf__announcements .announce__filters{position:static;padding:0}.etf__tabs .cs-table-container{width:100%;overflow-x:scroll}.etf__tabs .cs-table-container table{min-width:1100px}.etf__tabs #cs-company-fundamentals{width:100%}.etf__title .ui.label{margin-right:.5em;margin-left:0!important}.etf__title .ui.header{font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.etf__tabs>.ui.menu.fixed{left:0;width:100%;background-color:#fff}.etf__overview__stats{margin-top:4em}.etf__summary__mobile{margin-bottom:1em}.etf__summary__mobile .etf__price{display:flex;align-items:center;justify-content:space-between;font-weight:300;margin-bottom:.5em}.etf__summary__mobile .etf__price>div{margin:0}.etf__summary__mobile .update{color:grey}.etf__chart__mobile{display:block}.etf__chart__mobile .x-grid,.etf__chart__mobile .y-grid{stroke:hsla(0,0%,86.3%,.52)}.etf__chart__mobile .area{opacity:.7}.etf__chart__mobile .etf__chart--red linearGradient stop{stop-color:#db2828}.etf__chart__mobile .etf__chart--red .line{stroke:#db2828}.etf__chart__mobile .etf__chart--green linearGradient stop{stop-color:#21ba45}.etf__chart__mobile .etf__chart--green .line{stroke:#21ba45}.etf__chart__mobile .ui.segment{padding:0;box-shadow:none}.etf__chart__mobile .etf__chart__note{bottom:-2em;right:0}.etf__chart__mobile .etf__chart__options .ui.secondary.menu{padding:.5em 0;margin:.5em 0;border-top:1px solid #e2e2e2;border-bottom:1px solid #e2e2e2}.etf__chart__mobile .etf__chart__options .ui.secondary.menu .item{font-size:.9em}.etf__chart__mobile .etf__chart__options .ui.secondary.menu .item:hover{background-color:#01b5ad!important}.etf__chart__mobile .etf__chart__options .ui.secondary.menu .item.active{border-radius:3px}}.ap__text--code{color:#dc143c;background-color:#f1f1f1;padding-left:4px;padding-right:4px}.ap__text--noBreak{white-space:nowrap}.ap__text--txtUpCase{text-transform:uppercase}.ap__text--noMg{margin:0!important}.ap__image{display:flex;align-items:center;justify-content:center}.ap__image img{width:100%}.ap__sidebar{position:fixed;height:100%;width:300px;background-color:#2c70b3;top:0;left:0;padding:1em;color:#fff}.ap__sidebar__title{display:flex;align-items:center}.ap__sidebar__titleImage{flex:0 0 60px;margin-right:1em}.ap__sidebar__titleText{font-size:1.5em;font-weight:700}.ap__sidebar__accordion{padding:1em;background-color:hsla(0,0%,100%,.08);border-radius:8px;margin-top:1em;max-height:70vh;overflow-y:scroll}.ap__sidebar__accordion .title{position:relative}.ap__sidebar__accordion .title:before{content:" ";position:absolute;width:calc(100% + 1em);height:calc(100% + 1em);top:-.5em;left:-.5em;border-radius:8px;background-color:hsla(0,0%,100%,0);transition:background-color .25s}.ap__sidebar__accordion .title:hover:before{background-color:hsla(0,0%,100%,.1)}.ap__sidebar__accordion .ui.vertical.menu>.item:last-child{margin-bottom:0}.ap__sidebar__accordion .ui.vertical.menu>.item:first-child{margin-top:0}.ap__sidebar__accordion .ui.vertical.menu .item{transition:color .25s;cursor:pointer}.ap__sidebar__accordion .ui.vertical.menu .item .item[data-section]{padding-left:1em!important;border-left:2px solid hsla(0,0%,100%,.75)}.ap__sidebar__accordion .ui.vertical.menu .item:hover{color:#fff}.ap__content{width:calc(100vw - 300px);height:100vh;margin-left:300px;padding:1em}.ap__content>.ui.segment{height:100%;overflow-y:scroll}.ap__section,.ap__section__sub{display:none}.ap__section--active,.ap__section__sub--active{display:block}.ap__sidebar__nav{margin:1em 0;padding:1em;border-radius:8px;display:flex;background-color:#407cba;align-items:center;justify-content:space-between}.ap__sidebar__navItem{font-size:1em;color:hsla(0,0%,100%,.5);cursor:pointer;transition:color .25s}.ap__sidebar__navItem--active,.ap__sidebar__navItem:hover{color:#fff}.ap__table tbody tr:hover td{background-color:rgba(76,175,80,.06)!important}.ap__perfomanceTable thead th:first-child{color:#2d699e!important;font-size:1.5em;width:250px}.ap__perfomanceTable tr td.definition,.ap__perfomanceTable tr td:first-child:not(.ignored){background:#e5f3ff!important}.ap__messages{position:fixed;bottom:0;right:0;padding:1em;z-index:10001;max-width:1000px}.ap__imageUpload .two.column.wide{display:flex;align-items:center}.ap__imageUpload .ui.input{position:relative}.ap__imageUpload .ui.input:hover{opacity:.75}.ap__imageUpload input{opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.ap__personSection--details table tbody tr>td:first-child{width:250px}.ap__personSection--uploadImageForm{display:flex;align-items:flex-end;min-height:150px;max-height:150px}.ap__personSection--uploadImageForm .ui.image{height:150px;width:150px;overflow:hidden;margin-right:1rem;display:flex;justify-content:center;align-items:center;border:1px solid #e2e2e2}.ap__fileupload{overflow:hidden}.ap__fileupload .ui.button{position:relative}.ap__fileupload .ui.button input[type=file]{opacity:0;position:absolute;top:0;left:0;width:100%!important;height:100%;z-index:10}.ap__companyStatementLogs{padding:1rem;border-radius:.25rem;border:.0625rem solid #e2e2e2;margin:1rem 0}.ap__section[data-section=tracking-sheet] .ap__table{table-layout:fixed}.ap__section[data-section=tracking-sheet] .ap__table tbody>tr>td:first-child,.ap__section[data-section=tracking-sheet] .ap__table thead>tr>th:first-child{left:0;position:-webkit-sticky;position:sticky;width:175px;width:12.5rem;z-index:2;background-color:#fafafa!important}.ap__section[data-section=tracking-sheet] .ap__table td,.ap__section[data-section=tracking-sheet] .ap__table th{width:227.5px;width:16.25rem}.ap__sidebar__accordion::-webkit-scrollbar{width:8px}.ap__sidebar__accordion::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.8);border-radius:6px}.ap__sidebar__accordion::-webkit-scrollbar-track{background-color:rgba(0,0,0,.2)}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/robotocondensed/v31/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyovBJ.ttf) format("truetype")}.cs-report-page .mmaks-table{font-size:16.099px!important;font-size:1.15rem!important;font-family:Helvetica}.cs-report-page .mmaks-table table{border-collapse:collapse}.cs-report-page .mmaks-table table thead th{color:#fff;background-color:#ff7b18;padding:.25rem;font-size:17.5px;font-size:1.25rem;height:50px}.cs-report-page .mmaks-table table tbody{text-align:left}.cs-report-page .mmaks-table table tbody tr td{font-weight:700;padding:.35rem;font-size:19.599px;font-size:1.4rem}.cs-report-page .mmaks-table table .total td{border-top:2px solid #000;border-bottom:2px solid #000}.cs-report-page .mmaks-table .header{display:flex;justify-content:space-between;align-items:center;font-weight:bolder}.cs-report-page .mmaks-table .footer{display:none}.cs-report-page .mmaks-table .footer>div{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0}.cs-report-page .mmaks-table .footer .note{font-size:9.799px;font-size:.7rem;line-height:1;color:grey;text-align:justify}.cs-report-page .mmaks-table .footer .note__padded{padding:0 .5rem}.cs-report-page .mmaks-table .footer .footer__logo>img{width:100%}.cs-report-page .mmaks-table .footer .footer__logo.footer__logo--mmaks{width:100px;flex:0 0 auto}.cs-report-page .mmaks-table .footer .footer__logo.footer__logo--cs{width:50px;flex:0 0 auto}.cs-report-page .mmaks-table.cell-borders table,.cs-report-page .mmaks-table.cell-borders td,.cs-report-page .mmaks-table.cell-borders th{border:1px solid grey}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tr>:first-child,.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tr>:nth-child(4){border-right:1px dotted grey}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr td:not(:first-child){text-align:right}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr>:nth-child(4){background-color:#d3d3d3}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--cumulative-activity table{width:100%;margin:3rem 0 2rem}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--cumulative-activity table tr>:first-child{border-right:1px dotted grey}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--cumulative-activity table tbody tr td:not(:first-child){text-align:right}.cs-report-page .cs-report__heroHeader{display:flex;align-items:center;justify-content:space-between}.cs-report-page .cs-report__heroHeader__collab{padding:1rem;display:none}.cs-report-page .cs-report__heroHeader__collab__logos{display:flex;align-items:center;height:43.75px;height:3.125rem}.cs-report-page .cs-report__heroHeader__collab__logos>img{height:100%}.cs-report-page .cs-report__heroHeader__collab__text{padding:.25rem;text-decoration:underline;color:#aeb0ae;width:122.5px;width:8.75rem;font-size:12.25px;font-size:.875rem;line-height:1.5}.cs-report-page .cs-report__heroHeader>div{flex:1}.cs-report-page .cs-report__heroHeader>.cs-report__heroHeader__collab{flex:none}.cs-report-page .cs-report__heroHeader__text{font-size:35px;font-size:2.5rem;line-height:38.5px;line-height:2.75rem;font-weight:900}.cs-report-page .cs-report__heroHeader__text--small{font-size:17.5px;font-size:1.25rem;line-height:18.2px;line-height:1.3rem}.cs-report-page .cs-report__heroHeader__text--flex{display:flex}.cs-report-page .cs-report__heroHeader__text--flex *{flex:1}.cs-report-page .cs-report__compTable table{width:100%;border-collapse:collapse}.cs-report-page .cs-report__compTable table tbody tr:nth-child(odd) td{background:#f2f2f2}.cs-report-page--mmaks .cs-report__heroHeader>.cs-report__heroHeader__collab--mmaks,.cs-report-page--mmaks .mmaks-table .footer--mmaks{display:block}.cs-report-page--mmaks .cs-report__heroHeader__text--mini{font-size:14px;font-size:1rem;line-height:16.099px;line-height:1.15rem}.cs-report-page--mmaks .cs-report__heroHeader .cs-report__heroHeader__text--small{margin-top:1rem}.cs-report-page--mmaks .cs-report__heroHeader__collab{padding:1rem}.cs-report-page--mmaks .cs-report__heroHeader__collab__logos{display:flex;align-items:center;height:43.75px;height:3.125rem}.cs-report-page--mmaks .cs-report__heroHeader__collab__logos>img{height:100%}.cs-report-page--mmaks .cs-report__heroHeader__collab__text{padding:.25rem;text-decoration:underline;color:#aeb0ae;width:122.5px;width:8.75rem;font-size:12.25px;font-size:.875rem;line-height:1.5}.cs-report-page--mmaks .cs-report__note{color:#b8b2b0;font-size:11.9px;font-size:.85rem}.cs-report-page--mmaks .cs-report__compTable table td,.cs-report-page--mmaks .cs-report__compTable table th{font-size:24.5px;font-size:1.75rem;text-align:center;padding:.4rem;height:28px;height:2rem}.cs-report-page--mmaks .cs-report__compTable table thead th{border-top:.25rem solid #e4813d}.cs-report-page--mmaks .cs-report__compTable table .cs-report__compTable__emptyRows{background-color:#fff;min-height:65.625px;min-height:4.6875rem;display:flex;align-items:center;justify-content:center}.cs-report-page--mmaks .cs-report__compTable.cs-report__compTable--headBorderBottom table thead>tr:last-child>th{border-bottom:.25rem solid #e4813d}.cs-report-page--mmaks .cs-report__compTable.cs-report__compTable--headlineHeight table th{line-height:31.5px;line-height:2.25rem}.cs-report-page--mmaks .cs-report__compTable.cs-report__compTable--fontFamRoboto table{font-family:Roboto Condensed,sans-serif}.cs-report-page--mmaks .cs-report__compTable.cs-report__compTable--fontSizeMed table td,.cs-report-page--mmaks .cs-report__compTable.cs-report__compTable--fontSizeMed table th{font-size:18.9px;font-size:1.35rem}.cs-report-page--mra .mmaks-table .footer--summit,.cs-report-page--summit-leverage .mmaks-table .footer--summit,.cs-report-page--summit .mmaks-table .footer--summit{display:block}.cs-report-page--mra .mmaks-table table thead th,.cs-report-page--summit-leverage .mmaks-table table thead th,.cs-report-page--summit .mmaks-table table thead th{background-color:#0078c0}.cs-report-page--mra .mmaks-table .green,.cs-report-page--summit-leverage .mmaks-table .green,.cs-report-page--summit .mmaks-table .green{color:#15b73c}.cs-report-page--mra .mmaks-table .red,.cs-report-page--summit-leverage .mmaks-table .red,.cs-report-page--summit .mmaks-table .red{color:#c00000}.cs-report-page--mra .cs-report__heroHeader,.cs-report-page--summit-leverage .cs-report__heroHeader,.cs-report-page--summit .cs-report__heroHeader{padding:.5rem 1rem}.cs-report-page--mra .cs-report__heroHeader>.cs-report__heroHeader__collab--summit,.cs-report-page--summit-leverage .cs-report__heroHeader>.cs-report__heroHeader__collab--summit,.cs-report-page--summit .cs-report__heroHeader>.cs-report__heroHeader__collab--summit{display:block}.cs-report-page--mra .cs-report__heroHeader .cs-report__heroHeader__collab__logos,.cs-report-page--summit-leverage .cs-report__heroHeader .cs-report__heroHeader__collab__logos,.cs-report-page--summit .cs-report__heroHeader .cs-report__heroHeader__collab__logos{height:56px;height:4rem;padding:0}.cs-report-page--mra .cs-report__heroHeader .cs-report__heroHeader__text,.cs-report-page--summit-leverage .cs-report__heroHeader .cs-report__heroHeader__text,.cs-report-page--summit .cs-report__heroHeader .cs-report__heroHeader__text{color:#0078c0;font-size:28px;font-size:2rem}.cs-report-page--mra .cs-report__heroHeader .cs-report__heroHeader__text--small,.cs-report-page--summit-leverage .cs-report__heroHeader .cs-report__heroHeader__text--small,.cs-report-page--summit .cs-report__heroHeader .cs-report__heroHeader__text--small{color:#d40619;font-size:14px;font-size:1rem}.cs-report-page--mra .cs-report__compTable table,.cs-report-page--summit-leverage .cs-report__compTable table,.cs-report-page--summit .cs-report__compTable table{width:100%;border-collapse:collapse}.cs-report-page--mra .cs-report__compTable table tr td,.cs-report-page--mra .cs-report__compTable table tr th,.cs-report-page--summit-leverage .cs-report__compTable table tr td,.cs-report-page--summit-leverage .cs-report__compTable table tr th,.cs-report-page--summit .cs-report__compTable table tr td,.cs-report-page--summit .cs-report__compTable table tr th{padding:.15rem;font-size:16.099px;font-size:1.15rem}.cs-report-page--mra .cs-report__compTable table thead tr:first-child th,.cs-report-page--summit-leverage .cs-report__compTable table thead tr:first-child th,.cs-report-page--summit .cs-report__compTable table thead tr:first-child th{background-color:#0078c0;color:#fff}.cs-report-page--mra .cs-report__compTable table thead tr:nth-child(2) th,.cs-report-page--summit-leverage .cs-report__compTable table thead tr:nth-child(2) th,.cs-report-page--summit .cs-report__compTable table thead tr:nth-child(2) th{background-color:#d0d0d0;color:#d40619}.cs-report-page--mra .cs-report__compTable--c2c,.cs-report-page--mra .cs-report__compTable--m2m,.cs-report-page--mra .mmaks-table .footer--summit,.cs-report-page--summit-leverage .cs-report__compTable--c2c,.cs-report-page--summit-leverage .cs-report__compTable--m2m,.cs-report-page--summit .cs-report__compTable--c2c,.cs-report-page--summit .cs-report__compTable--m2m{display:none}.cs-report-page--mra .mmaks-table .footer--mra{display:block}.cs-report-page--mra .mmaks-table table thead th{background-color:#79b9b9!important;padding:0;color:#000}.cs-report-page--mra .mmaks-table table td,.cs-report-page--mra .mmaks-table table th{font-size:17.5px!important;font-size:1.25rem!important;text-align:center!important;padding:.25rem!important}.cs-report-page--mra .mmaks-table table thead tr:first-child th{height:30px}.cs-report-page--mra .mmaks-table table tbody tr td:first-child,.cs-report-page--mra .mmaks-table table thead tr:nth-child(2) th{background-color:#d0d0d0!important;color:#000;text-align:center}.cs-report-page--mra .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr>:nth-child(4){background-color:#fff!important}.cs-report-page--mra .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr>:last-child,.cs-report-page--mra .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr>:nth-child(5){background-color:#e6e6e6!important}.cs-report-page--mra .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr:nth-child(3)>td:not(:first-child){background-color:#cbe5e6!important}.cs-report-page--mra .cs-report__heroHeader>.cs-report__heroHeader__collab{display:none}.cs-report-page--mra .cs-report__heroHeader>.cs-report__heroHeader__collab--mra{display:block}.cs-report-page--mra .cs-report__heroHeader .cs-report__heroHeader__text{color:#79b9b9}.cs-report-page--mra .cs-report__heroHeader .cs-report__heroHeader__text--small{color:#000}.cs-report-page--mra .cs-report__compTable table thead tr:first-child th{background-color:#79b9b9}.cs-report-page--mra .cs-report__compTable table thead tr:nth-child(2) th,.cs-report-page--mra .cs-report__compTable table thead tr th,.cs-report-page--summit-leverage .cs-report__compTable table thead tr:nth-child(2) th,.cs-report-page--summit-leverage .cs-report__compTable table thead tr th{color:#000}.cs-report-page--mra .cs-report__compTable table tbody tr.sub-total-row td,.cs-report-page--summit-leverage .cs-report__compTable table tbody tr.sub-total-row td{background:#dcdbdb!important}.cs-report-page--mra .cs-report__compTable table tbody tr.total-row td,.cs-report-page--summit-leverage .cs-report__compTable table tbody tr.total-row td{background:#d0d0d0!important}#reports-screenshot-container{padding:1rem;position:fixed;top:200vh;left:200vw;background-color:#fff;z-index:20}#reports-screenshot-container>div*{background-color:transparent}.cs-clientRes .__heading,.cs-clientRes .__para{font-weight:300!important;display:inline-block;margin:0!important}@media only screen and (max-width:767px){.cs-clientRes .__heading,.cs-clientRes .__para{font-size:1.25rem!important}}.cs-clientRes .__group{display:flex}.cs-clientRes .__group.--alignCenter{align-items:center}.cs-clientRes .__group.--justifySpcBtw{justify-content:space-between}.cs-clientRes .__group.--justifyCenter{justify-content:center}.cs-clientRes .__group.--dirCol{flex-direction:column}.cs-clientRes .__group.--heightFitContent{height:100%}.cs-clientRes .__preview{height:77vh}@media only screen and (max-width:767px){.cs-clientRes .__preview{height:55vh}}.cs-clientRes .__preview .__iframe{width:100%;height:72vh;background:grey}@media only screen and (max-width:767px){.cs-clientRes .__preview .__iframe{height:50vh}}.cs-clientRes .__categories .ui.accordion>.title{font-size:1.5em;font-weight:300}.cs-clientRes .__categories .ui.accordion>.content{padding:0;background:hsla(0,0%,48.6%,.8)}.cs-clientRes .__categories .ui.accordion>.content .__list .list{padding:.5rem;max-height:262.5px;max-height:18.75rem;overflow-y:scroll}.cs-clientRes .__categories .ui.accordion>.content .__list .list>.item{display:flex;gap:2.1px;gap:.15rem;align-items:center}@media only screen and (max-width:767px){.cs-clientRes .__categories .ui.accordion>.content .__list .list>.item>.content>.header{font-size:1.25rem;font-weight:700}}.cs-clientRes .__categories .ui.accordion>.content .__list .list>.item .item__controls{display:flex;gap:3.5px;gap:.25rem}.cs-clientRes .__categories .ui.accordion>.content .__list .list>.item .item__controls i{color:#fff}.cs-clientRes .__categories .ui.accordion>.content .__list .list>.item .item__controls i:hover{opacity:.75;cursor:pointer}.cs-clientRes .__categories .ui.accordion>.content .description{display:flex;flex-wrap:wrap;gap:3.5px;gap:.25rem}.cs-clientRes .__categories .ui.accordion>.content .description .ui.label{margin:0}@media only screen and (max-width:767px){.cs-clientRes .__categories .ui.accordion>.content .description .ui.label.tiny:not(.grey){display:none}}.cs-clientRes .__categories .ui.accordion>.content .__list{padding-top:.5rem}.cs-clientRes .__categories .ui.accordion .__archive{width:calc(100% - 1rem);margin-left:.5rem}#res-search-research .__searchResults{min-height:350px;min-height:25rem;max-height:350px;max-height:25rem;overflow-y:scroll;padding:0}#res-search-research .__searchResults th{position:-webkit-sticky;position:sticky;top:0;background-color:#fff}#res-search-research .__searchResults .__previewPdf{cursor:pointer}#res-search-research .__searchResults .__previewPdf:hover{text-decoration:underline}#res-search-research .__searchResults .__emptyMessage{text-align:center;color:#fff;background-color:rgba(0,0,0,.4)}#res-search-research .__searchResults table{min-width:994px;min-width:71rem}@media only screen and (max-width:767px){#res-search-research .__toggleFilters span{display:none}}#res-add-research-modal .__dropzone{border:2px dashed #0087fe;font-size:2em;margin-top:1.5rem;margin-bottom:0;min-height:175px;min-height:12.5rem}#res-add-research-modal .__dropzone .dz-message{font-weight:300}#res-add-research-modal .__dropzone .dz-filename{margin-top:3.5em}#res-add-research-modal .__dropzone .dz-details{padding:1em}#res-add-research-modal .__dropzone .dz-progress{top:40%}#res-add-research-modal .__dropzone .dz-preview{z-index:1}#res-add-research-modal .__dropzone .dz-preview .dz-error-message{top:154px!important;top:11rem!important}#res-add-research-target-modal{max-width:743.75px;max-width:53.125rem}#res-add-research-target-modal .__list{max-height:218.75px;max-height:15.625rem;overflow-y:scroll}#res-add-research-target-modal .__listItem{display:flex;align-items:center;justify-content:space-between;gap:3.5px;gap:.25rem;padding-right:.15rem}#res-add-research-target-modal .__listItem .__header{display:flex;gap:3.5px;gap:.25rem;align-items:center;font-size:11.9px;font-size:.85rem}#res-add-research-target-modal .__listItem .__header>a{min-width:49px;min-width:3.5rem;text-align:center;margin-right:.25rem}#res-add-research-target-modal .__contentWrapper{padding:0;box-shadow:none}#res-add-research-target-modal .__listItem:after{display:none}#res-add-analyst .__list,#res-manage-analysts .__list,#res-manage-categories .__list{max-height:262.5px;max-height:18.75rem;overflow-y:scroll}#res-add-analyst .__list .__item,#res-manage-analysts .__list .__item,#res-manage-categories .__list .__item{display:flex;align-items:center;justify-content:space-between}#res-add-analyst .__list .__item .content,#res-manage-analysts .__list .__item .content,#res-manage-categories .__list .__item .content{gap:3.5px;gap:.25rem;display:flex;align-items:center}#res-add-analyst .__list .__item:after,#res-manage-analysts .__list .__item:after,#res-manage-categories .__list .__item:after{display:none}#res-add-analyst .__segment,#res-manage-analysts .__segment,#res-manage-categories .__segment{padding:0;box-shadow:none}#disclaimer-box{width:500px;margin:0 0 0 -15em}#disclaimer-box .ui.segment{border:1px solid #dedede;height:400px;overflow-y:scroll}#disclaimer-box strong{font-weight:bolder}#disclaimer-box li,#disclaimer-box p{font-weight:lighter}#disclaimer-box li{line-height:1.5}@media only screen and (max-width:767px){#disclaimer-box{width:100%}#disclaimer-box .ui.segment{height:250px}}#cs-footer{background-color:#1b5586!important;padding:3em 0;font-weight:lighter}#cs-footer.cal{background-color:#029992!important}#cs-footer .ui.divider{margin:2rem 0}#cs-footer .cs-disclaimer-footer{text-align:left;font-size:.8em;line-height:normal}@media only screen and (max-width:767px){#cs-footer{padding:0;text-align:center}#cs-footer .column{border-top:1px solid #42729a;order:3}#cs-footer .cs-disclaimer-footer{padding:1em;text-align:justify}#cs-footer .cs-show-terms{margin-bottom:2em}#cs-footer .column.social-column{order:2}#cs-footer .column.footer-logo{order:1}}#cs-particles-js{overflow:hidden;position:absolute;width:100%;height:100%;background-color:#029992;background-image:url();background-repeat:no-repeat;background-size:cover;background-position:50% 50%}#csTicker{background:#4c4c4c;display:flex;height:34px;font-size:12px;color:#fff;overflow:hidden;position:relative;width:100%;z-index:15}#csTicker>.indices-wrapper{width:500px;position:relative;background:#333}#csTicker>.indices-wrapper>.border{position:absolute;right:-7px;height:42px;width:42px;background:#333;transform:skew(-22deg,0deg);border-right:1px solid #000;box-shadow:2px -2px 3px #000}#csTicker>.indices-wrapper>.indices{position:relative}#csTicker>.stocks-wrapper{width:calc(100% - 200px);overflow:hidden}#csTicker .item>.wrapper{padding:2px 7px;display:block;text-decoration:none;color:#fff}#csTicker .item .name{font-weight:900;line-height:1.3;color:#ccc}#csTicker .item .value{font-weight:100;line-height:1.3}#csTicker .item .cols{display:flex;justify-content:space-between;align-items:center}#csTicker .change-wrapper{font-size:1.3em;margin-left:10px;text-shadow:1px 1px 0 #111}#csTicker .indices{display:flex}#csTicker .indices .item{width:33.3333333%}#csTicker .stocks{display:flex}#csTicker .item{border-left:1px solid #1d1d1d}#csTicker .stocks .item{border-left:1px solid #404040}#csTicker .pos{color:#26d226}#csTicker .neg{color:#ff8686}@media only screen and (max-width:767px){#csTicker{top:60px!important}#csTicker>.indices-wrapper{width:130px}.item[data-symbol=ALLSHR],.item[data-symbol=KMIALLSHR]{display:none}#csTicker .indices .item{width:100%}#csTicker>.stocks-wrapper{width:calc(100% - 130px);overflow:hidden}#csTicker .item>.wrapper{padding:2px 5px}}#cs-notify{position:fixed;right:0;bottom:0;z-index:102}#cs-notify .notify-button-wrapper{display:none;padding:0 1em 1em;justify-content:flex-end}#cs-notify .notify-button-wrapper--show{display:flex;opacity:1}#cs-notify .notify-wrapper{padding:1em}@media only screen and (max-width:767px){#cs-notify .notify-wrapper{font-size:.85em}}#cs-notify .notify-wrapper>.ui.message:not(:last-child){opacity:.5}#cs-notify .notify-wrapper>.ui.message:hover{opacity:1}#cs-notify .notify-wrapper>.ui.message{overflow:hidden;position:relative;display:none;background-color:#fff;box-shadow:0 3px 20px rgba(0,0,0,.4588235294117647);width:400px;transition:opacity .5s}@media only screen and (max-width:767px){#cs-notify .notify-wrapper>.ui.message{width:100%}}#cs-notify .notify-wrapper>.ui.message .ui.segment{color:#000}@media only screen and (max-width:767px){#cs-notify .notify-wrapper>.ui.message .ui.segment{display:none}}#cs-notify .notify-wrapper>.ui.message .ui.label{margin-right:.5em;text-decoration:none}#cs-notify .notify-wrapper>.ui.message .loading-bar{background-color:#2c6aab;height:5px;position:absolute;bottom:0;left:0;width:100%;transition:all .2s ease-out}#cs-notify .notify-wrapper>.ui.message .type-pdf{display:flex;align-items:center;justify-content:space-between;margin-top:.5em}#cs-notify .notify-wrapper>.ui.message a{text-decoration:underline}#cs-notify .notify-wrapper>.ui.message p{margin:.5em 0}@media only screen and (max-width:767px){#cs-notify{width:100%}#cs-notify .header .name{display:none}}.cs-content{margin-top:0!important}@media only screen and (max-width:767px){.ui.container.grid.cs-content{margin-left:0!important;margin-right:0!important;margin-top:6.75em!important;overflow:hidden}.ui.container.grid.cs-content .sixteen.wide.column{padding:0}}.ui.table td.red,.ui.table th.red{color:#db2828}.ui.table td.green,.ui.table th.green{color:#21ba45}.ui.table td.blue,.ui.table th.blue{color:#2c6a9e}#cs-market-overview .ui.tab,#cs-market-performers .ui.tab{min-height:200px}@media only screen and (max-width:767px){#cs-summary .cs-chart-options .ui.button{padding-left:1em;padding-right:1em}#cs-summary .cs-chart-options .cs-chart-collapse{display:none}}#cs-summary-stats{position:relative;min-height:150px}@media only screen and (max-width:767px){#cs-summary-stats .ui.grid .column{padding:1em!important}}#cs-summary-stats .ui.horizontal.segment{padding-left:0}#cs-summary .cs-range-scale{margin-bottom:2em}#cs-trade-table tr.red td{color:#db2828}#cs-trade-table tr.green td{color:#21ba45}#cs-article-content{margin:1em 0;font-size:1.3em;line-height:1.6em}.ui.horizontal.label.cs-symbol-label{min-width:5em}#cs-announcements .cs-details.horizontal.list>.item{margin-right:1em;margin-left:0;min-width:120px}#cs-announcements .cs-details.horizontal.list>.item:first-child{border-left:1px solid rgba(34,36,38,.15);padding-left:.5em!important}#cs-announcements .cs-details.list>.item .description{font-size:.8em;color:#999}#cs-announcements .negative{color:#e60d0d}#cs-announcements .cs-table thead tr th[data-key=actions],#cs-announcements .cs-table thead tr th[data-key=date]{width:130px}#cs-announcements .cs-table thead tr th[data-key=name]{width:200px}#cs-announcements .cs-table thead tr th[data-key=verified]{width:80px}#cs-announcements .ui.tab[data-tab=financials] .cs-table thead tr th[data-key=details]{width:695px}#cs-announcements .cs-table thead tr th[data-key=link]{width:45px}#cs-announcements .cs-table tbody tr td .company{display:flex;align-items:center}#cs-announcements .cs-table tbody tr td .company .label{margin-right:.5em}#cs-announcements .cs-table .edit .ratio-fields{display:flex;align-items:center}#cs-announcements .cs-table .edit .ratio-fields input{width:70px}#cs-announcements .cs-table .edit .ratio-fields span{padding:0 .5em}@media only screen and (max-width:767px){#cs-announcements .ui.menu{width:100%}#cs-announcements .ui.tab.basic.segment{padding:0}}#cs-announcements #cs-announcements-filters{padding:1em;background:#eee;border:1px solid #ccc;border-radius:5px}#cs-companies .cs-table{min-height:500px;position:relative;margin-top:180px}#cs-companies .cs-table .list .description{color:rgba(0,0,0,.4);font-size:.8em;font-weight:700}@media only screen and (max-width:767px){#cs-companies .cs-table{margin:0}}#cs-companies .ball-grid-beat>div{background-color:#2c6a9e}#cs-companies-filters{position:fixed;z-index:1;top:128px;width:calc(100% - 5em);left:0;box-shadow:0 7px 20px 0 rgba(46,61,73,.15);margin:auto 2.5em .8em}#cs-companies-filters .ui.form input[type=number],#cs-companies-filters .ui.selection.dropdown{border:1px solid #1d527f}#cs-companies-filters .ui.selection.dropdown{width:100%}#cs-companies-filters .filter-options .field.hidden{display:none}#cs-companies-filters .filter-options .inline.fields .field>.ui.input{display:flex}#cs-companies-filters .filter-options .ui.dropdown>.text{font-size:.9em}#cs-companies-filters .filter-options .ui.selection.year.dropdown{width:8em;min-width:8em}#cs-companies-filters .filter-options .inline.fields{margin-bottom:0}#cs-companies-filters .filter-options .ui.green.label{background-color:#18a739!important;border-color:#18a739!important}#cs-companies-filters .ui.inverted.form .inline.fields .field>label{color:#fff}#cs-companies-filters .filters .ui.label{font-size:1em;font-weight:400}#cs-companies-filters .ui.image.label .detail{margin-left:0;margin-right:0;padding-left:.4em;padding-right:.4em;border-radius:0;opacity:.8;font-weight:700}@media only screen and (max-width:767px){#cs-companies-filters{position:inherit;margin:0;width:100%;box-shadow:none;top:0}#cs-companies-filters .filters .ui.label{line-height:1.4em;margin-left:0;margin-top:.3em}}@media only screen and (max-width:767px){.cs-table{overflow-x:scroll;width:100%}.cs-table table{width:800px!important}}.cs-opinion-list.dashboard{height:560px;height:40rem;overflow-y:scroll}.cs-opinion-list.research{display:flex;align-items:center;width:100%;overflow-x:hidden;flex-wrap:nowrap}.cs-opinion-list .opinion{border:1px solid #e2e2e2;border-radius:5px;padding:1em;margin:.5em 0 1em;background-color:#f4f4f4}.cs-opinion-list .opinion .row{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.cs-opinion-list .opinion .row .col{width:50%}.cs-opinion-list .opinion .row .col .head{color:#c3c1c1;font-size:.8em;margin:0}.cs-opinion-list .opinion .row .col .date{font-size:.8em;color:#c3c1c1}.cs-opinion-list .opinion .row.target-row{margin-top:.5em}.cs-opinion-list .opinion .company .symbol-file{display:flex;align-items:center;margin-bottom:.3em}.cs-opinion-list .opinion .company .symbol-file .symbol{font-size:1.2em;font-weight:700}.cs-opinion-list .opinion .company .symbol-file .open-pdf{margin-left:.5em;cursor:pointer}.cs-opinion-list .opinion .company .price{color:#28a5df}.cs-opinion-list .opinion .company .price span{margin-left:.5em}.cs-opinion-list .opinion .up-down{text-align:right}.cs-opinion-list .opinion .up-down .ui.label{margin-top:.3em}.cs-opinion-list .opinion .ui.label{text-transform:uppercase;color:#fff}.cs-opinion-list .opinion .ui.label.buy{background-color:#00b749}.cs-opinion-list .opinion .ui.label.sell{background-color:#e72c1c}.cs-opinion-list .opinion.buy{border-left:7px solid #00b749}.cs-opinion-list .opinion.sell{border-left:7px solid #e72c1c}.cs-opinion-list .opinion.hold{border-left:7px solid #2c6a9e}.cs-opinion-list .opinion.passed{opacity:.5}.cs-opinion-list.dashboard .opinion .row.target-row .col{width:auto}.company-type{display:inline-flex;margin-left:.5em;font-size:1.4em}.company-type .type{color:#fff;background-color:teal;position:relative;font-size:.5em;padding:0 .7em;border:1px solid #fff;text-align:right;border-radius:25px;line-height:2}.company-type .type.red{background-color:#db2828}@media not all and (min-resolution:0.001dpcm){.ui.modal i.close.icon{top:0;right:0}}.cs__loader{display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fff}.cs__loader .sp{width:32px;height:32px}.cs__loader .sp-circle{border:4px solid rgba(0,0,0,.25);border-top-color:#000;border-radius:50%;-webkit-animation:spCircRot .6s linear infinite;animation:spCircRot .6s linear infinite}@-webkit-keyframes spCircRot{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes spCircRot{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}
/*# sourceMappingURL=data:application/json;base64,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Z0VBQ0Usd0RBQTRELENBQzdELEFBQ0Qsc0dBSUUsd0RBQTRELENBQzdELEFBQ0QscURBRUUsd0RBQTRELENBQzdELEFBQ0Qsb0VBRUUsd0RBQTRELENBQzdELEFBQ0QsdURBRUUsd0RBQTRELENBQzdELEFBQ0Qsb0JBQ0Usd0RBQTRELENBQzdELEFBRUQsZUFDRSw2QkFBK0IsQ0FDaEMsQUFDRCxtQkFDRSx1QkFBeUIsQ0FDMUIsQUFDRCxvQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxtQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxvQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxtQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxvQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxtQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxvQkFDRSw0QkFBOEIsQ0FDL0IsQUFDRCxxQkFDRSw0QkFBOEIsQ0FDL0IsQUFDRCxxQkFDRSw0QkFBOEIsQ0FDL0IsQUFDRCxzQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCx1QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxzQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx1QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxzQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx1QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxzQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCxtQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxvQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxtQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxvQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxtQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxvQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxtQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxvQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3QkFDRSw2QkFBK0IsQ0FDaEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx3QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx3QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx3QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw4QkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCw4QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCw4QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCw4QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCxpQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxzQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxpQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxnQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxp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Q0FDakMsQUFDRCx1Q0FFRSw0QkFBZ0MsQ0FDakMsQUFDRCxzQ0FFRSw0QkFBZ0MsQ0FDakMsQUFDRCxzQ0FFRSw0QkFBZ0MsQ0FDakMsQUFDRCw2Q0FFRSw0QkFBZ0MsQ0FDakMsQUFDRCxxQ0FFRSw0QkFBZ0MsQ0FDakMsQUFDRCx3REFFRSw2QkFBaUMsQ0FDbEMsQUFDRCxpREFFRSw2QkFBaUMsQ0FDbEMsQUFDRCwyQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw0Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw0Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxxQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx3Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxxQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx3Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCwwQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxzQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxvQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCwwQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxnREFFRSw2QkFBaUMsQ0FDbEMsQUFDRCxzQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw4Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx3Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx3Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxrREFFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxxQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw4Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCwyQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxxQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx3Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw4Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxvQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxnREFFRSw2QkFBaUMsQ0FDbEMsQUFDRCwwQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw2Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxzQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxxQ0FFRSwyQkFBK0IsQ0FDaEMsQUFDRCwrREFHRSwrQkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSwrQkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSwrQkFBaUMsQ0FDbEMsQUFDRCw2Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxpREFFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxnREFFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw2Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzREFFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxREFFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwyQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwyQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw4Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxvQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwyQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw2Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxnREFFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxvQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwyREFHRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3REFFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSwyQkFBK0IsQ0FDaEMsQUFDRCx3Q0FFRSwrQkFBaUMsQ0FDbEMsQUFDRCwwQ0FFRSwrQkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSwrQkFBaUMsQ0FDbEMsQUFDRCw2Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw4Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwyQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwyQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxnREFFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwyQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxnREFFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwyQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwrQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw0Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxnRUFHRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw0Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwyQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw4Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxvQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxrREFFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxvQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw0Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3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QkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCwwQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxpQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxrQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCwyQkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCwyQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxrQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxpQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx3QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCwwQkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCwwQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxpQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxnQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx1QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxnQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxnQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx1QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxnQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxrQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCwyQkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCwyQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxrQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxrQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCwyQkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCwyQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxrQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxnQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx1QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxnQ0FDRSx1QkFBMEIs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QUFDRCxzQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELGtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsK0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELGlDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxnQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsaUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw4QkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsOEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5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QUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwrQkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELGlDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsOEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw4QkFDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw4QkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsOEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxnQ0FDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsaUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUlELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELHdDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5Q0FDRSxlQUFpQixDQUNsQixBQUNELHNDQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELG1DQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELHFDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELHFC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LENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw4QkFDRSxlQUFpQixDQUNsQixBQUNELHFDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw4QkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsOEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsaUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwrQkFDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsOEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELGlDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwrQkFDRSxlQUFpQixDQUNsQixBQUNELG1DQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFB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LENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwrQkFDRSxlQUFpQixDQUNsQixBQUNELG9DQUNFLGVBQWlCLENBQ2xCLEFBQ0QsZ0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELHFDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsaUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELGtDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELGlDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQ0FDRSxlQUFpQixDQUNsQixBQUNELHVDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsZ0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwrQkFDRSxlQUFpQixDQUNsQixBQUNELDhCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxnQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQ0FDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsZ0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQ0FDRSxlQUFpQixDQUNsQixBQUNELHFDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQ0FDRSxlQUFpQixDQUNsQixBQUNELGtDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQ0FDRSxlQUFpQixDQUNsQixBQUNELGlDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQ0FDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsZ0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsZ0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQ0FDRSxlQUFpQixDQUNsQixBQUNELGtDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQ0FDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQ0FDRSxlQUFpQixDQUNsQixBQUNELHNDQUNFLGVBQWlCLENBQ2xC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Q0UsV0FBWSxBQUNaLGtCQUE4QixDQUMvQixBQUNELHlDQUNFLFlBQWMsQ0FDZixBQUNELHVCQUNFLFlBQWEsQUFDYixrQkFBOEIsQ0FDL0IsQUFLRCx5REFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxtQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxtQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwrREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxzQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxzQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwrREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxzQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxzQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCw2REFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxxQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxxQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCw2REFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxxQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxxQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwyREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxvQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxvQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwyREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxvQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxvQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwrREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxzQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxzQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwrREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxzQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxzQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwyREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxvQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxvQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCw2REFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxxQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxxQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwyREFFRSx3QkFBMEIsQ0FDM0IsQUFD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b0IsQUFDcEIsdUJBQXdCLEFBQ3hCLGtCQUFtQixBQUNuQixNQUFTLEFBQ1QsT0FBVSxBQUNWLFdBQVksQUFDWixZQUFhLEFBQ2IscUJBQXdCLENBQ3pCLEFBQ0QsZ0JBQ0UsV0FBWSxBQUNaLFdBQWEsQ0FDZCxBQUNELHVCQUVFLGlDQUE0QixBQUE1QixzQkFBNEIsQUFDNUIsa0JBQW1CLEFBQ25CLGdEQUF5QyxBQUF6Qyx1Q0FBeUMsQ0FDMUMsQUFDRCw2QkFDRSxHQUNFLHNCQUF3QixDQUN6QixBQUNELEdBQ0Usd0JBQTBCLENBQzNCLENBQ0YsQUFQRCxxQkFDRSxHQUNFLHNCQUF3QixDQUN6QixBQUNELEdBQ0Usd0JBQTBCLENBQzNCLENBQ0YsQUFFRCxrRUFFRSx3QkFBeUIsQUFDekIsUUFBVSxDQUNYLEFBRUQsbUJBQ0UseUJBQTJCLENBQzVCIiwiZmlsZSI6InN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgalF1ZXJ5IFVJIC0gdjEuMTIuMSAtIDIwMjEtMDMtMDJcbiogaHR0cDovL2pxdWVyeXVpLmNvbVxuKiBJbmNsdWRlczogZHJhZ2dhYmxlLmNzcywgY29yZS5jc3MsIHJlc2l6YWJsZS5jc3MsIHNlbGVjdGFibGUuY3NzLCBzb3J0YWJsZS5jc3MsIGFjY29yZGlvbi5jc3MsIGF1dG9jb21wbGV0ZS5jc3MsIG1lbnUuY3NzLCBidXR0b24uY3NzLCBjb250cm9sZ3JvdXAuY3NzLCBjaGVja2JveHJhZGlvLmNzcywgZGF0ZXBpY2tlci5jc3MsIGRpYWxvZy5jc3MsIHByb2dyZXNzYmFyLmNzcywgc2VsZWN0bWVudS5jc3MsIHNsaWRlci5jc3MsIHNwaW5uZXIuY3NzLCB0YWJzLmNzcywgdG9vbHRpcC5jc3MsIHRoZW1lLmNzc1xuKiBUbyB2aWV3IGFuZCBtb2RpZnkgdGhpcyB0aGVtZSwgdmlzaXQgaHR0cDovL2pxdWVyeXVpLmNvbS90aGVtZXJvbGxlci8/c2NvcGU9JmZvbGRlck5hbWU9YmFzZSZjb3JuZXJSYWRpdXNTaGFkb3c9OHB4Jm9mZnNldExlZnRTaGFkb3c9MHB4Jm9mZnNldFRvcFNoYWRvdz0wcHgmdGhpY2tuZXNzU2hhZG93PTVweCZvcGFjaXR5U2hhZG93PTMwJmJnSW1nT3BhY2l0eVNoYWRvdz0wJmJnVGV4dHVyZVNoYWRvdz1mbGF0JmJnQ29sb3JTaGFkb3c9NjY2NjY2Jm9wYWNpdHlPdmVybGF5PTMwJmJnSW1nT3BhY2l0eU92ZXJsYXk9MCZiZ1RleHR1cmVPdmVybGF5PWZsYXQmYmdDb2xvck92ZXJsYXk9YWFhYWFhJmljb25Db2xvckVycm9yPWNjMDAwMCZmY0Vycm9yPTVmM2YzZiZib3JkZXJDb2xvckVycm9yPWYxYTg5OSZiZ1RleHR1cmVFcnJvcj1mbGF0JmJnQ29sb3JFcnJvcj1mZGRmZGYmaWNvbkNvbG9ySGlnaGxpZ2h0PTc3NzYyMCZmY0hpZ2hsaWdodD03Nzc2MjAmYm9yZGVyQ29sb3JIaWdobGlnaHQ9ZGFkNTVlJmJnVGV4dHVyZUhpZ2hsaWdodD1mbGF0JmJnQ29sb3JIaWdobGlnaHQ9ZmZmYTkwJmljb25Db2xvckFjdGl2ZT1mZmZmZmYmZmNBY3RpdmU9ZmZmZmZmJmJvcmRlckNvbG9yQWN0aXZlPTAwM2VmZiZiZ1RleHR1cmVBY3RpdmU9ZmxhdCZiZ0NvbG9yQWN0aXZlPTAwN2ZmZiZpY29uQ29sb3JIb3Zlcj01NTU1NTUmZmNIb3Zlcj0yYjJiMmImYm9yZGVyQ29sb3JIb3Zlcj1jY2NjY2MmYmdUZXh0dXJlSG92ZXI9ZmxhdCZiZ0NvbG9ySG92ZXI9ZWRlZGVkJmljb25Db2xvckRlZmF1bHQ9Nzc3Nzc3JmZjRGVmYXVsdD00NTQ1NDUmYm9yZGVyQ29sb3JEZWZhdWx0PWM1YzVjNSZiZ1RleHR1cmVEZWZhdWx0PWZsYXQmYmdDb2xvckRlZmF1bHQ9ZjZmNmY2Jmljb25Db2xvckNvbnRlbnQ9NDQ0NDQ0JmZjQ29udGVudD0zMzMzMzMmYm9yZGVyQ29sb3JDb250ZW50PWRkZGRkZCZiZ1RleHR1cmVDb250ZW50PWZsYXQmYmdDb2xvckNvbnRlbnQ9ZmZmZmZmJmljb25Db2xvckhlYWRlcj00NDQ0NDQmZmNIZWFkZXI9MzMzMzMzJmJvcmRlckNvbG9ySGVhZGVyPWRkZGRkZCZiZ1RleHR1cmVIZWFkZXI9ZmxhdCZiZ0NvbG9ySGVhZGVyPWU5ZTllOSZjb3JuZXJSYWRpdXM9M3B4JmZ3RGVmYXVsdD1ub3JtYWwmZnNEZWZhdWx0PTFlbSZmZkRlZmF1bHQ9QXJpYWwlMkNIZWx2ZXRpY2ElMkNzYW5zLXNlcmlmXG4qIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzOyBMaWNlbnNlZCBNSVQgKi9cbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TGF0bzo0MDAsMzAwLDYwMCwzMDBpdGFsaWMsNDAwaXRhbGljJnN1YnNldD1sYXRpbicpO1xuLnVpLWRyYWdnYWJsZS1oYW5kbGUge1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG4vKiBMYXlvdXQgaGVscGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWktaGVscGVyLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG59XG4udWktaGVscGVyLXJlc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLnVpLWhlbHBlci1jbGVhcmZpeDpiZWZvcmUsXG4udWktaGVscGVyLWNsZWFyZml4OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG4udWktaGVscGVyLWNsZWFyZml4OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4udWktaGVscGVyLXpmaXgge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICAvKiBzdXBwb3J0OiBJRTggKi9cbn1cbi51aS1mcm9udCB7XG4gIHotaW5kZXg6IDEwMDtcbn1cbi8qIEludGVyYWN0aW9uIEN1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLXN0YXRlLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLyogSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi10b3A6IC0wLjI1ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5OXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnVpLXdpZGdldC1pY29uLWJsb2NrIHtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLThweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKiBNaXNjIHZpc3VhbHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT3ZlcmxheXMgKi9cbi51aS13aWRnZXQtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnVpLXJlc2l6YWJsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS1yZXNpemFibGUtaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LXNpemU6IDAuMXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuLnVpLXJlc2l6YWJsZS1kaXNhYmxlZCAudWktcmVzaXphYmxlLWhhbmRsZSxcbi51aS1yZXNpemFibGUtYXV0b2hpZGUgLnVpLXJlc2l6YWJsZS1oYW5kbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLXJlc2l6YWJsZS1uIHtcbiAgY3Vyc29yOiBuLXJlc2l6ZTtcbiAgaGVpZ2h0OiA3cHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0b3A6IC01cHg7XG4gIGxlZnQ6IDA7XG59XG4udWktcmVzaXphYmxlLXMge1xuICBjdXJzb3I6IHMtcmVzaXplO1xuICBoZWlnaHQ6IDdweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvdHRvbTogLTVweDtcbiAgbGVmdDogMDtcbn1cbi51aS1yZXNpemFibGUtZSB7XG4gIGN1cnNvcjogZS1yZXNpemU7XG4gIHdpZHRoOiA3cHg7XG4gIHJpZ2h0OiAtNXB4O1xuICB0b3A6IDA7XG4gIGhlaWdodDogMTAwJTtcbn1cbi51aS1yZXNpemFibGUtdyB7XG4gIGN1cnNvcjogdy1yZXNpemU7XG4gIHdpZHRoOiA3cHg7XG4gIGxlZnQ6IC01cHg7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnVpLXJlc2l6YWJsZS1zZSB7XG4gIGN1cnNvcjogc2UtcmVzaXplO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICByaWdodDogMXB4O1xuICBib3R0b206IDFweDtcbn1cbi51aS1yZXNpemFibGUtc3cge1xuICBjdXJzb3I6IHN3LXJlc2l6ZTtcbiAgd2lkdGg6IDlweDtcbiAgaGVpZ2h0OiA5cHg7XG4gIGxlZnQ6IC01cHg7XG4gIGJvdHRvbTogLTVweDtcbn1cbi51aS1yZXNpemFibGUtbncge1xuICBjdXJzb3I6IG53LXJlc2l6ZTtcbiAgd2lkdGg6IDlweDtcbiAgaGVpZ2h0OiA5cHg7XG4gIGxlZnQ6IC01cHg7XG4gIHRvcDogLTVweDtcbn1cbi51aS1yZXNpemFibGUtbmUge1xuICBjdXJzb3I6IG5lLXJlc2l6ZTtcbiAgd2lkdGg6IDlweDtcbiAgaGVpZ2h0OiA5cHg7XG4gIHJpZ2h0OiAtNXB4O1xuICB0b3A6IC01cHg7XG59XG4udWktc2VsZWN0YWJsZSB7XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cbi51aS1zZWxlY3RhYmxlLWhlbHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwO1xuICBib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2s7XG59XG4udWktc29ydGFibGUtaGFuZGxlIHtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAycHggMCAwIDA7XG4gIHBhZGRpbmc6IC41ZW0gLjVlbSAuNWVtIC43ZW07XG4gIGZvbnQtc2l6ZTogMTAwJTtcbn1cbi51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1jb250ZW50IHtcbiAgcGFkZGluZzogMWVtIDIuMmVtO1xuICBib3JkZXItdG9wOiAwO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi51aS1hdXRvY29tcGxldGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnVpLW1lbnUge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdXRsaW5lOiAwO1xufVxuLnVpLW1lbnUgLnVpLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4udWktbWVudSAudWktbWVudS1pdGVtIHtcbiAgbWFyZ2luOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIHN1cHBvcnQ6IElFMTAsIHNlZSAjODg0NCAqL1xuICBsaXN0LXN0eWxlLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTdcIik7XG59XG4udWktbWVudSAudWktbWVudS1pdGVtLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDNweCAxZW0gM3B4IC40ZW07XG59XG4udWktbWVudSAudWktbWVudS1kaXZpZGVyIHtcbiAgbWFyZ2luOiA1cHggMDtcbiAgaGVpZ2h0OiAwO1xuICBmb250LXNpemU6IDA7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBib3JkZXItd2lkdGg6IDFweCAwIDAgMDtcbn1cbi51aS1tZW51IC51aS1zdGF0ZS1mb2N1cyxcbi51aS1tZW51IC51aS1zdGF0ZS1hY3RpdmUge1xuICBtYXJnaW46IC0xcHg7XG59XG4vKiBpY29uIHN1cHBvcnQgKi9cbi51aS1tZW51LWljb25zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLW1lbnUtaWNvbnMgLnVpLW1lbnUtaXRlbS13cmFwcGVyIHtcbiAgcGFkZGluZy1sZWZ0OiAyZW07XG59XG4vKiBsZWZ0LWFsaWduZWQgKi9cbi51aS1tZW51IC51aS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogLjJlbTtcbiAgbWFyZ2luOiBhdXRvIDA7XG59XG4vKiByaWdodC1hbGlnbmVkICovXG4udWktbWVudSAudWktbWVudS1pY29uIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG59XG4udWktYnV0dG9uIHtcbiAgcGFkZGluZzogLjRlbSAxZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tcmlnaHQ6IC4xZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAvKiBTdXBwb3J0OiBJRSA8PSAxMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi51aS1idXR0b24sXG4udWktYnV0dG9uOmxpbmssXG4udWktYnV0dG9uOnZpc2l0ZWQsXG4udWktYnV0dG9uOmhvdmVyLFxuLnVpLWJ1dHRvbjphY3RpdmUge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4vKiB0byBtYWtlIHJvb20gZm9yIHRoZSBpY29uLCBhIHdpZHRoIG5lZWRzIHRvIGJlIHNldCBoZXJlICovXG4udWktYnV0dG9uLWljb24tb25seSB7XG4gIHdpZHRoOiAyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLyogbm8gaWNvbiBzdXBwb3J0IGZvciBpbnB1dCBlbGVtZW50cyAqL1xuaW5wdXQudWktYnV0dG9uLnVpLWJ1dHRvbi1pY29uLW9ubHkge1xuICB0ZXh0LWluZGVudDogMDtcbn1cbi8qIGJ1dHRvbiBpY29uIGVsZW1lbnQocykgKi9cbi51aS1idXR0b24taWNvbi1vbmx5IC51aS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAtOHB4O1xuICBtYXJnaW4tbGVmdDogLThweDtcbn1cbi51aS1idXR0b24udWktaWNvbi1ub3RleHQgLnVpLWljb24ge1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMi4xZW07XG4gIGhlaWdodDogMi4xZW07XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuaW5wdXQudWktYnV0dG9uLnVpLWljb24tbm90ZXh0IC51aS1pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdGV4dC1pbmRlbnQ6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHBhZGRpbmc6IC40ZW0gMWVtO1xufVxuLyogd29ya2Fyb3VuZHMgKi9cbi8qIFN1cHBvcnQ6IEZpcmVmb3ggNSAtIDQwICovXG5pbnB1dC51aS1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5idXR0b24udWktYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLnVpLWNvbnRyb2xncm91cCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS1jb250cm9sZ3JvdXAgPiAudWktY29udHJvbGdyb3VwLWl0ZW0ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cbi51aS1jb250cm9sZ3JvdXAgPiAudWktY29udHJvbGdyb3VwLWl0ZW06Zm9jdXMsXG4udWktY29udHJvbGdyb3VwID4gLnVpLWNvbnRyb2xncm91cC1pdGVtLnVpLXZpc3VhbC1mb2N1cyB7XG4gIHotaW5kZXg6IDk5OTk7XG59XG4udWktY29udHJvbGdyb3VwLXZlcnRpY2FsID4gLnVpLWNvbnRyb2xncm91cC1pdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS1jb250cm9sZ3JvdXAtdmVydGljYWwgLnVpLWNvbnRyb2xncm91cC1pdGVtIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi51aS1jb250cm9sZ3JvdXAgLnVpLWNvbnRyb2xncm91cC1sYWJlbCB7XG4gIHBhZGRpbmc6IC40ZW0gMWVtO1xufVxuLnVpLWNvbnRyb2xncm91cCAudWktY29udHJvbGdyb3VwLWxhYmVsIHNwYW4ge1xuICBmb250LXNpemU6IDgwJTtcbn1cbi51aS1jb250cm9sZ3JvdXAtaG9yaXpvbnRhbCAudWktY29udHJvbGdyb3VwLWxhYmVsICsgLnVpLWNvbnRyb2xncm91cC1pdGVtIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWktY29udHJvbGdyb3VwLXZlcnRpY2FsIC51aS1jb250cm9sZ3JvdXAtbGFiZWwgKyAudWktY29udHJvbGdyb3VwLWl0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLWNvbnRyb2xncm91cC1ob3Jpem9udGFsIC51aS1jb250cm9sZ3JvdXAtbGFiZWwudWktd2lkZ2V0LWNvbnRlbnQge1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWktY29udHJvbGdyb3VwLXZlcnRpY2FsIC51aS1jb250cm9sZ3JvdXAtbGFiZWwudWktd2lkZ2V0LWNvbnRlbnQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLyogU3Bpbm5lciBzcGVjaWZpYyBzdHlsZSBmaXhlcyAqL1xuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCAudWktc3Bpbm5lci1pbnB1dCB7XG4gIC8qIFN1cHBvcnQ6IElFOCBvbmx5LCBBbmRyb2lkIDwgNC40IG9ubHkgKi9cbiAgd2lkdGg6IDc1JTtcbiAgd2lkdGg6IGNhbGMoOTcuNiUpO1xufVxuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCAudWktc3Bpbm5lciAudWktc3Bpbm5lci11cCB7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xufVxuLnVpLWNoZWNrYm94cmFkaW8tbGFiZWwgLnVpLWljb24tYmFja2dyb3VuZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggMXB4ICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IC4xMmVtO1xuICBib3JkZXI6IG5vbmU7XG59XG4udWktY2hlY2tib3hyYWRpby1yYWRpby1sYWJlbCAudWktaWNvbi1iYWNrZ3JvdW5kIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogMWVtO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpLWNoZWNrYm94cmFkaW8tcmFkaW8tbGFiZWwudWktY2hlY2tib3hyYWRpby1jaGVja2VkIC51aS1pY29uLFxuLnVpLWNoZWNrYm94cmFkaW8tcmFkaW8tbGFiZWwudWktY2hlY2tib3hyYWRpby1jaGVja2VkOmhvdmVyIC51aS1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLnVpLWNoZWNrYm94cmFkaW8tZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi51aS1kYXRlcGlja2VyIHtcbiAgd2lkdGg6IDE3ZW07XG4gIHBhZGRpbmc6IC4yZW0gLjJlbSAwO1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAuMmVtIDA7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LFxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAycHg7XG4gIHdpZHRoOiAxLjhlbTtcbiAgaGVpZ2h0OiAxLjhlbTtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYtaG92ZXIsXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIHtcbiAgdG9wOiAxcHg7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHtcbiAgbGVmdDogMnB4O1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gIHJpZ2h0OiAycHg7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIHtcbiAgbGVmdDogMXB4O1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlciB7XG4gIHJpZ2h0OiAxcHg7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW4sXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLThweDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXRpdGxlIHtcbiAgbWFyZ2luOiAwIDIuM2VtO1xuICBsaW5lLWhlaWdodDogMS44ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXRpdGxlIHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBtYXJnaW46IDFweCAwO1xufVxuLnVpLWRhdGVwaWNrZXIgc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsXG4udWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci15ZWFyIHtcbiAgd2lkdGg6IDQ1JTtcbn1cbi51aS1kYXRlcGlja2VyIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogLjllbTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgbWFyZ2luOiAwIDAgLjRlbTtcbn1cbi51aS1kYXRlcGlja2VyIHRoIHtcbiAgcGFkZGluZzogLjdlbSAuM2VtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXI6IDA7XG59XG4udWktZGF0ZXBpY2tlciB0ZCB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMXB4O1xufVxuLnVpLWRhdGVwaWNrZXIgdGQgc3Bhbixcbi51aS1kYXRlcGlja2VyIHRkIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogLjJlbTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBtYXJnaW46IC43ZW0gMCAwIDA7XG4gIHBhZGRpbmc6IDAgLjJlbTtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IC41ZW0gLjJlbSAuNGVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IC4yZW0gLjZlbSAuM2VtIC42ZW07XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLyogd2l0aCBtdWx0aXBsZSBjYWxlbmRhcnMgKi9cbi51aS1kYXRlcGlja2VyLnVpLWRhdGVwaWNrZXItbXVsdGkge1xuICB3aWR0aDogYXV0bztcbn1cbi51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cCB0YWJsZSB7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbjogMCBhdXRvIC40ZW07XG59XG4udWktZGF0ZXBpY2tlci1tdWx0aS0yIC51aS1kYXRlcGlja2VyLWdyb3VwIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS1kYXRlcGlja2VyLW11bHRpLTMgLnVpLWRhdGVwaWNrZXItZ3JvdXAge1xuICB3aWR0aDogMzMuMyU7XG59XG4udWktZGF0ZXBpY2tlci1tdWx0aS00IC51aS1kYXRlcGlja2VyLWdyb3VwIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QgLnVpLWRhdGVwaWNrZXItaGVhZGVyLFxuLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIC51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xufVxuLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG4gIGNsZWFyOiBsZWZ0O1xufVxuLnVpLWRhdGVwaWNrZXItcm93LWJyZWFrIHtcbiAgY2xlYXI6IGJvdGg7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDA7XG59XG4vKiBSVEwgc3VwcG9ydCAqL1xuLnVpLWRhdGVwaWNrZXItcnRsIHtcbiAgZGlyZWN0aW9uOiBydGw7XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldiB7XG4gIHJpZ2h0OiAycHg7XG4gIGxlZnQ6IGF1dG87XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gIGxlZnQ6IDJweDtcbiAgcmlnaHQ6IGF1dG87XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldjpob3ZlciB7XG4gIHJpZ2h0OiAxcHg7XG4gIGxlZnQ6IGF1dG87XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dDpob3ZlciB7XG4gIGxlZnQ6IDFweDtcbiAgcmlnaHQ6IGF1dG87XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG4gIGNsZWFyOiByaWdodDtcbn1cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCxcbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cCB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cC1sYXN0IC51aS1kYXRlcGlja2VyLWhlYWRlcixcbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cC1taWRkbGUgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xufVxuLyogSWNvbnMgKi9cbi51aS1kYXRlcGlja2VyIC51aS1pY29uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtaW5kZW50OiAtOTk5OTlweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbGVmdDogLjVlbTtcbiAgdG9wOiAuM2VtO1xufVxuLnVpLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nOiAuMmVtO1xuICBvdXRsaW5lOiAwO1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlYmFyIHtcbiAgcGFkZGluZzogLjRlbSAxZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IC4xZW0gMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDkwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4udWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAuM2VtO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDIwcHg7XG4gIG1hcmdpbjogLTEwcHggMCAwIDA7XG4gIHBhZGRpbmc6IDFweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogLjVlbSAxZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXItd2lkdGg6IDFweCAwIDAgMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLjVlbTtcbiAgcGFkZGluZzogLjNlbSAxZW0gLjVlbSAuNGVtO1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgLnVpLWRpYWxvZy1idXR0b25zZXQge1xuICBmbG9hdDogcmlnaHQ7XG59XG4udWktZGlhbG9nIC51aS1kaWFsb2ctYnV0dG9ucGFuZSBidXR0b24ge1xuICBtYXJnaW46IC41ZW0gLjRlbSAuNWVtIDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1uIHtcbiAgaGVpZ2h0OiAycHg7XG4gIHRvcDogMDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1lIHtcbiAgd2lkdGg6IDJweDtcbiAgcmlnaHQ6IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtcyB7XG4gIGhlaWdodDogMnB4O1xuICBib3R0b206IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtdyB7XG4gIHdpZHRoOiAycHg7XG4gIGxlZnQ6IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtc2UsXG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtc3csXG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtbmUsXG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtbncge1xuICB3aWR0aDogN3B4O1xuICBoZWlnaHQ6IDdweDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zZSB7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtc3cge1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtbmUge1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xufVxuLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLW53IHtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuLnVpLWRyYWdnYWJsZSAudWktZGlhbG9nLXRpdGxlYmFyIHtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuLnVpLXByb2dyZXNzYmFyIHtcbiAgaGVpZ2h0OiAyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4udWktcHJvZ3Jlc3NiYXIgLnVpLXByb2dyZXNzYmFyLXZhbHVlIHtcbiAgbWFyZ2luOiAtMXB4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG4udWktcHJvZ3Jlc3NiYXIgLnVpLXByb2dyZXNzYmFyLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhLQUFvQUlBQkFBQUFBUC8vL3lIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUpBUUFCQUN3QUFBQUFLQUFvQUFBQ2tZd05xWHJkQzUyRFMwNmE3TUZaSSs0RkhCQ0tvRGVXS1hxeW1QcUdxeHZKclhaYk14N1R0Yyt3OVhnVTJGQjNsT3lRUldFVDJJRkdpVTltMWZyRFZweFpaYzZiZkh3djRjMVlYUDZrMVZkeTI5MkZiNlVrdXZGdFhwdldTekErSHljWEpIVVhpR1lJaU1nMlI2VzQ1OWduV0dmSE5kaklxRFdWcWVtSDJla3BPYmtwT2xwcFdVcVppcXI2ZWRxcVdRQUFJZmtFQ1FFQUFRQXNBQUFBQUNnQUtBQUFBcFNNZ1puR2ZhcWNnMUUydXV6RG1tSFVCUjhRaWw5NWhpUEtxV24zYXF0THNTMTh5N0cxU3pOZW93V0JFTnRRZCtUMUprdFAwNW56UFRkSlpsUjZ2VXhOV1dqVit2VVdoV05rV0Z3eGw5VnBaUmVkWWNmbElPTGFmYWEyOFhkc0gveW5sY2MxdVBWRFp4UUlSMEsyNStjSUNDbW9xQ2U1bUdoWk9mZVlTVWg1eUpjSnlya1pXV3BhUjhkb0oybzROWXE2MmxBQUFDSDVCQWtCQUFFQUxBQUFBQUFvQUNnQUFBS1ZESTRZeTIyWm5JTlJOcW9zdzBCdjdpMWd5SFVrRmo3b1NhV2x1M292QzhHeE5zbzVmbHV6M3FMVmhCVmVUL0x6N1pUSHl4TDVkRGFsUVdQVk9zUVd0Um51d1hhRlRqOWpWVmg4cG1hOUpqWjR6WVNqNVpPeW1hN3V1b2xmZmgrSVI1YVc5N2NIdUJVWEtHS1hsS2puK0RpSFdNY1lKYWg0TjBsWUNNbEpPWGlwR1JyNXFkZ29TVHJxV1NxNldGbDJ5cG9hVUFBQUlma0VDUUVBQVFBc0FBQUFBQ2dBS0FBQUFwYUViNkhMZ2QvaU83Rk5XdGNGV2UrdWZPREdqUmZvaUoyYWtTaGJ1ZWIwd3RJNTB6bTAycGJ2d2ZXRU1XQlExektHbExJaHNraUVQbTlSNnZSWHhWNFp6V1QyeUhPR3BXTXlvcmJsS2xOcDhIbUhFYi9sQ1hqY1c3Ym10WFA4WHQyMjlPVldSMWZvZDJlV3FOZkh1TWpYQ1BrSUdOaWxlT2lJbVZtQ09FbW9TZm4zeVhsSldtb0hHaHFwNmlsWXVXWXBtVHFLVWdBQUlma0VDUUVBQVFBc0FBQUFBQ2dBS0FBQUFwaUVINmtiNThiaVEzRk5XdE1GV1czZU5WY29qdUZHZnFuWnFTZWJ1UzA2dzVWODAvWDAycEtlOHpGd1A2RUZXT1QxbERGazhyR0VSaDFUVE5Pb2NRNjFIbTRYbTJWZXhVSHB6anltVmlIckZiaUVMc2VmVnJuNlhLZm50MlE5Ry8rWGRpZTQ5OVhIZDJnNGg3aW9PR2hYR0pib0dBblhTQm5vQndLWXlmaW91YlpKMkhuMFJ1UlphZmxaT2lsNTZacDZpaW9LU1hwVUFBQWgrUVFKQVFBQkFDd0FBQUFBS0FBb0FBQUNrb1FScVJ2bnh1STdrVTFhMVVVNWJkNXRuU2VPWlhobW41bFdLM3FOVFd2UmRReFA4cXZhQysveWFZUXpYTzdCTXZhVUVtSlJkM1RzaU1BZ3N3bU5ZclNnWmRZclRYNnRTSEdaTzczZXp1QXcydXh1UStCYmVaZk14c2V4WTM1Ky9RZTRKMWluVjBnNHgzV0h1TWhJbDJqWE9LVDJRK1ZVNWZnb1NVSTUyVmZaeWZrSkdraGE2am1ZK2FhWWRpcnErbFFBQUNINUJBa0JBQUVBTEFBQUFBQW9BQ2dBQUFLV0JJS3BZZTBMM1lOS1RvcXN3VWx2em5pZ2Q0d2lSNEtoWnJLdDlVcHFpcDYxaTlFM3ZNdnhSZEhsYkVGaUVYZms5WUFSWXhPWlpENlZRMnBVdW5CbXRSWG8xTGY4aE1WVmNObDhKYWZWMzhhTTIvRnU1VjE2Qm42M3I2eHQ5N2owOStNWFNGaTRCbmlHRmFlM2h6Ykg5K2hZQnprcHVVaDVhWm1IdWFuWk9aZ0l1dmJHaU5lb21DbmF4eGFwMnVwYUNac3ErMWtBQUNINUJBa0JBQUVBTEFBQUFBQW9BQ2dBQUFLWGpJOEJ5NXpmNGtPeFRWclhOVmx2MVgwZDhJR1pHS0xuTnBZdG04THI5Y3FWZXVPU3ZmT1c3OUQ5YURIaXpOaERKaWRGWmhOeWRFYWhPYURINm5vbXRKanAxdHV0S29OV2t2QTZKcWZSVkxIVS9RVWZhdTlsMng3RzU0ZDFmbDk5NXhjSUdBZFhxTWZCTmFkb1lyaEgrTWcyS0JscFZwYmx1Q2lYbU1uWjJTaDRHQnFKK2NrSU9xcUo2TG1LU2xsWm1zb3E2d3BRQUFBaCtRUUpBUUFCQUN3QUFBQUFLQUFvQUFBQ2xZeC9vTHZveHVKRGtVMWExWVVaYko1OW5TZDJaWGhXcWJSYTIvZ0Y4R3UyRFkzaXFzN3lycSt4QllFa1l2RlNNOGFTU09iRStaZ1JsMUJIRlpOcjdwUkNhdlo1QlcyMTQyaFkzQU4veld0c21mMTJwOVh4eEZsMmxwTG4xcnNlenRmWFpqZElXSWYyczVkSXR3allLQmdvOXlnNXBIZ3pKWFRFZUdsWnVlbnB5UG1wR1FvS09Xa1ltU3BhU25xS2lsZUkyRkFBQUNINUJBa0JBQUVBTEFBQUFBQW9BQ2dBQUFLVmpCK2d1K2pHNGtPUlRWclZoUmxzbm4yZEozWmxlRmFwdEZyYitDWG1POU9vemVMNVZmUDk5SHZBV2hwaVVkY3drcEJIMzgyNUF3WWRVOHhUcWxMR2h0Q29zQXJLTXB2ZmExbU1SYWU5VnZXWmZlQjJYZlBrZUxtbTE4bFVjQmorcDVkbk44alhaM1lJR0VoWXVPVW40NWFvQ0RrcDE2aGw1SWpZSnZqV0tjbm9HUXBxeVBscE9ocjNhRWxhcXJxNTZCcTdWQUFBT3c9PVwiKTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MjUpO1xuICAvKiBzdXBwb3J0OiBJRTggKi9cbiAgb3BhY2l0eTogMC4yNTtcbn1cbi51aS1wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlIC51aS1wcm9ncmVzc2Jhci12YWx1ZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWktc2VsZWN0bWVudS1tZW51IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS1zZWxlY3RtZW51LW1lbnUgLnVpLW1lbnUge1xuICBvdmVyZmxvdzogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xufVxuLnVpLXNlbGVjdG1lbnUtbWVudSAudWktbWVudSAudWktc2VsZWN0bWVudS1vcHRncm91cCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgcGFkZGluZzogMnB4IDAuNGVtO1xuICBtYXJnaW46IDAuNWVtIDAgMCAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlcjogMDtcbn1cbi51aS1zZWxlY3RtZW51LW9wZW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS1zZWxlY3RtZW51LXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi51aS1zZWxlY3RtZW51LWJ1dHRvbi51aS1idXR0b24ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTRlbTtcbn1cbi51aS1zZWxlY3RtZW51LWljb24udWktaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi51aS1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB3aWR0aDogMS4yZW07XG4gIGhlaWdodDogMS4yZW07XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuLnVpLXNsaWRlciAudWktc2xpZGVyLXJhbmdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICBmb250LXNpemU6IC43ZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbn1cbi8qIHN1cHBvcnQ6IElFOCAtIFNlZSAjNjcyNyAqL1xuLnVpLXNsaWRlci51aS1zdGF0ZS1kaXNhYmxlZCAudWktc2xpZGVyLWhhbmRsZSxcbi51aS1zbGlkZXIudWktc3RhdGUtZGlzYWJsZWQgLnVpLXNsaWRlci1yYW5nZSB7XG4gIGZpbHRlcjogaW5oZXJpdDtcbn1cbi51aS1zbGlkZXItaG9yaXpvbnRhbCB7XG4gIGhlaWdodDogLjhlbTtcbn1cbi51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZSB7XG4gIHRvcDogLTAuM2VtO1xuICBtYXJnaW4tbGVmdDogLTAuNmVtO1xufVxuLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2Uge1xuICB0b3A6IDA7XG4gIGhlaWdodDogMTAwJTtcbn1cbi51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1pbiB7XG4gIGxlZnQ6IDA7XG59XG4udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXgge1xuICByaWdodDogMDtcbn1cbi51aS1zbGlkZXItdmVydGljYWwge1xuICB3aWR0aDogLjhlbTtcbiAgaGVpZ2h0OiAxMDBweDtcbn1cbi51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1oYW5kbGUge1xuICBsZWZ0OiAtMC4zZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAtMC42ZW07XG59XG4udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2Uge1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZS1taW4ge1xuICBib3R0b206IDA7XG59XG4udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4IHtcbiAgdG9wOiAwO1xufVxuLnVpLXNwaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS1zcGlubmVyLWlucHV0IHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcGFkZGluZzogLjIyMmVtIDA7XG4gIG1hcmdpbjogLjJlbSAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogLjRlbTtcbiAgbWFyZ2luLXJpZ2h0OiAyZW07XG59XG4udWktc3Bpbm5lci1idXR0b24ge1xuICB3aWR0aDogMS42ZW07XG4gIGhlaWdodDogNTAlO1xuICBmb250LXNpemU6IC41ZW07XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHJpZ2h0OiAwO1xufVxuLyogbW9yZSBzcGVjaWZpY2l0eSByZXF1aXJlZCBoZXJlIHRvIG92ZXJyaWRlIGRlZmF1bHQgYm9yZGVycyAqL1xuLnVpLXNwaW5uZXIgYS51aS1zcGlubmVyLWJ1dHRvbiB7XG4gIGJvcmRlci10b3Atc3R5bGU6IG5vbmU7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTtcbn1cbi51aS1zcGlubmVyLXVwIHtcbiAgdG9wOiAwO1xufVxuLnVpLXNwaW5uZXItZG93biB7XG4gIGJvdHRvbTogMDtcbn1cbi51aS10YWJzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiBwb3NpdGlvbjogcmVsYXRpdmUgcHJldmVudHMgSUUgc2Nyb2xsIGJ1ZyAoZWxlbWVudCB3aXRoIHBvc2l0aW9uOiByZWxhdGl2ZSBpbnNpZGUgY29udGFpbmVyIHdpdGggb3ZlcmZsb3c6IGF1dG8gYXBwZWFyIGFzIFwiZml4ZWRcIikgKi9cbiAgcGFkZGluZzogLjJlbTtcbn1cbi51aS10YWJzIC51aS10YWJzLW5hdiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogLjJlbSAuMmVtIDA7XG59XG4udWktdGFicyAudWktdGFicy1uYXYgbGkge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDA7XG4gIG1hcmdpbjogMXB4IC4yZW0gMCAwO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnVpLXRhYnMgLnVpLXRhYnMtbmF2IC51aS10YWJzLWFuY2hvciB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAuNWVtIDFlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtYWN0aXZlIHtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgcGFkZGluZy1ib3R0b206IDFweDtcbn1cbi51aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS10YWJzLWFjdGl2ZSAudWktdGFicy1hbmNob3IsXG4udWktdGFicyAudWktdGFicy1uYXYgbGkudWktc3RhdGUtZGlzYWJsZWQgLnVpLXRhYnMtYW5jaG9yLFxuLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtbG9hZGluZyAudWktdGFicy1hbmNob3Ige1xuICBjdXJzb3I6IHRleHQ7XG59XG4udWktdGFicy1jb2xsYXBzaWJsZSAudWktdGFicy1uYXYgbGkudWktdGFicy1hY3RpdmUgLnVpLXRhYnMtYW5jaG9yIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLXRhYnMgLnVpLXRhYnMtcGFuZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAxZW0gMS40ZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4udWktdG9vbHRpcCB7XG4gIHBhZGRpbmc6IDhweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5OTk5O1xuICBtYXgtd2lkdGg6IDMwMHB4O1xufVxuYm9keSAudWktdG9vbHRpcCB7XG4gIGJvcmRlci13aWR0aDogMnB4O1xufVxuLyogQ29tcG9uZW50IGNvbnRhaW5lcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLXdpZGdldCB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS13aWRnZXQgLnVpLXdpZGdldCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLXdpZGdldCBpbnB1dCxcbi51aS13aWRnZXQgc2VsZWN0LFxuLnVpLXdpZGdldCB0ZXh0YXJlYSxcbi51aS13aWRnZXQgYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLXdpZGdldC51aS13aWRnZXQtY29udGVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjNWM1YzU7XG59XG4udWktd2lkZ2V0LWNvbnRlbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS13aWRnZXQtY29udGVudCBhIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4udWktd2lkZ2V0LWhlYWRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIGJhY2tncm91bmQ6ICNlOWU5ZTk7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS13aWRnZXQtaGVhZGVyIGEge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi8qIEludGVyYWN0aW9uIHN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWktc3RhdGUtZGVmYXVsdCxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0LFxuLnVpLWJ1dHRvbixcbmh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDpob3Zlcixcbmh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDphY3RpdmUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzVjNWM1O1xuICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzQ1NDU0NTtcbn1cbi51aS1zdGF0ZS1kZWZhdWx0IGEsXG4udWktc3RhdGUtZGVmYXVsdCBhOmxpbmssXG4udWktc3RhdGUtZGVmYXVsdCBhOnZpc2l0ZWQsXG5hLnVpLWJ1dHRvbixcbmE6bGluay51aS1idXR0b24sXG5hOnZpc2l0ZWQudWktYnV0dG9uLFxuLnVpLWJ1dHRvbiB7XG4gIGNvbG9yOiAjNDU0NTQ1O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4udWktc3RhdGUtaG92ZXIsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhvdmVyLFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLFxuLnVpLXN0YXRlLWZvY3VzLFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1mb2N1cyxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cyxcbi51aS1idXR0b246aG92ZXIsXG4udWktYnV0dG9uOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgYmFja2dyb3VuZDogI2VkZWRlZDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMyYjJiMmI7XG59XG4udWktc3RhdGUtaG92ZXIgYSxcbi51aS1zdGF0ZS1ob3ZlciBhOmhvdmVyLFxuLnVpLXN0YXRlLWhvdmVyIGE6bGluayxcbi51aS1zdGF0ZS1ob3ZlciBhOnZpc2l0ZWQsXG4udWktc3RhdGUtZm9jdXMgYSxcbi51aS1zdGF0ZS1mb2N1cyBhOmhvdmVyLFxuLnVpLXN0YXRlLWZvY3VzIGE6bGluayxcbi51aS1zdGF0ZS1mb2N1cyBhOnZpc2l0ZWQsXG5hLnVpLWJ1dHRvbjpob3ZlcixcbmEudWktYnV0dG9uOmZvY3VzIHtcbiAgY29sb3I6ICMyYjJiMmI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi51aS12aXN1YWwtZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgM3B4IDFweCAjNWU5ZWQ2O1xufVxuLnVpLXN0YXRlLWFjdGl2ZSxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlLFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWFjdGl2ZSxcbmEudWktYnV0dG9uOmFjdGl2ZSxcbi51aS1idXR0b246YWN0aXZlLFxuLnVpLWJ1dHRvbi51aS1zdGF0ZS1hY3RpdmU6aG92ZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDAzZWZmO1xuICBiYWNrZ3JvdW5kOiAjMDA3ZmZmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS1pY29uLWJhY2tncm91bmQsXG4udWktc3RhdGUtYWN0aXZlIC51aS1pY29uLWJhY2tncm91bmQge1xuICBib3JkZXI6ICMwMDNlZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4udWktc3RhdGUtYWN0aXZlIGEsXG4udWktc3RhdGUtYWN0aXZlIGE6bGluayxcbi51aS1zdGF0ZS1hY3RpdmUgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi8qIEludGVyYWN0aW9uIEN1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLXN0YXRlLWhpZ2hsaWdodCxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0LFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkYWQ1NWU7XG4gIGJhY2tncm91bmQ6ICNmZmZhOTA7XG4gIGNvbG9yOiAjNzc3NjIwO1xufVxuLnVpLXN0YXRlLWNoZWNrZWQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGFkNTVlO1xuICBiYWNrZ3JvdW5kOiAjZmZmYTkwO1xufVxuLnVpLXN0YXRlLWhpZ2hsaWdodCBhLFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQgYSxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHQgYSB7XG4gIGNvbG9yOiAjNzc3NjIwO1xufVxuLnVpLXN0YXRlLWVycm9yLFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvcixcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmMWE4OTk7XG4gIGJhY2tncm91bmQ6ICNmZGRmZGY7XG4gIGNvbG9yOiAjNWYzZjNmO1xufVxuLnVpLXN0YXRlLWVycm9yIGEsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yIGEsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3IgYSB7XG4gIGNvbG9yOiAjNWYzZjNmO1xufVxuLnVpLXN0YXRlLWVycm9yLXRleHQsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLXRleHQsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3ItdGV4dCB7XG4gIGNvbG9yOiAjNWYzZjNmO1xufVxuLnVpLXByaW9yaXR5LXByaW1hcnksXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXByaW9yaXR5LXByaW1hcnksXG4udWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktcHJpbWFyeSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLXByaW9yaXR5LXNlY29uZGFyeSxcbi51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktc2Vjb25kYXJ5LFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXNlY29uZGFyeSB7XG4gIG9wYWNpdHk6IC43O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NzApO1xuICAvKiBzdXBwb3J0OiBJRTggKi9cbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi51aS1zdGF0ZS1kaXNhYmxlZCxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGlzYWJsZWQsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAuMzU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0zNSk7XG4gIC8qIHN1cHBvcnQ6IElFOCAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLXN0YXRlLWRpc2FibGVkIC51aS1pY29uIHtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbiAgLyogc3VwcG9ydDogSUU4IC0gU2VlICM2MDU5ICovXG59XG4vKiBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBzdGF0ZXMgYW5kIGltYWdlcyAqL1xuLnVpLWljb24ge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLnVpLWljb24sXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nXCIpO1xufVxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nXCIpO1xufVxuLnVpLXN0YXRlLWhvdmVyIC51aS1pY29uLFxuLnVpLXN0YXRlLWZvY3VzIC51aS1pY29uLFxuLnVpLWJ1dHRvbjpob3ZlciAudWktaWNvbixcbi51aS1idXR0b246Zm9jdXMgLnVpLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfNTU1NTU1XzI1NngyNDAucG5nXCIpO1xufVxuLnVpLXN0YXRlLWFjdGl2ZSAudWktaWNvbixcbi51aS1idXR0b246YWN0aXZlIC51aS1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL3VpLWljb25zX2ZmZmZmZl8yNTZ4MjQwLnBuZ1wiKTtcbn1cbi51aS1zdGF0ZS1oaWdobGlnaHQgLnVpLWljb24sXG4udWktYnV0dG9uIC51aS1zdGF0ZS1oaWdobGlnaHQudWktaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc183Nzc2MjBfMjU2eDI0MC5wbmdcIik7XG59XG4udWktc3RhdGUtZXJyb3IgLnVpLWljb24sXG4udWktc3RhdGUtZXJyb3ItdGV4dCAudWktaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc19jYzAwMDBfMjU2eDI0MC5wbmdcIik7XG59XG4udWktYnV0dG9uIC51aS1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL3VpLWljb25zXzc3Nzc3N18yNTZ4MjQwLnBuZ1wiKTtcbn1cbi8qIHBvc2l0aW9uaW5nICovXG4udWktaWNvbi1ibGFuayB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDE2cHggMTZweDtcbn1cbi51aS1pY29uLWNhcmV0LTEtbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbn1cbi51aS1pY29uLWNhcmV0LTEtbmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAwO1xufVxuLnVpLWljb24tY2FyZXQtMS1lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggMDtcbn1cbi51aS1pY29uLWNhcmV0LTEtc2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAwO1xufVxuLnVpLWljb24tY2FyZXQtMS1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY1cHggMDtcbn1cbi51aS1pY29uLWNhcmV0LTEtc3cge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAwO1xufVxuLnVpLWljb24tY2FyZXQtMS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggMDtcbn1cbi51aS1pY29uLWNhcmV0LTEtbncge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggMDtcbn1cbi51aS1pY29uLWNhcmV0LTItbi1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IDA7XG59XG4udWktaWNvbi1jYXJldC0yLWUtdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAwO1xufVxuLnVpLWljb24tdHJpYW5nbGUtMS1uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTZweDtcbn1cbi51aS1pY29uLXRyaWFuZ2xlLTEtbmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTZweDtcbn1cbi51aS1pY29uLXRyaWFuZ2xlLTEtZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNnB4O1xufVxuLnVpLWljb24tdHJpYW5nbGUtMS1zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNnB4O1xufVxuLnVpLWljb24tdHJpYW5nbGUtMS1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY1cHggLTE2cHg7XG59XG4udWktaWNvbi10cmlhbmdsZS0xLXN3IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2cHg7XG59XG4udWktaWNvbi10cmlhbmdsZS0xLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTZweDtcbn1cbi51aS1pY29uLXRyaWFuZ2xlLTEtbncge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE2cHg7XG59XG4udWktaWNvbi10cmlhbmdsZS0yLW4tcyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTZweDtcbn1cbi51aS1pY29uLXRyaWFuZ2xlLTItZS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNnB4O1xufVxuLnVpLWljb24tYXJyb3ctMS1uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93LTEtbmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93LTEtZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0zMnB4O1xufVxuLnVpLWljb24tYXJyb3ctMS1zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0zMnB4O1xufVxuLnVpLWljb24tYXJyb3ctMS1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY1cHggLTMycHg7XG59XG4udWktaWNvbi1hcnJvdy0xLXN3IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTMycHg7XG59XG4udWktaWNvbi1hcnJvdy0xLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93LTEtbncge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTMycHg7XG59XG4udWktaWNvbi1hcnJvdy0yLW4tcyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93LTItbmUtc3cge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTMycHg7XG59XG4udWktaWNvbi1hcnJvdy0yLWUtdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93LTItc2Utbncge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTMycHg7XG59XG4udWktaWNvbi1hcnJvd3N0b3AtMS1uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0zMnB4O1xufVxuLnVpLWljb24tYXJyb3dzdG9wLTEtZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93c3RvcC0xLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTMycHg7XG59XG4udWktaWNvbi1hcnJvd3N0b3AtMS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0zMnB4O1xufVxuLnVpLWljb24tYXJyb3d0aGljay0xLW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggLTQ4cHg7XG59XG4udWktaWNvbi1hcnJvd3RoaWNrLTEtbmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2stMS1lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTQ4cHg7XG59XG4udWktaWNvbi1hcnJvd3RoaWNrLTEtc2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2stMS1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTQ4cHg7XG59XG4udWktaWNvbi1hcnJvd3RoaWNrLTEtc3cge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2stMS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTQ4cHg7XG59XG4udWktaWNvbi1hcnJvd3RoaWNrLTEtbncge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTQ4cHg7XG59XG4udWktaWNvbi1hcnJvd3RoaWNrLTItbi1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3d0aGljay0yLW5lLXN3IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3d0aGljay0yLWUtdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2stMi1zZS1udyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtcyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNjRweDtcbn1cbi51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTY0cHg7XG59XG4udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC02NHB4O1xufVxuLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtNjRweDtcbn1cbi51aS1pY29uLWFycm93cmV0dXJuLTEtdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC02NHB4O1xufVxuLnVpLWljb24tYXJyb3dyZXR1cm4tMS1uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTY0cHg7XG59XG4udWktaWNvbi1hcnJvd3JldHVybi0xLWUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNjRweDtcbn1cbi51aS1pY29uLWFycm93cmV0dXJuLTEtcyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNjRweDtcbn1cbi51aS1pY29uLWFycm93cmVmcmVzaC0xLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTY0cHg7XG59XG4udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC02NHB4O1xufVxuLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtNjRweDtcbn1cbi51aS1pY29uLWFycm93cmVmcmVzaC0xLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTY0cHg7XG59XG4udWktaWNvbi1hcnJvdy00IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDtcbn1cbi51aS1pY29uLWFycm93LTQtZGlhZyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC04MHB4O1xufVxuLnVpLWljb24tZXh0bGluayB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC04MHB4O1xufVxuLnVpLWljb24tbmV3d2luIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTgwcHg7XG59XG4udWktaWNvbi1yZWZyZXNoIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTgwcHg7XG59XG4udWktaWNvbi1zaHVmZmxlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTgwcHg7XG59XG4udWktaWNvbi10cmFuc2Zlci1lLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtODBweDtcbn1cbi51aS1pY29uLXRyYW5zZmVydGhpY2stZS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC04MHB4O1xufVxuLnVpLWljb24tZm9sZGVyLWNvbGxhcHNlZCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTk2cHg7XG59XG4udWktaWNvbi1mb2xkZXItb3BlbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC05NnB4O1xufVxuLnVpLWljb24tZG9jdW1lbnQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtOTZweDtcbn1cbi51aS1pY29uLWRvY3VtZW50LWIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtOTZweDtcbn1cbi51aS1pY29uLW5vdGUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtOTZweDtcbn1cbi51aS1pY29uLW1haWwtY2xvc2VkIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTk2cHg7XG59XG4udWktaWNvbi1tYWlsLW9wZW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtOTZweDtcbn1cbi51aS1pY29uLXN1aXRjYXNlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC05NnB4O1xufVxuLnVpLWljb24tY29tbWVudCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtOTZweDtcbn1cbi51aS1pY29uLXBlcnNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtOTZweDtcbn1cbi51aS1pY29uLXByaW50IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC05NnB4O1xufVxuLnVpLWljb24tdHJhc2gge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTk2cHg7XG59XG4udWktaWNvbi1sb2NrZWQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTk2cHg7XG59XG4udWktaWNvbi11bmxvY2tlZCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtOTZweDtcbn1cbi51aS1pY29uLWJvb2ttYXJrIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC05NnB4O1xufVxuLnVpLWljb24tdGFnIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC05NnB4O1xufVxuLnVpLWljb24taG9tZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTExMnB4O1xufVxuLnVpLWljb24tZmxhZyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMTJweDtcbn1cbi51aS1pY29uLWNhbGVuZGFyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTExMnB4O1xufVxuLnVpLWljb24tY2FydCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xMTJweDtcbn1cbi51aS1pY29uLXBlbmNpbCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMTJweDtcbn1cbi51aS1pY29uLWNsb2NrIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTExMnB4O1xufVxuLnVpLWljb24tZGlzayB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xMTJweDtcbn1cbi51aS1pY29uLWNhbGN1bGF0b3Ige1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTExMnB4O1xufVxuLnVpLWljb24tem9vbWluIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xMTJweDtcbn1cbi51aS1pY29uLXpvb21vdXQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTExMnB4O1xufVxuLnVpLWljb24tc2VhcmNoIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMTJweDtcbn1cbi51aS1pY29uLXdyZW5jaCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTEycHg7XG59XG4udWktaWNvbi1nZWFyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xMTJweDtcbn1cbi51aS1pY29uLWhlYXJ0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xMTJweDtcbn1cbi51aS1pY29uLXN0YXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTExMnB4O1xufVxuLnVpLWljb24tbGluayB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtMTEycHg7XG59XG4udWktaWNvbi1jYW5jZWwge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMjhweDtcbn1cbi51aS1pY29uLXBsdXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTI4cHg7XG59XG4udWktaWNvbi1wbHVzdGhpY2sge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTI4cHg7XG59XG4udWktaWNvbi1taW51cyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xMjhweDtcbn1cbi51aS1pY29uLW1pbnVzdGhpY2sge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTI4cHg7XG59XG4udWktaWNvbi1jbG9zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xMjhweDtcbn1cbi51aS1pY29uLWNsb3NldGhpY2sge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTI4cHg7XG59XG4udWktaWNvbi1rZXkge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTEyOHB4O1xufVxuLnVpLWljb24tbGlnaHRidWxiIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xMjhweDtcbn1cbi51aS1pY29uLXNjaXNzb3JzIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xMjhweDtcbn1cbi51aS1pY29uLWNsaXBib2FyZCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTI4cHg7XG59XG4udWktaWNvbi1jb3B5IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xMjhweDtcbn1cbi51aS1pY29uLWNvbnRhY3Qge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTEyOHB4O1xufVxuLnVpLWljb24taW1hZ2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTEyOHB4O1xufVxuLnVpLWljb24tdmlkZW8ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTEyOHB4O1xufVxuLnVpLWljb24tc2NyaXB0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0xMjhweDtcbn1cbi51aS1pY29uLWFsZXJ0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTQ0cHg7XG59XG4udWktaWNvbi1pbmZvIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE0NHB4O1xufVxuLnVpLWljb24tbm90aWNlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE0NHB4O1xufVxuLnVpLWljb24taGVscCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNDRweDtcbn1cbi51aS1pY29uLWNoZWNrIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE0NHB4O1xufVxuLnVpLWljb24tYnVsbGV0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE0NHB4O1xufVxuLnVpLWljb24tcmFkaW8tb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTQ0cHg7XG59XG4udWktaWNvbi1yYWRpby1vZmYge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE0NHB4O1xufVxuLnVpLWljb24tcGluLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE0NHB4O1xufVxuLnVpLWljb24tcGluLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE0NHB4O1xufVxuLnVpLWljb24tcGxheSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE2MHB4O1xufVxuLnVpLWljb24tcGF1c2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTYwcHg7XG59XG4udWktaWNvbi1zZWVrLW5leHQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTYwcHg7XG59XG4udWktaWNvbi1zZWVrLXByZXYge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTYwcHg7XG59XG4udWktaWNvbi1zZWVrLWVuZCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNjBweDtcbn1cbi51aS1pY29uLXNlZWstc3RhcnQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTYwcHg7XG59XG4vKiB1aS1pY29uLXNlZWstZmlyc3QgaXMgZGVwcmVjYXRlZCwgdXNlIHVpLWljb24tc2Vlay1zdGFydCBpbnN0ZWFkICovXG4udWktaWNvbi1zZWVrLWZpcnN0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2MHB4O1xufVxuLnVpLWljb24tc3RvcCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNjBweDtcbn1cbi51aS1pY29uLWVqZWN0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNjBweDtcbn1cbi51aS1pY29uLXZvbHVtZS1vZmYge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE2MHB4O1xufVxuLnVpLWljb24tdm9sdW1lLW9uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNjBweDtcbn1cbi51aS1pY29uLXBvd2VyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTc2cHg7XG59XG4udWktaWNvbi1zaWduYWwtZGlhZyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNzZweDtcbn1cbi51aS1pY29uLXNpZ25hbCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNzZweDtcbn1cbi51aS1pY29uLWJhdHRlcnktMCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNzZweDtcbn1cbi51aS1pY29uLWJhdHRlcnktMSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNzZweDtcbn1cbi51aS1pY29uLWJhdHRlcnktMiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNzZweDtcbn1cbi51aS1pY29uLWJhdHRlcnktMyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNzZweDtcbn1cbi51aS1pY29uLWNpcmNsZS1wbHVzIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTkycHg7XG59XG4udWktaWNvbi1jaXJjbGUtbWludXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTkycHg7XG59XG4udWktaWNvbi1jaXJjbGUtY2xvc2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTkycHg7XG59XG4udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE5MnB4O1xufVxuLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTkycHg7XG59XG4udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZS1hcnJvdy1lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZS1hcnJvdy1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZS1hcnJvdy13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZS1hcnJvdy1uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZS16b29taW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTE5MnB4O1xufVxuLnVpLWljb24tY2lyY2xlLXpvb21vdXQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTE5MnB4O1xufVxuLnVpLWljb24tY2lyY2xlLWNoZWNrIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZXNtYWxsLXBsdXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMDhweDtcbn1cbi51aS1pY29uLWNpcmNsZXNtYWxsLW1pbnVzIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTIwOHB4O1xufVxuLnVpLWljb24tY2lyY2xlc21hbGwtY2xvc2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMjA4cHg7XG59XG4udWktaWNvbi1zcXVhcmVzbWFsbC1wbHVzIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIwOHB4O1xufVxuLnVpLWljb24tc3F1YXJlc21hbGwtbWludXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMjA4cHg7XG59XG4udWktaWNvbi1zcXVhcmVzbWFsbC1jbG9zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMDhweDtcbn1cbi51aS1pY29uLWdyaXAtZG90dGVkLXZlcnRpY2FsIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMjI0cHg7XG59XG4udWktaWNvbi1ncmlwLWRvdHRlZC1ob3Jpem9udGFsIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTIyNHB4O1xufVxuLnVpLWljb24tZ3JpcC1zb2xpZC12ZXJ0aWNhbCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMjRweDtcbn1cbi51aS1pY29uLWdyaXAtc29saWQtaG9yaXpvbnRhbCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0yMjRweDtcbn1cbi51aS1pY29uLWdyaXBzbWFsbC1kaWFnb25hbC1zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0yMjRweDtcbn1cbi51aS1pY29uLWdyaXAtZGlhZ29uYWwtc2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMjI0cHg7XG59XG4vKiBNaXNjIHZpc3VhbHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29ybmVyIHJhZGl1cyAqL1xuLnVpLWNvcm5lci1hbGwsXG4udWktY29ybmVyLXRvcCxcbi51aS1jb3JuZXItbGVmdCxcbi51aS1jb3JuZXItdGwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4udWktY29ybmVyLWFsbCxcbi51aS1jb3JuZXItdG9wLFxuLnVpLWNvcm5lci1yaWdodCxcbi51aS1jb3JuZXItdHIge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnVpLWNvcm5lci1hbGwsXG4udWktY29ybmVyLWJvdHRvbSxcbi51aS1jb3JuZXItbGVmdCxcbi51aS1jb3JuZXItYmwge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4udWktY29ybmVyLWFsbCxcbi51aS1jb3JuZXItYm90dG9tLFxuLnVpLWNvcm5lci1yaWdodCxcbi51aS1jb3JuZXItYnIge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLyogT3ZlcmxheXMgKi9cbi51aS13aWRnZXQtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6ICNhYWFhYWE7XG4gIG9wYWNpdHk6IC4zO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MzApO1xuICAvKiBzdXBwb3J0OiBJRTggKi9cbn1cbi51aS13aWRnZXQtc2hhZG93IHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDVweCAjNjY2NjY2O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDVweCAjNjY2NjY2O1xufVxuLypcblxu4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKWiOKVlyDilojilojilojilZcgICDilojilojilZfilojilojilojilojilojilojilojilojilZfilojilojilZcg4paI4paI4paI4paI4paI4paI4pWXICAgIOKWiOKWiOKVlyAgIOKWiOKWiOKVl+KWiOKWiOKVl1xu4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWR4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdICAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkVxu4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilojilojilZHilojilojilZTilojilojilZcg4paI4paI4pWRICAg4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRICAgICAgICAg4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRXG7ilZrilZDilZDilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVkeKVmuKWiOKWiOKVl+KWiOKWiOKVkSAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkSAgICAgICAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkVxu4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVkSDilZrilojilojilojilojilZEgICDilojilojilZEgICDilojilojilZHilZrilojilojilojilojilojilojilZcgICAg4pWa4paI4paI4paI4paI4paI4paI4pWU4pWd4paI4paI4pWRXG7ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWdICDilZrilZDilZDilZDilZ0gICDilZrilZDilZ0gICDilZrilZDilZ0g4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWdICAgICDilZrilZDilZDilZDilZDilZDilZ0g4pWa4pWQ4pWdXG5cbiAgSW1wb3J0IHRoaXMgZmlsZSBpbnRvIHlvdXIgTEVTUyBwcm9qZWN0IHRvIHVzZSBTZW1hbnRpYyBVSSB3aXRob3V0IGJ1aWxkIHRvb2xzXG4qL1xuLyogR2xvYmFsICovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBSZXNldFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSZXNldFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJlc2V0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSZXNldFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEJvcmRlci1Cb3ggKi9cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4vKiBpUGFkIElucHV0IFNoYWRvd3MgKi9cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAvKiBtb2JpbGUgZmlyZWZveCB0b28hICovXG59XG4vKiEgbm9ybWFsaXplLmNzcyB2Ny4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG59XG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5maWdjYXB0aW9uLFxuZmlndXJlLFxubWFpbiB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovXG59XG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctIGFuZCBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi9cbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG59XG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG59XG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyxcbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG4vKiBTY3JpcHRpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIaWRkZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU2l0ZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmh0bWwsXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbmJvZHkge1xuICBtYXJnaW46IDBweDtcbiAgcGFkZGluZzogMHB4O1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1pbi13aWR0aDogMzIwcHg7XG4gIGJhY2tncm91bmQ6ICNFOUVBRUQ7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBIZWFkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIG1hcmdpbjogY2FsYygycmVtIC0gIDAuMTQyODU3MTRlbSApIDBlbSAxcmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwZW07XG59XG5oMSB7XG4gIG1pbi1oZWlnaHQ6IDFyZW07XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cbmgyIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxcmVtO1xufVxuaDMge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG5oNCB7XG4gIGZvbnQtc2l6ZTogMS4wNzE0Mjg1N3JlbTtcbn1cbmg1IHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuaDE6Zmlyc3QtY2hpbGQsXG5oMjpmaXJzdC1jaGlsZCxcbmgzOmZpcnN0LWNoaWxkLFxuaDQ6Zmlyc3QtY2hpbGQsXG5oNTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbmgxOmxhc3QtY2hpbGQsXG5oMjpsYXN0LWNoaWxkLFxuaDM6bGFzdC1jaGlsZCxcbmg0Omxhc3QtY2hpbGQsXG5oNTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUZXh0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xucCB7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjcyODVlbTtcbn1cbnA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG5wOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmEge1xuICBjb2xvcjogIzJDNkE5RTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuYTpob3ZlciB7XG4gIGNvbG9yOiAjMzI3N2IyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2Nyb2xsYmFyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgSGlnaGxpZ2h0aW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSAqL1xuOjotd2Via2l0LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQ0UyRkY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuOjotbW96LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQ0UyRkY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NFMkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIEZvcm0gKi9cbnRleHRhcmVhOjotd2Via2l0LXNlbGVjdGlvbixcbmlucHV0Ojotd2Via2l0LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxMDAsIDEwMCwgMC40KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG50ZXh0YXJlYTo6LW1vei1zZWxlY3Rpb24sXG5pbnB1dDo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuNCk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxudGV4dGFyZWE6OnNlbGVjdGlvbixcbmlucHV0OjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuNCk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogRm9yY2UgU2ltcGxlIFNjcm9sbGJhcnMgKi9cbmJvZHkgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbn1cbmJvZHkgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuYm9keSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcbn1cbmJvZHkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp3aW5kb3ctaW5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuYm9keSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjgsIDEzNSwgMTM5LCAwLjgpO1xufVxuLyogSW52ZXJ0ZWQgVUkgKi9cbmJvZHkgLnVpLmludmVydGVkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbmJvZHkgLnVpLmludmVydGVkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG59XG5ib2R5IC51aS5pbnZlcnRlZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6d2luZG93LWluYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cbmJvZHkgLnVpLmludmVydGVkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBHbG9iYWwgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogRWxlbWVudHMgKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEJ1dHRvblxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEJ1dHRvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJ1dHRvbiAqL1xuLyogQnV0dG9uIGRlZmF1bHRzIHRvIHVzaW5nIHNhbWUgaGVpZ2h0IGFzIGlucHV0IGdsb2JhbGx5ICovXG4vKiBUZXh0ICovXG4vKiBJbnRlcm5hbCBTaGFkb3cgKi9cbi8qIEJveCBTaGFkb3cgKi9cbi8qIEljb24gKi9cbi8qIExvYWRlciAqL1xuLypcbkB3aWxsQ2hhbmdlOiBib3gtc2hhZG93LCB0cmFuc2Zvcm0sIG9wYWNpdHksIGNvbG9yLCBiYWNrZ3JvdW5kO1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXJlZCAqL1xuLyogRm9jdXNlZCAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIFByZXNzZWQgRG93biAqL1xuLyogQWN0aXZlICovXG4vKiBBY3RpdmUgKyBIb3ZlcmVkICovXG4vKiBMb2FkaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE9yICovXG4vKiBJY29uICovXG4vKiBMYWJlbGVkICovXG4vKiBoeXBvdGVudXNlIG9mIHRyaWFuZ2xlICovXG4vKiBMYWJlbGVkIEljb24gKi9cbi8qIEludmVydGVkICovXG4vKiBCYXNpYyAqL1xuLyogQmFzaWMgSG92ZXIgKi9cbi8qIEJhc2ljIEZvY3VzICovXG4vKiBCYXNpYyBEb3duICovXG4vKiBCYXNpYyBBY3RpdmUgKi9cbi8qIEJhc2ljIEludmVydGVkICovXG4vKiBCYXNpYyBHcm91cCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb2xvcnMgKi9cbi8qIENvbG9yZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBPcmRpbmFsaXR5ICovXG4vKiBDb21wYWN0ICovXG4vKiBBdHRhY2hlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogQW5pbWF0ZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQnV0dG9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQnV0dG9uICovXG4vKiBCdXR0b24gZGVmYXVsdHMgdG8gdXNpbmcgc2FtZSBoZWlnaHQgYXMgaW5wdXQgZ2xvYmFsbHkgKi9cbi8qIFRleHQgKi9cbi8qIEludGVybmFsIFNoYWRvdyAqL1xuLyogQm94IFNoYWRvdyAqL1xuLyogSWNvbiAqL1xuLyogTG9hZGVyICovXG4vKlxuQHdpbGxDaGFuZ2U6IGJveC1zaGFkb3csIHRyYW5zZm9ybSwgb3BhY2l0eSwgY29sb3IsIGJhY2tncm91bmQ7XG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlcmVkICovXG4vKiBGb2N1c2VkICovXG4vKiBEaXNhYmxlZCAqL1xuLyogUHJlc3NlZCBEb3duICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSArIEhvdmVyZWQgKi9cbi8qIExvYWRpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT3IgKi9cbi8qIEljb24gKi9cbi8qIExhYmVsZWQgKi9cbi8qIGh5cG90ZW51c2Ugb2YgdHJpYW5nbGUgKi9cbi8qIExhYmVsZWQgSWNvbiAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljICovXG4vKiBCYXNpYyBIb3ZlciAqL1xuLyogQmFzaWMgRm9jdXMgKi9cbi8qIEJhc2ljIERvd24gKi9cbi8qIEJhc2ljIEFjdGl2ZSAqL1xuLyogQmFzaWMgSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljIEdyb3VwICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbG9ycyAqL1xuLyogQ29sb3JlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIE9yZGluYWxpdHkgKi9cbi8qIENvbXBhY3QgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBBbmltYXRlZCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBCdXR0b25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDFlbTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJhY2tncm91bmQ6ICNFMEUxRTIgbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwZW0gMC4yNWVtIDBlbSAwZW07XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAxLjVlbSAwLjc4NTcxNDI5ZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldCwgMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2UsIGJhY2tncm91bmQgMC4xcyBlYXNlO1xuICB3aWxsLWNoYW5nZTogJyc7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NBQ0JDRDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50IGluc2V0LCAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi51aS5idXR0b246aG92ZXIgLmljb24ge1xuICBvcGFjaXR5OiAwLjg1O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NBQ0JDRDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogJycgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogJycgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b246Zm9jdXMgLmljb24ge1xuICBvcGFjaXR5OiAwLjg1O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRG93blxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b246YWN0aXZlLFxuLnVpLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0JBQkJCQztcbiAgYmFja2dyb3VuZC1pbWFnZTogJyc7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldCwgbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzBDMUMyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQgaW5zZXQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLmFjdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzBDMUMyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDMEMxQzI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNwZWNpZmljaXR5IGhhY2sgKi9cbi51aS5sb2FkaW5nLmxvYWRpbmcubG9hZGluZy5sb2FkaW5nLmxvYWRpbmcubG9hZGluZy5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyLCBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi51aS5sb2FkaW5nLmJ1dHRvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY0Mjg1NzE0ZW0gMGVtIDBlbSAtMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMS4yODU3MTQyOWVtO1xuICBoZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXI6IDAuMmVtIHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4udWkubG9hZGluZy5idXR0b246YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY0Mjg1NzE0ZW0gMGVtIDBlbSAtMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMS4yODU3MTQyOWVtO1xuICBoZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgYW5pbWF0aW9uOiBidXR0b24tc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjRkZGRkZGIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG4udWkubGFiZWxlZC5pY29uLmxvYWRpbmcuYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5Aa2V5ZnJhbWVzIGJ1dHRvbi1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi51aS5iYXNpYy5sb2FkaW5nLmJ1dHRvbjpub3QoLmludmVydGVkKTpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS5iYXNpYy5sb2FkaW5nLmJ1dHRvbjpub3QoLmludmVydGVkKTphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6ICM3Njc2NzY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9ucyAuZGlzYWJsZWQuYnV0dG9uLFxuLnVpLmRpc2FibGVkLmJ1dHRvbixcbi51aS5idXR0b246ZGlzYWJsZWQsXG4udWkuZGlzYWJsZWQuYnV0dG9uOmhvdmVyLFxuLnVpLmRpc2FibGVkLmFjdGl2ZS5idXR0b24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG9wYWNpdHk6IDAuNDUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyBHcm91cCBXaXRoIERpc2FibGVkICovXG4udWkuYmFzaWMuYnV0dG9ucyAudWkuZGlzYWJsZWQuYnV0dG9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuNSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQW5pbWF0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hbmltYXRlZC5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiAxO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAuY29udGVudCB7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uIC52aXNpYmxlLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1yaWdodDogMS41ZW07XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBIb3Jpem9udGFsICovXG4udWkuYW5pbWF0ZWQuYnV0dG9uIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zaXRpb246IHJpZ2h0IDAuM3MgZWFzZSAwcztcbn1cbi51aS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwJTtcbn1cbi51aS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTAwJTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbjpmb2N1cyAudmlzaWJsZS5jb250ZW50LFxuLnVpLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDIwMCU7XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC5oaWRkZW4uY29udGVudCxcbi51aS5hbmltYXRlZC5idXR0b246aG92ZXIgLmhpZGRlbi5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xufVxuLyogVmVydGljYWwgKi9cbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCxcbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogdG9wIDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0b3A6IC01MCU7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbn1cbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b246Zm9jdXMgLnZpc2libGUuY29udGVudCxcbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b246aG92ZXIgLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAlKTtcbiAgcmlnaHQ6IGF1dG87XG59XG4udWkudmVydGljYWwuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC5oaWRkZW4uY29udGVudCxcbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b246aG92ZXIgLmhpZGRlbi5jb250ZW50IHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLyogRmFkZSAqL1xuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIG9wYWNpdHk6IDA7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xufVxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuZmFkZS5hbmltYXRlZC5idXR0b246aG92ZXIgLnZpc2libGUuY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xufVxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC5oaWRkZW4uY29udGVudCxcbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAuaGlkZGVuLmNvbnRlbnQge1xuICBsZWZ0OiAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRkZGRkZGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vbmU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyogR3JvdXAgKi9cbi51aS5pbnZlcnRlZC5idXR0b25zIC5idXR0b24ge1xuICBtYXJnaW46IDBweCAwcHggMHB4IC0ycHg7XG59XG4udWkuaW52ZXJ0ZWQuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5pbnZlcnRlZC52ZXJ0aWNhbC5idXR0b25zIC5idXR0b24ge1xuICBtYXJnaW46IDBweCAwcHggLTJweCAwcHg7XG59XG4udWkuaW52ZXJ0ZWQudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyogU3RhdGVzICovXG4vKiBIb3ZlciAqL1xuLnVpLmludmVydGVkLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRkZGRkZGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKiBBY3RpdmUgLyBGb2N1cyAqL1xuLnVpLmludmVydGVkLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5idXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRkZGRkYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLnVpLmludmVydGVkLmJ1dHRvbi5hY3RpdmU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjRENERERFO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0RDRERERSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgTGFiZWxlZCBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbGVkLmJ1dHRvbjpub3QoLmljb24pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkubGFiZWxlZC5idXR0b24gPiAuYnV0dG9uIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4udWkubGFiZWxlZC5idXR0b24gPiAubGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDBweCAwcHggMHB4IC0xcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogJyc7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBUYWcgKi9cbi51aS5sYWJlbGVkLmJ1dHRvbiA+IC50YWcubGFiZWw6YmVmb3JlIHtcbiAgd2lkdGg6IDEuODVlbTtcbiAgaGVpZ2h0OiAxLjg1ZW07XG59XG4vKiBSaWdodCAqL1xuLnVpLmxhYmVsZWQuYnV0dG9uOm5vdChbY2xhc3MqPVwibGVmdCBsYWJlbGVkXCJdKSA+IC5idXR0b24ge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xufVxuLnVpLmxhYmVsZWQuYnV0dG9uOm5vdChbY2xhc3MqPVwibGVmdCBsYWJlbGVkXCJdKSA+IC5sYWJlbCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xufVxuLyogTGVmdCBTaWRlICovXG4udWlbY2xhc3MqPVwibGVmdCBsYWJlbGVkXCJdLmJ1dHRvbiA+IC5idXR0b24ge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0uYnV0dG9uID4gLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFNvY2lhbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmFjZWJvb2sgKi9cbi51aS5mYWNlYm9vay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM0I1OTk4O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmZhY2Vib29rLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDRkOGE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5mYWNlYm9vay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJkNDM3MztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogVHdpdHRlciAqL1xuLnVpLnR3aXR0ZXIuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1QUNFRTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS50d2l0dGVyLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNWEyZjQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS50d2l0dGVyLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjc5NWU5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBHb29nbGUgUGx1cyAqL1xuLnVpLmdvb2dsZS5wbHVzLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERDRCMzk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuZ29vZ2xlLnBsdXMuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMzIxYztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdvb2dsZS5wbHVzLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzIzMzIxO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBMaW5rZWQgSW4gKi9cbi51aS5saW5rZWRpbi5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUY4OEJFO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubGlua2VkaW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE0N2JhZjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmxpbmtlZGluLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg2OTkyO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBZb3VUdWJlICovXG4udWkueW91dHViZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkYwMDAwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnlvdXR1YmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2MDAwMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnlvdXR1YmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzAwMDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEluc3RhZ3JhbSAqL1xuLnVpLmluc3RhZ3JhbS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDk3NjlDO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmluc3RhZ3JhbS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q2OThlO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW5zdGFncmFtLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzk1Yzc5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBQaW50ZXJlc3QgKi9cbi51aS5waW50ZXJlc3QuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0JEMDgxQztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5waW50ZXJlc3QuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FjMDAxMztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBpbnRlcmVzdC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhjMDYxNTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogVksgKi9cbi51aS52ay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNEQ3MTk4O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkudmsuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQxNjQ4YTtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkudmsuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzU4NzY7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJ1dHRvbiA+IC5pY29uOm5vdCguYnV0dG9uKSB7XG4gIGhlaWdodDogMC44NTcxNDI4NmVtO1xuICBvcGFjaXR5OiAwLjg7XG4gIG1hcmdpbjogMGVtIDAuNDI4NTcxNDNlbSAwZW0gLTAuMjE0Mjg1NzFlbTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG4gIHZlcnRpY2FsLWFsaWduOiAnJztcbiAgY29sb3I6ICcnO1xufVxuLnVpLmJ1dHRvbjpub3QoLmljb24pID4gLmljb246bm90KC5idXR0b24pOm5vdCguZHJvcGRvd24pIHtcbiAgbWFyZ2luOiAwZW0gMC40Mjg1NzE0M2VtIDBlbSAtMC4yMTQyODU3MWVtO1xufVxuLnVpLmJ1dHRvbjpub3QoLmljb24pID4gLnJpZ2h0Lmljb246bm90KC5idXR0b24pOm5vdCguZHJvcGRvd24pIHtcbiAgbWFyZ2luOiAwZW0gLTAuMjE0Mjg1NzFlbSAwZW0gMC40Mjg1NzE0M2VtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0uYnV0dG9ucyxcbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0uYnV0dG9uIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMC4yNWVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uYnV0dG9ucyxcbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLmJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjI1ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tcGFjdC5idXR0b25zIC5idXR0b24sXG4udWkuY29tcGFjdC5idXR0b24ge1xuICBwYWRkaW5nOiAwLjU4OTI4NTcxZW0gMS4xMjVlbSAwLjU4OTI4NTcxZW07XG59XG4udWkuY29tcGFjdC5pY29uLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5jb21wYWN0Lmljb24uYnV0dG9uIHtcbiAgcGFkZGluZzogMC41ODkyODU3MWVtIDAuNTg5Mjg1NzFlbSAwLjU4OTI4NTcxZW07XG59XG4udWkuY29tcGFjdC5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmNvbXBhY3QubGFiZWxlZC5pY29uLmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuNTg5Mjg1NzFlbSAzLjY5NjQyODU3ZW0gMC41ODkyODU3MWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5idXR0b25zIC5idXR0b24sXG4udWkubWluaS5idXR0b25zIC5vcixcbi51aS5taW5pLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS50aW55LmJ1dHRvbnMgLm9yLFxuLnVpLnRpbnkuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5zbWFsbC5idXR0b25zIC5vcixcbi51aS5zbWFsbC5idXR0b24ge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJ1dHRvbnMgLm9yLFxuLnVpLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5idXR0b25zIC5idXR0b24sXG4udWkubGFyZ2UuYnV0dG9ucyAub3IsXG4udWkubGFyZ2UuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5idXR0b25zIC5idXR0b24sXG4udWkuYmlnLmJ1dHRvbnMgLm9yLFxuLnVpLmJpZy5idXR0b24ge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5idXR0b25zIC5idXR0b24sXG4udWkuaHVnZS5idXR0b25zIC5vcixcbi51aS5odWdlLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5tYXNzaXZlLmJ1dHRvbnMgLm9yLFxuLnVpLm1hc3NpdmUuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEljb24gT25seVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pY29uLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pY29uLmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAwLjc4NTcxNDI5ZW0gMC43ODU3MTQyOWVtO1xufVxuLnVpLmljb24uYnV0dG9ucyAuYnV0dG9uID4gLmljb24sXG4udWkuaWNvbi5idXR0b24gPiAuaWNvbiB7XG4gIG9wYWNpdHk6IDAuOTtcbiAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNikgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMge1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjRjhGOEY4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNSkgaW5zZXQsIDBweCAxcHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogJycgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmFjdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLyogVmVydGljYWwgKi9cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjM1KSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQgaW5zZXQ7XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTUpIGluc2V0LCAwcHggMXB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldCBpbnNldDtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogJycgIWltcG9ydGFudDtcbn1cbi8qIFN0YW5kYXJkIEJhc2ljIEludmVydGVkICovXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRjlGQUZCICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmZmZmYgaW5zZXQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uOmZvY3VzIHtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmZmZmYgaW5zZXQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgaW5zZXQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmludmVydGVkLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgaW5zZXQ7XG59XG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5pbnZlcnRlZC5hY3RpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmZmZmYgaW5zZXQgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljIEdyb3VwICovXG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmJhc2ljLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLmJhc2ljLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmJhc2ljLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgTGFiZWxlZCBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b24sXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiA0LjA3MTQyODU3ZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMS41ZW0gIWltcG9ydGFudDtcbn1cbi8qIExlZnQgTGFiZWxlZCAqL1xuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zID4gLmJ1dHRvbiA+IC5pY29uLFxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b24gPiAuaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMGVtO1xuICB3aWR0aDogMi41NzE0Mjg1N2VtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogJyc7XG4gIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggdHJhbnNwYXJlbnQgaW5zZXQ7XG59XG4vKiBMZWZ0IExhYmVsZWQgKi9cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbixcbi51aS5sYWJlbGVkLmljb24uYnV0dG9uID4gLmljb24ge1xuICB0b3A6IDBlbTtcbiAgbGVmdDogMGVtO1xufVxuLyogUmlnaHQgTGFiZWxlZCAqL1xuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24ge1xuICBwYWRkaW5nLXJpZ2h0OiA0LjA3MTQyODU3ZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbSAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24gPiAuaWNvbiB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICBib3gtc2hhZG93OiAxcHggMHB4IDBweCAwcHggdHJhbnNwYXJlbnQgaW5zZXQ7XG59XG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgPiAuYnV0dG9uID4gLmljb246YmVmb3JlLFxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b24gPiAuaWNvbjpiZWZvcmUsXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgPiAuYnV0dG9uID4gLmljb246YWZ0ZXIsXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uID4gLmljb24ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCA+IC5pY29uIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQgPiAuaWNvbiB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkID4gLmljb24ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4udWkudmVydGljYWwubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkID4gLmljb24ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4vKiBGbHVpZCBMYWJlbGVkICovXG4udWkuZmx1aWRbY2xhc3MqPVwibGVmdCBsYWJlbGVkXCJdLmljb24uYnV0dG9uLFxuLnVpLmZsdWlkW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24ge1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNWVtICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFRvZ2dsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvZ2dsZSAoTW9kaWZpZXMgYWN0aXZlIHN0YXRlIHRvIGdpdmUgYWZmb3JkYW5jZXMpICovXG4udWkudG9nZ2xlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYnV0dG9ucyAuYnV0dG9uLnRvZ2dsZS5hY3RpdmUsXG4udWkuYnV0dG9uLnRvZ2dsZS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uLnRvZ2dsZS5hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENpcmN1bGFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNpcmN1bGFyLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDEwZW07XG59XG4udWkuY2lyY3VsYXIuYnV0dG9uID4gLmljb24ge1xuICB3aWR0aDogMWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIE9yIEJ1dHRvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b25zIC5vciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDAuM2VtO1xuICBoZWlnaHQ6IDIuNTcxNDI4NTdlbTtcbiAgei1pbmRleDogMztcbn1cbi51aS5idXR0b25zIC5vcjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBjb250ZW50OiAnb3InO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuODkyODU3MTRlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjg5Mjg1NzE0ZW07XG4gIHdpZHRoOiAxLjc4NTcxNDI5ZW07XG4gIGhlaWdodDogMS43ODU3MTQyOWVtO1xuICBsaW5lLWhlaWdodDogMS43ODU3MTQyOWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQgaW5zZXQ7XG59XG4udWkuYnV0dG9ucyAub3JbZGF0YS10ZXh0XTpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKGRhdGEtdGV4dCk7XG59XG4vKiBGbHVpZCBPciAqL1xuLnVpLmZsdWlkLmJ1dHRvbnMgLm9yIHtcbiAgd2lkdGg6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLmZsdWlkLmJ1dHRvbnMgLm9yOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaW5ndWxhciAqL1xuLnVpLmF0dGFjaGVkLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpICFpbXBvcnRhbnQ7XG59XG4vKiBUb3AgLyBCb3R0b20gKi9cbi51aS5hdHRhY2hlZC50b3AuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWkuYXR0YWNoZWQuYm90dG9tLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xufVxuLyogTGVmdCAvIFJpZ2h0ICovXG4udWkubGVmdC5hdHRhY2hlZC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZy1yaWdodDogMC43NWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBlbSAwZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aS5yaWdodC5hdHRhY2hlZC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMC43NWVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi8qIFBsdXJhbCAqL1xuLnVpLmF0dGFjaGVkLmJ1dHRvbnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgei1pbmRleDogMjtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbn1cbi51aS5hdHRhY2hlZC5idXR0b25zIC5idXR0b24ge1xuICBtYXJnaW46IDBlbTtcbn1cbi51aS5hdHRhY2hlZC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuYXR0YWNoZWQuYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4vKiBUb3AgLyBCb3R0b20gKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0uYnV0dG9ucyB7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLmJ1dHRvbnMge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xufVxuLyogTGVmdCAvIFJpZ2h0ICovXG4udWlbY2xhc3MqPVwibGVmdCBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW07XG59XG4udWlbY2xhc3MqPVwibGVmdCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYXR0YWNoZWRcIl0uYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMGVtIDBlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5idXR0b25zLFxuLnVpLmZsdWlkLmJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZsdWlkLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLnR3by5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudHdvLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS50aHJlZS5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudGhyZWUuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMzMuMzMzJTtcbn1cbi51aS5mb3VyLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5mb3VyLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS5maXZlLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5maXZlLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5zaXguYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnNpeC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAxNi42NjYlO1xufVxuLnVpLnNldmVuLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5zZXZlbi5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAxNC4yODUlO1xufVxuLnVpLmVpZ2h0LmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5laWdodC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAxMi41MDAlO1xufVxuLnVpLm5pbmUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLm5pbmUuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMTEuMTElO1xufVxuLnVpLnRlbi5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudGVuLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aS5lbGV2ZW4uYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmVsZXZlbi5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiA5LjA5JTtcbn1cbi51aS50d2VsdmUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnR3ZWx2ZS5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiA4LjMzMzMlO1xufVxuLyogRmx1aWQgVmVydGljYWwgQnV0dG9ucyAqL1xuLnVpLmZsdWlkLnZlcnRpY2FsLmJ1dHRvbnMsXG4udWkuZmx1aWQudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogYXV0bztcbn1cbi51aS50d28udmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDUwJTtcbn1cbi51aS50aHJlZS52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMzMuMzMzJTtcbn1cbi51aS5mb3VyLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAyNSU7XG59XG4udWkuZml2ZS52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMjAlO1xufVxuLnVpLnNpeC52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTYuNjY2JTtcbn1cbi51aS5zZXZlbi52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTQuMjg1JTtcbn1cbi51aS5laWdodC52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTIuNTAwJTtcbn1cbi51aS5uaW5lLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMS4xMSU7XG59XG4udWkudGVuLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMCU7XG59XG4udWkuZWxldmVuLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiA5LjA5JTtcbn1cbi51aS50d2VsdmUudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDguMzMzMyU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIEJsYWNrIC0tLSovXG4udWkuYmxhY2suYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJsYWNrLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5ibGFjay5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5ibGFjay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmxhY2suYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI3MjkyYTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5ibGFjay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYzMDMyO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5ibGFjay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0MzYzNztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJsYWNrLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmxhY2suYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuYmxhY2suYWN0aXZlLmJ1dHRvbixcbi51aS5ibGFjay5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmMGYxMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuYmxhY2suYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxQjFDMUQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYmxhY2suYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyNzI5MmEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuYmxhY2suYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyZjMwMzIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmJsYWNrLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzBmMGYxMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzM0MzYzNyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYmxhY2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMzQzNjM3IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzQzNjM3ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5ibGFjay5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0Q0RDRENSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzAwMDAwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMwMDAwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMDAwMDAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzAwMDAwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyotLS0gR3JleSAtLS0qL1xuLnVpLmdyZXkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmdyZXkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLmdyZXkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuZ3JleS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuZ3JleS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODM4MzgzO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JleS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuZ3JleS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE4YThhO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JleS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmdyZXkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MDkwOTA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ncmV5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuZ3JleS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5ncmV5LmFjdGl2ZS5idXR0b24sXG4udWkuZ3JleS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY5Njk2OTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5ncmV5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNzY3Njc2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JleS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuZ3JleS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzgzODM4MyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmdyZXkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4YThhOGEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuZ3JleS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM2OTY5NjkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5MDkwOTAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuZ3JleS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5MDkwOTAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5MDkwOTAgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmdyZXkuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRDRENEQ1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQwZDI7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdjOWNiO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZkMGQyO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM1O1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2NmZDBkMiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjN2M5Y2IgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQ0REREUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjY2ZkMGQyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2MyYzRjNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyotLS0gQnJvd24gLS0tKi9cbi51aS5icm93bi5idXR0b25zIC5idXR0b24sXG4udWkuYnJvd24uYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLmJyb3duLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5icm93bi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc1YjMzO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJyb3duLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MDUzMmI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5icm93bi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJyb3duLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODA1MDMxO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYnJvd24uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5icm93bi5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5icm93bi5hY3RpdmUuYnV0dG9uLFxuLnVpLmJyb3duLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk1YTMxO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5icm93bi5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0E1NjczRiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5icm93bi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzk3NWIzMyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5icm93bi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzkwNTMyYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuYnJvd24uYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOTk1YTMxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODA1MDMxICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5icm93bi5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4MDUwMzEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MDUwMzEgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmJyb3duLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRDY3QzFDIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDY3QzFDO1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M4NmYxMTtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MxNjgwODtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M2ZjBkO1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOTYyMTY7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjYzg2ZjExIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDY3QzFDICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2MxNjgwOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q2N0MxQyAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjYzZmMGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNENjdDMUMgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjYTk2MjE2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDY3QzFDICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCbHVlIC0tLSovXG4udWkuYmx1ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmx1ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM2QTlFO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkuYmx1ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5ibHVlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTVkOGY7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5ibHVlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYTU1ODc7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmx1ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxNGY3NjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJsdWUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLmJsdWUuYWN0aXZlLmJ1dHRvbixcbi51aS5ibHVlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWY1ZDkyO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmJsdWUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyQzZBOUUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5ibHVlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMjE1ZDhmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE1ZDhmICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmx1ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuYmx1ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzFhNTU4NyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxNWQ4ZiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5ibHVlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzFmNWQ5MiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxNGY3NiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5ibHVlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzIxNGY3NiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxNGY3NiAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMuYmx1ZS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM1MzkxQzUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1MzkxQzU7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTg1YzU7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzA3ZWJmO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc4NmM4O1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2E3N2FiO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzNhODVjNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUzOTFDNSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMzMDdlYmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1MzkxQzUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMzc4NmM4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTM5MUM1ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzNhNzdhYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUzOTFDNSAhaW1wb3J0YW50O1xufVxuLyotLS0gR3JlZW4gLS0tKi9cbi51aS5ncmVlbi5idXR0b25zIC5idXR0b24sXG4udWkuZ3JlZW4uYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLmdyZWVuLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5ncmVlbi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTZhYjM5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmdyZWVuLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZWE0MzI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ncmVlbi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmdyZWVuLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk4ZjM1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JlZW4uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5ncmVlbi5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5ncmVlbi5hY3RpdmUuYnV0dG9uLFxuLnVpLmdyZWVuLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTNhZTM4O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5ncmVlbi5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzIxQkE0NSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5ncmVlbi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzE2YWIzOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE2YWIzOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5ncmVlbi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzBlYTQzMiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE2YWIzOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuZ3JlZW4uYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTNhZTM4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTk4ZjM1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5ncmVlbi5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxOThmMzUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxOThmMzUgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmdyZWVuLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMkVDQzQwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkVDQzQwO1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyYmUzNDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5YjgyYjtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWZjMjMxO1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNWEyMzM7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMjJiZTM0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzE5YjgyYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJFQ0M0MCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMxZmMyMzEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyRUNDNDAgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMjVhMjMzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPcmFuZ2UgLS0tKi9cbi51aS5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLm9yYW5nZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjI3MTFDO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkub3JhbmdlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLm9yYW5nZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkub3JhbmdlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMjYyMDI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLm9yYW5nZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTU1YjAwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkub3JhbmdlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2Y1OTBjO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub3JhbmdlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkub3JhbmdlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLm9yYW5nZS5hY3RpdmUuYnV0dG9uLFxuLnVpLm9yYW5nZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1NjEwMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0YyNzExQyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZjI2MjAyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZjI2MjAyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlNTViMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmMjYyMDIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5vcmFuZ2UuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZjU2MTAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjY2Y1OTBjICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2NmNTkwYyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2NmNTkwYyAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMub3JhbmdlLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRjg1MUIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjg1MUI7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzcwMTtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjE3MDAwO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzcwMTtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNzZiMDA7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY3NzAxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4NTFCICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2YxNzAwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGODUxQiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjc3MDEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjg1MUIgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZTc2YjAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4NTFCICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQaW5rIC0tLSovXG4udWkucGluay5idXR0b25zIC5idXR0b24sXG4udWkucGluay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkucGluay5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5waW5rLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNjFhOGQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5waW5rLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMTBmODU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5waW5rLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkucGluay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M3MWY3ZTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBpbmsuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5waW5rLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnBpbmsuYWN0aXZlLmJ1dHRvbixcbi51aS5waW5rLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWExNThkO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnBpbmsuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNFMDM5OTcgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5waW5rLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZTYxYThkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucGluay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMucGluay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2UxMGY4NSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5waW5rLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2VhMTU4ZCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2M3MWY3ZSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5waW5rLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2M3MWY3ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2M3MWY3ZSAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucGluay5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRjhFREYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjhFREY7XG59XG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjc0ZDg7XG59XG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2NWQzO1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3NGQ4O1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1YmQxO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNzRkOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjY1ZDMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjhFREYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY3NGQ4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4RURGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNWJkMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuLyotLS0gVmlvbGV0IC0tLSovXG4udWkudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS52aW9sZXQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnZpb2xldC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnZpb2xldC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTgyOWJiO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS52aW9sZXQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRmMjBiNTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUwMmFhMTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnZpb2xldC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnZpb2xldC5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS52aW9sZXQuYWN0aXZlLmJ1dHRvbixcbi51aS52aW9sZXQuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NjI2YmY7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy52aW9sZXQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM2NDM1QzkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnZpb2xldC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzU4MjliYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNGYyMGI1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMudmlvbGV0LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzU2MjZiZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUwMmFhMSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM1MDJhYTEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1MDJhYTEgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnZpb2xldC5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjQTI5MUZCIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTI5MUZCO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YTczZmY7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdkNjRmZjtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YTczZmY7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzg2MGY5O1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzhhNzNmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EyOTFGQiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM3ZDY0ZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjOGE3M2ZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTI5MUZCICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzc4NjBmOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EyOTFGQiAhaW1wb3J0YW50O1xufVxuLyotLS0gUHVycGxlIC0tLSovXG4udWkucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5wdXJwbGUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDODtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnB1cnBsZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnB1cnBsZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTYyN2JhO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5wdXJwbGUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhmMWViNDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnB1cnBsZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnB1cnBsZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgyMjk5ZjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnB1cnBsZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnB1cnBsZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5wdXJwbGUuYWN0aXZlLmJ1dHRvbixcbi51aS5wdXJwbGUuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzI0YmU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBMzMzQzggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzk2MjdiYSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOGYxZWI0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMucHVycGxlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzk3MjRiZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgyMjk5ZiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4MjI5OWYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MjI5OWYgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnB1cnBsZS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjREM3M0ZGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREM3M0ZGO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNjVhZmY7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QyNGFmZjtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNjVhZmY7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2Y0MGZmO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2Q2NWFmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNkMjRhZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZDY1YWZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREM3M0ZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2NmNDBmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuLyotLS0gUmVkIC0tLSovXG4udWkucmVkLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5yZWQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RCMjgyODtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnJlZC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5yZWQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnJlZC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDAxOTE5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucmVkLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5yZWQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhMTAxMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnJlZC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnJlZC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IyMWUxZTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnJlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnJlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5yZWQuYWN0aXZlLmJ1dHRvbixcbi51aS5yZWQuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNDE1MTU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucmVkLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5yZWQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNEQjI4MjggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnJlZC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2QwMTkxOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2QwMTkxOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMucmVkLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjY2ExMDEwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucmVkLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMucmVkLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2Q0MTUxNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2IyMWUxZSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnJlZC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNiMjFlMWUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNiMjFlMWUgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnJlZC5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRkY2OTVFIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY2OTVFO1xufVxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUxNDQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNDMzNTtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUxNDQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYzOTJiO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNTE0NCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjQzMzUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjY5NUUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY1MTQ0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY2OTVFICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmMzkyYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuLyotLS0gVGVhbCAtLS0qL1xuLnVpLnRlYWwuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnRlYWwuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnRlYWwuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkudGVhbC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkudGVhbC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Yzk1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGVhbC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkudGVhbC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4Yzg2O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGVhbC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnRlYWwuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDgyN2M7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS50ZWFsLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkudGVhbC5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS50ZWFsLmFjdGl2ZS5idXR0b24sXG4udWkudGVhbC5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWM5NTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy50ZWFsLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy50ZWFsLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDBCNUFEIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMudGVhbC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzAwOWM5NSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnRlYWwuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDhjODYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy50ZWFsLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMudGVhbC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDljOTUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDgyN2MgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMudGVhbC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDgyN2MgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDgyN2MgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnRlYWwuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNkRGRkZGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNkRGRkZGO1xufVxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NGZmZmY7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDRmZmZmO1xufVxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTRmZmZmO1xufVxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FmZmZmO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzU0ZmZmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM0NGZmZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2REZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNTRmZmZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNkRGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzNhZmZmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuLyotLS0gT2xpdmUgLS0tKi9cbi51aS5vbGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkub2xpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxODtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLm9saXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5vbGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdiZDBkO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLm9saXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhMGI2MDU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5vbGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLm9saXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGQ5ZTEzO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub2xpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5vbGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5vbGl2ZS5hY3RpdmUuYnV0dG9uLFxuLnVpLm9saXZlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWFjMTA5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5vbGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0I1Q0MxOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5vbGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2E3YmQwZCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5vbGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2EwYjYwNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMub2xpdmUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjYWFjMTA5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOGQ5ZTEzICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4ZDllMTMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4ZDllMTMgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLm9saXZlLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRDlFNzc4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDlFNzc4O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhlYTVjO1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGFlZjQ3O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWVkNTk7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NkZGY0ZDtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNkOGVhNWMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEOUU3NzggIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZGFlZjQ3IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2RhZWQ1OSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q5RTc3OCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjZGRmNGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEOUU3NzggIWltcG9ydGFudDtcbn1cbi8qLS0tIFllbGxvdyAtLS0qL1xuLnVpLnllbGxvdy5idXR0b25zIC5idXR0b24sXG4udWkueWVsbG93LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS55ZWxsb3cuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS55ZWxsb3cuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhYWUwMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnllbGxvdy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkueWVsbG93LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWEzMDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS55ZWxsb3cuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZDk5MDM7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkueWVsbG93LmFjdGl2ZS5idXR0b24sXG4udWkueWVsbG93LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFhZTAwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnllbGxvdy5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRkJCRDA4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlYWFlMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnllbGxvdy5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2RhYTMwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2VhYWUwMCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnllbGxvdy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnllbGxvdy5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlYWFlMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjZDk5MDMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjY2Q5OTAzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjY2Q5OTAzICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy55ZWxsb3cuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0ZGRTIxRiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTIxRjtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmRmMDU7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZDUwMDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmRmMDU7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJjZDAwO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZGYwNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmNWQ1MDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmZkZjA1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZFMjFGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ViY2QwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUHJpbWFyeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gU3RhbmRhcmQgLS0tKi9cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5wcmltYXJ5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBOUU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5wcmltYXJ5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnByaW1hcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxNWQ4ZjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnByaW1hcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhNTU4NztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5wcmltYXJ5LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE0Zjc2O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucHJpbWFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucHJpbWFyeS5hY3RpdmUuYnV0dG9uLFxuLnVpLnByaW1hcnkuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZjVkOTI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMucHJpbWFyeS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzJDNkE5RSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyMTVkOGYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMTVkOGYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMWE1NTg3IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE1ZDhmICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnByaW1hcnkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMWY1ZDkyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE0Zjc2ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMjE0Zjc2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE0Zjc2ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzUzOTFDNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUzOTFDNTtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhODVjNTtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDdlYmY7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnByaW1hcnkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzg2Yzg7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTc3YWI7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjM2E4NWM1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTM5MUM1ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzMwN2ViZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUzOTFDNSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMzNzg2YzggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1MzkxQzUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjM2E3N2FiIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTM5MUM1ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNlY29uZGFyeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgKi9cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnNlY29uZGFyeS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkuc2Vjb25kYXJ5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzI5MmE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnNlY29uZGFyeS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUzMDMyO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzNjM3O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnNlY29uZGFyeS5hY3RpdmUuYnV0dG9uLFxuLnVpLnNlY29uZGFyeS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI3MjkyYTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzFCMUMxRCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzFCMUMxRCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMjcyOTJhIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjcyOTJhICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyZTMwMzIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5zZWNvbmRhcnkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMjcyOTJhIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzQzNjM3ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzM0MzYzNyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzM0MzYzNyAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucHJpbWFyeS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNTQ1NDU0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTQ1NDU0O1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MTYxNjE7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4Njg2ODtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MTYxNjE7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmU2ZTZlO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzYxNjE2MSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM2ODY4NjggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNjE2MTYxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTQ1NDU0ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzZlNmU2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS1cbiAgICBQb3NpdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTdGFuZGFyZCAqL1xuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5wb3NpdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFCQTQ1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkucG9zaXRpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNmFiMzk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucG9zaXRpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBlYTQzMjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkucG9zaXRpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOThmMzU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wb3NpdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnBvc2l0aXZlLmFjdGl2ZS5idXR0b24sXG4udWkucG9zaXRpdmUuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxM2FlMzg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMjFCQTQ1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTZhYjM5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMGVhNDMyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5wb3NpdGl2ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxM2FlMzggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxOThmMzUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzE5OGYzNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE5OGYzNSAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucHJpbWFyeS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5lZ2F0aXZlXG4tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4Mjg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5uZWdhdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkubmVnYXRpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwMTkxOTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5uZWdhdGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ExMDEwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5uZWdhdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IyMWUxZTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkubmVnYXRpdmUuYWN0aXZlLmJ1dHRvbixcbi51aS5uZWdhdGl2ZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q0MTUxNTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNEQjI4MjggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkMDE5MTkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNjYTEwMTAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLm5lZ2F0aXZlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2Q0MTUxNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2IyMWUxZSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjYjIxZTFlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYjIxZTFlICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyb3Vwc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZvbnQtc2l6ZTogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbjogMGVtIDAuMjVlbSAwZW0gMGVtO1xufVxuLnVpLmJ1dHRvbnM6bm90KC5iYXNpYyk6bm90KC5pbnZlcnRlZCkge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogQ2xlYXJmaXggKi9cbi51aS5idXR0b25zOmFmdGVyIHtcbiAgY29udGVudDogXCIuXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBTdGFuZGFyZCBHcm91cCAqL1xuLnVpLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBtYXJnaW46IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBtYXJnaW46IDBweCAwcHggMHB4IDBweDtcbn1cbi51aS5idXR0b25zID4gLnVpLmJ1dHRvbjpub3QoLmJhc2ljKTpub3QoLmludmVydGVkKSxcbi51aS5idXR0b25zOm5vdCguYmFzaWMpOm5vdCguaW52ZXJ0ZWQpID4gLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldCwgMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4udWkuYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4vKiBWZXJ0aWNhbCAgU3R5bGUgKi9cbi51aS52ZXJ0aWNhbC5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4udWkudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4udWkudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYmx1ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmJsdWUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDQsIDEwNiwgMTU4LCAwLjEpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMWY1ZDkyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE0Zjc2ICFpbXBvcnRhbnQ7XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBDb250YWluZXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250YWluZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaW5pbXVtIEd1dHRlciBpcyB1c2VkIHRvIGRldGVybWluZSAgdGhlIG1heGltdW0gY29udGFpbmVyIHdpZHRoIGZvciBhIGdpdmVuIGRldmljZSAqL1xuLyogRGV2aWNlcyAqL1xuLyogQ291cGxpbmcgKEFkZCBOZWdhdGl2ZSBNYXJnaW4gdG8gY29udGFpbmVyIHNpemUpICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250YWluZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaW5pbXVtIEd1dHRlciBpcyB1c2VkIHRvIGRldGVybWluZSAgdGhlIG1heGltdW0gY29udGFpbmVyIHdpZHRoIGZvciBhIGdpdmVuIGRldmljZSAqL1xuLyogRGV2aWNlcyAqL1xuLyogQ291cGxpbmcgKEFkZCBOZWdhdGl2ZSBNYXJnaW4gdG8gY29udGFpbmVyIHNpemUpICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250YWluZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBBbGwgU2l6ZXMgKi9cbi51aS5jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4vKiBNb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMC41ZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS52ZXJ5LnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFRhYmxldCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAgMC41cmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAgMC41cmVtICkgIWltcG9ydGFudDtcbiAgfVxuICAudWkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoIGNhbGMoMTAwJSAtICAwLjVyZW0gKSAgKyAgM3JlbSApICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnZlcnkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoIGNhbGMoMTAwJSAtICAwLjVyZW0gKSAgKyAgNXJlbSApICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFNtYWxsIE1vbml0b3IgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnVpLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICAwLjVyZW0gICogMiAtICAxN3B4ICk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAgMC41cmVtICAqIDIpICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKCBjYWxjKDEwMCUgLSAgMC41cmVtICAqIDIgLSAgMTdweCApICArICAzcmVtICkgIWltcG9ydGFudDtcbiAgfVxuICAudWkudmVyeS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyggY2FsYygxMDAlIC0gIDAuNXJlbSAgKiAyIC0gIDE3cHggKSAgKyAgNXJlbSApICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIExhcmdlIE1vbml0b3IgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAgMC41cmVtICAqIDIgLSAgMTdweCApO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gIDAuNXJlbSAgKiAyKSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyggY2FsYygxMDAlIC0gIDAuNXJlbSAgKiAyIC0gIDE3cHggKSAgKyAgM3JlbSApICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnZlcnkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoIGNhbGMoMTAwJSAtICAwLjVyZW0gICogMiAtICAxN3B4ICkgICsgIDVyZW0gKSAhaW1wb3J0YW50O1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGV4dCBDb250YWluZXIgKi9cbi51aS50ZXh0LmNvbnRhaW5lciB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIG1heC13aWR0aDogNzAwcHggIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi51aS50ZXh0LmNvbnRhaW5lciB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi8qIEZsdWlkICovXG4udWkuZmx1aWQuY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLmNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLmNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnVpLmp1c3RpZmllZC5jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICBoeXBoZW5zOiBhdXRvO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIERpdmlkZXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEaXZpZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSG9yaXpvbnRhbCAvIFZlcnRpY2FsICovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2VjdGlvbiAqL1xuLyogU2l6ZXMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGl2aWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEhvcml6b250YWwgLyBWZXJ0aWNhbCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNlY3Rpb24gKi9cbi8qIFNpemVzICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERpdmlkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZGl2aWRlciB7XG4gIG1hcmdpbjogMXJlbSAwcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgaGVpZ2h0OiAwZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZXI6bm90KC52ZXJ0aWNhbCk6bm90KC5ob3Jpem9udGFsKSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQWxsb3cgZGl2aWRlciBiZXR3ZWVuIGVhY2ggY29sdW1uIHJvdyAqL1xuLnVpLmdyaWQgPiAuY29sdW1uICsgLmRpdmlkZXIsXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uICsgLmRpdmlkZXIge1xuICBsZWZ0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgSG9yaXpvbnRhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ob3Jpem9udGFsLmRpdmlkZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46ICcnO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLmhvcml6b250YWwuZGl2aWRlcjpiZWZvcmUsXG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDFlbSB0b3AgNTAlO1xufVxuLnVpLmhvcml6b250YWwuZGl2aWRlcjphZnRlciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMWVtIHRvcCA1MCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVmVydGljYWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudmVydGljYWwuZGl2aWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAwcmVtO1xuICBwYWRkaW5nOiAwZW07XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDUwJTtcbiAgbGluZS1oZWlnaHQ6IDBlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG4udWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4udWkudmVydGljYWwuZGl2aWRlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICBjb250ZW50OiAnJztcbiAgei1pbmRleDogMztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAgMXJlbSApO1xufVxuLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlIHtcbiAgdG9wOiAtMTAwJTtcbn1cbi51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBweDtcbn1cbi8qIEluc2lkZSBncmlkICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcixcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogJyc7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlLFxuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDFlbSB0b3AgNTAlO1xuICB9XG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcjphZnRlcixcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMWVtIHRvcCA1MCU7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlciA+IC5pY29uIHtcbiAgbWFyZ2luOiAwcmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGhlaWdodDogMWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIEhpZGRlblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oaWRkZW4uZGl2aWRlciB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi51aS5oaWRkZW4uZGl2aWRlcjpiZWZvcmUsXG4udWkuaGlkZGVuLmRpdmlkZXI6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZXIuaW52ZXJ0ZWQsXG4udWkudmVydGljYWwuaW52ZXJ0ZWQuZGl2aWRlcixcbi51aS5ob3Jpem9udGFsLmludmVydGVkLmRpdmlkZXIge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5kaXZpZGVyLmludmVydGVkLFxuLnVpLmRpdmlkZXIuaW52ZXJ0ZWQ6YWZ0ZXIsXG4udWkuZGl2aWRlci5pbnZlcnRlZDpiZWZvcmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpdHRlZC5kaXZpZGVyIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2xlYXJpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2xlYXJpbmcuZGl2aWRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFNlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VjdGlvbi5kaXZpZGVyIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmJlZm9yZSxcbi51aS5ob3Jpem9udGFsLmRpdmlkZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFCYUFBQUFBQ0NBWUFBQUN1VEh1S0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeUZwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOUzFqTURFMElEYzVMakUxTVRRNE1Td2dNakF4TXk4d015OHhNeTB4TWpvd09Ub3hOU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESUNoWGFXNWtiM2R6S1NJZ2VHMXdUVTA2U1c1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvMU9UaEJSRFk0T1VORE1UWXhNVVUwT1VFM05VVkdPRUpETXpNek1qRTJOeUlnZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG8xT1RoQlJEWTRRVU5ETVRZeE1VVTBPVUUzTlVWR09FSkRNek16TWpFMk55SStJRHg0YlhCTlRUcEVaWEpwZG1Wa1JuSnZiU0J6ZEZKbFpqcHBibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalU1T0VGRU5qZzNRME14TmpFeFJUUTVRVGMxUlVZNFFrTXpNek15TVRZM0lpQnpkRkpsWmpwa2IyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qVTVPRUZFTmpnNFEwTXhOakV4UlRRNVFUYzFSVVk0UWtNek16TXlNVFkzSWk4K0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBpQThMM0prWmpwU1JFWStJRHd2ZURwNGJYQnRaWFJoUGlBOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K1ZVNTEzZ0FBQURWSlJFRlVlTnJzMERFTkFDQVFCREJJV0xHQkpRYnkvbVVjSm41c0pYUW1PUU1BQUFBQUFKcXQrMnByQUFBQUFBQ2cyeGRnQU5rNkJFVnVKZ3lNQUFBQUFFbEZUa1N1UW1DQycpO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcjphZnRlcixcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUJhQUFBQUFDQ0FZQUFBQ3VUSHVLQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5RnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5TMWpNREUwSURjNUxqRTFNVFE0TVN3Z01qQXhNeTh3TXk4eE15MHhNam93T1RveE5TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJQ2hYYVc1a2IzZHpLU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8xT1RoQlJEWTRPVU5ETVRZeE1VVTBPVUUzTlVWR09FSkRNek16TWpFMk55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzFPVGhCUkRZNFFVTkRNVFl4TVVVME9VRTNOVVZHT0VKRE16TXpNakUyTnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qVTVPRUZFTmpnM1EwTXhOakV4UlRRNVFUYzFSVVk0UWtNek16TXlNVFkzSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pVNU9FRkVOamc0UTBNeE5qRXhSVFE1UVRjMVJVWTRRa016TXpNeU1UWTNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrVlU1MTNnQUFBRFZKUkVGVWVOcnMwREVOQUNBUUJEQklXTEdCSlFieS9tVWNKbjVzSlhRbU9RTUFBQUFBQUpxdCsycHJBQUFBQUFDZzJ4ZGdBTms2QkVWdUpneU1BQUFBQUVsRlRrU3VRbUNDJyk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEZsYWdcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGbGFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGbGFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBGbGFnIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGbGFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaS5mbGFnOm5vdCguaWNvbikge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDBlbSAwZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogU3ByaXRlICovXG5pLmZsYWc6bm90KC5pY29uKTpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIvYXNzZXRzL2ltYWdlcy9mbGFncy5wbmdcIikgbm8tcmVwZWF0IC0xMDhweCAtMTk3NnB4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxMXB4O1xufVxuLyogRmxhZyBTcHJpdGUgQmFzZWQgT24gaHR0cDovL3d3dy5mYW1mYW1mYW0uY29tL2xhYi9pY29ucy9mbGFncy8gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pLmZsYWcuYWQ6YmVmb3JlLFxuaS5mbGFnLmFuZG9ycmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDBweDtcbn1cbmkuZmxhZy5hZTpiZWZvcmUsXG5pLmZsYWcudW5pdGVkLmFyYWIuZW1pcmF0ZXM6YmVmb3JlLFxuaS5mbGFnLnVhZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTI2cHg7XG59XG5pLmZsYWcuYWY6YmVmb3JlLFxuaS5mbGFnLmFmZ2hhbmlzdGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNTJweDtcbn1cbmkuZmxhZy5hZzpiZWZvcmUsXG5pLmZsYWcuYW50aWd1YTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTc4cHg7XG59XG5pLmZsYWcuYWk6YmVmb3JlLFxuaS5mbGFnLmFuZ3VpbGxhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTA0cHg7XG59XG5pLmZsYWcuYWw6YmVmb3JlLFxuaS5mbGFnLmFsYmFuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMzBweDtcbn1cbmkuZmxhZy5hbTpiZWZvcmUsXG5pLmZsYWcuYXJtZW5pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE1NnB4O1xufVxuaS5mbGFnLmFuOmJlZm9yZSxcbmkuZmxhZy5uZXRoZXJsYW5kcy5hbnRpbGxlczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE4MnB4O1xufVxuaS5mbGFnLmFvOmJlZm9yZSxcbmkuZmxhZy5hbmdvbGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0yMDhweDtcbn1cbmkuZmxhZy5hcjpiZWZvcmUsXG5pLmZsYWcuYXJnZW50aW5hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMjM0cHg7XG59XG5pLmZsYWcuYXM6YmVmb3JlLFxuaS5mbGFnLmFtZXJpY2FuLnNhbW9hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMjYwcHg7XG59XG5pLmZsYWcuYXQ6YmVmb3JlLFxuaS5mbGFnLmF1c3RyaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0yODZweDtcbn1cbmkuZmxhZy5hdTpiZWZvcmUsXG5pLmZsYWcuYXVzdHJhbGlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMzEycHg7XG59XG5pLmZsYWcuYXc6YmVmb3JlLFxuaS5mbGFnLmFydWJhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMzM4cHg7XG59XG5pLmZsYWcuYXg6YmVmb3JlLFxuaS5mbGFnLmFsYW5kLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0zNjRweDtcbn1cbmkuZmxhZy5hejpiZWZvcmUsXG5pLmZsYWcuYXplcmJhaWphbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTM5MHB4O1xufVxuaS5mbGFnLmJhOmJlZm9yZSxcbmkuZmxhZy5ib3NuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC00MTZweDtcbn1cbmkuZmxhZy5iYjpiZWZvcmUsXG5pLmZsYWcuYmFyYmFkb3M6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC00NDJweDtcbn1cbmkuZmxhZy5iZDpiZWZvcmUsXG5pLmZsYWcuYmFuZ2xhZGVzaDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTQ2OHB4O1xufVxuaS5mbGFnLmJlOmJlZm9yZSxcbmkuZmxhZy5iZWxnaXVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDk0cHg7XG59XG5pLmZsYWcuYmY6YmVmb3JlLFxuaS5mbGFnLmJ1cmtpbmEuZmFzbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTUyMHB4O1xufVxuaS5mbGFnLmJnOmJlZm9yZSxcbmkuZmxhZy5idWxnYXJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTU0NnB4O1xufVxuaS5mbGFnLmJoOmJlZm9yZSxcbmkuZmxhZy5iYWhyYWluOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNTcycHg7XG59XG5pLmZsYWcuYmk6YmVmb3JlLFxuaS5mbGFnLmJ1cnVuZGk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC01OThweDtcbn1cbmkuZmxhZy5iajpiZWZvcmUsXG5pLmZsYWcuYmVuaW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC02MjRweDtcbn1cbmkuZmxhZy5ibTpiZWZvcmUsXG5pLmZsYWcuYmVybXVkYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTY1MHB4O1xufVxuaS5mbGFnLmJuOmJlZm9yZSxcbmkuZmxhZy5icnVuZWk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC02NzZweDtcbn1cbmkuZmxhZy5ibzpiZWZvcmUsXG5pLmZsYWcuYm9saXZpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTcwMnB4O1xufVxuaS5mbGFnLmJyOmJlZm9yZSxcbmkuZmxhZy5icmF6aWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC03MjhweDtcbn1cbmkuZmxhZy5iczpiZWZvcmUsXG5pLmZsYWcuYmFoYW1hczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTc1NHB4O1xufVxuaS5mbGFnLmJ0OmJlZm9yZSxcbmkuZmxhZy5iaHV0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC03ODBweDtcbn1cbmkuZmxhZy5idjpiZWZvcmUsXG5pLmZsYWcuYm91dmV0LmlzbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTgwNnB4O1xufVxuaS5mbGFnLmJ3OmJlZm9yZSxcbmkuZmxhZy5ib3Rzd2FuYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTgzMnB4O1xufVxuaS5mbGFnLmJ5OmJlZm9yZSxcbmkuZmxhZy5iZWxhcnVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtODU4cHg7XG59XG5pLmZsYWcuYno6YmVmb3JlLFxuaS5mbGFnLmJlbGl6ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTg4NHB4O1xufVxuaS5mbGFnLmNhOmJlZm9yZSxcbmkuZmxhZy5jYW5hZGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC05MTBweDtcbn1cbmkuZmxhZy5jYzpiZWZvcmUsXG5pLmZsYWcuY29jb3MuaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTk2MnB4O1xufVxuaS5mbGFnLmNkOmJlZm9yZSxcbmkuZmxhZy5jb25nbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTk4OHB4O1xufVxuaS5mbGFnLmNmOmJlZm9yZSxcbmkuZmxhZy5jZW50cmFsLmFmcmljYW4ucmVwdWJsaWM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMDE0cHg7XG59XG5pLmZsYWcuY2c6YmVmb3JlLFxuaS5mbGFnLmNvbmdvLmJyYXp6YXZpbGxlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTA0MHB4O1xufVxuaS5mbGFnLmNoOmJlZm9yZSxcbmkuZmxhZy5zd2l0emVybGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEwNjZweDtcbn1cbmkuZmxhZy5jaTpiZWZvcmUsXG5pLmZsYWcuY290ZS5kaXZvaXJlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTA5MnB4O1xufVxuaS5mbGFnLmNrOmJlZm9yZSxcbmkuZmxhZy5jb29rLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMTE4cHg7XG59XG5pLmZsYWcuY2w6YmVmb3JlLFxuaS5mbGFnLmNoaWxlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTE0NHB4O1xufVxuaS5mbGFnLmNtOmJlZm9yZSxcbmkuZmxhZy5jYW1lcm9vbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTExNzBweDtcbn1cbmkuZmxhZy5jbjpiZWZvcmUsXG5pLmZsYWcuY2hpbmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMTk2cHg7XG59XG5pLmZsYWcuY286YmVmb3JlLFxuaS5mbGFnLmNvbG9tYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTIyMnB4O1xufVxuaS5mbGFnLmNyOmJlZm9yZSxcbmkuZmxhZy5jb3N0YS5yaWNhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTI0OHB4O1xufVxuaS5mbGFnLmNzOmJlZm9yZSxcbmkuZmxhZy5zZXJiaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMjc0cHg7XG59XG5pLmZsYWcuY3U6YmVmb3JlLFxuaS5mbGFnLmN1YmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMzAwcHg7XG59XG5pLmZsYWcuY3Y6YmVmb3JlLFxuaS5mbGFnLmNhcGUudmVyZGU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMzI2cHg7XG59XG5pLmZsYWcuY3g6YmVmb3JlLFxuaS5mbGFnLmNocmlzdG1hcy5pc2xhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMzUycHg7XG59XG5pLmZsYWcuY3k6YmVmb3JlLFxuaS5mbGFnLmN5cHJ1czpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEzNzhweDtcbn1cbmkuZmxhZy5jejpiZWZvcmUsXG5pLmZsYWcuY3plY2gucmVwdWJsaWM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNDA0cHg7XG59XG5pLmZsYWcuZGU6YmVmb3JlLFxuaS5mbGFnLmdlcm1hbnk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNDMwcHg7XG59XG5pLmZsYWcuZGo6YmVmb3JlLFxuaS5mbGFnLmRqaWJvdXRpOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTQ1NnB4O1xufVxuaS5mbGFnLmRrOmJlZm9yZSxcbmkuZmxhZy5kZW5tYXJrOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTQ4MnB4O1xufVxuaS5mbGFnLmRtOmJlZm9yZSxcbmkuZmxhZy5kb21pbmljYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE1MDhweDtcbn1cbmkuZmxhZy5kbzpiZWZvcmUsXG5pLmZsYWcuZG9taW5pY2FuLnJlcHVibGljOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTUzNHB4O1xufVxuaS5mbGFnLmR6OmJlZm9yZSxcbmkuZmxhZy5hbGdlcmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTU2MHB4O1xufVxuaS5mbGFnLmVjOmJlZm9yZSxcbmkuZmxhZy5lY3VhZG9yOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTU4NnB4O1xufVxuaS5mbGFnLmVlOmJlZm9yZSxcbmkuZmxhZy5lc3RvbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTYxMnB4O1xufVxuaS5mbGFnLmVnOmJlZm9yZSxcbmkuZmxhZy5lZ3lwdDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE2MzhweDtcbn1cbmkuZmxhZy5laDpiZWZvcmUsXG5pLmZsYWcud2VzdGVybi5zYWhhcmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNjY0cHg7XG59XG5pLmZsYWcuZ2IuZW5nOmJlZm9yZSxcbmkuZmxhZy5lbmdsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTY5MHB4O1xufVxuaS5mbGFnLmVyOmJlZm9yZSxcbmkuZmxhZy5lcml0cmVhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTcxNnB4O1xufVxuaS5mbGFnLmVzOmJlZm9yZSxcbmkuZmxhZy5zcGFpbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE3NDJweDtcbn1cbmkuZmxhZy5ldDpiZWZvcmUsXG5pLmZsYWcuZXRoaW9waWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNzY4cHg7XG59XG5pLmZsYWcuZXU6YmVmb3JlLFxuaS5mbGFnLmV1cm9wZWFuLnVuaW9uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTc5NHB4O1xufVxuaS5mbGFnLmZpOmJlZm9yZSxcbmkuZmxhZy5maW5sYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTg0NnB4O1xufVxuaS5mbGFnLmZqOmJlZm9yZSxcbmkuZmxhZy5maWppOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTg3MnB4O1xufVxuaS5mbGFnLmZrOmJlZm9yZSxcbmkuZmxhZy5mYWxrbGFuZC5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTg5OHB4O1xufVxuaS5mbGFnLmZtOmJlZm9yZSxcbmkuZmxhZy5taWNyb25lc2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTkyNHB4O1xufVxuaS5mbGFnLmZvOmJlZm9yZSxcbmkuZmxhZy5mYXJvZS5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTk1MHB4O1xufVxuaS5mbGFnLmZyOmJlZm9yZSxcbmkuZmxhZy5mcmFuY2U6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xOTc2cHg7XG59XG5pLmZsYWcuZ2E6YmVmb3JlLFxuaS5mbGFnLmdhYm9uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IDBweDtcbn1cbmkuZmxhZy5nYjpiZWZvcmUsXG5pLmZsYWcudWs6YmVmb3JlLFxuaS5mbGFnLnVuaXRlZC5raW5nZG9tOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0yNnB4O1xufVxuaS5mbGFnLmdkOmJlZm9yZSxcbmkuZmxhZy5ncmVuYWRhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC01MnB4O1xufVxuaS5mbGFnLmdlOmJlZm9yZSxcbmkuZmxhZy5nZW9yZ2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC03OHB4O1xufVxuaS5mbGFnLmdmOmJlZm9yZSxcbmkuZmxhZy5mcmVuY2guZ3VpYW5hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMDRweDtcbn1cbmkuZmxhZy5naDpiZWZvcmUsXG5pLmZsYWcuZ2hhbmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEzMHB4O1xufVxuaS5mbGFnLmdpOmJlZm9yZSxcbmkuZmxhZy5naWJyYWx0YXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE1NnB4O1xufVxuaS5mbGFnLmdsOmJlZm9yZSxcbmkuZmxhZy5ncmVlbmxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE4MnB4O1xufVxuaS5mbGFnLmdtOmJlZm9yZSxcbmkuZmxhZy5nYW1iaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTIwOHB4O1xufVxuaS5mbGFnLmduOmJlZm9yZSxcbmkuZmxhZy5ndWluZWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTIzNHB4O1xufVxuaS5mbGFnLmdwOmJlZm9yZSxcbmkuZmxhZy5ndWFkZWxvdXBlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0yNjBweDtcbn1cbmkuZmxhZy5ncTpiZWZvcmUsXG5pLmZsYWcuZXF1YXRvcmlhbC5ndWluZWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTI4NnB4O1xufVxuaS5mbGFnLmdyOmJlZm9yZSxcbmkuZmxhZy5ncmVlY2U6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTMxMnB4O1xufVxuaS5mbGFnLmdzOmJlZm9yZSxcbmkuZmxhZy5zYW5kd2ljaC5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0zMzhweDtcbn1cbmkuZmxhZy5ndDpiZWZvcmUsXG5pLmZsYWcuZ3VhdGVtYWxhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0zNjRweDtcbn1cbmkuZmxhZy5ndTpiZWZvcmUsXG5pLmZsYWcuZ3VhbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMzkwcHg7XG59XG5pLmZsYWcuZ3c6YmVmb3JlLFxuaS5mbGFnLmd1aW5lYS1iaXNzYXU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTQxNnB4O1xufVxuaS5mbGFnLmd5OmJlZm9yZSxcbmkuZmxhZy5ndXlhbmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTQ0MnB4O1xufVxuaS5mbGFnLmhrOmJlZm9yZSxcbmkuZmxhZy5ob25nLmtvbmc6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTQ2OHB4O1xufVxuaS5mbGFnLmhtOmJlZm9yZSxcbmkuZmxhZy5oZWFyZC5pc2xhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTQ5NHB4O1xufVxuaS5mbGFnLmhuOmJlZm9yZSxcbmkuZmxhZy5ob25kdXJhczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNTIwcHg7XG59XG5pLmZsYWcuaHI6YmVmb3JlLFxuaS5mbGFnLmNyb2F0aWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTU0NnB4O1xufVxuaS5mbGFnLmh0OmJlZm9yZSxcbmkuZmxhZy5oYWl0aTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNTcycHg7XG59XG5pLmZsYWcuaHU6YmVmb3JlLFxuaS5mbGFnLmh1bmdhcnk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTU5OHB4O1xufVxuaS5mbGFnLmlkOmJlZm9yZSxcbmkuZmxhZy5pbmRvbmVzaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTYyNHB4O1xufVxuaS5mbGFnLmllOmJlZm9yZSxcbmkuZmxhZy5pcmVsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC02NTBweDtcbn1cbmkuZmxhZy5pbDpiZWZvcmUsXG5pLmZsYWcuaXNyYWVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC02NzZweDtcbn1cbmkuZmxhZy5pbjpiZWZvcmUsXG5pLmZsYWcuaW5kaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTcwMnB4O1xufVxuaS5mbGFnLmlvOmJlZm9yZSxcbmkuZmxhZy5pbmRpYW4ub2NlYW4udGVycml0b3J5OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC03MjhweDtcbn1cbmkuZmxhZy5pcTpiZWZvcmUsXG5pLmZsYWcuaXJhcTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNzU0cHg7XG59XG5pLmZsYWcuaXI6YmVmb3JlLFxuaS5mbGFnLmlyYW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTc4MHB4O1xufVxuaS5mbGFnLmlzOmJlZm9yZSxcbmkuZmxhZy5pY2VsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC04MDZweDtcbn1cbmkuZmxhZy5pdDpiZWZvcmUsXG5pLmZsYWcuaXRhbHk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTgzMnB4O1xufVxuaS5mbGFnLmptOmJlZm9yZSxcbmkuZmxhZy5qYW1haWNhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC04NThweDtcbn1cbmkuZmxhZy5qbzpiZWZvcmUsXG5pLmZsYWcuam9yZGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC04ODRweDtcbn1cbmkuZmxhZy5qcDpiZWZvcmUsXG5pLmZsYWcuamFwYW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTkxMHB4O1xufVxuaS5mbGFnLmtlOmJlZm9yZSxcbmkuZmxhZy5rZW55YTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtOTM2cHg7XG59XG5pLmZsYWcua2c6YmVmb3JlLFxuaS5mbGFnLmt5cmd5enN0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTk2MnB4O1xufVxuaS5mbGFnLmtoOmJlZm9yZSxcbmkuZmxhZy5jYW1ib2RpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtOTg4cHg7XG59XG5pLmZsYWcua2k6YmVmb3JlLFxuaS5mbGFnLmtpcmliYXRpOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMDE0cHg7XG59XG5pLmZsYWcua206YmVmb3JlLFxuaS5mbGFnLmNvbW9yb3M6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEwNDBweDtcbn1cbmkuZmxhZy5rbjpiZWZvcmUsXG5pLmZsYWcuc2FpbnQua2l0dHMuYW5kLm5ldmlzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMDY2cHg7XG59XG5pLmZsYWcua3A6YmVmb3JlLFxuaS5mbGFnLm5vcnRoLmtvcmVhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMDkycHg7XG59XG5pLmZsYWcua3I6YmVmb3JlLFxuaS5mbGFnLnNvdXRoLmtvcmVhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMTE4cHg7XG59XG5pLmZsYWcua3c6YmVmb3JlLFxuaS5mbGFnLmt1d2FpdDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTE0NHB4O1xufVxuaS5mbGFnLmt5OmJlZm9yZSxcbmkuZmxhZy5jYXltYW4uaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTE3MHB4O1xufVxuaS5mbGFnLmt6OmJlZm9yZSxcbmkuZmxhZy5rYXpha2hzdGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMTk2cHg7XG59XG5pLmZsYWcubGE6YmVmb3JlLFxuaS5mbGFnLmxhb3M6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEyMjJweDtcbn1cbmkuZmxhZy5sYjpiZWZvcmUsXG5pLmZsYWcubGViYW5vbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTI0OHB4O1xufVxuaS5mbGFnLmxjOmJlZm9yZSxcbmkuZmxhZy5zYWludC5sdWNpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTI3NHB4O1xufVxuaS5mbGFnLmxpOmJlZm9yZSxcbmkuZmxhZy5saWVjaHRlbnN0ZWluOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMzAwcHg7XG59XG5pLmZsYWcubGs6YmVmb3JlLFxuaS5mbGFnLnNyaS5sYW5rYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTMyNnB4O1xufVxuaS5mbGFnLmxyOmJlZm9yZSxcbmkuZmxhZy5saWJlcmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMzUycHg7XG59XG5pLmZsYWcubHM6YmVmb3JlLFxuaS5mbGFnLmxlc290aG86YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEzNzhweDtcbn1cbmkuZmxhZy5sdDpiZWZvcmUsXG5pLmZsYWcubGl0aHVhbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNDA0cHg7XG59XG5pLmZsYWcubHU6YmVmb3JlLFxuaS5mbGFnLmx1eGVtYm91cmc6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE0MzBweDtcbn1cbmkuZmxhZy5sdjpiZWZvcmUsXG5pLmZsYWcubGF0dmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNDU2cHg7XG59XG5pLmZsYWcubHk6YmVmb3JlLFxuaS5mbGFnLmxpYnlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNDgycHg7XG59XG5pLmZsYWcubWE6YmVmb3JlLFxuaS5mbGFnLm1vcm9jY286YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE1MDhweDtcbn1cbmkuZmxhZy5tYzpiZWZvcmUsXG5pLmZsYWcubW9uYWNvOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNTM0cHg7XG59XG5pLmZsYWcubWQ6YmVmb3JlLFxuaS5mbGFnLm1vbGRvdmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE1NjBweDtcbn1cbmkuZmxhZy5tZTpiZWZvcmUsXG5pLmZsYWcubW9udGVuZWdybzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTU4NnB4O1xufVxuaS5mbGFnLm1nOmJlZm9yZSxcbmkuZmxhZy5tYWRhZ2FzY2FyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNjEzcHg7XG59XG5pLmZsYWcubWg6YmVmb3JlLFxuaS5mbGFnLm1hcnNoYWxsLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE2MzlweDtcbn1cbmkuZmxhZy5tazpiZWZvcmUsXG5pLmZsYWcubWFjZWRvbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNjY1cHg7XG59XG5pLmZsYWcubWw6YmVmb3JlLFxuaS5mbGFnLm1hbGk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE2OTFweDtcbn1cbmkuZmxhZy5tbTpiZWZvcmUsXG5pLmZsYWcubXlhbm1hcjpiZWZvcmUsXG5pLmZsYWcuYnVybWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTczcHggLTE4MjFweDtcbn1cbmkuZmxhZy5tbjpiZWZvcmUsXG5pLmZsYWcubW9uZ29saWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE3NDNweDtcbn1cbmkuZmxhZy5tbzpiZWZvcmUsXG5pLmZsYWcubWFjYXU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE3NjlweDtcbn1cbmkuZmxhZy5tcDpiZWZvcmUsXG5pLmZsYWcubm9ydGhlcm4ubWFyaWFuYS5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNzk1cHg7XG59XG5pLmZsYWcubXE6YmVmb3JlLFxuaS5mbGFnLm1hcnRpbmlxdWU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE4MjFweDtcbn1cbmkuZmxhZy5tcjpiZWZvcmUsXG5pLmZsYWcubWF1cml0YW5pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTg0N3B4O1xufVxuaS5mbGFnLm1zOmJlZm9yZSxcbmkuZmxhZy5tb250c2VycmF0OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xODczcHg7XG59XG5pLmZsYWcubXQ6YmVmb3JlLFxuaS5mbGFnLm1hbHRhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xODk5cHg7XG59XG5pLmZsYWcubXU6YmVmb3JlLFxuaS5mbGFnLm1hdXJpdGl1czpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTkyNXB4O1xufVxuaS5mbGFnLm12OmJlZm9yZSxcbmkuZmxhZy5tYWxkaXZlczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTk1MXB4O1xufVxuaS5mbGFnLm13OmJlZm9yZSxcbmkuZmxhZy5tYWxhd2k6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE5NzdweDtcbn1cbmkuZmxhZy5teDpiZWZvcmUsXG5pLmZsYWcubWV4aWNvOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IDBweDtcbn1cbmkuZmxhZy5teTpiZWZvcmUsXG5pLmZsYWcubWFsYXlzaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTI2cHg7XG59XG5pLmZsYWcubXo6YmVmb3JlLFxuaS5mbGFnLm1vemFtYmlxdWU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTUycHg7XG59XG5pLmZsYWcubmE6YmVmb3JlLFxuaS5mbGFnLm5hbWliaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTc4cHg7XG59XG5pLmZsYWcubmM6YmVmb3JlLFxuaS5mbGFnLm5ldy5jYWxlZG9uaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEwNHB4O1xufVxuaS5mbGFnLm5lOmJlZm9yZSxcbmkuZmxhZy5uaWdlcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTMwcHg7XG59XG5pLmZsYWcubmY6YmVmb3JlLFxuaS5mbGFnLm5vcmZvbGsuaXNsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNTZweDtcbn1cbmkuZmxhZy5uZzpiZWZvcmUsXG5pLmZsYWcubmlnZXJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTgycHg7XG59XG5pLmZsYWcubmk6YmVmb3JlLFxuaS5mbGFnLm5pY2FyYWd1YTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMjA4cHg7XG59XG5pLmZsYWcubmw6YmVmb3JlLFxuaS5mbGFnLm5ldGhlcmxhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0yMzRweDtcbn1cbmkuZmxhZy5ubzpiZWZvcmUsXG5pLmZsYWcubm9yd2F5OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0yNjBweDtcbn1cbmkuZmxhZy5ucDpiZWZvcmUsXG5pLmZsYWcubmVwYWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTI4NnB4O1xufVxuaS5mbGFnLm5yOmJlZm9yZSxcbmkuZmxhZy5uYXVydTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMzEycHg7XG59XG5pLmZsYWcubnU6YmVmb3JlLFxuaS5mbGFnLm5pdWU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTMzOHB4O1xufVxuaS5mbGFnLm56OmJlZm9yZSxcbmkuZmxhZy5uZXcuemVhbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMzY0cHg7XG59XG5pLmZsYWcub206YmVmb3JlLFxuaS5mbGFnLm9tYW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTM5MHB4O1xufVxuaS5mbGFnLnBhOmJlZm9yZSxcbmkuZmxhZy5wYW5hbWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTQxNnB4O1xufVxuaS5mbGFnLnBlOmJlZm9yZSxcbmkuZmxhZy5wZXJ1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC00NDJweDtcbn1cbmkuZmxhZy5wZjpiZWZvcmUsXG5pLmZsYWcuZnJlbmNoLnBvbHluZXNpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNDY4cHg7XG59XG5pLmZsYWcucGc6YmVmb3JlLFxuaS5mbGFnLm5ldy5ndWluZWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTQ5NHB4O1xufVxuaS5mbGFnLnBoOmJlZm9yZSxcbmkuZmxhZy5waGlsaXBwaW5lczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNTIwcHg7XG59XG5pLmZsYWcucGs6YmVmb3JlLFxuaS5mbGFnLnBha2lzdGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC01NDZweDtcbn1cbmkuZmxhZy5wbDpiZWZvcmUsXG5pLmZsYWcucG9sYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC01NzJweDtcbn1cbmkuZmxhZy5wbTpiZWZvcmUsXG5pLmZsYWcuc2FpbnQucGllcnJlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC01OThweDtcbn1cbmkuZmxhZy5wbjpiZWZvcmUsXG5pLmZsYWcucGl0Y2Fpcm4uaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNjI0cHg7XG59XG5pLmZsYWcucHI6YmVmb3JlLFxuaS5mbGFnLnB1ZXJ0by5yaWNvOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC02NTBweDtcbn1cbmkuZmxhZy5wczpiZWZvcmUsXG5pLmZsYWcucGFsZXN0aW5lOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC02NzZweDtcbn1cbmkuZmxhZy5wdDpiZWZvcmUsXG5pLmZsYWcucG9ydHVnYWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTcwMnB4O1xufVxuaS5mbGFnLnB3OmJlZm9yZSxcbmkuZmxhZy5wYWxhdTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNzI4cHg7XG59XG5pLmZsYWcucHk6YmVmb3JlLFxuaS5mbGFnLnBhcmFndWF5OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC03NTRweDtcbn1cbmkuZmxhZy5xYTpiZWZvcmUsXG5pLmZsYWcucWF0YXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTc4MHB4O1xufVxuaS5mbGFnLnJlOmJlZm9yZSxcbmkuZmxhZy5yZXVuaW9uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC04MDZweDtcbn1cbmkuZmxhZy5ybzpiZWZvcmUsXG5pLmZsYWcucm9tYW5pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtODMycHg7XG59XG5pLmZsYWcucnM6YmVmb3JlLFxuaS5mbGFnLnNlcmJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtODU4cHg7XG59XG5pLmZsYWcucnU6YmVmb3JlLFxuaS5mbGFnLnJ1c3NpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtODg0cHg7XG59XG5pLmZsYWcucnc6YmVmb3JlLFxuaS5mbGFnLnJ3YW5kYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtOTEwcHg7XG59XG5pLmZsYWcuc2E6YmVmb3JlLFxuaS5mbGFnLnNhdWRpLmFyYWJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtOTM2cHg7XG59XG5pLmZsYWcuc2I6YmVmb3JlLFxuaS5mbGFnLnNvbG9tb24uaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtOTYycHg7XG59XG5pLmZsYWcuc2M6YmVmb3JlLFxuaS5mbGFnLnNleWNoZWxsZXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTk4OHB4O1xufVxuaS5mbGFnLmdiLnNjdDpiZWZvcmUsXG5pLmZsYWcuc2NvdGxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEwMTRweDtcbn1cbmkuZmxhZy5zZDpiZWZvcmUsXG5pLmZsYWcuc3VkYW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEwNDBweDtcbn1cbmkuZmxhZy5zZTpiZWZvcmUsXG5pLmZsYWcuc3dlZGVuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMDY2cHg7XG59XG5pLmZsYWcuc2c6YmVmb3JlLFxuaS5mbGFnLnNpbmdhcG9yZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTA5MnB4O1xufVxuaS5mbGFnLnNoOmJlZm9yZSxcbmkuZmxhZy5zYWludC5oZWxlbmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTExMThweDtcbn1cbmkuZmxhZy5zaTpiZWZvcmUsXG5pLmZsYWcuc2xvdmVuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTExNDRweDtcbn1cbmkuZmxhZy5zajpiZWZvcmUsXG5pLmZsYWcuc3ZhbGJhcmQ6YmVmb3JlLFxuaS5mbGFnLmphbi5tYXllbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTE3MHB4O1xufVxuaS5mbGFnLnNrOmJlZm9yZSxcbmkuZmxhZy5zbG92YWtpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTE5NnB4O1xufVxuaS5mbGFnLnNsOmJlZm9yZSxcbmkuZmxhZy5zaWVycmEubGVvbmU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEyMjJweDtcbn1cbmkuZmxhZy5zbTpiZWZvcmUsXG5pLmZsYWcuc2FuLm1hcmlubzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTI0OHB4O1xufVxuaS5mbGFnLnNuOmJlZm9yZSxcbmkuZmxhZy5zZW5lZ2FsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMjc0cHg7XG59XG5pLmZsYWcuc286YmVmb3JlLFxuaS5mbGFnLnNvbWFsaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEzMDBweDtcbn1cbmkuZmxhZy5zcjpiZWZvcmUsXG5pLmZsYWcuc3VyaW5hbWU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEzMjZweDtcbn1cbmkuZmxhZy5zdDpiZWZvcmUsXG5pLmZsYWcuc2FvLnRvbWU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEzNTJweDtcbn1cbmkuZmxhZy5zdjpiZWZvcmUsXG5pLmZsYWcuZWwuc2FsdmFkb3I6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEzNzhweDtcbn1cbmkuZmxhZy5zeTpiZWZvcmUsXG5pLmZsYWcuc3lyaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE0MDRweDtcbn1cbmkuZmxhZy5zejpiZWZvcmUsXG5pLmZsYWcuc3dhemlsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNDMwcHg7XG59XG5pLmZsYWcudGM6YmVmb3JlLFxuaS5mbGFnLmNhaWNvcy5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNDU2cHg7XG59XG5pLmZsYWcudGQ6YmVmb3JlLFxuaS5mbGFnLmNoYWQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE0ODJweDtcbn1cbmkuZmxhZy50ZjpiZWZvcmUsXG5pLmZsYWcuZnJlbmNoLnRlcnJpdG9yaWVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNTA4cHg7XG59XG5pLmZsYWcudGc6YmVmb3JlLFxuaS5mbGFnLnRvZ286YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE1MzRweDtcbn1cbmkuZmxhZy50aDpiZWZvcmUsXG5pLmZsYWcudGhhaWxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE1NjBweDtcbn1cbmkuZmxhZy50ajpiZWZvcmUsXG5pLmZsYWcudGFqaWtpc3RhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTU4NnB4O1xufVxuaS5mbGFnLnRrOmJlZm9yZSxcbmkuZmxhZy50b2tlbGF1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNjEycHg7XG59XG5pLmZsYWcudGw6YmVmb3JlLFxuaS5mbGFnLnRpbW9ybGVzdGU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE2MzhweDtcbn1cbmkuZmxhZy50bTpiZWZvcmUsXG5pLmZsYWcudHVya21lbmlzdGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNjY0cHg7XG59XG5pLmZsYWcudG46YmVmb3JlLFxuaS5mbGFnLnR1bmlzaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE2OTBweDtcbn1cbmkuZmxhZy50bzpiZWZvcmUsXG5pLmZsYWcudG9uZ2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE3MTZweDtcbn1cbmkuZmxhZy50cjpiZWZvcmUsXG5pLmZsYWcudHVya2V5OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNzQycHg7XG59XG5pLmZsYWcudHQ6YmVmb3JlLFxuaS5mbGFnLnRyaW5pZGFkOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNzY4cHg7XG59XG5pLmZsYWcudHY6YmVmb3JlLFxuaS5mbGFnLnR1dmFsdTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTc5NHB4O1xufVxuaS5mbGFnLnR3OmJlZm9yZSxcbmkuZmxhZy50YWl3YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE4MjBweDtcbn1cbmkuZmxhZy50ejpiZWZvcmUsXG5pLmZsYWcudGFuemFuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE4NDZweDtcbn1cbmkuZmxhZy51YTpiZWZvcmUsXG5pLmZsYWcudWtyYWluZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTg3MnB4O1xufVxuaS5mbGFnLnVnOmJlZm9yZSxcbmkuZmxhZy51Z2FuZGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE4OThweDtcbn1cbmkuZmxhZy51bTpiZWZvcmUsXG5pLmZsYWcudXMubWlub3IuaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTkyNHB4O1xufVxuaS5mbGFnLnVzOmJlZm9yZSxcbmkuZmxhZy5hbWVyaWNhOmJlZm9yZSxcbmkuZmxhZy51bml0ZWQuc3RhdGVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xOTUwcHg7XG59XG5pLmZsYWcudXk6YmVmb3JlLFxuaS5mbGFnLnVydWd1YXk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE5NzZweDtcbn1cbmkuZmxhZy51ejpiZWZvcmUsXG5pLmZsYWcudXpiZWtpc3RhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggMHB4O1xufVxuaS5mbGFnLnZhOmJlZm9yZSxcbmkuZmxhZy52YXRpY2FuLmNpdHk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0yNnB4O1xufVxuaS5mbGFnLnZjOmJlZm9yZSxcbmkuZmxhZy5zYWludC52aW5jZW50OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtNTJweDtcbn1cbmkuZmxhZy52ZTpiZWZvcmUsXG5pLmZsYWcudmVuZXp1ZWxhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtNzhweDtcbn1cbmkuZmxhZy52ZzpiZWZvcmUsXG5pLmZsYWcuYnJpdGlzaC52aXJnaW4uaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTEwNHB4O1xufVxuaS5mbGFnLnZpOmJlZm9yZSxcbmkuZmxhZy51cy52aXJnaW4uaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTEzMHB4O1xufVxuaS5mbGFnLnZuOmJlZm9yZSxcbmkuZmxhZy52aWV0bmFtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMTU2cHg7XG59XG5pLmZsYWcudnU6YmVmb3JlLFxuaS5mbGFnLnZhbnVhdHU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0xODJweDtcbn1cbmkuZmxhZy5nYi53bHM6YmVmb3JlLFxuaS5mbGFnLndhbGVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMjA4cHg7XG59XG5pLmZsYWcud2Y6YmVmb3JlLFxuaS5mbGFnLndhbGxpcy5hbmQuZnV0dW5hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMjM0cHg7XG59XG5pLmZsYWcud3M6YmVmb3JlLFxuaS5mbGFnLnNhbW9hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMjYwcHg7XG59XG5pLmZsYWcueWU6YmVmb3JlLFxuaS5mbGFnLnllbWVuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMjg2cHg7XG59XG5pLmZsYWcueXQ6YmVmb3JlLFxuaS5mbGFnLm1heW90dGU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0zMTJweDtcbn1cbmkuZmxhZy56YTpiZWZvcmUsXG5pLmZsYWcuc291dGguYWZyaWNhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMzM4cHg7XG59XG5pLmZsYWcuem06YmVmb3JlLFxuaS5mbGFnLnphbWJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTM2NHB4O1xufVxuaS5mbGFnLnp3OmJlZm9yZSxcbmkuZmxhZy56aW1iYWJ3ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTM5MHB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gSGVhZGVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSGVhZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3ViIEhlYWRpbmcgKi9cbi8qIFN1YiBIZWFkZXIgKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBMYWJlbCAqL1xuLyogQ29udGVudCAqL1xuLyogUGFyYWdyYXBoIGFmdGVyIEhlYWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXppbmcgKi9cbi8qIFN1YiBIZWFkZXIgKi9cbi8qIEljb24gSGVhZGVyICovXG4vKiBObyBMaW5lIEhlaWdodCBPZmZzZXQgKi9cbi8qIERpdmlkZWQgKi9cbi8qIEJsb2NrICovXG4vKiBBdHRhY2hlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSGVhZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3ViIEhlYWRpbmcgKi9cbi8qIFN1YiBIZWFkZXIgKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBMYWJlbCAqL1xuLyogQ29udGVudCAqL1xuLyogUGFyYWdyYXBoIGFmdGVyIEhlYWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXppbmcgKi9cbi8qIFN1YiBIZWFkZXIgKi9cbi8qIEljb24gSGVhZGVyICovXG4vKiBObyBMaW5lIEhlaWdodCBPZmZzZXQgKi9cbi8qIERpdmlkZWQgKi9cbi8qIEJsb2NrICovXG4vKiBBdHRhY2hlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSGVhZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU3RhbmRhcmQgKi9cbi51aS5oZWFkZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogY2FsYygycmVtIC0gIDAuMTQyODU3MTRlbSApIDBlbSAxcmVtO1xuICBwYWRkaW5nOiAwZW0gMGVtO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4yODU3MTQyOWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaGVhZGVyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogLTAuMTQyODU3MTRlbTtcbn1cbi51aS5oZWFkZXI6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFN1YiBIZWFkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luOiAwZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSWNvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgPiAuaWNvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIG9wYWNpdHk6IDE7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIHBhZGRpbmctdG9wOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKiBXaXRoIFRleHQgTm9kZSAqL1xuLnVpLmhlYWRlciAuaWNvbjpvbmx5LWNoaWxkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwZW07XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBJbWFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlciA+IC5pbWFnZTpub3QoLmljb24pLFxuLnVpLmhlYWRlciA+IGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogMC4xNDI4NTcxNGVtO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5oZWFkZXIgPiAuaW1hZ2U6bm90KC5pY29uKTpvbmx5LWNoaWxkLFxuLnVpLmhlYWRlciA+IGltZzpvbmx5LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlciAuY29udGVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qIEFmdGVyIEltYWdlICovXG4udWkuaGVhZGVyID4gaW1nICsgLmNvbnRlbnQsXG4udWkuaGVhZGVyID4gLmltYWdlICsgLmNvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKiBBZnRlciBJY29uICovXG4udWkuaGVhZGVyID4gLmljb24gKyAuY29udGVudCB7XG4gIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiBMb29zZSBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgLnVpLmxhYmVsIHtcbiAgZm9udC1zaXplOiAnJztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qIFBvc2l0aW9uaW5nICovXG4udWkuaGVhZGVyICsgcCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbmgxLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cbmgyLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbmgzLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbmg0LnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4wNzE0Mjg1N3JlbTtcbn1cbmg1LnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi8qIFN1YiBIZWFkZXIgKi9cbmgxLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbmgyLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbmgzLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbmg0LnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbmg1LnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiBDb250ZW50IEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaHVnZS5oZWFkZXIge1xuICBtaW4taGVpZ2h0OiAxZW07XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLnVpLmxhcmdlLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MWVtO1xufVxuLnVpLm1lZGl1bS5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbn1cbi51aS5zbWFsbC5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMDcxNDI4NTdlbTtcbn1cbi51aS50aW55LmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyogU3ViIEhlYWRlciAqL1xuLnVpLmh1Z2UuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmxhcmdlLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkuc21hbGwuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLnRpbnkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU3ViIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3ViLmhlYWRlciB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xNDI4NTcxNHJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogJyc7XG59XG4udWkuc21hbGwuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xufVxuLnVpLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbn1cbi51aS5sYXJnZS5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG59XG4udWkuaHVnZS5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSWNvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmljb24uaGVhZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMnJlbSAwZW0gMXJlbTtcbn1cbi51aS5pY29uLmhlYWRlcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuaWNvbi5oZWFkZXI6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuaWNvbi5oZWFkZXIgLmljb24ge1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAwZW07XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBtYXJnaW46IDBlbSBhdXRvIDAuNXJlbTtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5pY29uLmhlYWRlciAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkuaWNvbi5oZWFkZXIgLmNpcmN1bGFyLmljb24ge1xuICBmb250LXNpemU6IDJlbTtcbn1cbi51aS5pY29uLmhlYWRlciAuc3F1YXJlLmljb24ge1xuICBmb250LXNpemU6IDJlbTtcbn1cbi51aS5ibG9jay5pY29uLmhlYWRlciAuaWNvbiB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5pY29uLmhlYWRlci5hbGlnbmVkIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmRpc2FibGVkLmhlYWRlciB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmhlYWRlciB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG59XG4udWkuaW52ZXJ0ZWQuYXR0YWNoZWQuaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogIzU0NTQ1NCBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnVpLmludmVydGVkLmJsb2NrLmhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICM1NDU0NTQgbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuMDUpKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnZlcnRlZC5ibG9jay5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBSZWQgLS0tKi9cbi51aS5yZWQuaGVhZGVyIHtcbiAgY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbn1cbmEudWkucmVkLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XG59XG4udWkucmVkLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjREIyODI4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5yZWQuaGVhZGVyIHtcbiAgY29sb3I6ICNGRjY5NUUgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQucmVkLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmY1MTQ0ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPcmFuZ2UgLS0tKi9cbi51aS5vcmFuZ2UuaGVhZGVyIHtcbiAgY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbn1cbmEudWkub3JhbmdlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZjI2MjAyICFpbXBvcnRhbnQ7XG59XG4udWkub3JhbmdlLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRjI3MTFDO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5vcmFuZ2UuaGVhZGVyIHtcbiAgY29sb3I6ICNGRjg1MUIgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQub3JhbmdlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmY3NzAxICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPbGl2ZSAtLS0qL1xuLnVpLm9saXZlLmhlYWRlciB7XG4gIGNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG59XG5hLnVpLm9saXZlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG59XG4udWkub2xpdmUuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNCNUNDMTg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLm9saXZlLmhlYWRlciB7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLm9saXZlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZDhlYTVjICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBZZWxsb3cgLS0tKi9cbi51aS55ZWxsb3cuaGVhZGVyIHtcbiAgY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbn1cbmEudWkueWVsbG93LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG59XG4udWkueWVsbG93LmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRkJCRDA4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC55ZWxsb3cuaGVhZGVyIHtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQueWVsbG93LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmZkZjA1ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBHcmVlbiAtLS0qL1xuLnVpLmdyZWVuLmhlYWRlciB7XG4gIGNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmdyZWVuLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JlZW4uZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMyMUJBNDU7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmdyZWVuLmhlYWRlciB7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLmdyZWVuLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMjJiZTM0ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBUZWFsIC0tLSovXG4udWkudGVhbC5oZWFkZXIge1xuICBjb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuYS51aS50ZWFsLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG59XG4udWkudGVhbC5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzAwQjVBRDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQudGVhbC5oZWFkZXIge1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC50ZWFsLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjNTRmZmZmICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCbHVlIC0tLSovXG4udWkuYmx1ZS5oZWFkZXIge1xuICBjb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xufVxuYS51aS5ibHVlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMjE1ZDhmICFpbXBvcnRhbnQ7XG59XG4udWkuYmx1ZS5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzJDNkE5RTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYmx1ZS5oZWFkZXIge1xuICBjb2xvcjogIzUzOTFDNSAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5ibHVlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjM2E4NWM1ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBWaW9sZXQgLS0tKi9cbi51aS52aW9sZXQuaGVhZGVyIHtcbiAgY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbmEudWkudmlvbGV0LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG59XG4udWkudmlvbGV0LmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNjQzNUM5O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC52aW9sZXQuaGVhZGVyIHtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQudmlvbGV0LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjOGE3M2ZmICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQdXJwbGUgLS0tKi9cbi51aS5wdXJwbGUuaGVhZGVyIHtcbiAgY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbn1cbmEudWkucHVycGxlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG59XG4udWkucHVycGxlLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjQTMzM0M4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5wdXJwbGUuaGVhZGVyIHtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQucHVycGxlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZDY1YWZmICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQaW5rIC0tLSovXG4udWkucGluay5oZWFkZXIge1xuICBjb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xufVxuYS51aS5waW5rLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG59XG4udWkucGluay5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0UwMzk5Nztcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucGluay5oZWFkZXIge1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5waW5rLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmY3NGQ4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCcm93biAtLS0qL1xuLnVpLmJyb3duLmhlYWRlciB7XG4gIGNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG59XG5hLnVpLmJyb3duLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG59XG4udWkuYnJvd24uZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNBNTY3M0Y7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmJyb3duLmhlYWRlciB7XG4gIGNvbG9yOiAjRDY3QzFDICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLmJyb3duLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjYzg2ZjExICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBHcmV5IC0tLSovXG4udWkuZ3JleS5oZWFkZXIge1xuICBjb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xufVxuYS51aS5ncmV5LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JleS5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzc2NzY3Njtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuZ3JleS5oZWFkZXIge1xuICBjb2xvcjogI0RDRERERSAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5ncmV5LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjY2ZkMGQyICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGVmdC5hbGlnbmVkLmhlYWRlciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkucmlnaHQuYWxpZ25lZC5oZWFkZXIge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi51aS5jZW50ZXJlZC5oZWFkZXIsXG4udWkuY2VudGVyLmFsaWduZWQuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLmp1c3RpZmllZC5oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuLnVpLmp1c3RpZmllZC5oZWFkZXI6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGVkLmhlYWRlcixcbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0uaGVhZGVyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLmhlYWRlciB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXR0ZWQuaGVhZGVyIHtcbiAgcGFkZGluZzogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXZpZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkaW5nLmhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5kaXZpZGluZy5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMC4yMTQyODU3MXJlbTtcbn1cbi51aS5kaXZpZGluZy5oZWFkZXIgLmljb24ge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkuaW52ZXJ0ZWQuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEJsb2NrXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmxvY2suaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgcGFkZGluZzogMC43ODU3MTQyOXJlbSAxcmVtO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnRpbnkuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLmJsb2NrLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5ibG9jay5oZWFkZXI6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpOm5vdChoNikge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmh1Z2UuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hdHRhY2hlZC5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5cmVtIDFyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkuYXR0YWNoZWQuYmxvY2suaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbn1cbi51aS5hdHRhY2hlZDpub3QoLnRvcCk6bm90KC5ib3R0b20pLmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkudG9wLmF0dGFjaGVkLmhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4vKiBBdHRhY2hlZCBTaXplcyAqL1xuLnVpLnRpbnkuYXR0YWNoZWQuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2ZW07XG59XG4udWkuc21hbGwuYXR0YWNoZWQuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG59XG4udWkuYXR0YWNoZWQuaGVhZGVyOm5vdChoMSk6bm90KGgyKTpub3QoaDMpOm5vdChoNCk6bm90KGg1KTpub3QoaDYpIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkubGFyZ2UuYXR0YWNoZWQuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0ZW07XG59XG4udWkuaHVnZS5hdHRhY2hlZC5oZWFkZXIge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXppbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXI6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpOm5vdChoNikge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBJY29uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEljb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb250IEZpbGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuIE9wdGlvbmFsIEZpbGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogT3V0bGluZSBJY29ucyAqL1xuLyogQnJhbmQgSWNvbnMgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERlZmluaXRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uIFZhcmlhYmxlcyAqL1xuLyogVmFyaWF0aW9ucyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgSWNvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvbnQgRmlsZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gT3B0aW9uYWwgRmlsZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBPdXRsaW5lIEljb25zICovXG4vKiBCcmFuZCBJY29ucyAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRGVmaW5pdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gVmFyaWFibGVzICovXG4vKiBWYXJpYXRpb25zICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJY29uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSWNvbnMnO1xuICBzcmM6IHVybChcIi9hc3NldHMvZm9udHMvaWNvbnMuZW90XCIpO1xuICBzcmM6IHVybChcIi9hc3NldHMvZm9udHMvaWNvbnMuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybChcIi9hc3NldHMvZm9udHMvaWNvbnMud29mZjJcIikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL2ljb25zLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksIHVybChcIi9hc3NldHMvZm9udHMvaWNvbnMudHRmXCIpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9pY29ucy5zdmcjaWNvbnNcIikgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbmkuaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luOiAwZW0gMC4yNXJlbSAwZW0gMGVtO1xuICB3aWR0aDogMS4xOGVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgZm9udC1mYW1pbHk6ICdJY29ucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5pLmljb246YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuaS5pY29uLmxvYWRpbmcge1xuICBoZWlnaHQ6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGFuaW1hdGlvbjogaWNvbi1sb2FkaW5nIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgaWNvbi1sb2FkaW5nIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaS5pY29uLmhvdmVyIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuaS5pY29uLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cbmkuZW1waGFzaXplZC5pY29uIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuaS5kaXNhYmxlZC5pY29uIHtcbiAgb3BhY2l0eTogMC40NSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkuZml0dGVkLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgTGlua1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5saW5rLmljb24sXG5pLmxpbmsuaWNvbnMge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuODtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG5pLmxpbmsuaWNvbjpob3ZlcixcbmkubGluay5pY29uczpob3ZlciB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkuY2lyY3VsYXIuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMGVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNWVtIDBlbSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwLjFlbSByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XG4gIHdpZHRoOiAyZW0gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyZW0gIWltcG9ydGFudDtcbn1cbmkuY2lyY3VsYXIuaW52ZXJ0ZWQuaWNvbiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRmxpcHBlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5mbGlwcGVkLmljb24sXG5pLmhvcml6b250YWxseS5mbGlwcGVkLmljb24ge1xuICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbn1cbmkudmVydGljYWxseS5mbGlwcGVkLmljb24ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUm90YXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5yb3RhdGVkLmljb24sXG5pLnJpZ2h0LnJvdGF0ZWQuaWNvbixcbmkuY2xvY2t3aXNlLnJvdGF0ZWQuaWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cbmkubGVmdC5yb3RhdGVkLmljb24sXG5pLmNvdW50ZXJjbG9ja3dpc2Uucm90YXRlZC5pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkuYm9yZGVyZWQuaWNvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHdpZHRoOiAyZW07XG4gIGhlaWdodDogMmVtO1xuICBwYWRkaW5nOiAwLjVlbSAwZW0gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMC4xZW0gcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0O1xufVxuaS5ib3JkZXJlZC5pbnZlcnRlZC5pY29uIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgU2hhcGVzICovXG5pLmludmVydGVkLmJvcmRlcmVkLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmljb24ge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVkICovXG5pLnJlZC5pY29uIHtcbiAgY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQucmVkLmljb24ge1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5yZWQuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIucmVkLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBPcmFuZ2UgKi9cbmkub3JhbmdlLmljb24ge1xuICBjb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5vcmFuZ2UuaWNvbiB7XG4gIGNvbG9yOiAjRkY4NTFCICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLm9yYW5nZS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5vcmFuZ2UuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFllbGxvdyAqL1xuaS55ZWxsb3cuaWNvbiB7XG4gIGNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnllbGxvdy5pY29uIHtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQueWVsbG93Lmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnllbGxvdy5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogT2xpdmUgKi9cbmkub2xpdmUuaWNvbiB7XG4gIGNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLm9saXZlLmljb24ge1xuICBjb2xvcjogI0Q5RTc3OCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5vbGl2ZS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5vbGl2ZS5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogR3JlZW4gKi9cbmkuZ3JlZW4uaWNvbiB7XG4gIGNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmdyZWVuLmljb24ge1xuICBjb2xvcjogIzJFQ0M0MCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5ncmVlbi5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5ncmVlbi5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogVGVhbCAqL1xuaS50ZWFsLmljb24ge1xuICBjb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC50ZWFsLmljb24ge1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC50ZWFsLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnRlYWwuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJsdWUgKi9cbmkuYmx1ZS5pY29uIHtcbiAgY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYmx1ZS5pY29uIHtcbiAgY29sb3I6ICM1MzkxQzUgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuYmx1ZS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5ibHVlLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBWaW9sZXQgKi9cbmkudmlvbGV0Lmljb24ge1xuICBjb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC52aW9sZXQuaWNvbiB7XG4gIGNvbG9yOiAjQTI5MUZCICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnZpb2xldC5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci52aW9sZXQuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFB1cnBsZSAqL1xuaS5wdXJwbGUuaWNvbiB7XG4gIGNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnB1cnBsZS5pY29uIHtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQucHVycGxlLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnB1cnBsZS5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogUGluayAqL1xuaS5waW5rLmljb24ge1xuICBjb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5waW5rLmljb24ge1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5waW5rLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnBpbmsuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJyb3duICovXG5pLmJyb3duLmljb24ge1xuICBjb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5icm93bi5pY29uIHtcbiAgY29sb3I6ICNENjdDMUMgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuYnJvd24uaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIuYnJvd24uaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEdyZXkgKi9cbmkuZ3JleS5pY29uIHtcbiAgY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuZ3JleS5pY29uIHtcbiAgY29sb3I6ICNEQ0REREUgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuZ3JleS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5ncmV5Lmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBCbGFjayAqL1xuaS5ibGFjay5pY29uIHtcbiAgY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYmxhY2suaWNvbiB7XG4gIGNvbG9yOiAjNTQ1NDU0ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLmJsYWNrLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmJsYWNrLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkubWluaS5pY29uLFxuaS5taW5pLmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC40ZW07XG59XG5pLnRpbnkuaWNvbixcbmkudGlueS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDAuNWVtO1xufVxuaS5zbWFsbC5pY29uLFxuaS5zbWFsbC5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDAuNzVlbTtcbn1cbmkuaWNvbixcbmkuaWNvbnMge1xuICBmb250LXNpemU6IDFlbTtcbn1cbmkubGFyZ2UuaWNvbixcbmkubGFyZ2UuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbn1cbmkuYmlnLmljb24sXG5pLmJpZy5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDJlbTtcbn1cbmkuaHVnZS5pY29uLFxuaS5odWdlLmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogNGVtO1xufVxuaS5tYXNzaXZlLmljb24sXG5pLm1hc3NpdmUuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiA4ZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgR3JvdXBzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaS5pY29ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbmkuaWNvbnMgLmljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICBtYXJnaW46IDBlbTtcbiAgbWFyZ2luOiAwO1xufVxuaS5pY29ucyAuaWNvbjpmaXJzdC1jaGlsZCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xufVxuLyogQ29ybmVyIEljb24gKi9cbmkuaWNvbnMgLmNvcm5lci5pY29uIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC40NWVtO1xuICB0ZXh0LXNoYWRvdzogLTFweCAtMXB4IDAgI0ZGRkZGRiwgMXB4IC0xcHggMCAjRkZGRkZGLCAtMXB4IDFweCAwICNGRkZGRkYsIDFweCAxcHggMCAjRkZGRkZGO1xufVxuaS5pY29ucyAudG9wLnJpZ2h0LmNvcm5lci5pY29uIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgYm90dG9tOiBhdXRvO1xufVxuaS5pY29ucyAudG9wLmxlZnQuY29ybmVyLmljb24ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG59XG5pLmljb25zIC5ib3R0b20ubGVmdC5jb3JuZXIuaWNvbiB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogMDtcbn1cbmkuaWNvbnMgLmJvdHRvbS5yaWdodC5jb3JuZXIuaWNvbiB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbn1cbmkuaWNvbnMgLmludmVydGVkLmNvcm5lci5pY29uIHtcbiAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICMxQjFDMUQsIDFweCAtMXB4IDAgIzFCMUMxRCwgLTFweCAxcHggMCAjMUIxQzFELCAxcHggMXB4IDAgIzFCMUMxRDtcbn1cbi8qXG4gKiBGb250IEF3ZXNvbWUgNS4wLjggYnkgQGZvbnRhd2Vzb21lIC0gaHR0cDovL2ZvbnRhd2Vzb21lLmlvIC0gQGZvbnRhd2Vzb21lXG4gKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZSAoSWNvbnM6IENDIEJZIDQuMCBMaWNlbnNlLCBGb250czogU0lMIE9GTCAxLjEgTGljZW5zZSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuU2VtYW50aWMtVUkgaW50ZWdyYXRpb24gb2YgZm9udC1hd2Vzb21lIDpcblxuLy8vY2xhc3MgbmFtZXMgYXJlIHNlcGFyYXRlZFxuaS5pY29uLmNpcmNsZSA9PiBpLmljb24uY2lyY2xlXG5pLmljb24uY2lyY2xlLW8gPT4gaS5pY29uLmNpcmNsZS5vdXRsaW5lXG5cbi8vYWJicmV2aWF0aW9uIGFyZSByZXBsYWNlZCBieSBmdWxsIGxldHRlcnM6XG5pLmljb24uZWxsaXBzaXMtaCA9PiBpLmljb24uZWxsaXBzaXMuaG9yaXpvbnRhbFxuaS5pY29uLmVsbGlwc2lzLXYgPT4gaS5pY29uLmVsbGlwc2lzLnZlcnRpY2FsXG4uYWxwaGEgPT4gLmkuaWNvbi5hbHBoYWJldFxuLmFzYyA9PiAuaS5pY29uLmFzY2VuZGluZ1xuLmRlc2MgPT4gLmkuaWNvbi5kZXNjZW5kaW5nXG4uYWx0ID0+LmFsdGVybmF0ZVxuXG5BU0NJSSBvcmRlciBpcyBjb25zZXJ2ZWQgZm9yIGVhc2llciBtYWludGVuYW5jZS5cblxuSWNvbnMgdGhhdCBvbmx5IGhhdmUgb25lIHN0eWxlICdvdXRsaW5lJywgJ3NxdWFyZScgZXRjIGRvIG5vdCByZXF1aXJlIHRoaXMgY2xhc3NcbmZvciBpbnN0YW5jZSBgbGVtb24gaWNvbmAgbm90IGBsZW1vbiBvdXRsaW5lIGljb25gIHNpbmNlIHRoZXJlIGlzIG9ubHkgb25lIGxlbW9uXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSWNvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBEZXByZWNhdGVkICpJbi9PdXQgTmFtaW5nIENvbmZsaWN0KSAqL1xuaS5pY29uLmxpbmtlZGluLmluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUxXCI7XG59XG5pLmljb24uem9vbS5pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiO1xufVxuaS5pY29uLnpvb20ub3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEwXCI7XG59XG5pLmljb24uc2lnbi5pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNlwiO1xufVxuaS5pY29uLmluLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMThcIjtcbn1cbmkuaWNvbi5sb2cub3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY1XCI7XG59XG5pLmljb24uc2lnbi5vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjVcIjtcbn1cbi8qIEljb25zICovXG5pLmljb24uXFwzNSAwMHB4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZlXCI7XG59XG5pLmljb24uYWNjZXNzaWJsZS5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzY4XCI7XG59XG5pLmljb24uYWNjdXNvZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjlcIjtcbn1cbmkuaWNvbi5hZGRyZXNzLmJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjlcIjtcbn1cbmkuaWNvbi5hZGRyZXNzLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmJcIjtcbn1cbmkuaWNvbi5hZGp1c3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDJcIjtcbn1cbmkuaWNvbi5hZG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzBcIjtcbn1cbmkuaWNvbi5hZHZlcnNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2YVwiO1xufVxuaS5pY29uLmFmZmlsaWF0ZXRoZW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZiXCI7XG59XG5pLmljb24uYWxnb2xpYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2Y1wiO1xufVxuaS5pY29uLmFsaWduLmNlbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzN1wiO1xufVxuaS5pY29uLmFsaWduLmp1c3RpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzlcIjtcbn1cbmkuaWNvbi5hbGlnbi5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM2XCI7XG59XG5pLmljb24uYWxpZ24ucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzhcIjtcbn1cbmkuaWNvbi5hbWF6b246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzBcIjtcbn1cbmkuaWNvbi5hbWF6b24ucGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJjXCI7XG59XG5pLmljb24uYW1idWxhbmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY5XCI7XG59XG5pLmljb24uYW1lcmljYW4uc2lnbi5sYW5ndWFnZS5pbnRlcnByZXRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTNcIjtcbn1cbmkuaWNvbi5hbWlsaWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmRcIjtcbn1cbmkuaWNvbi5hbmNob3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2RcIjtcbn1cbmkuaWNvbi5hbmRyb2lkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdiXCI7XG59XG5pLmljb24uYW5nZWxsaXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA5XCI7XG59XG5pLmljb24uYW5nbGUuZG91YmxlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDNcIjtcbn1cbmkuaWNvbi5hbmdsZS5kb3VibGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMFwiO1xufVxuaS5pY29uLmFuZ2xlLmRvdWJsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMVwiO1xufVxuaS5pY29uLmFuZ2xlLmRvdWJsZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMlwiO1xufVxuaS5pY29uLmFuZ2xlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDdcIjtcbn1cbmkuaWNvbi5hbmdsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA0XCI7XG59XG5pLmljb24uYW5nbGUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDVcIjtcbn1cbmkuaWNvbi5hbmdsZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNlwiO1xufVxuaS5pY29uLmFuZ3J5Y3JlYXRpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmVcIjtcbn1cbmkuaWNvbi5hbmd1bGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDIwXCI7XG59XG5pLmljb24uYXBwLnN0b3JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZmXCI7XG59XG5pLmljb24uYXBwLnN0b3JlLmlvczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3MFwiO1xufVxuaS5pY29uLmFwcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzcxXCI7XG59XG5pLmljb24uYXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzlcIjtcbn1cbmkuaWNvbi5hcHBsZS5wYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTVcIjtcbn1cbmkuaWNvbi5hcmNoaXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg3XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU4XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU5XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1YVwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWJcIjtcbn1cbmkuaWNvbi5hcnJvdy5jaXJjbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhYlwiO1xufVxuaS5pY29uLmFycm93LmNpcmNsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE4XCI7XG59XG5pLmljb24uYXJyb3cuY2lyY2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE5XCI7XG59XG5pLmljb24uYXJyb3cuY2lyY2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFhXCI7XG59XG5pLmljb24uYXJyb3cuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2M1wiO1xufVxuaS5pY29uLmFycm93LmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjBcIjtcbn1cbmkuaWNvbi5hcnJvdy5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2MVwiO1xufVxuaS5pY29uLmFycm93LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDYyXCI7XG59XG5pLmljb24uYXJyb3dzLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMlwiO1xufVxuaS5pY29uLmFycm93cy5hbHRlcm5hdGUuaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzN1wiO1xufVxuaS5pY29uLmFycm93cy5hbHRlcm5hdGUudmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzhcIjtcbn1cbmkuaWNvbi5hc3Npc3RpdmUubGlzdGVuaW5nLnN5c3RlbXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTJcIjtcbn1cbmkuaWNvbi5hc3RlcmlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2OVwiO1xufVxuaS5pY29uLmFzeW1tZXRyaWs6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzJcIjtcbn1cbmkuaWNvbi5hdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmYVwiO1xufVxuaS5pY29uLmF1ZGlibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzNcIjtcbn1cbmkuaWNvbi5hdWRpby5kZXNjcmlwdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5ZVwiO1xufVxuaS5pY29uLmF1dG9wcmVmaXhlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxY1wiO1xufVxuaS5pY29uLmF2aWFuZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzRcIjtcbn1cbmkuaWNvbi5hdmlhdG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjFcIjtcbn1cbmkuaWNvbi5hd3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzVcIjtcbn1cbmkuaWNvbi5iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0YVwiO1xufVxuaS5pY29uLmJhbGFuY2Uuc2NhbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGVcIjtcbn1cbmkuaWNvbi5iYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNWVcIjtcbn1cbmkuaWNvbi5iYW5kLmFpZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2MlwiO1xufVxuaS5pY29uLmJhbmRjYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ1XCI7XG59XG5pLmljb24uYmFyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyYVwiO1xufVxuaS5pY29uLmJhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzlcIjtcbn1cbmkuaWNvbi5iYXNlYmFsbC5iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDMzXCI7XG59XG5pLmljb24uYmFza2V0YmFsbC5iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDM0XCI7XG59XG5pLmljb24uYmF0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjZFwiO1xufVxuaS5pY29uLmJhdHRlcnkuZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDRcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDBcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LmhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDJcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LnF1YXJ0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDNcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LnRocmVlLnF1YXJ0ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQxXCI7XG59XG5pLmljb24uYmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM2XCI7XG59XG5pLmljb24uYmVlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmY1wiO1xufVxuaS5pY29uLmJlaGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjRcIjtcbn1cbmkuaWNvbi5iZWhhbmNlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNVwiO1xufVxuaS5pY29uLmJlbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjNcIjtcbn1cbmkuaWNvbi5iZWxsLnNsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY2XCI7XG59XG5pLmljb24uYmljeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNlwiO1xufVxuaS5pY29uLmJpbW9iamVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3OFwiO1xufVxuaS5pY29uLmJpbm9jdWxhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTVcIjtcbn1cbmkuaWNvbi5iaXJ0aGRheS5jYWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZkXCI7XG59XG5pLmljb24uYml0YnVja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcxXCI7XG59XG5pLmljb24uYml0Y29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3OVwiO1xufVxuaS5pY29uLmJpdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2FcIjtcbn1cbmkuaWNvbi5ibGFjay50aWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2VcIjtcbn1cbmkuaWNvbi5ibGFja2JlcnJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdiXCI7XG59XG5pLmljb24uYmxpbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOWRcIjtcbn1cbmkuaWNvbi5ibG9nZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdjXCI7XG59XG5pLmljb24uYmxvZ2dlci5iOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdkXCI7XG59XG5pLmljb24uYmx1ZXRvb3RoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkzXCI7XG59XG5pLmljb24uYmx1ZXRvb3RoLmI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTRcIjtcbn1cbmkuaWNvbi5ib2xkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMyXCI7XG59XG5pLmljb24uYm9sdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlN1wiO1xufVxuaS5pY29uLmJvbWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTJcIjtcbn1cbmkuaWNvbi5ib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJkXCI7XG59XG5pLmljb24uYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmVcIjtcbn1cbmkuaWNvbi5ib3dsaW5nLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzZcIjtcbn1cbmkuaWNvbi5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NjZcIjtcbn1cbmkuaWNvbi5ib3hlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2OFwiO1xufVxuaS5pY29uLmJyYWlsbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTFcIjtcbn1cbmkuaWNvbi5icmllZmNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjFcIjtcbn1cbmkuaWNvbi5idGM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWFcIjtcbn1cbmkuaWNvbi5idWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODhcIjtcbn1cbmkuaWNvbi5idWlsZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhZFwiO1xufVxuaS5pY29uLmJ1bGxob3JuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGExXCI7XG59XG5pLmljb24uYnVsbHNleWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDBcIjtcbn1cbmkuaWNvbi5idXJvbW9iZWxleHBlcnRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdmXCI7XG59XG5pLmljb24uYnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA3XCI7XG59XG5pLmljb24uYnV5c2VsbGFkczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwZFwiO1xufVxuaS5pY29uLmNhbGN1bGF0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWNcIjtcbn1cbmkuaWNvbi5jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzM1wiO1xufVxuaS5pY29uLmNhbGVuZGFyLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3M1wiO1xufVxuaS5pY29uLmNhbGVuZGFyLmNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc0XCI7XG59XG5pLmljb24uY2FsZW5kYXIubWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzJcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcxXCI7XG59XG5pLmljb24uY2FsZW5kYXIudGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzNcIjtcbn1cbmkuaWNvbi5jYW1lcmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzBcIjtcbn1cbmkuaWNvbi5jYW1lcmEucmV0cm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODNcIjtcbn1cbmkuaWNvbi5jYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjlcIjtcbn1cbmkuaWNvbi5jYXJldC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ3XCI7XG59XG5pLmljb24uY2FyZXQubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOVwiO1xufVxuaS5pY29uLmNhcmV0LnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRhXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTBcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MVwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MlwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MVwiO1xufVxuaS5pY29uLmNhcmV0LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ4XCI7XG59XG5pLmljb24uY2FydC5hcnJvdy5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE4XCI7XG59XG5pLmljb24uY2FydC5wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE3XCI7XG59XG5pLmljb24uY2MuYW1hem9uLnBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyZFwiO1xufVxuaS5pY29uLmNjLmFtZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbmkuaWNvbi5jYy5hcHBsZS5wYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTZcIjtcbn1cbmkuaWNvbi5jYy5kaW5lcnMuY2x1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0Y1wiO1xufVxuaS5pY29uLmNjLmRpc2NvdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYyXCI7XG59XG5pLmljb24uY2MuamNiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG5pLmljb24uY2MubWFzdGVyY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuaS5pY29uLmNjLnBheXBhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNFwiO1xufVxuaS5pY29uLmNjLnN0cmlwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNVwiO1xufVxuaS5pY29uLmNjLnZpc2E6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbmkuaWNvbi5jZW50ZXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgwXCI7XG59XG5pLmljb24uY2VydGlmaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTNcIjtcbn1cbmkuaWNvbi5jaGFydC5hcmVhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZlXCI7XG59XG5pLmljb24uY2hhcnQuYmFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgwXCI7XG59XG5pLmljb24uY2hhcnQubGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMVwiO1xufVxuaS5pY29uLmNoYXJ0LnBpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuaS5pY29uLmNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG59XG5pLmljb24uY2hlY2suY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU4XCI7XG59XG5pLmljb24uY2hlY2suc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRhXCI7XG59XG5pLmljb24uY2hlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzlcIjtcbn1cbmkuaWNvbi5jaGVzcy5iaXNob3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0M2FcIjtcbn1cbmkuaWNvbi5jaGVzcy5ib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzY1wiO1xufVxuaS5pY29uLmNoZXNzLmtpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0M2ZcIjtcbn1cbmkuaWNvbi5jaGVzcy5rbmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDFcIjtcbn1cbmkuaWNvbi5jaGVzcy5wYXduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQzXCI7XG59XG5pLmljb24uY2hlc3MucXVlZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDVcIjtcbn1cbmkuaWNvbi5jaGVzcy5yb29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQ3XCI7XG59XG5pLmljb24uY2hldnJvbi5jaXJjbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzYVwiO1xufVxuaS5pY29uLmNoZXZyb24uY2lyY2xlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzdcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLmNpcmNsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOFwiO1xufVxuaS5pY29uLmNoZXZyb24uY2lyY2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7XG59XG5pLmljb24uY2hldnJvbi5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc4XCI7XG59XG5pLmljb24uY2hldnJvbi5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUzXCI7XG59XG5pLmljb24uY2hldnJvbi5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1NFwiO1xufVxuaS5pY29uLmNoZXZyb24udXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzdcIjtcbn1cbmkuaWNvbi5jaGlsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhZVwiO1xufVxuaS5pY29uLmNocm9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2OFwiO1xufVxuaS5pY29uLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMVwiO1xufVxuaS5pY29uLmNpcmNsZS5ub3RjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZVwiO1xufVxuaS5pY29uLmNsaXBib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyOFwiO1xufVxuaS5pY29uLmNsaXBib2FyZC5jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2Y1wiO1xufVxuaS5pY29uLmNsaXBib2FyZC5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDZkXCI7XG59XG5pLmljb24uY2xvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTdcIjtcbn1cbmkuaWNvbi5jbG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0ZFwiO1xufVxuaS5pY29uLmNsb3NlZC5jYXB0aW9uaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBhXCI7XG59XG5pLmljb24uY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzJcIjtcbn1cbmkuaWNvbi5jbG91ZHNjYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgzXCI7XG59XG5pLmljb24uY2xvdWRzbWl0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4NFwiO1xufVxuaS5pY29uLmNsb3VkdmVyc2lmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4NVwiO1xufVxuaS5pY29uLmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjFcIjtcbn1cbmkuaWNvbi5jb2RlLmJyYW5jaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNlwiO1xufVxuaS5pY29uLmNvZGVwZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2JcIjtcbn1cbmkuaWNvbi5jb2RpZXBpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4NFwiO1xufVxuaS5pY29uLmNvZmZlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmNFwiO1xufVxuaS5pY29uLmNvZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxM1wiO1xufVxuaS5pY29uLmNvZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODVcIjtcbn1cbmkuaWNvbi5jb2x1bW5zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRiXCI7XG59XG5pLmljb24uY29tbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NVwiO1xufVxuaS5pY29uLmNvbW1lbnQuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdhXCI7XG59XG5pLmljb24uY29tbWVudHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODZcIjtcbn1cbmkuaWNvbi5jb21wYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRlXCI7XG59XG5pLmljb24uY29tcHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjZcIjtcbn1cbmkuaWNvbi5jb25uZWN0ZGV2ZWxvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwZVwiO1xufVxuaS5pY29uLmNvbnRhbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2ZFwiO1xufVxuaS5pY29uLmNvcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzVcIjtcbn1cbmkuaWNvbi5jb3B5cmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjlcIjtcbn1cbmkuaWNvbi5jcGFuZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODhcIjtcbn1cbmkuaWNvbi5jcmVhdGl2ZS5jb21tb25zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVlXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWRcIjtcbn1cbmkuaWNvbi5jcm9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI1XCI7XG59XG5pLmljb24uY3Jvc3NoYWlyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1YlwiO1xufVxuaS5pY29uLmNzczM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2NcIjtcbn1cbmkuaWNvbi5jc3MzLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4YlwiO1xufVxuaS5pY29uLmN1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjJcIjtcbn1cbmkuaWNvbi5jdWJlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiM1wiO1xufVxuaS5pY29uLmN1dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNFwiO1xufVxuaS5pY29uLmN1dHRsZWZpc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGNcIjtcbn1cbmkuaWNvbi5kLmFuZC5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhkXCI7XG59XG5pLmljb24uZGFzaGN1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTBcIjtcbn1cbmkuaWNvbi5kYXRhYmFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMFwiO1xufVxuaS5pY29uLmRlYWY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTRcIjtcbn1cbmkuaWNvbi5kZWxpY2lvdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTVcIjtcbn1cbmkuaWNvbi5kZXBsb3lkb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGVcIjtcbn1cbmkuaWNvbi5kZXNrcHJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhmXCI7XG59XG5pLmljb24uZGVza3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOFwiO1xufVxuaS5pY29uLmRldmlhbnRhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmRcIjtcbn1cbmkuaWNvbi5kaWdnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE2XCI7XG59XG5pLmljb24uZGlnaXRhbC5vY2VhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5MVwiO1xufVxuaS5pY29uLmRpc2NvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTJcIjtcbn1cbmkuaWNvbi5kaXNjb3Vyc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTNcIjtcbn1cbmkuaWNvbi5kbmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NzFcIjtcbn1cbmkuaWNvbi5kb2NodWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTRcIjtcbn1cbmkuaWNvbi5kb2NrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTVcIjtcbn1cbmkuaWNvbi5kb2xsYXIuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NVwiO1xufVxuaS5pY29uLmRvbGx5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDcyXCI7XG59XG5pLmljb24uZG9sbHkuZmxhdGJlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3NFwiO1xufVxuaS5pY29uLmRvdC5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTJcIjtcbn1cbmkuaWNvbi5kb3dubG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxOVwiO1xufVxuaS5pY29uLmRyYWZ0MmRpZ2l0YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTZcIjtcbn1cbmkuaWNvbi5kcmliYmJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3ZFwiO1xufVxuaS5pY29uLmRyaWJiYmxlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5N1wiO1xufVxuaS5pY29uLmRyb3Bib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNmJcIjtcbn1cbmkuaWNvbi5kcnVwYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTlcIjtcbn1cbmkuaWNvbi5keWFsb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTlcIjtcbn1cbmkuaWNvbi5lYXJseWJpcmRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlhXCI7XG59XG5pLmljb24uZWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MlwiO1xufVxuaS5pY29uLmVkaXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDRcIjtcbn1cbmkuaWNvbi5lamVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1MlwiO1xufVxuaS5pY29uLmVsZW1lbnRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzMFwiO1xufVxuaS5pY29uLmVsbGlwc2lzLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDFcIjtcbn1cbmkuaWNvbi5lbGxpcHNpcy52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MlwiO1xufVxuaS5pY29uLmVtYmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDIzXCI7XG59XG5pLmljb24uZW1waXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQxXCI7XG59XG5pLmljb24uZW52ZWxvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTBcIjtcbn1cbmkuaWNvbi5lbnZlbG9wZS5vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI2XCI7XG59XG5pLmljb24uZW52ZWxvcGUuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk5XCI7XG59XG5pLmljb24uZW52aXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk5XCI7XG59XG5pLmljb24uZXJhc2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJkXCI7XG59XG5pLmljb24uZXJsYW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlkXCI7XG59XG5pLmljb24uZXRoZXJldW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MmVcIjtcbn1cbmkuaWNvbi5ldHN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ3XCI7XG59XG5pLmljb24uZXVyby5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUzXCI7XG59XG5pLmljb24uZXhjaGFuZ2UuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYyXCI7XG59XG5pLmljb24uZXhjbGFtYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmFcIjtcbn1cbmkuaWNvbi5leGNsYW1hdGlvbi5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmFcIjtcbn1cbmkuaWNvbi5leGNsYW1hdGlvbi50cmlhbmdsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3MVwiO1xufVxuaS5pY29uLmV4cGFuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NVwiO1xufVxuaS5pY29uLmV4cGFuZC5hcnJvd3MuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzFlXCI7XG59XG5pLmljb24uZXhwZWRpdGVkc3NsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNlXCI7XG59XG5pLmljb24uZXh0ZXJuYWwuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzVkXCI7XG59XG5pLmljb24uZXh0ZXJuYWwuc3F1YXJlLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2MFwiO1xufVxuaS5pY29uLmV5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2ZVwiO1xufVxuaS5pY29uLmV5ZS5kcm9wcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZiXCI7XG59XG5pLmljb24uZXllLnNsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcwXCI7XG59XG5pLmljb24uZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWFcIjtcbn1cbmkuaWNvbi5mYWNlYm9vay5mOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzllXCI7XG59XG5pLmljb24uZmFjZWJvb2subWVzc2VuZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlmXCI7XG59XG5pLmljb24uZmFjZWJvb2suc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgyXCI7XG59XG5pLmljb24uZmFzdC5iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0OVwiO1xufVxuaS5pY29uLmZhc3QuZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1MFwiO1xufVxuaS5pY29uLmZheDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhY1wiO1xufVxuaS5pY29uLmZlbWFsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MlwiO1xufVxuaS5pY29uLmZpZ2h0ZXIuamV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZiXCI7XG59XG5pLmljb24uZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1YlwiO1xufVxuaS5pY29uLmZpbGUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVjXCI7XG59XG5pLmljb24uZmlsZS5hcmNoaXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM2XCI7XG59XG5pLmljb24uZmlsZS5hdWRpbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjN1wiO1xufVxuaS5pY29uLmZpbGUuY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjOVwiO1xufVxuaS5pY29uLmZpbGUuZXhjZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzNcIjtcbn1cbmkuaWNvbi5maWxlLmltYWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM1XCI7XG59XG5pLmljb24uZmlsZS5wZGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzFcIjtcbn1cbmkuaWNvbi5maWxlLnBvd2VycG9pbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzRcIjtcbn1cbmkuaWNvbi5maWxlLnZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM4XCI7XG59XG5pLmljb24uZmlsZS53b3JkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMyXCI7XG59XG5pLmljb24uZmlsbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwOFwiO1xufVxuaS5pY29uLmZpbHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMFwiO1xufVxuaS5pY29uLmZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmRcIjtcbn1cbmkuaWNvbi5maXJlLmV4dGluZ3Vpc2hlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNFwiO1xufVxuaS5pY29uLmZpcmVmb3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjlcIjtcbn1cbmkuaWNvbi5maXJzdC5haWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NzlcIjtcbn1cbmkuaWNvbi5maXJzdC5vcmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiMFwiO1xufVxuaS5pY29uLmZpcnN0ZHJhZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTFcIjtcbn1cbmkuaWNvbi5mbGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI0XCI7XG59XG5pLmljb24uZmxhZy5jaGVja2VyZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWVcIjtcbn1cbmkuaWNvbi5mbGFzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjM1wiO1xufVxuaS5pY29uLmZsaWNrcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2ZVwiO1xufVxuaS5pY29uLmZsaXBib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0ZFwiO1xufVxuaS5pY29uLmZseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxN1wiO1xufVxuaS5pY29uLmZvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3YlwiO1xufVxuaS5pY29uLmZvbGRlci5vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdjXCI7XG59XG5pLmljb24uZm9udDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzMVwiO1xufVxuaS5pY29uLmZvbnQuYXdlc29tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNFwiO1xufVxuaS5pY29uLmZvbnQuYXdlc29tZS5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWNcIjtcbn1cbmkuaWNvbi5mb250LmF3ZXNvbWUuZmxhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyNVwiO1xufVxuaS5pY29uLmZvbnRpY29uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MFwiO1xufVxuaS5pY29uLmZvbnRpY29ucy5maTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhMlwiO1xufVxuaS5pY29uLmZvb3RiYWxsLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NGVcIjtcbn1cbmkuaWNvbi5mb3J0LmF3ZXNvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODZcIjtcbn1cbmkuaWNvbi5mb3J0LmF3ZXNvbWUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2EzXCI7XG59XG5pLmljb24uZm9ydW1iZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTFcIjtcbn1cbmkuaWNvbi5mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDRlXCI7XG59XG5pLmljb24uZm91cnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MFwiO1xufVxuaS5pY29uLmZyZWUuY29kZS5jYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM1XCI7XG59XG5pLmljb24uZnJlZWJzZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhNFwiO1xufVxuaS5pY29uLmZyb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE5XCI7XG59XG5pLmljb24uZnV0Ym9sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUzXCI7XG59XG5pLmljb24uZ2FtZXBhZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYlwiO1xufVxuaS5pY29uLmdhdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUzXCI7XG59XG5pLmljb24uZ2VtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E1XCI7XG59XG5pLmljb24uZ2VuZGVybGVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyZFwiO1xufVxuaS5pY29uLmdldC5wb2NrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjVcIjtcbn1cbmkuaWNvbi5nZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MFwiO1xufVxuaS5pY29uLmdnLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MVwiO1xufVxuaS5pY29uLmdpZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmJcIjtcbn1cbmkuaWNvbi5naXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDNcIjtcbn1cbmkuaWNvbi5naXQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQyXCI7XG59XG5pLmljb24uZ2l0aHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDliXCI7XG59XG5pLmljb24uZ2l0aHViLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExM1wiO1xufVxuaS5pY29uLmdpdGh1Yi5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTJcIjtcbn1cbmkuaWNvbi5naXRrcmFrZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTZcIjtcbn1cbmkuaWNvbi5naXRsYWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTZcIjtcbn1cbmkuaWNvbi5naXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjZcIjtcbn1cbmkuaWNvbi5nbGFzcy5tYXJ0aW5pOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDAwXCI7XG59XG5pLmljb24uZ2xpZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTVcIjtcbn1cbmkuaWNvbi5nbGlkZS5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE2XCI7XG59XG5pLmljb24uZ2xvYmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWNcIjtcbn1cbmkuaWNvbi5nb2ZvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTdcIjtcbn1cbmkuaWNvbi5nb2xmLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTBcIjtcbn1cbmkuaWNvbi5nb29kcmVhZHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYThcIjtcbn1cbmkuaWNvbi5nb29kcmVhZHMuZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhOVwiO1xufVxuaS5pY29uLmdvb2dsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhMFwiO1xufVxuaS5pY29uLmdvb2dsZS5kcml2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhYVwiO1xufVxuaS5pY29uLmdvb2dsZS5wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FiXCI7XG59XG5pLmljb24uZ29vZ2xlLnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjNcIjtcbn1cbmkuaWNvbi5nb29nbGUucGx1cy5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ1XCI7XG59XG5pLmljb24uZ29vZ2xlLnBsdXMuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ0XCI7XG59XG5pLmljb24uZ29vZ2xlLndhbGxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlZVwiO1xufVxuaS5pY29uLmdyYWR1YXRpb24uY2FwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTlkXCI7XG59XG5pLmljb24uZ3JhdGlwYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODRcIjtcbn1cbmkuaWNvbi5ncmF2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ2XCI7XG59XG5pLmljb24uZ3JpcGZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWNcIjtcbn1cbmkuaWNvbi5ncnVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhZFwiO1xufVxuaS5pY29uLmd1bHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWVcIjtcbn1cbmkuaWNvbi5oLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmZFwiO1xufVxuaS5pY29uLmhhY2tlci5uZXdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ0XCI7XG59XG5pLmljb24uaGFja2VyLm5ld3Muc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FmXCI7XG59XG5pLmljb24uaGFuZC5saXphcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNThcIjtcbn1cbmkuaWNvbi5oYW5kLnBhcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU2XCI7XG59XG5pLmljb24uaGFuZC5wZWFjZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1YlwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhN1wiO1xufVxuaS5pY29uLmhhbmQucG9pbnQubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNVwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTRcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE2XCI7XG59XG5pLmljb24uaGFuZC5wb2ludGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVhXCI7XG59XG5pLmljb24uaGFuZC5yb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU1XCI7XG59XG5pLmljb24uaGFuZC5zY2lzc29yczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1N1wiO1xufVxuaS5pY29uLmhhbmQuc3BvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTlcIjtcbn1cbmkuaWNvbi5oYW5kc2hha2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjVcIjtcbn1cbmkuaWNvbi5oYXNodGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkyXCI7XG59XG5pLmljb24uaGRkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGEwXCI7XG59XG5pLmljb24uaGVhZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkY1wiO1xufVxuaS5pY29uLmhlYWRwaG9uZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjVcIjtcbn1cbmkuaWNvbi5oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuaS5pY29uLmhlYXJ0YmVhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxZVwiO1xufVxuaS5pY29uLmhpcHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTJcIjtcbn1cbmkuaWNvbi5oaXJlLmEuaGVscGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2IwXCI7XG59XG5pLmljb24uaGlzdG9yeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkYVwiO1xufVxuaS5pY29uLmhvY2tleS5wdWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDUzXCI7XG59XG5pLmljb24uaG9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxNVwiO1xufVxuaS5pY29uLmhvb2xpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI3XCI7XG59XG5pLmljb24uaG9zcGl0YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjhcIjtcbn1cbmkuaWNvbi5ob3NwaXRhbC5zeW1ib2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0N2VcIjtcbn1cbmkuaWNvbi5ob3RqYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjFcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTRcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3MuZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUzXCI7XG59XG5pLmljb24uaG91cmdsYXNzLmhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTJcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3Muc3RhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTFcIjtcbn1cbmkuaWNvbi5ob3V6ejpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3Y1wiO1xufVxuaS5pY29uLmh0bWw1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNiXCI7XG59XG5pLmljb24uaHVic3BvdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiMlwiO1xufVxuaS5pY29uLmkuY3Vyc29yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ2XCI7XG59XG5pLmljb24uaWQuYmFkZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzFcIjtcbn1cbmkuaWNvbi5pZC5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMyXCI7XG59XG5pLmljb24uaW1hZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2VcIjtcbn1cbmkuaWNvbi5pbWFnZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDJcIjtcbn1cbmkuaWNvbi5pbWRiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ4XCI7XG59XG5pLmljb24uaW5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWNcIjtcbn1cbmkuaWNvbi5pbmRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2NcIjtcbn1cbmkuaWNvbi5pbmR1c3RyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NVwiO1xufVxuaS5pY29uLmluZm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjlcIjtcbn1cbmkuaWNvbi5pbmZvLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1YVwiO1xufVxuaS5pY29uLmluc3RhZ3JhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2ZFwiO1xufVxuaS5pY29uLmludGVybmV0LmV4cGxvcmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZiXCI7XG59XG5pLmljb24uaW94aG9zdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwOFwiO1xufVxuaS5pY29uLml0YWxpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzM1wiO1xufVxuaS5pY29uLml0dW5lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiNFwiO1xufVxuaS5pY29uLml0dW5lcy5ub3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I1XCI7XG59XG5pLmljb24uamVua2luczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiNlwiO1xufVxuaS5pY29uLmpvZ2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I3XCI7XG59XG5pLmljb24uam9vbWxhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFhXCI7XG59XG5pLmljb24uanM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjhcIjtcbn1cbmkuaWNvbi5qcy5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjlcIjtcbn1cbmkuaWNvbi5qc2ZpZGRsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjY1wiO1xufVxuaS5pY29uLmtleTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NFwiO1xufVxuaS5pY29uLmtleWJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFjXCI7XG59XG5pLmljb24ua2V5Y2RuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JhXCI7XG59XG5pLmljb24ua2lja3N0YXJ0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmJcIjtcbn1cbmkuaWNvbi5raWNrc3RhcnRlci5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JjXCI7XG59XG5pLmljb24ua29ydnVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJmXCI7XG59XG5pLmljb24ubGFuZ3VhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWJcIjtcbn1cbmkuaWNvbi5sYXB0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDlcIjtcbn1cbmkuaWNvbi5sYXJhdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JkXCI7XG59XG5pLmljb24ubGFzdGZtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAyXCI7XG59XG5pLmljb24ubGFzdGZtLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwM1wiO1xufVxuaS5pY29uLmxlYWY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmNcIjtcbn1cbmkuaWNvbi5sZWFucHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjEyXCI7XG59XG5pLmljb24ubGVtb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTRcIjtcbn1cbmkuaWNvbi5sZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFkXCI7XG59XG5pLmljb24ubGV2ZWwuZG93bi5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmVcIjtcbn1cbmkuaWNvbi5sZXZlbC51cC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmZcIjtcbn1cbmkuaWNvbi5saWZlLnJpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2RcIjtcbn1cbmkuaWNvbi5saWdodGJ1bGI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZWJcIjtcbn1cbmkuaWNvbi5saW5lY2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjMFwiO1xufVxuaS5pY29uLmxpbmtpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzFcIjtcbn1cbmkuaWNvbi5saW5rZWRpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4Y1wiO1xufVxuaS5pY29uLmxpbmtlZGluLmFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMVwiO1xufVxuaS5pY29uLmxpbm9kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiOFwiO1xufVxuaS5pY29uLmxpbnV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdjXCI7XG59XG5pLmljb24ubGlyYS5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk1XCI7XG59XG5pLmljb24ubGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzYVwiO1xufVxuaS5pY29uLmxpc3QuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIyXCI7XG59XG5pLmljb24ubGlzdC5vbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYlwiO1xufVxuaS5pY29uLmxpc3QudWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2FcIjtcbn1cbmkuaWNvbi5sb2NhdGlvbi5hcnJvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNFwiO1xufVxuaS5pY29uLmxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjNcIjtcbn1cbmkuaWNvbi5sb2NrLm9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzFcIjtcbn1cbmkuaWNvbi5sb25nLmFycm93LmFsdGVybmF0ZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzA5XCI7XG59XG5pLmljb24ubG9uZy5hcnJvdy5hbHRlcm5hdGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwYVwiO1xufVxuaS5pY29uLmxvbmcuYXJyb3cuYWx0ZXJuYXRlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzBiXCI7XG59XG5pLmljb24ubG9uZy5hcnJvdy5hbHRlcm5hdGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGNcIjtcbn1cbmkuaWNvbi5sb3cudmlzaW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE4XCI7XG59XG5pLmljb24ubHlmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjM1wiO1xufVxuaS5pY29uLm1hZ2VudG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzRcIjtcbn1cbmkuaWNvbi5tYWdpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkMFwiO1xufVxuaS5pY29uLm1hZ25ldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NlwiO1xufVxuaS5pY29uLm1hbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODNcIjtcbn1cbmkuaWNvbi5tYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzlcIjtcbn1cbmkuaWNvbi5tYXAubWFya2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQxXCI7XG59XG5pLmljb24ubWFwLm1hcmtlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzVcIjtcbn1cbmkuaWNvbi5tYXAucGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc2XCI7XG59XG5pLmljb24ubWFwLnNpZ25zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc3XCI7XG59XG5pLmljb24ubWFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMlwiO1xufVxuaS5pY29uLm1hcnMuZG91YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI3XCI7XG59XG5pLmljb24ubWFycy5zdHJva2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjlcIjtcbn1cbmkuaWNvbi5tYXJzLnN0cm9rZS5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJiXCI7XG59XG5pLmljb24ubWFycy5zdHJva2UudmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmFcIjtcbn1cbmkuaWNvbi5tYXhjZG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzZcIjtcbn1cbmkuaWNvbi5tZWRhcHBzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M2XCI7XG59XG5pLmljb24ubWVkaXVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNhXCI7XG59XG5pLmljb24ubWVkaXVtLm06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzdcIjtcbn1cbmkuaWNvbi5tZWRraXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmFcIjtcbn1cbmkuaWNvbi5tZWRydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjOFwiO1xufVxuaS5pY29uLm1lZXR1cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlMFwiO1xufVxuaS5pY29uLm1laDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYVwiO1xufVxuaS5pY29uLm1lcmN1cnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjNcIjtcbn1cbmkuaWNvbi5taWNyb2NoaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGJcIjtcbn1cbmkuaWNvbi5taWNyb3Bob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMwXCI7XG59XG5pLmljb24ubWljcm9waG9uZS5zbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzMVwiO1xufVxuaS5pY29uLm1pY3Jvc29mdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjYVwiO1xufVxuaS5pY29uLm1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY4XCI7XG59XG5pLmljb24ubWludXMuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU2XCI7XG59XG5pLmljb24ubWludXMuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ2XCI7XG59XG5pLmljb24ubWl4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NiXCI7XG59XG5pLmljb24ubWl4Y2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODlcIjtcbn1cbmkuaWNvbi5taXp1bmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzY2NcIjtcbn1cbmkuaWNvbi5tb2JpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGJcIjtcbn1cbmkuaWNvbi5tb2JpbGUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NkXCI7XG59XG5pLmljb24ubW9keDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4NVwiO1xufVxuaS5pY29uLm1vbmVybzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMFwiO1xufVxuaS5pY29uLm1vbmV5LmJpbGwuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QxXCI7XG59XG5pLmljb24ubW9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NlwiO1xufVxuaS5pY29uLm1vdG9yY3ljbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWNcIjtcbn1cbmkuaWNvbi5tb3VzZS5wb2ludGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ1XCI7XG59XG5pLmljb24ubXVzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDFcIjtcbn1cbmkuaWNvbi5uYXBzdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QyXCI7XG59XG5pLmljb24ubmV1dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJjXCI7XG59XG5pLmljb24ubmV3c3BhcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVhXCI7XG59XG5pLmljb24ubmludGVuZG8uc3dpdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE4XCI7XG59XG5pLmljb24ubm9kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxOVwiO1xufVxuaS5pY29uLm5vZGUuanM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDNcIjtcbn1cbmkuaWNvbi5ucG06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDRcIjtcbn1cbmkuaWNvbi5uczg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDVcIjtcbn1cbmkuaWNvbi5udXRyaXRpb25peDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkNlwiO1xufVxuaS5pY29uLm9iamVjdC5ncm91cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0N1wiO1xufVxuaS5pY29uLm9iamVjdC51bmdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ4XCI7XG59XG5pLmljb24ub2Rub2tsYXNzbmlraTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2M1wiO1xufVxuaS5pY29uLm9kbm9rbGFzc25pa2kuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY0XCI7XG59XG5pLmljb24ub3BlbmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2RcIjtcbn1cbmkuaWNvbi5vcGVuaWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWJcIjtcbn1cbmkuaWNvbi5vcGVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2YVwiO1xufVxuaS5pY29uLm9wdGluLm1vbnN0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2NcIjtcbn1cbmkuaWNvbi5vc2k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWFcIjtcbn1cbmkuaWNvbi5vdXRkZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNiXCI7XG59XG5pLmljb24ucGFnZTQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDdcIjtcbn1cbmkuaWNvbi5wYWdlbGluZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGNcIjtcbn1cbmkuaWNvbi5wYWludC5icnVzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmY1wiO1xufVxuaS5pY29uLnBhbGZlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkOFwiO1xufVxuaS5pY29uLnBhbGxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ4MlwiO1xufVxuaS5pY29uLnBhcGVyLnBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ4XCI7XG59XG5pLmljb24ucGFwZXJjbGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM2XCI7XG59XG5pLmljb24ucGFyYWdyYXBoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRkXCI7XG59XG5pLmljb24ucGFzdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZWFcIjtcbn1cbmkuaWNvbi5wYXRyZW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q5XCI7XG59XG5pLmljb24ucGF1c2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGNcIjtcbn1cbmkuaWNvbi5wYXVzZS5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOGJcIjtcbn1cbmkuaWNvbi5wYXc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjBcIjtcbn1cbmkuaWNvbi5wYXlwYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWRcIjtcbn1cbmkuaWNvbi5wZW4uc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRiXCI7XG59XG5pLmljb24ucGVuY2lsLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwM1wiO1xufVxuaS5pY29uLnBlcmNlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTVcIjtcbn1cbmkuaWNvbi5wZXJpc2NvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGFcIjtcbn1cbmkuaWNvbi5waGFicmljYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkYlwiO1xufVxuaS5pY29uLnBob2VuaXguZnJhbWV3b3JrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RjXCI7XG59XG5pLmljb24ucGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTVcIjtcbn1cbmkuaWNvbi5waG9uZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOThcIjtcbn1cbmkuaWNvbi5waG9uZS52b2x1bWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTBcIjtcbn1cbmkuaWNvbi5waHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTdcIjtcbn1cbmkuaWNvbi5waWVkLnBpcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFlXCI7XG59XG5pLmljb24ucGllZC5waXBlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYThcIjtcbn1cbmkuaWNvbi5waWVkLnBpcGVyLnBwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE3XCI7XG59XG5pLmljb24ucGlsbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ODRcIjtcbn1cbmkuaWNvbi5waW50ZXJlc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDJcIjtcbn1cbmkuaWNvbi5waW50ZXJlc3QucDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzMVwiO1xufVxuaS5pY29uLnBpbnRlcmVzdC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDNcIjtcbn1cbmkuaWNvbi5wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3MlwiO1xufVxuaS5pY29uLnBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGJcIjtcbn1cbmkuaWNvbi5wbGF5LmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NFwiO1xufVxuaS5pY29uLnBsYXlzdGF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RmXCI7XG59XG5pLmljb24ucGx1ZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNlwiO1xufVxuaS5pY29uLnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjdcIjtcbn1cbmkuaWNvbi5wbHVzLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1NVwiO1xufVxuaS5pY29uLnBsdXMuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZlXCI7XG59XG5pLmljb24ucG9kY2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjZVwiO1xufVxuaS5pY29uLnBvdW5kLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTRcIjtcbn1cbmkuaWNvbi5wb3dlci5vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTFcIjtcbn1cbmkuaWNvbi5wcmludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyZlwiO1xufVxuaS5pY29uLnByb2R1Y3QuaHVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4OFwiO1xufVxuaS5pY29uLnB1c2hlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlMVwiO1xufVxuaS5pY29uLnB1enpsZS5waWVjZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyZVwiO1xufVxuaS5pY29uLnB5dGhvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlMlwiO1xufVxuaS5pY29uLnFxOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ2XCI7XG59XG5pLmljb24ucXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI5XCI7XG59XG5pLmljb24ucXVlc3Rpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjhcIjtcbn1cbmkuaWNvbi5xdWVzdGlvbi5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTlcIjtcbn1cbmkuaWNvbi5xdWlkZGl0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NThcIjtcbn1cbmkuaWNvbi5xdWluc2NhcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTlcIjtcbn1cbmkuaWNvbi5xdW9yYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjNFwiO1xufVxuaS5pY29uLnF1b3RlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGRcIjtcbn1cbmkuaWNvbi5xdW90ZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwZVwiO1xufVxuaS5pY29uLnJhbmRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NFwiO1xufVxuaS5pY29uLnJhdmVscnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDlcIjtcbn1cbmkuaWNvbi5yZWFjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxYlwiO1xufVxuaS5pY29uLnJlYmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQwXCI7XG59XG5pLmljb24ucmVjeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiOFwiO1xufVxuaS5pY29uLnJlZHJpdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2UzXCI7XG59XG5pLmljb24ucmVkZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWExXCI7XG59XG5pLmljb24ucmVkZGl0LmFsaWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjgxXCI7XG59XG5pLmljb24ucmVkZGl0LnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhMlwiO1xufVxuaS5pY29uLnJlZG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWVcIjtcbn1cbmkuaWNvbi5yZWRvLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmOVwiO1xufVxuaS5pY29uLnJlZ2lzdGVyZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWRcIjtcbn1cbmkuaWNvbi5yZW5kYWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U0XCI7XG59XG5pLmljb24ucmVucmVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThiXCI7XG59XG5pLmljb24ucmVwbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTVcIjtcbn1cbmkuaWNvbi5yZXBseS5hbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjJcIjtcbn1cbmkuaWNvbi5yZXBseWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTZcIjtcbn1cbmkuaWNvbi5yZXNvbHZpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTdcIjtcbn1cbmkuaWNvbi5yZXR3ZWV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc5XCI7XG59XG5pLmljb24ucm9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxOFwiO1xufVxuaS5pY29uLnJvY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNVwiO1xufVxuaS5pY29uLnJvY2tldGNoYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZThcIjtcbn1cbmkuaWNvbi5yb2Nrcm1zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U5XCI7XG59XG5pLmljb24ucnNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDllXCI7XG59XG5pLmljb24ucnNzLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0M1wiO1xufVxuaS5pY29uLnJ1YmxlLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbmkuaWNvbi5ydXBlZS5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG59XG5pLmljb24uc2FmYXJpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY3XCI7XG59XG5pLmljb24uc2FzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxZVwiO1xufVxuaS5pY29uLnNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzdcIjtcbn1cbmkuaWNvbi5zY2hsaXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWFcIjtcbn1cbmkuaWNvbi5zY3JpYmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOGFcIjtcbn1cbmkuaWNvbi5zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDJcIjtcbn1cbmkuaWNvbi5zZWFyY2gubWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTBcIjtcbn1cbmkuaWNvbi5zZWFyY2gucGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiO1xufVxuaS5pY29uLnNlYXJjaGVuZ2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ViXCI7XG59XG5pLmljb24uc2VsbGNhc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGFcIjtcbn1cbmkuaWNvbi5zZWxsc3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTNcIjtcbn1cbmkuaWNvbi5zZXJ2ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzNcIjtcbn1cbmkuaWNvbi5zZXJ2aWNlc3RhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWNcIjtcbn1cbmkuaWNvbi5zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NFwiO1xufVxuaS5pY29uLnNoYXJlLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlMFwiO1xufVxuaS5pY29uLnNoYXJlLmFsdGVybmF0ZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTFcIjtcbn1cbmkuaWNvbi5zaGFyZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGRcIjtcbn1cbmkuaWNvbi5zaGVrZWwuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYlwiO1xufVxuaS5pY29uLnNoaWVsZC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWRcIjtcbn1cbmkuaWNvbi5zaGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFhXCI7XG59XG5pLmljb24uc2hpcHBpbmcuZmFzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ4YlwiO1xufVxuaS5pY29uLnNoaXJ0c2luYnVsazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxNFwiO1xufVxuaS5pY29uLnNob3BwaW5nLmJhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5MFwiO1xufVxuaS5pY29uLnNob3BwaW5nLmJhc2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5MVwiO1xufVxuaS5pY29uLnNob3BwaW5nLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwN2FcIjtcbn1cbmkuaWNvbi5zaG93ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2NcIjtcbn1cbmkuaWNvbi5zaWduLmxhbmd1YWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE3XCI7XG59XG5pLmljb24uc2lnbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEyXCI7XG59XG5pLmljb24uc2ltcGx5YnVpbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTVcIjtcbn1cbmkuaWNvbi5zaXN0cml4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2VlXCI7XG59XG5pLmljb24uc2l0ZW1hcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlOFwiO1xufVxuaS5pY29uLnNreWF0bGFzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE2XCI7XG59XG5pLmljb24uc2t5cGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2VcIjtcbn1cbmkuaWNvbi5zbGFjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5OFwiO1xufVxuaS5pY29uLnNsYWNrLmhhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWZcIjtcbn1cbmkuaWNvbi5zbGlkZXJzLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGVcIjtcbn1cbmkuaWNvbi5zbGlkZXNoYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU3XCI7XG59XG5pLmljb24uc21pbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMThcIjtcbn1cbmkuaWNvbi5zbmFwY2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhYlwiO1xufVxuaS5pY29uLnNuYXBjaGF0Lmdob3N0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFjXCI7XG59XG5pLmljb24uc25hcGNoYXQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFkXCI7XG59XG5pLmljb24uc25vd2ZsYWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRjXCI7XG59XG5pLmljb24uc29ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkY1wiO1xufVxuaS5pY29uLnNvcnQuYWxwaGFiZXQuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1ZFwiO1xufVxuaS5pY29uLnNvcnQuYWxwaGFiZXQudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWVcIjtcbn1cbmkuaWNvbi5zb3J0LmFtb3VudC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYwXCI7XG59XG5pLmljb24uc29ydC5hbW91bnQudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjFcIjtcbn1cbmkuaWNvbi5zb3J0LmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGRcIjtcbn1cbmkuaWNvbi5zb3J0Lm51bWVyaWMuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MlwiO1xufVxuaS5pY29uLnNvcnQubnVtZXJpYy51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2M1wiO1xufVxuaS5pY29uLnNvcnQudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGVcIjtcbn1cbmkuaWNvbi5zb3VuZGNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJlXCI7XG59XG5pLmljb24uc3BhY2Uuc2h1dHRsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5N1wiO1xufVxuaS5pY29uLnNwZWFrYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjNcIjtcbn1cbmkuaWNvbi5zcGlubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEwXCI7XG59XG5pLmljb24uc3BvdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiY1wiO1xufVxuaS5pY29uLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOFwiO1xufVxuaS5pY29uLnNxdWFyZS5mdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDVjXCI7XG59XG5pLmljb24uc3RhY2suZXhjaGFuZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGRcIjtcbn1cbmkuaWNvbi5zdGFjay5vdmVyZmxvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2Y1wiO1xufVxuaS5pY29uLnN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDVcIjtcbn1cbmkuaWNvbi5zdGFyLmhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbmkuaWNvbi5zdGF5bGlua2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y1XCI7XG59XG5pLmljb24uc3RlYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjZcIjtcbn1cbmkuaWNvbi5zdGVhbS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjdcIjtcbn1cbmkuaWNvbi5zdGVhbS5zeW1ib2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjZcIjtcbn1cbmkuaWNvbi5zdGVwLmJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ4XCI7XG59XG5pLmljb24uc3RlcC5mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUxXCI7XG59XG5pLmljb24uc3RldGhvc2NvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjFcIjtcbn1cbmkuaWNvbi5zdGlja2VyLm11bGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjdcIjtcbn1cbmkuaWNvbi5zdGlja3kubm90ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0OVwiO1xufVxuaS5pY29uLnN0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGRcIjtcbn1cbmkuaWNvbi5zdG9wLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4ZFwiO1xufVxuaS5pY29uLnN0b3B3YXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmMlwiO1xufVxuaS5pY29uLnN0cmF2YTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyOFwiO1xufVxuaS5pY29uLnN0cmVldC52aWV3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFkXCI7XG59XG5pLmljb24uc3RyaWtldGhyb3VnaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjY1wiO1xufVxuaS5pY29uLnN0cmlwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyOVwiO1xufVxuaS5pY29uLnN0cmlwZS5zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJhXCI7XG59XG5pLmljb24uc3R1ZGlvdmluYXJpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y4XCI7XG59XG5pLmljb24uc3R1bWJsZXVwb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTRcIjtcbn1cbmkuaWNvbi5zdHVtYmxldXBvbi5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTNcIjtcbn1cbmkuaWNvbi5zdWJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmNcIjtcbn1cbmkuaWNvbi5zdWJ3YXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzlcIjtcbn1cbmkuaWNvbi5zdWl0Y2FzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMlwiO1xufVxuaS5pY29uLnN1bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NVwiO1xufVxuaS5pY29uLnN1cGVycG93ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRkXCI7XG59XG5pLmljb24uc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmJcIjtcbn1cbmkuaWNvbi5zdXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjlcIjtcbn1cbmkuaWNvbi5zeW5jOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIxXCI7XG59XG5pLmljb24uc3luYy5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjFcIjtcbn1cbmkuaWNvbi5zeXJpbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDhlXCI7XG59XG5pLmljb24udGFibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2VcIjtcbn1cbmkuaWNvbi50YWJsZS50ZW5uaXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NWRcIjtcbn1cbmkuaWNvbi50YWJsZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGFcIjtcbn1cbmkuaWNvbi50YWJsZXQuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ZhXCI7XG59XG5pLmljb24udGFjaG9tZXRlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmRcIjtcbn1cbmkuaWNvbi50YWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmJcIjtcbn1cbmkuaWNvbi50YWdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJjXCI7XG59XG5pLmljb24udGFza3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWVcIjtcbn1cbmkuaWNvbi50YXhpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJhXCI7XG59XG5pLmljb24udGVsZWdyYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzZcIjtcbn1cbmkuaWNvbi50ZWxlZ3JhbS5wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZVwiO1xufVxuaS5pY29uLnRlbmNlbnQud2VpYm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDVcIjtcbn1cbmkuaWNvbi50ZXJtaW5hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMFwiO1xufVxuaS5pY29uLnRleHQuaGVpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM0XCI7XG59XG5pLmljb24udGV4dC53aWR0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzNVwiO1xufVxuaS5pY29uLnRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBhXCI7XG59XG5pLmljb24udGgubGFyZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDlcIjtcbn1cbmkuaWNvbi50aC5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBiXCI7XG59XG5pLmljb24udGhlbWVpc2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIyXCI7XG59XG5pLmljb24udGhlcm1vbWV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OTFcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlci5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjYlwiO1xufVxuaS5pY29uLnRoZXJtb21ldGVyLmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzdcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlci5oYWxmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM5XCI7XG59XG5pLmljb24udGhlcm1vbWV0ZXIucXVhcnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjYVwiO1xufVxuaS5pY29uLnRoZXJtb21ldGVyLnRocmVlLnF1YXJ0ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM4XCI7XG59XG5pLmljb24udGh1bWJzLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjVcIjtcbn1cbmkuaWNvbi50aHVtYnMudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjRcIjtcbn1cbmkuaWNvbi50aHVtYnRhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGRcIjtcbn1cbmkuaWNvbi50aWNrZXQuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ZmXCI7XG59XG5pLmljb24udGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi50aW1lcy5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTdcIjtcbn1cbmkuaWNvbi50aW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQzXCI7XG59XG5pLmljb24udG9nZ2xlLm9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNFwiO1xufVxuaS5pY29uLnRvZ2dsZS5vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNVwiO1xufVxuaS5pY29uLnRyYWRlbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1Y1wiO1xufVxuaS5pY29uLnRyYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM4XCI7XG59XG5pLmljb24udHJhbnNnZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjRcIjtcbn1cbmkuaWNvbi50cmFuc2dlbmRlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjVcIjtcbn1cbmkuaWNvbi50cmFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmOFwiO1xufVxuaS5pY29uLnRyYXNoLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlZFwiO1xufVxuaS5pY29uLnRyZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmJcIjtcbn1cbmkuaWNvbi50cmVsbG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODFcIjtcbn1cbmkuaWNvbi50cmlwYWR2aXNvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MlwiO1xufVxuaS5pY29uLnRyb3BoeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5MVwiO1xufVxuaS5pY29uLnRydWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQxXCI7XG59XG5pLmljb24udHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU0XCI7XG59XG5pLmljb24udHVtYmxyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTczXCI7XG59XG5pLmljb24udHVtYmxyLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3NFwiO1xufVxuaS5pY29uLnR2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZjXCI7XG59XG5pLmljb24udHdpdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU4XCI7XG59XG5pLmljb24udHdpdHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5OVwiO1xufVxuaS5pY29uLnR3aXR0ZXIuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgxXCI7XG59XG5pLmljb24udHlwbzM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MmJcIjtcbn1cbmkuaWNvbi51YmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDAyXCI7XG59XG5pLmljb24udWlraXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDNcIjtcbn1cbmkuaWNvbi51bWJyZWxsYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlOVwiO1xufVxuaS5pY29uLnVuZGVybGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjZFwiO1xufVxuaS5pY29uLnVuZG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTJcIjtcbn1cbmkuaWNvbi51bmRvLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlYVwiO1xufVxuaS5pY29uLnVuaXJlZ2lzdHJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA0XCI7XG59XG5pLmljb24udW5pdmVyc2FsLmFjY2VzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5YVwiO1xufVxuaS5pY29uLnVuaXZlcnNpdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWNcIjtcbn1cbmkuaWNvbi51bmxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjdcIjtcbn1cbmkuaWNvbi51bmxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWNcIjtcbn1cbmkuaWNvbi51bmxvY2suYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNlXCI7XG59XG5pLmljb24udW50YXBwZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwNVwiO1xufVxuaS5pY29uLnVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5M1wiO1xufVxuaS5pY29uLnVzYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4N1wiO1xufVxuaS5pY29uLnVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDdcIjtcbn1cbmkuaWNvbi51c2VyLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiZFwiO1xufVxuaS5pY29uLnVzZXIubWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjBcIjtcbn1cbmkuaWNvbi51c2VyLnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzRcIjtcbn1cbmkuaWNvbi51c2VyLnNlY3JldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxYlwiO1xufVxuaS5pY29uLnVzZXIudGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi51c2VyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMFwiO1xufVxuaS5pY29uLnVzc3VubmFoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA3XCI7XG59XG5pLmljb24udXRlbnNpbC5zcG9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlNVwiO1xufVxuaS5pY29uLnV0ZW5zaWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU3XCI7XG59XG5pLmljb24udmFhZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA4XCI7XG59XG5pLmljb24udmVudXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjFcIjtcbn1cbmkuaWNvbi52ZW51cy5kb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjZcIjtcbn1cbmkuaWNvbi52ZW51cy5tYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI4XCI7XG59XG5pLmljb24udmlhY29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzN1wiO1xufVxuaS5pY29uLnZpYWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhOVwiO1xufVxuaS5pY29uLnZpYWRlby5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWFcIjtcbn1cbmkuaWNvbi52aWJlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwOVwiO1xufVxuaS5pY29uLnZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNkXCI7XG59XG5pLmljb24udmltZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MGFcIjtcbn1cbmkuaWNvbi52aW1lby5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTRcIjtcbn1cbmkuaWNvbi52aW1lby52OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdkXCI7XG59XG5pLmljb24udmluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjYVwiO1xufVxuaS5pY29uLnZrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg5XCI7XG59XG5pLmljb24udm52OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBiXCI7XG59XG5pLmljb24udm9sbGV5YmFsbC5iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDVmXCI7XG59XG5pLmljb24udm9sdW1lLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjdcIjtcbn1cbmkuaWNvbi52b2x1bWUub2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI2XCI7XG59XG5pLmljb24udm9sdW1lLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI4XCI7XG59XG5pLmljb24udnVlanM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWZcIjtcbn1cbmkuaWNvbi53YXJlaG91c2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OTRcIjtcbn1cbmkuaWNvbi53ZWlibzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4YVwiO1xufVxuaS5pY29uLndlaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5NlwiO1xufVxuaS5pY29uLndlaXhpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkN1wiO1xufVxuaS5pY29uLndoYXRzYXBwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMyXCI7XG59XG5pLmljb24ud2hhdHNhcHAuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBjXCI7XG59XG5pLmljb24ud2hlZWxjaGFpcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5M1wiO1xufVxuaS5pY29uLndobWNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBkXCI7XG59XG5pLmljb24ud2lmaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlYlwiO1xufVxuaS5pY29uLndpa2lwZWRpYS53OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY2XCI7XG59XG5pLmljb24ud2luZG93LmNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDEwXCI7XG59XG5pLmljb24ud2luZG93Lm1heGltaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQwXCI7XG59XG5pLmljb24ud2luZG93Lm1pbmltaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQxXCI7XG59XG5pLmljb24ud2luZG93LnJlc3RvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDJcIjtcbn1cbmkuaWNvbi53aW5kb3dzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdhXCI7XG59XG5pLmljb24ud29uLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTlcIjtcbn1cbmkuaWNvbi53b3JkcHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWFcIjtcbn1cbmkuaWNvbi53b3JkcHJlc3Muc2ltcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDExXCI7XG59XG5pLmljb24ud3BiZWdpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5N1wiO1xufVxuaS5pY29uLndwZXhwbG9yZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGVcIjtcbn1cbmkuaWNvbi53cGZvcm1zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk4XCI7XG59XG5pLmljb24ud3JlbmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFkXCI7XG59XG5pLmljb24ueGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMlwiO1xufVxuaS5pY29uLnhpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjhcIjtcbn1cbmkuaWNvbi54aW5nLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2OVwiO1xufVxuaS5pY29uLnkuY29tYmluYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzYlwiO1xufVxuaS5pY29uLnlhaG9vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTllXCI7XG59XG5pLmljb24ueWFuZGV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDEzXCI7XG59XG5pLmljb24ueWFuZGV4LmludGVybmF0aW9uYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTRcIjtcbn1cbmkuaWNvbi55ZWxwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU5XCI7XG59XG5pLmljb24ueWVuLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi55b2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiMVwiO1xufVxuaS5pY29uLnlvdXR1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjdcIjtcbn1cbmkuaWNvbi55b3V0dWJlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzMVwiO1xufVxuLyogQWxpYXNlcyAqL1xuaS5pY29uLmNoZXNzLnJvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDdcIjtcbn1cbmkuaWNvbi5vcmRlcmVkLmxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2JcIjtcbn1cbmkuaWNvbi51bm9yZGVyZWQubGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYVwiO1xufVxuaS5pY29uLnVzZXIuZG9jdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYwXCI7XG59XG5pLmljb24uc2hpZWxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2VkXCI7XG59XG5pLmljb24ucHV6emxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJlXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuYW1hem9uLnBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyZFwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmFtZXJpY2FuLmV4cHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5kaW5lcnMuY2x1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0Y1wiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmRpc2NvdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYyXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuamNiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQubWFzdGVyY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLnBheXBhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNFwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLnN0cmlwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNVwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLnZpc2E6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbmkuaWNvbi5hZGQuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU1XCI7XG59XG5pLmljb24uYWRkLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmZVwiO1xufVxuaS5pY29uLmFkZC50by5jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3MVwiO1xufVxuaS5pY29uLmFkZC50by5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE3XCI7XG59XG5pLmljb24uYWRkLnVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzRcIjtcbn1cbmkuaWNvbi5hZGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjdcIjtcbn1cbmkuaWNvbi5hbGFybS5tdXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY2XCI7XG59XG5pLmljb24uYWxhcm06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjNcIjtcbn1cbmkuaWNvbi5hbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTJcIjtcbn1cbmkuaWNvbi5hbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTJcIjtcbn1cbmkuaWNvbi5hbWVyaWNhbi5leHByZXNzLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbmkuaWNvbi5hbWVyaWNhbi5leHByZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYzXCI7XG59XG5pLmljb24uYW1leDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmM1wiO1xufVxuaS5pY29uLmFubm91bmNlbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMVwiO1xufVxuaS5pY29uLmFyZWEuY2hhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmVcIjtcbn1cbmkuaWNvbi5hcmVhLmdyYXBoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZlXCI7XG59XG5pLmljb24uYXJyb3cuZG93bi5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE4XCI7XG59XG5pLmljb24uYXNleHVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyZFwiO1xufVxuaS5pY29uLmFzbC5pbnRlcnByZXRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTNcIjtcbn1cbmkuaWNvbi5hc2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTNcIjtcbn1cbmkuaWNvbi5hc3Npc3RpdmUubGlzdGVuaW5nLmRldmljZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTJcIjtcbn1cbmkuaWNvbi5hdHRhY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzZcIjtcbn1cbmkuaWNvbi5hdHRlbnRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmFcIjtcbn1cbmkuaWNvbi5iYWxhbmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRlXCI7XG59XG5pLmljb24uYmFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZjXCI7XG59XG5pLmljb24uYmF0aHR1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjZFwiO1xufVxuaS5pY29uLmJhdHRlcnkuZm91cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MFwiO1xufVxuaS5pY29uLmJhdHRlcnkuaGlnaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MVwiO1xufVxuaS5pY29uLmJhdHRlcnkubG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQzXCI7XG59XG5pLmljb24uYmF0dGVyeS5tZWRpdW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDJcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5Lm9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0M1wiO1xufVxuaS5pY29uLmJhdHRlcnkudGhyZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDFcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LnR3bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MlwiO1xufVxuaS5pY29uLmJhdHRlcnkuemVybzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0NFwiO1xufVxuaS5pY29uLmJpcnRoZGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZkXCI7XG59XG5pLmljb24uYmxvY2subGF5b3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA5XCI7XG59XG5pLmljb24uYmx1ZXRvb3RoLmFsdGVybmF0aXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk0XCI7XG59XG5pLmljb24uYnJva2VuLmNoYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI3XCI7XG59XG5pLmljb24uYnJvd3NlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyMlwiO1xufVxuaS5pY29uLmNhbGwuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk4XCI7XG59XG5pLmljb24uY2FsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5NVwiO1xufVxuaS5pY29uLmNhbmNlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuaS5pY29uLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwN2FcIjtcbn1cbmkuaWNvbi5jYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYVwiO1xufVxuaS5pY29uLmNoYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMxXCI7XG59XG5pLmljb24uY2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NVwiO1xufVxuaS5pY29uLmNoZWNrZWQuY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzRcIjtcbn1cbmkuaWNvbi5jaGVja21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGNcIjtcbn1cbmkuaWNvbi5jaXJjbGUubm90Y2hlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZVwiO1xufVxuaS5pY29uLmNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG5pLmljb24uY255OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU3XCI7XG59XG5pLmljb24uY29ja3RhaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDBcIjtcbn1cbmkuaWNvbi5jb21tZW50aW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdhXCI7XG59XG5pLmljb24uY29tcHV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDhcIjtcbn1cbmkuaWNvbi5jb25maWd1cmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWRcIjtcbn1cbmkuaWNvbi5jb250ZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM5XCI7XG59XG5pLmljb24uZGVhZm5lc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTRcIjtcbn1cbmkuaWNvbi5kZWxldGUuY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzNcIjtcbn1cbmkuaWNvbi5kZWxldGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi5kZXRlY3RpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWJcIjtcbn1cbmkuaWNvbi5kaW5lcnMuY2x1Yi5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRjXCI7XG59XG5pLmljb24uZGluZXJzLmNsdWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGNcIjtcbn1cbmkuaWNvbi5kaXNjb3Zlci5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYyXCI7XG59XG5pLmljb24uZGlzY292ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjJcIjtcbn1cbmkuaWNvbi5kaXNjdXNzaW9uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NlwiO1xufVxuaS5pY29uLmRvY3RvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMFwiO1xufVxuaS5pY29uLmRvbGxhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NVwiO1xufVxuaS5pY29uLmRvbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNWVcIjtcbn1cbmkuaWNvbi5kcmliYmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdkXCI7XG59XG5pLmljb24uZHJpdmVycy5saWNlbnNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMyXCI7XG59XG5pLmljb24uZHJvcGRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDdcIjtcbn1cbmkuaWNvbi5lZXJjYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRhXCI7XG59XG5pLmljb24uZW1lcmdlbmN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY5XCI7XG59XG5pLmljb24uZW52aXJhLmdhbGxlcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTlcIjtcbn1cbmkuaWNvbi5lcmFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyZFwiO1xufVxuaS5pY29uLmV1cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1M1wiO1xufVxuaS5pY29uLmV1cm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTNcIjtcbn1cbmkuaWNvbi5leWVkcm9wcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZiXCI7XG59XG5pLmljb24uZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjRcIjtcbn1cbmkuaWNvbi5mYWN0b3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc1XCI7XG59XG5pLmljb24uZmF2b3JpdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDVcIjtcbn1cbmkuaWNvbi5mZWVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDllXCI7XG59XG5pLmljb24uZmVtYWxlLmhvbW9zZXh1YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjZcIjtcbn1cbmkuaWNvbi5maWxlLnRleHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWNcIjtcbn1cbmkuaWNvbi5maW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU1XCI7XG59XG5pLmljb24uZmlyc3QuYWlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZhXCI7XG59XG5pLmljb24uZml2ZS5odW5kcmVkLnBpeGVsczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2ZVwiO1xufVxuaS5pY29uLmZvcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjZcIjtcbn1cbmkuaWNvbi5nYW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFiXCI7XG59XG5pLmljb24uZ2F5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI3XCI7XG59XG5pLmljb24uZ2JwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU0XCI7XG59XG5pLmljb24uZ2l0dGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg0XCI7XG59XG5pLmljb24uZ29vZ2xlLnBsdXMuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIzXCI7XG59XG5pLmljb24uZ29vZ2xlLnBsdXMub2ZmaWNpYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjNcIjtcbn1cbmkuaWNvbi5ncmFiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU1XCI7XG59XG5pLmljb24uZ3JhZHVhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5ZFwiO1xufVxuaS5pY29uLmdyaWQubGF5b3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBhXCI7XG59XG5pLmljb24uZ3JvdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzBcIjtcbn1cbmkuaWNvbi5oOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZkXCI7XG59XG5pLmljb24uaGFuZC52aWN0b3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjViXCI7XG59XG5pLmljb24uaGFuZGljYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTNcIjtcbn1cbmkuaWNvbi5oYXJkLm9mLmhlYXJpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTRcIjtcbn1cbmkuaWNvbi5oZWFkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGNcIjtcbn1cbmkuaWNvbi5oZWxwLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1OVwiO1xufVxuaS5pY29uLmhlbHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjhcIjtcbn1cbmkuaWNvbi5oZXRlcm9zZXh1YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjhcIjtcbn1cbmkuaWNvbi5oaWRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcwXCI7XG59XG5pLmljb24uaG90ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzZcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3MuZm91cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NFwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy5mdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU0XCI7XG59XG5pLmljb24uaG91cmdsYXNzLm9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1MVwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy50aHJlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1M1wiO1xufVxuaS5pY29uLmhvdXJnbGFzcy50d286YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTJcIjtcbn1cbmkuaWNvbi5pZGVhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGViXCI7XG59XG5pLmljb24uaWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5pLmljb24uaW4tY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxOFwiO1xufVxuaS5pY29uLmlucjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NlwiO1xufVxuaS5pY29uLmludGVyZ2VuZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI0XCI7XG59XG5pLmljb24uaW50ZXJzZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjRcIjtcbn1cbmkuaWNvbi5qYXBhbi5jcmVkaXQuYnVyZWF1LmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjtcbn1cbmkuaWNvbi5qYXBhbi5jcmVkaXQuYnVyZWF1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG5pLmljb24uamNiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG5pLmljb24uanB5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU3XCI7XG59XG5pLmljb24ua3J3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU5XCI7XG59XG5pLmljb24ubGFiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMzXCI7XG59XG5pLmljb24ubGF3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRlXCI7XG59XG5pLmljb24ubGVnYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTNcIjtcbn1cbmkuaWNvbi5sZXNiaWFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI2XCI7XG59XG5pLmljb24ubGlnaHRuaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU3XCI7XG59XG5pLmljb24ubGlrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuaS5pY29uLmxpbmUuZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDFcIjtcbn1cbmkuaWNvbi5saW5rZWRpbi5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGNcIjtcbn1cbmkuaWNvbi5saW5raWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMxXCI7XG59XG5pLmljb24ubGlyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NVwiO1xufVxuaS5pY29uLmxpc3QubGF5b3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBiXCI7XG59XG5pLmljb24ubWFnbmlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiO1xufVxuaS5pY29uLm1haWwuZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NFwiO1xufVxuaS5pY29uLm1haWwuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk5XCI7XG59XG5pLmljb24ubWFpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMFwiO1xufVxuaS5pY29uLm1hbGUuaG9tb3NleHVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyN1wiO1xufVxuaS5pY29uLm1hbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMlwiO1xufVxuaS5pY29uLm1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MVwiO1xufVxuaS5pY29uLm1hcnMuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI5XCI7XG59XG5pLmljb24ubWFycy5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJiXCI7XG59XG5pLmljb24ubWFycy52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYVwiO1xufVxuaS5pY29uLm1hc3RlcmNhcmQuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuaS5pY29uLm1hc3RlcmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjFcIjtcbn1cbmkuaWNvbi5taWNyb3NvZnQuZWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MlwiO1xufVxuaS5pY29uLm1pbGl0YXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZiXCI7XG59XG5pLmljb24ubXMuZWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MlwiO1xufVxuaS5pY29uLm11dGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzFcIjtcbn1cbmkuaWNvbi5uZXcucGllZC5waXBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhZVwiO1xufVxuaS5pY29uLm5vbi5iaW5hcnkudHJhbnNnZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjNcIjtcbn1cbmkuaWNvbi5udW1iZXJlZC5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNiXCI7XG59XG5pLmljb24ub3B0aW5tb25zdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNjXCI7XG59XG5pLmljb24ub3B0aW9uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkZVwiO1xufVxuaS5pY29uLm90aGVyLmdlbmRlci5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJiXCI7XG59XG5pLmljb24ub3RoZXIuZ2VuZGVyLnZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJhXCI7XG59XG5pLmljb24ub3RoZXIuZ2VuZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI5XCI7XG59XG5pLmljb24ucGF5bWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZFwiO1xufVxuaS5pY29uLnBheXBhbC5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY0XCI7XG59XG5pLmljb24ucGVuY2lsLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0YlwiO1xufVxuaS5pY29uLnBob3RvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMwXCI7XG59XG5pLmljb24ucGljdHVyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZVwiO1xufVxuaS5pY29uLnBpZS5jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuaS5pY29uLnBpZS5ncmFwaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuaS5pY29uLnBpZWQucGlwZXIuaGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFlXCI7XG59XG5pLmljb24ucGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDhkXCI7XG59XG5pLmljb24ucGx1cy5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE3XCI7XG59XG5pLmljb24ucG9ja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY1XCI7XG59XG5pLmljb24ucG9pbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDFcIjtcbn1cbmkuaWNvbi5wb2ludGluZy5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE3XCI7XG59XG5pLmljb24ucG9pbnRpbmcubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNVwiO1xufVxuaS5pY29uLnBvaW50aW5nLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE0XCI7XG59XG5pLmljb24ucG9pbnRpbmcudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTZcIjtcbn1cbmkuaWNvbi5wb3VuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NFwiO1xufVxuaS5pY29uLnBvd2VyLmNvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTZcIjtcbn1cbmkuaWNvbi5wb3dlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMVwiO1xufVxuaS5pY29uLnByaXZhY3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODRcIjtcbn1cbmkuaWNvbi5yLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1ZFwiO1xufVxuaS5pY29uLnJhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTlcIjtcbn1cbmkuaWNvbi5yZWNvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2RcIjtcbn1cbmkuaWNvbi5yZWZyZXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIxXCI7XG59XG5pLmljb24ucmVtb3ZlLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1N1wiO1xufVxuaS5pY29uLnJlbW92ZS5mcm9tLmNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcyXCI7XG59XG5pLmljb24ucmVtb3ZlLnVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi5yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi5yZXBlYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWVcIjtcbn1cbmkuaWNvbi5ybWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi5yb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbmkuaWNvbi5ydWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbmkuaWNvbi5ydWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OFwiO1xufVxuaS5pY29uLnJ1cGVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG59XG5pLmljb24uczE1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNkXCI7XG59XG5pLmljb24uc2VsZWN0ZWQucmFkaW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTJcIjtcbn1cbmkuaWNvbi5zZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ4XCI7XG59XG5pLmljb24uc2V0dGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxM1wiO1xufVxuaS5pY29uLnNldHRpbmdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg1XCI7XG59XG5pLmljb24uc2hla2VsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5pLmljb24uc2hlcWVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5pLmljb24uc2hpcHBpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDFcIjtcbn1cbmkuaWNvbi5zaG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdhXCI7XG59XG5pLmljb24uc2h1ZmZsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NFwiO1xufVxuaS5pY29uLnNodXRkb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDExXCI7XG59XG5pLmljb24uc2lkZWJhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOVwiO1xufVxuaS5pY29uLnNpZ25pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTdcIjtcbn1cbmkuaWNvbi5zaWdudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDRcIjtcbn1cbmkuaWNvbi5zbGlkZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRlXCI7XG59XG5pLmljb24uc29jY2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUzXCI7XG59XG5pLmljb24uc29ydC5hbHBoYWJldC5hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWRcIjtcbn1cbmkuaWNvbi5zb3J0LmFscGhhYmV0LmRlc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWVcIjtcbn1cbmkuaWNvbi5zb3J0LmFzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZVwiO1xufVxuaS5pY29uLnNvcnQuY29udGVudC5hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjBcIjtcbn1cbmkuaWNvbi5zb3J0LmNvbnRlbnQuZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MVwiO1xufVxuaS5pY29uLnNvcnQuZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZFwiO1xufVxuaS5pY29uLnNvcnQubnVtZXJpYy5hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjJcIjtcbn1cbmkuaWNvbi5zb3J0Lm51bWVyaWMuZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2M1wiO1xufVxuaS5pY29uLnNvdW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI1XCI7XG59XG5pLmljb24uc3B5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFiXCI7XG59XG5pLmljb24uc3RyaXBlLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjVcIjtcbn1cbmkuaWNvbi5zdHVkZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTlkXCI7XG59XG5pLmljb24udGFsazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3YVwiO1xufVxuaS5pY29uLnRhcmdldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MFwiO1xufVxuaS5pY29uLnRlbGV0eXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU0XCI7XG59XG5pLmljb24udGVsZXZpc2lvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2Y1wiO1xufVxuaS5pY29uLnRleHQuY3Vyc29yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ2XCI7XG59XG5pLmljb24udGV4dC50ZWxlcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTRcIjtcbn1cbmkuaWNvbi50aGVtZS5pc2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIyXCI7XG59XG5pLmljb24udGhlbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDNcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjN1wiO1xufVxuaS5pY29uLnRodW1iLnRhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGRcIjtcbn1cbmkuaWNvbi50aW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE3XCI7XG59XG5pLmljb24udG06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWNcIjtcbn1cbmkuaWNvbi50b2dnbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MFwiO1xufVxuaS5pY29uLnRvZ2dsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkxXCI7XG59XG5pLmljb24udG9nZ2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUyXCI7XG59XG5pLmljb24udG9nZ2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG59XG5pLmljb24udHJhbnNsYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFiXCI7XG59XG5pLmljb24udHJhdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIxXCI7XG59XG5pLmljb24udHJlYXRtZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYxXCI7XG59XG5pLmljb24udHJpYW5nbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkN1wiO1xufVxuaS5pY29uLnRyaWFuZ2xlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDlcIjtcbn1cbmkuaWNvbi50cmlhbmdsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkYVwiO1xufVxuaS5pY29uLnRyaWFuZ2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ4XCI7XG59XG5pLmljb24udHJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk1XCI7XG59XG5pLmljb24udW5oaWRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZlXCI7XG59XG5pLmljb24udW5saW5raWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI3XCI7XG59XG5pLmljb24udW5tdXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMwXCI7XG59XG5pLmljb24udXNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU1XCI7XG59XG5pLmljb24udXNlci5jYW5jZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi51c2VyLmNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM1XCI7XG59XG5pLmljb24udXNlci5kZWxldGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi51c2VyLng6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi52Y2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiYlwiO1xufVxuaS5pY29uLnZpZGVvLmNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZFwiO1xufVxuaS5pY29uLnZpZGVvLnBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDRcIjtcbn1cbmkuaWNvbi52aXNhLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbmkuaWNvbi52aXNhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYwXCI7XG59XG5pLmljb24udm9sdW1lLmNvbnRyb2wucGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTBcIjtcbn1cbmkuaWNvbi53YWl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE3XCI7XG59XG5pLmljb24ud2FybmluZy5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmFcIjtcbn1cbmkuaWNvbi53YXJuaW5nLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzFcIjtcbn1cbmkuaWNvbi53YXJuaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJhXCI7XG59XG5pLmljb24ud2VjaGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ3XCI7XG59XG5pLmljb24ud2ktZmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWJcIjtcbn1cbmkuaWNvbi53aWtpcGVkaWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjZcIjtcbn1cbmkuaWNvbi53aW5uZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTFcIjtcbn1cbmkuaWNvbi53aXphcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDBcIjtcbn1cbmkuaWNvbi53b21hbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMVwiO1xufVxuaS5pY29uLndvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OVwiO1xufVxuaS5pY29uLndvcmRwcmVzcy5iZWdpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5N1wiO1xufVxuaS5pY29uLndvcmRwcmVzcy5mb3JtczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5OFwiO1xufVxuaS5pY29uLndvcmxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFjXCI7XG59XG5pLmljb24ud3JpdGUuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRiXCI7XG59XG5pLmljb24ueDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuaS5pY29uLnljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNiXCI7XG59XG5pLmljb24ueWNvbWJpbmF0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2JcIjtcbn1cbmkuaWNvbi55ZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi56aXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODdcIjtcbn1cbmkuaWNvbi56b29tLWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG5pLmljb24uem9vbS1vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTBcIjtcbn1cbmkuaWNvbi56b29tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG5pLmljb24uYml0YnVja2V0LnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3MVwiO1xufVxuaS5pY29uLmNoZWNrbWFyay5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGFcIjtcbn1cbmkuaWNvbi5jaXJjbGUudGhpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMVwiO1xufVxuaS5pY29uLmNsb3VkLmRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgxXCI7XG59XG5pLmljb24uY2xvdWQudXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgyXCI7XG59XG5pLmljb24uY29tcG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwM1wiO1xufVxuaS5pY29uLmNvbnZlcnNhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NlwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmFsdGVybmF0aXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDlkXCI7XG59XG5pLmljb24uY3VycmVuY3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDFcIjtcbn1cbmkuaWNvbi5kYXNoYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmRcIjtcbn1cbmkuaWNvbi5kaWFtb25kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E1XCI7XG59XG5pLmljb24uZGlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMFwiO1xufVxuaS5pY29uLmV4Y2hhbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYyXCI7XG59XG5pLmljb24uZXh0ZXJuYWwuc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGRcIjtcbn1cbmkuaWNvbi5leHRlcm5hbC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjBcIjtcbn1cbmkuaWNvbi5leHRlcm5hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1ZFwiO1xufVxuaS5pY29uLmZhY2Vib29rLm9mZmljaWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgyXCI7XG59XG5pLmljb24uZm9vZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlN1wiO1xufVxuaS5pY29uLmhvdXJnbGFzcy56ZXJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUzXCI7XG59XG5pLmljb24ubGV2ZWwuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiZVwiO1xufVxuaS5pY29uLmxldmVsLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JmXCI7XG59XG5pLmljb24ubG9nb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY1XCI7XG59XG5pLmljb24ubWVhbnBhdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzhcIjtcbn1cbmkuaWNvbi5tb25leTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMVwiO1xufVxuaS5pY29uLm1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjJcIjtcbn1cbmkuaWNvbi5wZW5jaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDNcIjtcbn1cbmkuaWNvbi5wcm90ZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIzXCI7XG59XG5pLmljb24ucmFkaW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTJcIjtcbn1cbmkuaWNvbi5yZW1vdmUuYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmVcIjtcbn1cbmkuaWNvbi5yZXNpemUuaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzN1wiO1xufVxuaS5pY29uLnJlc2l6ZS52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzOFwiO1xufVxuaS5pY29uLnNpZ24taW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjZcIjtcbn1cbmkuaWNvbi5zaWduLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNVwiO1xufVxuaS5pY29uLnNwb29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU1XCI7XG59XG5pLmljb24uc3Rhci5oYWxmLmVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg5XCI7XG59XG5pLmljb24uc3Rhci5oYWxmLmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbmkuaWNvbi50aWNrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmZcIjtcbn1cbmkuaWNvbi50aW1lcy5yZWN0YW5nbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTBcIjtcbn1cbmkuaWNvbi53cml0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwM1wiO1xufVxuaS5pY29uLnlvdXR1YmUucGxheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2N1wiO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgT3V0bGluZSBJY29uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIE91dGxpbmUgSWNvbiAqL1xuLyogTG9hZCAmIERlZmluZSBJY29uIEZvbnQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ291dGxpbmUtaWNvbnMnO1xuICBzcmM6IHVybChcIi9hc3NldHMvZm9udHMvb3V0bGluZS1pY29ucy5lb3RcIik7XG4gIHNyYzogdXJsKFwiL2Fzc2V0cy9mb250cy9vdXRsaW5lLWljb25zLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL291dGxpbmUtaWNvbnMud29mZjJcIikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL291dGxpbmUtaWNvbnMud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9vdXRsaW5lLWljb25zLnR0ZlwiKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChcIi9hc3NldHMvZm9udHMvb3V0bGluZS1pY29ucy5zdmcjaWNvbnNcIikgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbmkuaWNvbi5vdXRsaW5lIHtcbiAgZm9udC1mYW1pbHk6ICdvdXRsaW5lLWljb25zJztcbn1cbi8qIEljb24gRGVmaW5pdGlvbnMgKi9cbmkuaWNvbi5hZGRyZXNzLmJvb2sub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiOVwiO1xufVxuaS5pY29uLmFkZHJlc3MuY2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmJiXCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5kb3duLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNThcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmxlZnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1OVwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUucmlnaHQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1YVwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUudXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1YlwiO1xufVxuaS5pY29uLmJlbGwub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmM1wiO1xufVxuaS5pY29uLmJlbGwuc2xhc2gub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNlwiO1xufVxuaS5pY29uLmJvb2ttYXJrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmVcIjtcbn1cbmkuaWNvbi5idWlsZGluZy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFkXCI7XG59XG5pLmljb24uY2FsZW5kYXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzM1wiO1xufVxuaS5pY29uLmNhbGVuZGFyLmFsdGVybmF0ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDczXCI7XG59XG5pLmljb24uY2FsZW5kYXIuY2hlY2sub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NFwiO1xufVxuaS5pY29uLmNhbGVuZGFyLm1pbnVzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzJcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5wbHVzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzFcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci50aW1lcy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjczXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLmRvd24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MFwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5sZWZ0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTFcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUucmlnaHQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MlwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS51cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG59XG5pLmljb24uY2hhcnQuYmFyLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODBcIjtcbn1cbmkuaWNvbi5jaGVjay5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1OFwiO1xufVxuaS5pY29uLmNoZWNrLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRhXCI7XG59XG5pLmljb24uY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTFcIjtcbn1cbmkuaWNvbi5jbGlwYm9hcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyOFwiO1xufVxuaS5pY29uLmNsb2NrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTdcIjtcbn1cbmkuaWNvbi5jbG9uZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRkXCI7XG59XG5pLmljb24uY2xvc2VkLmNhcHRpb25pbmcub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYVwiO1xufVxuaS5pY29uLmNvbW1lbnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NVwiO1xufVxuaS5pY29uLmNvbW1lbnQuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2FcIjtcbn1cbmkuaWNvbi5jb21tZW50cy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg2XCI7XG59XG5pLmljb24uY29tcGFzcy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRlXCI7XG59XG5pLmljb24uY29weS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM1XCI7XG59XG5pLmljb24uY29weXJpZ2h0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjlcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDlkXCI7XG59XG5pLmljb24uZG90LmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkyXCI7XG59XG5pLmljb24uZWRpdC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ0XCI7XG59XG5pLmljb24uZW52ZWxvcGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMFwiO1xufVxuaS5pY29uLmVudmVsb3BlLm9wZW4ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNlwiO1xufVxuaS5pY29uLmV5ZS5zbGFzaC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcwXCI7XG59XG5pLmljb24uZmlsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTViXCI7XG59XG5pLmljb24uZmlsZS5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1Y1wiO1xufVxuaS5pY29uLmZpbGUuYXJjaGl2ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM2XCI7XG59XG5pLmljb24uZmlsZS5hdWRpby5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM3XCI7XG59XG5pLmljb24uZmlsZS5jb2RlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzlcIjtcbn1cbmkuaWNvbi5maWxlLmV4Y2VsLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzNcIjtcbn1cbmkuaWNvbi5maWxlLmltYWdlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzVcIjtcbn1cbmkuaWNvbi5maWxlLnBkZi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMxXCI7XG59XG5pLmljb24uZmlsZS5wb3dlcnBvaW50Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzRcIjtcbn1cbmkuaWNvbi5maWxlLnZpZGVvLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzhcIjtcbn1cbmkuaWNvbi5maWxlLndvcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMlwiO1xufVxuaS5pY29uLmZsYWcub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyNFwiO1xufVxuaS5pY29uLmZvbGRlci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdiXCI7XG59XG5pLmljb24uZm9sZGVyLm9wZW4ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3Y1wiO1xufVxuaS5pY29uLmZyb3duLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTlcIjtcbn1cbmkuaWNvbi5mdXRib2wub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlM1wiO1xufVxuaS5pY29uLmdlbS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E1XCI7XG59XG5pLmljb24uaGFuZC5saXphcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1OFwiO1xufVxuaS5pY29uLmhhbmQucGFwZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NlwiO1xufVxuaS5pY29uLmhhbmQucGVhY2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1YlwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQuZG93bi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE3XCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5sZWZ0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTVcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LnJpZ2h0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTRcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LnVwLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTZcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50ZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1YVwiO1xufVxuaS5pY29uLmhhbmQucm9jay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU1XCI7XG59XG5pLmljb24uaGFuZC5zY2lzc29ycy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU3XCI7XG59XG5pLmljb24uaGFuZC5zcG9jay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU5XCI7XG59XG5pLmljb24uaGFuZHNoYWtlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjVcIjtcbn1cbmkuaWNvbi5oZGQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMFwiO1xufVxuaS5pY29uLmhlYXJ0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDRcIjtcbn1cbmkuaWNvbi5ob3NwaXRhbC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY4XCI7XG59XG5pLmljb24uaG91cmdsYXNzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTRcIjtcbn1cbmkuaWNvbi5pZC5iYWRnZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMxXCI7XG59XG5pLmljb24uaWQuY2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMyXCI7XG59XG5pLmljb24uaW1hZ2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZVwiO1xufVxuaS5pY29uLmltYWdlcy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAyXCI7XG59XG5pLmljb24ua2V5Ym9hcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExY1wiO1xufVxuaS5pY29uLmxlbW9uLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTRcIjtcbn1cbmkuaWNvbi5saWZlLnJpbmcub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZFwiO1xufVxuaS5pY29uLmxpZ2h0YnVsYi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGViXCI7XG59XG5pLmljb24ubGlzdC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyMlwiO1xufVxuaS5pY29uLm1hcC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc5XCI7XG59XG5pLmljb24ubWVoLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWFcIjtcbn1cbmkuaWNvbi5taW51cy5zcXVhcmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NlwiO1xufVxuaS5pY29uLm1vbmV5LmJpbGwuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDFcIjtcbn1cbmkuaWNvbi5tb29uLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODZcIjtcbn1cbmkuaWNvbi5uZXdzcGFwZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlYVwiO1xufVxuaS5pY29uLm9iamVjdC5ncm91cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ3XCI7XG59XG5pLmljb24ub2JqZWN0LnVuZ3JvdXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0OFwiO1xufVxuaS5pY29uLnBhcGVyLnBsYW5lLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDhcIjtcbn1cbmkuaWNvbi5wYXVzZS5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4YlwiO1xufVxuaS5pY29uLnBsYXkuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDRcIjtcbn1cbmkuaWNvbi5wbHVzLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZlXCI7XG59XG5pLmljb24ucXVlc3Rpb24uY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTlcIjtcbn1cbmkuaWNvbi5yZWdpc3RlcmVkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWRcIjtcbn1cbmkuaWNvbi5zYXZlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzdcIjtcbn1cbmkuaWNvbi5zaGFyZS5zcXVhcmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0ZFwiO1xufVxuaS5pY29uLnNtaWxlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMThcIjtcbn1cbmkuaWNvbi5zbm93Zmxha2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkY1wiO1xufVxuaS5pY29uLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM4XCI7XG59XG5pLmljb24uc3Rhci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA1XCI7XG59XG5pLmljb24uc3Rhci5oYWxmLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbmkuaWNvbi5zdGlja3kubm90ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ5XCI7XG59XG5pLmljb24uc3RvcC5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4ZFwiO1xufVxuaS5pY29uLnN1bi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg1XCI7XG59XG5pLmljb24udGh1bWJzLmRvd24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2NVwiO1xufVxuaS5pY29uLnRodW1icy51cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY0XCI7XG59XG5pLmljb24udGltZXMuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTdcIjtcbn1cbmkuaWNvbi50cmFzaC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlZFwiO1xufVxuaS5pY29uLnVzZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwN1wiO1xufVxuaS5pY29uLnVzZXIuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmRcIjtcbn1cbmkuaWNvbi53aW5kb3cuY2xvc2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMFwiO1xufVxuaS5pY29uLndpbmRvdy5tYXhpbWl6ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQwXCI7XG59XG5pLmljb24ud2luZG93Lm1pbmltaXplLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDFcIjtcbn1cbmkuaWNvbi53aW5kb3cucmVzdG9yZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQyXCI7XG59XG4vKiBPdXRsaW5lIEFsaWFzZXMgKi9cbmkuaWNvbi5kaXNrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTBcIjtcbn1cbmkuaWNvbi5oZWFydC5lbXB0eSxcbmkuaWNvbi5zdGFyLmVtcHR5IHtcbiAgZm9udC1mYW1pbHk6ICdvdXRsaW5lLWljb25zJztcbn1cbmkuaWNvbi5oZWFydC5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuaS5pY29uLnN0YXIuZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIEJyYW5kIEljb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTG9hZCAmIERlZmluZSBCcmFuZCBGb250ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdicmFuZC1pY29ucyc7XG4gIHNyYzogdXJsKFwiL2Fzc2V0cy9mb250cy9icmFuZC1pY29ucy5lb3RcIik7XG4gIHNyYzogdXJsKFwiL2Fzc2V0cy9mb250cy9icmFuZC1pY29ucy5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9icmFuZC1pY29ucy53b2ZmMlwiKSBmb3JtYXQoJ3dvZmYyJyksIHVybChcIi9hc3NldHMvZm9udHMvYnJhbmQtaWNvbnMud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9icmFuZC1pY29ucy50dGZcIikgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL2JyYW5kLWljb25zLnN2ZyNpY29uc1wiKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyogQnJhbmQgSWNvbiBGb250IEZhbWlseSAqL1xuaS5pY29uLlxcMzUgMDBweCxcbmkuaWNvbi5hY2Nlc3NpYmxlLmljb24sXG5pLmljb24uYWNjdXNvZnQsXG5pLmljb24uYWRuLFxuaS5pY29uLmFkdmVyc2FsLFxuaS5pY29uLmFmZmlsaWF0ZXRoZW1lLFxuaS5pY29uLmFsZ29saWEsXG5pLmljb24uYW1hem9uLFxuaS5pY29uLmFtYXpvbi5wYXksXG5pLmljb24uYW1pbGlhLFxuaS5pY29uLmFuZHJvaWQsXG5pLmljb24uYW5nZWxsaXN0LFxuaS5pY29uLmFuZ3J5Y3JlYXRpdmUsXG5pLmljb24uYW5ndWxhcixcbmkuaWNvbi5hcHAuc3RvcmUsXG5pLmljb24uYXBwLnN0b3JlLmlvcyxcbmkuaWNvbi5hcHBlcixcbmkuaWNvbi5hcHBsZSxcbmkuaWNvbi5hcHBsZS5wYXksXG5pLmljb24uYXN5bW1ldHJpayxcbmkuaWNvbi5hdWRpYmxlLFxuaS5pY29uLmF1dG9wcmVmaXhlcixcbmkuaWNvbi5hdmlhbmV4LFxuaS5pY29uLmF2aWF0byxcbmkuaWNvbi5hd3MsXG5pLmljb24uYmFuZGNhbXAsXG5pLmljb24uYmVoYW5jZSxcbmkuaWNvbi5iZWhhbmNlLnNxdWFyZSxcbmkuaWNvbi5iaW1vYmplY3QsXG5pLmljb24uYml0YnVja2V0LFxuaS5pY29uLmJpdGNvaW4sXG5pLmljb24uYml0eSxcbmkuaWNvbi5ibGFjay50aWUsXG5pLmljb24uYmxhY2tiZXJyeSxcbmkuaWNvbi5ibG9nZ2VyLFxuaS5pY29uLmJsb2dnZXIuYixcbmkuaWNvbi5ibHVldG9vdGgsXG5pLmljb24uYmx1ZXRvb3RoLmIsXG5pLmljb24uYnRjLFxuaS5pY29uLmJ1cm9tb2JlbGV4cGVydGUsXG5pLmljb24uYnV5c2VsbGFkcyxcbmkuaWNvbi5jYy5hbWF6b24ucGF5LFxuaS5pY29uLmNjLmFtZXgsXG5pLmljb24uY2MuYXBwbGUucGF5LFxuaS5pY29uLmNjLmRpbmVycy5jbHViLFxuaS5pY29uLmNjLmRpc2NvdmVyLFxuaS5pY29uLmNjLmpjYixcbmkuaWNvbi5jYy5tYXN0ZXJjYXJkLFxuaS5pY29uLmNjLnBheXBhbCxcbmkuaWNvbi5jYy5zdHJpcGUsXG5pLmljb24uY2MudmlzYSxcbmkuaWNvbi5jZW50ZXJjb2RlLFxuaS5pY29uLmNocm9tZSxcbmkuaWNvbi5jbG91ZHNjYWxlLFxuaS5pY29uLmNsb3Vkc21pdGgsXG5pLmljb24uY2xvdWR2ZXJzaWZ5LFxuaS5pY29uLmNvZGVwZW4sXG5pLmljb24uY29kaWVwaWUsXG5pLmljb24uY29ubmVjdGRldmVsb3AsXG5pLmljb24uY29udGFvLFxuaS5pY29uLmNwYW5lbCxcbmkuaWNvbi5jcmVhdGl2ZS5jb21tb25zLFxuaS5pY29uLmNzczMsXG5pLmljb24uY3NzMy5hbHRlcm5hdGUsXG5pLmljb24uY3V0dGxlZmlzaCxcbmkuaWNvbi5kLmFuZC5kLFxuaS5pY29uLmRhc2hjdWJlLFxuaS5pY29uLmRlbGljaW91cyxcbmkuaWNvbi5kZXBsb3lkb2csXG5pLmljb24uZGVza3BybyxcbmkuaWNvbi5kZXZpYW50YXJ0LFxuaS5pY29uLmRpZ2csXG5pLmljb24uZGlnaXRhbC5vY2VhbixcbmkuaWNvbi5kaXNjb3JkLFxuaS5pY29uLmRpc2NvdXJzZSxcbmkuaWNvbi5kb2NodWIsXG5pLmljb24uZG9ja2VyLFxuaS5pY29uLmRyYWZ0MmRpZ2l0YWwsXG5pLmljb24uZHJpYmJibGUsXG5pLmljb24uZHJpYmJibGUuc3F1YXJlLFxuaS5pY29uLmRyb3Bib3gsXG5pLmljb24uZHJ1cGFsLFxuaS5pY29uLmR5YWxvZyxcbmkuaWNvbi5lYXJseWJpcmRzLFxuaS5pY29uLmVkZ2UsXG5pLmljb24uZWxlbWVudG9yLFxuaS5pY29uLmVtYmVyLFxuaS5pY29uLmVtcGlyZSxcbmkuaWNvbi5lbnZpcmEsXG5pLmljb24uZXJsYW5nLFxuaS5pY29uLmV0aGVyZXVtLFxuaS5pY29uLmV0c3ksXG5pLmljb24uZXhwZWRpdGVkc3NsLFxuaS5pY29uLmZhY2Vib29rLFxuaS5pY29uLmZhY2Vib29rLmYsXG5pLmljb24uZmFjZWJvb2subWVzc2VuZ2VyLFxuaS5pY29uLmZhY2Vib29rLnNxdWFyZSxcbmkuaWNvbi5maXJlZm94LFxuaS5pY29uLmZpcnN0Lm9yZGVyLFxuaS5pY29uLmZpcnN0ZHJhZnQsXG5pLmljb24uZmxpY2tyLFxuaS5pY29uLmZsaXBib2FyZCxcbmkuaWNvbi5mbHksXG5pLmljb24uZm9udC5hd2Vzb21lLFxuaS5pY29uLmZvbnQuYXdlc29tZS5hbHRlcm5hdGUsXG5pLmljb24uZm9udC5hd2Vzb21lLmZsYWcsXG5pLmljb24uZm9udGljb25zLFxuaS5pY29uLmZvbnRpY29ucy5maSxcbmkuaWNvbi5mb3J0LmF3ZXNvbWUsXG5pLmljb24uZm9ydC5hd2Vzb21lLmFsdGVybmF0ZSxcbmkuaWNvbi5mb3J1bWJlZSxcbmkuaWNvbi5mb3Vyc3F1YXJlLFxuaS5pY29uLmZyZWUuY29kZS5jYW1wLFxuaS5pY29uLmZyZWVic2QsXG5pLmljb24uZ2V0LnBvY2tldCxcbmkuaWNvbi5nZyxcbmkuaWNvbi5nZy5jaXJjbGUsXG5pLmljb24uZ2l0LFxuaS5pY29uLmdpdC5zcXVhcmUsXG5pLmljb24uZ2l0aHViLFxuaS5pY29uLmdpdGh1Yi5hbHRlcm5hdGUsXG5pLmljb24uZ2l0aHViLnNxdWFyZSxcbmkuaWNvbi5naXRrcmFrZW4sXG5pLmljb24uZ2l0bGFiLFxuaS5pY29uLmdpdHRlcixcbmkuaWNvbi5nbGlkZSxcbmkuaWNvbi5nbGlkZS5nLFxuaS5pY29uLmdvZm9yZSxcbmkuaWNvbi5nb29kcmVhZHMsXG5pLmljb24uZ29vZHJlYWRzLmcsXG5pLmljb24uZ29vZ2xlLFxuaS5pY29uLmdvb2dsZS5kcml2ZSxcbmkuaWNvbi5nb29nbGUucGxheSxcbmkuaWNvbi5nb29nbGUucGx1cyxcbmkuaWNvbi5nb29nbGUucGx1cy5nLFxuaS5pY29uLmdvb2dsZS5wbHVzLnNxdWFyZSxcbmkuaWNvbi5nb29nbGUud2FsbGV0LFxuaS5pY29uLmdyYXRpcGF5LFxuaS5pY29uLmdyYXYsXG5pLmljb24uZ3JpcGZpcmUsXG5pLmljb24uZ3J1bnQsXG5pLmljb24uZ3VscCxcbmkuaWNvbi5oYWNrZXIubmV3cyxcbmkuaWNvbi5oYWNrZXIubmV3cy5zcXVhcmUsXG5pLmljb24uaGlwcyxcbmkuaWNvbi5oaXJlLmEuaGVscGVyLFxuaS5pY29uLmhvb2xpLFxuaS5pY29uLmhvdGphcixcbmkuaWNvbi5ob3V6eixcbmkuaWNvbi5odG1sNSxcbmkuaWNvbi5odWJzcG90LFxuaS5pY29uLmltZGIsXG5pLmljb24uaW5zdGFncmFtLFxuaS5pY29uLmludGVybmV0LmV4cGxvcmVyLFxuaS5pY29uLmlveGhvc3QsXG5pLmljb24uaXR1bmVzLFxuaS5pY29uLml0dW5lcy5ub3RlLFxuaS5pY29uLmplbmtpbnMsXG5pLmljb24uam9nZXQsXG5pLmljb24uam9vbWxhLFxuaS5pY29uLmpzLFxuaS5pY29uLmpzLnNxdWFyZSxcbmkuaWNvbi5qc2ZpZGRsZSxcbmkuaWNvbi5rZXljZG4sXG5pLmljb24ua2lja3N0YXJ0ZXIsXG5pLmljb24ua2lja3N0YXJ0ZXIuayxcbmkuaWNvbi5rb3J2dWUsXG5pLmljb24ubGFyYXZlbCxcbmkuaWNvbi5sYXN0Zm0sXG5pLmljb24ubGFzdGZtLnNxdWFyZSxcbmkuaWNvbi5sZWFucHViLFxuaS5pY29uLmxlc3MsXG5pLmljb24ubGluZWNoYXQsXG5pLmljb24ubGlua2VkaW4sXG5pLmljb24ubGlua2VkaW4uYWx0ZXJuYXRlLFxuaS5pY29uLmxpbmtlZGluLmluLFxuaS5pY29uLmxpbm9kZSxcbmkuaWNvbi5saW51eCxcbmkuaWNvbi5seWZ0LFxuaS5pY29uLm1hZ2VudG8sXG5pLmljb24ubWF4Y2RuLFxuaS5pY29uLm1lZGFwcHMsXG5pLmljb24ubWVkaXVtLFxuaS5pY29uLm1lZGl1bS5tLFxuaS5pY29uLm1lZHJ0LFxuaS5pY29uLm1lZXR1cCxcbmkuaWNvbi5taWNyb3NvZnQsXG5pLmljb24ubWl4LFxuaS5pY29uLm1peGNsb3VkLFxuaS5pY29uLm1penVuaSxcbmkuaWNvbi5tb2R4LFxuaS5pY29uLm1vbmVybyxcbmkuaWNvbi5uYXBzdGVyLFxuaS5pY29uLm5pbnRlbmRvLnN3aXRjaCxcbmkuaWNvbi5ub2RlLFxuaS5pY29uLm5vZGUuanMsXG5pLmljb24ubnBtLFxuaS5pY29uLm5zOCxcbmkuaWNvbi5udXRyaXRpb25peCxcbmkuaWNvbi5vZG5va2xhc3NuaWtpLFxuaS5pY29uLm9kbm9rbGFzc25pa2kuc3F1YXJlLFxuaS5pY29uLm9wZW5jYXJ0LFxuaS5pY29uLm9wZW5pZCxcbmkuaWNvbi5vcGVyYSxcbmkuaWNvbi5vcHRpbi5tb25zdGVyLFxuaS5pY29uLm9zaSxcbmkuaWNvbi5wYWdlNCxcbmkuaWNvbi5wYWdlbGluZXMsXG5pLmljb24ucGFsZmVkLFxuaS5pY29uLnBhdHJlb24sXG5pLmljb24ucGF5cGFsLFxuaS5pY29uLnBlcmlzY29wZSxcbmkuaWNvbi5waGFicmljYXRvcixcbmkuaWNvbi5waG9lbml4LmZyYW1ld29yayxcbmkuaWNvbi5waHAsXG5pLmljb24ucGllZC5waXBlcixcbmkuaWNvbi5waWVkLnBpcGVyLmFsdGVybmF0ZSxcbmkuaWNvbi5waWVkLnBpcGVyLnBwLFxuaS5pY29uLnBpbnRlcmVzdCxcbmkuaWNvbi5waW50ZXJlc3QucCxcbmkuaWNvbi5waW50ZXJlc3Quc3F1YXJlLFxuaS5pY29uLnBsYXlzdGF0aW9uLFxuaS5pY29uLnByb2R1Y3QuaHVudCxcbmkuaWNvbi5wdXNoZWQsXG5pLmljb24ucHl0aG9uLFxuaS5pY29uLnFxLFxuaS5pY29uLnF1aW5zY2FwZSxcbmkuaWNvbi5xdW9yYSxcbmkuaWNvbi5yYXZlbHJ5LFxuaS5pY29uLnJlYWN0LFxuaS5pY29uLnJlYmVsLFxuaS5pY29uLnJlZHJpdmVyLFxuaS5pY29uLnJlZGRpdCxcbmkuaWNvbi5yZWRkaXQuYWxpZW4sXG5pLmljb24ucmVkZGl0LnNxdWFyZSxcbmkuaWNvbi5yZW5kYWN0LFxuaS5pY29uLnJlbnJlbixcbmkuaWNvbi5yZXBseWQsXG5pLmljb24ucmVzb2x2aW5nLFxuaS5pY29uLnJvY2tldGNoYXQsXG5pLmljb24ucm9ja3JtcyxcbmkuaWNvbi5zYWZhcmksXG5pLmljb24uc2FzcyxcbmkuaWNvbi5zY2hsaXgsXG5pLmljb24uc2NyaWJkLFxuaS5pY29uLnNlYXJjaGVuZ2luLFxuaS5pY29uLnNlbGxjYXN0LFxuaS5pY29uLnNlbGxzeSxcbmkuaWNvbi5zZXJ2aWNlc3RhY2ssXG5pLmljb24uc2hpcnRzaW5idWxrLFxuaS5pY29uLnNpbXBseWJ1aWx0LFxuaS5pY29uLnNpc3RyaXgsXG5pLmljb24uc2t5YXRsYXMsXG5pLmljb24uc2t5cGUsXG5pLmljb24uc2xhY2ssXG5pLmljb24uc2xhY2suaGFzaCxcbmkuaWNvbi5zbGlkZXNoYXJlLFxuaS5pY29uLnNuYXBjaGF0LFxuaS5pY29uLnNuYXBjaGF0Lmdob3N0LFxuaS5pY29uLnNuYXBjaGF0LnNxdWFyZSxcbmkuaWNvbi5zb3VuZGNsb3VkLFxuaS5pY29uLnNwZWFrYXAsXG5pLmljb24uc3BvdGlmeSxcbmkuaWNvbi5zdGFjay5leGNoYW5nZSxcbmkuaWNvbi5zdGFjay5vdmVyZmxvdyxcbmkuaWNvbi5zdGF5bGlua2VkLFxuaS5pY29uLnN0ZWFtLFxuaS5pY29uLnN0ZWFtLnNxdWFyZSxcbmkuaWNvbi5zdGVhbS5zeW1ib2wsXG5pLmljb24uc3RpY2tlci5tdWxlLFxuaS5pY29uLnN0cmF2YSxcbmkuaWNvbi5zdHJpcGUsXG5pLmljb24uc3RyaXBlLnMsXG5pLmljb24uc3R1ZGlvdmluYXJpLFxuaS5pY29uLnN0dW1ibGV1cG9uLFxuaS5pY29uLnN0dW1ibGV1cG9uLmNpcmNsZSxcbmkuaWNvbi5zdXBlcnBvd2VycyxcbmkuaWNvbi5zdXBwbGUsXG5pLmljb24udGVsZWdyYW0sXG5pLmljb24udGVsZWdyYW0ucGxhbmUsXG5pLmljb24udGVuY2VudC53ZWlibyxcbmkuaWNvbi50aGVtZWlzbGUsXG5pLmljb24udHJlbGxvLFxuaS5pY29uLnRyaXBhZHZpc29yLFxuaS5pY29uLnR1bWJscixcbmkuaWNvbi50dW1ibHIuc3F1YXJlLFxuaS5pY29uLnR3aXRjaCxcbmkuaWNvbi50d2l0dGVyLFxuaS5pY29uLnR3aXR0ZXIuc3F1YXJlLFxuaS5pY29uLnR5cG8zLFxuaS5pY29uLnViZXIsXG5pLmljb24udWlraXQsXG5pLmljb24udW5pcmVnaXN0cnksXG5pLmljb24udW50YXBwZCxcbmkuaWNvbi51c2IsXG5pLmljb24udXNzdW5uYWgsXG5pLmljb24udmFhZGluLFxuaS5pY29uLnZpYWNvaW4sXG5pLmljb24udmlhZGVvLFxuaS5pY29uLnZpYWRlby5zcXVhcmUsXG5pLmljb24udmliZXIsXG5pLmljb24udmltZW8sXG5pLmljb24udmltZW8uc3F1YXJlLFxuaS5pY29uLnZpbWVvLnYsXG5pLmljb24udmluZSxcbmkuaWNvbi52ayxcbmkuaWNvbi52bnYsXG5pLmljb24udnVlanMsXG5pLmljb24ud2VjaGF0LFxuaS5pY29uLndlaWJvLFxuaS5pY29uLndlaXhpbixcbmkuaWNvbi53aGF0c2FwcCxcbmkuaWNvbi53aGF0c2FwcC5zcXVhcmUsXG5pLmljb24ud2htY3MsXG5pLmljb24ud2lraXBlZGlhLncsXG5pLmljb24ud2luZG93cyxcbmkuaWNvbi53b3JkcHJlc3MsXG5pLmljb24ud29yZHByZXNzLnNpbXBsZSxcbmkuaWNvbi53cGJlZ2lubmVyLFxuaS5pY29uLndwZXhwbG9yZXIsXG5pLmljb24ud3Bmb3JtcyxcbmkuaWNvbi54Ym94LFxuaS5pY29uLnhpbmcsXG5pLmljb24ueGluZy5zcXVhcmUsXG5pLmljb24ueS5jb21iaW5hdG9yLFxuaS5pY29uLnlhaG9vLFxuaS5pY29uLnlhbmRleCxcbmkuaWNvbi55YW5kZXguaW50ZXJuYXRpb25hbCxcbmkuaWNvbi55ZWxwLFxuaS5pY29uLnlvYXN0LFxuaS5pY29uLnlvdXR1YmUsXG5pLmljb24ueW91dHViZS5zcXVhcmUge1xuICBmb250LWZhbWlseTogJ2JyYW5kLWljb25zJztcbn1cbi8qIEJyYW5kIEljb25zIElkZWFsbHkgV291bGQgQmUgRGVmaW5lZCBIZXJlICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBJbWFnZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEltYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF2YXRhciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BhY2VkICovXG4vKiBGbG9hdGVkICovXG4vKiBTaXplICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEltYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF2YXRhciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BhY2VkICovXG4vKiBGbG9hdGVkICovXG4vKiBTaXplICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJbWFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuaW1nLnVpLmltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuaW1hZ2Ugc3ZnLFxuLnVpLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaGlkZGVuLmltYWdlcyxcbi51aS5oaWRkZW4uaW1hZ2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLmhpZGRlbi50cmFuc2l0aW9uLmltYWdlcyxcbi51aS5oaWRkZW4udHJhbnNpdGlvbi5pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuaW1hZ2VzID4gLmhpZGRlbi50cmFuc2l0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuZGlzYWJsZWQuaW1hZ2VzLFxuLnVpLmRpc2FibGVkLmltYWdlIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbmxpbmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5saW5lLmltYWdlLFxuLnVpLmlubGluZS5pbWFnZSBzdmcsXG4udWkuaW5saW5lLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFZlcnRpY2FsIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRvcC5hbGlnbmVkLmltYWdlcyAuaW1hZ2UsXG4udWkudG9wLmFsaWduZWQuaW1hZ2UsXG4udWkudG9wLmFsaWduZWQuaW1hZ2Ugc3ZnLFxuLnVpLnRvcC5hbGlnbmVkLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5taWRkbGUuYWxpZ25lZC5pbWFnZXMgLmltYWdlLFxuLnVpLm1pZGRsZS5hbGlnbmVkLmltYWdlLFxuLnVpLm1pZGRsZS5hbGlnbmVkLmltYWdlIHN2Zyxcbi51aS5taWRkbGUuYWxpZ25lZC5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkuYm90dG9tLmFsaWduZWQuaW1hZ2VzIC5pbWFnZSxcbi51aS5ib3R0b20uYWxpZ25lZC5pbWFnZSxcbi51aS5ib3R0b20uYWxpZ25lZC5pbWFnZSBzdmcsXG4udWkuYm90dG9tLmFsaWduZWQuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSb3VuZGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJvdW5kZWQuaW1hZ2VzIC5pbWFnZSxcbi51aS5yb3VuZGVkLmltYWdlLFxuLnVpLnJvdW5kZWQuaW1hZ2VzIC5pbWFnZSA+ICosXG4udWkucm91bmRlZC5pbWFnZSA+ICoge1xuICBib3JkZXItcmFkaXVzOiAwLjMxMjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ib3JkZXJlZC5pbWFnZXMgLmltYWdlLFxuLnVpLmJvcmRlcmVkLmltYWdlcyBpbWcsXG4udWkuYm9yZGVyZWQuaW1hZ2VzIHN2Zyxcbi51aS5ib3JkZXJlZC5pbWFnZSBpbWcsXG4udWkuYm9yZGVyZWQuaW1hZ2Ugc3ZnLFxuaW1nLnVpLmJvcmRlcmVkLmltYWdlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENpcmN1bGFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNpcmN1bGFyLmltYWdlcyxcbi51aS5jaXJjdWxhci5pbWFnZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4udWkuY2lyY3VsYXIuaW1hZ2VzIC5pbWFnZSxcbi51aS5jaXJjdWxhci5pbWFnZSxcbi51aS5jaXJjdWxhci5pbWFnZXMgLmltYWdlID4gKixcbi51aS5jaXJjdWxhci5pbWFnZSA+ICoge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuaW1hZ2VzLFxuLnVpLmZsdWlkLmltYWdlLFxuLnVpLmZsdWlkLmltYWdlcyBpbWcsXG4udWkuZmx1aWQuaW1hZ2VzIHN2Zyxcbi51aS5mbHVpZC5pbWFnZSBzdmcsXG4udWkuZmx1aWQuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEF2YXRhclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hdmF0YXIuaW1hZ2VzIC5pbWFnZSxcbi51aS5hdmF0YXIuaW1hZ2VzIGltZyxcbi51aS5hdmF0YXIuaW1hZ2VzIHN2Zyxcbi51aS5hdmF0YXIuaW1hZ2UgaW1nLFxuLnVpLmF2YXRhci5pbWFnZSBzdmcsXG4udWkuYXZhdGFyLmltYWdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDJlbTtcbiAgaGVpZ2h0OiAyZW07XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3BhY2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3BhY2VkLmltYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IHNwYWNlZFwiXS5pbWFnZSB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgc3BhY2VkXCJdLmltYWdlIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGVkLmltYWdlLFxuLnVpLmZsb2F0ZWQuaW1hZ2VzIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4udWkucmlnaHQuZmxvYXRlZC5pbWFnZXMsXG4udWkucmlnaHQuZmxvYXRlZC5pbWFnZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cbi51aS5mbG9hdGVkLmltYWdlczpsYXN0LWNoaWxkLFxuLnVpLmZsb2F0ZWQuaW1hZ2U6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5jZW50ZXJlZC5pbWFnZXMsXG4udWkuY2VudGVyZWQuaW1hZ2Uge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmltYWdlcyAuaW1hZ2UsXG4udWkubWluaS5pbWFnZXMgaW1nLFxuLnVpLm1pbmkuaW1hZ2VzIHN2Zyxcbi51aS5taW5pLmltYWdlIHtcbiAgd2lkdGg6IDM1cHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuaW1hZ2VzIC5pbWFnZSxcbi51aS50aW55LmltYWdlcyBpbWcsXG4udWkudGlueS5pbWFnZXMgc3ZnLFxuLnVpLnRpbnkuaW1hZ2Uge1xuICB3aWR0aDogODBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwuaW1hZ2VzIC5pbWFnZSxcbi51aS5zbWFsbC5pbWFnZXMgaW1nLFxuLnVpLnNtYWxsLmltYWdlcyBzdmcsXG4udWkuc21hbGwuaW1hZ2Uge1xuICB3aWR0aDogMTUwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLm1lZGl1bS5pbWFnZXMgLmltYWdlLFxuLnVpLm1lZGl1bS5pbWFnZXMgaW1nLFxuLnVpLm1lZGl1bS5pbWFnZXMgc3ZnLFxuLnVpLm1lZGl1bS5pbWFnZSB7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuaW1hZ2VzIC5pbWFnZSxcbi51aS5sYXJnZS5pbWFnZXMgaW1nLFxuLnVpLmxhcmdlLmltYWdlcyBzdmcsXG4udWkubGFyZ2UuaW1hZ2Uge1xuICB3aWR0aDogNDUwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5pbWFnZXMgLmltYWdlLFxuLnVpLmJpZy5pbWFnZXMgaW1nLFxuLnVpLmJpZy5pbWFnZXMgc3ZnLFxuLnVpLmJpZy5pbWFnZSB7XG4gIHdpZHRoOiA2MDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5pbWFnZXMgLmltYWdlLFxuLnVpLmh1Z2UuaW1hZ2VzIGltZyxcbi51aS5odWdlLmltYWdlcyBzdmcsXG4udWkuaHVnZS5pbWFnZSB7XG4gIHdpZHRoOiA4MDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS5pbWFnZXMgLmltYWdlLFxuLnVpLm1hc3NpdmUuaW1hZ2VzIGltZyxcbi51aS5tYXNzaXZlLmltYWdlcyBzdmcsXG4udWkubWFzc2l2ZS5pbWFnZSB7XG4gIHdpZHRoOiA5NjBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaW1hZ2VzIHtcbiAgZm9udC1zaXplOiAwZW07XG4gIG1hcmdpbjogMGVtIC0wLjI1cmVtIDByZW07XG59XG4udWkuaW1hZ2VzIC5pbWFnZSxcbi51aS5pbWFnZXMgPiBpbWcsXG4udWkuaW1hZ2VzID4gc3ZnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjI1cmVtIDAuNXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBJbnB1dFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIElucHV0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gSW5wdXQgKi9cbi8qIENpcmN1bGFyIEljb24gSW5wdXQgKi9cbi8qIExhYmVsZWQgSW5wdXQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBsYWNlaG9sZGVyICovXG4vKiBEb3duICovXG4vKiBGb2N1cyAqL1xuLyogRXJyb3IgKi9cbi8qIExvYWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBJbnB1dFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uIElucHV0ICovXG4vKiBDaXJjdWxhciBJY29uIElucHV0ICovXG4vKiBMYWJlbGVkIElucHV0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQbGFjZWhvbGRlciAqL1xuLyogRG93biAqL1xuLyogRm9jdXMgKi9cbi8qIEVycm9yICovXG4vKiBMb2FkZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBTdGFuZGFyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5pbnB1dCA+IGlucHV0IHtcbiAgbWFyZ2luOiAwZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZmxleDogMSAwIGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgcGFkZGluZzogMC42Nzg1NzE0M2VtIDFlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGxhY2Vob2xkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBicm93c2VycyByZXF1aXJlIHRoZXNlIHJ1bGVzIHNlcGFyYXRlICovXG4udWkuaW5wdXQgPiBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDE5MSwgMTkxLCAxOTEsIDAuODcpO1xufVxuLnVpLmlucHV0ID4gaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxOTEsIDE5MSwgMTkxLCAwLjg3KTtcbn1cbi51aS5pbnB1dCA+IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDE5MSwgMTkxLCAxOTEsIDAuODcpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGlzYWJsZWQuaW5wdXQsXG4udWkuaW5wdXQ6bm90KC5kaXNhYmxlZCkgaW5wdXRbZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi51aS5kaXNhYmxlZC5pbnB1dCA+IGlucHV0LFxuLnVpLmlucHV0Om5vdCguZGlzYWJsZWQpIGlucHV0W2Rpc2FibGVkXSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5wdXQgPiBpbnB1dDphY3RpdmUsXG4udWkuaW5wdXQuZG93biBpbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBiYWNrZ3JvdW5kOiAjRkFGQUZBO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcubG9hZGluZy5pbnB1dCA+IGkuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY0Mjg1NzE0ZW0gMGVtIDBlbSAtMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMS4yODU3MTQyOWVtO1xuICBoZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXI6IDAuMmVtIHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS5sb2FkaW5nLmxvYWRpbmcuaW5wdXQgPiBpLmljb246YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY0Mjg1NzE0ZW0gMGVtIDBlbSAtMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMS4yODU3MTQyOWVtO1xuICBoZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgYW5pbWF0aW9uOiBidXR0b24tc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlucHV0LmZvY3VzID4gaW5wdXQsXG4udWkuaW5wdXQgPiBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzg1QjdEOTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnB1dC5mb2N1cyA+IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuLnVpLmlucHV0ID4gaW5wdXQ6Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjg3KTtcbn1cbi51aS5pbnB1dC5mb2N1cyA+IGlucHV0OjotbW96LXBsYWNlaG9sZGVyLFxuLnVpLmlucHV0ID4gaW5wdXQ6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjg3KTtcbn1cbi51aS5pbnB1dC5mb2N1cyA+IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbi51aS5pbnB1dCA+IGlucHV0OmZvY3VzOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuODcpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnB1dC5lcnJvciA+IGlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjZGNjtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xuICBjb2xvcjogIzlGM0EzODtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEVycm9yIFBsYWNlaG9sZGVyICovXG4udWkuaW5wdXQuZXJyb3IgPiBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjO1xufVxuLnVpLmlucHV0LmVycm9yID4gaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2U3YmRiYztcbn1cbi51aS5pbnB1dC5lcnJvciA+IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjICFpbXBvcnRhbnQ7XG59XG4vKiBGb2N1c2VkIEVycm9yIFBsYWNlaG9sZGVyICovXG4udWkuaW5wdXQuZXJyb3IgPiBpbnB1dDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2O1xufVxuLnVpLmlucHV0LmVycm9yID4gaW5wdXQ6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2RhOTc5Njtcbn1cbi51aS5pbnB1dC5lcnJvciA+IGlucHV0OmZvY3VzOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2ICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVHJhbnNwYXJlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudHJhbnNwYXJlbnQuaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG4vKiBUcmFuc3BhcmVudCBJY29uICovXG4udWkudHJhbnNwYXJlbnQuaWNvbi5pbnB1dCA+IGkuaWNvbiB7XG4gIHdpZHRoOiAxLjFlbTtcbn1cbi51aS50cmFuc3BhcmVudC5pY29uLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAyZW0gIWltcG9ydGFudDtcbn1cbi51aS50cmFuc3BhcmVudFtjbGFzcyo9XCJsZWZ0IGljb25cIl0uaW5wdXQgPiBpbnB1dCB7XG4gIHBhZGRpbmctbGVmdDogMmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xufVxuLyogVHJhbnNwYXJlbnQgSW52ZXJ0ZWQgKi9cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLnRyYW5zcGFyZW50LmludmVydGVkLmlucHV0ID4gaW5wdXQge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCA+IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCA+IGlucHV0OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCA+IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmljb24uaW5wdXQgPiBpLmljb24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbjogMGVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAyLjY3MTQyODU3ZW07XG4gIG9wYWNpdHk6IDAuNTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xufVxuLnVpLmljb24uaW5wdXQgPiBpLmljb246bm90KC5saW5rKSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnVpLmljb24uaW5wdXQgPiBpbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuNjcxNDI4NTdlbSAhaW1wb3J0YW50O1xufVxuLnVpLmljb24uaW5wdXQgPiBpLmljb246YmVmb3JlLFxuLnVpLmljb24uaW5wdXQgPiBpLmljb246YWZ0ZXIge1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG59XG4udWkuaWNvbi5pbnB1dCA+IGkubGluay5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLmljb24uaW5wdXQgPiBpLmNpcmN1bGFyLmljb24ge1xuICB0b3A6IDAuMzVlbTtcbiAgcmlnaHQ6IDAuNWVtO1xufVxuLyogTGVmdCBJY29uIElucHV0ICovXG4udWlbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaS5pY29uIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWlbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaS5jaXJjdWxhci5pY29uIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDAuNWVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgaWNvblwiXS5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAyLjY3MTQyODU3ZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMWVtICFpbXBvcnRhbnQ7XG59XG4vKiBGb2N1cyAqL1xuLnVpLmljb24uaW5wdXQgPiBpbnB1dDpmb2N1cyB+IGkuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExhYmVsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBZGphY2VudCBMYWJlbCAqL1xuLnVpLmxhYmVsZWQuaW5wdXQgPiAubGFiZWwge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYWJlbGVkLmlucHV0ID4gLmxhYmVsOm5vdCguY29ybmVyKSB7XG4gIHBhZGRpbmctdG9wOiAwLjc4NTcxNDI5ZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjc4NTcxNDI5ZW07XG59XG4vKiBSZWd1bGFyIExhYmVsIG9uIExlZnQgKi9cbi51aS5sYWJlbGVkLmlucHV0Om5vdChbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0pIC5sYWJlbDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XG59XG4udWkubGFiZWxlZC5pbnB1dDpub3QoW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdKSAubGFiZWw6Zmlyc3QtY2hpbGQgKyBpbnB1dCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udWkubGFiZWxlZC5pbnB1dDpub3QoW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdKSAubGFiZWw6Zmlyc3QtY2hpbGQgKyBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjODVCN0Q5O1xufVxuLyogUmVndWxhciBMYWJlbCBvbiBSaWdodCAqL1xuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pbnB1dCA+IGlucHV0ICsgLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pbnB1dCA+IGlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjODVCN0Q5ICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgTGFiZWwgKi9cbi51aS5sYWJlbGVkLmlucHV0IC5jb3JuZXIubGFiZWwge1xuICB0b3A6IDFweDtcbiAgcmlnaHQ6IDFweDtcbiAgZm9udC1zaXplOiAwLjY0Mjg1NzE0ZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4vKiBTcGFjaW5nIHdpdGggY29ybmVyIGxhYmVsICovXG4udWlbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl06bm90KFtjbGFzcyo9XCJsZWZ0IGNvcm5lciBsYWJlbGVkXCJdKS5sYWJlbGVkLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLXJpZ2h0OiAyLjVlbSAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdLmljb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGNvcm5lciBsYWJlbGVkXCJdKSA+IGlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogMy4yNWVtICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0uaWNvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0pID4gLmljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDEuMjVlbTtcbn1cbi8qIExlZnQgTGFiZWxlZCAqL1xuLnVpW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0ubGFiZWxlZC5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAyLjVlbSAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0uaWNvbi5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAzLjI1ZW0gIWltcG9ydGFudDtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGNvcm5lciBsYWJlbGVkXCJdLmljb24uaW5wdXQgPiAuaWNvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1ZW07XG59XG4vKiBDb3JuZXIgTGFiZWwgUG9zaXRpb24gICovXG4udWkuaW5wdXQgPiAudWkuY29ybmVyLmxhYmVsIHtcbiAgdG9wOiAxcHg7XG4gIHJpZ2h0OiAxcHg7XG59XG4udWkuaW5wdXQgPiAudWkubGVmdC5jb3JuZXIubGFiZWwge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWN0aW9uLmlucHV0ID4gLmJ1dHRvbixcbi51aS5hY3Rpb24uaW5wdXQgPiAuYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuLnVpLmFjdGlvbi5pbnB1dCA+IC5idXR0b24sXG4udWkuYWN0aW9uLmlucHV0ID4gLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDAuNzg1NzE0MjllbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNzg1NzE0MjllbTtcbiAgbWFyZ2luOiAwO1xufVxuLyogQnV0dG9uIG9uIFJpZ2h0ICovXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gaW5wdXQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5kcm9wZG93bjpub3QoOmZpcnN0LWNoaWxkKSxcbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5idXR0b25zOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuZHJvcGRvd246bGFzdC1jaGlsZCxcbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuYnV0dG9uOmxhc3QtY2hpbGQsXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmJ1dHRvbnM6bGFzdC1jaGlsZCA+IC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHggMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBweDtcbn1cbi8qIElucHV0IEZvY3VzICovXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICM4NUI3RDkgIWltcG9ydGFudDtcbn1cbi8qIEJ1dHRvbiBvbiBMZWZ0ICovXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuZHJvcGRvd24sXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuYnV0dG9uLFxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmRyb3Bkb3duOmZpcnN0LWNoaWxkLFxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmJ1dHRvbjpmaXJzdC1jaGlsZCxcbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IC5idXR0b25zOmZpcnN0LWNoaWxkID4gLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMHB4IDBweCAwLjIxNDI4NTcxcmVtO1xufVxuLyogSW5wdXQgRm9jdXMgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IGlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM4NUI3RDkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4udWkuaW52ZXJ0ZWQuaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuaW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnVpLmZsdWlkLmlucHV0ID4gaW5wdXQge1xuICB3aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xufVxuLnVpLnNtYWxsLmlucHV0IHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG59XG4udWkuaW5wdXQge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYXJnZS5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xufVxuLnVpLmJpZy5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOWVtO1xufVxuLnVpLmh1Z2UuaW5wdXQge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNlbTtcbn1cbi51aS5tYXNzaXZlLmlucHV0IHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTGFiZWxcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTGFiZWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBtZWRpdW0gaXMgbm90IEBlbVNpemUgY3VzdG9tIHZhbHVlIHJlcXVpcmVkICovXG4vKiBHcm91cCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMaW5rICovXG4vKiBJY29uICovXG4vKiBJbWFnZSAqL1xuLyogRGV0YWlsICovXG4vKiBEZWxldGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYXNpYyAqL1xuLyogVGFnICovXG4vKiBBdm9pZHMgZXJyb3Igd2l0aCBiYWNrZ3JvdW5kOiBpbmhlcml0OyBvbiBhbmltYXRpb24gKi9cbi8qIFJpYmJvbiAqL1xuLyogUm91bmRpbmcgT2Zmc2V0IG9uIFRyaWFuZ2xlICovXG4vKiBSb3VuZGluZyBPZmZzZXQgb24gVHJpYW5nbGUgKi9cbi8qIENvbG9ycyAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIENvcm5lciAqL1xuLyogQ29ybmVyIFRleHQgKi9cbi8qIEhvcml6b250YWwgKi9cbi8qIENpcmN1bGFyIFBhZGRpbmcgKi9cbi8qIFBvaW50aW5nICovXG4vKiBCYXNpYyBQb2ludGluZyAqL1xuLyogRmxvYXRpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l6aW5nICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMYWJlbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIG1lZGl1bSBpcyBub3QgQGVtU2l6ZSBjdXN0b20gdmFsdWUgcmVxdWlyZWQgKi9cbi8qIEdyb3VwICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFydHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpbmsgKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBEZXRhaWwgKi9cbi8qIERlbGV0ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbWFnZSBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJhc2ljICovXG4vKiBUYWcgKi9cbi8qIEF2b2lkcyBlcnJvciB3aXRoIGJhY2tncm91bmQ6IGluaGVyaXQ7IG9uIGFuaW1hdGlvbiAqL1xuLyogUmliYm9uICovXG4vKiBSb3VuZGluZyBPZmZzZXQgb24gVHJpYW5nbGUgKi9cbi8qIFJvdW5kaW5nIE9mZnNldCBvbiBUcmlhbmdsZSAqL1xuLyogQ29sb3JzICovXG4vKiBBdHRhY2hlZCAqL1xuLyogQ29ybmVyICovXG4vKiBDb3JuZXIgVGV4dCAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLyogQ2lyY3VsYXIgUGFkZGluZyAqL1xuLyogUG9pbnRpbmcgKi9cbi8qIEJhc2ljIFBvaW50aW5nICovXG4vKiBGbG9hdGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXppbmcgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgTGFiZWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbjogMGVtIDAuMTQyODU3MTRlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U4RThFODtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgcGFkZGluZzogMC41ODMzZW0gMC44MzNlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXI6IDBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7XG59XG4udWkubGFiZWw6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmxhYmVsOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi8qIExpbmsgKi9cbmEudWkubGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKiBJbnNpZGUgTGluayAqL1xuLnVpLmxhYmVsID4gYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogMC4xcyBvcGFjaXR5IGVhc2U7XG59XG4udWkubGFiZWwgPiBhOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qIEltYWdlICovXG4udWkubGFiZWwgPiBpbWcge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBoZWlnaHQ6IDIuMTY2NmVtICFpbXBvcnRhbnQ7XG59XG4vKiBJY29uICovXG4udWkubGFiZWwgPiAuaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbSAwLjc1ZW0gMGVtIDBlbTtcbn1cbi8qIERldGFpbCAqL1xuLnVpLmxhYmVsID4gLmRldGFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIG9wYWNpdHk6IDAuODtcbn1cbi51aS5sYWJlbCA+IC5kZXRhaWwgLmljb24ge1xuICBtYXJnaW46IDBlbSAwLjI1ZW0gMGVtIDBlbTtcbn1cbi8qIFJlbW92YWJsZSBsYWJlbCAqL1xuLnVpLmxhYmVsID4gLmNsb3NlLmljb24sXG4udWkubGFiZWwgPiAuZGVsZXRlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlO1xufVxuLnVpLmxhYmVsID4gLmRlbGV0ZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGFiZWxzID4gLmxhYmVsIHtcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMC41ZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgPiAudWkubGFiZWwge1xuICBtYXJnaW4tdG9wOiAtMC4yOTE2NWVtO1xufVxuLyogUmVtb3ZlIGJvcmRlciByYWRpdXMgb24gYXR0YWNoZWQgc2VnbWVudCAqL1xuLnVpLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkudG9wLmxlZnQuYXR0YWNoZWQubGFiZWwsXG4udWkuYm90dG9tLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkudG9wLmxlZnQuYXR0YWNoZWQubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLnVpLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkudG9wLnJpZ2h0LmF0dGFjaGVkLmxhYmVsLFxuLnVpLmJvdHRvbS5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLnRvcC5yaWdodC5hdHRhY2hlZC5sYWJlbCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuLnVpLnRvcC5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLmJvdHRvbS5sZWZ0LmF0dGFjaGVkLmxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi51aS50b3AuYXR0YWNoZWQuc2VnbWVudCA+IC51aS5ib3R0b20ucmlnaHQuYXR0YWNoZWQubGFiZWwge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cbi8qIFBhZGRpbmcgb24gbmV4dCBjb250ZW50IGFmdGVyIGEgbGFiZWwgKi9cbi51aS50b3AuYXR0YWNoZWQubGFiZWw6Zmlyc3QtY2hpbGQgKyA6bm90KC5hdHRhY2hlZCksXG4udWkudG9wLmF0dGFjaGVkLmxhYmVsICsgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0gKyAqIHtcbiAgbWFyZ2luLXRvcDogMnJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5sYWJlbDpmaXJzdC1jaGlsZCB+IDpsYXN0LWNoaWxkOm5vdCguYXR0YWNoZWQpIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAycmVtICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmltYWdlLmxhYmVsIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIG1heC13aWR0aDogOTk5OXB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjRThFOEU4O1xuICBwYWRkaW5nOiAwLjU4MzNlbSAwLjgzM2VtIDAuNTgzM2VtIDAuNWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmltYWdlLmxhYmVsIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgaGVpZ2h0OiAyLjE2NjZlbTtcbiAgbWFyZ2luOiAtMC41ODMzZW0gMC41ZW0gLTAuNTgzM2VtIC0wLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWkuaW1hZ2UubGFiZWwgLmRldGFpbCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgbWFyZ2luOiAtMC41ODMzZW0gLTAuODMzZW0gLTAuNTgzM2VtIDAuNWVtO1xuICBwYWRkaW5nOiAwLjU4MzNlbSAwLjgzM2VtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVGFnXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFnLmxhYmVscyAubGFiZWwsXG4udWkudGFnLmxhYmVsIHtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW07XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4udWkudGFnLmxhYmVscyAubGFiZWw6YmVmb3JlLFxuLnVpLnRhZy5sYWJlbDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDUwJSkgcm90YXRlKC00NWRlZyk7XG4gIHRvcDogNTAlO1xuICByaWdodDogMTAwJTtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIHdpZHRoOiAxLjU2ZW07XG4gIGhlaWdodDogMS41NmVtO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLnVpLnRhZy5sYWJlbHMgLmxhYmVsOmFmdGVyLFxuLnVpLnRhZy5sYWJlbDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAtMC4yNWVtO1xuICBtYXJnaW4tdG9wOiAtMC4yNWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAwLjVlbTtcbiAgaGVpZ2h0OiAwLjVlbTtcbiAgYm94LXNoYWRvdzogMCAtMXB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ29ybmVyIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29ybmVyLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBlbTtcbiAgcmlnaHQ6IDBlbTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItY29sb3I6ICNFOEU4RTg7XG4gIHdpZHRoOiA0ZW07XG4gIGhlaWdodDogNGVtO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xufVxuLyogSWNvbiBMYWJlbCAqL1xuLnVpLmNvcm5lci5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWkuY29ybmVyLmxhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiBcIlwiO1xuICByaWdodDogMGVtO1xuICB0b3A6IDBlbTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiAwZW07XG4gIGhlaWdodDogMGVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiAwZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAwZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogaW5oZXJpdDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5jb3JuZXIubGFiZWwgLmljb24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwLjY0Mjg1NzE0ZW07XG4gIGxlZnQ6IDAuNzg1NzE0MjllbTtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0ZW07XG4gIG1hcmdpbjogMGVtO1xufVxuLyogTGVmdCBDb3JuZXIgKi9cbi51aS5sZWZ0LmNvcm5lci5sYWJlbCxcbi51aS5sZWZ0LmNvcm5lci5sYWJlbDphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwZW07XG59XG4udWkubGVmdC5jb3JuZXIubGFiZWw6YWZ0ZXIge1xuICBib3JkZXItdG9wOiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAwZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAwZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IGluaGVyaXQ7XG59XG4udWkubGVmdC5jb3JuZXIubGFiZWwgLmljb24ge1xuICBsZWZ0OiAtMC43ODU3MTQyOWVtO1xufVxuLyogU2VnbWVudCAqL1xuLnVpLnNlZ21lbnQgPiAudWkuY29ybmVyLmxhYmVsIHtcbiAgdG9wOiAtMXB4O1xuICByaWdodDogLTFweDtcbn1cbi51aS5zZWdtZW50ID4gLnVpLmxlZnQuY29ybmVyLmxhYmVsIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBSaWJib25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yaWJib24ubGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMGVtO1xuICBtaW4td2lkdGg6IG1heC1jb250ZW50O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLnVpLnJpYmJvbi5sYWJlbDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMGVtIDEuMmVtIDEuMmVtIDBlbTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBpbmhlcml0O1xuICB3aWR0aDogMGVtO1xuICBoZWlnaHQ6IDBlbTtcbn1cbi8qIFBvc2l0aW9uaW5nICovXG4udWkucmliYm9uLmxhYmVsIHtcbiAgbGVmdDogY2FsYygtMi4ycmVtKTtcbiAgbWFyZ2luLXJpZ2h0OiAtMS4yZW07XG4gIHBhZGRpbmctbGVmdDogY2FsYygyLjJyZW0pO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjJlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICBsZWZ0OiBjYWxjKDEwMi4yJSk7XG4gIHBhZGRpbmctbGVmdDogMS4yZW07XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGMoMi4ycmVtKTtcbn1cbi8qIFJpZ2h0IFJpYmJvbiAqL1xuLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMGVtIDBlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbDphZnRlciB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwJTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxLjJlbSAxLjJlbSAwZW0gMGVtO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLWNvbG9yOiBpbmhlcml0O1xufVxuLyogSW5zaWRlIFRhYmxlICovXG4udWkuaW1hZ2UgPiAucmliYm9uLmxhYmVsLFxuLnVpLmNhcmQgLmltYWdlID4gLnJpYmJvbi5sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxcmVtO1xufVxuLnVpLmNhcmQgLmltYWdlID4gLnVpLnJpYmJvbi5sYWJlbCxcbi51aS5pbWFnZSA+IC51aS5yaWJib24ubGFiZWwge1xuICBsZWZ0OiBjYWxjKC0xLjE1cmVtKTtcbn1cbi51aS5jYXJkIC5pbWFnZSA+IC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwsXG4udWkuaW1hZ2UgPiAudWlbY2xhc3MqPVwicmlnaHQgcmliYm9uXCJdLmxhYmVsIHtcbiAgbGVmdDogY2FsYygxMDEuMTUlKTtcbiAgcGFkZGluZy1sZWZ0OiAwLjgzM2VtO1xufVxuLyogSW5zaWRlIFRhYmxlICovXG4udWkudGFibGUgdGQgPiAudWkucmliYm9uLmxhYmVsIHtcbiAgbGVmdDogY2FsYygtMS45ODU3MTQyOWVtKTtcbn1cbi51aS50YWJsZSB0ZCA+IC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICBsZWZ0OiBjYWxjKDEwMS45ODU3MTQyOSUpO1xuICBwYWRkaW5nLWxlZnQ6IDAuODMzZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmxhYmVsLFxuLnVpLmF0dGFjaGVkLmxhYmVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwZW07XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwZW07XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCBsZWZ0IGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ0b3AgcmlnaHQgYXR0YWNoZWRcIl0ubGFiZWwge1xuICB3aWR0aDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGxlZnQgYXR0YWNoZWRcIl0ubGFiZWwge1xuICB3aWR0aDogYXV0bztcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIHJpZ2h0IGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBlbTtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDBlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGFiZWwuZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmEudWkubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTBFMEUwO1xuICBib3JkZXItY29sb3I6ICNFMEUwRTA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4udWkubGFiZWxzIGEubGFiZWw6aG92ZXI6YmVmb3JlLFxuYS51aS5sYWJlbDpob3ZlcjpiZWZvcmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFjdGl2ZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEMEQwRDA7XG4gIGJvcmRlci1jb2xvcjogI0QwRDBEMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuYWN0aXZlLmxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEMEQwRDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZSBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuYS51aS5sYWJlbHMgLmFjdGl2ZS5sYWJlbDpob3ZlcixcbmEudWkuYWN0aXZlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M4QzhDODtcbiAgYm9yZGVyLWNvbG9yOiAjQzhDOEM4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5sYWJlbHMgYS5hY3RpdmUubGFiZWw6QWN0aXZlSG92ZXI6YmVmb3JlLFxuYS51aS5hY3RpdmUubGFiZWw6QWN0aXZlSG92ZXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M4QzhDODtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZpc2libGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbHMudmlzaWJsZSAubGFiZWwsXG4udWkubGFiZWwudmlzaWJsZTpub3QoLmRyb3Bkb3duKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBIaWRkZW5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbHMuaGlkZGVuIC5sYWJlbCxcbi51aS5sYWJlbC5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBSZWQgLS0tKi9cbi51aS5yZWQubGFiZWxzIC5sYWJlbCxcbi51aS5yZWQubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnJlZC5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5yZWQubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2QwMTkxOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkucmVkLmNvcm5lci5sYWJlbCxcbi51aS5yZWQuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnJlZC5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICNiMjFlMWUgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucmVkLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMucmVkLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2QwMTkxOSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9yYW5nZSAtLS0qL1xuLnVpLm9yYW5nZS5sYWJlbHMgLmxhYmVsLFxuLnVpLm9yYW5nZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkub3JhbmdlLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLm9yYW5nZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMjYyMDIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZjI2MjAyICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5vcmFuZ2UuY29ybmVyLmxhYmVsLFxuLnVpLm9yYW5nZS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkub3JhbmdlLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogI2NmNTkwYyAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5vcmFuZ2UubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub3JhbmdlLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5vcmFuZ2UubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZjI2MjAyICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2YyNjIwMiAhaW1wb3J0YW50O1xufVxuLyotLS0gWWVsbG93IC0tLSovXG4udWkueWVsbG93LmxhYmVscyAubGFiZWwsXG4udWkueWVsbG93LmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS55ZWxsb3cubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkueWVsbG93LmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhYWUwMCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnllbGxvdy5jb3JuZXIubGFiZWwsXG4udWkueWVsbG93LmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS55ZWxsb3cucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjY2Q5OTAzICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnllbGxvdy5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy55ZWxsb3cubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnllbGxvdy5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPbGl2ZSAtLS0qL1xuLnVpLm9saXZlLmxhYmVscyAubGFiZWwsXG4udWkub2xpdmUubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLm9saXZlLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLm9saXZlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLm9saXZlLmNvcm5lci5sYWJlbCxcbi51aS5vbGl2ZS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkub2xpdmUucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTk4ZjM1ICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLm9saXZlLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5vbGl2ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBHcmVlbiAtLS0qL1xuLnVpLmdyZWVuLmxhYmVscyAubGFiZWwsXG4udWkuZ3JlZW4ubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLmdyZWVuLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLmdyZWVuLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2YWIzOSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLmdyZWVuLmNvcm5lci5sYWJlbCxcbi51aS5ncmVlbi5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkuZ3JlZW4ucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTk4ZjM1ICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmdyZWVuLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5ncmVlbi5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBUZWFsIC0tLSovXG4udWkudGVhbC5sYWJlbHMgLmxhYmVsLFxuLnVpLnRlYWwubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnRlYWwubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkudGVhbC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS50ZWFsLmNvcm5lci5sYWJlbCxcbi51aS50ZWFsLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS50ZWFsLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzAwODI3YyAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy50ZWFsLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnRlYWwubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xufVxuLyotLS0gQmx1ZSAtLS0qL1xuLnVpLmJsdWUubGFiZWxzIC5sYWJlbCxcbi51aS5ibHVlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5ibHVlLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLmJsdWUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE1ZDhmICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzIxNWQ4ZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuYmx1ZS5jb3JuZXIubGFiZWwsXG4udWkuYmx1ZS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkuYmx1ZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICMyMTRmNzYgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYmx1ZS5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5ibHVlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxNWQ4ZiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMyMTVkOGYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFZpb2xldCAtLS0qL1xuLnVpLnZpb2xldC5sYWJlbHMgLmxhYmVsLFxuLnVpLnZpb2xldC5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkudmlvbGV0LmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnZpb2xldC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS52aW9sZXQuY29ybmVyLmxhYmVsLFxuLnVpLnZpb2xldC5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkudmlvbGV0LnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzUwMmFhMSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy52aW9sZXQubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudmlvbGV0LmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy52aW9sZXQubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xufVxuLyotLS0gUHVycGxlIC0tLSovXG4udWkucHVycGxlLmxhYmVscyAubGFiZWwsXG4udWkucHVycGxlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5wdXJwbGUubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkucHVycGxlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnB1cnBsZS5jb3JuZXIubGFiZWwsXG4udWkucHVycGxlLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5wdXJwbGUucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjODIyOTlmICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnB1cnBsZS5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wdXJwbGUubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnB1cnBsZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQaW5rIC0tLSovXG4udWkucGluay5sYWJlbHMgLmxhYmVsLFxuLnVpLnBpbmsubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnBpbmsubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkucGluay5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5waW5rLmNvcm5lci5sYWJlbCxcbi51aS5waW5rLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5waW5rLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogI2M3MWY3ZSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5waW5rLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnBpbmsubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xufVxuLyotLS0gQnJvd24gLS0tKi9cbi51aS5icm93bi5sYWJlbHMgLmxhYmVsLFxuLnVpLmJyb3duLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5icm93bi5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5icm93bi5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5icm93bi5jb3JuZXIubGFiZWwsXG4udWkuYnJvd24uY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmJyb3duLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5icm93bi5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5icm93bi5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMuYnJvd24ubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xufVxuLyotLS0gR3JleSAtLS0qL1xuLnVpLmdyZXkubGFiZWxzIC5sYWJlbCxcbi51aS5ncmV5LmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5ncmV5LmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLmdyZXkubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuZ3JleS5jb3JuZXIubGFiZWwsXG4udWkuZ3JleS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkuZ3JleS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICM4MDUwMzEgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuZ3JleS5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5ncmV5LmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbn1cbi8qLS0tIEJsYWNrIC0tLSovXG4udWkuYmxhY2subGFiZWxzIC5sYWJlbCxcbi51aS5ibGFjay5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuYmxhY2subGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuYmxhY2subGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjcyOTJhICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzI3MjkyYSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuYmxhY2suY29ybmVyLmxhYmVsLFxuLnVpLmJsYWNrLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5ibGFjay5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICM4MDUwMzEgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYmxhY2subGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2subGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmJsYWNrLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzI3MjkyYSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJhc2ljLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIExpbmsgKi9cbmEudWkuYmFzaWMubGFiZWw6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRjtcbiAgY29sb3I6ICMzMjc3YjI7XG4gIGJveC1zaGFkb3c6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogUG9pbnRpbmcgKi9cbi51aS5iYXNpYy5wb2ludGluZy5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVsLmZsdWlkLFxuLnVpLmZsdWlkLmxhYmVscyA+IC5sYWJlbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5sYWJlbHMgLmxhYmVsLFxuLnVpLmludmVydGVkLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEhvcml6b250YWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ob3Jpem9udGFsLmxhYmVscyAubGFiZWwsXG4udWkuaG9yaXpvbnRhbC5sYWJlbCB7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDBlbSAwZW07XG4gIHBhZGRpbmc6IDAuNGVtIDAuODMzZW07XG4gIG1pbi13aWR0aDogM2VtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDaXJjdWxhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNpcmN1bGFyLmxhYmVscyAubGFiZWwsXG4udWkuY2lyY3VsYXIubGFiZWwge1xuICBtaW4td2lkdGg6IDJlbTtcbiAgbWluLWhlaWdodDogMmVtO1xuICBwYWRkaW5nOiAwLjVlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi51aS5lbXB0eS5jaXJjdWxhci5sYWJlbHMgLmxhYmVsLFxuLnVpLmVtcHR5LmNpcmN1bGFyLmxhYmVsIHtcbiAgbWluLXdpZHRoOiAwZW07XG4gIG1pbi1oZWlnaHQ6IDBlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDAuNWVtO1xuICBoZWlnaHQ6IDAuNWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQb2ludGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBvaW50aW5nLmxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLmF0dGFjaGVkLnBvaW50aW5nLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLnVpLnBvaW50aW5nLmxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGluaGVyaXQ7XG4gIGJvcmRlci13aWR0aDogbm9uZTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xufVxuLyogQXJyb3cgKi9cbi51aS5wb2ludGluZy5sYWJlbDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAwLjY2NjZlbTtcbiAgaGVpZ2h0OiAwLjY2NjZlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7XG59XG4vKi0tLSBBYm92ZSAtLS0qL1xuLnVpLnBvaW50aW5nLmxhYmVsLFxuLnVpW2NsYXNzKj1cInBvaW50aW5nIGFib3ZlXCJdLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLnVpLnBvaW50aW5nLmxhYmVsOmJlZm9yZSxcbi51aVtjbGFzcyo9XCJwb2ludGluZyBhYm92ZVwiXS5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItd2lkdGg6IDFweCAwcHggMHB4IDFweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgdG9wOiAwJTtcbiAgbGVmdDogNTAlO1xufVxuLyotLS0gQmVsb3cgLS0tKi9cbi51aVtjbGFzcyo9XCJib3R0b20gcG9pbnRpbmdcIl0ubGFiZWwsXG4udWlbY2xhc3MqPVwicG9pbnRpbmcgYmVsb3dcIl0ubGFiZWwge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlLFxuLnVpW2NsYXNzKj1cInBvaW50aW5nIGJlbG93XCJdLmxhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogMHB4IDFweCAxcHggMHB4O1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbn1cbi8qLS0tIExlZnQgLS0tKi9cbi51aVtjbGFzcyo9XCJsZWZ0IHBvaW50aW5nXCJdLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tbGVmdDogMC42NjY2ZW07XG59XG4udWlbY2xhc3MqPVwibGVmdCBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItd2lkdGg6IDBweCAwcHggMXB4IDFweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDBlbTtcbn1cbi8qLS0tIFJpZ2h0IC0tLSovXG4udWlbY2xhc3MqPVwicmlnaHQgcG9pbnRpbmdcIl0ubGFiZWwge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1yaWdodDogMC42NjY2ZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMXB4IDBweCAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwJTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuLyogQmFzaWMgUG9pbnRpbmcgKi9cbi8qLS0tIEFib3ZlIC0tLSovXG4udWkuYmFzaWMucG9pbnRpbmcubGFiZWw6YmVmb3JlLFxuLnVpLmJhc2ljW2NsYXNzKj1cInBvaW50aW5nIGFib3ZlXCJdLmxhYmVsOmJlZm9yZSB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG59XG4vKi0tLSBCZWxvdyAtLS0qL1xuLnVpLmJhc2ljW2NsYXNzKj1cImJvdHRvbSBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUsXG4udWkuYmFzaWNbY2xhc3MqPVwicG9pbnRpbmcgYmVsb3dcIl0ubGFiZWw6YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cbi8qLS0tIExlZnQgLS0tKi9cbi51aS5iYXNpY1tjbGFzcyo9XCJsZWZ0IHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAtMXB4O1xufVxuLyotLS0gUmlnaHQgLS0tKi9cbi51aS5iYXNpY1tjbGFzcyo9XCJyaWdodCBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IC0xcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgRmxvYXRpbmcgTGFiZWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0aW5nLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDA7XG4gIHRvcDogLTFlbTtcbiAgbGVmdDogMTAwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMS41ZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkubGFiZWxzIC5sYWJlbCxcbi51aS5taW5pLmxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjY0Mjg1NzE0cmVtO1xufVxuLnVpLnRpbnkubGFiZWxzIC5sYWJlbCxcbi51aS50aW55LmxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjcxNDI4NTcxcmVtO1xufVxuLnVpLnNtYWxsLmxhYmVscyAubGFiZWwsXG4udWkuc21hbGwubGFiZWwge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkubGFiZWxzIC5sYWJlbCxcbi51aS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS5sYXJnZS5sYWJlbHMgLmxhYmVsLFxuLnVpLmxhcmdlLmxhYmVsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmJpZy5sYWJlbHMgLmxhYmVsLFxuLnVpLmJpZy5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5odWdlLmxhYmVscyAubGFiZWwsXG4udWkuaHVnZS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLmxhYmVscyAubGFiZWwsXG4udWkubWFzc2l2ZS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBMaXN0XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExpc3RcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpc3QgKi9cbi8qIExpc3QgSXRlbSAqL1xuLyogU3ViIExpc3QgKi9cbi8qIFN1YiBMaXN0IEl0ZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBMaW5rICovXG4vKiBIZWFkZXIgTGluayAqL1xuLyogTGlua2VkIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmxvYXQgKi9cbi8qIEhvcml6b250YWwgKi9cbi8qIEludmVydGVkICovXG4vKiBMaW5rIExpc3QgKi9cbi8qIEludmVydGVkIExpbmsgTGlzdCAqL1xuLyogU2VsZWN0aW9uIExpc3QgKi9cbi8qIFNlbGVjdGlvbiBMaXN0IFN0YXRlcyAqL1xuLyogSW52ZXJ0ZWQgU2VsZWN0aW9uIExpc3QgKi9cbi8qIEFuaW1hdGVkIExpc3QgKi9cbi8qIEJ1bGxldGVkICovXG4vKiBIb3Jpem9udGFsIEJ1bGxldHMgKi9cbi8qIE9yZGVyZWQgTGlzdCAqL1xuLyogSG9yaXpvbnRhbCBPcmRlcmVkICovXG4vKiBEaXZpZGVkICovXG4vKiBEaXZpZGVkIEhvcml6b250YWwgKi9cbi8qIERpdmlkZWQgKi9cbi8qIERpdmlkZWQgSG9yaXpvbnRhbCAqL1xuLyogUmVsYXhlZCAqL1xuLyogVmVyeSBSZWxheGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMaXN0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMaXN0ICovXG4vKiBMaXN0IEl0ZW0gKi9cbi8qIFN1YiBMaXN0ICovXG4vKiBTdWIgTGlzdCBJdGVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBJbWFnZSAqL1xuLyogQ29udGVudCAqL1xuLyogSGVhZGVyICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogTGluayAqL1xuLyogSGVhZGVyIExpbmsgKi9cbi8qIExpbmtlZCBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZsb2F0ICovXG4vKiBIb3Jpem9udGFsICovXG4vKiBJbnZlcnRlZCAqL1xuLyogTGluayBMaXN0ICovXG4vKiBJbnZlcnRlZCBMaW5rIExpc3QgKi9cbi8qIFNlbGVjdGlvbiBMaXN0ICovXG4vKiBTZWxlY3Rpb24gTGlzdCBTdGF0ZXMgKi9cbi8qIEludmVydGVkIFNlbGVjdGlvbiBMaXN0ICovXG4vKiBBbmltYXRlZCBMaXN0ICovXG4vKiBCdWxsZXRlZCAqL1xuLyogSG9yaXpvbnRhbCBCdWxsZXRzICovXG4vKiBPcmRlcmVkIExpc3QgKi9cbi8qIEhvcml6b250YWwgT3JkZXJlZCAqL1xuLyogRGl2aWRlZCAqL1xuLyogRGl2aWRlZCBIb3Jpem9udGFsICovXG4vKiBEaXZpZGVkICovXG4vKiBEaXZpZGVkIEhvcml6b250YWwgKi9cbi8qIFJlbGF4ZWQgKi9cbi8qIFZlcnkgUmVsYXhlZCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBMaXN0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xudWwudWkubGlzdCxcbm9sLnVpLmxpc3QsXG4udWkubGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBwYWRkaW5nOiAwZW0gMGVtO1xufVxudWwudWkubGlzdDpmaXJzdC1jaGlsZCxcbm9sLnVpLmxpc3Q6Zmlyc3QtY2hpbGQsXG4udWkubGlzdDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbnVsLnVpLmxpc3Q6bGFzdC1jaGlsZCxcbm9sLnVpLmxpc3Q6bGFzdC1jaGlsZCxcbi51aS5saXN0Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExpc3QgSXRlbSAqL1xudWwudWkubGlzdCBsaSxcbm9sLnVpLmxpc3QgbGksXG4udWkubGlzdCA+IC5pdGVtLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBwYWRkaW5nOiAwLjIxNDI4NTcxZW0gMGVtO1xuICBsaW5lLWhlaWdodDogMS4xNDI4NTcxNGVtO1xufVxudWwudWkubGlzdCA+IGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxub2wudWkubGlzdCA+IGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxuLnVpLmxpc3QgPiAubGlzdCA+IC5pdGVtLFxuLnVpLmxpc3QgPiAuaXRlbTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxudWwudWkubGlzdCBsaTpmaXJzdC1jaGlsZCxcbm9sLnVpLmxpc3QgbGk6Zmlyc3QtY2hpbGQsXG4udWkubGlzdCAubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG51bC51aS5saXN0IGxpOmxhc3QtY2hpbGQsXG5vbC51aS5saXN0IGxpOmxhc3QtY2hpbGQsXG4udWkubGlzdCAubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQsXG4udWkubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLyogQ2hpbGQgTGlzdCAqL1xudWwudWkubGlzdCB1bCxcbm9sLnVpLmxpc3Qgb2wsXG4udWkubGlzdCAubGlzdCB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMC43NWVtIDBlbSAwLjI1ZW0gMC41ZW07XG59XG4vKiBDaGlsZCBJdGVtICovXG51bC51aS5saXN0IHVsIGxpLFxub2wudWkubGlzdCBvbCBsaSxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nOiAwLjE0Mjg1NzE0ZW0gMGVtO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cbi8qIEljb24gKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiBpLmljb24sXG4udWkubGlzdCA+IC5pdGVtID4gaS5pY29uIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmctdG9wOiAwZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuMjg1NzE0MjllbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IGkuaWNvbjpvbmx5LWNoaWxkLFxuLnVpLmxpc3QgPiAuaXRlbSA+IGkuaWNvbjpvbmx5LWNoaWxkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLyogSW1hZ2UgKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkubGlzdCA+IC5pdGVtID4gLmltYWdlIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbjogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZTpub3QoOm9ubHktY2hpbGQpOm5vdChpbWcpLFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5pbWFnZTpub3QoOm9ubHktY2hpbGQpOm5vdChpbWcpIHtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlIGltZyxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2UgaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiBpbWcuaW1hZ2UsXG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlOm9ubHktY2hpbGQsXG4udWkubGlzdCA+IC5pdGVtID4gaW1nLmltYWdlLFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5pbWFnZTpvbmx5LWNoaWxkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyogQ29udGVudCAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5jb250ZW50LFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5jb250ZW50IHtcbiAgbGluZS1oZWlnaHQ6IDEuMTQyODU3MTRlbTtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UgKyAuY29udGVudCxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaWNvbiArIC5jb250ZW50LFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50LFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5pY29uICsgLmNvbnRlbnQge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gMC41ZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gaW1nLmltYWdlICsgLmNvbnRlbnQsXG4udWkubGlzdCA+IC5pdGVtID4gaW1nLmltYWdlICsgLmNvbnRlbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5jb250ZW50ID4gLmxpc3QsXG4udWkubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQgPiAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIHBhZGRpbmctbGVmdDogMGVtO1xufVxuLyogSGVhZGVyICovXG4udWkubGlzdCAubGlzdCA+IC5pdGVtIC5oZWFkZXIsXG4udWkubGlzdCA+IC5pdGVtIC5oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwZW07XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIERlc2NyaXB0aW9uICovXG4udWkubGlzdCAubGlzdCA+IC5pdGVtIC5kZXNjcmlwdGlvbixcbi51aS5saXN0ID4gLml0ZW0gLmRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG4vKiBDaGlsZCBMaW5rICovXG4udWkubGlzdCA+IC5pdGVtIGEsXG4udWkubGlzdCAubGlzdCA+IC5pdGVtIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKiBMaW5raW5nIEl0ZW0gKi9cbi51aS5saXN0IC5saXN0ID4gYS5pdGVtLFxuLnVpLmxpc3QgPiBhLml0ZW0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjMkM2QTlFO1xufVxuLnVpLmxpc3QgLmxpc3QgPiBhLml0ZW06aG92ZXIsXG4udWkubGlzdCA+IGEuaXRlbTpob3ZlciB7XG4gIGNvbG9yOiAjMzI3N2IyO1xufVxuLyogTGlua2VkIEl0ZW0gSWNvbnMgKi9cbi51aS5saXN0IC5saXN0ID4gYS5pdGVtIGkuaWNvbixcbi51aS5saXN0ID4gYS5pdGVtIGkuaWNvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKiBIZWFkZXIgTGluayAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBhLmhlYWRlcixcbi51aS5saXN0ID4gLml0ZW0gYS5oZWFkZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtIGEuaGVhZGVyOmhvdmVyLFxuLnVpLmxpc3QgPiAuaXRlbSBhLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMzI3N2IyICFpbXBvcnRhbnQ7XG59XG4vKiBGbG9hdGVkIENvbnRlbnQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ubGlzdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ubGlzdCB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSxcbi51aS5saXN0ID4gLml0ZW0gW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDBlbSAxZW0gMGVtIDBlbTtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0sXG4udWkubGlzdCA+IC5pdGVtIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5tZW51IC51aS5saXN0ID4gLml0ZW0sXG4udWkubWVudSAudWkubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBwYWRkaW5nOiAwLjIxNDI4NTcxZW0gMGVtO1xuICBsaW5lLWhlaWdodDogMS4xNDI4NTcxNGVtO1xufVxuLnVpLm1lbnUgLnVpLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkubWVudSAudWkubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi51aS5tZW51IC51aS5saXN0IC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkubWVudSAudWkubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbi51aS5tZW51IC51aS5saXN0IC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCxcbi51aS5tZW51IC51aS5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhvcml6b250YWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ob3Jpem9udGFsLmxpc3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMGVtO1xufVxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0Om5vdCguY2VsbGVkKSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLmhvcml6b250YWwubGlzdCAubGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMGVtO1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmljb24sXG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0gPiAuaWNvbixcbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IC5jb250ZW50LFxuLnVpLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyogUGFkZGluZyBvbiBhbGwgZWxlbWVudHMgKi9cbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDAuMjE0Mjg1NzFlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMjE0Mjg1NzFlbTtcbn1cbi8qIEhvcml6b250YWwgTGlzdCAqL1xuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gaS5pY29uIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbSAwLjI1ZW0gMGVtIDBlbTtcbn1cbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmljb24gKyAuY29udGVudCB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGlzdCAubGlzdCA+IC5kaXNhYmxlZC5pdGVtLFxuLnVpLmxpc3QgPiAuZGlzYWJsZWQuaXRlbSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogcmdiYSg0MCwgNDAsIDQwLCAwLjMpICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IC5kaXNhYmxlZC5pdGVtLFxuLnVpLmludmVydGVkLmxpc3QgPiAuZGlzYWJsZWQuaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDIyNSwgMjI1LCAyMjUsIDAuMykgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxpc3QgLmxpc3QgPiBhLml0ZW06aG92ZXIgLmljb24sXG4udWkubGlzdCA+IGEuaXRlbTpob3ZlciAuaWNvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IGEuaXRlbSA+IC5pY29uLFxuLnVpLmludmVydGVkLmxpc3QgPiBhLml0ZW0gPiAuaWNvbiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IC5pdGVtIC5oZWFkZXIsXG4udWkuaW52ZXJ0ZWQubGlzdCA+IC5pdGVtIC5oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiAuaXRlbSAuZGVzY3JpcHRpb24sXG4udWkuaW52ZXJ0ZWQubGlzdCA+IC5pdGVtIC5kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4vKiBJdGVtIExpbmsgKi9cbi51aS5pbnZlcnRlZC5saXN0IC5saXN0ID4gYS5pdGVtLFxuLnVpLmludmVydGVkLmxpc3QgPiBhLml0ZW0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IGEuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5saXN0ID4gYS5pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICMzMjc3YjI7XG59XG4vKiBMaW5raW5nIENvbnRlbnQgKi9cbi51aS5pbnZlcnRlZC5saXN0IC5pdGVtIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQubGlzdCAuaXRlbSBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICMzMjc3YjIgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5saXN0W2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIC5pbWFnZSxcbi51aS5saXN0W2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIC5jb250ZW50LFxuLnVpLmxpc3QgW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xufVxuLnVpLmxpc3RbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0gLmltYWdlLFxuLnVpLmxpc3RbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0gLmNvbnRlbnQsXG4udWkubGlzdCBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG59XG4udWkubGlzdFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXSAuaW1hZ2UsXG4udWkubGlzdFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXSAuY29udGVudCxcbi51aS5saXN0IFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5saW5rLmxpc3QgLml0ZW0sXG4udWkubGluay5saXN0IGEuaXRlbSxcbi51aS5saW5rLmxpc3QgLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIHRyYW5zaXRpb246IDAuMXMgY29sb3IgZWFzZTtcbn1cbi51aS5saW5rLmxpc3QubGlzdCBhLml0ZW06aG92ZXIsXG4udWkubGluay5saXN0Lmxpc3QgLml0ZW0gYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4udWkubGluay5saXN0Lmxpc3QgYS5pdGVtOmFjdGl2ZSxcbi51aS5saW5rLmxpc3QubGlzdCAuaXRlbSBhOm5vdCgudWkpOmFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG59XG4udWkubGluay5saXN0Lmxpc3QgLmFjdGl2ZS5pdGVtLFxuLnVpLmxpbmsubGlzdC5saXN0IC5hY3RpdmUuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmxpbmsubGlzdCAuaXRlbSxcbi51aS5pbnZlcnRlZC5saW5rLmxpc3QgYS5pdGVtLFxuLnVpLmludmVydGVkLmxpbmsubGlzdCAuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51aS5pbnZlcnRlZC5saW5rLmxpc3QubGlzdCBhLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQubGluay5saXN0Lmxpc3QgLml0ZW0gYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLmxpbmsubGlzdC5saXN0IGEuaXRlbTphY3RpdmUsXG4udWkuaW52ZXJ0ZWQubGluay5saXN0Lmxpc3QgLml0ZW0gYTpub3QoLnVpKTphY3RpdmUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5saW5rLmxpc3QubGlzdCBhLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLmxpbmsubGlzdC5saXN0IC5hY3RpdmUuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNlbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDAuNWVtIDAuNWVtO1xuICBtYXJnaW46IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm9yZGVyLXJhZGl1czogMC41ZW07XG4gIHRyYW5zaXRpb246IDAuMXMgY29sb3IgZWFzZSwgMC4xcyBwYWRkaW5nLWxlZnQgZWFzZSwgMC4xcyBiYWNrZ3JvdW5kLWNvbG9yIGVhc2U7XG59XG4udWkuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkLFxuLnVpLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5zZWxlY3Rpb24ubGlzdC5saXN0ID4gLml0ZW06aG92ZXIsXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4udWkuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbTphY3RpdmUsXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xufVxuLnVpLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0uYWN0aXZlLFxuLnVpLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0sXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMik7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06YWN0aXZlLFxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbS5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIENlbGxlZCAvIERpdmlkZWQgU2VsZWN0aW9uIExpc3QgKi9cbi51aS5jZWxsZWQuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5kaXZpZGVkLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0sXG4udWkuZGl2aWRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQW5pbWF0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hbmltYXRlZC5saXN0ID4gLml0ZW0ge1xuICB0cmFuc2l0aW9uOiAwLjI1cyBjb2xvciBlYXNlIDAuMXMsIDAuMjVzIHBhZGRpbmctbGVmdCBlYXNlIDAuMXMsIDAuMjVzIGJhY2tncm91bmQtY29sb3IgZWFzZSAwLjFzO1xufVxuLnVpLmFuaW1hdGVkLmxpc3Q6bm90KC5ob3Jpem9udGFsKSA+IC5pdGVtOmhvdmVyIHtcbiAgcGFkZGluZy1sZWZ0OiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXR0ZWQubGlzdDpub3QoLnNlbGVjdGlvbikgLmxpc3QgPiAuaXRlbSxcbi51aS5maXR0ZWQubGlzdDpub3QoLnNlbGVjdGlvbikgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMGVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwZW07XG59XG4udWkuZml0dGVkLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuZml0dGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0ge1xuICBtYXJnaW4tbGVmdDogLTAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQnVsbGV0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbnVsLnVpLmxpc3QsXG4udWkuYnVsbGV0ZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xufVxudWwudWkubGlzdCBsaSxcbi51aS5idWxsZXRlZC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuYnVsbGV0ZWQubGlzdCA+IC5pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxudWwudWkubGlzdCBsaTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCAubGlzdCA+IC5pdGVtOmJlZm9yZSxcbi51aS5idWxsZXRlZC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWxlZnQ6IC0xLjI1cmVtO1xuICBjb250ZW50OiAn4oCiJztcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG51bC51aS5saXN0IGxpOmJlZm9yZSxcbi51aS5idWxsZXRlZC5saXN0IC5saXN0ID4gYS5pdGVtOmJlZm9yZSxcbi51aS5idWxsZXRlZC5saXN0ID4gYS5pdGVtOmJlZm9yZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxudWwudWkubGlzdCB1bCxcbi51aS5idWxsZXRlZC5saXN0IC5saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xufVxuLyogSG9yaXpvbnRhbCBCdWxsZXRlZCAqL1xudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0LFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG51bC51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgbGksXG4udWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0ID4gLml0ZW0ge1xuICBtYXJnaW4tbGVmdDogMS43NXJlbTtcbn1cbnVsLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCBsaTpmaXJzdC1jaGlsZCxcbi51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG51bC51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgbGk6OmJlZm9yZSxcbi51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgPiAuaXRlbTo6YmVmb3JlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG51bC51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgbGk6Zmlyc3QtY2hpbGQ6OmJlZm9yZSxcbi51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIE9yZGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbm9sLnVpLmxpc3QsXG4udWkub3JkZXJlZC5saXN0LFxuLnVpLm9yZGVyZWQubGlzdCAubGlzdCxcbm9sLnVpLmxpc3Qgb2wge1xuICBjb3VudGVyLXJlc2V0OiBvcmRlcmVkO1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxub2wudWkubGlzdCBsaSxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5vcmRlcmVkLmxpc3QgPiAuaXRlbSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxub2wudWkubGlzdCBsaTpiZWZvcmUsXG4udWkub3JkZXJlZC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLm9yZGVyZWQubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAtMS4yNXJlbTtcbiAgY291bnRlci1pbmNyZW1lbnQ6IG9yZGVyZWQ7XG4gIGNvbnRlbnQ6IGNvdW50ZXJzKG9yZGVyZWQsIFwiLlwiKSBcIiBcIjtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBvcGFjaXR5OiAwLjg7XG59XG5vbC51aS5pbnZlcnRlZC5saXN0IGxpOmJlZm9yZSxcbi51aS5vcmRlcmVkLmludmVydGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkub3JkZXJlZC5pbnZlcnRlZC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi8qIFZhbHVlICovXG4udWkub3JkZXJlZC5saXN0ID4gLmxpc3QgPiAuaXRlbVtkYXRhLXZhbHVlXSxcbi51aS5vcmRlcmVkLmxpc3QgPiAuaXRlbVtkYXRhLXZhbHVlXSB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS12YWx1ZSk7XG59XG5vbC51aS5saXN0IGxpW3ZhbHVlXTpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKHZhbHVlKTtcbn1cbi8qIENoaWxkIExpc3RzICovXG5vbC51aS5saXN0IG9sLFxuLnVpLm9yZGVyZWQubGlzdCAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5vbC51aS5saXN0IG9sIGxpOmJlZm9yZSxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogLTJlbTtcbn1cbi8qIEhvcml6b250YWwgT3JkZXJlZCAqL1xub2wudWkuaG9yaXpvbnRhbC5saXN0LFxuLnVpLm9yZGVyZWQuaG9yaXpvbnRhbC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbm9sLnVpLmhvcml6b250YWwubGlzdCBsaTpiZWZvcmUsXG4udWkub3JkZXJlZC5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkub3JkZXJlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZWQubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuZGl2aWRlZC5saXN0IC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmRpdmlkZWQubGlzdCAuaXRlbSAubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5kaXZpZGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5kaXZpZGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBTdWIgTWVudSAqL1xuLnVpLmRpdmlkZWQubGlzdDpub3QoLmhvcml6b250YWwpIC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG59XG4vKiBEaXZpZGVkIGJ1bGxldGVkICovXG4udWkuZGl2aWRlZC5idWxsZXRlZC5saXN0Om5vdCguaG9yaXpvbnRhbCksXG4udWkuZGl2aWRlZC5idWxsZXRlZC5saXN0IC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG59XG4udWkuZGl2aWRlZC5idWxsZXRlZC5saXN0ID4gLml0ZW06bm90KC5ob3Jpem9udGFsKSB7XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbn1cbi8qIERpdmlkZWQgT3JkZXJlZCAqL1xuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG4udWkuZGl2aWRlZC5vcmRlcmVkLmxpc3QgLml0ZW0gLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMjE0Mjg1NzFlbTtcbn1cbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCAuaXRlbSAubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxZW07XG59XG4vKiBEaXZpZGVkIFNlbGVjdGlvbiAqL1xuLnVpLmRpdmlkZWQuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5kaXZpZGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLyogRGl2aWRlZCBob3Jpem9udGFsICovXG4udWkuZGl2aWRlZC5ob3Jpem9udGFsLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmRpdmlkZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xufVxuLnVpLmRpdmlkZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmRpdmlkZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMGVtO1xuICBsaW5lLWhlaWdodDogMC42O1xufVxuLnVpLmhvcml6b250YWwuZGl2aWRlZC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi8qIEludmVydGVkICovXG4udWkuZGl2aWRlZC5pbnZlcnRlZC5saXN0ID4gLml0ZW0sXG4udWkuZGl2aWRlZC5pbnZlcnRlZC5saXN0ID4gLmxpc3QsXG4udWkuZGl2aWRlZC5pbnZlcnRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIENlbGxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNlbGxlZC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLmxpc3QgPiAubGlzdCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5jZWxsZWQubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFBhZGRpbmcgb24gYWxsIGVsZW1lbnRzICovXG4udWkuY2VsbGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5jZWxsZWQubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMC4yMTQyODU3MWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4yMTQyODU3MWVtO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS5jZWxsZWQubGlzdCAuaXRlbSAubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXdpZHRoOiAwcHg7XG59XG4udWkuY2VsbGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDBweDtcbn1cbi8qIENlbGxlZCBCdWxsZXRlZCAqL1xuLnVpLmNlbGxlZC5idWxsZXRlZC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5jZWxsZWQuYnVsbGV0ZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmNlbGxlZC5idWxsZXRlZC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG4udWkuY2VsbGVkLmJ1bGxldGVkLmxpc3QgLml0ZW0gLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogLTEuMjVyZW07XG4gIG1hcmdpbi1yaWdodDogLTEuMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjIxNDI4NTcxZW07XG59XG4vKiBDZWxsZWQgT3JkZXJlZCAqL1xuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQub3JkZXJlZC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCAuaXRlbSAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4yMTQyODU3MWVtO1xufVxuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMWVtO1xufVxuLyogQ2VsbGVkIEhvcml6b250YWwgKi9cbi51aS5ob3Jpem9udGFsLmNlbGxlZC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5ob3Jpem9udGFsLmNlbGxlZC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuaG9yaXpvbnRhbC5jZWxsZWQubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gIGxpbmUtaGVpZ2h0OiAwLjY7XG59XG4udWkuaG9yaXpvbnRhbC5jZWxsZWQubGlzdCAubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQsXG4udWkuaG9yaXpvbnRhbC5jZWxsZWQubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5jZWxsZWQuaW52ZXJ0ZWQubGlzdCA+IC5pdGVtLFxuLnVpLmNlbGxlZC5pbnZlcnRlZC5saXN0ID4gLmxpc3Qge1xuICBib3JkZXItY29sb3I6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udWkuY2VsbGVkLmludmVydGVkLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmNlbGxlZC5pbnZlcnRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFJlbGF4ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yZWxheGVkLmxpc3Q6bm90KC5ob3Jpem9udGFsKSA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy10b3A6IDAuNDI4NTcxNDNlbTtcbn1cbi51aS5yZWxheGVkLmxpc3Q6bm90KC5ob3Jpem9udGFsKSA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBwYWRkaW5nLWJvdHRvbTogMC40Mjg1NzE0M2VtO1xufVxuLnVpLmhvcml6b250YWwucmVsYXhlZC5saXN0IC5saXN0ID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCksXG4udWkuaG9yaXpvbnRhbC5yZWxheGVkLmxpc3QgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cbi51aS5ob3Jpem9udGFsLnJlbGF4ZWQubGlzdCAubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCksXG4udWkuaG9yaXpvbnRhbC5yZWxheGVkLmxpc3QgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cbi8qIFZlcnkgUmVsYXhlZCAqL1xuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctdG9wOiAwLjg1NzE0Mjg2ZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmxpc3Q6bm90KC5ob3Jpem9udGFsKSA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBwYWRkaW5nLWJvdHRvbTogMC44NTcxNDI4NmVtO1xufVxuLnVpLmhvcml6b250YWxbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmxpc3QgLmxpc3QgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSxcbi51aS5ob3Jpem9udGFsW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0ID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbn1cbi51aS5ob3Jpem9udGFsW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0IC5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSxcbi51aS5ob3Jpem9udGFsW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmxpc3Qge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjllbTtcbn1cbi51aS50aW55Lmxpc3Qge1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbn1cbi51aS5zbWFsbC5saXN0IHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG59XG4udWkubGlzdCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhcmdlLmxpc3Qge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRlbTtcbn1cbi51aS5iaWcubGlzdCB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOWVtO1xufVxuLnVpLmh1Z2UubGlzdCB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M2VtO1xufVxuLnVpLm1hc3NpdmUubGlzdCB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MWVtO1xufVxuLnVpLm1pbmkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkubWluaS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55Lmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLnRpbnkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuc21hbGwuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkubGFyZ2UuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuYmlnLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmJpZy5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5odWdlLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmh1Z2UuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5tYXNzaXZlLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBMb2FkZXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTG9hZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU29tZSBnbG9iYWwgbG9hZGVyIHN0eWxlcyBkZWZpbmVkIGluIHNpdGUudmFyaWFibGVzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFN0YW5kYXJkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRXhhY3QgU2l6ZXMgKEF2b2lkcyBSb3VuZGluZyBFcnJvcnMpICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMb2FkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTb21lIGdsb2JhbCBsb2FkZXIgc3R5bGVzIGRlZmluZWQgaW4gc2l0ZS52YXJpYWJsZXMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhbmRhcmRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFeGFjdCBTaXplcyAoQXZvaWRzIFJvdW5kaW5nIEVycm9ycykgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgTG9hZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU3RhbmRhcmQgU2l6ZSAqL1xuLnVpLmxvYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgei1pbmRleDogMTAwMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG59XG4vKiBTdGF0aWMgU2hhcGUgKi9cbi51aS5sb2FkZXI6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlcjogMC4yZW0gc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLyogQWN0aXZlIFNoYXBlICovXG4udWkubG9hZGVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbmltYXRpb246IGxvYWRlciAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG4vKiBBY3RpdmUgQW5pbWF0aW9uICovXG5Aa2V5ZnJhbWVzIGxvYWRlciB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKiBTaXplcyAqL1xuLnVpLm1pbmkubG9hZGVyOmJlZm9yZSxcbi51aS5taW5pLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiAxcmVtO1xuICBoZWlnaHQ6IDFyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTAuNXJlbTtcbn1cbi51aS50aW55LmxvYWRlcjpiZWZvcmUsXG4udWkudGlueS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogMS4xNDI4NTcxNHJlbTtcbiAgaGVpZ2h0OiAxLjE0Mjg1NzE0cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0wLjU3MTQyODU3cmVtO1xufVxuLnVpLnNtYWxsLmxvYWRlcjpiZWZvcmUsXG4udWkuc21hbGwubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDEuNzE0Mjg1NzFyZW07XG4gIGhlaWdodDogMS43MTQyODU3MXJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMC44NTcxNDI4NnJlbTtcbn1cbi51aS5sb2FkZXI6YmVmb3JlLFxuLnVpLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiAyLjI4NTcxNDI5cmVtO1xuICBoZWlnaHQ6IDIuMjg1NzE0MjlyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTEuMTQyODU3MTRyZW07XG59XG4udWkubGFyZ2UubG9hZGVyOmJlZm9yZSxcbi51aS5sYXJnZS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogMy40Mjg1NzE0M3JlbTtcbiAgaGVpZ2h0OiAzLjQyODU3MTQzcmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0xLjcxNDI4NTcxcmVtO1xufVxuLnVpLmJpZy5sb2FkZXI6YmVmb3JlLFxuLnVpLmJpZy5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogMy43MTQyODU3MXJlbTtcbiAgaGVpZ2h0OiAzLjcxNDI4NTcxcmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0xLjg1NzE0Mjg2cmVtO1xufVxuLnVpLmh1Z2UubG9hZGVyOmJlZm9yZSxcbi51aS5odWdlLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiA0LjE0Mjg1NzE0cmVtO1xuICBoZWlnaHQ6IDQuMTQyODU3MTRyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTIuMDcxNDI4NTdyZW07XG59XG4udWkubWFzc2l2ZS5sb2FkZXI6YmVmb3JlLFxuLnVpLm1hc3NpdmUubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDQuNTcxNDI4NTdyZW07XG4gIGhlaWdodDogNC41NzE0Mjg1N3JlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMi4yODU3MTQyOXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNob3cgaW5zaWRlIGFjdGl2ZSBkaW1tZXIgKi9cbi51aS5kaW1tZXIgLmxvYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogQmxhY2sgRGltbWVyICovXG4udWkuZGltbWVyIC51aS5sb2FkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmRpbW1lciAudWkubG9hZGVyOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cbi51aS5kaW1tZXIgLnVpLmxvYWRlcjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogI0ZGRkZGRiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbn1cbi8qIFdoaXRlIERpbW1lciAoSW52ZXJ0ZWQpICovXG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5sb2FkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmxvYWRlcjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmxvYWRlcjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRleHQubG9hZGVyIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5pbmRldGVybWluYXRlLmxvYWRlcjphZnRlciB7XG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMS4ycztcbn1cbi51aS5sb2FkZXIuYWN0aXZlLFxuLnVpLmxvYWRlci52aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkubG9hZGVyLmRpc2FibGVkLFxuLnVpLmxvYWRlci5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlciAqL1xuLnVpLmludmVydGVkLmRpbW1lciAudWkubWluaS5sb2FkZXIsXG4udWkubWluaS5sb2FkZXIge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBmb250LXNpemU6IDAuNzg1NzE0MjllbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLnRpbnkubG9hZGVyLFxuLnVpLnRpbnkubG9hZGVyIHtcbiAgd2lkdGg6IDEuMTQyODU3MTRyZW07XG4gIGhlaWdodDogMS4xNDI4NTcxNHJlbTtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2ZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5zbWFsbC5sb2FkZXIsXG4udWkuc21hbGwubG9hZGVyIHtcbiAgd2lkdGg6IDEuNzE0Mjg1NzFyZW07XG4gIGhlaWdodDogMS43MTQyODU3MXJlbTtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5sb2FkZXIsXG4udWkubG9hZGVyIHtcbiAgd2lkdGg6IDIuMjg1NzE0MjlyZW07XG4gIGhlaWdodDogMi4yODU3MTQyOXJlbTtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5sYXJnZS5sb2FkZXIsXG4udWkubGFyZ2UubG9hZGVyIHtcbiAgd2lkdGg6IDMuNDI4NTcxNDNyZW07XG4gIGhlaWdodDogMy40Mjg1NzE0M3JlbTtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0ZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5iaWcubG9hZGVyLFxuLnVpLmJpZy5sb2FkZXIge1xuICB3aWR0aDogMy43MTQyODU3MXJlbTtcbiAgaGVpZ2h0OiAzLjcxNDI4NTcxcmVtO1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmh1Z2UubG9hZGVyLFxuLnVpLmh1Z2UubG9hZGVyIHtcbiAgd2lkdGg6IDQuMTQyODU3MTRyZW07XG4gIGhlaWdodDogNC4xNDI4NTcxNHJlbTtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5tYXNzaXZlLmxvYWRlcixcbi51aS5tYXNzaXZlLmxvYWRlciB7XG4gIHdpZHRoOiA0LjU3MTQyODU3cmVtO1xuICBoZWlnaHQ6IDQuNTcxNDI4NTdyZW07XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MWVtO1xufVxuLyogVGV4dCBMb2FkZXIgKi9cbi51aS5taW5pLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiAxcmVtO1xuICBwYWRkaW5nLXRvcDogMS43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiAxLjE0Mjg1NzE0cmVtO1xuICBwYWRkaW5nLXRvcDogMS45Mjg1NzE0M3JlbTtcbn1cbi51aS5zbWFsbC50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogMS43MTQyODU3MXJlbTtcbiAgcGFkZGluZy10b3A6IDIuNXJlbTtcbn1cbi51aS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogMi4yODU3MTQyOXJlbTtcbiAgcGFkZGluZy10b3A6IDMuMDcxNDI4NTdyZW07XG59XG4udWkubGFyZ2UudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDMuNDI4NTcxNDNyZW07XG4gIHBhZGRpbmctdG9wOiA0LjIxNDI4NTcxcmVtO1xufVxuLnVpLmJpZy50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogMy43MTQyODU3MXJlbTtcbiAgcGFkZGluZy10b3A6IDQuNXJlbTtcbn1cbi51aS5odWdlLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiA0LjE0Mjg1NzE0cmVtO1xuICBwYWRkaW5nLXRvcDogNC45Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiA0LjU3MTQyODU3cmVtO1xuICBwYWRkaW5nLXRvcDogNS4zNTcxNDI4NnJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQubG9hZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5pbnZlcnRlZC5sb2FkZXI6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLnVpLmludmVydGVkLmxvYWRlcjphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNGRkZGRkY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbmxpbmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbmxpbmUubG9hZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDBlbTtcbiAgbGVmdDogMGVtO1xuICB0b3A6IDBlbTtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLnVpLmlubGluZS5sb2FkZXIuYWN0aXZlLFxuLnVpLmlubGluZS5sb2FkZXIudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qIENlbnRlcmVkIElubGluZSAqL1xuLnVpLmNlbnRlcmVkLmlubGluZS5sb2FkZXIuYWN0aXZlLFxuLnVpLmNlbnRlcmVkLmlubGluZS5sb2FkZXIudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIExvYWRlclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyogS2V5IENvbnRlbnQgU2l6aW5nICovXG4vKiBJbnRlcnZhbCBiZXR3ZWVuIGNvbnNlY3V0aXZlIHBsYWNlaG9sZGVycyAqL1xuLyogUmVwZWF0ZWQgUGxhY2Vob2xkZXIgKi9cbi8qIEltYWdlICovXG4vKiBIZWFkZXIgSW1hZ2UgKi9cbi8qIFBhcmFncmFwaCAqL1xuLyogR2xvdyBHcmFkaWVudCAqL1xuLyogVmFyaWF0aW9ucyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIEtleSBDb250ZW50IFNpemluZyAqL1xuLyogSW50ZXJ2YWwgYmV0d2VlbiBjb25zZWN1dGl2ZSBwbGFjZWhvbGRlcnMgKi9cbi8qIFJlcGVhdGVkIFBsYWNlaG9sZGVyICovXG4vKiBJbWFnZSAqL1xuLyogSGVhZGVyIEltYWdlICovXG4vKiBQYXJhZ3JhcGggKi9cbi8qIEdsb3cgR3JhZGllbnQgKi9cbi8qIFZhcmlhdGlvbnMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBsYWNlaG9sZGVyIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYW5pbWF0aW9uOiBwbGFjZWhvbGRlclNoaW1tZXIgMnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMDgpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMTUpIDE1JSwgcmdiYSgwLCAwLCAwLCAwLjA4KSAzMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEyMDBweCAxMDAlO1xuICBtYXgtd2lkdGg6IDMwcmVtO1xufVxuQGtleWZyYW1lcyBwbGFjZWhvbGRlclNoaW1tZXIge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMDBweCAwO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEyMDBweCAwO1xuICB9XG59XG4udWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIge1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjE1cztcbn1cbi51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4zcztcbn1cbi51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC40NXM7XG59XG4udWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIge1xuICBhbmltYXRpb24tZGVsYXk6IDAuNnM7XG59XG4udWkucGxhY2Vob2xkZXIsXG4udWkucGxhY2Vob2xkZXIgPiA6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZS5oZWFkZXI6YWZ0ZXIsXG4udWkucGxhY2Vob2xkZXIgLmxpbmUsXG4udWkucGxhY2Vob2xkZXIgLmxpbmU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuLyogSW1hZ2UgKi9cbi51aS5wbGFjZWhvbGRlciAuaW1hZ2U6bm90KC5oZWFkZXIpOm5vdCgudWkpIHtcbiAgaGVpZ2h0OiAxMDBweDtcbn1cbi51aS5wbGFjZWhvbGRlciAuc3F1YXJlLmltYWdlOm5vdCguaGVhZGVyKSB7XG4gIGhlaWdodDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiAxLzEgYXNwZWN0IHJhdGlvICovXG4gIHBhZGRpbmctdG9wOiAxMDAlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5yZWN0YW5ndWxhci5pbWFnZTpub3QoLmhlYWRlcikge1xuICBoZWlnaHQ6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogNC8zIGFzcGVjdCByYXRpbyAqL1xuICBwYWRkaW5nLXRvcDogNzUlO1xufVxuLyogTGluZXMgKi9cbi51aS5wbGFjZWhvbGRlciAubGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwLjg1NzE0Mjg2ZW07XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmFmdGVyIHtcbiAgdG9wOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmJlZm9yZSB7XG4gIGxlZnQ6IDBweDtcbn1cbi51aS5wbGFjZWhvbGRlciAubGluZTphZnRlciB7XG4gIHJpZ2h0OiAwcHg7XG59XG4vKiBBbnkgTGluZXMgKi9cbi51aS5wbGFjZWhvbGRlciAubGluZSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmJlZm9yZSxcbi51aS5wbGFjZWhvbGRlciAubGluZTphZnRlciB7XG4gIGhlaWdodDogMC41ZW07XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cbi8qIEhlYWRlciBJbWFnZSArIDIgTGluZXMgKi9cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogTGluZSBPdXRkZW50ICovXG4udWkucGxhY2Vob2xkZXIgLmxpbmU6bnRoLWNoaWxkKDEpOmFmdGVyIHtcbiAgd2lkdGg6IDAlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOm50aC1jaGlsZCgyKTphZnRlciB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6bnRoLWNoaWxkKDMpOmFmdGVyIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aS5wbGFjZWhvbGRlciAubGluZTpudGgtY2hpbGQoNCk6YWZ0ZXIge1xuICB3aWR0aDogMzUlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOm50aC1jaGlsZCg1KTphZnRlciB7XG4gIHdpZHRoOiA2NSU7XG59XG4vKiBIZWFkZXIgTGluZSAxICYgMiovXG4udWkucGxhY2Vob2xkZXIgLmhlYWRlciAubGluZSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNjQyODU3MTRlbTtcbn1cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOmJlZm9yZSxcbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOmFmdGVyIHtcbiAgaGVpZ2h0OiAwLjY0Mjg1NzE0ZW07XG59XG4udWkucGxhY2Vob2xkZXIgLmhlYWRlciAubGluZTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi10b3A6IDAuNjQyODU3MTRlbTtcbn1cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOm50aC1jaGlsZCgyKTphZnRlciB7XG4gIHdpZHRoOiA2MCU7XG59XG4vKiBJbWFnZSBIZWFkZXIgKi9cbi51aS5wbGFjZWhvbGRlciAuaW1hZ2UuaGVhZGVyIC5saW5lIHtcbiAgbWFyZ2luLWxlZnQ6IDNlbTtcbn1cbi51aS5wbGFjZWhvbGRlciAuaW1hZ2UuaGVhZGVyIC5saW5lOmJlZm9yZSB7XG4gIHdpZHRoOiAwLjcxNDI4NTcxcmVtO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZS5oZWFkZXI6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwLjg1NzE0Mjg2ZW07XG4gIGNvbnRlbnQ6ICcnO1xuICBtYXJnaW4tbGVmdDogM2VtO1xufVxuLyogU3BhY2luZyAqL1xuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZSAubGluZTpmaXJzdC1jaGlsZCxcbi51aS5wbGFjZWhvbGRlciAucGFyYWdyYXBoIC5saW5lOmZpcnN0LWNoaWxkLFxuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXIgLmxpbmU6Zmlyc3QtY2hpbGQge1xuICBoZWlnaHQ6IDAuMDFweDtcbn1cbi51aS5wbGFjZWhvbGRlciAuaW1hZ2U6bm90KDpmaXJzdC1jaGlsZCk6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5wYXJhZ3JhcGg6bm90KDpmaXJzdC1jaGlsZCk6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXI6bm90KDpmaXJzdC1jaGlsZCk6YmVmb3JlIHtcbiAgaGVpZ2h0OiAxLjQyODU3MTQzZW07XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIEludmVydGVkIENvbnRlbnQgTG9hZGVyICovXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkgMTUlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIDMwJSk7XG59XG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIsXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIgPiA6YmVmb3JlLFxuLnVpLmludmVydGVkLnBsYWNlaG9sZGVyIC5pbWFnZS5oZWFkZXI6YWZ0ZXIsXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIgLmxpbmUsXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIgLmxpbmU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wbGFjZWhvbGRlciAuZnVsbC5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiAwJTtcbn1cbi51aS5wbGFjZWhvbGRlciAudmVyeS5sb25nLmxpbmUubGluZS5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aS5wbGFjZWhvbGRlciAubG9uZy5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiAzNSU7XG59XG4udWkucGxhY2Vob2xkZXIgLm1lZGl1bS5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkucGxhY2Vob2xkZXIgLnNob3J0LmxpbmUubGluZS5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IDY1JTtcbn1cbi51aS5wbGFjZWhvbGRlciAudmVyeS5zaG9ydC5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiA4MCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5wbGFjZWhvbGRlciB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFJhaWxcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBSYWlsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDbG9zZSAqL1xuLyogRGl2aWRpbmcgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUmFpbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ2xvc2UgKi9cbi8qIERpdmlkaW5nICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSYWlsc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5yYWlsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAlO1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMTAwJTtcbn1cbi51aS5sZWZ0LnJhaWwge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTtcbiAgcGFkZGluZzogMGVtIDJyZW0gMGVtIDBlbTtcbiAgbWFyZ2luOiAwZW0gMnJlbSAwZW0gMGVtO1xufVxuLnVpLnJpZ2h0LnJhaWwge1xuICBsZWZ0OiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gMnJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAycmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW50ZXJuYWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubGVmdC5pbnRlcm5hbC5yYWlsIHtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAycmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDJyZW07XG59XG4udWkucmlnaHQuaW50ZXJuYWwucmFpbCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwJTtcbiAgcGFkZGluZzogMGVtIDJyZW0gMGVtIDBlbTtcbiAgbWFyZ2luOiAwZW0gMnJlbSAwZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIERpdmlkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkaW5nLnJhaWwge1xuICB3aWR0aDogMzAyLjVweDtcbn1cbi51aS5sZWZ0LmRpdmlkaW5nLnJhaWwge1xuICBwYWRkaW5nOiAwZW0gMi41cmVtIDBlbSAwZW07XG4gIG1hcmdpbjogMGVtIDIuNXJlbSAwZW0gMGVtO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnJpZ2h0LmRpdmlkaW5nLnJhaWwge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDIuNXJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAyLjVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGlzdGFuY2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2xvc2UucmFpbCB7XG4gIHdpZHRoOiBjYWxjKCAzMDBweCAgKyAgMWVtICk7XG59XG4udWkuY2xvc2UubGVmdC5yYWlsIHtcbiAgcGFkZGluZzogMGVtIDFlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAxZW0gMGVtIDBlbTtcbn1cbi51aS5jbG9zZS5yaWdodC5yYWlsIHtcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gMWVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi51aS52ZXJ5LmNsb3NlLnJhaWwge1xuICB3aWR0aDogY2FsYyggMzAwcHggICsgIDAuNWVtICk7XG59XG4udWkudmVyeS5jbG9zZS5sZWZ0LnJhaWwge1xuICBwYWRkaW5nOiAwZW0gMC41ZW0gMGVtIDBlbTtcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbn1cbi51aS52ZXJ5LmNsb3NlLnJpZ2h0LnJhaWwge1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAwLjVlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hdHRhY2hlZC5sZWZ0LnJhaWwsXG4udWkuYXR0YWNoZWQucmlnaHQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnJhaWwge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkudGlueS5yYWlsIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLnJhaWwge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkucmFpbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5yYWlsIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5yYWlsIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuLnVpLmh1Z2UucmFpbCB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLnJhaWwge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gUmV2ZWFsXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUmV2ZWFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVHlwZXMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUmV2ZWFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVHlwZXMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUmV2ZWFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnJldmVhbCB7XG4gIGRpc3BsYXk6IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDMgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZSAwLjFzO1xufVxuLnVpLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyICFpbXBvcnRhbnQ7XG59XG4vKiBNYWtlIHN1cmUgaG92ZXJlZCBlbGVtZW50IGlzIG9uIHRvcCBvZiBvdGhlciByZXZlYWwgKi9cbi51aS5hY3RpdmUucmV2ZWFsIC52aXNpYmxlLmNvbnRlbnQsXG4udWkucmV2ZWFsOmhvdmVyIC52aXNpYmxlLmNvbnRlbnQge1xuICB6LWluZGV4OiA0ICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNsaWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNsaWRlLnJldmVhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udWkuc2xpZGUucmV2ZWFsID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDBlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZSAwLjFzO1xufVxuLnVpLnNsaWRlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgbGVmdDogMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuc2xpZGUucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5hY3RpdmUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50LFxuLnVpLnNsaWRlLnJldmVhbDpob3ZlciA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5yaWdodC5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnJpZ2h0LnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5yaWdodC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5zbGlkZS5yaWdodC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUucmlnaHQuYWN0aXZlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCxcbi51aS5zbGlkZS5yaWdodC5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUudXAucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUudXAuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuc2xpZGUudXAucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS51cC5hY3RpdmUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50LFxuLnVpLnNsaWRlLnVwLnJldmVhbDpob3ZlciA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5kb3duLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5kb3duLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnNsaWRlLmRvd24ucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLmRvd24uYWN0aXZlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCxcbi51aS5zbGlkZS5kb3duLnJldmVhbDpob3ZlciA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZhZGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmFkZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5mYWRlLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLmZhZGUucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIG9wYWNpdHk6IDA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNb3ZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1vdmUucmV2ZWFsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi51aS5tb3ZlLnJldmVhbCA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBtYXJnaW46IDBlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMSkgMC4xcztcbn1cbi51aS5tb3ZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbn1cbi51aS5tb3ZlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkubW92ZS5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUucmlnaHQuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkubW92ZS5yaWdodC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkubW92ZS51cC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5tb3ZlLnVwLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkubW92ZS5kb3duLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLm1vdmUuZG93bi5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFJvdGF0ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yb3RhdGUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xufVxuLnVpLnJvdGF0ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJvdGF0ZS5yaWdodC5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xufVxuLnVpLnJvdGF0ZS5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUucmlnaHQuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkucm90YXRlLnJpZ2h0LnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMTBkZWcpO1xufVxuLnVpLnJvdGF0ZS5sZWZ0LnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcbn1cbi51aS5yb3RhdGUubGVmdC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUubGVmdC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTExMGRlZyk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZGlzYWJsZWQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUudmlzaWJsZS5jb250ZW50IHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIHRvcDogMCAhaW1wb3J0YW50O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5kaXNhYmxlZC5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmhpZGRlbi5jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkucmV2ZWFsID4gLnVpLnJpYmJvbi5sYWJlbCB7XG4gIHotaW5kZXg6IDU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBWaXNpYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnZpc2libGUucmV2ZWFsIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEluc3RhbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5zdGFudC5yZXZlYWwgPiAuY29udGVudCB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yZXZlYWwgPiAuY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFNlZ21lbnRcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTZWdtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWdlIEdyaWQgU2VnbWVudCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIFBpbGVkICovXG4vKiBDaXJjdWxhciAqL1xuLyogU3RhY2tlZCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExvYWRpbmcgRGltbWVyICovXG4vKiBMb2FkaW5nIFNwaW5uZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUmFpc2VkICovXG4vKiBQYWRkZWQgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIENvbG9ycyAqL1xuLyogT3JkaW5hbGl0eSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTZWdtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWdlIEdyaWQgU2VnbWVudCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIFBpbGVkICovXG4vKiBDaXJjdWxhciAqL1xuLyogU3RhY2tlZCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExvYWRpbmcgRGltbWVyICovXG4vKiBMb2FkaW5nIFNwaW5uZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUmFpc2VkICovXG4vKiBQYWRkZWQgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIENvbG9ycyAqL1xuLyogT3JkaW5hbGl0eSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU2VnbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zZWdtZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBtYXJnaW46IDFyZW0gMGVtO1xuICBwYWRkaW5nOiAxZW0gMWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXI6IG5vbmU7XG59XG4udWkuc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5zZWdtZW50Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKiBWZXJ0aWNhbCAqL1xuLnVpLnZlcnRpY2FsLnNlZ21lbnQge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG4gIHBhZGRpbmctcmlnaHQ6IDBlbTtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnZlcnRpY2FsLnNlZ21lbnQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBMb29zZSBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSGVhZGVyICovXG4udWkuaW52ZXJ0ZWQuc2VnbWVudCA+IC51aS5oZWFkZXIge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIExhYmVsICovXG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLnNlZ21lbnQgPiBbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMGVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMGVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5zZWdtZW50ID4gW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbTtcbn1cbi51aS5hdHRhY2hlZC5zZWdtZW50Om5vdCgudG9wKTpub3QoLmJvdHRvbSkgPiBbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMGVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMGVtO1xufVxuLnVpLmF0dGFjaGVkLnNlZ21lbnQ6bm90KC50b3ApOm5vdCguYm90dG9tKSA+IFtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0ubGFiZWwge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwZW07XG59XG4vKiBHcmlkICovXG4udWkucGFnZS5ncmlkLnNlZ21lbnQsXG4udWkuZ3JpZCA+IC5yb3cgPiAudWkuc2VnbWVudC5jb2x1bW4sXG4udWkuZ3JpZCA+IC51aS5zZWdtZW50LmNvbHVtbiB7XG4gIHBhZGRpbmctdG9wOiAyZW07XG4gIHBhZGRpbmctYm90dG9tOiAyZW07XG59XG4udWkuZ3JpZC5zZWdtZW50IHtcbiAgbWFyZ2luOiAxcmVtIDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi8qIFRhYmxlICovXG4udWkuYmFzaWMudGFibGUuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlLnNlZ21lbnQge1xuICBwYWRkaW5nOiAxZW0gMWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBQbGFjZWhvbGRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIG1heC13aWR0aDogaW5pdGlhbDtcbiAgYW5pbWF0aW9uOiBub25lO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcGFkZGluZzogMWVtIDFlbTtcbiAgbWluLWhlaWdodDogMThyZW07XG4gIGJhY2tncm91bmQ6ICNGOUZBRkI7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAyNXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjA1KSBpbnNldDtcbn1cbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IC5idXR0b24sXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCB0ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmZpZWxkLFxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgdGV4dGFyZWEsXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCA+IC51aS5pbnB1dCxcbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IC5idXR0b24ge1xuICBtYXgtd2lkdGg6IDE1cmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmNvbHVtbiAuYnV0dG9uLFxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmNvbHVtbiAuZmllbGQsXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCAuY29sdW1uIHRleHRhcmVhLFxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmNvbHVtbiA+IC51aS5pbnB1dCB7XG4gIG1heC13aWR0aDogMTVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCA+IC5pbmxpbmUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCA+IC5pbmxpbmUgPiAuYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAwcHggMC4zNTcxNDI4NnJlbSAwcHggMHB4O1xufVxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgPiAuaW5saW5lID4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGlsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5waWxlZC5zZWdtZW50cyxcbi51aS5waWxlZC5zZWdtZW50IHtcbiAgbWFyZ2luOiAzZW0gMGVtO1xuICBib3gtc2hhZG93OiAnJztcbiAgei1pbmRleDogYXV0bztcbn1cbi51aS5waWxlZC5zZWdtZW50OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnBpbGVkLnNlZ21lbnQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50czphZnRlcixcbi51aS5waWxlZC5zZWdtZW50czpiZWZvcmUsXG4udWkucGlsZWQuc2VnbWVudDphZnRlcixcbi51aS5waWxlZC5zZWdtZW50OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogJyc7XG59XG4udWkucGlsZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnBpbGVkLnNlZ21lbnQ6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTEuMmRlZyk7XG4gIHRvcDogMDtcbiAgei1pbmRleDogLTI7XG59XG4udWkucGlsZWQuc2VnbWVudHM6YWZ0ZXIsXG4udWkucGlsZWQuc2VnbWVudDphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDEuMmRlZyk7XG4gIHRvcDogMDtcbiAgei1pbmRleDogLTE7XG59XG4vKiBQaWxlZCBBdHRhY2hlZCAqL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5waWxlZC5zZWdtZW50IHtcbiAgbWFyZ2luLXRvcDogM2VtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkucGlsZWQuc2VnbWVudFtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkucGlsZWQuc2VnbWVudFtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0ge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDNlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50W2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhY2tlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0YWNrZWQuc2VnbWVudCB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjRlbTtcbn1cbi51aS5zdGFja2VkLnNlZ21lbnRzOmJlZm9yZSxcbi51aS5zdGFja2VkLnNlZ21lbnRzOmFmdGVyLFxuLnVpLnN0YWNrZWQuc2VnbWVudDpiZWZvcmUsXG4udWkuc3RhY2tlZC5zZWdtZW50OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtM3B4O1xuICBsZWZ0OiAwJTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDZweDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi51aS5zdGFja2VkLnNlZ21lbnRzOmJlZm9yZSxcbi51aS5zdGFja2VkLnNlZ21lbnQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEFkZCBhZGRpdGlvbmFsIHBhZ2UgKi9cbi51aS50YWxsLnN0YWNrZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnRhbGwuc3RhY2tlZC5zZWdtZW50OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3R0b206IDBweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuc3RhY2tlZC5pbnZlcnRlZC5zZWdtZW50czpiZWZvcmUsXG4udWkuc3RhY2tlZC5pbnZlcnRlZC5zZWdtZW50czphZnRlcixcbi51aS5zdGFja2VkLmludmVydGVkLnNlZ21lbnQ6YmVmb3JlLFxuLnVpLnN0YWNrZWQuaW52ZXJ0ZWQuc2VnbWVudDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUGFkZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucGFkZGVkLnNlZ21lbnQge1xuICBwYWRkaW5nOiAxLjVlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHBhZGRlZFwiXS5zZWdtZW50IHtcbiAgcGFkZGluZzogM2VtO1xufVxuLyogUGFkZGVkIHZlcnRpY2FsICovXG4udWkucGFkZGVkLnNlZ21lbnQudmVydGljYWwuc2VnbWVudCxcbi51aVtjbGFzcyo9XCJ2ZXJ5IHBhZGRlZFwiXS52ZXJ0aWNhbC5zZWdtZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21wYWN0LnNlZ21lbnQge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cbi8qIENvbXBhY3QgR3JvdXAgKi9cbi51aS5jb21wYWN0LnNlZ21lbnRzIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4udWkuY29tcGFjdC5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5zZWdtZW50cyAuY29tcGFjdC5zZWdtZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMSBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaXJjdWxhci5zZWdtZW50IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmFpc2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucmFpc2VkLnNlZ21lbnRzLFxuLnVpLnJhaXNlZC5zZWdtZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBHcm91cCAqL1xuLnVpLnNlZ21lbnRzIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDFyZW0gMGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4udWkuc2VnbWVudHM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuc2VnbWVudHM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIE5lc3RlZCBTZWdtZW50ICovXG4udWkuc2VnbWVudHMgPiAuc2VnbWVudCB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBtYXJnaW46IDBlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5zZWdtZW50czpub3QoLmhvcml6b250YWwpID4gLnNlZ21lbnQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi8qIEJvdHRvbSAqL1xuLnVpLnNlZ21lbnRzOm5vdCguaG9yaXpvbnRhbCkgPiAuc2VnbWVudDpsYXN0LWNoaWxkIHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4vKiBPbmx5ICovXG4udWkuc2VnbWVudHM6bm90KC5ob3Jpem9udGFsKSA+IC5zZWdtZW50Om9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLyogTmVzdGVkIEdyb3VwICovXG4udWkuc2VnbWVudHMgPiAudWkuc2VnbWVudHMge1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW46IDFyZW0gMXJlbTtcbn1cbi51aS5zZWdtZW50cyA+IC5zZWdtZW50czpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuc2VnbWVudHMgPiAuc2VnbWVudCArIC5zZWdtZW50czpub3QoLmhvcml6b250YWwpIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyogSG9yaXpvbnRhbCBHcm91cCAqL1xuLnVpLmhvcml6b250YWwuc2VnbWVudHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBwYWRkaW5nOiAwZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMXJlbSAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJvcmRlcjogbm9uZTtcbn1cbi8qIE5lc3RlZCBIb3Jpem9udGFsIEdyb3VwICovXG4udWkuc2VnbWVudHMgPiAuaG9yaXpvbnRhbC5zZWdtZW50cyB7XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBIb3Jpem9udGFsIFNlZ21lbnQgKi9cbi51aS5ob3Jpem9udGFsLnNlZ21lbnRzID4gLnNlZ21lbnQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgLW1zLWZsZXg6IDEgMSAwcHg7XG4gIC8qIFNvbHZlcyAjMjU1MCBNUyBGbGV4ICovXG4gIG1hcmdpbjogMGVtO1xuICBtaW4td2lkdGg6IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBCb3JkZXIgRml4ZXMgKi9cbi51aS5zZWdtZW50cyA+IC5ob3Jpem9udGFsLnNlZ21lbnRzOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5ob3Jpem9udGFsLnNlZ21lbnRzID4gLnNlZ21lbnQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGlzYWJsZWQuc2VnbWVudCB7XG4gIG9wYWNpdHk6IDAuNDU7XG4gIGNvbG9yOiByZ2JhKDQwLCA0MCwgNDAsIDAuMyk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLnNlZ21lbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xufVxuLnVpLmxvYWRpbmcuc2VnbWVudDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICB6LWluZGV4OiAxMDA7XG59XG4udWkubG9hZGluZy5zZWdtZW50OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMS41ZW0gMGVtIDBlbSAtMS41ZW07XG4gIHdpZHRoOiAzZW07XG4gIGhlaWdodDogM2VtO1xuICBhbmltYXRpb246IHNlZ21lbnQtc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHJnYmEoMCwgMCwgMCwgMC4xKSByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHotaW5kZXg6IDEwMTtcbn1cbkBrZXlmcmFtZXMgc2VnbWVudC1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJhc2ljLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENsZWFyaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2xlYXJpbmcuc2VnbWVudDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiLlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWQgKi9cbi51aS5yZWQuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjREIyODI4ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBPcmFuZ2UgKi9cbi51aS5vcmFuZ2Uuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjRjI3MTFDICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjRkJCRDA4ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBPbGl2ZSAqL1xuLnVpLm9saXZlLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI0I1Q0MxOCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9saXZlLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBHcmVlbiAqL1xuLnVpLmdyZWVuLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzIxQkE0NSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZWVuLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBUZWFsICovXG4udWkudGVhbC5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMwMEI1QUQgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBCbHVlICovXG4udWkuYmx1ZS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMyQzZBOUUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBWaW9sZXQgKi9cbi51aS52aW9sZXQuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjNjQzNUM5ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjQTMzM0M4ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBQaW5rICovXG4udWkucGluay5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNFMDM5OTcgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5waW5rLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBCcm93biAqL1xuLnVpLmJyb3duLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI0E1NjczRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJyb3duLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBHcmV5ICovXG4udWkuZ3JleS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICM3Njc2NzYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBCbGFjayAqL1xuLnVpLmJsYWNrLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzFCMUMxRCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsYWNrLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLnNlZ21lbnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uc2VnbWVudCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnVpW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLnNlZ21lbnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmxvYXRlZC5zZWdtZW50LFxuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5zZWdtZW50IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uc2VnbWVudCB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5zZWdtZW50IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmludmVydGVkLnNlZ21lbnQsXG4udWkucHJpbWFyeS5pbnZlcnRlZC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi8qIE5lc3RlZCAqL1xuLnVpLmludmVydGVkLnNlZ21lbnQgLnNlZ21lbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5pbnZlcnRlZC5zZWdtZW50IC5pbnZlcnRlZC5zZWdtZW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi8qIEF0dGFjaGVkICovXG4udWkuaW52ZXJ0ZWQuYXR0YWNoZWQuc2VnbWVudCB7XG4gIGJvcmRlci1jb2xvcjogIzU1NTU1NTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBFbXBoYXNpc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2Vjb25kYXJ5ICovXG4udWkuc2Vjb25kYXJ5LnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogIzRjNGY1MiBsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgMTAwJSk7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG59XG4vKiBUZXJ0aWFyeSAqL1xuLnVpLnRlcnRpYXJ5LnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiAjRENERERFO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLnRlcnRpYXJ5LmludmVydGVkLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiAjNzE3NTc5IGxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpIDEwMCUpO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWlkZGxlICovXG4udWkuYXR0YWNoZWQuc2VnbWVudCB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBtYXJnaW46IDBlbSAtMXB4O1xuICB3aWR0aDogY2FsYygxMDIlKTtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMiUpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLmF0dGFjaGVkOm5vdCgubWVzc2FnZSkgKyAudWkuYXR0YWNoZWQuc2VnbWVudDpub3QoLnRvcCkge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLyogVG9wICovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnNlZ21lbnQge1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB0b3A6IDBweDtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWkuc2VnbWVudFtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBCb3R0b20gKi9cbi51aS5zZWdtZW50W2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aS5zZWdtZW50W2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLm1pbmkuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLnRpbnkuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS5zbWFsbC5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5zbWFsbC5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLnNlZ21lbnQge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2Uuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkubGFyZ2Uuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5iaWcuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkuYmlnLnNlZ21lbnQge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5odWdlLnNlZ21lbnQge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5tYXNzaXZlLnNlZ21lbnQge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU3RlcFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RlcFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIExvYWQgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RlcFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIFRpdGxlICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogQXJyb3cgKi9cbi8qIE1vYmlsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZlcnRpY2FsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29tcGxldGVkICovXG4vKiBIb3ZlciAqL1xuLyogRG93biAqL1xuLyogQWN0aXZlICovXG4vKiBBY3RpdmUgKyBIb3ZlciAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0ZXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBUaXRsZSAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIEFycm93ICovXG4vKiBNb2JpbGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBWZXJ0aWNhbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbXBsZXRlZCAqL1xuLyogSG92ZXIgKi9cbi8qIERvd24gKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlICsgSG92ZXIgKi9cbi8qIERpc2FibGVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFBsdXJhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zdGVwcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBiYWNrZ3JvdW5kOiAnJztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDEuMTQyODU3MTRlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIEZpcnN0IFN0ZXBzICovXG4udWkuc3RlcHM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBMYXN0IFN0ZXBzICovXG4udWkuc3RlcHM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFNpbmd1bGFyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnN0ZXBzIC5zdGVwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDAgYXV0bztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwZW0gMGVtO1xuICBwYWRkaW5nOiAxLjE0Mjg1NzE0ZW0gMmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZTtcbn1cbi8qIEFycm93ICovXG4udWkuc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDAlO1xuICBib3JkZXI6IG1lZGl1bSBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICB3aWR0aDogMS4xNDI4NTcxNGVtO1xuICBoZWlnaHQ6IDEuMTQyODU3MTRlbTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItd2lkdGg6IDBweCAxcHggMXB4IDBweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2UsIG9wYWNpdHkgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCg1MCUpIHJvdGF0ZSgtNDVkZWcpO1xufVxuLyogRmlyc3QgU3RlcCAqL1xuLnVpLnN0ZXBzIC5zdGVwOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy1sZWZ0OiAyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMGVtIDBlbSAwLjIxNDI4NTcxcmVtO1xufVxuLyogTGFzdCBTdGVwICovXG4udWkuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xufVxuLnVpLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLyogT25seSBTdGVwICovXG4udWkuc3RlcHMgLnN0ZXA6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRpdGxlICovXG4udWkuc3RlcHMgLnN0ZXAgLnRpdGxlIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLnN0ZXBzIC5zdGVwID4gLnRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBEZXNjcmlwdGlvbiAqL1xuLnVpLnN0ZXBzIC5zdGVwIC5kZXNjcmlwdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC5kZXNjcmlwdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnN0ZXBzIC5zdGVwIC50aXRsZSB+IC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDAuMjVlbTtcbn1cbi8qIEljb24gKi9cbi51aS5zdGVwcyAuc3RlcCA+IC5pY29uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMi41ZW07XG4gIG1hcmdpbjogMGVtIDFyZW0gMGVtIDBlbTtcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC5pY29uLFxuLnVpLnN0ZXBzIC5zdGVwID4gLmljb24gfiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDEgYXV0bztcbiAgYWxpZ24tc2VsZjogbWlkZGxlO1xufVxuLnVpLnN0ZXBzIC5zdGVwID4gLmljb24gfiAuY29udGVudCB7XG4gIGZsZXgtZ3JvdzogMSAwIGF1dG87XG59XG4vKiBIb3Jpem9udGFsIEljb24gKi9cbi51aS5zdGVwczpub3QoLnZlcnRpY2FsKSAuc3RlcCA+IC5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG59XG4vKiBMaW5rICovXG4udWkuc3RlcHMgLmxpbmsuc3RlcCxcbi51aS5zdGVwcyBhLnN0ZXAge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIE9yZGVyZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkub3JkZXJlZC5zdGVwcyB7XG4gIGNvdW50ZXItcmVzZXQ6IG9yZGVyZWQ7XG59XG4udWkub3JkZXJlZC5zdGVwcyAuc3RlcDpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb250ZW50OiBjb3VudGVycyhvcmRlcmVkLCBcIi5cIik7XG4gIGFsaWduLXNlbGY6IG1pZGRsZTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBmb250LXNpemU6IDIuNWVtO1xuICBjb3VudGVyLWluY3JlbWVudDogb3JkZXJlZDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLm9yZGVyZWQuc3RlcHMgLnN0ZXAgPiAqIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGFsaWduLXNlbGY6IG1pZGRsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBWZXJ0aWNhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52ZXJ0aWNhbC5zdGVwcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBwYWRkaW5nOiAxLjE0Mjg1NzE0ZW0gMmVtO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZzogMS4xNDI4NTcxNGVtIDJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLyogQXJyb3cgKi9cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDAlO1xuICBib3JkZXItd2lkdGg6IDBweCAxcHggMXB4IDBweDtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkudmVydGljYWwuc3RlcHMgLmFjdGl2ZS5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkudmVydGljYWwuc3RlcHMgLmFjdGl2ZS5zdGVwOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tXG4gICAgUmVzcG9uc2l2ZVxuLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNb2JpbGUgKERlZmF1bHQpICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGVwczpub3QoLnVuc3RhY2thYmxlKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXAge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3JkZXItcmFkaXVzOiAwZW07XG4gICAgcGFkZGluZzogMS4xNDI4NTcxNGVtIDJlbTtcbiAgfVxuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmc6IDEuMTQyODU3MTRlbSAyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG4gIH1cbiAgLnVpLnN0ZXBzOm5vdCgudW5zdGFja2FibGUpIC5zdGVwOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xuICB9XG4gIC8qIEFycm93ICovXG4gIC51aS5zdGVwczpub3QoLnVuc3RhY2thYmxlKSAuc3RlcDphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC8qIENvbnRlbnQgKi9cbiAgLnVpLnN0ZXBzOm5vdCgudW5zdGFja2FibGUpIC5zdGVwIC5jb250ZW50IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLyogSWNvbiAqL1xuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXAgPiAuaWNvbixcbiAgLnVpLm9yZGVyZWQuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXA6YmVmb3JlIHtcbiAgICBtYXJnaW46IDBlbSAwZW0gMXJlbSAwZW07XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTGluayBIb3ZlciAqL1xuLnVpLnN0ZXBzIC5saW5rLnN0ZXA6aG92ZXI6OmFmdGVyLFxuLnVpLnN0ZXBzIC5saW5rLnN0ZXA6aG92ZXIsXG4udWkuc3RlcHMgYS5zdGVwOmhvdmVyOjphZnRlcixcbi51aS5zdGVwcyBhLnN0ZXA6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogTGluayBEb3duICovXG4udWkuc3RlcHMgLmxpbmsuc3RlcDphY3RpdmU6OmFmdGVyLFxuLnVpLnN0ZXBzIC5saW5rLnN0ZXA6YWN0aXZlLFxuLnVpLnN0ZXBzIGEuc3RlcDphY3RpdmU6OmFmdGVyLFxuLnVpLnN0ZXBzIGEuc3RlcDphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xufVxuLyogQWN0aXZlICovXG4udWkuc3RlcHMgLnN0ZXAuYWN0aXZlIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xufVxuLnVpLnN0ZXBzIC5zdGVwLmFjdGl2ZTphZnRlciB7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG59XG4udWkuc3RlcHMgLnN0ZXAuYWN0aXZlIC50aXRsZSB7XG4gIGNvbG9yOiAjMkM2QTlFO1xufVxuLnVpLm9yZGVyZWQuc3RlcHMgLnN0ZXAuYWN0aXZlOmJlZm9yZSxcbi51aS5zdGVwcyAuYWN0aXZlLnN0ZXAgLmljb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi8qIEFjdGl2ZSBBcnJvdyAqL1xuLnVpLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuc3RlcHMgLmFjdGl2ZS5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkuc3RlcHMgLmFjdGl2ZS5zdGVwOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQWN0aXZlIEhvdmVyICovXG4udWkuc3RlcHMgLmxpbmsuYWN0aXZlLnN0ZXA6aG92ZXI6OmFmdGVyLFxuLnVpLnN0ZXBzIC5saW5rLmFjdGl2ZS5zdGVwOmhvdmVyLFxuLnVpLnN0ZXBzIGEuYWN0aXZlLnN0ZXA6aG92ZXI6OmFmdGVyLFxuLnVpLnN0ZXBzIGEuYWN0aXZlLnN0ZXA6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6ICNEQ0REREU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogQ29tcGxldGVkICovXG4udWkuc3RlcHMgLnN0ZXAuY29tcGxldGVkID4gLmljb246YmVmb3JlLFxuLnVpLm9yZGVyZWQuc3RlcHMgLnN0ZXAuY29tcGxldGVkOmJlZm9yZSB7XG4gIGNvbG9yOiAjMjFCQTQ1O1xufVxuLyogRGlzYWJsZWQgKi9cbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcCB7XG4gIGN1cnNvcjogYXV0bztcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXAsXG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXAgLnRpdGxlLFxuLnVpLnN0ZXBzIC5kaXNhYmxlZC5zdGVwIC5kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDQwLCA0MCwgNDAsIDAuMyk7XG59XG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXA6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxldCBPciBCZWxvdyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAvKiBTdGVwcyAqL1xuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3JkZXItcmFkaXVzOiAwZW07XG4gICAgcGFkZGluZzogMS4xNDI4NTcxNGVtIDJlbTtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZzogMS4xNDI4NTcxNGVtIDJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbiAgfVxuICAvKiBBcnJvdyAqL1xuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcDphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC8qIENvbnRlbnQgKi9cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXAgLmNvbnRlbnQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAvKiBJY29uICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwID4gLmljb24sXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLm9yZGVyZWQuc3RlcHMgLnN0ZXA6YmVmb3JlIHtcbiAgICBtYXJnaW46IDBlbSAwZW0gMXJlbSAwZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmx1aWQgKi9cbi51aS5mbHVpZC5zdGVwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9wICovXG4udWkuYXR0YWNoZWQuc3RlcHMge1xuICB3aWR0aDogY2FsYygxMDIlKSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAtMXB4IDA7XG4gIG1heC13aWR0aDogY2FsYygxMDIlKTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWkuYXR0YWNoZWQuc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpLmF0dGFjaGVkLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLyogQm90dG9tICovXG4udWkuYm90dG9tLmF0dGFjaGVkLnN0ZXBzIHtcbiAgbWFyZ2luOiAwIC0xcHggMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQuc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEV2ZW5seSBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkub25lLnN0ZXBzLFxuLnVpLnR3by5zdGVwcyxcbi51aS50aHJlZS5zdGVwcyxcbi51aS5mb3VyLnN0ZXBzLFxuLnVpLmZpdmUuc3RlcHMsXG4udWkuc2l4LnN0ZXBzLFxuLnVpLnNldmVuLnN0ZXBzLFxuLnVpLmVpZ2h0LnN0ZXBzIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkub25lLnN0ZXBzID4gLnN0ZXAsXG4udWkudHdvLnN0ZXBzID4gLnN0ZXAsXG4udWkudGhyZWUuc3RlcHMgPiAuc3RlcCxcbi51aS5mb3VyLnN0ZXBzID4gLnN0ZXAsXG4udWkuZml2ZS5zdGVwcyA+IC5zdGVwLFxuLnVpLnNpeC5zdGVwcyA+IC5zdGVwLFxuLnVpLnNldmVuLnN0ZXBzID4gLnN0ZXAsXG4udWkuZWlnaHQuc3RlcHMgPiAuc3RlcCB7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xufVxuLnVpLm9uZS5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudHdvLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLnRocmVlLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMzMuMzMzJTtcbn1cbi51aS5mb3VyLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLmZpdmUuc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWkuc2l4LnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMTYuNjY2JTtcbn1cbi51aS5zZXZlbi5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDE0LjI4NSU7XG59XG4udWkuZWlnaHQuc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAxMi41MDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnN0ZXBzIC5zdGVwLFxuLnVpLm1pbmkuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LnN0ZXBzIC5zdGVwLFxuLnVpLnRpbnkuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS5zbWFsbC5zdGVwcyAuc3RlcCxcbi51aS5zbWFsbC5zdGVwIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLnN0ZXBzIC5zdGVwLFxuLnVpLnN0ZXAge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2Uuc3RlcHMgLnN0ZXAsXG4udWkubGFyZ2Uuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5iaWcuc3RlcHMgLnN0ZXAsXG4udWkuYmlnLnN0ZXAge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5zdGVwcyAuc3RlcCxcbi51aS5odWdlLnN0ZXAge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS5zdGVwcyAuc3RlcCxcbi51aS5tYXNzaXZlLnN0ZXAge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnU3RlcCc7XG4gIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24veC1mb250LXR0ZjtjaGFyc2V0PXV0Zi04OztiYXNlNjQsQUFFQUFBQU9BSUFBQXdCZ1QxTXZNajNoU1FFQUFBRHNBQUFBVm1OdFlYRFFFaG0zQUFBQlJBQUFBVXBqZG5RZ0Jrbi9sQUFBQnV3QUFBQWNabkJuYllvS2VEc0FBQWNJQUFBSmtXZGhjM0FBQUFBUUFBQUc1QUFBQUFobmJIbG0zMmNFZGdBQUFwQUFBQUMyYUdWaFpBRXJQSHNBQUFOSUFBQUFObWhvWldFSFV3Tk5BQUFEZ0FBQUFDUm9iWFI0Q3lrQUFBQUFBNlFBQUFBTWJHOWpZUUE0QUZzQUFBT3dBQUFBQ0cxaGVIQUFwZ204QUFBRHVBQUFBQ0J1WVcxbHpKMGFIQUFBQTlnQUFBTE5jRzl6ZEs2OVFKZ0FBQWFvQUFBQU8zQnlaWENTb1pyL0FBQVFuQUFBQUZZQUFRTzRBWkFBQlFBSUFub0N2QUFBQUl3Q2VnSzhBQUFCNEFBeEFRSUFBQUlBQlFNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVR1pGWkFCQTZBRG9BUU5TLzJvQVdnTUxBRThBQUFBQkFBQUFBQUFBQUFBQUF3QUFBQU1BQUFBY0FBRUFBQUFBQUVRQUF3QUJBQUFBSEFBRUFDZ0FBQUFHQUFRQUFRQUNBQURvQWYvL0FBQUFBT2dBLy84QUFCZ0JBQUVBQUFBQUFBQUFBQUVHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQURwQUtZQUJVQUhFQVpEd0VBQVFGQ0FBSUJBbW9BQVFBQmFnQUFBR0VVRnhRREVpc0JGQWNCQmlJbkFTWTBQd0UyTWg4QkFUWXlId0VXQTZRUC9pQVFMQkQrNmc4UFRCQXNFS1FCYmhBc0VFd1BBaFlXRVA0Z0R3OEJGaEFzRUV3UUVLVUJieEFRVEJBQUFBSC8vZit4QTE4REN3QU1BQkpBRHdBQkFRcERBQUFBQ3dCRUZSTUNFU3NCRkE0QklpNENQZ0V5SGdFRFdYTEc2TWh1Qm5xODlMcCtBVjUxeEhSMHhPckVkSFRFQUFBQUFBRUFBQUFCQUFERGVScGRYdzg4OVFBTEErZ0FBQUFBenpXWWpRQUFBQURQTldCTi8vMy9zUU9rQXdzQUFBQUlBQUlBQUFBQUFBQUFBUUFBQTFML2FnQmFBK2dBQVAvM0E2UUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBTUQ2QUFBQStnQUFBTlpBQUFBQUFBQUFEZ0FXd0FCQUFBQUF3QVdBQUVBQUFBQUFBSUFCZ0FUQUc0QUFBQXRDWkVBQUFBQUFBQUFFZ0RlQUFFQUFBQUFBQUFBTlFBQUFBRUFBQUFBQUFFQUNBQTFBQUVBQUFBQUFBSUFCd0E5QUFFQUFBQUFBQU1BQ0FCRUFBRUFBQUFBQUFRQUNBQk1BQUVBQUFBQUFBVUFDd0JVQUFFQUFBQUFBQVlBQ0FCZkFBRUFBQUFBQUFvQUt3Qm5BQUVBQUFBQUFBc0FFd0NTQUFNQUFRUUpBQUFBYWdDbEFBTUFBUVFKQUFFQUVBRVBBQU1BQVFRSkFBSUFEZ0VmQUFNQUFRUUpBQU1BRUFFdEFBTUFBUVFKQUFRQUVBRTlBQU1BQVFRSkFBVUFGZ0ZOQUFNQUFRUUpBQVlBRUFGakFBTUFBUVFKQUFvQVZnRnpBQU1BQVFRSkFBc0FKZ0hKUTI5d2VYSnBaMmgwSUNoREtTQXlNREUwSUdKNUlHOXlhV2RwYm1Gc0lHRjFkR2h2Y25NZ1FDQm1iMjUwWld4c2J5NWpiMjFtYjI1MFpXeHNiMUpsWjNWc1lYSm1iMjUwWld4c2IyWnZiblJsYkd4dlZtVnljMmx2YmlBeExqQm1iMjUwWld4c2IwZGxibVZ5WVhSbFpDQmllU0J6ZG1jeWRIUm1JR1p5YjIwZ1JtOXVkR1ZzYkc4Z2NISnZhbVZqZEM1b2RIUndPaTh2Wm05dWRHVnNiRzh1WTI5dEFFTUFid0J3QUhrQWNnQnBBR2NBYUFCMEFDQUFLQUJEQUNrQUlBQXlBREFBTVFBMEFDQUFZZ0I1QUNBQWJ3QnlBR2tBWndCcEFHNEFZUUJzQUNBQVlRQjFBSFFBYUFCdkFISUFjd0FnQUVBQUlBQm1BRzhBYmdCMEFHVUFiQUJzQUc4QUxnQmpBRzhBYlFCbUFHOEFiZ0IwQUdVQWJBQnNBRzhBVWdCbEFHY0FkUUJzQUdFQWNnQm1BRzhBYmdCMEFHVUFiQUJzQUc4QVpnQnZBRzRBZEFCbEFHd0FiQUJ2QUZZQVpRQnlBSE1BYVFCdkFHNEFJQUF4QUM0QU1BQm1BRzhBYmdCMEFHVUFiQUJzQUc4QVJ3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCekFIWUFad0F5QUhRQWRBQm1BQ0FBWmdCeUFHOEFiUUFnQUVZQWJ3QnVBSFFBWlFCc0FHd0Fid0FnQUhBQWNnQnZBR29BWlFCakFIUUFMZ0JvQUhRQWRBQndBRG9BTHdBdkFHWUFid0J1QUhRQVpRQnNBR3dBYndBdUFHTUFid0J0QUFBQUFBSUFBQUFBQUFBQUNnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQUFRSUJBd2xqYUdWamEyMWhjbXNHWTJseVkyeGxBQUFBQUFFQUFmLy9BQThBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRElBTWdNTC83RURDLyt4c0FBc3NDQmdaaTJ3QVN3Z1pDQ3d3RkN3QkNaYXNBUkZXMWdoSXlFYmlsZ2dzRkJRV0NHd1FGa2JJTEE0VUZnaHNEaFpXU0N3Q2tWaFpMQW9VRmdoc0FwRklMQXdVRmdoc0RCWkd5Q3d3RkJZSUdZZ2lvcGhJTEFLVUZoZ0d5Q3dJRkJZSWJBS1lCc2dzRFpRV0NHd05tQWJZRmxaV1J1d0FDdFpXU093QUZCWVpWbFpMYkFDTENCRklMQUVKV0ZrSUxBRlExQllzQVVqUXJBR0kwSWJJU0Zac0FGZ0xiQURMQ01oSXlFZ1pMRUZZa0lnc0FZalFySUtBQUlxSVNDd0JrTWdpaUNLc0FBcnNUQUZKWXBSV0dCUUcyRlNXVmdqV1NFZ3NFQlRXTEFBS3hzaHNFQlpJN0FBVUZobFdTMndCQ3l3QjBNcnNnQUNBRU5nUWkyd0JTeXdCeU5DSXlDd0FDTkNZYkNBWXJBQllMQUVLaTJ3Qml3Z0lFVWdzQUpGWTdBQlJXSmdSTEFCWUMyd0J5d2dJRVVnc0FBckk3RUNCQ1ZnSUVXS0kyRWdaQ0N3SUZCWUliQUFHN0F3VUZpd0lCdXdRRmxaSTdBQVVGaGxXYkFESlNOaFJFU3dBV0F0c0Fnc3NRVUZSYkFCWVVRdHNBa3NzQUZnSUNDd0NVTktzQUJRV0NDd0NTTkNXYkFLUTBxd0FGSllJTEFLSTBKWkxiQUtMQ0M0QkFCaUlMZ0VBR09LSTJHd0MwTmdJSXBnSUxBTEkwSWpMYkFMTEV0VVdMRUhBVVJaSkxBTlpTTjRMYkFNTEV0UldFdFRXTEVIQVVSWkd5RlpKTEFUWlNONExiQU5MTEVBREVOVldMRU1ERU93QVdGQ3NBb3JXYkFBUTdBQ0pVS3hDUUlsUXJFS0FpVkNzQUVXSXlDd0F5VlFXTEVCQUVOZ3NBUWxRb3FLSUlvalliQUpLaUVqc0FGaElJb2pZYkFKS2lFYnNRRUFRMkN3QWlWQ3NBSWxZYkFKS2lGWnNBbERSN0FLUTBkZ3NJQmlJTEFDUldPd0FVVmlZTEVBQUJNalJMQUJRN0FBUHJJQkFRRkRZRUl0c0E0c3NRQUZSVlJZQUxBTUkwSWdZTEFCWWJVTkRRRUFDd0JDUW9wZ3NRMEZLN0J0S3hzaVdTMndEeXl4QUE0ckxiQVFMTEVCRGlzdHNCRXNzUUlPS3kyd0VpeXhBdzRyTGJBVExMRUVEaXN0c0JRc3NRVU9LeTJ3RlN5eEJnNHJMYkFXTExFSERpc3RzQmNzc1FnT0t5MndHQ3l4Q1E0ckxiQVpMTEFJSzdFQUJVVlVXQUN3RENOQ0lHQ3dBV0cxRFEwQkFBc0FRa0tLWUxFTkJTdXdiU3NiSWxrdHNCb3NzUUFaS3kyd0d5eXhBUmtyTGJBY0xMRUNHU3N0c0Iwc3NRTVpLeTJ3SGl5eEJCa3JMYkFmTExFRkdTc3RzQ0Fzc1FZWkt5MndJU3l4QnhrckxiQWlMTEVJR1NzdHNDTXNzUWtaS3kyd0pDd2dQTEFCWUMyd0pTd2dZTEFOWUNCREk3QUJZRU93QWlWaHNBRmdzQ1FxSVMyd0ppeXdKU3V3SlNvdHNDY3NJQ0JISUNDd0FrVmpzQUZGWW1BallUZ2pJSXBWV0NCSElDQ3dBa1Zqc0FGRlltQWpZVGdiSVZrdHNDZ3NzUUFGUlZSWUFMQUJGckFuS3JBQkZUQWJJbGt0c0Nrc3NBZ3JzUUFGUlZSWUFMQUJGckFuS3JBQkZUQWJJbGt0c0Nvc0lEV3dBV0F0c0Nzc0FMQURSV093QVVWaXNBQXJzQUpGWTdBQlJXS3dBQ3V3QUJhMEFBQUFBQUJFUGlNNHNTb0JGU290c0N3c0lEd2dSeUN3QWtWanNBRkZZbUN3QUVOaE9DMndMU3d1Rnp3dHNDNHNJRHdnUnlDd0FrVmpzQUZGWW1Dd0FFTmhzQUZEWXpndHNDOHNzUUlBRmlVZ0xpQkhzQUFqUXJBQ0pVbUtpa2NqUnlOaElGaGlHeUZac0FFalFySXVBUUVWRkNvdHNEQXNzQUFXc0FRbHNBUWxSeU5ISTJHd0JrVXJaWW91SXlBZ1BJbzRMYkF4TExBQUZyQUVKYkFFSlNBdVJ5TkhJMkVnc0FRalFyQUdSU3Nnc0dCUVdDQ3dRRkZZc3dJZ0F5QWJzd0ltQXhwWlFrSWpJTEFJUXlDS0kwY2pSeU5oSTBaZ3NBUkRzSUJpWUNDd0FDc2dpb3BoSUxBQ1EyQmtJN0FEUTJGa1VGaXdBa05oRzdBRFEyQlpzQU1sc0lCaVlTTWdJTEFFSmlOR1lUZ2JJN0FJUTBhd0FpV3dDRU5ISTBjallXQWdzQVJEc0lCaVlDTWdzQUFySTdBRVEyQ3dBQ3V3QlNWaHNBVWxzSUJpc0FRbVlTQ3dCQ1ZnWkNPd0F5VmdaRkJZSVJzaklWa2pJQ0N3QkNZalJtRTRXUzJ3TWl5d0FCWWdJQ0N3QlNZZ0xrY2pSeU5oSXp3NExiQXpMTEFBRmlDd0NDTkNJQ0FnUmlOSHNBQXJJMkU0TGJBMExMQUFGckFESmJBQ0pVY2pSeU5oc0FCVVdDNGdQQ01oRzdBQ0piQUNKVWNqUnlOaElMQUZKYkFFSlVjalJ5TmhzQVlsc0FVbFNiQUNKV0d3QVVWakl5QllZaHNoV1dPd0FVVmlZQ011SXlBZ1BJbzRJeUZaTGJBMUxMQUFGaUN3Q0VNZ0xrY2pSeU5oSUdDd0lHQm1zSUJpSXlBZ1BJbzRMYkEyTENNZ0xrYXdBaVZHVWxnZ1BGa3VzU1lCRkNzdHNEY3NJeUF1UnJBQ0pVWlFXQ0E4V1M2eEpnRVVLeTJ3T0N3aklDNUdzQUlsUmxKWUlEeFpJeUF1UnJBQ0pVWlFXQ0E4V1M2eEpnRVVLeTJ3T1N5d01Dc2pJQzVHc0FJbFJsSllJRHhaTHJFbUFSUXJMYkE2TExBeEs0b2dJRHl3QkNOQ2lqZ2pJQzVHc0FJbFJsSllJRHhaTHJFbUFSUXJzQVJETHJBbUt5MndPeXl3QUJhd0JDV3dCQ1lnTGtjalJ5TmhzQVpGS3lNZ1BDQXVJeml4SmdFVUt5MndQQ3l4Q0FRbFFyQUFGckFFSmJBRUpTQXVSeU5ISTJFZ3NBUWpRckFHUlNzZ3NHQlFXQ0N3UUZGWXN3SWdBeUFic3dJbUF4cFpRa0lqSUVld0JFT3dnR0pnSUxBQUt5Q0tpbUVnc0FKRFlHUWpzQU5EWVdSUVdMQUNRMkVic0FORFlGbXdBeVd3Z0dKaHNBSWxSbUU0SXlBOEl6Z2JJU0FnUmlOSHNBQXJJMkU0SVZteEpnRVVLeTJ3UFN5d01Dc3VzU1lCRkNzdHNENHNzREVySVNNZ0lEeXdCQ05DSXppeEpnRVVLN0FFUXk2d0ppc3RzRDhzc0FBVklFZXdBQ05Dc2dBQkFSVVVFeTZ3TENvdHNFQXNzQUFWSUVld0FDTkNzZ0FCQVJVVUV5NndMQ290c0VFc3NRQUJGQk93TFNvdHNFSXNzQzhxTGJCRExMQUFGa1VqSUM0Z1Jvb2pZVGl4SmdFVUt5MndSQ3l3Q0NOQ3NFTXJMYkJGTExJQUFEd3JMYkJHTExJQUFUd3JMYkJITExJQkFEd3JMYkJJTExJQkFUd3JMYkJKTExJQUFEMHJMYkJLTExJQUFUMHJMYkJMTExJQkFEMHJMYkJNTExJQkFUMHJMYkJOTExJQUFEa3JMYkJPTExJQUFUa3JMYkJQTExJQkFEa3JMYkJRTExJQkFUa3JMYkJSTExJQUFEc3JMYkJTTExJQUFUc3JMYkJUTExJQkFEc3JMYkJVTExJQkFUc3JMYkJWTExJQUFENHJMYkJXTExJQUFUNHJMYkJYTExJQkFENHJMYkJZTExJQkFUNHJMYkJaTExJQUFEb3JMYkJhTExJQUFUb3JMYkJiTExJQkFEb3JMYkJjTExJQkFUb3JMYkJkTExBeUt5NnhKZ0VVS3kyd1hpeXdNaXV3TmlzdHNGOHNzRElyc0RjckxiQmdMTEFBRnJBeUs3QTRLeTJ3WVN5d015c3VzU1lCRkNzdHNHSXNzRE1yc0RZckxiQmpMTEF6SzdBM0t5MndaQ3l3TXl1d09Dc3RzR1Vzc0RRckxyRW1BUlFyTGJCbUxMQTBLN0EyS3kyd1p5eXdOQ3V3TnlzdHNHZ3NzRFFyc0RnckxiQnBMTEExS3k2eEpnRVVLeTJ3YWl5d05TdXdOaXN0c0dzc3NEVXJzRGNyTGJCc0xMQTFLN0E0S3kyd2JTd3JzQWhsc0FNa1VIaXdBUlV3TFFBQUFFdTRBTWhTV0xFQkFZNVp1UWdBQ0FCaklMQUJJMFN3QXlOd3NnUW9DVVZTUkxJS0FnY3FzUVlCUkxFa0FZaFJXTEJBaUZpeEJnTkVzU1lCaUZGWXVBUUFpRml4QmdGRVdWbFpXYmdCLzRXd0JJMnhCUUJFQUFBPSkgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUFvVUFBNEFBQUFBRVBRQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJQVXk4eUFBQUJSQUFBQUVRQUFBQldQZUZKQVdOdFlYQUFBQUdJQUFBQU9nQUFBVXJRRWhtM1kzWjBJQUFBQWNRQUFBQVVBQUFBSEFaSi81Um1jR2R0QUFBQjJBQUFCUGtBQUFtUmlncDRPMmRoYzNBQUFBYlVBQUFBQ0FBQUFBZ0FBQUFRWjJ4NVpnQUFCdHdBQUFDdUFBQUF0dDluQkhab1pXRmtBQUFIakFBQUFEVUFBQUEyQVNzOGUyaG9aV0VBQUFmRUFBQUFJQUFBQUNRSFV3Tk5hRzEwZUFBQUIrUUFBQUFNQUFBQURBc3BBQUJzYjJOaEFBQUg4QUFBQUFnQUFBQUlBRGdBVzIxaGVIQUFBQWY0QUFBQUlBQUFBQ0FBcGdtOGJtRnRaUUFBQ0JnQUFBRjNBQUFDemN5ZEdoeHdiM04wQUFBSmtBQUFBQ29BQUFBN3JyMUFtSEJ5WlhBQUFBbThBQUFBVmdBQUFGYVNvWnIvZUp4allHVGV3VGlCZ1pXQmc2bUthUThEQTBNUGhHWjh3R0RJeU1UQXdNVEF5c3lBRlFTa3VhWXdPTHhnZU1ISUhQUS9peUdLbVp2Qkh5ak1DSklEQVBlOUMyQjRuR05nWUdCbWdHQVpCa1lHRUhBQjhoakJmQllHRFNETkJxUVpHWmdZR0Y0dy92OFBVdkNDQVVSTE1FTFZBd0VqRzhPSUJ3Qms1QWF2QUFCNG5HTmdRQU5HREViTTNQODNnakFBRUxRRDRYaWNuVlhaZHROV0ZKVThaSEFTT21TZ29BN1gzRGhRNjhxRUtSZ3dhU3JGZGlFZEhBaXRCQjJrREhUa25jYys2MnVPUXJ0V0gvbTA3bjA5SkxSMHJiWXNscysrUjF0bjJEcm5SaHdqS24wYWlHdlVvWktYQTZtc1BaWks5MGxjMTNVdmo1VU1CbkZkdGhKUFNadW9uU1JLYXQzc1VDN3hXT3NxV1NkWUorUGxJRlpQVlo1bm9BemlGQjVsU1VRYlJCdXBseVpKNG9uako0a1daeEFmSlVrZ0phTVFwOUxJVUVJMUdzUlMxYUZNNmRDcjF4TngwMERLUnFNZWRWaFU5MFBGSjhjMXA5U3NBMFlxVnpuQ0ZldlZScjRicHdNdmU1REVPc0d6clljeEhuaXNmcFFxa0lxUjZjZy9ka3BPbElhQlZISFVvVmJpNkRDVFgvZVJUQ3JOUUthTVlrV2w3b0c0M2YxMDJ4WXhQWFE2dmk1S2xVYXF1cm5PS0pydDBmR29neWdQMmNicHBOelEyZmJ3NVJsVFZLdGRjYlB0UUdZTlhFckpiSFNmUkFBZEpsTGo2UUZPTlp3Q3FSbjFSOFhaNTg4QkVzbGNsS284VlRLSGVnT1pNenQ3Y1RIdGJpZXJzbkNrbndjeWIzWjI0NTJIUTZkWGgzL1IraGRNNGN4SGorSmlmajVDK2xCcWZpSk9KS1ZHV016eXA0WWZjVmNnUXJreGlBc1h5dUJUaERsMFJkclpabDNqdFRIMmhzLzVTcWxoUFFuYTZLUDRmZ3I5VGlRckhHZFJvL1ZJbk0xajEzV3QzR2RRUzdXN0Z6c3lyME9WSXU3dkN3dXVNK2VFWVo0V0MxVmZudm5lQlRUL0JvaG4vRURlTklWTCs1WXBTclJ2bTZKTXUyaUtDdTBTVktWZE5zVVU3WW9wcG1uUG1tS0c5aDFUek5LZU16TGovOHZjNTVIN0hON3hrSnYyWGVTbWZRKzVhZDlIYnRvUGtKdFdJVGR0SGJscEx5QTNyVVp1MmxXak9uWUVHZ1pwRjFJVlFkQTBzdnBoM0ZhYjlVRFdqRFI4YVdEeUxtTEkrdXBFUjUyMXRjb2Z4WDkxNGdzSGNtbWlwN3NpRjV2aUxxL2JGajQ4M2U2cmo1cEczYkRWK01hUjhqQWVSbm9jbXRCWitjM2h2KzFOM1M2YTdqS3FNdWdCRlV3S3dBQmw3VUFDMHpyYkNhVDFtcWY0OGdkZ1hJWjR6a3BEdFZTZk80YW03K1Y1WC9leE9mRyt4KzNHTHJkY2Qza0pXZFlOY21QMjhOOVNaS3JySCtVdHJWUW5SNndySjQ5VmF4aERLcndvdXI2U2xIdTB0UnUvS0tteThsNlUxc3JuazVDYlBZTWJRbHUyN21Hd0kweHB5aVVlWGxPbEtEM1VVbzZ5UXl4dktjbzg0SlNMQzFxR3hMZ09kUTlxYThUcG9Yb1lHd3NoaHFHMHZSQndTQ2xkRmQrMHluZnhIcXRyMk9qNHhSWGg2WHB5RWhHZjRpcjdVZkJVMTBiOTZBN2F2R2JkTW9NcFZhcW4rNHhQc2EvYjlsRlphYVNPc3hlM1ZBZlhOT3NhT1JYVFQrUnI0SFJ2T0dqZEF6MVVmRFJCSTFVMXgrakdLR00wbGpYbDN3UjBNVlordzJqVll2czkzRStkcEZXc3VVdVk3SnNUOStDMHUvMHErN1djVzBiVy9kY0d2VzNraXA4ak1iOHRDdnc3QjJLM1pBM1VPNU9CR0F2SVdkQVl4aFltZHhpdWcyM0ViZlkvSnFmLzM0YUZSWEpYT3hxN2VlckQxWk5SSlhmWjhyakxUWFpaMTZNMlI5Vk9HdnNJalMwUE4rYlk0WElzdHNSZ1FiYit3Zjh4N2dGM2FWRUM0TkRJWlppSTJuU2hudXJoNmg2cnNXMDRWeElCZHMyeDQzUUFlZ0F1UWQ4Y3U5YnpDWUQxM0NQbkxzQjljZ2gyeUNINGxCeUN6OGk1QmZBNU9RUmZrRU13SUlkZ2w1dzdBQS9JSVhoSURzRWVPUVNQeU5rRStKSWNncS9JSVlqSklVakl1UTN3bUJ5Q0orUVFmRTBPd1RkR3JrNWsvcFlIMlFENnpxS2JRS21kR2h6YU9HUkdyazNZK3p4WTlvRkZaQjlhUk9xUmtlc1Q2bE1lTFBWN2kwajl3U0pTZnpSeVkwTDlpUWRML2RraVVuK3hpTlJueHBlWkl5bXZEcDd6amc3K0JKZnFyVjRBQUFBQUFRQUIvLzhBRDNpY1kyQmtBQUxtSlV3ekdFUVpaQndrK1JrWkdCbWRHSmdZbWJJWWdNd3NvR1NpaUxnSXM1QTJvd2c3STV1U09xT2FpVDJqbVpFOEk1Z1FZMTdDLzA5QlFFZmczeXQrZmg4Z3ZZUXhEMGo2OERPSmlRbjhVK0RuWnhRRGNRVUVsakxtQ3dCcEJnYkcvMy8vYjJTT1orWm00R0VRY3VBSDJzYmxETFNFbThGRlZKaEpFR2dMSDZPU0hwTWRvNUVjSTNOazBiRVhKL0xZcXZaODJWWEhHRmQ2cEtUa3lDc1F3UUFBcStRa3FBQUFlSnhqWUdSZ1lBRGl3NVZTc2ZIOE5sOFp1SmxmQUVVWXpwdk82SVhRQ2I3Ly8vN2Z5THlFbVJ2STVXQmdBb2tDQUZiL0RKQUFBQUI0bkdOZ1pHQmdEdnFmeFJERi9JS0I0ZjkzNWlVTVFCRVV3QXdBaTVZRnBnUG9BQUFENkFBQUExa0FBQUFBQUFBQU9BQmJBQUVBQUFBREFCWUFBUUFBQUFBQUFnQUdBQk1BYmdBQUFDMEprUUFBQUFCNG5IV1F5MnJDUUJTRy8vSFNpMEpiV3VpMnN5cEthYnhnTjRJZ1dIVFRicVM0TFRIR0pCSXpNaGtGWDZQdjBJZnBTL1JaK3B1TXBTaE5tTXgzdmpsejVtUUFYT01iQXZuenhKR3p3Qm1qbkFzNFJjOXlrZjdaY29uOFlybU1LdDRzbjlDL1c2N2dBWUhsS203d3dRcWlkTTVvZ1UvTEFsZmkwbklCRitMT2NwSCswWEtKM0xOY3hxMTR0WHhDNzFtdVlDSlN5MVhjaTYrQldtMTFGSVJHMWdaMTJXNjJPbks2bFlvcVN0eFl1bXNUS3AzS3ZweXJ4UGh4ckJ4UExmYzg5b04xN09wOXVKOG52azRqbGNpVzA5eXJrWi80MmpYK2JGYzkzUVJ0WStaeXJ0VlNEbTJHWEdtMThEM2poTWFzdW8zRzMvTXdnTUlLVzJoRXZLb1FCaEkxMmpybk5wcG9vVU9hTWtNeU04K0trTUJGVE9OaXpSMWh0cEl5N25QTUdTVzBQak5pc2dPUDMrV1JINU1DN285WlJSK3RIc1lUMHU2TUtQT1NmVG5zN2pCclJFcXlURGV6czkvZVUyeDRXcHZXY05ldVM1MTFKVEU4cUNGNUg3dTFCWTFINzJTM1ltaTdhUEQ5NS85K0FOMWZoRXNBZUp4allHS0FBQzRHN0lDWmdZR1JpWkdaTXprak5UazdON0VvbXkwNXN5ZzVKNVdCQVFCRTFRWkJBQUJMdUFESVVsaXhBUUdPV2JrSUFBZ0FZeUN3QVNORXNBTWpjTElFS0FsRlVrU3lDZ0lIS3JFR0FVU3hKQUdJVVZpd1FJaFlzUVlEUkxFbUFZaFJXTGdFQUloWXNRWUJSRmxaV1ZtNEFmK0ZzQVNOc1FVQVJBQUEpIGZvcm1hdCgnd29mZicpO1xufVxuLnVpLnN0ZXBzIC5zdGVwLmNvbXBsZXRlZCA+IC5pY29uOmJlZm9yZSxcbi51aS5vcmRlcmVkLnN0ZXBzIC5zdGVwLmNvbXBsZXRlZDpiZWZvcmUge1xuICBmb250LWZhbWlseTogJ1N0ZXAnO1xuICBjb250ZW50OiAnXFxlODAwJztcbiAgLyogJ+6ggCcgKi9cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBCcmVhZGNydW1iXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEJyZWFkY3J1bWJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWRjcnVtYlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ291cGxpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQnJlYWRjcnVtYlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVhZGNydW1iXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb3VwbGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBCcmVhZGNydW1iXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmJyZWFkY3J1bWIge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkuYnJlYWRjcnVtYjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5icmVhZGNydW1iOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBEaXZpZGVyICovXG4udWkuYnJlYWRjcnVtYiAuZGl2aWRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMC43O1xuICBtYXJnaW46IDBlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qIExpbmsgKi9cbi51aS5icmVhZGNydW1iIGEge1xuICBjb2xvcjogIzJDNkE5RTtcbn1cbi51aS5icmVhZGNydW1iIGE6aG92ZXIge1xuICBjb2xvcjogIzMyNzdiMjtcbn1cbi8qIEljb24gRGl2aWRlciAqL1xuLnVpLmJyZWFkY3J1bWIgLmljb24uZGl2aWRlciB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKiBTZWN0aW9uICovXG4udWkuYnJlYWRjcnVtYiBhLnNlY3Rpb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuYnJlYWRjcnVtYiAuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qIExvb3NlIENvdXBsaW5nICovXG4udWkuYnJlYWRjcnVtYi5zZWdtZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5ZW0gMWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5icmVhZGNydW1iIC5hY3RpdmUuc2VjdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5taW5pLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkudGlueS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuLnVpLmh1Z2UuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRm9ybVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGb3JtXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvcm0gKi9cbi8qIFRleHQgKi9cbi8qIEZpZWxkICovXG4vKiBGaWVsZHMgKi9cbi8qIEZvcm0gTGFiZWwgKi9cbi8qIElucHV0ICovXG4vKiBTZWxlY3QgKi9cbi8qIFRleHQgQXJlYSAqL1xuLyogQ2hlY2tib3ggKi9cbi8qIElubGluZSBWYWxpZGF0aW9uIFByb21wdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9jdXMgKi9cbi8qIElucHV0IEZvY3VzICovXG4vKiBUZXh0IEFyZWEgRm9jdXMgKi9cbi8qIERpc2FibGVkICovXG4vKiBFcnJvcmVkIElucHV0ICovXG4vKiBBdXRvRmlsbCAqL1xuLyogSW5wdXQgRXJyb3IgKi9cbi8qIERyb3Bkb3duIEVycm9yICovXG4vKiBGb2N1c2VkIEVycm9yICovXG4vKiBQbGFjZWhvbGRlciBFcnJvciAqL1xuLyogTG9hZGluZyBEaW1tZXIgKi9cbi8qIExvYWRpbmcgU3Bpbm5lciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZXF1aXJlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXBlZCBGaWVsZHMgKi9cbi8qIElubGluZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGb3JtXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvcm0gKi9cbi8qIFRleHQgKi9cbi8qIEZpZWxkICovXG4vKiBGaWVsZHMgKi9cbi8qIEZvcm0gTGFiZWwgKi9cbi8qIElucHV0ICovXG4vKiBTZWxlY3QgKi9cbi8qIFRleHQgQXJlYSAqL1xuLyogQ2hlY2tib3ggKi9cbi8qIElubGluZSBWYWxpZGF0aW9uIFByb21wdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9jdXMgKi9cbi8qIElucHV0IEZvY3VzICovXG4vKiBUZXh0IEFyZWEgRm9jdXMgKi9cbi8qIERpc2FibGVkICovXG4vKiBFcnJvcmVkIElucHV0ICovXG4vKiBBdXRvRmlsbCAqL1xuLyogSW5wdXQgRXJyb3IgKi9cbi8qIERyb3Bkb3duIEVycm9yICovXG4vKiBGb2N1c2VkIEVycm9yICovXG4vKiBQbGFjZWhvbGRlciBFcnJvciAqL1xuLyogTG9hZGluZyBEaW1tZXIgKi9cbi8qIExvYWRpbmcgU3Bpbm5lciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZXF1aXJlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXBlZCBGaWVsZHMgKi9cbi8qIElubGluZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEVsZW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb3JtXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtID4gcCB7XG4gIG1hcmdpbjogMWVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmllbGRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGQge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5mb3JtIC5maWVsZDpsYXN0LWNoaWxkLFxuLnVpLmZvcm0gLmZpZWxkczpsYXN0LWNoaWxkIC5maWVsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5mb3JtIC5maWVsZHMgLmZpZWxkIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMYWJlbHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGQgPiBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDBlbSAwZW0gMC4yODU3MTQyOXJlbSAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFN0YW5kYXJkIElucHV0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIHRleHRhcmVhLFxuLnVpLmZvcm0gaW5wdXQ6bm90KFt0eXBlXSksXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuICB3aWR0aDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qIFNldCBtYXggaGVpZ2h0IG9uIHVudXN1YWwgaW5wdXQgKi9cbi51aS5mb3JtIDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LFxuLnVpLmZvcm0gOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG59XG4udWkuZm9ybSBpbnB1dDpub3QoW3R5cGVdKSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInVybFwiXSB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMGVtO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG4gIHBhZGRpbmc6IDAuNjc4NTcxNDNlbSAxZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMGVtIHRyYW5zcGFyZW50IGluc2V0O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4vKiBUZXh0IEFyZWEgKi9cbi51aS5mb3JtIHRleHRhcmVhIHtcbiAgbWFyZ2luOiAwZW07XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgcGFkZGluZzogMC43ODU3MTQyOWVtIDFlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDBlbSB0cmFuc3BhcmVudCBpbnNldDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjg1NztcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cbi51aS5mb3JtIHRleHRhcmVhOm5vdChbcm93c10pIHtcbiAgaGVpZ2h0OiAxMmVtO1xuICBtaW4taGVpZ2h0OiA4ZW07XG4gIG1heC1oZWlnaHQ6IDI0ZW07XG59XG4udWkuZm9ybSB0ZXh0YXJlYSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIElucHV0IHcvIGF0dGFjaGVkIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIGlucHV0LmF0dGFjaGVkIHtcbiAgd2lkdGg6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJhc2ljIFNlbGVjdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIHNlbGVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwZW0gdHJhbnNwYXJlbnQgaW5zZXQ7XG4gIHBhZGRpbmc6IDAuNjJlbSAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRHJvcGRvd25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCbG9jayAqL1xuLnVpLmZvcm0gLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZvcm0gLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLyogSW5saW5lICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IC5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICB3aWR0aDogYXV0bztcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IC5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbixcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBmbG9hdDogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBVSSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJsb2NrICovXG4udWkuZm9ybSAuZmllbGQgLnVpLmlucHV0LFxuLnVpLmZvcm0gLmZpZWxkcyAuZmllbGQgLnVpLmlucHV0LFxuLnVpLmZvcm0gLndpZGUuZmllbGQgLnVpLmlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBJbmxpbmUgICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQ6bm90KC53aWRlKSAudWkuaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkOm5vdCgud2lkZSkgLnVpLmlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKiBBdXRvIElucHV0ICovXG4udWkuZm9ybSAuZmllbGRzIC5maWVsZCAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuZmllbGQgLnVpLmlucHV0IGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG59XG4vKiBGdWxsIFdpZHRoIElucHV0ICovXG4udWkuZm9ybSAudGVuLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAubmluZS5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLmVpZ2h0LmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuc2V2ZW4uZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5zaXguZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5maXZlLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuZm91ci5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLnRocmVlLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAudHdvLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAud2lkZS5maWVsZCAudWkuaW5wdXQgaW5wdXQge1xuICBmbGV4OiAxIDAgYXV0bztcbiAgd2lkdGg6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFR5cGVzIG9mIE1lc3NhZ2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLnN1Y2Nlc3MubWVzc2FnZSxcbi51aS5mb3JtIC53YXJuaW5nLm1lc3NhZ2UsXG4udWkuZm9ybSAuZXJyb3IubWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBBc3N1bXB0aW9ucyAqL1xuLnVpLmZvcm0gLm1lc3NhZ2U6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBWYWxpZGF0aW9uIFByb21wdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZCAucHJvbXB0LmxhYmVsIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjRTBCNEI0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOUYzQTM4ICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgLnByb21wdCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgLnByb21wdCB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1hcmdpbjogLTAuMjVlbSAwZW0gLTAuNWVtIDAuNWVtO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkIC5wcm9tcHQ6YmVmb3JlLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCAucHJvbXB0OmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogMHB4IDBweCAxcHggMXB4O1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEF1dG9maWxsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGQuZmllbGQgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDEwMHB4ICNGRkZGRjAgaW5zZXQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRTVERkExICFpbXBvcnRhbnQ7XG59XG4vKiBGb2N1cyAqL1xuLnVpLmZvcm0gLmZpZWxkLmZpZWxkIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxMDBweCAjRkZGRkYwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0Q1QzMxNSAhaW1wb3J0YW50O1xufVxuLyogRXJyb3IgKi9cbi51aS5mb3JtIC5lcnJvci5lcnJvciBpbnB1dDotd2Via2l0LWF1dG9maWxsIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMTAwcHggI0ZGRkFGMCBpbnNldCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBsYWNlaG9sZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogYnJvd3NlcnMgcmVxdWlyZSB0aGVzZSBydWxlcyBzZXBhcmF0ZSAqL1xuLnVpLmZvcm0gOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTkxLCAxOTEsIDE5MSwgMC44Nyk7XG59XG4udWkuZm9ybSA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTkxLCAxOTEsIDE5MSwgMC44NykgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDE5MSwgMTkxLCAxOTEsIDAuODcpO1xufVxuLnVpLmZvcm0gOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTE1LCAxMTUsIDExNSwgMC44Nyk7XG59XG4udWkuZm9ybSA6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTE1LCAxMTUsIDExNSwgMC44NykgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIDpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuODcpO1xufVxuLyogRXJyb3IgUGxhY2Vob2xkZXIgKi9cbi51aS5mb3JtIC5lcnJvciA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2U3YmRiYztcbn1cbi51aS5mb3JtIC5lcnJvciA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlN2JkYmMgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5lcnJvciA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2U3YmRiYztcbn1cbi51aS5mb3JtIC5lcnJvciA6Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2RhOTc5Njtcbn1cbi51aS5mb3JtIC5lcnJvciA6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkYTk3OTYgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5lcnJvciA6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2RhOTc5Njtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSBpbnB1dDpub3QoW3R5cGVdKTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3JkZXItY29sb3I6ICM4NUI3RDk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMGVtIDBlbSByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpIGluc2V0O1xufVxuLnVpLmZvcm0gdGV4dGFyZWE6Zm9jdXMge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLWNvbG9yOiAjODVCN0Q5O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBlbSAwZW0gcmdiYSgzNCwgMzYsIDM4LCAwLjM1KSBpbnNldDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdWNjZXNzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT24gRm9ybSAqL1xuLnVpLmZvcm0uc3VjY2VzcyAuc3VjY2Vzcy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuZm9ybS5zdWNjZXNzIC5jb21wYWN0LnN1Y2Nlc3MubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5mb3JtLnN1Y2Nlc3MgLmljb24uc3VjY2Vzcy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgV2FybmluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE9uIEZvcm0gKi9cbi51aS5mb3JtLndhcm5pbmcgLndhcm5pbmcubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmZvcm0ud2FybmluZyAuY29tcGFjdC53YXJuaW5nLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWkuZm9ybS53YXJuaW5nIC5pY29uLndhcm5pbmcubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEVycm9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT24gRm9ybSAqL1xuLnVpLmZvcm0uZXJyb3IgLmVycm9yLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5mb3JtLmVycm9yIC5jb21wYWN0LmVycm9yLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWkuZm9ybS5lcnJvciAuaWNvbi5lcnJvci5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi8qIE9uIEZpZWxkKHMpICovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBsYWJlbCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBsYWJlbCxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5pbnB1dCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuaW5wdXQge1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jb3JuZXIubGFiZWwsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNvcm5lci5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzlGM0EzODtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCB0ZXh0YXJlYSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIHNlbGVjdCxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHRleHRhcmVhLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHNlbGVjdCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dDpub3QoW3R5cGVdKSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgYmFja2dyb3VuZDogI0ZGRjZGNjtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xuICBjb2xvcjogIzlGM0EzODtcbiAgYm9yZGVyLXJhZGl1czogJyc7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZm9ybSAuZmllbGQuZXJyb3IgdGV4dGFyZWE6Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3Igc2VsZWN0OmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0Om5vdChbdHlwZV0pOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJmaWxlXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG4gIGNvbG9yOiAjOUYzQTM4O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBQcmVzZXJ2ZSBOYXRpdmUgU2VsZWN0IFN0eWxpbmdzICovXG4udWkuZm9ybSAuZmllbGQuZXJyb3Igc2VsZWN0IHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZW51bGlzdC1idXR0b247XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERyb3Bkb3duIEVycm9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24gLml0ZW0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biAudGV4dCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2O1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24ge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bjpob3Zlcixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bjpob3ZlciAubWVudSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd246aG92ZXIgLm1lbnUge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkubXVsdGlwbGUuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5tdWx0aXBsZS5zZWxlY3Rpb24uZHJvcGRvd24gPiAubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUFDQkNCO1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi8qIEhvdmVyICovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24gLm1lbnUgLml0ZW06aG92ZXIsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRTdFNztcbn1cbi8qIFNlbGVjdGVkICovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24gLm1lbnUgLnNlbGVjdGVkLml0ZW0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duIC5tZW51IC5zZWxlY3RlZC5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRTdFNztcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duIC5tZW51IC5hY3RpdmUuaXRlbSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZEQ0ZDRiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENoZWNrYm94IEVycm9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgbGFiZWwsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgbGFiZWwsXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSAuYm94LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIC5ib3gge1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIGxhYmVsOmJlZm9yZSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSBsYWJlbDpiZWZvcmUsXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSAuYm94OmJlZm9yZSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSAuYm94OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkY2RjY7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveCBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3ggbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3ggLmJveDphZnRlciB7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmRpc2FibGVkLmZpZWxkcyAuZmllbGQsXG4udWkuZm9ybSAuZGlzYWJsZWQuZmllbGQsXG4udWkuZm9ybSAuZmllbGQgOmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4udWkuZm9ybSAuZmllbGQuZGlzYWJsZWQgPiBsYWJlbCxcbi51aS5mb3JtIC5maWVsZHMuZGlzYWJsZWQgPiBsYWJlbCB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4udWkuZm9ybSAuZmllbGQuZGlzYWJsZWQgOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcuZm9ybSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi51aS5sb2FkaW5nLmZvcm06YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwO1xufVxuLnVpLmxvYWRpbmcuZm9ybTphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuNWVtIDBlbSAwZW0gLTEuNWVtO1xuICB3aWR0aDogM2VtO1xuICBoZWlnaHQ6IDNlbTtcbiAgYW5pbWF0aW9uOiBmb3JtLXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB6LWluZGV4OiAxMDE7XG59XG5Aa2V5ZnJhbWVzIGZvcm0tc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgRWxlbWVudCBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgUmVxdWlyZWQgRmllbGRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzOm5vdCguZ3JvdXBlZCkgPiAuZmllbGQgPiBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHMuZ3JvdXBlZCA+IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkID4gbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzOm5vdCguZ3JvdXBlZCkgPiAuZmllbGQgPiAuY2hlY2tib3g6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGQgPiAuY2hlY2tib3g6YWZ0ZXIge1xuICBtYXJnaW46IC0wLjJlbSAwZW0gMGVtIDAuMmVtO1xuICBjb250ZW50OiAnKic7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkczpub3QoLmdyb3VwZWQpID4gLmZpZWxkID4gbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzLmdyb3VwZWQgPiBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZCA+IGxhYmVsOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkczpub3QoLmdyb3VwZWQpID4gLmZpZWxkID4gLmNoZWNrYm94OmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkID4gLmNoZWNrYm94OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAxMDAlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuZm9ybSBsYWJlbCxcbi51aS5mb3JtIC5pbnZlcnRlZC5zZWdtZW50IGxhYmVsLFxuLnVpLmZvcm0gLmludmVydGVkLnNlZ21lbnQgLnVpLmNoZWNrYm94IGxhYmVsLFxuLnVpLmZvcm0gLmludmVydGVkLnNlZ21lbnQgLnVpLmNoZWNrYm94IC5ib3gsXG4udWkuaW52ZXJ0ZWQuZm9ybSAudWkuY2hlY2tib3ggbGFiZWwsXG4udWkuaW52ZXJ0ZWQuZm9ybSAudWkuY2hlY2tib3ggLmJveCxcbi51aS5pbnZlcnRlZC5mb3JtIC5pbmxpbmUuZmllbGRzID4gbGFiZWwsXG4udWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBsYWJlbCxcbi51aS5pbnZlcnRlZC5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IHAsXG4udWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkID4gbGFiZWwsXG4udWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkID4gcCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKiBJbnZlcnRlZCBGaWVsZCAqL1xuLnVpLmludmVydGVkLmZvcm0gaW5wdXQ6bm90KFt0eXBlXSksXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEZpZWxkIEdyb3Vwc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyb3VwZWQgVmVydGljYWxseSAqL1xuLnVpLmZvcm0gLmdyb3VwZWQuZmllbGRzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkuZm9ybSAuZ3JvdXBlZC5maWVsZHM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5mb3JtIC5ncm91cGVkLmZpZWxkcyA+IGxhYmVsIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi51aS5mb3JtIC5ncm91cGVkLmZpZWxkcyAuZmllbGQsXG4udWkuZm9ybSAuZ3JvdXBlZC5pbmxpbmUuZmllbGRzIC5maWVsZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAuNWVtIDBlbTtcbiAgcGFkZGluZzogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGaWVsZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTcGxpdCBmaWVsZHMgKi9cbi51aS5mb3JtIC5maWVsZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBtYXJnaW46IDBlbSAtMC41ZW0gMWVtO1xufVxuLnVpLmZvcm0gLmZpZWxkcyA+IC5maWVsZCB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5mb3JtIC5maWVsZHMgPiAuZmllbGQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIE90aGVyIENvbWJpbmF0aW9ucyAqL1xuLnVpLmZvcm0gLnR3by5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnR3by5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLmZvcm0gLnRocmVlLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAudGhyZWUuZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbn1cbi51aS5mb3JtIC5mb3VyLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuZm91ci5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLmZvcm0gLmZpdmUuZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5maXZlLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWkuZm9ybSAuc2l4LmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuc2l4LmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG4udWkuZm9ybSAuc2V2ZW4uZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5zZXZlbi5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTQuMjg1NzE0MjklO1xufVxuLnVpLmZvcm0gLmVpZ2h0LmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuZWlnaHQuZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnVpLmZvcm0gLm5pbmUuZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5uaW5lLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxMS4xMTExMTExMSU7XG59XG4udWkuZm9ybSAudGVuLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAudGVuLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxMCU7XG59XG4vKiBTd2FwIHRvIGZ1bGwgd2lkdGggb24gbW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5mb3JtIC5maWVsZHMge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSBbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudHdvLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50d28uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudGhyZWUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnRocmVlLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZvdXIuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZvdXIuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZml2ZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZml2ZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5zaXguZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnNpeC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5zZXZlbi5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuc2V2ZW4uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZWlnaHQuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmVpZ2h0LmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLm5pbmUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLm5pbmUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudGVuLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50ZW4uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMGVtIDBlbSAxZW07XG4gIH1cbn1cbi8qIFNpemluZyBDb21iaW5hdGlvbnMgKi9cbi51aS5mb3JtIC5maWVsZHMgLndpZGUuZmllbGQge1xuICB3aWR0aDogNi4yNSU7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmZvcm0gLm9uZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudHdvLndpZGUuZmllbGQge1xuICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC50aHJlZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZvdXIud2lkZS5maWVsZCB7XG4gIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5maXZlLndpZGUuZmllbGQge1xuICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuc2l4LndpZGUuZmllbGQge1xuICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5zZXZlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmVpZ2h0LndpZGUuZmllbGQge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAubmluZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnRlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZWxldmVuLndpZGUuZmllbGQge1xuICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudHdlbHZlLndpZGUuZmllbGQge1xuICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudGhpcnRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5mb3VydGVlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZmlmdGVlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnNpeHRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4vKiBTd2FwIHRvIGZ1bGwgd2lkdGggb24gbW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50d28uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnR3by5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50aHJlZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudGhyZWUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZm91ci5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZm91ci5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maXZlLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maXZlLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC50d28ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC50aHJlZS53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZvdXIud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maXZlLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuc2l4LndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuc2V2ZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5laWdodC53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLm5pbmUud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC50ZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5lbGV2ZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC50d2VsdmUud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC50aGlydGVlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZvdXJ0ZWVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmlmdGVlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnNpeHRlZW4ud2lkZS5maWVsZCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZm9ybSAuZmllbGRzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgRXF1YWwgV2lkdGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZm9ybSAuZmllbGRzID4gLmZpZWxkLFxuLnVpLmZvcm0gW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4OiAxIDEgYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBJbmxpbmUgRmllbGRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMge1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbSAxZW0gMGVtIDBlbTtcbn1cbi8qIElubGluZSBMYWJlbCAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgPiBsYWJlbCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IGxhYmVsLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gcCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiBsYWJlbCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiBwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4vKiBHcm91cGVkIElubGluZSBMYWJlbCAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgPiBsYWJlbCB7XG4gIG1hcmdpbjogMC4wMzU3MTRlbSAxZW0gMGVtIDBlbTtcbn1cbi8qIElubGluZSBJbnB1dCAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBzZWxlY3QsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gc2VsZWN0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyogTGFiZWwgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IDpmaXJzdC1jaGlsZCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW46IDBlbSAwLjg1NzE0Mjg2ZW0gMGVtIDBlbTtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IDpvbmx5LWNoaWxkLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IDpvbmx5LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKiBXaWRlICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAud2lkZS5maWVsZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAud2lkZS5maWVsZCA+IGlucHV0LFxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLndpZGUuZmllbGQgPiBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5mb3JtIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS5zbWFsbC5mb3JtIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLmZvcm0ge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5iaWcuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5odWdlLmZvcm0ge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS5mb3JtIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEdyaWRcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgR3JpZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEluaGVyaXRlZCBGcm9tIFNpdGUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcmlkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUmVsYXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDZWxsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMZWdhY3lcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWdhY3kgKERPIE5PVCBVU0UpXG4gKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEdyaWRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBJbmhlcml0ZWQgRnJvbSBTaXRlICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgR3JpZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFJlbGF4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2VsbGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTGVnYWN5XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGVnYWN5IChETyBOT1QgVVNFKVxuICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBwYWRkaW5nOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFJlbW92ZSBHdXR0ZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCB7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xufVxuLnVpLnJlbGF4ZWQuZ3JpZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmdyaWQge1xuICBtYXJnaW4tbGVmdDogLTIuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMi41cmVtO1xufVxuLyogUHJlc2VydmUgUm93cyBTcGFjaW5nIG9uIENvbnNlY3V0aXZlIEdyaWRzICovXG4udWkuZ3JpZCArIC5ncmlkIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbHVtbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkIDE2IGNvbHVtbiAqL1xuLnVpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDYuMjUlO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkuZ3JpZCA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUm93c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmdyaWQgPiAucm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogaW5oZXJpdDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDByZW07XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbHVtbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZlcnRpY2FsIHBhZGRpbmcgd2hlbiBubyByb3dzICovXG4udWkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCA+IC5yb3cgPiBpbWcsXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uID4gaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgTG9vc2UgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbGxhcHNlIE1hcmdpbiBvbiBDb25zZWN1dGl2ZSBHcmlkICovXG4udWkuZ3JpZCA+IC51aS5ncmlkOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmdyaWQgPiAudWkuZ3JpZDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogU2VnbWVudCBpbnNpZGUgQWxpZ25lZCBHcmlkICovXG4udWkuZ3JpZCAuYWxpZ25lZC5yb3cgPiAuY29sdW1uID4gLnNlZ21lbnQ6bm90KC5jb21wYWN0KTpub3QoLmF0dGFjaGVkKSxcbi51aS5hbGlnbmVkLmdyaWQgLmNvbHVtbiA+IC5zZWdtZW50Om5vdCguY29tcGFjdCk6bm90KC5hdHRhY2hlZCkge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEFsaWduIERpdmlkZXJzIHdpdGggR3V0dGVyICovXG4udWkuZ3JpZCAucm93ICsgLnVpLmRpdmlkZXIge1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbjogMXJlbSAxcmVtO1xufVxuLnVpLmdyaWQgLmNvbHVtbiArIC51aS52ZXJ0aWNhbC5kaXZpZGVyIHtcbiAgaGVpZ2h0OiBjYWxjKDQ5JSk7XG59XG4vKiBSZW1vdmUgQm9yZGVyIG9uIExhc3QgSG9yaXpvbnRhbCBTZWdtZW50ICovXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQgPiAuaG9yaXpvbnRhbC5zZWdtZW50LFxuLnVpLmdyaWQgPiAuY29sdW1uOmxhc3QtY2hpbGQgPiAuaG9yaXpvbnRhbC5zZWdtZW50IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUGFnZSBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZy1sZWZ0OiAwZW07XG4gICAgcGFkZGluZy1yaWdodDogMGVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICAgIHBhZGRpbmctbGVmdDogMmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICAgIHBhZGRpbmctbGVmdDogMyU7XG4gICAgcGFkZGluZy1yaWdodDogMyU7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTkxOXB4KSB7XG4gIC51aS5wYWdlLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxNSU7XG4gICAgcGFkZGluZy1yaWdodDogMTUlO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICAgIHBhZGRpbmctbGVmdDogMjMlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIzJTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIENvbHVtbiBDb3VudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXNzdW1lIGZ1bGwgd2lkdGggd2l0aCBvbmUgY29sdW1uICovXG4udWkuZ3JpZCA+IC5jb2x1bW46b25seS1jaGlsZCxcbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW46b25seS1jaGlsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogR3JpZCBCYXNlZCAqL1xuLnVpW2NsYXNzKj1cIm9uZSBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cIm9uZSBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogNTAlO1xufVxuLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4udWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAyNSU7XG59XG4udWlbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMTYuNjY2NjY2NjclO1xufVxuLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAxNC4yODU3MTQyOSU7XG59XG4udWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMTEuMTExMTExMTElO1xufVxuLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA5LjA5MDkwOTA5JTtcbn1cbi51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzJTtcbn1cbi51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogNy42OTIzMDc2OSU7XG59XG4udWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDcuMTQyODU3MTQlO1xufVxuLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogNi42NjY2NjY2NyU7XG59XG4udWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA2LjI1JTtcbn1cbi8qIFJvdyBCYXNlZCBPdmVycmlkZXMgKi9cbi51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY3JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTQuMjg1NzE0MjklICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxMS4xMTExMTExMSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxMCUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiA5LjA5MDkwOTA5JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDguMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiA3LjY5MjMwNzY5JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogNy4xNDI4NTcxNCUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogNi42NjY2NjY2NyUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbn1cbi8qIENlbGxlZCBQYWdlICovXG4udWkuY2VsbGVkLnBhZ2UuZ3JpZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDb2x1bW4gV2lkdGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpemluZyBDb21iaW5hdGlvbnMgKi9cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFdpZHRoIHBlciBEZXZpY2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1vYmlsZSBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzNy41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogOTMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBUYWJsZXQgU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogQ29tcHV0ZXIvRGVza3RvcCBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBMYXJnZSBNb25pdG9yIFNpemluZyBDb21iaW5hdGlvbnMgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTkxOXB4KSB7XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogV2lkZXNjcmVlbiBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQ2VudGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jZW50ZXJlZC5ncmlkLFxuLnVpLmNlbnRlcmVkLmdyaWQgPiAucm93LFxuLnVpLmdyaWQgPiAuY2VudGVyZWQucm93IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi51aS5jZW50ZXJlZC5ncmlkID4gLmNvbHVtbjpub3QoLmFsaWduZWQpOm5vdCguanVzdGlmaWVkKTpub3QoLnJvdyksXG4udWkuY2VudGVyZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOm5vdCguYWxpZ25lZCk6bm90KC5qdXN0aWZpZWQpLFxuLnVpLmdyaWQgLmNlbnRlcmVkLnJvdyA+IC5jb2x1bW46bm90KC5hbGlnbmVkKTpub3QoLmp1c3RpZmllZCkge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpLmdyaWQgPiAuY2VudGVyZWQuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmNlbnRlcmVkLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFJlbGF4ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yZWxheGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5yZWxheGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gLnJlbGF4ZWQucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLnJvdyA+IC5jb2x1bW4ge1xuICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMi41cmVtO1xufVxuLyogQ291cGxpbmcgd2l0aCBVSSBEaXZpZGVyICovXG4udWkucmVsYXhlZC5ncmlkIC5yb3cgKyAudWkuZGl2aWRlcixcbi51aS5ncmlkIC5yZWxheGVkLnJvdyArIC51aS5kaXZpZGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmdyaWQgLnJvdyArIC51aS5kaXZpZGVyLFxuLnVpLmdyaWQgW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5yb3cgKyAudWkuZGl2aWRlciB7XG4gIG1hcmdpbi1sZWZ0OiAyLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMi41cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZGRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBhZGRlZC5ncmlkOm5vdCgudmVydGljYWxseSk6bm90KC5ob3Jpem9udGFsbHkpIHtcbiAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbn1cbltjbGFzcyo9XCJob3Jpem9udGFsbHkgcGFkZGVkXCJdLnVpLmdyaWQge1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG59XG5bY2xhc3MqPVwidmVydGljYWxseSBwYWRkZWRcIl0udWkuZ3JpZCB7XG4gIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFwiRmxvYXRlZFwiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLmNvbHVtbiB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi51aS5ncmlkIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLmNvbHVtbiB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogU3dhcCBmcm9tIHBhZGRpbmcgdG8gbWFyZ2luIG9uIGNvbHVtbnMgdG8gaGF2ZSBkaXZpZGVycyBhbGlnbiAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctdG9wOiAwcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMHJlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3cge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIE5vIGRpdmlkZXIgb24gZmlyc3QgY29sdW1uIG9uIHJvdyAqL1xuLnVpLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuLnVpLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBObyBzcGFjZSBvbiB0b3Agb2YgZmlyc3Qgcm93ICovXG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkID4gLmNvbHVtbiB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIERpdmlkZWQgUm93ICovXG4udWkuZ3JpZCA+IC5kaXZpZGVkLnJvdyA+IC5jb2x1bW4ge1xuICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuZ3JpZCA+IC5kaXZpZGVkLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogVmVydGljYWxseSBEaXZpZGVkICovXG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiBjYWxjKDk4JSk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDAlIDFyZW07XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFBhZGRlZCBIb3Jpem9udGFsbHkgRGl2aWRlZCAqL1xuW2NsYXNzKj1cImhvcml6b250YWxseSBwYWRkZWRcIl0udWkuZGl2aWRlZC5ncmlkLFxuLnVpLnBhZGRlZC5kaXZpZGVkLmdyaWQ6bm90KC52ZXJ0aWNhbGx5KTpub3QoLmhvcml6b250YWxseSkge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEZpcnN0IFJvdyBWZXJ0aWNhbGx5IERpdmlkZWQgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEludmVydGVkIERpdmlkZWQgKi9cbi51aS5pbnZlcnRlZC5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuaW52ZXJ0ZWQuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bm90KC5yb3cpOmZpcnN0LWNoaWxkLFxuLnVpLmludmVydGVkLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyogUmVsYXhlZCAqL1xuLnVpLnJlbGF4ZWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmJlZm9yZSB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICB3aWR0aDogY2FsYyg5NyUpO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6YmVmb3JlIHtcbiAgbWFyZ2luLWxlZnQ6IDIuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAyLjVyZW07XG4gIHdpZHRoOiBjYWxjKDk1JSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIENlbGxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNlbGxlZC5ncmlkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMWVtIDBlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDU7XG59XG4udWkuY2VsbGVkLmdyaWQgPiAucm93IHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCAjRDRENEQ1O1xufVxuLnVpLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggI0Q0RDRENTtcbn1cbi51aS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4udWkuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZzogMWVtO1xufVxuLnVpLnJlbGF4ZWQuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5yZWxheGVkLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBwYWRkaW5nOiAxLjVlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDJlbTtcbn1cbi8qIEludGVybmFsbHkgQ2VsbGVkICovXG4udWlbY2xhc3MqPVwiaW50ZXJuYWxseSBjZWxsZWRcIl0uZ3JpZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpW2NsYXNzKj1cImludGVybmFsbHkgY2VsbGVkXCJdLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aVtjbGFzcyo9XCJpbnRlcm5hbGx5IGNlbGxlZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBWZXJ0aWNhbGx5IEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbn1cbi8qIE1pZGRsZSBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXS5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuLyogQm90dG9tIEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDtcbn1cbi8qIFN0cmV0Y2hlZCAqL1xuLnVpLnN0cmV0Y2hlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuc3RyZXRjaGVkLmdyaWQgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiAuc3RyZXRjaGVkLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5zdHJldGNoZWQuY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IC5zdHJldGNoZWQuY29sdW1uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi51aS5zdHJldGNoZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uID4gKixcbi51aS5zdHJldGNoZWQuZ3JpZCA+IC5jb2x1bW4gPiAqLFxuLnVpLmdyaWQgPiAuc3RyZXRjaGVkLnJvdyA+IC5jb2x1bW4gPiAqLFxuLnVpLmdyaWQgPiAuc3RyZXRjaGVkLmNvbHVtbjpub3QoLnJvdykgPiAqLFxuLnVpLmdyaWQgPiAucm93ID4gLnN0cmV0Y2hlZC5jb2x1bW4gPiAqIHtcbiAgZmxleC1ncm93OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhvcml6b250YWxseSBDZW50ZXJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGVmdCBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYWxpZ24tc2VsZjogaW5oZXJpdDtcbn1cbi8qIENlbnRlciBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogaW5oZXJpdDtcbn1cbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5ncmlkIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4vKiBSaWdodCBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYWxpZ24tc2VsZjogaW5oZXJpdDtcbn1cbi8qIEp1c3RpZmllZCAqL1xuLnVpLmp1c3RpZmllZC5ncmlkID4gLmNvbHVtbixcbi51aS5qdXN0aWZpZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiAuanVzdGlmaWVkLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5qdXN0aWZpZWQuY29sdW1uLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5qdXN0aWZpZWQuY29sdW1uLmNvbHVtbiB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIGh5cGhlbnM6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIENvbG9yZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ncmlkID4gLnJvdyA+IC5yZWQuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLm9yYW5nZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAueWVsbG93LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5vbGl2ZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuZ3JlZW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnRlYWwuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJsdWUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnZpb2xldC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucHVycGxlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5waW5rLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5icm93bi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuZ3JleS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYmxhY2suY29sdW1uIHtcbiAgbWFyZ2luLXRvcDogLTFyZW07XG4gIG1hcmdpbi1ib3R0b206IC0xcmVtO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4vKiBSZWQgKi9cbi51aS5ncmlkID4gLnJlZC5yb3csXG4udWkuZ3JpZCA+IC5yZWQuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnJlZC5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogT3JhbmdlICovXG4udWkuZ3JpZCA+IC5vcmFuZ2Uucm93LFxuLnVpLmdyaWQgPiAub3JhbmdlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5vcmFuZ2UuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIFllbGxvdyAqL1xuLnVpLmdyaWQgPiAueWVsbG93LnJvdyxcbi51aS5ncmlkID4gLnllbGxvdy5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAueWVsbG93LmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBPbGl2ZSAqL1xuLnVpLmdyaWQgPiAub2xpdmUucm93LFxuLnVpLmdyaWQgPiAub2xpdmUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLm9saXZlLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBHcmVlbiAqL1xuLnVpLmdyaWQgPiAuZ3JlZW4ucm93LFxuLnVpLmdyaWQgPiAuZ3JlZW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmdyZWVuLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBUZWFsICovXG4udWkuZ3JpZCA+IC50ZWFsLnJvdyxcbi51aS5ncmlkID4gLnRlYWwuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnRlYWwuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIEJsdWUgKi9cbi51aS5ncmlkID4gLmJsdWUucm93LFxuLnVpLmdyaWQgPiAuYmx1ZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYmx1ZS5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogVmlvbGV0ICovXG4udWkuZ3JpZCA+IC52aW9sZXQucm93LFxuLnVpLmdyaWQgPiAudmlvbGV0LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC52aW9sZXQuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIFB1cnBsZSAqL1xuLnVpLmdyaWQgPiAucHVycGxlLnJvdyxcbi51aS5ncmlkID4gLnB1cnBsZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucHVycGxlLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBQaW5rICovXG4udWkuZ3JpZCA+IC5waW5rLnJvdyxcbi51aS5ncmlkID4gLnBpbmsuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnBpbmsuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIEJyb3duICovXG4udWkuZ3JpZCA+IC5icm93bi5yb3csXG4udWkuZ3JpZCA+IC5icm93bi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYnJvd24uY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIEdyZXkgKi9cbi51aS5ncmlkID4gLmdyZXkucm93LFxuLnVpLmdyaWQgPiAuZ3JleS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuZ3JleS5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogQmxhY2sgKi9cbi51aS5ncmlkID4gLmJsYWNrLnJvdyxcbi51aS5ncmlkID4gLmJsYWNrLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ibGFjay5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFcXVhbCBXaWR0aFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5yb3cgPiAuY29sdW1uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbGV4LWdyb3c6IDE7XG59XG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZ3JpZCA+IC53aWRlLmNvbHVtbixcbi51aVtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5ncmlkID4gLnJvdyA+IC53aWRlLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLnJvdyA+IC53aWRlLmNvbHVtbiB7XG4gIGZsZXgtZ3JvdzogMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBSZXZlcnNlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5ncmlkLFxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmdyaWQgPiAucm93LFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0ucm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdLmdyaWQsXG4gIC51aS5zdGFja2FibGVbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbiAgLyogRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB9XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bGFzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBWZXJ0aWNhbGx5IERpdmlkZWQgUmV2ZXJzZWQgKi9cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cIm1vYmlsZSB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgfVxuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwibW9iaWxlIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93Omxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIENlbGxlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggI0Q0RDRENTtcbiAgfVxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuLyogVGFibGV0ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5ncmlkLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmdyaWQgPiAucm93LFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0ucm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdLmdyaWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxuICAvKiBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpsYXN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIFZlcnRpY2FsbHkgRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwidGFibGV0IHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93OmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB9XG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJ0YWJsZXQgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6bGFzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogQ2VsbGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCAjRDRENEQ1O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG4vKiBDb21wdXRlciAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZ3JpZCxcbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmdyaWQgPiAucm93LFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgdmVydGljYWxseSByZXZlcnNlZFwiXS5ncmlkIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbiAgLyogRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bGFzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIFZlcnRpY2FsbHkgRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwiY29tcHV0ZXIgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiAwcHggLTFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIH1cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cImNvbXB1dGVyIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93Omxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIENlbGxlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCAjRDRENEQ1O1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRG91Ymxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxldCBPbmx5ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpLmRvdWJsaW5nLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC51aS5ncmlkID4gLmRvdWJsaW5nLnJvdyxcbiAgLnVpLmRvdWJsaW5nLmdyaWQgPiAucm93IHtcbiAgICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDBlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLmRvdWJsaW5nLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW07XG4gIH1cbiAgLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTQuMjg1NzE0MjklICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNC4yODU3MTQyOSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIE1vYmlsZSBPbmx5ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5ncmlkID4gLmRvdWJsaW5nLnJvdyxcbiAgLnVpLmRvdWJsaW5nLmdyaWQgPiAucm93IHtcbiAgICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDBlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLmRvdWJsaW5nLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGFja2FibGUuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5ncmlkID4gLnJvdyA+IC53aWRlLmNvbHVtbixcbiAgLnVpLnN0YWNrYWJsZS5ncmlkID4gLndpZGUuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAuY29sdW1uLmdyaWQgPiAuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAuY29sdW1uLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiAuc3RhY2thYmxlLnN0YWNrYWJsZS5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMGVtIDBlbSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUuZ3JpZDpub3QoLnZlcnRpY2FsbHkpID4gLnJvdyB7XG4gICAgbWFyZ2luOiAwZW07XG4gICAgcGFkZGluZzogMGVtO1xuICB9XG4gIC8qIENvdXBsaW5nICovXG4gIC51aS5jb250YWluZXIgPiAudWkuc3RhY2thYmxlLmdyaWQgPiAuY29sdW1uLFxuICAudWkuY29udGFpbmVyID4gLnVpLnN0YWNrYWJsZS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLyogRG9uJ3QgcGFkIGluc2lkZSBzZWdtZW50IG9yIG5lc3RlZCBncmlkICovXG4gIC51aS5ncmlkIC51aS5zdGFja2FibGUuZ3JpZCxcbiAgLnVpLnNlZ21lbnQ6bm90KC52ZXJ0aWNhbCkgLnVpLnN0YWNrYWJsZS5wYWdlLmdyaWQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLyogRGl2aWRlZCBTdGFja2FibGUgKi9cbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgLnVpLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpOmZpcnN0LWNoaWxkLFxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuaW52ZXJ0ZWQuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5pbnZlcnRlZC5zdGFja2FibGUuZGl2aWRlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5pbnZlcnRlZC5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpLmludmVydGVkLnN0YWNrYWJsZS5kaXZpZGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgfVxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5zdGFja2FibGUuZGl2aWRlZDpub3QoLnZlcnRpY2FsbHkpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQ6bm90KC52ZXJ0aWNhbGx5KS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMnJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5yb3cge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQ6bm90KC52ZXJ0aWNhbGx5KS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5zdGFja2FibGUuZGl2aWRlZDpub3QoLnZlcnRpY2FsbHkpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE9ubHkgKERldmljZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoZXNlIGluY2x1ZGUgYXJiaXRyYXJ5IGNsYXNzIHJlcGV0aXRpb25zIGZvciBmb3JjZWQgc3BlY2lmaWNpdHkgKi9cbi8qIE1vYmlsZSBPbmx5IEhpZGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogVGFibGV0IE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5yb3c6bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCgudGFibGV0KSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC50YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5yb3c6bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5jb2x1bW46bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0uY29sdW1uOm5vdCgudGFibGV0KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIENvbXB1dGVyIE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudWlbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0ucm93Om5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIExhcmdlIFNjcmVlbiBPbmx5IEhpZGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTkxOXB4KSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFdpZGVzY3JlZW4gT25seSBIaWRlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWlbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0ucm93Om5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcbiAqICMgU2VtYW50aWMgLSBNZW51XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIENvcHlyaWdodCAyMDE1IENvbnRyaWJ1dG9yXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNZW51XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDb2xsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNZW51ICovXG4vKiBNZW51IEl0ZW0gKi9cbi8qIERpdmlkZXIgKi9cbi8qIFN1YiBNZW51ICovXG4vKiBUZXh0IEl0ZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIERyb3Bkb3duIEljb24gKi9cbi8qIEhlYWRlciAqL1xuLyogVmVydGljYWwgSWNvbiAqL1xuLyogVmVydGljYWwgSGVhZGVyICovXG4vKiBQb2ludGluZyBBcnJvdyAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJ1dHRvbiAqL1xuLyogSW5wdXQgKi9cbi8qIEltYWdlICovXG4vKiBMYWJlbCAqL1xuLyogRHJvcGRvd24gaW4gTWVudSAqL1xuLyogRHJvcGRvd24gVmFyaWF0aW9ucyAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlcmVkIEl0ZW0gKi9cbi8qIFByZXNzZWQgSXRlbSAqL1xuLyogQWN0aXZlIEl0ZW0gKi9cbi8qIEFjdGl2ZSBIb3ZlcmVkIEl0ZW0gKi9cbi8qIFNlbGVjdGVkIERyb3Bkb3duICovXG4vKiBBY3RpdmUgRHJvcGRvd24gKi9cbi8qIEFjdGl2ZSBTdWIgTWVudSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZlcnRpY2FsICovXG4vKiBTZWNvbmRhcnkgKi9cbi8qIFBvaW50aW5nICovXG4vKiBJbnZlcnRlZCBTZWNvbmRhcnkgKi9cbi8qIEludmVydGVkIFBvaW50aW5nICovXG4vKiBUaWVyZWQgKi9cbi8qIEljb24gKi9cbi8qIFRhYnVsYXIgKi9cbi8qIFBhZ2luYXRpb24gKi9cbi8qIExhYmVsZWQgSWNvbiAqL1xuLyogVGV4dCAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKiBJbnZlcnRlZCBTdWIgTWVudSAqL1xuLyogSW52ZXJ0ZWQgSG92ZXIgKi9cbi8qIFByZXNzZWQgKi9cbi8qIEludmVydGVkIEFjdGl2ZSAqL1xuLyogSW52ZXJ0ZWQgQWN0aXZlIEhvdmVyICAqL1xuLyogSW52ZXJ0ZWQgTWVudSBEaXZpZGVyICovXG4vKiBJbnZlcnRlZCBDb2xvcmVkICovXG4vKiBGaXhlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIFJlc2l6ZSBsYXJnZSBzaXplcyAqL1xuLyogU2l6ZXMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1lbnVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIENvbGxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgKi9cbi8qIE1lbnUgSXRlbSAqL1xuLyogRGl2aWRlciAqL1xuLyogU3ViIE1lbnUgKi9cbi8qIFRleHQgSXRlbSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogRHJvcGRvd24gSWNvbiAqL1xuLyogSGVhZGVyICovXG4vKiBWZXJ0aWNhbCBJY29uICovXG4vKiBWZXJ0aWNhbCBIZWFkZXIgKi9cbi8qIFBvaW50aW5nIEFycm93ICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQnV0dG9uICovXG4vKiBJbnB1dCAqL1xuLyogSW1hZ2UgKi9cbi8qIExhYmVsICovXG4vKiBEcm9wZG93biBpbiBNZW51ICovXG4vKiBEcm9wZG93biBWYXJpYXRpb25zICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyZWQgSXRlbSAqL1xuLyogUHJlc3NlZCBJdGVtICovXG4vKiBBY3RpdmUgSXRlbSAqL1xuLyogQWN0aXZlIEhvdmVyZWQgSXRlbSAqL1xuLyogU2VsZWN0ZWQgRHJvcGRvd24gKi9cbi8qIEFjdGl2ZSBEcm9wZG93biAqL1xuLyogQWN0aXZlIFN1YiBNZW51ICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgKi9cbi8qIFNlY29uZGFyeSAqL1xuLyogUG9pbnRpbmcgKi9cbi8qIEludmVydGVkIFNlY29uZGFyeSAqL1xuLyogSW52ZXJ0ZWQgUG9pbnRpbmcgKi9cbi8qIFRpZXJlZCAqL1xuLyogSWNvbiAqL1xuLyogVGFidWxhciAqL1xuLyogUGFnaW5hdGlvbiAqL1xuLyogTGFiZWxlZCBJY29uICovXG4vKiBUZXh0ICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEludmVydGVkIFN1YiBNZW51ICovXG4vKiBJbnZlcnRlZCBIb3ZlciAqL1xuLyogUHJlc3NlZCAqL1xuLyogSW52ZXJ0ZWQgQWN0aXZlICovXG4vKiBJbnZlcnRlZCBBY3RpdmUgSG92ZXIgICovXG4vKiBJbnZlcnRlZCBNZW51IERpdmlkZXIgKi9cbi8qIEludmVydGVkIENvbG9yZWQgKi9cbi8qIEZpeGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBBdHRhY2hlZCAqL1xuLyogUmVzaXplIGxhcmdlIHNpemVzICovXG4vKiBTaXplcyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCBBY3RpdmUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGFuZGFyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1lbnVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMXJlbSAwZW07XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgbWluLWhlaWdodDogMi44NTcxNDI4NmVtO1xufVxuLnVpLm1lbnU6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLm1lbnU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwcmVtO1xufVxuLnVpLm1lbnU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU3ViLU1lbnVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAubWVudSB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgPiAubWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJdGVtXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLml0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnVpLm1lbnUgLml0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMC45Mjg1NzE0M2VtIDEuMTQyODU3MTRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBweCAwcHggMC4yMTQyODU3MXJlbTtcbn1cbi8qIEJvcmRlciAqL1xuLnVpLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgcmlnaHQ6IDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIFRleHQgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC50ZXh0Lml0ZW0gPiAqLFxuLnVpLm1lbnUgLml0ZW0gPiBhOm5vdCgudWkpLFxuLnVpLm1lbnUgLml0ZW0gPiBwOm9ubHktY2hpbGQge1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi51aS5tZW51IC5pdGVtID4gcDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4udWkubWVudSAuaXRlbSA+IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5pdGVtID4gaS5pY29uIHtcbiAgb3BhY2l0eTogMC45O1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luOiAwZW0gMC4zNTcxNDI4NmVtIDBlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5pdGVtID4gLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwZW07XG4gIG1hcmdpbjogLTAuNWVtIDBlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNzg1NzE0MjllbTtcbiAgcGFkZGluZy10b3A6IDAuNzg1NzE0MjllbTtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS1cbiBHcmlkIC8gQ29udGFpbmVyXG4tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSA+IC5ncmlkLFxuLnVpLm1lbnUgPiAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGluaGVyaXQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBpbmhlcml0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuaXRlbSA+IC5pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLml0ZW0gPiAuaW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMGVtO1xuICBtYXJnaW46IC0wLjVlbSAwZW07XG59XG4udWkubWVudSAuaXRlbSA+IC5pbnB1dCBpbnB1dCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nLXRvcDogMC41NzE0Mjg1N2VtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41NzE0Mjg1N2VtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIZWFkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuaGVhZGVyLml0ZW0sXG4udWkudmVydGljYWwubWVudSAuaGVhZGVyLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgYmFja2dyb3VuZDogJyc7XG4gIHRleHQtdHJhbnNmb3JtOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAuaGVhZGVyOm5vdCgudWkpIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuNWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRHJvcGRvd25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRHJvcGRvd24gSWNvbiAqL1xuLnVpLm1lbnUgLml0ZW0gPiBpLmRyb3Bkb3duLmljb24ge1xuICBwYWRkaW5nOiAwZW07XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG59XG4vKiBNZW51ICovXG4udWkubWVudSAuZHJvcGRvd24uaXRlbSAubWVudSB7XG4gIG1pbi13aWR0aDogY2FsYyg5OSUpO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgbWFyZ2luOiAwZW0gMHB4IDBweDtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbn1cbi8qIE1lbnUgSXRlbXMgKi9cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5ZW0gMS4xNDI4NTcxNGVtICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5zZWxlY3RlZC5pdGVtIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duLml0ZW0gLm1lbnUgLml0ZW06bm90KC5maWx0ZXJlZCkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIC5pY29uOm5vdCguZHJvcGRvd24pIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luOiAwZW0gMC43NWVtIDBlbSAwZW0gIWltcG9ydGFudDtcbn1cbi8qIFNlY29uZGFyeSAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5kcm9wZG93bi5pdGVtID4gLm1lbnUsXG4udWkudGV4dC5tZW51IC5kcm9wZG93bi5pdGVtID4gLm1lbnUge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBtYXJnaW4tdG9wOiAwLjM1NzE0Mjg2ZW07XG59XG4vKiBQb2ludGluZyAqL1xuLnVpLm1lbnUgLnBvaW50aW5nLmRyb3Bkb3duLml0ZW0gLm1lbnUge1xuICBtYXJnaW4tdG9wOiAwLjc1ZW07XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLm1lbnUgLnNlYXJjaC5kcm9wZG93bi5pdGVtID4gLnNlYXJjaCxcbi51aS5pbnZlcnRlZC5tZW51IC5zZWFyY2guZHJvcGRvd24uaXRlbSA+IC50ZXh0IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi8qIFZlcnRpY2FsICovXG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uaXRlbSA+IC5pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb250ZW50OiBcIlxcZjBkYVwiO1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLml0ZW0gLm1lbnUge1xuICBsZWZ0OiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtLnVwd2FyZCAubWVudSB7XG4gIGJvdHRvbTogMDtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtOm5vdCgudXB3YXJkKSAubWVudSB7XG4gIHRvcDogMDtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5hY3RpdmUuZHJvcGRvd24uaXRlbSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwZW07XG59XG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uYWN0aXZlLml0ZW0ge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogRXZlbmx5IERpdmlkZWQgKi9cbi51aS5pdGVtLm1lbnUgLmRyb3Bkb3duIC5tZW51IC5pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5pdGVtID4gLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogIzk5OTk5OTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIHBhZGRpbmc6IDAuM2VtIDAuNzg1NzE0MjllbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogIzk5OTk5OTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIG1hcmdpbi10b3A6IC0wLjE1ZW07XG4gIG1hcmdpbi1ib3R0b206IC0wLjE1ZW07XG4gIHBhZGRpbmc6IDAuM2VtIDAuNzg1NzE0MjllbTtcbn1cbi51aS5tZW51IC5pdGVtID4gLmZsb2F0aW5nLmxhYmVsIHtcbiAgcGFkZGluZzogMC4zZW0gMC43ODU3MTQyOWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbWFnZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuaXRlbSA+IGltZzpub3QoLnVpKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAtMC4zZW0gMGVtO1xuICB3aWR0aDogMi41ZW07XG59XG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IGltZzpub3QoLnVpKTpvbmx5LWNoaWxkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBMaXN0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSBkaXZpZGVyIHNob3VsZG50IGFwcGx5ICovXG4udWkubWVudSAubGlzdCAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpZGViYXJcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaG93IHZlcnRpY2FsIGRpdmlkZXJzIGJlbG93IGxhc3QgKi9cbi51aS52ZXJ0aWNhbC5zaWRlYmFyLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuLnVpLnZlcnRpY2FsLnNpZGViYXIubWVudSA+IC5pdGVtOjpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvbnRhaW5lclxuLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLm1lbnUgPiAudWkuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5tZW51Om5vdCguc2Vjb25kYXJ5KTpub3QoLnRleHQpOm5vdCgudGFidWxhcik6bm90KC5ib3JkZXJsZXNzKSA+IC5jb250YWluZXIgPiAuaXRlbTpub3QoLnJpZ2h0KTpub3QoLmJvcmRlcmxlc3MpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5saW5rLm1lbnUgLml0ZW06aG92ZXIsXG4udWkubWVudSAuZHJvcGRvd24uaXRlbTpob3Zlcixcbi51aS5tZW51IC5saW5rLml0ZW06aG92ZXIsXG4udWkubWVudSBhLml0ZW06aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQcmVzc2VkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxpbmsubWVudSAuaXRlbTphY3RpdmUsXG4udWkubWVudSAubGluay5pdGVtOmFjdGl2ZSxcbi51aS5tZW51IGEuaXRlbTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkubWVudSAuYWN0aXZlLml0ZW0gPiBpLmljb24ge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBBY3RpdmUgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuYWN0aXZlLml0ZW06aG92ZXIsXG4udWkudmVydGljYWwubWVudSAuYWN0aXZlLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuaXRlbS5kaXNhYmxlZCxcbi51aS5tZW51IC5pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDQwLCA0MCwgNDAsIDAuMykgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuRmxvYXRlZCBNZW51IC8gSXRlbVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWZ0IEZsb2F0ZWQgKi9cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5sZWZ0Lml0ZW0sXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSA6bm90KC5kcm9wZG93bikgPiAubGVmdC5tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4vKiBSaWdodCBGbG9hdGVkICovXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAucmlnaHQuaXRlbSxcbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5yaWdodC5tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi8qIFN3YXBwZWQgQm9yZGVycyAqL1xuLnVpLm1lbnUgLnJpZ2h0Lml0ZW06OmJlZm9yZSxcbi51aS5tZW51IC5yaWdodC5tZW51ID4gLml0ZW06OmJlZm9yZSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFZlcnRpY2FsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyotLS0gSXRlbSAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwcHggMHB4O1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4IDBweCAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4vKi0tLSBMYWJlbCAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubGFiZWwge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qLS0tIEljb24gLS0tKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gaS5pY29uIHtcbiAgd2lkdGg6IDEuMThlbTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNWVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubGFiZWwgKyBpLmljb24ge1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbn1cbi8qLS0tIEJvcmRlciAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tIFN1YiBNZW51IC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IC5tZW51IHtcbiAgbWFyZ2luOiAwLjVlbSAtMS4xNDI4NTcxNGVtIDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMC41ZW0gMS4zMzMzMzMzM2VtO1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtIC5tZW51IGEuaXRlbTpob3Zlcixcbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtIC5tZW51IC5saW5rLml0ZW06aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBWZXJ0aWNhbCBBY3RpdmUgKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLmFjdGl2ZS5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWkudmVydGljYWwubWVudSA+IC5hY3RpdmUuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWkudmVydGljYWwubWVudSA+IC5hY3RpdmUuaXRlbTpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5hY3RpdmUuaXRlbSAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtIC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFRhYnVsYXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFidWxhci5tZW51IHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkudGFidWxhci5mbHVpZC5tZW51IHtcbiAgd2lkdGg6IGNhbGMoMTAyJSkgIWltcG9ydGFudDtcbn1cbi51aS50YWJ1bGFyLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMC45Mjg1NzE0M2VtIDEuNDI4NTcxNDNlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkudGFidWxhci5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnRhYnVsYXIubWVudSAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogQWN0aXZlICovXG4udWkudGFidWxhci5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjRDRENEQ1O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBweCAwcHggIWltcG9ydGFudDtcbn1cbi8qIENvdXBsaW5nIHdpdGggc2VnbWVudCBmb3IgYXR0YWNobWVudCAqL1xuLnVpLnRhYnVsYXIubWVudSArIC5hdHRhY2hlZDpub3QoLnRvcCkuc2VnbWVudCxcbi51aS50YWJ1bGFyLm1lbnUgKyAuYXR0YWNoZWQ6bm90KC50b3ApLnNlZ21lbnQgKyAuYXR0YWNoZWQ6bm90KC50b3ApLnNlZ21lbnQge1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIG1hcmdpbi1yaWdodDogMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbi50b3AuYXR0YWNoZWQuc2VnbWVudCArIC51aS5ib3R0b20udGFidWxhci5tZW51IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogY2FsYygxMDIlKTtcbiAgbGVmdDogLTFweDtcbn1cbi8qIEJvdHRvbSBWZXJ0aWNhbCBUYWJ1bGFyICovXG4udWkuYm90dG9tLnRhYnVsYXIubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS5ib3R0b20udGFidWxhci5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5ib3R0b20udGFidWxhci5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1jb2xvcjogI0Q0RDRENTtcbiAgbWFyZ2luOiAtMXB4IDBweCAwcHggMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHggMHB4IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xufVxuLyogVmVydGljYWwgVGFidWxhciAoTGVmdCkgKi9cbi51aS52ZXJ0aWNhbC50YWJ1bGFyLm1lbnUge1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS52ZXJ0aWNhbC50YWJ1bGFyLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLnRhYnVsYXIubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3JkZXItY29sb3I6ICNENEQ0RDU7XG4gIG1hcmdpbjogMHB4IC0xcHggMHB4IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwcHggMHB4IDAuMjE0Mjg1NzFyZW0gIWltcG9ydGFudDtcbn1cbi8qIFZlcnRpY2FsIFJpZ2h0IFRhYnVsYXIgKi9cbi51aS52ZXJ0aWNhbC5yaWdodC50YWJ1bGFyLm1lbnUge1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkudmVydGljYWwucmlnaHQudGFidWxhci5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5yaWdodC50YWJ1bGFyLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLWNvbG9yOiAjRDRENEQ1O1xuICBtYXJnaW46IDBweCAwcHggMHB4IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMHB4ICFpbXBvcnRhbnQ7XG59XG4vKiBEcm9wZG93biAqL1xuLnVpLnRhYnVsYXIubWVudSAuYWN0aXZlLmRyb3Bkb3duLml0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBQYWdpbmF0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBhZ2luYXRpb24ubWVudSB7XG4gIG1hcmdpbjogMGVtO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5wYWdpbmF0aW9uLm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xufVxuLnVpLmNvbXBhY3QubWVudSAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW07XG59XG4udWkucGFnaW5hdGlvbi5tZW51IC5pdGVtOmxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5wYWdpbmF0aW9uLm1lbnUgLml0ZW0ge1xuICBtaW4td2lkdGg6IDNlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLnBhZ2luYXRpb24ubWVudSAuaWNvbi5pdGVtIGkuaWNvbiB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5wYWdpbmF0aW9uLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgcGFkZGluZy10b3A6IDAuOTI4NTcxNDNlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTZWNvbmRhcnlcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2Vjb25kYXJ5Lm1lbnUge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTAuMzU3MTQyODZlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC4zNTcxNDI4NmVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEl0ZW0gKi9cbi51aS5zZWNvbmRhcnkubWVudSAuaXRlbSB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5ZW0gMC45Mjg1NzE0M2VtO1xuICBtYXJnaW46IDBlbSAwLjM1NzE0Mjg2ZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi8qIE5vIERpdmlkZXIgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuaXRlbTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBIZWFkZXIgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuaGVhZGVyLml0ZW0ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcbn1cbi8qIEltYWdlICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLml0ZW0gPiBpbWc6bm90KC51aSkge1xuICBtYXJnaW46IDBlbTtcbn1cbi8qIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmRyb3Bkb3duLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkubWVudSBhLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLyogQWN0aXZlIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5saW5rLml0ZW0sXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgYS5pdGVtIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5saW5rLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLyogRml4IGl0ZW0gbWFyZ2lucyAqL1xuLnVpLnNlY29uZGFyeS5pdGVtLm1lbnUge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aS5zZWNvbmRhcnkuaXRlbS5tZW51IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aS5zZWNvbmRhcnkuYXR0YWNoZWQubWVudSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBTdWIgTWVudSAqL1xuLnVpLnZlcnRpY2FsLnNlY29uZGFyeS5tZW51IC5pdGVtOm5vdCguZHJvcGRvd24pID4gLm1lbnUge1xuICBtYXJnaW46IDBlbSAtMC45Mjg1NzE0M2VtO1xufVxuLnVpLnZlcnRpY2FsLnNlY29uZGFyeS5tZW51IC5pdGVtOm5vdCguZHJvcGRvd24pID4gLm1lbnUgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAxLjMzMzMzMzMzZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2Vjb25kYXJ5IFZlcnRpY2FsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2Vjb25kYXJ5LnZlcnRpY2FsLm1lbnUgPiAuaXRlbSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuMzU3MTQyODZlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS52ZXJ0aWNhbC5tZW51ID4gLmhlYWRlci5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5zZWNvbmRhcnkubWVudSAuaXRlbSA+IC5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2Vjb25kYXJ5IFBvaW50aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLml0ZW0ge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIG1hcmdpbjogMGVtIDBlbSAtMnB4O1xuICBwYWRkaW5nOiAwLjg1NzE0Mjg2ZW0gMS4xNDI4NTcxNGVtO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIEl0ZW0gVHlwZXMgKi9cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuaGVhZGVyLml0ZW0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KSAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC50ZXh0Lml0ZW0ge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLml0ZW06YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogSG92ZXIgKi9cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuZHJvcGRvd24uaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIFByZXNzZWQgKi9cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuZHJvcGRvd24uaXRlbTphY3RpdmUsXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLmxpbmsuaXRlbTphY3RpdmUsXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgYS5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjMUIxQzFEO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBBY3RpdmUgSG92ZXIgKi9cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXIge1xuICBib3JkZXItY29sb3I6ICMxQjFDMUQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogQWN0aXZlIERyb3Bkb3duICovXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5kcm9wZG93bi5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qIFZlcnRpY2FsIFBvaW50aW5nICovXG4udWkuc2Vjb25kYXJ5LnZlcnRpY2FsLnBvaW50aW5nLm1lbnUge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2Vjb25kYXJ5LnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLml0ZW0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gLTJweCAwZW0gMGVtO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDJweDtcbn1cbi8qIFZlcnRpY2FsIEFjdGl2ZSAqL1xuLnVpLnNlY29uZGFyeS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzFCMUMxRDtcbn1cbi8qIEludmVydGVkICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlci13aWR0aDogMnB4O1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLml0ZW0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IC5saW5rLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNGRkZGRkY7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFRleHQgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50ZXh0Lm1lbnUge1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAxZW0gLTAuNWVtO1xufVxuLnVpLnRleHQubWVudSAuaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBtYXJnaW46IDBlbSAwZW07XG4gIHBhZGRpbmc6IDAuMzU3MTQyODZlbSAwLjVlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4vKiBCb3JkZXIgKi9cbi51aS50ZXh0Lm1lbnUgLml0ZW06YmVmb3JlLFxuLnVpLnRleHQubWVudSAubWVudSAuaXRlbTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBIZWFkZXIgKi9cbi51aS50ZXh0Lm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKiBJbWFnZSAqL1xuLnVpLnRleHQubWVudSAuaXRlbSA+IGltZzpub3QoLnVpKSB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyotLS0gZmx1aWQgdGV4dCAtLS0qL1xuLnVpLnRleHQuaXRlbS5tZW51IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLSB2ZXJ0aWNhbCB0ZXh0IC0tLSovXG4udWkudmVydGljYWwudGV4dC5tZW51IHtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDByZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcmVtO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudSAuaXRlbSB7XG4gIG1hcmdpbjogMC41NzE0Mjg1N2VtIDBlbTtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG4gIHBhZGRpbmctcmlnaHQ6IDBlbTtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUgLml0ZW0gPiBpLmljb24ge1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luOiAwZW0gMC4zNTcxNDI4NmVtIDBlbSAwZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIG1hcmdpbjogMC41NzE0Mjg1N2VtIDBlbSAwLjcxNDI4NTcxZW07XG59XG4vKiBWZXJ0aWNhbCBTdWIgTWVudSAqL1xuLnVpLnZlcnRpY2FsLnRleHQubWVudSAuaXRlbTpub3QoLmRyb3Bkb3duKSA+IC5tZW51IHtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51IC5pdGVtOm5vdCguZHJvcGRvd24pID4gLm1lbnUgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAwZW07XG59XG4vKi0tLSBob3ZlciAtLS0qL1xuLnVpLnRleHQubWVudSAuaXRlbTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyotLS0gYWN0aXZlIC0tLSovXG4udWkudGV4dC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0gYWN0aXZlIGhvdmVyIC0tLSovXG4udWkudGV4dC5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyogRGlzYWJsZSBCYXJpYXRpb25zICovXG4udWkudGV4dC5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGV4dC5hdHRhY2hlZC5tZW51IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQudGV4dC5tZW51LFxuLnVpLmludmVydGVkLnRleHQubWVudSAuaXRlbSxcbi51aS5pbnZlcnRlZC50ZXh0Lm1lbnUgLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGV4dC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBGbHVpZCAqL1xuLnVpLmZsdWlkLnRleHQubWVudSB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEljb24gT25seVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZlcnRpY2FsIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5pY29uLm1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyogSXRlbSAqL1xuLnVpLmljb24ubWVudSAuaXRlbSB7XG4gIGhlaWdodDogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzFCMUMxRDtcbn1cbi8qIEljb24gKi9cbi51aS5pY29uLm1lbnUgLml0ZW0gPiAuaWNvbjpub3QoLmRyb3Bkb3duKSB7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMTtcbn1cbi8qIEljb24gR3lscGggKi9cbi51aS5pY29uLm1lbnUgLmljb246YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qICh4KSBJdGVtIEljb24gKi9cbi51aS5tZW51IC5pY29uLml0ZW0gPiAuaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbSBhdXRvO1xufVxuLyogVmVydGljYWwgSWNvbiAqL1xuLnVpLnZlcnRpY2FsLmljb24ubWVudSAuaXRlbSA+IC5pY29uOm5vdCguZHJvcGRvd24pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbjogMGVtIGF1dG87XG4gIGZsb2F0OiBub25lO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5pY29uLm1lbnUgLml0ZW0ge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIExhYmVsZWQgSWNvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgKi9cbi51aS5sYWJlbGVkLmljb24ubWVudSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qIEl0ZW0gKi9cbi51aS5sYWJlbGVkLmljb24ubWVudSAuaXRlbSB7XG4gIG1pbi13aWR0aDogNmVtO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLyogSWNvbiAqL1xuLnVpLmxhYmVsZWQuaWNvbi5tZW51IC5pdGVtID4gLmljb246bm90KC5kcm9wZG93bikge1xuICBoZWlnaHQ6IDFlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MWVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIGF1dG8gMC41cmVtICFpbXBvcnRhbnQ7XG59XG4vKiBGbHVpZCAqL1xuLnVpLmZsdWlkLmxhYmVsZWQuaWNvbi5tZW51ID4gLml0ZW0ge1xuICBtaW4td2lkdGg6IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc3RhY2thYmxlLm1lbnUge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5pdGVtIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUubWVudSAuaXRlbTpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiAnJztcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgfVxuICAudWkuc3RhY2thYmxlLm1lbnUgLmxlZnQubWVudSxcbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5sZWZ0Lml0ZW0ge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUubWVudSAucmlnaHQubWVudSxcbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5yaWdodC5pdGVtIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUubWVudSAucmlnaHQubWVudSxcbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5sZWZ0Lm1lbnUge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gU3RhbmRhcmQgQ29sb3JzICAtLS0qL1xuLnVpLm1lbnUgLnJlZC5hY3RpdmUuaXRlbSxcbi51aS5yZWQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5vcmFuZ2UuYWN0aXZlLml0ZW0sXG4udWkub3JhbmdlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAueWVsbG93LmFjdGl2ZS5pdGVtLFxuLnVpLnllbGxvdy5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLm9saXZlLmFjdGl2ZS5pdGVtLFxuLnVpLm9saXZlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAuZ3JlZW4uYWN0aXZlLml0ZW0sXG4udWkuZ3JlZW4ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC50ZWFsLmFjdGl2ZS5pdGVtLFxuLnVpLnRlYWwubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5ibHVlLmFjdGl2ZS5pdGVtLFxuLnVpLmJsdWUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC52aW9sZXQuYWN0aXZlLml0ZW0sXG4udWkudmlvbGV0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAucHVycGxlLmFjdGl2ZS5pdGVtLFxuLnVpLnB1cnBsZS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnBpbmsuYWN0aXZlLml0ZW0sXG4udWkucGluay5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLmJyb3duLmFjdGl2ZS5pdGVtLFxuLnVpLmJyb3duLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAuZ3JleS5hY3RpdmUuaXRlbSxcbi51aS5ncmV5Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQubWVudSB7XG4gIGJvcmRlcjogMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogTWVudSBJdGVtICovXG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbSxcbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtID4gYTpub3QoLnVpKSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmludmVydGVkLm1lbnUgLml0ZW0ubWVudSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLyotLS0gQm9yZGVyIC0tLSovXG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn1cbi8qIFN1YiBNZW51ICovXG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAubWVudSAuaXRlbSxcbi51aS52ZXJ0aWNhbC5pbnZlcnRlZC5tZW51IC5tZW51IC5pdGVtIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLyogSGVhZGVyICovXG4udWkuaW52ZXJ0ZWQubWVudSAuaGVhZGVyLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBEaXNhYmxlZCAqL1xuLnVpLmludmVydGVkLm1lbnUgLml0ZW0uZGlzYWJsZWQsXG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbS5kaXNhYmxlZDpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDIyNSwgMjI1LCAyMjUsIDAuMyk7XG59XG4vKi0tLSBIb3ZlciAtLS0qL1xuLnVpLmxpbmsuaW52ZXJ0ZWQubWVudSAuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLml0ZW0gLm1lbnUgYS5pdGVtOmhvdmVyLFxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLml0ZW0gLm1lbnUgLmxpbmsuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qLS0tIFByZXNzZWQgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IGEuaXRlbTphY3RpdmUsXG4udWkuaW52ZXJ0ZWQubWVudSAubGluay5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0gQWN0aXZlIC0tLSovXG4udWkuaW52ZXJ0ZWQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzI4NjA4RSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0gQWN0aXZlIEhvdmVyIC0tLSovXG4udWkuaW52ZXJ0ZWQubWVudSAuYWN0aXZlLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzI4NjA4RSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0ZWQubWVudSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDByZW0gMC41cmVtIDByZW0gMHJlbTtcbn1cbi51aS5mbG9hdGVkLm1lbnUgLml0ZW06bGFzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnJpZ2h0LmZsb2F0ZWQubWVudSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwcmVtIDByZW0gMHJlbSAwLjVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWQgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5yZWQuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQucmVkLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4O1xufVxuLnVpLmludmVydGVkLnJlZC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5yZWQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLmludmVydGVkLm1lbnUgLm9yYW5nZS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMjcxMUM7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogWWVsbG93ICovXG4udWkuaW52ZXJ0ZWQubWVudSAueWVsbG93LmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnllbGxvdy5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwODtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBPbGl2ZSAqL1xuLnVpLmludmVydGVkLm1lbnUgLm9saXZlLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLm9saXZlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4O1xufVxuLnVpLmludmVydGVkLm9saXZlLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLm9saXZlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBHcmVlbiAqL1xuLnVpLmludmVydGVkLm1lbnUgLmdyZWVuLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLmdyZWVuLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFCQTQ1O1xufVxuLnVpLmludmVydGVkLmdyZWVuLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLmdyZWVuLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBUZWFsICovXG4udWkuaW52ZXJ0ZWQubWVudSAudGVhbC5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC50ZWFsLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEO1xufVxuLnVpLmludmVydGVkLnRlYWwubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogQmx1ZSAqL1xuLnVpLmludmVydGVkLm1lbnUgLmJsdWUuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJDNkE5RTtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLmJsdWUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLmludmVydGVkLm1lbnUgLnZpb2xldC5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC52aW9sZXQubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1Qzk7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0Lm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogUHVycGxlICovXG4udWkuaW52ZXJ0ZWQubWVudSAucHVycGxlLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnB1cnBsZS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDODtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBQaW5rICovXG4udWkuaW52ZXJ0ZWQubWVudSAucGluay5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5waW5rLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3O1xufVxuLnVpLmludmVydGVkLnBpbmsubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQucGluay5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogQnJvd24gKi9cbi51aS5pbnZlcnRlZC5tZW51IC5icm93bi5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5icm93bi5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRjtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogR3JleSAqL1xuLnVpLmludmVydGVkLm1lbnUgLmdyZXkuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQuZ3JleS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3Njtcbn1cbi51aS5pbnZlcnRlZC5ncmV5Lm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLmdyZXkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpdHRlZC5tZW51IC5pdGVtLFxuLnVpLmZpdHRlZC5tZW51IC5pdGVtIC5tZW51IC5pdGVtLFxuLnVpLm1lbnUgLmZpdHRlZC5pdGVtIHtcbiAgcGFkZGluZzogMGVtO1xufVxuLnVpLmhvcml6b250YWxseS5maXR0ZWQubWVudSAuaXRlbSxcbi51aS5ob3Jpem9udGFsbHkuZml0dGVkLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW0sXG4udWkubWVudSAuaG9yaXpvbnRhbGx5LmZpdHRlZC5pdGVtIHtcbiAgcGFkZGluZy10b3A6IDAuOTI4NTcxNDNlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuOTI4NTcxNDNlbTtcbn1cbi51aS52ZXJ0aWNhbGx5LmZpdHRlZC5tZW51IC5pdGVtLFxuLnVpLnZlcnRpY2FsbHkuZml0dGVkLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW0sXG4udWkubWVudSAudmVydGljYWxseS5maXR0ZWQuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMS4xNDI4NTcxNGVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjE0Mjg1NzE0ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBCb3JkZXJsZXNzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJvcmRlcmxlc3MubWVudSAuaXRlbTpiZWZvcmUsXG4udWkuYm9yZGVybGVzcy5tZW51IC5pdGVtIC5tZW51IC5pdGVtOmJlZm9yZSxcbi51aS5tZW51IC5ib3JkZXJsZXNzLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29tcGFjdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbXBhY3QubWVudSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW46IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5jb21wYWN0LnZlcnRpY2FsLm1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWkuY29tcGFjdC5tZW51IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi51aS5jb21wYWN0Lm1lbnUgLml0ZW06bGFzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLmNvbXBhY3QudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG59XG4udWkuY29tcGFjdC52ZXJ0aWNhbC5tZW51IC5pdGVtOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudS5mbHVpZCxcbi51aS52ZXJ0aWNhbC5tZW51LmZsdWlkIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRXZlbmx5IFNpemVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbS5tZW51LFxuLnVpLml0ZW0ubWVudSAuaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnVpLmF0dGFjaGVkLml0ZW0ubWVudSB7XG4gIG1hcmdpbjogMGVtIC0xcHggIWltcG9ydGFudDtcbn1cbi51aS5pdGVtLm1lbnUgLml0ZW06bGFzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLm1lbnUudHdvLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLm1lbnUudGhyZWUuaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAzMy4zMzMlO1xufVxuLnVpLm1lbnUuZm91ci5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS5tZW51LmZpdmUuaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWkubWVudS5zaXguaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAxNi42NjYlO1xufVxuLnVpLm1lbnUuc2V2ZW4uaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAxNC4yODUlO1xufVxuLnVpLm1lbnUuZWlnaHQuaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAxMi41MDAlO1xufVxuLnVpLm1lbnUubmluZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDExLjExJTtcbn1cbi51aS5tZW51LnRlbi5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDEwLjAlO1xufVxuLnVpLm1lbnUuZWxldmVuLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogOS4wOSU7XG59XG4udWkubWVudS50d2VsdmUuaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiA4LjMzMyU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZpeGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMTtcbiAgbWFyZ2luOiAwZW07XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLm1lbnUuZml4ZWQsXG4udWkubWVudS5maXhlZCAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5tZW51LmZpeGVkIC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbn1cbi51aS5maXhlZC5tZW51LFxuLnVpW2NsYXNzKj1cInRvcCBmaXhlZFwiXS5tZW51IHtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbn1cbi51aVtjbGFzcyo9XCJ0b3AgZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIGxlZnQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMTAwJTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvdHRvbTogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG4udWlbY2xhc3MqPVwibGVmdCBmaXhlZFwiXS5tZW51IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4vKiBDb3VwbGluZyB3aXRoIEdyaWQgKi9cbi51aS5maXhlZC5tZW51ICsgLnVpLmdyaWQge1xuICBwYWRkaW5nLXRvcDogMi43NXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBvaW50aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucG9pbnRpbmcubWVudSAuaXRlbTphZnRlciB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbjogMC41cHggMGVtIDBlbTtcbiAgd2lkdGg6IDAuNTcxNDI4NTdlbTtcbiAgaGVpZ2h0OiAwLjU3MTQyODU3ZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNENEQ0RDU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNENEQ0RDU7XG4gIHotaW5kZXg6IDI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlO1xufVxuLnVpLnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLml0ZW06YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICBtYXJnaW46IDBlbSAtMC41cHggMGVtIDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0Q0RDRENTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuZHJvcGRvd24uaXRlbTphZnRlciB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIERvbid0IGRvdWJsZSB1cCBwb2ludGVycyAqL1xuLnVpLnBvaW50aW5nLm1lbnUgLmRyb3Bkb3duLmFjdGl2ZS5pdGVtOmFmdGVyLFxuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtIC5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBDb2xvcnMgKi9cbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTpob3ZlcjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7XG59XG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xufVxuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbn1cbi51aS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTpob3ZlcjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7XG59XG4udWkudmVydGljYWwucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xufVxuLnVpLnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pZGRsZSAqL1xuLnVpLmF0dGFjaGVkLm1lbnUge1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luOiAwZW0gLTFweDtcbiAgd2lkdGg6IGNhbGMoMTAyJSk7XG4gIG1heC13aWR0aDogY2FsYygxMDIlKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5hdHRhY2hlZCArIC51aS5hdHRhY2hlZC5tZW51Om5vdCgudG9wKSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBUb3AgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubWVudSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aS5tZW51W2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIEJvdHRvbSAqL1xuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5tZW51IHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLm1lbnU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIEF0dGFjaGVkIE1lbnUgSXRlbSAqL1xuLnVpLnRvcC5hdHRhY2hlZC5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSAwLjIxNDI4NTcxcmVtO1xufVxuLyogVGFidWxhciBBdHRhY2hlZCAqL1xuLnVpLmF0dGFjaGVkLm1lbnU6bm90KC50YWJ1bGFyKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkuYXR0YWNoZWQuaW52ZXJ0ZWQubWVudSB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aS5hdHRhY2hlZC50YWJ1bGFyLm1lbnUge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaW5pICovXG4udWkubWluaS5tZW51IHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLm1pbmkudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiA5cmVtO1xufVxuLyogVGlueSAqL1xuLnVpLnRpbnkubWVudSB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS50aW55LnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMTFyZW07XG59XG4vKiBTbWFsbCAqL1xuLnVpLnNtYWxsLm1lbnUge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuc21hbGwudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAxM3JlbTtcbn1cbi8qIE1lZGl1bSAqL1xuLnVpLm1lbnUge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAxNXJlbTtcbn1cbi8qIExhcmdlICovXG4udWkubGFyZ2UubWVudSB7XG4gIGZvbnQtc2l6ZTogMS4wNzE0Mjg1N3JlbTtcbn1cbi51aS5sYXJnZS52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDE4cmVtO1xufVxuLyogSHVnZSAqL1xuLnVpLmh1Z2UubWVudSB7XG4gIGZvbnQtc2l6ZTogMS4yMTQyODU3MXJlbTtcbn1cbi51aS5odWdlLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMjJyZW07XG59XG4vKiBCaWcgKi9cbi51aS5iaWcubWVudSB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5iaWcudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAyMHJlbTtcbn1cbi8qIE1hc3NpdmUgKi9cbi51aS5tYXNzaXZlLm1lbnUge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkubWFzc2l2ZS52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDI1cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIE1lc3NhZ2VcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBNZXNzYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhlYWRlciAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBMaXN0ICovXG4vKiBJY29uICovXG4vKiBDbG9zZSBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gTWVzc2FnZSAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEZsb2F0aW5nICovXG4vKiBDb2xvcnMgKi9cbi8qIFdhcm5pbmcgLyBQb3NpdGl2ZSAvIE5lZ2F0aXZlIC8gSW5mbyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBNZXNzYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhlYWRlciAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBMaXN0ICovXG4vKiBJY29uICovXG4vKiBDbG9zZSBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gTWVzc2FnZSAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEZsb2F0aW5nICovXG4vKiBDb2xvcnMgKi9cbi8qIFdhcm5pbmcgLyBQb3NpdGl2ZSAvIE5lZ2F0aXZlIC8gSW5mbyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBNZXNzYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1lc3NhZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFlbTtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBiYWNrZ3JvdW5kOiAjRjhGOEY5O1xuICBwYWRkaW5nOiAxZW0gMS41ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIGJhY2tncm91bmQgMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4yMikgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLm1lc3NhZ2U6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkubWVzc2FnZTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSGVhZGVyICovXG4udWkubWVzc2FnZSAuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IC0wLjE0Mjg1NzE0ZW0gMGVtIDByZW0gMGVtO1xufVxuLyogRGVmYXVsdCBmb250IHNpemUgKi9cbi51aS5tZXNzYWdlIC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRlbTtcbn1cbi8qIFBhcmFncmFwaCAqL1xuLnVpLm1lc3NhZ2UgcCB7XG4gIG9wYWNpdHk6IDAuODU7XG4gIG1hcmdpbjogMC43NWVtIDBlbTtcbn1cbi51aS5tZXNzYWdlIHA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkubWVzc2FnZSBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkubWVzc2FnZSAuaGVhZGVyICsgcCB7XG4gIG1hcmdpbi10b3A6IDAuMjVlbTtcbn1cbi8qIExpc3QgKi9cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMGVtO1xuICBvcGFjaXR5OiAwLjg1O1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDBlbTtcbn1cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjNlbSAxZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpIGxpOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJ+KAoic7XG4gIGxlZnQ6IC0xZW07XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSkgbGk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIEljb24gKi9cbi51aS5tZXNzYWdlID4gLmljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNmVtO1xufVxuLyogQ2xvc2UgSWNvbiAqL1xuLnVpLm1lc3NhZ2UgPiAuY2xvc2UuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDBlbTtcbiAgdG9wOiAwLjc4NTc1ZW07XG4gIHJpZ2h0OiAwLjVlbTtcbiAgb3BhY2l0eTogMC43O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi51aS5tZXNzYWdlID4gLmNsb3NlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyogRmlyc3QgLyBMYXN0IEVsZW1lbnQgKi9cbi51aS5tZXNzYWdlID4gOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLm1lc3NhZ2UgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5kcm9wZG93biAubWVudSA+IC5tZXNzYWdlIHtcbiAgbWFyZ2luOiAwcHggLTFweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVmlzaWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52aXNpYmxlLnZpc2libGUudmlzaWJsZS52aXNpYmxlLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5pY29uLnZpc2libGUudmlzaWJsZS52aXNpYmxlLnZpc2libGUubWVzc2FnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEhpZGRlblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oaWRkZW4uaGlkZGVuLmhpZGRlbi5oaWRkZW4ubWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbXBhY3QubWVzc2FnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5jb21wYWN0Lmljb24ubWVzc2FnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmF0dGFjaGVkLm1lc3NhZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG59XG4udWkuYXR0YWNoZWQgKyAudWkuYXR0YWNoZWQubWVzc2FnZTpub3QoLnRvcCk6bm90KC5ib3R0b20pIHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5tZXNzYWdlIHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0LCAwcHggMXB4IDFweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLm1lc3NhZ2U6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi51aS5hdHRhY2hlZC5pY29uLm1lc3NhZ2Uge1xuICB3aWR0aDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaWNvbi5tZXNzYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkuaWNvbi5tZXNzYWdlID4gLmljb246bm90KC5jbG9zZSkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAzZW07XG4gIG9wYWNpdHk6IDAuODtcbn1cbi51aS5pY29uLm1lc3NhZ2UgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5pY29uLm1lc3NhZ2UgLmljb246bm90KC5jbG9zZSkgKyAuY29udGVudCB7XG4gIHBhZGRpbmctbGVmdDogMHJlbTtcbn1cbi51aS5pY29uLm1lc3NhZ2UgLmNpcmN1bGFyLmljb24ge1xuICB3aWR0aDogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZsb2F0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0aW5nLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjIyKSBpbnNldCwgMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJsYWNrLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4udWkucG9zaXRpdmUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQ0ZGRjU7XG4gIGNvbG9yOiAjMkM2NjJEO1xufVxuLnVpLnBvc2l0aXZlLm1lc3NhZ2UsXG4udWkuYXR0YWNoZWQucG9zaXRpdmUubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTNDMjkzIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5wb3NpdGl2ZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzFBNTMxQjtcbn1cbi8qIE5lZ2F0aXZlICovXG4udWkubmVnYXRpdmUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY2RjY7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLm5lZ2F0aXZlLm1lc3NhZ2UsXG4udWkuYXR0YWNoZWQubmVnYXRpdmUubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRTBCNEI0IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5uZWdhdGl2ZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzkxMkQyQjtcbn1cbi8qIEluZm8gKi9cbi51aS5pbmZvLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjhGRkZGO1xuICBjb2xvcjogIzI3NkY4Njtcbn1cbi51aS5pbmZvLm1lc3NhZ2UsXG4udWkuYXR0YWNoZWQuaW5mby5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBOUQ1REUgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLmluZm8ubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICMwRTU2NkM7XG59XG4vKiBXYXJuaW5nICovXG4udWkud2FybmluZy5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkFGMztcbiAgY29sb3I6ICM1NzNBMDg7XG59XG4udWkud2FybmluZy5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLndhcm5pbmcubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQzlCQTlCIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS53YXJuaW5nLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjNzk0QjAyO1xufVxuLyogRXJyb3IgKi9cbi51aS5lcnJvci5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjZGNjtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkuZXJyb3IubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5lcnJvci5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNFMEI0QjQgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLmVycm9yLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjOTEyRDJCO1xufVxuLyogU3VjY2VzcyAqL1xuLnVpLnN1Y2Nlc3MubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQ0ZGRjU7XG4gIGNvbG9yOiAjMkM2NjJEO1xufVxuLnVpLnN1Y2Nlc3MubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5zdWNjZXNzLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0EzQzI5MyBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuc3VjY2Vzcy5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzFBNTMxQjtcbn1cbi8qIENvbG9ycyAqL1xuLnVpLmludmVydGVkLm1lc3NhZ2UsXG4udWkuYmxhY2subWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkucmVkLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFOEU2O1xuICBjb2xvcjogI0RCMjgyODtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNEQjI4MjggaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnJlZC5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogI2M4MjEyMTtcbn1cbi51aS5vcmFuZ2UubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkVEREU7XG4gIGNvbG9yOiAjRjI3MTFDO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0YyNzExQyBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkub3JhbmdlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjZTc2NDBkO1xufVxuLnVpLnllbGxvdy5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjhEQjtcbiAgY29sb3I6ICNCNTgxMDU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQjU4MTA1IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS55ZWxsb3cubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM5YzZmMDQ7XG59XG4udWkub2xpdmUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkZERUY7XG4gIGNvbG9yOiAjOEFCQzFFO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzhBQkMxRSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkub2xpdmUubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM3YWE2MWE7XG59XG4udWkuZ3JlZW4ubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNUY5RTc7XG4gIGNvbG9yOiAjMUVCQzMwO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzFFQkMzMCBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuZ3JlZW4ubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICMxYWE2MmE7XG59XG4udWkudGVhbC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UxRjdGNztcbiAgY29sb3I6ICMxMEEzQTM7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTBBM0EzIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS50ZWFsLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjMGU4YzhjO1xufVxuLnVpLmJsdWUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERkYwRkY7XG4gIGNvbG9yOiAjMkM2QTlFO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzJDNkE5RSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuYmx1ZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzI2NWQ4YTtcbn1cbi51aS52aW9sZXQubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQUU3RkY7XG4gIGNvbG9yOiAjNjQzNUM5O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzY0MzVDOSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkudmlvbGV0Lm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjNWEzMGI1O1xufVxuLnVpLnB1cnBsZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y2RTdGRjtcbiAgY29sb3I6ICNBMzMzQzg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTMzM0M4IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5wdXJwbGUubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM5MjJlYjQ7XG59XG4udWkucGluay5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRTNGQjtcbiAgY29sb3I6ICNFMDM5OTc7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRTAzOTk3IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5waW5rLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjZGQyMzhiO1xufVxuLnVpLmJyb3duLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjFFMkQzO1xuICBjb2xvcjogI0E1NjczRjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBNTY3M0YgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLmJyb3duLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjOTM1YjM4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjllbTtcbn1cbi51aS50aW55Lm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbn1cbi51aS5zbWFsbC5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG59XG4udWkubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhcmdlLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRlbTtcbn1cbi51aS5iaWcubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOWVtO1xufVxuLnVpLmh1Z2UubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M2VtO1xufVxuLnVpLm1hc3NpdmUubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBUYWJsZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUYWJsZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFydHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUYWJsZSBSb3cgKi9cbi8qIFRhYmxlIENlbGwgKi9cbi8qIFRhYmxlIEhlYWRlciAqL1xuLyogVGFibGUgRm9vdGVyICovXG4vKiBSZXNwb25zaXZlIFNpemUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZpbml0aW9uICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEVycm9yICovXG4vKiBXYXJuaW5nICovXG4vKiBBY3RpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBBdHRhY2hlZCAqL1xuLyogU3RyaXBlZCAqL1xuLyogU2VsZWN0YWJsZSAqL1xuLyogU29ydGFibGUgKi9cbi8qIENvbG9ycyAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljICovXG4vKiBQYWRkZWQgKi9cbi8qIENvbXBhY3QgKi9cbi8qIFNpemVzICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUYWJsZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFydHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUYWJsZSBSb3cgKi9cbi8qIFRhYmxlIENlbGwgKi9cbi8qIFRhYmxlIEhlYWRlciAqL1xuLyogVGFibGUgRm9vdGVyICovXG4vKiBSZXNwb25zaXZlIFNpemUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZpbml0aW9uICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEVycm9yICovXG4vKiBXYXJuaW5nICovXG4vKiBBY3RpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBBdHRhY2hlZCAqL1xuLyogU3RyaXBlZCAqL1xuLyogU2VsZWN0YWJsZSAqL1xuLyogU29ydGFibGUgKi9cbi8qIENvbG9ycyAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljICovXG4vKiBQYWRkZWQgKi9cbi8qIENvbXBhY3QgKi9cbi8qIFNpemVzICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUYWJsZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFByb3RvdHlwZSAqL1xuLnVpLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIG1hcmdpbjogMWVtIDBlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gIGJvcmRlci1zcGFjaW5nOiAwcHg7XG59XG4udWkudGFibGU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkudGFibGU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUGFydHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUYWJsZSBDb250ZW50ICovXG4udWkudGFibGUgdGgsXG4udWkudGFibGUgdGQge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlO1xufVxuLyogSGVhZGVycyAqL1xuLnVpLnRhYmxlIHRoZWFkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS50YWJsZSB0aGVhZCB0aCB7XG4gIGN1cnNvcjogYXV0bztcbiAgYmFja2dyb3VuZDogI0Y5RkFGQjtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIHBhZGRpbmc6IDAuOTI4NTcxNDNlbSAwLjc4NTcxNDI5ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBpbmhlcml0O1xuICBmb250LXN0eWxlOiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyID4gdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS50YWJsZSB0aGVhZCB0cjpmaXJzdC1jaGlsZCA+IHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwZW0gMGVtIDBlbTtcbn1cbi51aS50YWJsZSB0aGVhZCB0cjpmaXJzdC1jaGlsZCA+IHRoOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkID4gdGg6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLyogRm9vdGVyICovXG4udWkudGFibGUgdGZvb3Qge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLnRhYmxlIHRmb290IHRoIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYmFja2dyb3VuZDogI0Y5RkFGQjtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAwLjc4NTcxNDI5ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4udWkudGFibGUgdGZvb3QgdHIgPiB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnRhYmxlIHRmb290IHRyOmZpcnN0LWNoaWxkID4gdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnRhYmxlIHRmb290IHRyOmZpcnN0LWNoaWxkID4gdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwZW07XG59XG4udWkudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgPiB0aDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4vKiBUYWJsZSBSb3cgKi9cbi51aS50YWJsZSB0ciB0ZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkudGFibGUgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLyogUmVwZWF0ZWQgdGJvZHkgKi9cbi51aS50YWJsZSB0Ym9keSArIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi8qIFRhYmxlIENlbGxzICovXG4udWkudGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5ZW0gMC43ODU3MTQyOWVtO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuLyogSWNvbnMgKi9cbi51aS50YWJsZSA+IC5pY29uIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLnVpLnRhYmxlID4gLmljb246b25seS1jaGlsZCB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyogVGFibGUgU2VnbWVudCAqL1xuLnVpLnRhYmxlLnNlZ21lbnQge1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkudGFibGUuc2VnbWVudDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkudGFibGUuc2VnbWVudC5zdGFja2VkOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKiBSZXNwb25zaXZlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRib2R5LFxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdHIsXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciA+IHRoLFxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdHIgPiB0ZCB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB7XG4gICAgcGFkZGluZzogMGVtO1xuICB9XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0aGVhZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRmb290IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdHIge1xuICAgIHBhZGRpbmctdG9wOiAxZW07XG4gICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICBib3gtc2hhZG93OiAwcHggLTFweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldCAhaW1wb3J0YW50O1xuICB9XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciA+IHRoLFxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdHIgPiB0ZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjI1ZW0gMC43NWVtICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0aDpmaXJzdC1jaGlsZCxcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRkOmZpcnN0LWNoaWxkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICAvKiBEZWZpbml0aW9uIFRhYmxlICovXG4gIC51aS5kZWZpbml0aW9uLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRoZWFkIHRoOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFVJIEltYWdlICovXG4udWkudGFibGUgdGggLmltYWdlLFxuLnVpLnRhYmxlIHRoIC5pbWFnZSBpbWcsXG4udWkudGFibGUgdGQgLmltYWdlLFxuLnVpLnRhYmxlIHRkIC5pbWFnZSBpbWcge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvbXBsZXhcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RydWN0dXJlZC50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG4udWkuc3RydWN0dXJlZC50YWJsZSB0aGVhZCB0aCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWkuc3RydWN0dXJlZC5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zdHJ1Y3R1cmVkLmJhc2ljLnRhYmxlIHRoIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51aS5zdHJ1Y3R1cmVkLmNlbGxlZC50YWJsZSB0ciB0aCxcbi51aS5zdHJ1Y3R1cmVkLmNlbGxlZC50YWJsZSB0ciB0ZCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBEZWZpbml0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAxcHggI0ZGRkZGRjtcbn1cbi51aS5kZWZpbml0aW9uLnRhYmxlIHRmb290Om5vdCguZnVsbC13aWR0aCkgdGg6Zmlyc3QtY2hpbGQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtd2VpZ2h0OiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGNvbG9yOiBub3JtYWw7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggMHB4IDFweCAjRkZGRkZGO1xufVxuLyogUmVtb3ZlIEJvcmRlciAqL1xuLnVpLmNlbGxlZC5kZWZpbml0aW9uLnRhYmxlIHRoZWFkOm5vdCguZnVsbC13aWR0aCkgdGg6Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiAwcHggLTFweCAwcHggMXB4ICNGRkZGRkY7XG59XG4udWkuY2VsbGVkLmRlZmluaXRpb24udGFibGUgdGZvb3Q6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMHB4IDFweCAjRkZGRkZGO1xufVxuLyogSGlnaGxpZ2h0IERlZmluaW5nIENvbHVtbiAqL1xuLnVpLmRlZmluaXRpb24udGFibGUgdHIgdGQ6Zmlyc3QtY2hpbGQ6bm90KC5pZ25vcmVkKSxcbi51aS5kZWZpbml0aW9uLnRhYmxlIHRyIHRkLmRlZmluaXRpb24ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIHRleHQtdHJhbnNmb3JtOiAnJztcbiAgYm94LXNoYWRvdzogJyc7XG4gIHRleHQtYWxpZ246ICcnO1xuICBmb250LXNpemU6IDFlbTtcbiAgcGFkZGluZy1sZWZ0OiAnJztcbiAgcGFkZGluZy1yaWdodDogJyc7XG59XG4vKiBGaXggMm5kIENvbHVtbiAqL1xuLnVpLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpudGgtY2hpbGQoMikge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuZGVmaW5pdGlvbi50YWJsZSB0Zm9vdDpub3QoLmZ1bGwtd2lkdGgpIHRoOm50aC1jaGlsZCgyKSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5kZWZpbml0aW9uLnRhYmxlIHRkOm50aC1jaGlsZCgyKSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBvc2l0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlIHRyLnBvc2l0aXZlLFxuLnVpLnRhYmxlIHRkLnBvc2l0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggI0EzQzI5MyBpbnNldDtcbn1cbi51aS50YWJsZSB0ci5wb3NpdGl2ZSxcbi51aS50YWJsZSB0ZC5wb3NpdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNGQ0ZGRjUgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyQzY2MkQgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTmVnYXRpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdHIubmVnYXRpdmUsXG4udWkudGFibGUgdGQubmVnYXRpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjRTBCNEI0IGluc2V0O1xufVxuLnVpLnRhYmxlIHRyLm5lZ2F0aXZlLFxuLnVpLnRhYmxlIHRkLm5lZ2F0aXZlIHtcbiAgYmFja2dyb3VuZDogI0ZGRjZGNiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzlGM0EzOCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdHIuZXJyb3IsXG4udWkudGFibGUgdGQuZXJyb3Ige1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjRTBCNEI0IGluc2V0O1xufVxuLnVpLnRhYmxlIHRyLmVycm9yLFxuLnVpLnRhYmxlIHRkLmVycm9yIHtcbiAgYmFja2dyb3VuZDogI0ZGRjZGNiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzlGM0EzOCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXYXJuaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlIHRyLndhcm5pbmcsXG4udWkudGFibGUgdGQud2FybmluZyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4ICNDOUJBOUIgaW5zZXQ7XG59XG4udWkudGFibGUgdHIud2FybmluZyxcbi51aS50YWJsZSB0ZC53YXJuaW5nIHtcbiAgYmFja2dyb3VuZDogI0ZGRkFGMyAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU3M0EwOCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdHIuYWN0aXZlLFxuLnVpLnRhYmxlIHRkLmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC44NykgaW5zZXQ7XG59XG4udWkudGFibGUgdHIuYWN0aXZlLFxuLnVpLnRhYmxlIHRkLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNFMEUwRTAgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NykgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdHIuZGlzYWJsZWQgdGQsXG4udWkudGFibGUgdHIgdGQuZGlzYWJsZWQsXG4udWkudGFibGUgdHIuZGlzYWJsZWQ6aG92ZXIsXG4udWkudGFibGUgdHI6aG92ZXIgdGQuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0Ym9keSxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRyID4gdGgsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRyID4gdGQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB7XG4gICAgcGFkZGluZzogMGVtO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0Zm9vdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIge1xuICAgIHBhZGRpbmctdG9wOiAxZW07XG4gICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICBib3gtc2hhZG93OiAwcHggLTFweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldCAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRyID4gdGgsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRyID4gdGQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMC4yNWVtIDAuNzVlbTtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLyogRGVmaW5pdGlvbiBUYWJsZSAqL1xuICAudWkuZGVmaW5pdGlvbltjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiBUZXh0IEFsaWdubWVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkudGFibGVbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gVmVydGljYWwgQWxpZ25tZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkudGFibGVbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvbGxhcHNpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdGguY29sbGFwc2luZyxcbi51aS50YWJsZSB0ZC5jb2xsYXBzaW5nIHtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml4ZWQudGFibGUge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuLnVpLmZpeGVkLnRhYmxlIHRoLFxuLnVpLmZpeGVkLnRhYmxlIHRkIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTZWxlY3RhYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlbGVjdGFibGUudGFibGUgdGJvZHkgdHI6aG92ZXIsXG4udWkudGFibGUgdGJvZHkgdHIgdGQuc2VsZWN0YWJsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLmludmVydGVkLnRhYmxlIHRib2R5IHRyOmhvdmVyLFxuLnVpLmludmVydGVkLnRhYmxlIHRib2R5IHRyIHRkLnNlbGVjdGFibGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBTZWxlY3RhYmxlIENlbGwgTGluayAqL1xuLnVpLnRhYmxlIHRib2R5IHRyIHRkLnNlbGVjdGFibGUge1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkudGFibGUgdGJvZHkgdHIgdGQuc2VsZWN0YWJsZSA+IGE6bm90KC51aSkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAwLjc4NTcxNDI5ZW07XG59XG4vKiBPdGhlciBTdGF0ZXMgKi9cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLmVycm9yOmhvdmVyLFxuLnVpLnRhYmxlIHRyIHRkLnNlbGVjdGFibGUuZXJyb3I6aG92ZXIsXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0cjpob3ZlciB0ZC5lcnJvciB7XG4gIGJhY2tncm91bmQ6ICNmZmU3ZTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NDM2MzQgIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLndhcm5pbmc6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS53YXJuaW5nOmhvdmVyLFxuLnVpLnNlbGVjdGFibGUudGFibGUgdHI6aG92ZXIgdGQud2FybmluZyB7XG4gIGJhY2tncm91bmQ6ICNmZmY0ZTQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM0OTMxMDcgIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLmFjdGl2ZTpob3Zlcixcbi51aS50YWJsZSB0ciB0ZC5zZWxlY3RhYmxlLmFjdGl2ZTpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNFMEUwRTAgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NykgIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLnBvc2l0aXZlOmhvdmVyLFxuLnVpLnRhYmxlIHRyIHRkLnNlbGVjdGFibGUucG9zaXRpdmU6aG92ZXIsXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0cjpob3ZlciB0ZC5wb3NpdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNmN2ZmZTYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyNzViMjggIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLm5lZ2F0aXZlOmhvdmVyLFxuLnVpLnRhYmxlIHRyIHRkLnNlbGVjdGFibGUubmVnYXRpdmU6aG92ZXIsXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0cjpob3ZlciB0ZC5uZWdhdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmU3ZTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NDM2MzQgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pZGRsZSAqL1xuLnVpLmF0dGFjaGVkLnRhYmxlIHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbjogMGVtIC0xcHg7XG4gIHdpZHRoOiBjYWxjKDEwMiUpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAyJSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkuYXR0YWNoZWQgKyAudWkuYXR0YWNoZWQudGFibGU6bm90KC50b3ApIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIFRvcCAqL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS50YWJsZSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIEJvdHRvbSAqL1xuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS50YWJsZSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIGJveC1zaGFkb3c6IG5vbmUsIG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS50YWJsZTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdHJpcGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGFibGUgU3RyaXBpbmcgKi9cbi51aS5zdHJpcGVkLnRhYmxlID4gdHI6bnRoLWNoaWxkKDJuKSxcbi51aS5zdHJpcGVkLnRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCgybikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDUwLCAwLjAyKTtcbn1cbi8qIFN0cmlwZXMgKi9cbi51aS5pbnZlcnRlZC5zdHJpcGVkLnRhYmxlID4gdHI6bnRoLWNoaWxkKDJuKSxcbi51aS5pbnZlcnRlZC5zdHJpcGVkLnRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCgybikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xufVxuLyogQWxsb3cgc3RyaXBlZCBhY3RpdmUgaG92ZXIgKi9cbi51aS5zdHJpcGVkLnNlbGVjdGFibGUuc2VsZWN0YWJsZS5zZWxlY3RhYmxlLnRhYmxlIHRib2R5IHRyLmFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNFRkVGRUYgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNpbmdsZSBMaW5lXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlW2NsYXNzKj1cInNpbmdsZSBsaW5lXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJzaW5nbGUgbGluZVwiXSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udWkudGFibGVbY2xhc3MqPVwic2luZ2xlIGxpbmVcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cInNpbmdsZSBsaW5lXCJdIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVkICovXG4udWkucmVkLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0RCMjgyODtcbn1cbi51aS5pbnZlcnRlZC5yZWQudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBPcmFuZ2UgKi9cbi51aS5vcmFuZ2UudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjRjI3MTFDO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFllbGxvdyAqL1xuLnVpLnllbGxvdy50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNGQkJEMDg7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogT2xpdmUgKi9cbi51aS5vbGl2ZS50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNCNUNDMTg7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBHcmVlbiAqL1xuLnVpLmdyZWVuLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgIzIxQkE0NTtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFRlYWwgKi9cbi51aS50ZWFsLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgIzAwQjVBRDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQmx1ZSAqL1xuLnVpLmJsdWUudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjMkM2QTlFO1xufVxuLnVpLmludmVydGVkLmJsdWUudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBWaW9sZXQgKi9cbi51aS52aW9sZXQudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjNjQzNUM5O1xufVxuLnVpLmludmVydGVkLnZpb2xldC50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFB1cnBsZSAqL1xuLnVpLnB1cnBsZS50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNBMzMzQzg7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogUGluayAqL1xuLnVpLnBpbmsudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjRTAzOTk3O1xufVxuLnVpLmludmVydGVkLnBpbmsudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBCcm93biAqL1xuLnVpLmJyb3duLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0E1NjczRjtcbn1cbi51aS5pbnZlcnRlZC5icm93bi50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEdyZXkgKi9cbi51aS5ncmV5LnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgIzc2NzY3Njtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQmxhY2sgKi9cbi51aS5ibGFjay50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICMxQjFDMUQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2sudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIENvbHVtbiBDb3VudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyaWQgQmFzZWQgKi9cbi51aS5vbmUuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudHdvLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkudGhyZWUuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbn1cbi51aS5mb3VyLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAyNSU7XG59XG4udWkuZml2ZS5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMjAlO1xufVxuLnVpLnNpeC5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTYuNjY2NjY2NjclO1xufVxuLnVpLnNldmVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxNC4yODU3MTQyOSU7XG59XG4udWkuZWlnaHQuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnVpLm5pbmUuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDExLjExMTExMTExJTtcbn1cbi51aS50ZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aS5lbGV2ZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDkuMDkwOTA5MDklO1xufVxuLnVpLnR3ZWx2ZS5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogOC4zMzMzMzMzMyU7XG59XG4udWkudGhpcnRlZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDcuNjkyMzA3NjklO1xufVxuLnVpLmZvdXJ0ZWVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiA3LjE0Mjg1NzE0JTtcbn1cbi51aS5maWZ0ZWVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiA2LjY2NjY2NjY3JTtcbn1cbi51aS5zaXh0ZWVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiA2LjI1JTtcbn1cbi8qIENvbHVtbiBXaWR0aCAqL1xuLnVpLnRhYmxlIHRoLm9uZS53aWRlLFxuLnVpLnRhYmxlIHRkLm9uZS53aWRlIHtcbiAgd2lkdGg6IDYuMjUlO1xufVxuLnVpLnRhYmxlIHRoLnR3by53aWRlLFxuLnVpLnRhYmxlIHRkLnR3by53aWRlIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnVpLnRhYmxlIHRoLnRocmVlLndpZGUsXG4udWkudGFibGUgdGQudGhyZWUud2lkZSB7XG4gIHdpZHRoOiAxOC43NSU7XG59XG4udWkudGFibGUgdGguZm91ci53aWRlLFxuLnVpLnRhYmxlIHRkLmZvdXIud2lkZSB7XG4gIHdpZHRoOiAyNSU7XG59XG4udWkudGFibGUgdGguZml2ZS53aWRlLFxuLnVpLnRhYmxlIHRkLmZpdmUud2lkZSB7XG4gIHdpZHRoOiAzMS4yNSU7XG59XG4udWkudGFibGUgdGguc2l4LndpZGUsXG4udWkudGFibGUgdGQuc2l4LndpZGUge1xuICB3aWR0aDogMzcuNSU7XG59XG4udWkudGFibGUgdGguc2V2ZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5zZXZlbi53aWRlIHtcbiAgd2lkdGg6IDQzLjc1JTtcbn1cbi51aS50YWJsZSB0aC5laWdodC53aWRlLFxuLnVpLnRhYmxlIHRkLmVpZ2h0LndpZGUge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLnRhYmxlIHRoLm5pbmUud2lkZSxcbi51aS50YWJsZSB0ZC5uaW5lLndpZGUge1xuICB3aWR0aDogNTYuMjUlO1xufVxuLnVpLnRhYmxlIHRoLnRlbi53aWRlLFxuLnVpLnRhYmxlIHRkLnRlbi53aWRlIHtcbiAgd2lkdGg6IDYyLjUlO1xufVxuLnVpLnRhYmxlIHRoLmVsZXZlbi53aWRlLFxuLnVpLnRhYmxlIHRkLmVsZXZlbi53aWRlIHtcbiAgd2lkdGg6IDY4Ljc1JTtcbn1cbi51aS50YWJsZSB0aC50d2VsdmUud2lkZSxcbi51aS50YWJsZSB0ZC50d2VsdmUud2lkZSB7XG4gIHdpZHRoOiA3NSU7XG59XG4udWkudGFibGUgdGgudGhpcnRlZW4ud2lkZSxcbi51aS50YWJsZSB0ZC50aGlydGVlbi53aWRlIHtcbiAgd2lkdGg6IDgxLjI1JTtcbn1cbi51aS50YWJsZSB0aC5mb3VydGVlbi53aWRlLFxuLnVpLnRhYmxlIHRkLmZvdXJ0ZWVuLndpZGUge1xuICB3aWR0aDogODcuNSU7XG59XG4udWkudGFibGUgdGguZmlmdGVlbi53aWRlLFxuLnVpLnRhYmxlIHRkLmZpZnRlZW4ud2lkZSB7XG4gIHdpZHRoOiA5My43NSU7XG59XG4udWkudGFibGUgdGguc2l4dGVlbi53aWRlLFxuLnVpLnRhYmxlIHRkLnNpeHRlZW4ud2lkZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFNvcnRhYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkLFxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZDpob3ZlciB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDFlbTtcbiAgd2lkdGg6IGF1dG87XG4gIG9wYWNpdHk6IDAuODtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwLjVlbTtcbiAgZm9udC1mYW1pbHk6ICdJY29ucyc7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguYXNjZW5kaW5nOmFmdGVyIHtcbiAgY29udGVudDogJ1xcZjBkOCc7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguZGVzY2VuZGluZzphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXGYwZDcnO1xufVxuLyogSG92ZXIgKi9cbi51aS5zb3J0YWJsZS50YWJsZSB0aC5kaXNhYmxlZDpob3ZlciB7XG4gIGN1cnNvcjogYXV0bztcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKTtcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKiBTb3J0ZWQgKi9cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKiBTb3J0ZWQgSG92ZXIgKi9cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuMDUpKTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuc29ydGFibGUudGFibGUgdGhlYWQgdGgge1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUZXh0IENvbG9yICovXG4udWkuaW52ZXJ0ZWQudGFibGUge1xuICBiYWNrZ3JvdW5kOiAjMzMzMzMzO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICBib3JkZXI6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWQudGFibGUgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGFibGUgdHIgdGQge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRhYmxlIHRyLmRpc2FibGVkIHRkLFxuLnVpLmludmVydGVkLnRhYmxlIHRyIHRkLmRpc2FibGVkLFxuLnVpLmludmVydGVkLnRhYmxlIHRyLmRpc2FibGVkOmhvdmVyIHRkLFxuLnVpLmludmVydGVkLnRhYmxlIHRyOmhvdmVyIHRkLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDIyNSwgMjI1LCAyMjUsIDAuMyk7XG59XG4vKiBEZWZpbml0aW9uICovXG4udWkuaW52ZXJ0ZWQuZGVmaW5pdGlvbi50YWJsZSB0Zm9vdDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkLFxuLnVpLmludmVydGVkLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuZGVmaW5pdGlvbi50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMik7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgQ29sbGFwc2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb2xsYXBzaW5nLnRhYmxlIHtcbiAgd2lkdGg6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5iYXNpYy50YWJsZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmJhc2ljLnRhYmxlIHRoZWFkLFxuLnVpLmJhc2ljLnRhYmxlIHRmb290IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5iYXNpYy50YWJsZSB0aCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS5iYXNpYy50YWJsZSB0Ym9keSB0ciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkuYmFzaWMudGFibGUgdGQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi51aS5iYXNpYy5zdHJpcGVkLnRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCgybikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpICFpbXBvcnRhbnQ7XG59XG4vKiBWZXJ5IEJhc2ljICovXG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZSB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGgsXG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRkIHtcbiAgcGFkZGluZzogJyc7XG59XG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRoOmZpcnN0LWNoaWxkLFxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0ZDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctbGVmdDogMGVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0aDpsYXN0LWNoaWxkLFxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0ZDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0aGVhZCB0cjpmaXJzdC1jaGlsZCB0aCB7XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENlbGxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jZWxsZWQudGFibGUgdHIgdGgsXG4udWkuY2VsbGVkLnRhYmxlIHRyIHRkIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuY2VsbGVkLnRhYmxlIHRyIHRoOmZpcnN0LWNoaWxkLFxuLnVpLmNlbGxlZC50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYWRkZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucGFkZGVkLnRhYmxlIHRoIHtcbiAgcGFkZGluZy1sZWZ0OiAxZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFlbTtcbn1cbi51aS5wYWRkZWQudGFibGUgdGgsXG4udWkucGFkZGVkLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogMWVtIDFlbTtcbn1cbi8qIFZlcnkgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ5IHBhZGRlZFwiXS50YWJsZSB0aCB7XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogMS41ZW0gMS41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tcGFjdC50YWJsZSB0aCB7XG4gIHBhZGRpbmctbGVmdDogMC43ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuN2VtO1xufVxuLnVpLmNvbXBhY3QudGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjVlbSAwLjdlbTtcbn1cbi8qIFZlcnkgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ5IGNvbXBhY3RcIl0udGFibGUgdGgge1xuICBwYWRkaW5nLWxlZnQ6IDAuNmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjZlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGNvbXBhY3RcIl0udGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjRlbSAwLjZlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU21hbGwgKi9cbi51aS5zbWFsbC50YWJsZSB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4vKiBTdGFuZGFyZCAqL1xuLnVpLnRhYmxlIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKiBMYXJnZSAqL1xuLnVpLmxhcmdlLnRhYmxlIHtcbiAgZm9udC1zaXplOiAxLjFlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFZpZXdzICovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBBZFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBDb3B5cmlnaHQgMjAxMyBDb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEFkdmVydGlzZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBBZHZlcnRpc2VtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBBZHZlcnRpc2VtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmFkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMWVtIDBlbTtcbn1cbi51aS5hZDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmFkOmxhc3QtY2hpbGQge1xuICBtYXJnaW46IDBlbTtcbn1cbi51aS5hZCBpZnJhbWUge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbW1vblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlYWRlcmJvYXJkICovXG4udWkubGVhZGVyYm9hcmQuYWQge1xuICB3aWR0aDogNzI4cHg7XG4gIGhlaWdodDogOTBweDtcbn1cbi8qIE1lZGl1bSBSZWN0YW5nbGUgKi9cbi51aVtjbGFzcyo9XCJtZWRpdW0gcmVjdGFuZ2xlXCJdLmFkIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xufVxuLyogTGFyZ2UgUmVjdGFuZ2xlICovXG4udWlbY2xhc3MqPVwibGFyZ2UgcmVjdGFuZ2xlXCJdLmFkIHtcbiAgd2lkdGg6IDMzNnB4O1xuICBoZWlnaHQ6IDI4MHB4O1xufVxuLyogSGFsZiBQYWdlICovXG4udWlbY2xhc3MqPVwiaGFsZiBwYWdlXCJdLmFkIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDYwMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTcXVhcmVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTcXVhcmUgKi9cbi51aS5zcXVhcmUuYWQge1xuICB3aWR0aDogMjUwcHg7XG4gIGhlaWdodDogMjUwcHg7XG59XG4vKiBTbWFsbCBTcXVhcmUgKi9cbi51aVtjbGFzcyo9XCJzbWFsbCBzcXVhcmVcIl0uYWQge1xuICB3aWR0aDogMjAwcHg7XG4gIGhlaWdodDogMjAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUmVjdGFuZ2xlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU21hbGwgUmVjdGFuZ2xlICovXG4udWlbY2xhc3MqPVwic21hbGwgcmVjdGFuZ2xlXCJdLmFkIHtcbiAgd2lkdGg6IDE4MHB4O1xuICBoZWlnaHQ6IDE1MHB4O1xufVxuLyogVmVydGljYWwgUmVjdGFuZ2xlICovXG4udWlbY2xhc3MqPVwidmVydGljYWwgcmVjdGFuZ2xlXCJdLmFkIHtcbiAgd2lkdGg6IDI0MHB4O1xuICBoZWlnaHQ6IDQwMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9uLmFkIHtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDkwcHg7XG59XG4udWlbY2xhc3MqPVwic3F1YXJlIGJ1dHRvblwiXS5hZCB7XG4gIHdpZHRoOiAxMjVweDtcbiAgaGVpZ2h0OiAxMjVweDtcbn1cbi51aVtjbGFzcyo9XCJzbWFsbCBidXR0b25cIl0uYWQge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogNjBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNreXNjcmFwZXJzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2t5c2NyYXBlciAqL1xuLnVpLnNreXNjcmFwZXIuYWQge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogNjAwcHg7XG59XG4vKiBXaWRlIFNreXNjcmFwZXIgKi9cbi51aVtjbGFzcyo9XCJ3aWRlIHNreXNjcmFwZXJcIl0uYWQge1xuICB3aWR0aDogMTYwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJhbm5lcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYW5uZXIgKi9cbi51aS5iYW5uZXIuYWQge1xuICB3aWR0aDogNDY4cHg7XG4gIGhlaWdodDogNjBweDtcbn1cbi8qIFZlcnRpY2FsIEJhbm5lciAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsIGJhbm5lclwiXS5hZCB7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiAyNDBweDtcbn1cbi8qIFRvcCBCYW5uZXIgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYmFubmVyXCJdLmFkIHtcbiAgd2lkdGg6IDkzMHB4O1xuICBoZWlnaHQ6IDE4MHB4O1xufVxuLyogSGFsZiBCYW5uZXIgKi9cbi51aVtjbGFzcyo9XCJoYWxmIGJhbm5lclwiXS5hZCB7XG4gIHdpZHRoOiAyMzRweDtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEJvYXJkc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlYWRlcmJvYXJkICovXG4udWlbY2xhc3MqPVwibGFyZ2UgbGVhZGVyYm9hcmRcIl0uYWQge1xuICB3aWR0aDogOTcwcHg7XG4gIGhlaWdodDogOTBweDtcbn1cbi8qIEJpbGxib2FyZCAqL1xuLnVpLmJpbGxib2FyZC5hZCB7XG4gIHdpZHRoOiA5NzBweDtcbiAgaGVpZ2h0OiAyNTBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBQYW5vcmFtYVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhbm9yYW1hICovXG4udWkucGFub3JhbWEuYWQge1xuICB3aWR0aDogOTgwcHg7XG4gIGhlaWdodDogMTIwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldGJvYXJkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTmV0Ym9hcmQgKi9cbi51aS5uZXRib2FyZC5hZCB7XG4gIHdpZHRoOiA1ODBweDtcbiAgaGVpZ2h0OiA0MDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTW9iaWxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGFyZ2UgTW9iaWxlIEJhbm5lciAqL1xuLnVpW2NsYXNzKj1cImxhcmdlIG1vYmlsZSBiYW5uZXJcIl0uYWQge1xuICB3aWR0aDogMzIwcHg7XG4gIGhlaWdodDogMTAwcHg7XG59XG4vKiBNb2JpbGUgTGVhZGVyYm9hcmQgKi9cbi51aVtjbGFzcyo9XCJtb2JpbGUgbGVhZGVyYm9hcmRcIl0uYWQge1xuICB3aWR0aDogMzIwcHg7XG4gIGhlaWdodDogNTBweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBNb2JpbGUgU2l6ZXMgKi9cbi51aS5tb2JpbGUuYWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubW9iaWxlLmFkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5jZW50ZXJlZC5hZCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4udWkudGVzdC5hZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzU0NTQ1NDtcbn1cbi51aS50ZXN0LmFkOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgY29udGVudDogJ0FkJztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS5tb2JpbGUudGVzdC5hZDphZnRlciB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xufVxuLnVpLnRlc3QuYWRbZGF0YS10ZXh0XTphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gSXRlbVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBDYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaGFkb3cgKi9cbi8qIENhcmQgKi9cbi8qIENhcmQgR3JvdXAgKi9cbi8qIENvbnNlY3V0aXZlIENhcmRzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbWFnZSAqL1xuLyogQ29udGVudCAqL1xuLyogSGVhZGVyICovXG4vKiBNZXRhZGF0YSAqL1xuLyogSWNvbnMgKi9cbi8qIExpbmtzICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogQ29udGVudCBJbWFnZSAqL1xuLyogQXZhdGFyIEltYWdlICovXG4vKiBQYXJhZ3JhcGggKi9cbi8qIERpbW1lciAqL1xuLyogQWRkaXRpb25hbCBDb250ZW50ICovXG4vKiBFeHRyYSBMaW5rcyAqL1xuLyogQnV0dG9ucyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMaW5rICovXG4vKiBSYWlzZWQgKi9cbi8qIENhcmQgQ291bnQgKi9cbi8qIFN0YWNrYWJsZSAqL1xuLyogU2l6ZXMgKi9cbi8qIENvbG9yZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIENhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNoYWRvdyAqL1xuLyogQ2FyZCAqL1xuLyogQ2FyZCBHcm91cCAqL1xuLyogQ29uc2VjdXRpdmUgQ2FyZHMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIE1ldGFkYXRhICovXG4vKiBJY29ucyAqL1xuLyogTGlua3MgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBDb250ZW50IEltYWdlICovXG4vKiBBdmF0YXIgSW1hZ2UgKi9cbi8qIFBhcmFncmFwaCAqL1xuLyogRGltbWVyICovXG4vKiBBZGRpdGlvbmFsIENvbnRlbnQgKi9cbi8qIEV4dHJhIExpbmtzICovXG4vKiBCdXR0b25zICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpbmsgKi9cbi8qIFJhaXNlZCAqL1xuLyogQ2FyZCBDb3VudCAqL1xuLyogU3RhY2thYmxlICovXG4vKiBTaXplcyAqL1xuLyogQ29sb3JlZCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGFuZGFyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIENhcmRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAyOTBweDtcbiAgbWluLWhlaWdodDogMHB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBwYWRkaW5nOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggMHB4ICNENEQ0RDUsIDBweCAwcHggMHB4IDFweCAjRDRENEQ1O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgZWFzZTtcbiAgei1pbmRleDogJyc7XG59XG4udWkuY2FyZCB7XG4gIG1hcmdpbjogMWVtIDBlbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIGEsXG4udWkuY2FyZCBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLmNhcmQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuY2FyZDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQ2FyZHNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IC0wLjg3NWVtIC0wLjVlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnVpLmNhcmRzID4gLmNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDAuODc1ZW0gMC41ZW07XG4gIGZsb2F0OiBub25lO1xufVxuLyogQ2xlYXJpbmcgKi9cbi51aS5jYXJkczphZnRlcixcbi51aS5jYXJkOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBDb25zZWN1dGl2ZSBDYXJkIEdyb3VwcyBQcmVzZXJ2ZSBSb3cgU3BhY2luZyAqL1xuLnVpLmNhcmRzIH4gLnVpLmNhcmRzIHtcbiAgbWFyZ2luLXRvcDogMC44NzVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUm91bmRlZCBFZGdlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gOmZpcnN0LWNoaWxkLFxuLnVpLmNhcmQgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IDpsYXN0LWNoaWxkLFxuLnVpLmNhcmQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtICFpbXBvcnRhbnQ7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IDpvbmx5LWNoaWxkLFxuLnVpLmNhcmQgPiA6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW1hZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuaW1hZ2UsXG4udWkuY2FyZCA+IC5pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nOiAwZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5pbWFnZSA+IGltZyxcbi51aS5jYXJkID4gLmltYWdlID4gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5pbWFnZTpub3QoLnVpKSA+IGltZyxcbi51aS5jYXJkID4gLmltYWdlOm5vdCgudWkpID4gaW1nIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCxcbi51aS5jYXJkID4gLmNvbnRlbnQge1xuICBmbGV4LWdyb3c6IDE7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDFlbSAxZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50OmFmdGVyLFxuLnVpLmNhcmQgPiAuY29udGVudDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnICc7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXIsXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46ICcnO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi8qIERlZmF1bHQgSGVhZGVyIFNpemUgKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAuaGVhZGVyOm5vdCgudWkpLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5ZW07XG4gIG1hcmdpbi10b3A6IC0wLjIxNDI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gLm1ldGEgKyAuZGVzY3JpcHRpb24sXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlciArIC5kZXNjcmlwdGlvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiAubWV0YSArIC5kZXNjcmlwdGlvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiAuaGVhZGVyICsgLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS1cbiBGbG9hdGVkIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0sXG4udWkuY2FyZCBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpLmNhcmRzID4gLmNhcmQgW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0sXG4udWkuY2FyZCBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBDb250ZW50IEltYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgLmNvbnRlbnQgaW1nLFxuLnVpLmNhcmQgLmNvbnRlbnQgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJyc7XG59XG4udWkuY2FyZHMgPiAuY2FyZCBpbWcuYXZhdGFyLFxuLnVpLmNhcmRzID4gLmNhcmQgLmF2YXRhciBpbWcsXG4udWkuY2FyZCBpbWcuYXZhdGFyLFxuLnVpLmNhcmQgLmF2YXRhciBpbWcge1xuICB3aWR0aDogMmVtO1xuICBoZWlnaHQ6IDJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgRGVzY3JpcHRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5kZXNjcmlwdGlvbiB7XG4gIGNsZWFyOiBib3RoO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjY4KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IHAsXG4udWkuY2FyZCA+IC5jb250ZW50IHAge1xuICBtYXJnaW46IDBlbSAwZW0gMC41ZW07XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IHA6bGFzdC1jaGlsZCxcbi51aS5jYXJkID4gLmNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWV0YVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkIC5tZXRhLFxuLnVpLmNhcmQgLm1ldGEge1xuICBmb250LXNpemU6IDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIC5tZXRhICosXG4udWkuY2FyZCAubWV0YSAqIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIC5tZXRhIDpsYXN0LWNoaWxkLFxuLnVpLmNhcmQgLm1ldGEgOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIC5tZXRhIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLFxuLnVpLmNhcmQgLm1ldGEgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBHZW5lcmljICovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IGE6bm90KC51aSksXG4udWkuY2FyZCA+IC5jb250ZW50IGE6bm90KC51aSkge1xuICBjb2xvcjogJyc7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKTpob3Zlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiAnJztcbn1cbi8qIEhlYWRlciAqL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IGEuaGVhZGVyLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IGEuaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gYS5oZWFkZXI6aG92ZXIsXG4udWkuY2FyZCA+IC5jb250ZW50ID4gYS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzMyNzdiMjtcbn1cbi8qIE1ldGEgKi9cbi51aS5jYXJkcyA+IC5jYXJkIC5tZXRhID4gYTpub3QoLnVpKSxcbi51aS5jYXJkIC5tZXRhID4gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4udWkuY2FyZHMgPiAuY2FyZCAubWV0YSA+IGE6bm90KC51aSk6aG92ZXIsXG4udWkuY2FyZCAubWV0YSA+IGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQnV0dG9uc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmJ1dHRvbnMsXG4udWkuY2FyZCA+IC5idXR0b25zLFxuLnVpLmNhcmRzID4gLmNhcmQgPiAuYnV0dG9uLFxuLnVpLmNhcmQgPiAuYnV0dG9uIHtcbiAgbWFyZ2luOiAwcHggLTFweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSArICAycHggKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpbW1lclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkIC5kaW1tZXIsXG4udWkuY2FyZCAuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJyc7XG4gIHotaW5kZXg6IDEwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBMYWJlbHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tU3Rhci0tLS0tICovXG4vKiBJY29uICovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5zdGFyLmljb24sXG4udWkuY2FyZCA+IC5jb250ZW50IC5zdGFyLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbjpob3Zlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjRkZCNzBBO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAuYWN0aXZlLnN0YXIuaWNvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgLmFjdGl2ZS5zdGFyLmljb24ge1xuICBjb2xvcjogI0ZGRTYyMztcbn1cbi8qLS0tLS1MaWtlLS0tLS0gKi9cbi8qIEljb24gKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLmxpa2UuaWNvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgLmxpa2UuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNGRjI3MzM7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5hY3RpdmUubGlrZS5pY29uLFxuLnVpLmNhcmQgPiAuY29udGVudCAuYWN0aXZlLmxpa2UuaWNvbiB7XG4gIGNvbG9yOiAjRkYyNzMzO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tXG4gIEV4dHJhIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmV4dHJhLFxuLnVpLmNhcmQgPiAuZXh0cmEge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDUpICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbSAwZW07XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmV4dHJhIGE6bm90KC51aSksXG4udWkuY2FyZCA+IC5leHRyYSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmV4dHJhIGE6bm90KC51aSk6aG92ZXIsXG4udWkuY2FyZCA+IC5leHRyYSBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICMzMjc3YjI7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmFpc2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucmFpc2VkLmNhcmRzID4gLmNhcmQsXG4udWkucmFpc2VkLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5yYWlzZWQuY2FyZHMgYS5jYXJkOmhvdmVyLFxuLnVpLmxpbmsuY2FyZHMgLnJhaXNlZC5jYXJkOmhvdmVyLFxuYS51aS5yYWlzZWQuY2FyZDpob3Zlcixcbi51aS5saW5rLnJhaXNlZC5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4yNSk7XG59XG4udWkucmFpc2VkLmNhcmRzID4gLmNhcmQsXG4udWkucmFpc2VkLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENlbnRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2VudGVyZWQuY2FyZHMge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi51aS5jZW50ZXJlZC5jYXJkIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmNhcmQge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5OTk5cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTGlua1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzIGEuY2FyZCxcbi51aS5saW5rLmNhcmRzIC5jYXJkLFxuYS51aS5jYXJkLFxuLnVpLmxpbmsuY2FyZCB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi51aS5jYXJkcyBhLmNhcmQ6aG92ZXIsXG4udWkubGluay5jYXJkcyAuY2FyZDpob3ZlcixcbmEudWkuY2FyZDpob3Zlcixcbi51aS5saW5rLmNhcmQ6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDU7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQsIDBweCAwcHggMHB4IDFweCAjRDRENEQ1O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlZCAqL1xuLnVpLnJlZC5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLnJlZC5jYXJkLFxuLnVpLnJlZC5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjREIyODI4LCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5yZWQuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5yZWQuY2FyZDpob3Zlcixcbi51aS5yZWQuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI2QwMTkxOSwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBPcmFuZ2UgKi9cbi51aS5vcmFuZ2UuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5vcmFuZ2UuY2FyZCxcbi51aS5vcmFuZ2UuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0YyNzExQywgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkub3JhbmdlLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAub3JhbmdlLmNhcmQ6aG92ZXIsXG4udWkub3JhbmdlLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNmMjYyMDIsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogWWVsbG93ICovXG4udWkueWVsbG93LmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAueWVsbG93LmNhcmQsXG4udWkueWVsbG93LmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNGQkJEMDgsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLnllbGxvdy5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnllbGxvdy5jYXJkOmhvdmVyLFxuLnVpLnllbGxvdy5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjZWFhZTAwLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIE9saXZlICovXG4udWkub2xpdmUuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5vbGl2ZS5jYXJkLFxuLnVpLm9saXZlLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNCNUNDMTgsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLm9saXZlLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAub2xpdmUuY2FyZDpob3Zlcixcbi51aS5vbGl2ZS5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjYTdiZDBkLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4uY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ncmVlbi5jYXJkLFxuLnVpLmdyZWVuLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMyMUJBNDUsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmdyZWVuLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAuZ3JlZW4uY2FyZDpob3Zlcixcbi51aS5ncmVlbi5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMTZhYjM5LCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIFRlYWwgKi9cbi51aS50ZWFsLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAudGVhbC5jYXJkLFxuLnVpLnRlYWwuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzAwQjVBRCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkudGVhbC5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnRlYWwuY2FyZDpob3Zlcixcbi51aS50ZWFsLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMwMDljOTUsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogQmx1ZSAqL1xuLnVpLmJsdWUuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ibHVlLmNhcmQsXG4udWkuYmx1ZS5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMkM2QTlFLCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5ibHVlLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAuYmx1ZS5jYXJkOmhvdmVyLFxuLnVpLmJsdWUuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzIxNWQ4ZiwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBWaW9sZXQgKi9cbi51aS52aW9sZXQuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC52aW9sZXQuY2FyZCxcbi51aS52aW9sZXQuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzY0MzVDOSwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkudmlvbGV0LmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAudmlvbGV0LmNhcmQ6aG92ZXIsXG4udWkudmlvbGV0LmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICM1ODI5YmIsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogUHVycGxlICovXG4udWkucHVycGxlLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAucHVycGxlLmNhcmQsXG4udWkucHVycGxlLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNBMzMzQzgsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLnB1cnBsZS5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnB1cnBsZS5jYXJkOmhvdmVyLFxuLnVpLnB1cnBsZS5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjOTYyN2JhLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIFBpbmsgKi9cbi51aS5waW5rLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAucGluay5jYXJkLFxuLnVpLnBpbmsuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0UwMzk5NywgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkucGluay5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnBpbmsuY2FyZDpob3Zlcixcbi51aS5waW5rLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNlNjFhOGQsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogQnJvd24gKi9cbi51aS5icm93bi5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmJyb3duLmNhcmQsXG4udWkuYnJvd24uY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0E1NjczRiwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkuYnJvd24uY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5icm93bi5jYXJkOmhvdmVyLFxuLnVpLmJyb3duLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICM5NzViMzMsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogR3JleSAqL1xuLnVpLmdyZXkuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ncmV5LmNhcmQsXG4udWkuZ3JleS5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjNzY3Njc2LCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5ncmV5LmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAuZ3JleS5jYXJkOmhvdmVyLFxuLnVpLmdyZXkuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzgzODM4MywgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBCbGFjayAqL1xuLnVpLmJsYWNrLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAuYmxhY2suY2FyZCxcbi51aS5ibGFjay5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMUIxQzFELCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5ibGFjay5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLmJsYWNrLmNhcmQ6aG92ZXIsXG4udWkuYmxhY2suY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzI3MjkyYSwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBDYXJkIENvdW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm9uZS5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLm9uZS5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudHdvLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gIG1hcmdpbi1yaWdodDogLTFlbTtcbn1cbi51aS50d28uY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKCA1MCUgIC0gIDJlbSApO1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cbi51aS50aHJlZS5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xZW07XG59XG4udWkudGhyZWUuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKCAzMy4zMzMzMzMzMyUgIC0gIDJlbSApO1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cbi51aS5mb3VyLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNzVlbTtcbn1cbi51aS5mb3VyLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMjUlICAtICAxLjVlbSApO1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbn1cbi51aS5maXZlLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNzVlbTtcbn1cbi51aS5maXZlLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMjAlICAtICAxLjVlbSApO1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbn1cbi51aS5zaXguY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC43NWVtO1xufVxuLnVpLnNpeC5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoIDE2LjY2NjY2NjY3JSAgLSAgMS41ZW0gKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1ZW07XG59XG4udWkuc2V2ZW4uY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjVlbTtcbn1cbi51aS5zZXZlbi5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoIDE0LjI4NTcxNDI5JSAgLSAgMWVtICk7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5laWdodC5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC41ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNWVtO1xufVxuLnVpLmVpZ2h0LmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMTIuNSUgIC0gIDFlbSApO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi51aS5uaW5lLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4udWkubmluZS5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoIDExLjExMTExMTExJSAgLSAgMWVtICk7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuLnVpLnRlbi5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC41ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNWVtO1xufVxuLnVpLnRlbi5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoIDEwJSAgLSAgMWVtICk7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRG91Ymxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1vYmlsZSBPbmx5ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS50d28uZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbiAgLnVpLnR3by5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICB9XG4gIC51aS50aHJlZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS50aHJlZS5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggNTAlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5mb3VyLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLmZvdXIuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDUwJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZml2ZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5maXZlLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCA1MCUgIC0gIDJlbSApO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLnNpeC5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5zaXguZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDUwJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuc2V2ZW4uZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuc2V2ZW4uZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkubmluZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5uaW5lLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCAzMy4zMzMzMzMzMyUgIC0gIDJlbSApO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLnRlbi5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS50ZW4uZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxufVxuLyogVGFibGV0IE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkudHdvLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICB9XG4gIC51aS50d28uZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgfVxuICAudWkudGhyZWUuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkudGhyZWUuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDUwJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZm91ci5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5mb3VyLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCA1MCUgIC0gIDJlbSApO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLmZpdmUuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuZml2ZS5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggMzMuMzMzMzMzMzMlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5zaXguZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuc2l4LmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCAzMy4zMzMzMzMzMyUgIC0gIDJlbSApO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLmVpZ2h0LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLmVpZ2h0LmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCAzMy4zMzMzMzMzMyUgIC0gIDJlbSApO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLmVpZ2h0LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjc1ZW07XG4gIH1cbiAgLnVpLmVpZ2h0LmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCAyNSUgIC0gIDEuNWVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbiAgfVxuICAudWkubmluZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjc1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC43NWVtO1xuICB9XG4gIC51aS5uaW5lLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCAyNSUgIC0gIDEuNWVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbiAgfVxuICAudWkudGVuLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjc1ZW07XG4gIH1cbiAgLnVpLnRlbi5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggMjAlICAtICAxLjVlbSApO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjc1ZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGFja2FibGUuY2FyZHMge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5jYXJkcyAuY2FyZDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5jYXJkcyA+IC5jYXJkIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMWVtIDFlbTtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGNhbGMoIDEwMCUgIC0gIDJlbSApICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBDb21tZW50XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29tbWVudHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb21tZW50ICovXG4vKiBOZXN0ZWQgQ29tbWVudCAqL1xuLyogQXZhdGFyICovXG4vKiBDb250ZW50ICovXG4vKiBBdXRob3IgKi9cbi8qIE1ldGFkYXRhICovXG4vKiBUZXh0ICovXG4vKiBBY3Rpb25zICovXG4vKiBSZXBseSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaHJlYWRlZCAqL1xuLyogTWluaW1hbCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb21tZW50c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbW1lbnQgKi9cbi8qIE5lc3RlZCBDb21tZW50ICovXG4vKiBBdmF0YXIgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEF1dGhvciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIFRleHQgKi9cbi8qIEFjdGlvbnMgKi9cbi8qIFJlcGx5ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRocmVhZGVkICovXG4vKiBNaW5pbWFsICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvbW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIHtcbiAgbWFyZ2luOiAxLjVlbSAwZW07XG4gIG1heC13aWR0aDogNjUwcHg7XG59XG4udWkuY29tbWVudHM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuY29tbWVudHM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29tbWVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWFyZ2luOiAwLjVlbSAwZW0gMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAwZW0gMGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgTmVzdGVkIENvbW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5jb21tZW50cyB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjVlbSAwLjVlbTtcbiAgcGFkZGluZzogMWVtIDBlbSAxZW0gMWVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5jb21tZW50czpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRzIC5jb21tZW50IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBdmF0YXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmF2YXRhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMC4yZW0gMGVtIDBlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCBpbWcuYXZhdGFyLFxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hdmF0YXIgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMGVtIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogSWYgdGhlcmUgaXMgYW4gYXZhdGFyIG1vdmUgY29udGVudCBvdmVyICovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgPiAuYXZhdGFyIH4gLmNvbnRlbnQge1xuICBtYXJnaW4tbGVmdDogMy41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEF1dGhvclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAuYXV0aG9yIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCBhLmF1dGhvciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCBhLmF1dGhvcjpob3ZlciB7XG4gIGNvbG9yOiAjMzI3N2IyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBNZXRhZGF0YVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAubWV0YWRhdGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5tZXRhZGF0YSA+ICoge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDBlbSAwZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLm1ldGFkYXRhID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29tbWVudCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IC50ZXh0IHtcbiAgbWFyZ2luOiAwLjI1ZW0gMGVtIDAuNWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVXNlciBBY3Rpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIHtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW0gMC43NWVtIDBlbSAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmFjdGlvbnMgYTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmFjdGlvbnMgYS5hY3RpdmUsXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmFjdGlvbnMgYTpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBSZXBseSBGb3JtXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzID4gLnJlcGx5LmZvcm0ge1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLnJlcGx5LmZvcm0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLnVpLmNvbW1lbnRzIC5yZXBseS5mb3JtIHRleHRhcmVhIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGhlaWdodDogMTJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5jb2xsYXBzZWQuY29tbWVudHMsXG4udWkuY29tbWVudHMgLmNvbGxhcHNlZC5jb21tZW50cyxcbi51aS5jb21tZW50cyAuY29sbGFwc2VkLmNvbW1lbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVGhyZWFkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGhyZWFkZWQuY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRzIHtcbiAgbWFyZ2luOiAtMS41ZW0gMCAtMWVtIDEuMjVlbTtcbiAgcGFkZGluZzogM2VtIDBlbSAyZW0gMi4yNWVtO1xuICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTWluaW1hbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pbWFsLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgbGVmdDogYXV0bztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMXM7XG59XG4udWkubWluaW1hbC5jb21tZW50cyAuY29tbWVudCA+IC5jb250ZW50OmhvdmVyID4gLmFjdGlvbnMge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5odWdlLmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUuY29tbWVudHMge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEZlZWRcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgRmVlZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGZWVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFdmVudCAqL1xuLyogRXZlbnQgTGFiZWwgKi9cbi8qIEljb24gTGFiZWwgKi9cbi8qIEltYWdlIExhYmVsICovXG4vKiBDb250ZW50IHcvIExhYmVsICovXG4vKiBDb250ZW50ICovXG4vKiBEYXRlICovXG4vKiBTdW1tYXJ5ICovXG4vKiBTdW1tYXJ5IEltYWdlICovXG4vKiBTdW1tYXJ5IERhdGUgKi9cbi8qIFVzZXIgKi9cbi8qIEV4dHJhIFN1bW1hcnkgRGF0YSAqL1xuLyogRXh0cmEgSW1hZ2VzICovXG4vKiBFeHRyYSBUZXh0ICovXG4vKiBNZXRhZGF0YSBHcm91cCAqL1xuLyogTGlrZSAqL1xuLyogTWV0YWRhdGEgRGl2aWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGZWVkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZlZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEV2ZW50ICovXG4vKiBFdmVudCBMYWJlbCAqL1xuLyogSWNvbiBMYWJlbCAqL1xuLyogSW1hZ2UgTGFiZWwgKi9cbi8qIENvbnRlbnQgdy8gTGFiZWwgKi9cbi8qIENvbnRlbnQgKi9cbi8qIERhdGUgKi9cbi8qIFN1bW1hcnkgKi9cbi8qIFN1bW1hcnkgSW1hZ2UgKi9cbi8qIFN1bW1hcnkgRGF0ZSAqL1xuLyogVXNlciAqL1xuLyogRXh0cmEgU3VtbWFyeSBEYXRhICovXG4vKiBFeHRyYSBJbWFnZXMgKi9cbi8qIEV4dHJhIFRleHQgKi9cbi8qIE1ldGFkYXRhIEdyb3VwICovXG4vKiBMaWtlICovXG4vKiBNZXRhZGF0YSBEaXZpZGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgQWN0aXZpdHkgRmVlZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5mZWVkIHtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLmZlZWQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZmVlZDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBFdmVudCAqL1xuLnVpLmZlZWQgPiAuZXZlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC4yMTQyODU3MXJlbSAwZW07XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAwcHg7XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG4udWkuZmVlZCA+IC5ldmVudDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qIEV2ZW50IExhYmVsICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDIuNWVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5sYWJlbCAuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjI1ZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsICsgLmNvbnRlbnQge1xuICBtYXJnaW46IDAuNWVtIDBlbSAwLjM1NzE0Mjg2ZW0gMS4xNDI4NTcxNGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29udGVudCAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQ6bGFzdC1jaGlsZCA+IC5jb250ZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qIExpbmsgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIERhdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5kYXRlIHtcbiAgbWFyZ2luOiAtMC41cmVtIDBlbSAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3VtbWFyeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnN1bW1hcnkge1xuICBtYXJnaW46IDBlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIFN1bW1hcnkgSW1hZ2UgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnN1bW1hcnkgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMGVtO1xuICBtYXJnaW46IC0wLjI1ZW0gMC4yNWVtIDBlbSAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFVzZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC51c2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnVzZXIgaW1nIHtcbiAgbWFyZ2luOiAtMC4yNWVtIDAuMjVlbSAwZW0gMGVtO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgSW5saW5lIERhdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBEYXRlIGluc2lkZSBTdW1tYXJ5ICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5zdW1tYXJ5ID4gLmRhdGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNWVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEV4dHJhIFN1bW1hcnlcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5leHRyYSB7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDBlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIEltYWdlcyAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAuZXh0cmEuaW1hZ2VzIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW0gMC4yNWVtIDBlbSAwZW07XG4gIHdpZHRoOiA2ZW07XG59XG4vKiBUZXh0ICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5leHRyYS50ZXh0IHtcbiAgcGFkZGluZzogMGVtO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1ldGFcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbiAgbWFyZ2luOiAwLjVlbSAwZW0gMGVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHBhZGRpbmc6IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+ICo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IC0xZW07XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgLmxpa2Uge1xuICBjb2xvcjogJyc7XG4gIHRyYW5zaXRpb246IDAuMnMgY29sb3IgZWFzZTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgLmxpa2U6aG92ZXIgLmljb24ge1xuICBjb2xvcjogI0ZGMjczMztcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgLmFjdGl2ZS5saWtlIC5pY29uIHtcbiAgY29sb3I6ICNFRjQwNEE7XG59XG4vKiBGaXJzdCBlbGVtZW50ICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiA6Zmlyc3QtY2hpbGQ6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEFjdGlvbiAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSBhLFxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+IC5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIGE6aG92ZXIsXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIGE6aG92ZXIgLmljb24sXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gLmljb246aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnNtYWxsLmZlZWQge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuZmVlZCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5mZWVkIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBJdGVtXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEl0ZW1cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyb3VwICovXG4vKiBJdGVtICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbWFnZSAqL1xuLyogQ29udGVudCAqL1xuLyogSGVhZGVyICovXG4vKiBNZXRhZGF0YSAqL1xuLyogSWNvbnMgKi9cbi8qIEFjdGlvbnMgKi9cbi8qIExpbmtzICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogQ29udGVudCBJbWFnZSAqL1xuLyogQXZhdGFyIEltYWdlICovXG4vKiBQYXJhZ3JhcGggKi9cbi8qIEFkZGl0aW9uYWwgQ29udGVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWxheGVkICovXG4vKiBEaXZpZGVkICovXG4vKiBVbnN0YWNrYWJsZSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgSXRlbVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXAgKi9cbi8qIEl0ZW0gKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIE1ldGFkYXRhICovXG4vKiBJY29ucyAqL1xuLyogQWN0aW9ucyAqL1xuLyogTGlua3MgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBDb250ZW50IEltYWdlICovXG4vKiBBdmF0YXIgSW1hZ2UgKi9cbi8qIFBhcmFncmFwaCAqL1xuLyogQWRkaXRpb25hbCBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlbGF4ZWQgKi9cbi8qIERpdmlkZWQgKi9cbi8qIFVuc3RhY2thYmxlICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSXRlbVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDByZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlO1xuICB6LWluZGV4OiAnJztcbn1cbi51aS5pdGVtcyA+IC5pdGVtIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJdGVtc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyB7XG4gIG1hcmdpbjogMS41ZW0gMGVtO1xufVxuLnVpLml0ZW1zOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuaXRlbXM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSXRlbVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuaXRlbXMgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEltYWdlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICBtYXgtaGVpZ2h0OiAnJztcbiAgYWxpZ24tc2VsZjogdG9wO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlOm9ubHktY2hpbGQgPiBpbWcge1xuICBib3JkZXItcmFkaXVzOiAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnICc7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgKyAuY29udGVudCB7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBhbGlnbi1zZWxmOiB0b3A7XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50ID4gLmhlYWRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAtMC4yMTQyNWVtIDBlbSAwZW07XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi8qIERlZmF1bHQgSGVhZGVyIFNpemUgKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiAuaGVhZGVyOm5vdCgudWkpIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udWkuaXRlbXMgPiAuaXRlbSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgQ29udGVudCBJbWFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIC5jb250ZW50IGltZyB7XG4gIGFsaWduLXNlbGY6IG1pZGRsZTtcbiAgd2lkdGg6ICcnO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gaW1nLmF2YXRhcixcbi51aS5pdGVtcyA+IC5pdGVtIC5hdmF0YXIgaW1nIHtcbiAgd2lkdGg6ICcnO1xuICBoZWlnaHQ6ICcnO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBEZXNjcmlwdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgbWF4LXdpZHRoOiBhdXRvO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IHAge1xuICBtYXJnaW46IDBlbSAwZW0gMC41ZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1ldGFcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSAubWV0YSB7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDAuNWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5tZXRhICoge1xuICBtYXJnaW4tcmlnaHQ6IDAuM2VtO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5tZXRhIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogR2VuZXJpYyAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCBhOm5vdCgudWkpIHtcbiAgY29sb3I6ICcnO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogJyc7XG59XG4vKiBIZWFkZXIgKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiBhLmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IGEuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMzMjc3YjI7XG59XG4vKiBNZXRhICovXG4udWkuaXRlbXMgPiAuaXRlbSAubWV0YSA+IGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgPiBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS1TdGFyLS0tLS0gKi9cbi8qIEljb24gKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmZhdm9yaXRlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmZhdm9yaXRlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogI0ZGQjcwQTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmFjdGl2ZS5mYXZvcml0ZS5pY29uIHtcbiAgY29sb3I6ICNGRkU2MjM7XG59XG4vKi0tLS0tTGlrZS0tLS0tICovXG4vKiBJY29uICovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5saWtlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmxpa2UuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjRkYyNzMzO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAuYWN0aXZlLmxpa2UuaWNvbiB7XG4gIGNvbG9yOiAjRkYyNzMzO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tXG4gIEV4dHJhIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIC5leHRyYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbjogMC41cmVtIDBlbSAwZW07XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbTtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLmV4dHJhID4gKiB7XG4gIG1hcmdpbjogMC4yNXJlbSAwLjVyZW0gMC4yNXJlbSAwZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSAuZXh0cmEgPiBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIG1hcmdpbjogMC4yNXJlbSAwZW0gMC4yNXJlbSAwLjVyZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSAuZXh0cmE6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgUmVzcG9uc2l2ZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIERlZmF1bHQgSW1hZ2UgV2lkdGggKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlOm5vdCgudWkpIHtcbiAgd2lkdGg6IDE3NXB4O1xufVxuLyogVGFibGV0IE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkuaXRlbXMgPiAuaXRlbSB7XG4gICAgbWFyZ2luOiAxZW0gMGVtO1xuICB9XG4gIC51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlOm5vdCgudWkpIHtcbiAgICB3aWR0aDogMTUwcHg7XG4gIH1cbiAgLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgKyAuY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMGVtIDBlbSAwZW0gMWVtO1xuICB9XG59XG4vKiBNb2JpbGUgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW46IDJlbSAwZW07XG4gIH1cbiAgLnVpLml0ZW1zOm5vdCgudW5zdGFja2FibGUpID4gLml0ZW0gPiAuaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSA+IC5pbWFnZSxcbiAgLnVpLml0ZW1zOm5vdCgudW5zdGFja2FibGUpID4gLml0ZW0gPiAuaW1hZ2UgPiBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgfVxuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxLjVlbSAwZW0gMGVtO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgKyBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uY29udGVudCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXS5jb250ZW50IHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgKyBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uY29udGVudCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSZWxheGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJlbGF4ZWQuaXRlbXMgPiAuaXRlbSB7XG4gIG1hcmdpbjogMS41ZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5pdGVtcyA+IC5pdGVtIHtcbiAgbWFyZ2luOiAyZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlZC5pdGVtcyA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAxZW0gMGVtO1xufVxuLnVpLmRpdmlkZWQuaXRlbXMgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuZGl2aWRlZC5pdGVtcyA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBlbSAhaW1wb3J0YW50O1xufVxuLyogUmVsYXhlZCBEaXZpZGVkICovXG4udWkucmVsYXhlZC5kaXZpZGVkLml0ZW1zID4gLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMS41ZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5kaXZpZGVkLml0ZW1zID4gLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMmVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgYS5pdGVtOmhvdmVyLFxuLnVpLmxpbmsuaXRlbXMgPiAuaXRlbTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS5pdGVtcyBhLml0ZW06aG92ZXIgLmNvbnRlbnQgLmhlYWRlcixcbi51aS5saW5rLml0ZW1zID4gLml0ZW06aG92ZXIgLmNvbnRlbnQgLmhlYWRlciB7XG4gIGNvbG9yOiAjMzI3N2IyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLVxuICAgVW5zdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkudW5zdGFja2FibGUuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSxcbiAgLnVpLnVuc3RhY2thYmxlLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgPiBpbWcge1xuICAgIHdpZHRoOiAxMjVweCAhaW1wb3J0YW50O1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFN0YXRpc3RpY1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhdGlzdGljXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cCAqL1xuLyogR3JvdXAgRWxlbWVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmFsdWUgKi9cbi8qIExhYmVsICovXG4vKiBUZXh0ICovXG4vKiBMYWJlbCBJbWFnZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbG9hdGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogSXRlbSBXaWR0aCAqL1xuLyogU2l6ZSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFN0YXRpc3RpY1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXAgKi9cbi8qIEdyb3VwIEVsZW1lbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZhbHVlICovXG4vKiBMYWJlbCAqL1xuLyogVGV4dCAqL1xuLyogTGFiZWwgSW1hZ2UgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmxvYXRlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEl0ZW0gV2lkdGggKi9cbi8qIFNpemUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyb3VwICovXG4vKiBHcm91cCBFbGVtZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMYWJlbCAqL1xuLyogVGV4dCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhdGlzdGljXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU3RhbmRhbG9uZSAqL1xuLnVpLnN0YXRpc3RpYyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46IDFlbSAwZW07XG4gIG1heC13aWR0aDogYXV0bztcbn1cbi51aS5zdGF0aXN0aWMgKyAudWkuc3RhdGlzdGljIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxLjRlbTtcbn1cbi51aS5zdGF0aXN0aWM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuc3RhdGlzdGljOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgR3JvdXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBHcm91cGVkICovXG4udWkuc3RhdGlzdGljcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4udWkuc3RhdGlzdGljcyA+IC5zdGF0aXN0aWMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleDogMCAxIGF1dG87XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMGVtIDAgMWVtIDEuNGVtO1xuICBtYXgtd2lkdGg6IGF1dG87XG59XG4udWkuc3RhdGlzdGljcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMWVtIC0xLjRlbSAtMWVtO1xufVxuLyogQ2xlYXJpbmcgKi9cbi51aS5zdGF0aXN0aWNzOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuc3RhdGlzdGljczpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgVmFsdWVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGNvbG9yOiAjMUIxQzFEO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAubGFiZWwsXG4udWkuc3RhdGlzdGljID4gLmxhYmVsIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLyogVG9wIExhYmVsICovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLmxhYmVsIH4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC5sYWJlbCB+IC52YWx1ZSB7XG4gIG1hcmdpbi10b3A6IDByZW07XG59XG4vKiBCb3R0b20gTGFiZWwgKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUgfiAubGFiZWwsXG4udWkuc3RhdGlzdGljID4gLnZhbHVlIH4gLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMHJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBJY29uIFZhbHVlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSAuaWNvbixcbi51aS5zdGF0aXN0aWMgPiAudmFsdWUgLmljb24ge1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBUZXh0IFZhbHVlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgbWluLWhlaWdodDogMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlICsgLmxhYmVsLFxuLnVpLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlICsgLmxhYmVsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgSW1hZ2UgVmFsdWVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlIGltZyxcbi51aS5zdGF0aXN0aWMgPiAudmFsdWUgaW1nIHtcbiAgbWF4LWhlaWdodDogM3JlbTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBDb3VudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50ZW4uc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLnRlbi5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDEwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5uaW5lLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTFlbTtcbn1cbi51aS5uaW5lLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTEuMTExMTExMTElO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLmVpZ2h0LnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTFlbTtcbn1cbi51aS5laWdodC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDEyLjUlO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLnNldmVuLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTFlbTtcbn1cbi51aS5zZXZlbi5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDE0LjI4NTcxNDI5JTtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5zaXguc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLnNpeC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5maXZlLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTFlbTtcbn1cbi51aS5maXZlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMjAlO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLmZvdXIuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLmZvdXIuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAyNSU7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkudGhyZWUuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLnRocmVlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMzMuMzMzMzMzMzMlO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLnR3by5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0xZW07XG59XG4udWkudHdvLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogNTAlO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLm9uZS5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0xZW07XG59XG4udWkub25lLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEhvcml6b250YWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWMge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMGVtO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1hcmdpbjogMWVtIDBlbTtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyA+IC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIG1pbi1oZWlnaHQ6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlIC5pY29uLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIC5pY29uIHtcbiAgd2lkdGg6IDEuMThlbTtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC5sYWJlbCxcbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwLjc1ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yZWQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnJlZC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkucmVkLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuLnVpLm9yYW5nZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAub3JhbmdlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5vcmFuZ2Uuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNGMjcxMUM7XG59XG4udWkueWVsbG93LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC55ZWxsb3cuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnllbGxvdy5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0ZCQkQwODtcbn1cbi51aS5vbGl2ZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAub2xpdmUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLm9saXZlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjQjVDQzE4O1xufVxuLnVpLmdyZWVuLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5ncmVlbi5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuZ3JlZW4uc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICMyMUJBNDU7XG59XG4udWkudGVhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAudGVhbC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkudGVhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzAwQjVBRDtcbn1cbi51aS5ibHVlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5ibHVlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ibHVlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjMkM2QTlFO1xufVxuLnVpLnZpb2xldC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAudmlvbGV0LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS52aW9sZXQuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICM2NDM1Qzk7XG59XG4udWkucHVycGxlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5wdXJwbGUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnB1cnBsZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0EzMzNDODtcbn1cbi51aS5waW5rLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5waW5rLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5waW5rLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRTAzOTk3O1xufVxuLnVpLmJyb3duLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5icm93bi5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuYnJvd24uc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNBNTY3M0Y7XG59XG4udWkuZ3JleS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzc2NzY3Njtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuc3RhdGlzdGljIC52YWx1ZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC5sYWJlbCxcbi51aS5pbnZlcnRlZC5zdGF0aXN0aWMgLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5pbnZlcnRlZC5yZWQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnJlZC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQucmVkLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRkY2OTVFO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQub3JhbmdlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2Uuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNGRjg1MUI7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC55ZWxsb3cuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnllbGxvdy5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0ZGRTIxRjtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQub2xpdmUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLm9saXZlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRDlFNzc4O1xufVxuLnVpLmludmVydGVkLmdyZWVuLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5ncmVlbi5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICMyRUNDNDA7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQudGVhbC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQudGVhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzZERkZGRjtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5ibHVlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5ibHVlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjNTM5MUM1O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQudmlvbGV0LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC52aW9sZXQuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNBMjkxRkI7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5wdXJwbGUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnB1cnBsZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0RDNzNGRjtcbn1cbi51aS5pbnZlcnRlZC5waW5rLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5waW5rLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5waW5rLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRkY4RURGO1xufVxuLnVpLmludmVydGVkLmJyb3duLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5icm93bi5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNENjdDMUM7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0RDRERERTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5zdGF0aXN0aWMge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwZW0gMmVtIDFlbSAwZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5zdGF0aXN0aWMge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW0gMmVtO1xufVxuLnVpLmZsb2F0ZWQuc3RhdGlzdGljOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWluaSAqL1xuLnVpLm1pbmkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLm1pbmkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cbi51aS5taW5pLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLm1pbmkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuLnVpLm1pbmkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkubWluaS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xufVxuLyogVGlueSAqL1xuLnVpLnRpbnkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnRpbnkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG59XG4udWkudGlueS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS50aW55Lmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG59XG4udWkudGlueS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS50aW55LnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBTbWFsbCAqL1xuLnVpLnNtYWxsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zbWFsbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDNyZW0gIWltcG9ydGFudDtcbn1cbi51aS5zbWFsbC5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zbWFsbC5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMnJlbSAhaW1wb3J0YW50O1xufVxuLnVpLnNtYWxsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLnNtYWxsLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBNZWRpdW0gKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjhlbSAhaW1wb3J0YW50O1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAzcmVtICFpbXBvcnRhbnQ7XG59XG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbn1cbi8qIExhcmdlICovXG4udWkubGFyZ2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmxhcmdlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogNXJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmxhcmdlLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmxhcmdlLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiA0cmVtICFpbXBvcnRhbnQ7XG59XG4udWkubGFyZ2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkubGFyZ2Uuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDIuNXJlbSAhaW1wb3J0YW50O1xufVxuLyogSHVnZSAqL1xuLnVpLmh1Z2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmh1Z2Uuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiA2cmVtICFpbXBvcnRhbnQ7XG59XG4udWkuaHVnZS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5odWdlLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiA1cmVtICFpbXBvcnRhbnQ7XG59XG4udWkuaHVnZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5odWdlLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiAyLjVyZW0gIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTW9kdWxlcyAqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQWNjb3JkaW9uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBBY2NvcmRpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaXRsZSAqL1xuLyogSWNvbiAqL1xuLyogQ2hpbGQgQWNjb3JkaW9uICovXG4vKiBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0eWxlZCAqL1xuLyogQ29udGVudCAqL1xuLyogQ2hpbGQgQ29udGVudCAqL1xuLyogU3R5bGVkIFRpdGxlICovXG4vKiBTdHlsZWQgVGl0bGUgU3RhdGVzICovXG4vKiBTdHlsZWQgQ2hpbGQgVGl0bGUgU3RhdGVzICovXG4vKiBJbnZlcnRlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIEFjY29yZGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRpdGxlICovXG4vKiBJY29uICovXG4vKiBDaGlsZCBBY2NvcmRpb24gKi9cbi8qIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3R5bGVkICovXG4vKiBDb250ZW50ICovXG4vKiBDaGlsZCBDb250ZW50ICovXG4vKiBTdHlsZWQgVGl0bGUgKi9cbi8qIFN0eWxlZCBUaXRsZSBTdGF0ZXMgKi9cbi8qIFN0eWxlZCBDaGlsZCBUaXRsZSBTdGF0ZXMgKi9cbi8qIEludmVydGVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQWNjb3JkaW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmFjY29yZGlvbixcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIG1hcmdpbjogMWVtIDBlbSAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qIFRpdGxlICovXG4udWkuYWNjb3JkaW9uIC50aXRsZSxcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKiBEZWZhdWx0IFN0eWxpbmcgKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlOm5vdCgudWkpIHtcbiAgcGFkZGluZzogMC41ZW0gMGVtO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKiBDb250ZW50ICovXG4udWkuYWNjb3JkaW9uIC50aXRsZSB+IC5jb250ZW50LFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSB+IC5jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIERlZmF1bHQgU3R5bGluZyAqL1xuLnVpLmFjY29yZGlvbjpub3QoLnN0eWxlZCkgLnRpdGxlIH4gLmNvbnRlbnQ6bm90KC51aSksXG4udWkuYWNjb3JkaW9uOm5vdCguc3R5bGVkKSAuYWNjb3JkaW9uIC50aXRsZSB+IC5jb250ZW50Om5vdCgudWkpIHtcbiAgbWFyZ2luOiAnJztcbiAgcGFkZGluZzogMC41ZW0gMGVtIDFlbTtcbn1cbi51aS5hY2NvcmRpb246bm90KC5zdHlsZWQpIC50aXRsZSB+IC5jb250ZW50Om5vdCgudWkpOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLyogQXJyb3cgKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSAuZHJvcGRvd24uaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxLjI1ZW07XG4gIGhlaWdodDogMWVtO1xuICBtYXJnaW46IDBlbSAwLjI1cmVtIDBlbSAwcmVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNZW51ICovXG4udWkuYWNjb3JkaW9uLm1lbnUgLml0ZW0gLnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS5hY2NvcmRpb24ubWVudSAuaXRlbSAudGl0bGUgPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwLjIxNDI1ZW0gMGVtIDBlbSAxZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG4vKiBIZWFkZXIgKi9cbi51aS5hY2NvcmRpb24gLnVpLmhlYWRlciAuZHJvcGRvd24uaWNvbiB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBtYXJnaW46IDBlbSAwLjI1cmVtIDBlbSAwcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5hY2NvcmRpb24gLmFjdGl2ZS50aXRsZSAuZHJvcGRvd24uaWNvbixcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIC5kcm9wZG93bi5pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuLnVpLmFjY29yZGlvbi5tZW51IC5pdGVtIC5hY3RpdmUudGl0bGUgPiAuZHJvcGRvd24uaWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3R5bGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0eWxlZC5hY2NvcmRpb24ge1xuICB3aWR0aDogNjAwcHg7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbixcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24ge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLnRpdGxlLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGUge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gPiAudGl0bGU6Zmlyc3QtY2hpbGQsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBDb250ZW50ICovXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuY29udGVudCxcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLmNvbnRlbnQge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMC41ZW0gMWVtIDEuNWVtO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuY29udGVudCB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgcGFkZGluZzogMC41ZW0gMWVtIDEuNWVtO1xufVxuLyogSG92ZXIgKi9cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC50aXRsZTpob3Zlcixcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZTpob3Zlcixcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLmFjdGl2ZS50aXRsZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlOmhvdmVyLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogQWN0aXZlICovXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFjY29yZGlvbiAuYWN0aXZlLmNvbnRlbnQsXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLmFjdGl2ZS5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5hY2NvcmRpb24sXG4udWkuZmx1aWQuYWNjb3JkaW9uIC5hY2NvcmRpb24ge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuYWNjb3JkaW9uIC50aXRsZTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQWNjb3JkaW9uJztcbiAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94LWZvbnQtdHRmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LEFBRUFBQUFMQUlBQUF3QXdUMU12TWdnakI1QUFBQUM4QUFBQVlHTnRZWEFQZk9JS0FBQUJIQUFBQUV4bllYTndBQUFBRUFBQUFXZ0FBQUFJWjJ4NVpyeWo2SGdBQUFGd0FBQUF5R2hsWVdULzBJaEhBQUFDT0FBQUFEWm9hR1ZoQXBrQjV3QUFBbkFBQUFBa2FHMTBlQUp1QUJJQUFBS1VBQUFBR0d4dlkyRUFqQUJXQUFBQ3JBQUFBQTV0WVhod0FBZ0FGZ0FBQXJ3QUFBQWdibUZ0WmZDMW4wNEFBQUxjQUFBQlBIQnZjM1FBQXdBQUFBQUVHQUFBQUNBQUF3SUFBWkFBQlFBQUFVd0JaZ0FBQUVjQlRBRm1BQUFBOVFBWkFJUUFBQUFBQUFBQUFBQUFBQUFBQUFBQkVBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBRHcyZ0hnLytELzRBSGdBQ0FBQUFBQkFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQ0FBQUFBd0FBQUJRQUF3QUJBQUFBRkFBRUFEZ0FBQUFLQUFnQUFnQUNBQUVBSVBEYS8vMy8vd0FBQUFBQUlQRFovLzMvL3dBQi8rTVBLd0FEQUFFQUFBQUFBQUFBQUFBQUFBRUFBZi8vQUE4QUFRQUFBQUFBQUFBQUFBSUFBRGM1QVFBQUFBQUJBQUFBQUFBQUFBQUFBZ0FBTnprQkFBQUFBQUVBQUFBQUFBQUFBQUFDQUFBM09RRUFBQUFBQVFBU0FFa0F0d0Z1QUJNQUFEYzBQd0UyRnpZWEZoMEJGQWNHSndZdkFTWTFFZ2FBQlFnSEJRWUdCUWNJQllBRzJ3Y0dmd2NCQVFjRUNmOElCQWNCQVFkL0JnWUFBQUFBQVFBQUFFa0FwUUZ1QUJNQUFEY1JORGMyTXpJZkFSWVZGQThCQmlNaUp5WTFBQVVHQndnRmdBWUdnQVVJQndZRld3RUFDQVVHQm9BRkNBY0ZnQVlHQlFjQUFBQUJBQUFBQVFBQXFXWWxzMThQUFBVQUN3SUFBQUFBQU0vOW8rNEFBQUFBei8yajdnQUFBQUFBdHdGdUFBQUFDQUFDQUFBQUFBQUFBQUVBQUFIZy8rQUFBQUlBQUFBQUFBQzNBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUdBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQzNBQklBdHdBQUFBQUFBQUFLQUJRQUhnQkNBR1FBQUFBQkFBQUFCZ0FVQUFFQUFBQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGdDdUFBRUFBQUFBQUFFQURBQUFBQUVBQUFBQUFBSUFEZ0JBQUFFQUFBQUFBQU1BREFBaUFBRUFBQUFBQUFRQURBQk9BQUVBQUFBQUFBVUFGZ0FNQUFFQUFBQUFBQVlBQmdBdUFBRUFBQUFBQUFvQU5BQmFBQU1BQVFRSkFBRUFEQUFBQUFNQUFRUUpBQUlBRGdCQUFBTUFBUVFKQUFNQURBQWlBQU1BQVFRSkFBUUFEQUJPQUFNQUFRUUpBQVVBRmdBTUFBTUFBUVFKQUFZQURBQTBBQU1BQVFRSkFBb0FOQUJhQUhJQVlRQjBBR2tBYmdCbkFGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeEFDNEFNQUJ5QUdFQWRBQnBBRzRBWjNKaGRHbHVad0J5QUdFQWRBQnBBRzRBWndCU0FHVUFad0IxQUd3QVlRQnlBSElBWVFCMEFHa0FiZ0JuQUVZQWJ3QnVBSFFBSUFCbkFHVUFiZ0JsQUhJQVlRQjBBR1VBWkFBZ0FHSUFlUUFnQUVrQVl3QnZBRTBBYndCdkFHNEFMZ0FEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSkgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JrOVVWRThBQUFTd0FBb0FBQUFBQkdnQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJEUmtZZ0FBQUE5QUFBQVMwQUFBRXRGcG92dUU5VEx6SUFBQUlrQUFBQVlBQUFBR0FJSXdlUVkyMWhjQUFBQW9RQUFBQk1BQUFBVEE5ODRncG5ZWE53QUFBQzBBQUFBQWdBQUFBSUFBQUFFR2hsWVdRQUFBTFlBQUFBTmdBQUFEYi8wSWhIYUdobFlRQUFBeEFBQUFBa0FBQUFKQUtaQWVkb2JYUjRBQUFETkFBQUFCZ0FBQUFZQW00QUVtMWhlSEFBQUFOTUFBQUFCZ0FBQUFZQUJsQUFibUZ0WlFBQUExUUFBQUU4QUFBQlBQQzFuMDV3YjNOMEFBQUVrQUFBQUNBQUFBQWdBQU1BQUFFQUJBUUFBUUVCQjNKaGRHbHVad0FCQWdBQkFEcjRIQUw0R3dQNEdBUWVDZ0FaVS8rTGl4NEtBQmxULzR1TERBZUxhL2lVK0hRRkhRQUFBSGtQSFFBQUFINFJIUUFBQUFrZEFBQUJKQklBQndFQkJ3MFBFUlFaSG5KaGRHbHVaM0poZEdsdVozVXdkVEYxTWpCMVJqQkVPWFZHTUVSQkFBQUNBWWtBQkFBR0FRRUVCd29OVnAzOGxBNzhsQTc4bEE3N2xBNzczWjMzYnhXTGtJMlFqNDRJOXhUM0ZBV09qNUNOa0l1UWk0K0pqb2VQaUkyR2k0WUlpL3VVQll1R2lZZUhpSWlIaDRtR2k0YUxobzJJandqN0ZQY1VCWWVPaVkrTGtBZ08rOTJMNWhXTDk1UUZpNUNOa0k2T2o0K1BqWkNMa0l1UWlZNkhDUGNVK3hRRmo0aU5ob3VHaTRhSmg0ZUlDUHNVK3hRRmlJZUdpWWFMaG91SGpZZVBpSTZKajR1UUNBNzRsQlQ0bEJXTERBb0FBQUFBQXdJQUFaQUFCUUFBQVV3QlpnQUFBRWNCVEFGbUFBQUE5UUFaQUlRQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEdzJnSGcvK0QvNEFIZ0FDQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFDQUFBQUF3QUFBQlFBQXdBQkFBQUFGQUFFQURnQUFBQUtBQWdBQWdBQ0FBRUFJUERhLy8zLy93QUFBQUFBSVBEWi8vMy8vd0FCLytNUEt3QURBQUVBQUFBQUFBQUFBQUFBQUFFQUFmLy9BQThBQVFBQUFBRUFBRGZZT0paZkR6ejFBQXNDQUFBQUFBRFAvYVB1QUFBQUFNLzlvKzRBQUFBQUFMY0JiZ0FBQUFnQUFnQUFBQUFBQUFBQkFBQUI0UC9nQUFBQ0FBQUFBQUFBdHdBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQmdBQUFBQUFBQUFBQUFBQUFBRUFBQUFBdHdBU0FMY0FBQUFBVUFBQUJnQUFBQUFBRGdDdUFBRUFBQUFBQUFFQURBQUFBQUVBQUFBQUFBSUFEZ0JBQUFFQUFBQUFBQU1BREFBaUFBRUFBQUFBQUFRQURBQk9BQUVBQUFBQUFBVUFGZ0FNQUFFQUFBQUFBQVlBQmdBdUFBRUFBQUFBQUFvQU5BQmFBQU1BQVFRSkFBRUFEQUFBQUFNQUFRUUpBQUlBRGdCQUFBTUFBUVFKQUFNQURBQWlBQU1BQVFRSkFBUUFEQUJPQUFNQUFRUUpBQVVBRmdBTUFBTUFBUVFKQUFZQURBQTBBQU1BQVFRSkFBb0FOQUJhQUhJQVlRQjBBR2tBYmdCbkFGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeEFDNEFNQUJ5QUdFQWRBQnBBRzRBWjNKaGRHbHVad0J5QUdFQWRBQnBBRzRBWndCU0FHVUFad0IxQUd3QVlRQnlBSElBWVFCMEFHa0FiZ0JuQUVZQWJ3QnVBSFFBSUFCbkFHVUFiZ0JsQUhJQVlRQjBBR1VBWkFBZ0FHSUFlUUFnQUVrQVl3QnZBRTBBYndCdkFHNEFMZ0FEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSkgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qIERyb3Bkb3duIEljb24gKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSAuZHJvcGRvd24uaWNvbiB7XG4gIGZvbnQtZmFtaWx5OiBBY2NvcmRpb247XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLmFjY29yZGlvbiAudGl0bGUgLmRyb3Bkb3duLmljb246YmVmb3JlLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSAuZHJvcGRvd24uaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMGRhJyAvKnJ0bDonXFxmMGQ5JyovO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBDaGVja2JveFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENoZWNrYm94XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTGFiZWwgKi9cbi8qIDI2cHggQCAxNC9lbSAqL1xuLyogQ2hlY2tib3ggKi9cbi8qIENoZWNrbWFyayAqL1xuLyogTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKiBQcmVzc2VkICovXG4vKiBGb2N1cyAqL1xuLyogQWN0aXZlICovXG4vKiBBY3RpdmUgRm9jdXMgKi9cbi8qIEluZGV0ZXJtaW5hdGUgKi9cbi8qIERpc2FibGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJhZGlvICovXG4vKiBVc2VzIHB4IHRvIGF2b2lkIHJvdW5kaW5nIGlzc3VlcyB3aXRoIGNpcmNsZXMgKi9cbi8qIDdweCBhcyB1bml0bGVzcyB2YWx1ZSBmcm9tIHJhZGlvIHNpemUgKi9cbi8qIFNsaWRlciAmIFRvZ2dsZSBIYW5kbGUgKi9cbi8qIFNsaWRlciAqL1xuLyogU2xpZGVyIFN0YXRlcyAqL1xuLyogVG9nZ2xlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ2hlY2tib3hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMYWJlbCAqL1xuLyogMjZweCBAIDE0L2VtICovXG4vKiBDaGVja2JveCAqL1xuLyogQ2hlY2ttYXJrICovXG4vKiBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qIFByZXNzZWQgKi9cbi8qIEZvY3VzICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLyogSW5kZXRlcm1pbmF0ZSAqL1xuLyogRGlzYWJsZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmFkaW8gKi9cbi8qIFVzZXMgcHggdG8gYXZvaWQgcm91bmRpbmcgaXNzdWVzIHdpdGggY2lyY2xlcyAqL1xuLyogN3B4IGFzIHVuaXRsZXNzIHZhbHVlIGZyb20gcmFkaW8gc2l6ZSAqL1xuLyogU2xpZGVyICYgVG9nZ2xlIEhhbmRsZSAqL1xuLyogU2xpZGVyICovXG4vKiBTbGlkZXIgU3RhdGVzICovXG4vKiBUb2dnbGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIENoZWNrYm94XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdXRsaW5lOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbWluLWhlaWdodDogMTdweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMTdweDtcbiAgbWluLXdpZHRoOiAxN3B4O1xufVxuLyogSFRNTCBDaGVja2JveCAqL1xuLnVpLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbi51aS5jaGVja2JveCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiBub25lO1xuICB6LWluZGV4OiAzO1xuICB3aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxN3B4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQm94XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IC5ib3gsXG4udWkuY2hlY2tib3ggbGFiZWwge1xuICBjdXJzb3I6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMS44NTcxNGVtO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5jaGVja2JveCAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBsYWJlbDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2hlY2ttYXJrXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDE3cHg7XG4gIGhlaWdodDogMTdweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTGFiZWxcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnNpZGUgKi9cbi51aS5jaGVja2JveCBsYWJlbCxcbi51aS5jaGVja2JveCArIGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIE91dHNpZGUgKi9cbi51aS5jaGVja2JveCArIGxhYmVsIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IC5ib3g6aG92ZXI6OmJlZm9yZSxcbi51aS5jaGVja2JveCBsYWJlbDpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xufVxuLnVpLmNoZWNrYm94IGxhYmVsOmhvdmVyLFxuLnVpLmNoZWNrYm94ICsgbGFiZWw6aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRG93blxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCAuYm94OmFjdGl2ZTo6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGxhYmVsOmFjdGl2ZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0Y5RkFGQjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xufVxuLnVpLmNoZWNrYm94IC5ib3g6YWN0aXZlOjphZnRlcixcbi51aS5jaGVja2JveCBsYWJlbDphY3RpdmU6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6YWN0aXZlIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbn1cbi51aS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbDphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xufVxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBJbmRldGVybWluYXRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGUgfiAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xufVxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGUgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGUgfiBsYWJlbDphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBBY3RpdmUgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZTpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGU6Zm9jdXMgfiBsYWJlbDpiZWZvcmUsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQ6Zm9jdXMgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZTpmb2N1cyB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZTpmb2N1cyB+IGxhYmVsOmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQ6Zm9jdXMgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQ6Zm9jdXMgfiBsYWJlbDphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFJlYWQtT25seVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yZWFkLW9ubHkuY2hlY2tib3gsXG4udWkucmVhZC1vbmx5LmNoZWNrYm94IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXNhYmxlZC5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLmRpc2FibGVkLmNoZWNrYm94IGxhYmVsLFxuLnVpLmNoZWNrYm94IGlucHV0W2Rpc2FibGVkXSB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXRbZGlzYWJsZWRdIH4gbGFiZWwge1xuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC41O1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSGlkZGVuXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbGl6ZWQgY2hlY2tib3ggbW92ZXMgaW5wdXQgYmVsb3cgZWxlbWVudFxuIHRvIHByZXZlbnQgbWFudWFsbHkgdHJpZ2dlcmluZyAqL1xuLnVpLmNoZWNrYm94IGlucHV0LmhpZGRlbiB7XG4gIHotaW5kZXg6IC0xO1xufVxuLyogU2VsZWN0YWJsZSBMYWJlbCAqL1xuLnVpLmNoZWNrYm94IGlucHV0LmhpZGRlbiArIGxhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFJhZGlvXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJhZGlvLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMTVweDtcbn1cbi51aS5yYWRpby5jaGVja2JveCAuYm94LFxuLnVpLnJhZGlvLmNoZWNrYm94IGxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjg1NzE0ZW07XG59XG4vKiBCb3ggKi9cbi51aS5yYWRpby5jaGVja2JveCAuYm94OmJlZm9yZSxcbi51aS5yYWRpby5jaGVja2JveCBsYWJlbDpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgdHJhbnNmb3JtOiBub25lO1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIHRvcDogMXB4O1xuICBsZWZ0OiAwcHg7XG59XG4vKiBCdWxsZXQgKi9cbi51aS5yYWRpby5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGxhYmVsOmFmdGVyIHtcbiAgYm9yZGVyOiBub25lO1xuICBjb250ZW50OiAnJyAhaW1wb3J0YW50O1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBsaW5lLWhlaWdodDogMTVweDtcbn1cbi8qIFJhZGlvIENoZWNrYm94ICovXG4udWkucmFkaW8uY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBsYWJlbDphZnRlciB7XG4gIHRvcDogMXB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjQ2NjY2NjY3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIEZvY3VzICovXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogSW5kZXRlcm1pbmF0ZSAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmluZGV0ZXJtaW5hdGUgfiAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmluZGV0ZXJtaW5hdGUgfiBsYWJlbDphZnRlciB7XG4gIG9wYWNpdHk6IDA7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTbGlkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2xpZGVyLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMS4yNXJlbTtcbn1cbi8qIElucHV0ICovXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0IHtcbiAgd2lkdGg6IDMuNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xufVxuLyogTGFiZWwgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveCxcbi51aS5zbGlkZXIuY2hlY2tib3ggbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDQuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDFyZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKiBMaW5lICovXG4udWkuc2xpZGVyLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbDpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDBlbTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAwLjRyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIHdpZHRoOiAzLjVyZW07XG4gIGhlaWdodDogMC4yMTQyODU3MXJlbTtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlO1xufVxuLyogSGFuZGxlICovXG4udWkuc2xpZGVyLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkuc2xpZGVyLmNoZWNrYm94IGxhYmVsOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHRvcDogLTAuMjVyZW07XG4gIGxlZnQ6IDBlbTtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlO1xufVxuLyogRm9jdXMgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3JkZXI6IG5vbmU7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNsaWRlci5jaGVja2JveCAuYm94OmhvdmVyLFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbDpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4udWkuc2xpZGVyLmNoZWNrYm94IC5ib3g6aG92ZXI6OmJlZm9yZSxcbi51aS5zbGlkZXIuY2hlY2tib3ggbGFiZWw6aG92ZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3gsXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YWZ0ZXIsXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDphZnRlciB7XG4gIGxlZnQ6IDJyZW07XG59XG4vKiBBY3RpdmUgRm9jdXMgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IC5ib3gsXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVG9nZ2xlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRvZ2dsZS5jaGVja2JveCB7XG4gIG1pbi1oZWlnaHQ6IDEuNXJlbTtcbn1cbi8qIElucHV0ICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0IHtcbiAgd2lkdGg6IDMuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG59XG4vKiBMYWJlbCAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCAuYm94LFxuLnVpLnRvZ2dsZS5jaGVja2JveCBsYWJlbCB7XG4gIG1pbi1oZWlnaHQ6IDEuNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiA0LjVyZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBsYWJlbCB7XG4gIHBhZGRpbmctdG9wOiAwLjE1ZW07XG59XG4vKiBTd2l0Y2ggKi9cbi51aS50b2dnbGUuY2hlY2tib3ggLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgdG9wOiAwcmVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3gtc2hhZG93OiBub25lO1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyogSGFuZGxlICovXG4udWkudG9nZ2xlLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHRvcDogMHJlbTtcbiAgbGVmdDogMGVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLCBsZWZ0IDAuM3MgZWFzZTtcbn1cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQgfiAuYm94OmFmdGVyLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dCB+IGxhYmVsOmFmdGVyIHtcbiAgbGVmdDogLTAuMDVyZW07XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4vKiBGb2N1cyAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkudG9nZ2xlLmNoZWNrYm94IC5ib3g6aG92ZXI6OmJlZm9yZSxcbi51aS50b2dnbGUuY2hlY2tib3ggbGFiZWw6aG92ZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveCxcbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgbGVmdDogMi4xNXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveCxcbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhNTU4NyAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZpdHRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXR0ZWQuY2hlY2tib3ggLmJveCxcbi51aS5maXR0ZWQuY2hlY2tib3ggbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLmZpdHRlZC50b2dnbGUuY2hlY2tib3gsXG4udWkuZml0dGVkLnRvZ2dsZS5jaGVja2JveCB7XG4gIHdpZHRoOiAzLjVyZW07XG59XG4udWkuZml0dGVkLnNsaWRlci5jaGVja2JveCxcbi51aS5maXR0ZWQuc2xpZGVyLmNoZWNrYm94IHtcbiAgd2lkdGg6IDMuNXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdDaGVja2JveCc7XG4gIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24veC1mb250LXR0ZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxBQUVBQUFBTEFJQUFBd0F3VDFNdk1nOFNCRDhBQUFDOEFBQUFZR050WVhBWVZ0Q0pBQUFCSEFBQUFGUm5ZWE53QUFBQUVBQUFBWEFBQUFBSVoyeDVabjRodXdVQUFBRjRBQUFCWUdobFlXUUdQZTFaQUFBQzJBQUFBRFpvYUdWaEIzMER5QUFBQXhBQUFBQWthRzEwZUJCS0FFVUFBQU0wQUFBQUhHeHZZMkVBbWdFU0FBQURVQUFBQUJCdFlYaHdBQWtBTHdBQUEyQUFBQUFnYm1GdFpTQzhJdWdBQUFPQUFBQUJrbkJ2YzNRQUF3QUFBQUFGRkFBQUFDQUFBd01UQVpBQUJRQUFBcGtDekFBQUFJOENtUUxNQUFBQjZ3QXpBUWtBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQURvQWdQQS84QUFRQVBBQUVBQUFBQUJBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQURBQUFBQXdBQUFCd0FBUUFEQUFBQUhBQURBQUVBQUFBY0FBUUFPQUFBQUFvQUNBQUNBQUlBQVFBZzZBTC8vZi8vQUFBQUFBQWc2QUQvL2YvL0FBSC80eGdFQUFNQUFRQUFBQUFBQUFBQUFBQUFBUUFCLy84QUR3QUJBQUFBQUFBQUFBQUFBZ0FBTnprQkFBQUFBQUVBQUFBQUFBQUFBQUFDQUFBM09RRUFBQUFBQVFBQUFBQUFBQUFBQUFJQUFEYzVBUUFBQUFBQkFFVUFVUU83QXZnQUdnQUFBUlFIQVFZaklpY0JKalUwUHdFMk16SWZBUUUyTXpJZkFSWVZBN3NRL2hRUUZoY1EvdU1RRUU0UUZ4Y1FxQUYyRUJjWEVFNFFBbk1XRVA0VUVCQUJIUkFYRmhCT0VCQ29BWGNRRUU0UUZ3QUFBQUFCQUFBQmJnTWxBa2tBRkFBQUFSVVVCd1lqSVNJbkpqMEJORGMyTXlFeUZ4WVZBeVVRRUJmOVNSY1FFQkFRRndLM0Z4QVFBaEp0RnhBUUVCQVhiUmNRRUJBUUZ3QUFBQUFCQUFBQVNRTWxBMjRBTEFBQUFSVVVCd1lyQVJVVUJ3WXJBU0luSmowQkl5SW5KajBCTkRjMk93RTFORGMyT3dFeUZ4WWRBVE15RnhZVkF5VVFFQmZ1RUJBWGJoWVFFTzRYRUJBUUVCZnVFQkFXYmhjUUVPNFhFQkFDRW0wWEVCRHVGeEFRRUJBWDdoQVFGMjBYRUJEdUZ4QVFFQkFYN2hBUUZ3QUFBUUFBQUFJQUFIUlN6VDlmRHp6MUFBc0VBQUFBQUFEUnNkUjNBQUFBQU5HeDFIY0FBQUFBQTdzRGJnQUFBQWdBQWdBQUFBQUFBQUFCQUFBRHdQL0FBQUFFQUFBQUFBQUR1d0FCQUFBQUFBQUFBQUFBQUFBQUFBQUFCd1FBQUFBQUFBQUFBQUFBQUFJQUFBQUVBQUJGQXlVQUFBTWxBQUFBQUFBQUFBb0FGQUFlQUU0QWNnQ3dBQUVBQUFBSEFDMEFBUUFBQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BSzRBQVFBQUFBQUFBUUFJQUFBQUFRQUFBQUFBQWdBSEFHa0FBUUFBQUFBQUF3QUlBRGtBQVFBQUFBQUFCQUFJQUg0QUFRQUFBQUFBQlFBTEFCZ0FBUUFBQUFBQUJnQUlBRkVBQVFBQUFBQUFDZ0FhQUpZQUF3QUJCQWtBQVFBUUFBZ0FBd0FCQkFrQUFnQU9BSEFBQXdBQkJBa0FBd0FRQUVFQUF3QUJCQWtBQkFBUUFJWUFBd0FCQkFrQUJRQVdBQ01BQXdBQkJBa0FCZ0FRQUZrQUF3QUJCQWtBQ2dBMEFMQkRhR1ZqYTJKdmVBQkRBR2dBWlFCakFHc0FZZ0J2QUhoV1pYSnphVzl1SURJdU1BQldBR1VBY2dCekFHa0Fid0J1QUNBQU1nQXVBREJEYUdWamEySnZlQUJEQUdnQVpRQmpBR3NBWWdCdkFIaERhR1ZqYTJKdmVBQkRBR2dBWlFCakFHc0FZZ0J2QUhoU1pXZDFiR0Z5QUZJQVpRQm5BSFVBYkFCaEFISkRhR1ZqYTJKdmVBQkRBR2dBWlFCakFHc0FZZ0J2QUhoR2IyNTBJR2RsYm1WeVlYUmxaQ0JpZVNCSlkyOU5iMjl1TGdCR0FHOEFiZ0IwQUNBQVp3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCSkFHTUFid0JOQUc4QWJ3QnVBQzRBQUFBREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cbi8qIENoZWNrbWFyayAqL1xuLnVpLmNoZWNrYm94IGxhYmVsOmFmdGVyLFxuLnVpLmNoZWNrYm94IC5ib3g6YWZ0ZXIge1xuICBmb250LWZhbWlseTogJ0NoZWNrYm94Jztcbn1cbi8qIENoZWNrZWQgKi9cbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxlODAwJztcbn1cbi8qIEluZGV0ZXJtaW5hdGUgKi9cbi51aS5jaGVja2JveCBpbnB1dDppbmRldGVybWluYXRlIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDppbmRldGVybWluYXRlIH4gbGFiZWw6YWZ0ZXIge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbnRlbnQ6ICdcXGU4MDEnO1xufVxuLyogIFVURiBSZWZlcmVuY2Vcbi5jaGVjazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAwJzsgfVxuLmRhc2g6YmVmb3JlICB7IGNvbnRlbnQ6ICdcXGU4MDEnOyB9XG4ucGx1czpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAyJzsgfVxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIERpbW1lclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERpbW1lclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEhpZGRlbiAoRGVmYXVsdCkgKi9cbi8qIFZpc2libGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFnZSBEaW1tZXIqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2ltcGxlICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERpbW1lclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEhpZGRlbiAoRGVmYXVsdCkgKi9cbi8qIFZpc2libGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFnZSBEaW1tZXIqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2ltcGxlICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERpbW1lclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5kaW1tYWJsZTpub3QoYm9keSkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udWkuZGltbWVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBlbSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nOiAxZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIG9wYWNpdHk6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cyBsaW5lYXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4vKiBEaW1tZXIgQ29udGVudCAqL1xuLnVpLmRpbW1lciA+IC5jb250ZW50IHtcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogTG9vc2UgQ291cGxpbmcgKi9cbi51aS5zZWdtZW50ID4gLnVpLmRpbW1lciB7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cbi8qIFNjcm9sbGJhcnMgKi9cbi51aS5kaW1tZXI6bm90KC5pbnZlcnRlZCk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVpLmRpbW1lcjpub3QoLmludmVydGVkKTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xufVxuLnVpLmRpbW1lcjpub3QoLmludmVydGVkKTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6d2luZG93LWluYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cbi51aS5kaW1tZXI6bm90KC5pbnZlcnRlZCk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBBbmltYXRpbmcgKi9cbi5hbmltYXRpbmcuZGltbWFibGU6bm90KGJvZHkpLFxuLmRpbW1lZC5kaW1tYWJsZTpub3QoYm9keSkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogQW5pbWF0aW5nIC8gQWN0aXZlIC8gVmlzaWJsZSAqL1xuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS5hbmltYXRpbmcuZGltbWVyLFxuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS52aXNpYmxlLmRpbW1lcixcbi51aS5hY3RpdmUuZGltbWVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3BhY2l0eTogMTtcbn1cbi8qIERpc2FibGVkICovXG4udWkuZGlzYWJsZWQuZGltbWVyIHtcbiAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIExlZ2FjeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFuaW1hdGluZyAvIEFjdGl2ZSAvIFZpc2libGUgKi9cbi5kaW1tZWQuZGltbWFibGUgPiAudWkuYW5pbWF0aW5nLmxlZ2FjeS5kaW1tZXIsXG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLnZpc2libGUubGVnYWN5LmRpbW1lcixcbi51aS5hY3RpdmUubGVnYWN5LmRpbW1lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEFsaWdubWVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5kaW1tZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uZGltbWVyIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucGFnZS5kaW1tZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRyYW5zZm9ybS1zdHlsZTogJyc7XG4gIHBlcnNwZWN0aXZlOiAyMDAwcHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG5ib2R5LmFuaW1hdGluZy5pbi5kaW1tYWJsZSxcbmJvZHkuZGltbWVkLmRpbW1hYmxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbmJvZHkuZGltbWFibGUgPiAuZGltbWVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEJsdXJyaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLmJsdXJyaW5nLmRpbW1hYmxlID4gOm5vdCguZGltbWVyKSB7XG4gIGZpbHRlcjogYmx1cigwcHgpIGdyYXlzY2FsZSgwKTtcbiAgdHJhbnNpdGlvbjogODAwbXMgZmlsdGVyIGVhc2U7XG59XG4uYmx1cnJpbmcuZGltbWVkLmRpbW1hYmxlID4gOm5vdCguZGltbWVyKSB7XG4gIGZpbHRlcjogYmx1cig1cHgpIGdyYXlzY2FsZSgwLjcpO1xufVxuLyogRGltbWVyIENvbG9yICovXG4uYmx1cnJpbmcuZGltbWFibGUgPiAuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLmJsdXJyaW5nLmRpbW1hYmxlID4gLmludmVydGVkLmRpbW1lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpbW1lciA+IC50b3AuYWxpZ25lZC5jb250ZW50ID4gKiB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkuZGltbWVyID4gLmJvdHRvbS5hbGlnbmVkLmNvbnRlbnQgPiAqIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xufVxuLnVpLmludmVydGVkLmRpbW1lciA+IC5jb250ZW50ID4gKiB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaW1wbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaXNwbGF5cyB3aXRob3V0IGphdmFzY3JpcHQgKi9cbi51aS5zaW1wbGUuZGltbWVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAwJTtcbiAgei1pbmRleDogLTEwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi5kaW1tZWQuZGltbWFibGUgPiAudWkuc2ltcGxlLmRpbW1lciB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICB6LWluZGV4OiAxO1xufVxuLnVpLnNpbXBsZS5pbnZlcnRlZC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xufVxuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS5zaW1wbGUuaW52ZXJ0ZWQuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBVc2VyIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIERyb3Bkb3duXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRHJvcGRvd25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBDdXJyZW50IFRleHQgKi9cbi8qIE1lbnUgKi9cbi8qIFRleHQgKi9cbi8qIE1lbnUgSXRlbSAqL1xuLyogU3ViIE1lbnUgKi9cbi8qIE1lbnUgSGVhZGVyICovXG4vKiBNZW51IERpdmlkZXIgKi9cbi8qIE1lbnUgSW5wdXQgKi9cbi8qIE1lbnUgSW1hZ2UgKi9cbi8qIEl0ZW0gU3ViLUVsZW1lbnQgKi9cbi8qIFN1Yi1NZW51IERyb3Bkb3duIEljb24gKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBNZXNzYWdlICovXG4vKiBGbG9hdGVkIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS1cbiAgIFNlbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0qL1xuLyogPHNlbGVjdD4gKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qIERlcml2ZWQgKi9cbi8qIDFweCAvIGVtIHNpemUgKi9cbi8qIEhvdmVyICovXG4vKiBGb2N1cyAqL1xuLyogVmlzaWJsZSAqL1xuLyogVmlzaWJsZSBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTZWFyY2hcbi0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlYXJjaCBTZWxlY3Rpb24gKi9cbi8qIElubGluZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIE11bHRpcGxlXG4tLS0tLS0tLS0tLS0tLSovXG4vKiBTcGxpdCBBY3R1YWwgUGFkZGluZyBCZXR3ZWVuIENoaWxkIGFuZCBQYXJlbnQgKGFsbG93cyBmb3IgbGFiZWwgc3BhY2luZykgKi9cbi8qIENoaWxkIEVsZW1lbnRzICovXG4vKiBEcm9wZG93biBJY29uICovXG4vKiBTZWxlY3Rpb24gTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXJlZCAqL1xuLyogRGVmYXVsdCBUZXh0ICovXG4vKiBMb2FkaW5nICovXG4vKiBBY3RpdmUgTWVudSBJdGVtICovXG4vKiBTZWxlY3RlZCAqL1xuLyogRXJyb3IgKi9cbi8qIENsZWFyYWJsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTY3JvbGxpbmcgKi9cbi8qIDBweCAvIGVtIHNpemUgKi9cbi8qIFVwd2FyZCAqL1xuLyogRmx5b3V0IERpcmVjdGlvbiAqL1xuLyogTGVmdCAqL1xuLyogU2ltcGxlICovXG4vKiBGbG9hdGluZyAqL1xuLyogUG9pbnRpbmcgKi9cbi8qIFBvaW50aW5nIFVwd2FyZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEcm9wZG93blxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIEN1cnJlbnQgVGV4dCAqL1xuLyogTWVudSAqL1xuLyogVGV4dCAqL1xuLyogTWVudSBJdGVtICovXG4vKiBTdWIgTWVudSAqL1xuLyogTWVudSBIZWFkZXIgKi9cbi8qIE1lbnUgRGl2aWRlciAqL1xuLyogTWVudSBJbnB1dCAqL1xuLyogTWVudSBJbWFnZSAqL1xuLyogSXRlbSBTdWItRWxlbWVudCAqL1xuLyogU3ViLU1lbnUgRHJvcGRvd24gSWNvbiAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIE1lc3NhZ2UgKi9cbi8qIEZsb2F0ZWQgQ29udGVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLVxuICAgU2VsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLSovXG4vKiA8c2VsZWN0PiAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyogRGVyaXZlZCAqL1xuLyogMXB4IC8gZW0gc2l6ZSAqL1xuLyogSG92ZXIgKi9cbi8qIEZvY3VzICovXG4vKiBWaXNpYmxlICovXG4vKiBWaXNpYmxlIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNlYXJjaFxuLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VhcmNoIFNlbGVjdGlvbiAqL1xuLyogSW5saW5lICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTXVsdGlwbGVcbi0tLS0tLS0tLS0tLS0tKi9cbi8qIFNwbGl0IEFjdHVhbCBQYWRkaW5nIEJldHdlZW4gQ2hpbGQgYW5kIFBhcmVudCAoYWxsb3dzIGZvciBsYWJlbCBzcGFjaW5nKSAqL1xuLyogQ2hpbGQgRWxlbWVudHMgKi9cbi8qIERyb3Bkb3duIEljb24gKi9cbi8qIFNlbGVjdGlvbiBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlcmVkICovXG4vKiBEZWZhdWx0IFRleHQgKi9cbi8qIExvYWRpbmcgKi9cbi8qIEFjdGl2ZSBNZW51IEl0ZW0gKi9cbi8qIFNlbGVjdGVkICovXG4vKiBFcnJvciAqL1xuLyogQ2xlYXJhYmxlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNjcm9sbGluZyAqL1xuLyogMHB4IC8gZW0gc2l6ZSAqL1xuLyogVXB3YXJkICovXG4vKiBGbHlvdXQgRGlyZWN0aW9uICovXG4vKiBMZWZ0ICovXG4vKiBTaW1wbGUgKi9cbi8qIEZsb2F0aW5nICovXG4vKiBQb2ludGluZyAqL1xuLyogUG9pbnRpbmcgVXB3YXJkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERyb3Bkb3duXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmRyb3Bkb3duIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjFzIGVhc2UsIHdpZHRoIDAuMXMgZWFzZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duIC5tZW51IHtcbiAgY3Vyc29yOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRvcDogMTAwJTtcbiAgbWluLXdpZHRoOiBtYXgtY29udGVudDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbSAwZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlO1xuICB6LWluZGV4OiAxMTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+ICoge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBIaWRkZW4gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiBpbnB1dDpub3QoLnNlYXJjaCk6Zmlyc3QtY2hpbGQsXG4udWkuZHJvcGRvd24gPiBzZWxlY3Qge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gRHJvcGRvd24gSWNvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2ZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gLmRyb3Bkb3duLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIC5kcm9wZG93bi5pY29uICsgLnRleHQge1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFRleHRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiAudGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNZW51IEl0ZW1cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5cmVtIDEuMTQyODU3MTRyZW0gIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXdpZHRoOiAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEZsb2F0ZWQgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0sXG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMWVtICFpbXBvcnRhbnQ7XG59XG4udWkuZHJvcGRvd24gPiAudGV4dCA+IFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0sXG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDFlbSAhaW1wb3J0YW50O1xufVxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gLmljb24uZmxvYXRlZCxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IC5mbGFnLmZsb2F0ZWQsXG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiAuaW1hZ2UuZmxvYXRlZCxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IGltZy5mbG9hdGVkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBNZW51IERpdmlkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaGVhZGVyIHtcbiAgbWFyZ2luOiAxcmVtIDByZW0gMC43NXJlbTtcbiAgcGFkZGluZzogMGVtIDEuMTQyODU3MTRyZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICBmb250LXNpemU6IDAuNzg1NzE0MjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuZGl2aWRlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIGhlaWdodDogMGVtO1xuICBtYXJnaW46IDAuNWVtIDBlbTtcbn1cbi51aS5kcm9wZG93bi5kcm9wZG93biAubWVudSA+IC5pbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDEuMTQyODU3MTRyZW0gMC43ODU3MTQyOXJlbTtcbiAgbWluLXdpZHRoOiAxMHJlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5oZWFkZXIgKyAuaW5wdXQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaW5wdXQ6bm90KC50cmFuc3BhcmVudCkgaW5wdXQge1xuICBwYWRkaW5nOiAwLjVlbSAxZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaW5wdXQ6bm90KC50cmFuc3BhcmVudCkgLmJ1dHRvbixcbi51aS5kcm9wZG93biAubWVudSA+IC5pbnB1dDpub3QoLnRyYW5zcGFyZW50KSAuaWNvbixcbi51aS5kcm9wZG93biAubWVudSA+IC5pbnB1dDpub3QoLnRyYW5zcGFyZW50KSAubGFiZWwge1xuICBwYWRkaW5nLXRvcDogMC41ZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS1cbiAgSXRlbSBEZXNjcmlwdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5kZXNjcmlwdGlvbixcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmRlc2NyaXB0aW9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBNZXNzYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biAubWVudSA+IC5tZXNzYWdlIHtcbiAgcGFkZGluZzogMC43ODU3MTQyOXJlbSAxLjE0Mjg1NzE0cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLm1lc3NhZ2U6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFN1YiBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duIC5tZW51IC5tZW51IHtcbiAgdG9wOiAwJSAhaW1wb3J0YW50O1xuICBsZWZ0OiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMC41ZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyMSAhaW1wb3J0YW50O1xufVxuLyogSGlkZSBBcnJvdyAqL1xuLnVpLmRyb3Bkb3duIC5tZW51IC5tZW51OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFN1YiBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb25zIC8gRmxhZ3MgLyBMYWJlbHMgLyBJbWFnZSAqL1xuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaWNvbixcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmxhYmVsLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuZmxhZyxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gaW1nLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaW1hZ2Uge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAubGFiZWwsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5mbGFnLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IGltZyB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmljb24sXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5sYWJlbCxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmZsYWcsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IGltZyxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmltYWdlLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuaWNvbixcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmxhYmVsLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuZmxhZyxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiBpbWcge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc4NTcxNDI5cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbWFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gaW1nLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaW1hZ2UsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xuICBtYXJnaW4tYm90dG9tOiAtMC41ZW07XG4gIG1heC1oZWlnaHQ6IDJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1lbnVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZW1vdmUgTWVudSBJdGVtIERpdmlkZXIgKi9cbi51aS5kcm9wZG93biAudWkubWVudSA+IC5pdGVtOmJlZm9yZSxcbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBQcmV2ZW50IE1lbnUgSXRlbSBCb3JkZXIgKi9cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi8qIEF1dG9tYXRpY2FsbHkgZmxvYXQgZHJvcGRvd24gbWVudSByaWdodCBvbiBsYXN0IG1lbnUgaXRlbSAqL1xuLnVpLm1lbnUgLnJpZ2h0Lm1lbnUgLmRyb3Bkb3duOmxhc3QtY2hpbGQgLm1lbnUsXG4udWkubWVudSAucmlnaHQuZHJvcGRvd24uaXRlbSAubWVudSxcbi51aS5idXR0b25zID4gLnVpLmRyb3Bkb3duOmxhc3QtY2hpbGQgLm1lbnUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTGFiZWxcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBEcm9wZG93biBNZW51ICovXG4udWkubGFiZWwuZHJvcGRvd24gLm1lbnUge1xuICBtaW4td2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE5vIE1hcmdpbiBPbiBJY29uIEJ1dHRvbiAqL1xuLnVpLmRyb3Bkb3duLmljb24uYnV0dG9uID4gLmRyb3Bkb3duLmljb24ge1xuICBtYXJnaW46IDBlbTtcbn1cbi51aS5idXR0b24uZHJvcGRvd24gLm1lbnUge1xuICBtaW4td2lkdGg6IDEwMCU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTZWxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaXNwbGF5cyBsaWtlIGEgc2VsZWN0IGJveCAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBvdXRsaW5lOiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XG4gIG1pbi13aWR0aDogMTRlbTtcbiAgbWluLWhlaWdodDogMi43MTQyODU3MWVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAyLjFlbSAwLjc4NTcxNDI5ZW0gMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjFzIGVhc2UsIHdpZHRoIDAuMXMgZWFzZTtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24udmlzaWJsZSxcbi51aS5zZWxlY3Rpb24uZHJvcGRvd24uYWN0aXZlIHtcbiAgei1pbmRleDogMTA7XG59XG5zZWxlY3QudWkuZHJvcGRvd24ge1xuICBoZWlnaHQ6IDM4cHg7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLnVpLnNlbGVjdGlvbi5kcm9wZG93biA+IC5zZWFyY2guaWNvbixcbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZGVsZXRlLmljb24sXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgdG9wOiAwLjc4NTcxNDI5ZW07XG4gIHJpZ2h0OiAxZW07XG4gIHotaW5kZXg6IDM7XG4gIG1hcmdpbjogLTAuNzg1NzE0MjllbTtcbiAgcGFkZGluZzogMC45MTY2NjY2N2VtO1xuICBvcGFjaXR5OiAwLjg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLyogQ29tcGFjdCAqL1xuLnVpLmNvbXBhY3Quc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgbWluLXdpZHRoOiAwcHg7XG59XG4vKiAgU2VsZWN0aW9uIE1lbnUgKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBib3JkZXItdG9wLXdpZHRoOiAwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG4gIG1hcmdpbjogMHB4IC0xcHg7XG4gIG1pbi13aWR0aDogY2FsYygxMDAlICsgIDJweCApO1xuICB3aWR0aDogY2FsYygxMDAlICsgIDJweCApO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudTphZnRlcixcbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnU6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNZXNzYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSA+IC5tZXNzYWdlIHtcbiAgcGFkZGluZzogMC43ODU3MTQyOXJlbSAxLjE0Mjg1NzE0cmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiA4LjAxNDI4NTcxcmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDEwLjY4NTcxNDI5cmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDE2LjAyODU3MTQzcmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAyMS4zNzE0Mjg1N3JlbTtcbiAgfVxufVxuLyogTWVudSBJdGVtICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0ZBRkFGQTtcbiAgcGFkZGluZzogMC43ODU3MTQyOXJlbSAxLjE0Mjg1NzE0cmVtICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuLyogVXNlciBJdGVtICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51ID4gLmhpZGRlbi5hZGRpdGlvbi5pdGVtIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogQWN0aXZlICovXG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93biB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93biAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBGb2N1cyAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93bjpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd246Zm9jdXMgLm1lbnUge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogVmlzaWJsZSAqL1xuLnVpLnNlbGVjdGlvbi52aXNpYmxlLmRyb3Bkb3duID4gLnRleHQ6bm90KC5kZWZhdWx0KSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKiBWaXNpYmxlIEhvdmVyICovXG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93bjpob3ZlciAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBEcm9wZG93biBJY29uICovXG4udWkuYWN0aXZlLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uLFxuLnVpLnZpc2libGUuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBvcGFjaXR5OiAnJztcbiAgei1pbmRleDogMztcbn1cbi8qIENvbm5lY3RpbmcgQm9yZGVyICovXG4udWkuYWN0aXZlLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG4vKiBFbXB0eSBDb25uZWN0aW5nIEJvcmRlciAqL1xuLnVpLmFjdGl2ZS5lbXB0eS5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5hY3RpdmUuZW1wdHkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNlYXJjaGFibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWFyY2ggU2VsZWN0aW9uICovXG4udWkuc2VhcmNoLmRyb3Bkb3duIHtcbiAgbWluLXdpZHRoOiAnJztcbn1cbi8qIFNlYXJjaCBEcm9wZG93biAqL1xuLnVpLnNlYXJjaC5kcm9wZG93biA+IGlucHV0LnNlYXJjaCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY3Vyc29yOiB0ZXh0O1xuICB0b3A6IDBlbTtcbiAgbGVmdDogMXB4O1xuICB3aWR0aDogMTAwJTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICBwYWRkaW5nOiBpbmhlcml0O1xufVxuLyogVGV4dCBMYXllcmluZyAqL1xuLnVpLnNlYXJjaC5kcm9wZG93biA+IGlucHV0LnNlYXJjaCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbn1cbi51aS5zZWFyY2guZHJvcGRvd24gPiAudGV4dCB7XG4gIGN1cnNvcjogdGV4dDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAxcHg7XG4gIHotaW5kZXg6IDM7XG59XG4vKiBTZWFyY2ggU2VsZWN0aW9uICovXG4udWkuc2VhcmNoLnNlbGVjdGlvbi5kcm9wZG93biA+IGlucHV0LnNlYXJjaCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG4gIHBhZGRpbmc6IDAuNjc4NTcxNDNlbSAyLjFlbSAwLjY3ODU3MTQzZW0gMWVtO1xufVxuLyogVXNlZCB0byBzaXplIG11bHRpIHNlbGVjdCBpbnB1dCB0byBjaGFyYWN0ZXIgd2lkdGggKi9cbi51aS5zZWFyY2guc2VsZWN0aW9uLmRyb3Bkb3duID4gc3Bhbi5zaXplciB7XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG4gIHBhZGRpbmc6IDAuNjc4NTcxNDNlbSAyLjFlbSAwLjY3ODU3MTQzZW0gMWVtO1xuICBkaXNwbGF5OiBub25lO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xufVxuLyogQWN0aXZlL1Zpc2libGUgU2VhcmNoICovXG4udWkuc2VhcmNoLmRyb3Bkb3duLmFjdGl2ZSA+IGlucHV0LnNlYXJjaCxcbi51aS5zZWFyY2guZHJvcGRvd24udmlzaWJsZSA+IGlucHV0LnNlYXJjaCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi51aS5zZWFyY2guZHJvcGRvd24uYWN0aXZlID4gLnRleHQsXG4udWkuc2VhcmNoLmRyb3Bkb3duLnZpc2libGUgPiAudGV4dCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLyogRmlsdGVyZWQgVGV4dCAqL1xuLnVpLmFjdGl2ZS5zZWFyY2guZHJvcGRvd24gaW5wdXQuc2VhcmNoOmZvY3VzICsgLnRleHQgLmljb24sXG4udWkuYWN0aXZlLnNlYXJjaC5kcm9wZG93biBpbnB1dC5zZWFyY2g6Zm9jdXMgKyAudGV4dCAuZmxhZyB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4udWkuYWN0aXZlLnNlYXJjaC5kcm9wZG93biBpbnB1dC5zZWFyY2g6Zm9jdXMgKyAudGV4dCB7XG4gIGNvbG9yOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuODcpICFpbXBvcnRhbnQ7XG59XG4vKiBTZWFyY2ggTWVudSAqL1xuLnVpLnNlYXJjaC5kcm9wZG93biAubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zZWFyY2guZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDguMDE0Mjg1NzFyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLnNlYXJjaC5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTAuNjg1NzE0MjlyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLnNlYXJjaC5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTYuMDI4NTcxNDNyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5zZWFyY2guZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDIxLjM3MTQyODU3cmVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTXVsdGlwbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNdWx0aXBsZSBTZWxlY3Rpb24gKi9cbi51aS5tdWx0aXBsZS5kcm9wZG93biB7XG4gIHBhZGRpbmc6IDAuMjI2MTkwNDhlbSAyLjFlbSAwLjIyNjE5MDQ4ZW0gMC4zNTcxNDI4NmVtO1xufVxuLnVpLm11bHRpcGxlLmRyb3Bkb3duIC5tZW51IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLyogTXVsdGlwbGUgU2VhcmNoIFNlbGVjdGlvbiAqL1xuLnVpLm11bHRpcGxlLnNlYXJjaC5kcm9wZG93bixcbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBjdXJzb3I6IHRleHQ7XG59XG4vKiBTZWxlY3Rpb24gTGFiZWwgKi9cbi51aS5tdWx0aXBsZS5kcm9wZG93biA+IC5sYWJlbCB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiAwLjM1NzE0Mjg2ZW0gMC43ODU3MTQyOWVtO1xuICBtYXJnaW46IDAuMTQyODU3MTRyZW0gMC4yODU3MTQyOXJlbSAwLjE0Mjg1NzE0cmVtIDBlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4vKiBEcm9wZG93biBJY29uICovXG4udWkubXVsdGlwbGUuZHJvcGRvd24gLmRyb3Bkb3duLmljb24ge1xuICBtYXJnaW46ICcnO1xuICBwYWRkaW5nOiAnJztcbn1cbi8qIFRleHQgKi9cbi51aS5tdWx0aXBsZS5kcm9wZG93biA+IC50ZXh0IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgcGFkZGluZzogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAuNDUyMzgwOTVlbSAwZW0gMC40NTIzODA5NWVtIDAuNjQyODU3MTRlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbn1cbi51aS5tdWx0aXBsZS5kcm9wZG93biA+IC5sYWJlbCB+IGlucHV0LnNlYXJjaCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjE0Mjg1NzE0ZW0gIWltcG9ydGFudDtcbn1cbi51aS5tdWx0aXBsZS5kcm9wZG93biA+IC5sYWJlbCB+IC50ZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS1cbiAgTXVsdGlwbGUgU2VhcmNoXG4tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQcm9tcHQgVGV4dCAqL1xuLnVpLm11bHRpcGxlLnNlYXJjaC5kcm9wZG93biA+IC50ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogaW5oZXJpdDtcbiAgbWFyZ2luOiAwLjQ1MjM4MDk1ZW0gMGVtIDAuNDUyMzgwOTVlbSAwLjY0Mjg1NzE0ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG59XG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duID4gLmxhYmVsIH4gLnRleHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogU2VhcmNoICovXG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgcGFkZGluZzogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAuNDUyMzgwOTVlbSAwZW0gMC40NTIzODA5NWVtIDAuNjQyODU3MTRlbTtcbiAgd2lkdGg6IDIuMmVtO1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbmxpbmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5saW5lLmRyb3Bkb3duIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnVpLmlubGluZS5kcm9wZG93biAuZHJvcGRvd24uaWNvbiB7XG4gIG1hcmdpbjogMGVtIDAuMjE0Mjg1NzFlbSAwZW0gMC4yMTQyODU3MWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4udWkuaW5saW5lLmRyb3Bkb3duID4gLnRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS5pbmxpbmUuZHJvcGRvd24gLm1lbnUge1xuICBjdXJzb3I6IGF1dG87XG4gIG1hcmdpbi10b3A6IDAuMjE0Mjg1NzFlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNZW51IEl0ZW0gQWN0aXZlICovXG4udWkuZHJvcGRvd24gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgei1pbmRleDogMTI7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgSXRlbSBIb3ZlciAqL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgei1pbmRleDogMTM7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLmRyb3Bkb3duID4gaS5pY29uIHtcbiAgaGVpZ2h0OiAxZW0gIWltcG9ydGFudDtcbn1cbi51aS5sb2FkaW5nLnNlbGVjdGlvbi5kcm9wZG93biA+IGkuaWNvbiB7XG4gIHBhZGRpbmc6IDEuNWVtIDEuMjg1NzE0MjllbSAhaW1wb3J0YW50O1xufVxuLnVpLmxvYWRpbmcuZHJvcGRvd24gPiBpLmljb246YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NDI4NTcxNGVtIDBlbSAwZW0gLTAuNjQyODU3MTRlbTtcbiAgd2lkdGg6IDEuMjg1NzE0MjllbTtcbiAgaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkubG9hZGluZy5kcm9wZG93biA+IGkuaWNvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAtMC42NDI4NTcxNGVtIDBlbSAwZW0gLTAuNjQyODU3MTRlbTtcbiAgd2lkdGg6IDEuMjg1NzE0MjllbTtcbiAgaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIGFuaW1hdGlvbjogZHJvcGRvd24tc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xufVxuLyogQ291cGxpbmcgKi9cbi51aS5sb2FkaW5nLmRyb3Bkb3duLmJ1dHRvbiA+IGkuaWNvbjpiZWZvcmUsXG4udWkubG9hZGluZy5kcm9wZG93bi5idXR0b24gPiBpLmljb246YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuQGtleWZyYW1lcyBkcm9wZG93bi1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgRGVmYXVsdCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93bjpub3QoLmJ1dHRvbikgPiAuZGVmYXVsdC50ZXh0LFxuLnVpLmRlZmF1bHQuZHJvcGRvd246bm90KC5idXR0b24pID4gLnRleHQge1xuICBjb2xvcjogcmdiYSgxOTEsIDE5MSwgMTkxLCAwLjg3KTtcbn1cbi51aS5kcm9wZG93bjpub3QoLmJ1dHRvbikgPiBpbnB1dDpmb2N1cyB+IC5kZWZhdWx0LnRleHQsXG4udWkuZGVmYXVsdC5kcm9wZG93bjpub3QoLmJ1dHRvbikgPiBpbnB1dDpmb2N1cyB+IC50ZXh0IHtcbiAgY29sb3I6IHJnYmEoMTE1LCAxMTUsIDExNSwgMC44Nyk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcuZHJvcGRvd24gPiAudGV4dCB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4vKiBVc2VkIFRvIENoZWNrIFBvc2l0aW9uICovXG4udWkuZHJvcGRvd24gLmxvYWRpbmcubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IC0xO1xufVxuLnVpLmRyb3Bkb3duID4gLmxvYWRpbmcubWVudSB7XG4gIGxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLnVpLmRyb3Bkb3duID4gLm1lbnUgLmxvYWRpbmcubWVudSB7XG4gIGxlZnQ6IDEwMCUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBLZXlib2FyZCBTZWxlY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VsZWN0ZWQgSXRlbSAqL1xuLnVpLmRyb3Bkb3duLnNlbGVjdGVkLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5zZWxlY3RlZC5pdGVtIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2VhcmNoIEZpbHRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZpbHRlcmVkIEl0ZW0gKi9cbi51aS5kcm9wZG93biA+IC5maWx0ZXJlZC50ZXh0IHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLmRyb3Bkb3duIC5maWx0ZXJlZC5pdGVtIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24uZXJyb3IsXG4udWkuZHJvcGRvd24uZXJyb3IgPiAudGV4dCxcbi51aS5kcm9wZG93bi5lcnJvciA+IC5kZWZhdWx0LnRleHQge1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24uZXJyb3Ige1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLmVycm9yOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xufVxuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUsXG4udWkuZHJvcGRvd24uZXJyb3IgPiAubWVudSAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbn1cbi51aS5kcm9wZG93bi5lcnJvciA+IC5tZW51ID4gLml0ZW0ge1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5tdWx0aXBsZS5zZWxlY3Rpb24uZXJyb3IuZHJvcGRvd24gPiAubGFiZWwge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG59XG4vKiBJdGVtIEhvdmVyICovXG4udWkuZHJvcGRvd24uZXJyb3IgPiAubWVudSA+IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjJGMjtcbn1cbi8qIEl0ZW0gQWN0aXZlICovXG4udWkuZHJvcGRvd24uZXJyb3IgPiAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkRDRkNGO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBDbGVhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiAuY2xlYXIuZHJvcGRvd24uaWNvbiB7XG4gIG9wYWNpdHk6IDAuODtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4udWkuZHJvcGRvd24gPiAuY2xlYXIuZHJvcGRvd24uaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpc2FibGVkICovXG4udWkuZGlzYWJsZWQuZHJvcGRvd24sXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuZGlzYWJsZWQuaXRlbSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIERpcmVjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZseW91dCBEaXJlY3Rpb24gKi9cbi51aS5kcm9wZG93biAubWVudSB7XG4gIGxlZnQ6IDBweDtcbn1cbi8qIERlZmF1bHQgU2lkZSAoUmlnaHQpICovXG4udWkuZHJvcGRvd24gLnJpZ2h0Lm1lbnUgPiAubWVudSxcbi51aS5kcm9wZG93biAubWVudSAucmlnaHQubWVudSB7XG4gIGxlZnQ6IDEwMCUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xufVxuLyogTGVmdHdhcmQgT3BlbmluZyBNZW51ICovXG4udWkuZHJvcGRvd24gPiAubGVmdC5tZW51IHtcbiAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICByaWdodDogMHB4ICFpbXBvcnRhbnQ7XG59XG4udWkuZHJvcGRvd24gPiAubGVmdC5tZW51IC5tZW51LFxuLnVpLmRyb3Bkb3duIC5tZW51IC5sZWZ0Lm1lbnUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwZW0gLTAuNWVtIDBlbSAwZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmRyb3Bkb3duIC5pdGVtIC5sZWZ0LmRyb3Bkb3duLmljb24sXG4udWkuZHJvcGRvd24gLmxlZnQubWVudSAuaXRlbSAuZHJvcGRvd24uaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG59XG4udWkuZHJvcGRvd24gLml0ZW0gLmxlZnQuZHJvcGRvd24uaWNvbixcbi51aS5kcm9wZG93biAubGVmdC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbn1cbi51aS5kcm9wZG93biAuaXRlbSAubGVmdC5kcm9wZG93bi5pY29uICsgLnRleHQsXG4udWkuZHJvcGRvd24gLmxlZnQubWVudSAuaXRlbSAuZHJvcGRvd24uaWNvbiArIC50ZXh0IHtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFVwd2FyZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVwd2FyZCBNYWluIE1lbnUgKi9cbi51aS51cHdhcmQuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4vKiBVcHdhcmQgU3ViIE1lbnUgKi9cbi51aS5kcm9wZG93biAudXB3YXJkLm1lbnUge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG4vKiBBY3RpdmUgVXB3YXJkICovXG4udWkuc2ltcGxlLnVwd2FyZC5hY3RpdmUuZHJvcGRvd24sXG4udWkuc2ltcGxlLnVwd2FyZC5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtICFpbXBvcnRhbnQ7XG59XG4udWkudXB3YXJkLmRyb3Bkb3duLmJ1dHRvbjpub3QoLnBvaW50aW5nKTpub3QoLmZsb2F0aW5nKS5hY3RpdmUge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi8qIFNlbGVjdGlvbiAqL1xuLnVpLnVwd2FyZC5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICBib3JkZXItdG9wLXdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAtMnB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cbi51aS51cHdhcmQuc2VsZWN0aW9uLmRyb3Bkb3duOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4vKiBBY3RpdmUgVXB3YXJkICovXG4udWkuYWN0aXZlLnVwd2FyZC5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xufVxuLyogVmlzaWJsZSBVcHdhcmQgKi9cbi51aS51cHdhcmQuc2VsZWN0aW9uLmRyb3Bkb3duLnZpc2libGUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gIWltcG9ydGFudDtcbn1cbi8qIFZpc2libGUgSG92ZXIgVXB3YXJkICovXG4udWkudXB3YXJkLmFjdGl2ZS5zZWxlY3Rpb24uZHJvcGRvd246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi51aS51cHdhcmQuYWN0aXZlLnNlbGVjdGlvbi5kcm9wZG93bjpob3ZlciAubWVudSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMnB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2ltcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogIFNlbGVjdGlvbiBNZW51ICovXG4udWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBtaW4td2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSAuaXRlbS5pdGVtLml0ZW0sXG4udWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51ID4gLml0ZW0uaXRlbS5pdGVtIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUgLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5kcm9wZG93biA+IC5hbmltYXRpbmcubWVudSAuc2Nyb2xsaW5nLm1lbnUsXG4udWkuZHJvcGRvd24gPiAudmlzaWJsZS5tZW51IC5zY3JvbGxpbmcubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogU2Nyb2xsYmFyIGluIElFICovXG5AbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWluLXdpZHRoOiBjYWxjKDgzJSk7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTAuMjg1NzE0MjlyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTUuNDI4NTcxNDNyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogMjAuNTcxNDI4NTdyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUsXG4gIC51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDIwLjU3MTQyODU3cmVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpbXBsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpc3BsYXlzIHdpdGhvdXQgamF2YXNjcmlwdCAqL1xuLnVpLnNpbXBsZS5kcm9wZG93biAubWVudTpiZWZvcmUsXG4udWkuc2ltcGxlLmRyb3Bkb3duIC5tZW51OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5zaW1wbGUuZHJvcGRvd24gLm1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0b3A6IC05OTk5cHggIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4udWkuc2ltcGxlLmFjdGl2ZS5kcm9wZG93bixcbi51aS5zaW1wbGUuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLnNpbXBsZS5hY3RpdmUuZHJvcGRvd24gPiAubWVudSxcbi51aS5zaW1wbGUuZHJvcGRvd246aG92ZXIgPiAubWVudSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB0b3A6IDEwMCUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5zaW1wbGUuZHJvcGRvd24gPiAubWVudSA+IC5pdGVtOmFjdGl2ZSA+IC5tZW51LFxuLnVpLnNpbXBsZS5kcm9wZG93bjpob3ZlciA+IC5tZW51ID4gLml0ZW06aG92ZXIgPiAubWVudSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB0b3A6IDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDEwMCUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5zaW1wbGUuZGlzYWJsZWQuZHJvcGRvd246aG92ZXIgLm1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDBweDtcbiAgd2lkdGg6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi8qIFZpc2libGUgKi9cbi51aS5zaW1wbGUudmlzaWJsZS5kcm9wZG93biA+IC5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5kcm9wZG93biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwZW07XG59XG4udWkuZmx1aWQuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGbG9hdGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGluZy5kcm9wZG93biAubWVudSB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gIWltcG9ydGFudDtcbn1cbi51aS5mbG9hdGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgbWFyZ2luLXRvcDogMC41ZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQb2ludGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwLjc4NTcxNDI5cmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogJyc7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgd2lkdGg6IDAuNWVtO1xuICBoZWlnaHQ6IDAuNWVtO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICB6LWluZGV4OiAyO1xufVxuLnVpLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IC0wLjI1ZW07XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMC4yNWVtO1xufVxuLyogVG9wIExlZnQgUG9pbnRpbmcgKi9cbi51aS50b3AubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAxZW0gMGVtIDBlbTtcbn1cbi51aS50b3AubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAxZW0gMGVtIDBlbTtcbn1cbi51aS50b3AubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgdG9wOiAtMC4yNWVtO1xuICBsZWZ0OiAxZW07XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuLyogVG9wIFJpZ2h0IFBvaW50aW5nICovXG4udWkudG9wLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IDAlO1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xufVxuLnVpLnRvcC5wb2ludGluZy5kcm9wZG93biA+IC5sZWZ0Lm1lbnU6YWZ0ZXIsXG4udWkudG9wLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IC0wLjI1ZW07XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgcmlnaHQ6IDFlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuLyogTGVmdCBQb2ludGluZyAqL1xuLnVpLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDEwMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi51aS5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IDFlbTtcbiAgbGVmdDogLTAuMjVlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG4udWkubGVmdDpub3QoLnRvcCk6bm90KC5ib3R0b20pLnBvaW50aW5nLmRyb3Bkb3duID4gLmxlZnQubWVudSB7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gMWVtIDBlbSAwZW07XG59XG4udWkubGVmdDpub3QoLnRvcCk6bm90KC5ib3R0b20pLnBvaW50aW5nLmRyb3Bkb3duID4gLmxlZnQubWVudTphZnRlciB7XG4gIHRvcDogMWVtO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTAuMjVlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG4vKiBSaWdodCBQb2ludGluZyAqL1xuLnVpLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDAlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwZW0gMWVtIDBlbSAwZW07XG59XG4udWkucmlnaHQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogMWVtO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTAuMjVlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG4vKiBCb3R0b20gUG9pbnRpbmcgKi9cbi51aS5ib3R0b20ucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkuYm90dG9tLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogLTAuMjVlbTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbn1cbi8qIFJldmVyc2UgU3ViLU1lbnUgRGlyZWN0aW9uICovXG4udWkuYm90dG9tLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUgLm1lbnUge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwcHggIWltcG9ydGFudDtcbn1cbi8qIEJvdHRvbSBMZWZ0ICovXG4udWkuYm90dG9tLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbn1cbi51aS5ib3R0b20ubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgbGVmdDogMWVtO1xuICByaWdodDogYXV0bztcbn1cbi8qIEJvdHRvbSBSaWdodCAqL1xuLnVpLmJvdHRvbS5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgcmlnaHQ6IDAlO1xuICBsZWZ0OiBhdXRvO1xufVxuLnVpLmJvdHRvbS5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDFlbTtcbn1cbi8qIFVwd2FyZCBwb2ludGluZyAqL1xuLnVpLnBvaW50aW5nLnVwd2FyZC5kcm9wZG93biAubWVudSxcbi51aS50b3AucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duIC5tZW51IHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAwZW0gMC43ODU3MTQyOXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi51aS5wb2ludGluZy51cHdhcmQuZHJvcGRvd24gLm1lbnU6YWZ0ZXIsXG4udWkudG9wLnBvaW50aW5nLnVwd2FyZC5kcm9wZG93biAubWVudTphZnRlciB7XG4gIHRvcDogMTAwJSAhaW1wb3J0YW50O1xuICBib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogLTAuMjVlbSAwZW0gMGVtO1xufVxuLyogUmlnaHQgUG9pbnRpbmcgVXB3YXJkICovXG4udWkucmlnaHQucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duOm5vdCgudG9wKTpub3QoLmJvdHRvbSkgLm1lbnUge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIDFlbSAwZW0gMGVtO1xufVxuLnVpLnJpZ2h0LnBvaW50aW5nLnVwd2FyZC5kcm9wZG93bjpub3QoLnRvcCk6bm90KC5ib3R0b20pIC5tZW51OmFmdGVyIHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAwZW0gMWVtIDBlbTtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIExlZnQgUG9pbnRpbmcgVXB3YXJkICovXG4udWkubGVmdC5wb2ludGluZy51cHdhcmQuZHJvcGRvd246bm90KC50b3ApOm5vdCguYm90dG9tKSAubWVudSB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG59XG4udWkubGVmdC5wb2ludGluZy51cHdhcmQuZHJvcGRvd246bm90KC50b3ApOm5vdCguYm90dG9tKSAubWVudTphZnRlciB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbSAwZW07XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogRHJvcGRvd24gQ2FyZXRzICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdEcm9wZG93bic7XG4gIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFBVmdBQThBQUFBQUNGQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUFCV0FBQUFCd0FBQUFjaEdnYXEwZEVSVVlBQUFGMEFBQUFIQUFBQUI0QUp3QVBUMU12TWdBQUFaQUFBQUJEQUFBQVZuVzRUSmRqYldGd0FBQUIxQUFBQUVzQUFBRlM4Q2NhcW1OMmRDQUFBQUlnQUFBQUJBQUFBQVFBRVFGRVoyRnpjQUFBQWlRQUFBQUlBQUFBQ1AvL0FBTm5iSGxtQUFBQ0xBQUFBUW9BQUFHa3JSSFA5V2hsWVdRQUFBTTRBQUFBTUFBQUFEWVBLOFl5YUdobFlRQUFBMmdBQUFBZEFBQUFKQU5DQWIxb2JYUjRBQUFEaUFBQUFDSUFBQUFpQ0JrQU9HeHZZMkVBQUFPc0FBQUFGQUFBQUJRQm5BSXliV0Y0Y0FBQUE4QUFBQUFmQUFBQUlBRVZBRjV1WVcxbEFBQUQ0QUFBQVRBQUFBS01GR2xqNUhCdmMzUUFBQVVRQUFBQVJnQUFBSEpvZWRqcWQyVmlaZ0FBQlZnQUFBQUdBQUFBQnJPN1c1VUFBQUFCQUFBQUFOWHVsUFVBQUFBQTFyNGhnQUFBQUFEWHUyUTFlTnBqWUdSZ1lPQUJZakVnWm1KZ0JFSU9JR1lCOHhnQUEvWUFOM2phWTJCa3RHT2N3TURLd01JNGpUR05nWUhCSFVwL1paQmthR0ZnWUdKZ1pXYkFDZ0xTWEZNWUhGVC9mTGpGZU9EL0FRWTl4ak1NYmtCaFJwQWNBTjQ4RFFZQWVOcGpZR0JnWm9CZ0dRWkdCaER3QWZJWXdYd1dCZ01nelFHRVRBd01xbjgrOEg2NDlmOC9sSFg5Ly85YjdQemYrZldndXNDQWtZMEJ6bVVFNmdIcFF3R01ETU1lQUFDYnhnN1NBQUFSQVVRQUFBQUIvLzhBQW5qYWRaQlBTc05BR01YZlMreU1xWWdPaHBTdVNsS2FkbVVoaVZFaEVNUXpGRjIybTE3QmJidnpDaDVCWENVbjZFRzhnamVRNERlcHdZbzRpKy9mZkw5NWo0RURBK0NGQzdqUXVLeUllVkhySTN3a2xlcTlGN1hyU0luS3RlT2VIZGRhOGJPb2FlZXBTYzAwTldQei9MUmVjOUc4R2FieUd0RWRGN2gxOXowMzNHQU1USzd6Yk00MnhORVpwellvZjBSdFE1Q1VIQVFKNzNPdFZ5dXRjKzNiN091Ly9iOFhObHNQeDNqZ2pVaWZBQmRoRW9oS0pKTDVpTTVwMzl1cWM3WDErc1JRU3FtR3JVVmhsc0o0bHBtRVVWd3lUOFNVWXRnMFA5RHlOelBBRERzK3RqckdWNktSQ1Jmc3VpM2VIY0w0L3A4Wlh2Zk1sY25FVStDTHY3aER5a09QK0FLVFBUeGJBQUI0Mm1OZ1pHQmdBR0t1ZjVLUDR2bHR2akxJTXpHQXdMVjlpZzBnK3ZydUZGTVF6ZGpBQ09Kek1JQ2xBUmgwQ1RKNDJtTmdaR0JnUFBEL0FKRDh3Z0FFakEwTWpBeW9nQU1BYk9RRUFRQUFBQUM3QUJFQUFBQUFBS29BQUFIMEFBQUJnQUFBQVVBQUNBRkFBQWdBd0FBWEFBQUFBQUFBQUNvQUtnQXFBRElBYkFDR0FLQUF1Z0RTZU5wallHUmdZT0JrVUdGZ1lnQUJFTWtGaEF3TS94bjBRQUlBRGRVQmRBQjQycVdRdlVvRFFSU0Z2M0dqYUlTVVFheW1TbUd4Sm9HQXNSQzBpUFlMc1U1MFk2SXhydmxSdFBDSkpLVVBJQmIrUElIdjRFTjRkakt1S0FxQ0RIZm11K2ZlT2R3Wm9NQ1VBSk5iQWxZVU16YVVsTTE0amp4Ym5nT3E3SG5PaWE4OXoxUGsxdk1DYTl4N3p0UGt6Zk15SmJQaitaR2k2WHArb214dVBEK3phRDdtZWFGZzdtYjhHckJxSG1od3hvQXhsbTB1aVJrcFA5WDVtMjZwS1JvTXhUR1IxRDQ5RHYvWWIvOTFvNmw4cUw2ZXU1bjJoWlF6bjY4dXRSOW0zRlUyY0I0dDljZFNMRzJ1dEkrNDRFaC9QOWJxS08rb0ovV3htWHNzajc3WWtyamFzWlFENlNGZGR5dGhrM1d0enJmK1VGMnAwNzZVZGxhMVZOenNFUlAza2tqVlJLZWw3bXAxdWRYWWNIdFpTbFY3UmZtSmUxR2lGV3ZlbHVhZUtENS9NdUpjU2s4VHBtL3Z2d1BJYm1KbGVOcGpZR0tBQUZZRzdJQ1RnWUdSaVpHWmtZV1JsWkdOa1oyUmc1R1RMVDJuc2lEREVFSVpzWmZtWlJxWnVqbURhRGNEQXhjSTdXSU9wUzJndENXVWRnUUFaa2NTbVFBQUFBRmJsYk82QUFBPSkgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi51aS5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgZm9udC1mYW1pbHk6ICdEcm9wZG93bic7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBoZWlnaHQ6IDFlbTtcbiAgd2lkdGg6IDEuMjNlbTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG59XG4udWkuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMGQ3Jztcbn1cbi8qIFN1YiBNZW51ICovXG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gLmRyb3Bkb3duLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjBkYScgLypydGw6J1xcZjBkOScqLztcbn1cbi51aS5kcm9wZG93biAuaXRlbSAubGVmdC5kcm9wZG93bi5pY29uOmJlZm9yZSxcbi51aS5kcm9wZG93biAubGVmdC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ5XCIgLypydGw6XCJcXGYwZGFcIiovO1xufVxuLyogVmVydGljYWwgTWVudSBEcm9wZG93biAqL1xuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLml0ZW0gPiAuZHJvcGRvd24uaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkYVwiIC8qcnRsOlwiXFxmMGQ5XCIqLztcbn1cbi51aS5kcm9wZG93biA+IC5jbGVhci5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG4vKiBJY29ucyBmb3IgUmVmZXJlbmNlIChTdWJzZXR0ZWQgaW4gMi40LjApXG4gIC5kcm9wZG93bi5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGQ3XCI7IH1cbiAgLmRyb3Bkb3duLnVwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGQ4XCI7IH1cbiAgLmRyb3Bkb3duLmxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZDlcIjsgfVxuICAuZHJvcGRvd24ucmlnaHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZGFcIjsgfVxuICAuZHJvcGRvd24uY2xvc2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMGRcIjsgfVxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFVzZXIgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gVmlkZW9cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVmlkZW9cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaW1wbGUgKi9cbi8qIFBsYWNlaG9sZGVyICovXG4vKiBQbGFjZWhvbGRlciBPdmVybGF5ZWQgQmFja2dyb3VuZCAqL1xuLyogSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBc3BlY3QgUmF0aW9zICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBWaWRlb1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpbXBsZSAqL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIFBsYWNlaG9sZGVyIE92ZXJsYXllZCBCYWNrZ3JvdW5kICovXG4vKiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFzcGVjdCBSYXRpb3MgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5lbWJlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI0RDRERERTtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS1cbiAgRW1iZWRkZWQgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5lbWJlZCBpZnJhbWUsXG4udWkuZW1iZWQgZW1iZWQsXG4udWkuZW1iZWQgb2JqZWN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXI6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbWJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5lbWJlZCA+IC5lbWJlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBQbGFjZWhvbGRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5lbWJlZCA+IC5wbGFjZWhvbGRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDQ1JSwgcmdiYSgwLCAwLCAwLCAwLjMpKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZW1iZWQgPiAuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAyO1xufVxuLnVpLmVtYmVkID4gLmljb246YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAzO1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDQ1JSwgcmdiYSgwLCAwLCAwLCAwLjMpKTtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZTtcbn1cbi51aS5lbWJlZCA+IC5pY29uOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgei1pbmRleDogNDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBmb250LXNpemU6IDZyZW07XG4gIHRleHQtc2hhZG93OiAwcHggMnB4IDEwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjIpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZSwgY29sb3IgMC41cyBlYXNlO1xuICB6LWluZGV4OiAxMDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmVtYmVkIC5pY29uOmhvdmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KHRyYW5zcGFyZW50IDQ1JSwgcmdiYSgwLCAwLCAwLCAwLjMpKTtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5lbWJlZCAuaWNvbjpob3ZlcjpiZWZvcmUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFjdGl2ZS5lbWJlZCA+IC5pY29uLFxuLnVpLmFjdGl2ZS5lbWJlZCA+IC5wbGFjZWhvbGRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkuYWN0aXZlLmVtYmVkID4gLmVtYmVkIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBWaWRlbyBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc3F1YXJlLmVtYmVkIHtcbiAgcGFkZGluZy1ib3R0b206IDEwMCU7XG59XG4udWlbY2xhc3MqPVwiNDozXCJdLmVtYmVkIHtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbn1cbi51aVtjbGFzcyo9XCIxNjo5XCJdLmVtYmVkIHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbn1cbi51aVtjbGFzcyo9XCIyMTo5XCJdLmVtYmVkIHtcbiAgcGFkZGluZy1ib3R0b206IDQyLjg1NzE0Mjg2JTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIE1vZGFsXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1vZGFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQ2xvc2UgSWNvbiAqL1xuLyogSGVhZGVyICovXG4vKiBDb250ZW50ICovXG4vKiBJbWFnZSAvIERlc2NyaXB0aW9uICovXG4vKiBNb2RhbCBBY3Rpb25zICovXG4vKiBJbm5lciBDbG9zZSBQb3NpdGlvbiAoVGFibGV0L01vYmlsZSkgKi9cbi8qIE1vYmlsZSBQb3NpdGlvbnMgKi9cbi8qIFJlc3BvbnNpdmUgV2lkdGhzICovXG4vKiBDb3VwbGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJhc2ljICovXG4vKiBUb3AgQWxpZ25lZCAqL1xuLyogU2Nyb2xsaW5nIE1hcmdpbiAqL1xuLyogU2Nyb2xsaW5nIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l6ZSBXaWR0aHMgKi9cbi8qIERlcml2ZWQgUmVzcG9uc2l2ZSBTaXplcyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTW9kYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBDbG9zZSBJY29uICovXG4vKiBIZWFkZXIgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEltYWdlIC8gRGVzY3JpcHRpb24gKi9cbi8qIE1vZGFsIEFjdGlvbnMgKi9cbi8qIElubmVyIENsb3NlIFBvc2l0aW9uIChUYWJsZXQvTW9iaWxlKSAqL1xuLyogTW9iaWxlIFBvc2l0aW9ucyAqL1xuLyogUmVzcG9uc2l2ZSBXaWR0aHMgKi9cbi8qIENvdXBsaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmFzaWMgKi9cbi8qIFRvcCBBbGlnbmVkICovXG4vKiBTY3JvbGxpbmcgTWFyZ2luICovXG4vKiBTY3JvbGxpbmcgQ29udGVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXplIFdpZHRocyAqL1xuLyogRGVyaXZlZCBSZXNwb25zaXZlIFNpemVzICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1vZGFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1vZGFsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiAxMDAxO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDFweCAzcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDFweCAzcHggMTVweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMjUlO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gIHdpbGwtY2hhbmdlOiB0b3AsIGxlZnQsIG1hcmdpbiwgdHJhbnNmb3JtLCBvcGFjaXR5O1xufVxuLnVpLm1vZGFsID4gOmZpcnN0LWNoaWxkOm5vdCguaWNvbiksXG4udWkubW9kYWwgPiAuaWNvbjpmaXJzdC1jaGlsZCArICoge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi51aS5tb2RhbCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ2xvc2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwgPiAuY2xvc2Uge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMi41cmVtO1xuICByaWdodDogLTIuNXJlbTtcbiAgei1pbmRleDogMTtcbiAgb3BhY2l0eTogMC44O1xuICBmb250LXNpemU6IDEuMjVlbTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHdpZHRoOiAyLjI1cmVtO1xuICBoZWlnaHQ6IDIuMjVyZW07XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDByZW0gMHJlbSAwcmVtO1xufVxuLnVpLm1vZGFsID4gLmNsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1vZGFsID4gLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5tb2RhbCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1vZGFsID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4udWkubW9kYWwgPiAuaW1hZ2UuY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG4vKiBJbWFnZSAqL1xuLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAnJztcbiAgYWxpZ24tc2VsZjogdG9wO1xufVxuLnVpLm1vZGFsID4gW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIHtcbiAgYWxpZ24tc2VsZjogdG9wO1xufVxuLnVpLm1vZGFsID4gW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdIHtcbiAgYWxpZ24tc2VsZjogbWlkZGxlO1xufVxuLnVpLm1vZGFsID4gW2NsYXNzKj1cInN0cmV0Y2hlZFwiXSB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG4vKiBEZXNjcmlwdGlvbiAqL1xuLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMSAwIGF1dG87XG4gIG1pbi13aWR0aDogMHB4O1xuICBhbGlnbi1zZWxmOiB0b3A7XG59XG4udWkubW9kYWwgPiAuY29udGVudCA+IC5pY29uICsgLmRlc2NyaXB0aW9uLFxuLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuaW1hZ2UgKyAuZGVzY3JpcHRpb24ge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgbWluLXdpZHRoOiAnJztcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMmVtO1xufVxuLypydGw6aWdub3JlKi9cbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmltYWdlID4gaS5pY29uIHtcbiAgbWFyZ2luOiAwZW07XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiA4cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3Rpb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1vZGFsID4gLmFjdGlvbnMge1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICBwYWRkaW5nOiAxcmVtIDFyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi51aS5tb2RhbCAuYWN0aW9ucyA+IC5idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmVzcG9uc2l2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTW9kYWwgV2lkdGggKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IDg4JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkubW9kYWwge1xuICAgIHdpZHRoOiA4NTBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogOTAwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IDk1MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG4vKiBUYWJsZXQgYW5kIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkubW9kYWwgPiAuaGVhZGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtO1xuICB9XG4gIC51aS5tb2RhbCA+IC5jbG9zZSB7XG4gICAgdG9wOiAxLjA1MzVyZW07XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIH1cbn1cbi8qIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubW9kYWwgPiAuaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLm1vZGFsID4gLmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkubW9kYWwgPiAuY2xvc2Uge1xuICAgIHRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC8qcnRsOmlnbm9yZSovXG4gIC51aS5tb2RhbCAuaW1hZ2UuY29udGVudCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAudWkubW9kYWwgLmNvbnRlbnQgPiAuaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDBlbSBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDByZW0gMHJlbSAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuaW1hZ2UgPiBpLmljb24ge1xuICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLypydGw6aWdub3JlKi9cbiAgLnVpLm1vZGFsIC5jb250ZW50ID4gLmRlc2NyaXB0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMXJlbSAwcmVtICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBMZXQgQnV0dG9ucyBTdGFjayAqL1xuICAudWkubW9kYWwgPiAuYWN0aW9ucyB7XG4gICAgcGFkZGluZzogMXJlbSAxcmVtIDByZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkubW9kYWwgLmFjdGlvbnMgPiAuYnV0dG9ucyxcbiAgLnVpLm1vZGFsIC5hY3Rpb25zID4gLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmRpbW1lciA+IC51aS5tb2RhbCB7XG4gIGJveC1zaGFkb3c6IDFweCAzcHggMTBweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5iYXNpYy5tb2RhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5iYXNpYy5tb2RhbCA+IC5oZWFkZXIsXG4udWkuYmFzaWMubW9kYWwgPiAuY29udGVudCxcbi51aS5iYXNpYy5tb2RhbCA+IC5hY3Rpb25zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udWkuYmFzaWMubW9kYWwgPiAuaGVhZGVyIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuYmFzaWMubW9kYWwgPiAuY2xvc2Uge1xuICB0b3A6IDFyZW07XG4gIHJpZ2h0OiAxLjVyZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyID4gLmJhc2ljLm1vZGFsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyID4gLnVpLmJhc2ljLm1vZGFsID4gLmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogUmVzb3J0IHRvIG1hcmdpbiBwb3NpdGlvbmluZyBpZiBsZWdhY3kgKi9cbi51aS5sZWdhY3kubW9kYWwsXG4udWkubGVnYWN5LnBhZ2UuZGltbWVyID4gLnVpLm1vZGFsIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbn1cbi51aS5sZWdhY3kucGFnZS5kaW1tZXIgPiAudWkuc2Nyb2xsaW5nLm1vZGFsLFxuLnVpLnBhZ2UuZGltbWVyID4gLnVpLnNjcm9sbGluZy5sZWdhY3kubW9kYWwsXG4udWkudG9wLmFsaWduZWQubGVnYWN5LnBhZ2UuZGltbWVyID4gLnVpLm1vZGFsLFxuLnVpLnRvcC5hbGlnbmVkLmRpbW1lciA+IC51aS5sZWdhY3kubW9kYWwge1xuICB0b3A6IGF1dG87XG59XG4vKiBUYWJsZXQgYW5kIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkuYmFzaWMubW9kYWwgPiAuY2xvc2Uge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5sb2FkaW5nLm1vZGFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7XG59XG4udWkuYWN0aXZlLm1vZGFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgVG9wIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgQWxpZ25lZCBNb2RhbCAqL1xuLm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLm1vZGFsIHtcbiAgbWFyZ2luOiA1dmggYXV0bztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLm1vZGFsIHtcbiAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgfVxufVxuLyogTGVnYWN5IFRvcCBBbGlnbmVkICovXG4ubGVnYWN5Lm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICBwYWRkaW5nLXRvcDogNXZoO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubGVnYWN5Lm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2Nyb2xsaW5nIERpbW1lciAqL1xuLnNjcm9sbGluZy5kaW1tYWJsZS5kaW1tZWQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnNjcm9sbGluZy5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4uc2Nyb2xsaW5nLmRpbW1hYmxlLmRpbW1lZCA+IC5kaW1tZXIge1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLnNjcm9sbGluZy5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4ubW9kYWxzLmRpbW1lciAudWkuc2Nyb2xsaW5nLm1vZGFsIHtcbiAgbWFyZ2luOiAxcmVtIGF1dG87XG59XG4vKiBVbmRldGFjaGVkIFNjcm9sbGluZyAqL1xuLnNjcm9sbGluZy51bmRldGFjaGVkLmRpbW1hYmxlLmRpbW1lZCB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4uc2Nyb2xsaW5nLnVuZGV0YWNoZWQuZGltbWFibGUuZGltbWVkID4gLmRpbW1lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc2Nyb2xsaW5nLnVuZGV0YWNoZWQuZGltbWFibGUgLnVpLnNjcm9sbGluZy5tb2RhbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBTY3JvbGxpbmcgQ29udGVudCAqL1xuLnVpLm1vZGFsIC5zY3JvbGxpbmcuY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IGNhbGMoNzB2aCk7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgRnVsbCBTY3JlZW5cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZnVsbHNjcmVlbi5tb2RhbCB7XG4gIHdpZHRoOiA5NSUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAxZW0gYXV0bztcbn1cbi51aS5mdWxsc2NyZWVuLm1vZGFsID4gLmhlYWRlciB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW07XG59XG4udWkuZnVsbHNjcmVlbi5tb2RhbCA+IC5jbG9zZSB7XG4gIHRvcDogMS4wNTM1cmVtO1xuICByaWdodDogMXJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1vZGFsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLyogTWluaSAqL1xuLnVpLm1pbmkubW9kYWwgPiAuaGVhZGVyOm5vdCgudWkpIHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbi8qIE1pbmkgTW9kYWwgV2lkdGggKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLm1pbmkubW9kYWwge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLm1pbmkubW9kYWwge1xuICAgIHdpZHRoOiAzNS4yJTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkubWluaS5tb2RhbCB7XG4gICAgd2lkdGg6IDM0MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWkubWluaS5tb2RhbCB7XG4gICAgd2lkdGg6IDM2MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkubWluaS5tb2RhbCB7XG4gICAgd2lkdGg6IDM4MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG4vKiBtaW5pICovXG4udWkuc21hbGwubW9kYWwgPiAuaGVhZGVyOm5vdCgudWkpIHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbi8qIFRpbnkgTW9kYWwgV2lkdGggKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnRpbnkubW9kYWwge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLnRpbnkubW9kYWwge1xuICAgIHdpZHRoOiA1Mi44JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkudGlueS5tb2RhbCB7XG4gICAgd2lkdGg6IDUxMHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWkudGlueS5tb2RhbCB7XG4gICAgd2lkdGg6IDU0MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkudGlueS5tb2RhbCB7XG4gICAgd2lkdGg6IDU3MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG4vKiBTbWFsbCAqL1xuLnVpLnNtYWxsLm1vZGFsID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4vKiBTbWFsbCBNb2RhbCBXaWR0aCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLnNtYWxsLm1vZGFsIHtcbiAgICB3aWR0aDogNzAuNCU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLnNtYWxsLm1vZGFsIHtcbiAgICB3aWR0aDogNjgwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51aS5zbWFsbC5tb2RhbCB7XG4gICAgd2lkdGg6IDcyMHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiA3NjBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuLyogTGFyZ2UgTW9kYWwgV2lkdGggKi9cbi51aS5sYXJnZS5tb2RhbCA+IC5oZWFkZXIge1xuICBmb250LXNpemU6IDEuNmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLmxhcmdlLm1vZGFsIHtcbiAgICB3aWR0aDogODglO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5sYXJnZS5tb2RhbCB7XG4gICAgd2lkdGg6IDEwMjBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVpLmxhcmdlLm1vZGFsIHtcbiAgICB3aWR0aDogMTA4MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiAxMTQwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBOYWdcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTmFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgQ29sbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRpdGxlICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCAvIEJvdHRvbSAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBsdXJhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE5hZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIENvbGxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaXRsZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgLyBCb3R0b20gKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBQbHVyYWxcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBOYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubmFnIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogMC45NTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDBlbTtcbiAgbGVmdDogMHB4O1xuICB6LWluZGV4OiA5OTk7XG4gIG1pbi1oZWlnaHQ6IDBlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBiYWNrZ3JvdW5kOiAjNTU1NTU1O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBmb250LXNpemU6IDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xuICB0cmFuc2l0aW9uOiAwLjJzIGJhY2tncm91bmQgZWFzZTtcbn1cbmEudWkubmFnIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLm5hZyA+IC50aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW0gMC41ZW07XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLm5hZyA+IC5jbG9zZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAxZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBtYXJnaW46IC0wLjVlbSAwZW0gMGVtO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEhvdmVyICovXG4udWkubmFnOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzU1NTU1NTtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5uYWcgLmNsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0YXRpY1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5vdmVybGF5Lm5hZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZpeGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpeGVkLm5hZyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQm90dG9tXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJvdHRvbS5uYWdzLFxuLnVpLmJvdHRvbS5uYWcge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgV2hpdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQubmFncyAubmFnLFxuLnVpLmludmVydGVkLm5hZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGM0Y0RjU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLmludmVydGVkLm5hZ3MgLm5hZyAuY2xvc2UsXG4udWkuaW52ZXJ0ZWQubmFncyAubmFnIC50aXRsZSxcbi51aS5pbnZlcnRlZC5uYWcgLmNsb3NlLFxuLnVpLmludmVydGVkLm5hZyAudGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgR3JvdXBzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm5hZ3MgLm5hZyB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLm5hZ3MgLm5hZzpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWkuYm90dG9tLm5hZ3MgLm5hZzpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBQb3B1cFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBQb3B1cFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQbGFjZW1lbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogQ29udGVudCBCb3JkZXIgKi9cbi8qIEFycm93ICovXG4vKiBBcnJvdyBjb2xvciBieSBwb3NpdGlvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvb2x0aXAgKi9cbi8qIEludmVydGVkICovXG4vKiBBcnJvdyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyaWQgSW5zaWRlIFBvcHVwICovXG4vKiAocGFkZGluZyAqIEBtZWRpdW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFdpZGUgKi9cbi8qIEludmVydGVkICovXG4vKiBBcnJvdyBjb2xvciBieSBwb3NpdGlvbiAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUG9wdXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGxhY2VtZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIENvbnRlbnQgQm9yZGVyICovXG4vKiBBcnJvdyAqL1xuLyogQXJyb3cgY29sb3IgYnkgcG9zaXRpb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb29sdGlwICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQXJyb3cgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcmlkIEluc2lkZSBQb3B1cCAqL1xuLyogKHBhZGRpbmcgKiBAbWVkaXVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBXaWRlICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQXJyb3cgY29sb3IgYnkgcG9zaXRpb24gKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUG9wdXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkucG9wdXAge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICByaWdodDogMHB4O1xuICAvKiBGaXhlcyBjb250ZW50IGJlaW5nIHNxdWlzaGVkIHdoZW4gaW5saW5lIChtb3ogb25seSkgKi9cbiAgbWluLXdpZHRoOiBtaW4tY29udGVudDtcbiAgei1pbmRleDogMTkwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBtYXgtd2lkdGg6IDI1MHB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBwYWRkaW5nOiAwLjgzM2VtIDFlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5wb3B1cCA+IC5oZWFkZXIge1xuICBwYWRkaW5nOiAwZW07XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS5wb3B1cCA+IC5oZWFkZXIgKyAuY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAwLjVlbTtcbn1cbi51aS5wb3B1cDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogMC43MTQyODU3MWVtO1xuICBoZWlnaHQ6IDAuNzE0Mjg1NzFlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB6LWluZGV4OiAyO1xuICBib3gtc2hhZG93OiAxcHggMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBUb29sdGlwXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29udGVudCAqL1xuW2RhdGEtdG9vbHRpcF0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4vKiBBcnJvdyAqL1xuW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgd2lkdGg6IDAuNzE0Mjg1NzFlbTtcbiAgaGVpZ2h0OiAwLjcxNDI4NTcxZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgei1pbmRleDogMjtcbiAgYm94LXNoYWRvdzogMXB4IDFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4vKiBQb3B1cCAqL1xuW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogYXR0cihkYXRhLXRvb2x0aXApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBwYWRkaW5nOiAwLjgzM2VtIDFlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgei1pbmRleDogMTtcbn1cbi8qIERlZmF1bHQgUG9zaXRpb24gKFRvcCBDZW50ZXIpICovXG5bZGF0YS10b29sdGlwXTpub3QoW2RhdGEtcG9zaXRpb25dKTpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgbWFyZ2luLWxlZnQ6IC0wLjA3MTQyODU3cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjE0Mjg1NzE0cmVtO1xufVxuW2RhdGEtdG9vbHRpcF06bm90KFtkYXRhLXBvc2l0aW9uXSk6YWZ0ZXIge1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuW2RhdGEtdG9vbHRpcF06YmVmb3JlLFxuW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHNjYWxlKDApICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2U7XG59XG5bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2U7XG59XG5bZGF0YS10b29sdGlwXTpob3ZlcjpiZWZvcmUsXG5bZGF0YS10b29sdGlwXTpob3ZlcjphZnRlciB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuW2RhdGEtdG9vbHRpcF06aG92ZXI6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHNjYWxlKDEpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG59XG4vKiBBbmltYXRpb24gUG9zaXRpb24gKi9cbltkYXRhLXRvb2x0aXBdOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInRvcCBjZW50ZXJcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGNlbnRlclwiXTphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgwKSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdG9vbHRpcF06aG92ZXI6YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGNlbnRlclwiXTpob3ZlcjphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxKSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXTphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwKSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdOmhvdmVyOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXTpob3ZlcjphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxKSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInRvcCBsZWZ0XCJdOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInRvcCByaWdodFwiXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gbGVmdFwiXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gcmlnaHRcIl06YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDApICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwidG9wIGxlZnRcIl06aG92ZXI6YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwidG9wIHJpZ2h0XCJdOmhvdmVyOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBsZWZ0XCJdOmhvdmVyOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSByaWdodFwiXTpob3ZlcjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFycm93ICovXG5bZGF0YS10b29sdGlwXVtkYXRhLWludmVydGVkXTpiZWZvcmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBBcnJvdyBQb3NpdGlvbiAqL1xuW2RhdGEtdG9vbHRpcF1bZGF0YS1pbnZlcnRlZF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbn1cbi8qIFBvcHVwICAqL1xuW2RhdGEtdG9vbHRpcF1bZGF0YS1pbnZlcnRlZF06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuW2RhdGEtdG9vbHRpcF1bZGF0YS1pbnZlcnRlZF06YWZ0ZXIgLmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IG5vbmU7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBvc2l0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9wIENlbnRlciAqL1xuW2RhdGEtcG9zaXRpb249XCJ0b3AgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwidG9wIGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbGVmdDogNTAlO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBtYXJnaW4tbGVmdDogLTAuMDcxNDI4NTdyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMTQyODU3MTRyZW07XG59XG4vKiBUb3AgTGVmdCAqL1xuW2RhdGEtcG9zaXRpb249XCJ0b3AgbGVmdFwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwidG9wIGxlZnRcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjA3MTQyODU3cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjE0Mjg1NzE0cmVtO1xufVxuLyogVG9wIFJpZ2h0ICovXG5bZGF0YS1wb3NpdGlvbj1cInRvcCByaWdodFwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwidG9wIHJpZ2h0XCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIHJpZ2h0OiAxZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC4wNzE0Mjg1N3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xNDI4NTcxNHJlbTtcbn1cbi8qIEJvdHRvbSBDZW50ZXIgKi9cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogNTAlO1xuICB0b3A6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG5bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjA3MTQyODU3cmVtO1xuICBtYXJnaW4tdG9wOiAwLjE0Mjg1NzE0cmVtO1xufVxuLyogQm90dG9tIExlZnQgKi9cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGxlZnRcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG5bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBsZWZ0XCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAxZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC4wNzE0Mjg1N3JlbTtcbiAgbWFyZ2luLXRvcDogMC4xNDI4NTcxNHJlbTtcbn1cbi8qIEJvdHRvbSBSaWdodCAqL1xuW2RhdGEtcG9zaXRpb249XCJib3R0b20gcmlnaHRcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xufVxuW2RhdGEtcG9zaXRpb249XCJib3R0b20gcmlnaHRcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjE0Mjg1NzE0cmVtO1xuICBtYXJnaW4tdG9wOiAwLjA3MTQyODU3cmVtO1xufVxuLyogTGVmdCBDZW50ZXIgKi9cbltkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHJpZ2h0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHJpZ2h0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTAuMTQyODU3MTRyZW07XG4gIG1hcmdpbi1yaWdodDogLTAuMDcxNDI4NTdyZW07XG59XG4vKiBSaWdodCBDZW50ZXIgKi9cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBsZWZ0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGxlZnQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMC4wNzE0Mjg1N3JlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuMTQyODU3MTRyZW07XG59XG4vKiBBcnJvdyAqL1xuW2RhdGEtcG9zaXRpb25+PVwiYm90dG9tXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbltkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAxcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IC0xcHggMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbltkYXRhLXBvc2l0aW9ufj1cInRvcFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4vKiBJbnZlcnRlZCBBcnJvdyBDb2xvciAqL1xuW2RhdGEtaW52ZXJ0ZWRdW2RhdGEtcG9zaXRpb25+PVwiYm90dG9tXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbltkYXRhLWludmVydGVkXVtkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xuICBib3gtc2hhZG93OiAxcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1pbnZlcnRlZF1bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG4gIGJveC1zaGFkb3c6IC0xcHggMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbltkYXRhLWludmVydGVkXVtkYXRhLXBvc2l0aW9ufj1cInRvcFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG59XG5bZGF0YS1wb3NpdGlvbn49XCJib3R0b21cIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuW2RhdGEtcG9zaXRpb25+PVwiYm90dG9tXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xufVxuW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG59XG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbn1cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3BhY2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wb3B1cCB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyogRXh0ZW5kaW5nIGZyb20gVG9wICovXG4udWkudG9wLnBvcHVwIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuNzE0Mjg1NzFlbTtcbn1cbi51aS50b3AubGVmdC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xufVxuLnVpLnRvcC5jZW50ZXIucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuLnVpLnRvcC5yaWdodC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbn1cbi8qIEV4dGVuZGluZyBmcm9tIFZlcnRpY2FsIENlbnRlciAqL1xuLnVpLmxlZnQuY2VudGVyLnBvcHVwIHtcbiAgbWFyZ2luOiAwZW0gMC43MTQyODU3MWVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IDUwJTtcbn1cbi51aS5yaWdodC5jZW50ZXIucG9wdXAge1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNzE0Mjg1NzFlbTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCA1MCU7XG59XG4vKiBFeHRlbmRpbmcgZnJvbSBCb3R0b20gKi9cbi51aS5ib3R0b20ucG9wdXAge1xuICBtYXJnaW46IDAuNzE0Mjg1NzFlbSAwZW0gMGVtO1xufVxuLnVpLmJvdHRvbS5sZWZ0LnBvcHVwIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG59XG4udWkuYm90dG9tLmNlbnRlci5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG59XG4udWkuYm90dG9tLnJpZ2h0LnBvcHVwIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQb2ludGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gQmVsb3cgLS0tKi9cbi51aS5ib3R0b20uY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIG1hcmdpbi1sZWZ0OiAtMC4zMDcxNDI4NmVtO1xuICB0b3A6IC0wLjMwNzE0Mjg2ZW07XG4gIGxlZnQ6IDUwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi51aS5ib3R0b20ubGVmdC5wb3B1cCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4vKnJ0bDpyZW5hbWUqL1xuLnVpLmJvdHRvbS5sZWZ0LnBvcHVwOmJlZm9yZSB7XG4gIHRvcDogLTAuMzA3MTQyODZlbTtcbiAgbGVmdDogMWVtO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLnVpLmJvdHRvbS5yaWdodC5wb3B1cCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLypydGw6cmVuYW1lKi9cbi51aS5ib3R0b20ucmlnaHQucG9wdXA6YmVmb3JlIHtcbiAgdG9wOiAtMC4zMDcxNDI4NmVtO1xuICByaWdodDogMWVtO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4vKi0tLSBBYm92ZSAtLS0qL1xuLnVpLnRvcC5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiAtMC4zMDcxNDI4NmVtO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMC4zMDcxNDI4NmVtO1xufVxuLnVpLnRvcC5sZWZ0LnBvcHVwIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi8qcnRsOnJlbmFtZSovXG4udWkudG9wLmxlZnQucG9wdXA6YmVmb3JlIHtcbiAgYm90dG9tOiAtMC4zMDcxNDI4NmVtO1xuICBsZWZ0OiAxZW07XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkudG9wLnJpZ2h0LnBvcHVwIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKnJ0bDpyZW5hbWUqL1xuLnVpLnRvcC5yaWdodC5wb3B1cDpiZWZvcmUge1xuICBib3R0b206IC0wLjMwNzE0Mjg2ZW07XG4gIHJpZ2h0OiAxZW07XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi8qLS0tIExlZnQgQ2VudGVyIC0tLSovXG4vKnJ0bDpyZW5hbWUqL1xuLnVpLmxlZnQuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIHRvcDogNTAlO1xuICByaWdodDogLTAuMzA3MTQyODZlbTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiAtMC4zMDcxNDI4NmVtO1xuICBib3gtc2hhZG93OiAxcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4vKi0tLSBSaWdodCBDZW50ZXIgIC0tLSovXG4vKnJ0bDpyZW5hbWUqL1xuLnVpLnJpZ2h0LmNlbnRlci5wb3B1cDpiZWZvcmUge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogLTAuMzA3MTQyODZlbTtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luLXRvcDogLTAuMzA3MTQyODZlbTtcbiAgYm94LXNoYWRvdzogLTFweCAxcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLyogQXJyb3cgQ29sb3IgQnkgTG9jYXRpb24gKi9cbi51aS5ib3R0b20ucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi51aS5yaWdodC5jZW50ZXIucG9wdXA6YmVmb3JlLFxuLnVpLmxlZnQuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4udWkudG9wLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4vKiBJbnZlcnRlZCBBcnJvdyBDb2xvciAqL1xuLnVpLmludmVydGVkLmJvdHRvbS5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xufVxuLnVpLmludmVydGVkLnJpZ2h0LmNlbnRlci5wb3B1cDpiZWZvcmUsXG4udWkuaW52ZXJ0ZWQubGVmdC5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbn1cbi51aS5pbnZlcnRlZC50b3AucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEltbWVkaWF0ZSBOZXN0ZWQgR3JpZCAqL1xuLnVpLnBvcHVwID4gLnVpLmdyaWQ6bm90KC5wYWRkZWQpIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDEuNzVyZW0pO1xuICBtYXJnaW46IC0wLjdyZW0gLTAuODc1cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5sb2FkaW5nLnBvcHVwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7XG59XG4udWkuYW5pbWF0aW5nLnBvcHVwLFxuLnVpLnZpc2libGUucG9wdXAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS52aXNpYmxlLnBvcHVwIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5iYXNpYy5wb3B1cDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXaWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLndpZGUucG9wdXAge1xuICBtYXgtd2lkdGg6IDM1MHB4O1xufVxuLnVpW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5wb3B1cCB7XG4gIG1heC13aWR0aDogNTUwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS53aWRlLnBvcHVwLFxuICAudWlbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnBvcHVwIHtcbiAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLnBvcHVwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgY29sb3JzICAqL1xuLnVpLmludmVydGVkLnBvcHVwIHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnZlcnRlZC5wb3B1cCAuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbG93aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb3dpbmcucG9wdXAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkucG9wdXAge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkudGlueS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS5zbWFsbC5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5odWdlLnBvcHVwIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFVzZXIgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gUHJvZ3Jlc3MgQmFyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUHJvZ3Jlc3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYXIgKi9cbi8qIFByb2dyZXNzIEJhciBMYWJlbCAqL1xuLyogTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQWN0aXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF0dGFjaGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2l6aW5nICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFByb2dyZXNzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmFyICovXG4vKiBQcm9ncmVzcyBCYXIgTGFiZWwgKi9cbi8qIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFjdGl2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBdHRhY2hlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNpemluZyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQcm9ncmVzc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5wcm9ncmVzcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDFlbSAwZW0gMi41ZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcGFkZGluZzogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnByb2dyZXNzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDIuNWVtO1xufVxuLnVpLnByb2dyZXNzOmxhc3QtY2hpbGQge1xuICBtYXJnaW46IDBlbSAwZW0gMS41ZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFjdGl2aXR5IEJhciAqL1xuLnVpLnByb2dyZXNzIC5iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDAlO1xuICBtaW4td2lkdGg6IDJlbTtcbiAgYmFja2dyb3VuZDogIzg4ODg4ODtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4xcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIFBlcmNlbnQgQ29tcGxldGUgKi9cbi51aS5wcm9ncmVzcyAuYmFyID4gLnByb2dyZXNzIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogYXV0bztcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG4gIHRvcDogNTAlO1xuICByaWdodDogMC41ZW07XG4gIGxlZnQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4vKiBMYWJlbCAqL1xuLnVpLnByb2dyZXNzID4gLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxZW07XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDAlO1xuICBib3R0b206IGF1dG87XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDAuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuNHMgZWFzZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEluZGljYXRpbmcgKi9cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIxXCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMlwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q5NUM1Qztcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIzXCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUZCQzcyO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjRcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI1XCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTZCQjQ4O1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjZcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEREM5Mjg7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiN1wiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjhcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNEQ5NUM7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiOVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjEwMFwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2REE4MTtcbn1cbi8qIEluZGljYXRpbmcgTGFiZWwgKi9cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIxXCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIyXCJdIC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjNcIl0gLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNFwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNVwiXSAubGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI2XCJdIC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjdcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjhcIl0gLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiOVwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMTAwXCJdIC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogU2luZ2xlIERpZ2l0cyAqL1xuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiMVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiMlwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiM1wiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNFwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNlwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiN1wiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOFwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOVwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q5NUM1Qztcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjFcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiMlwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIzXCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjRcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNVwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI2XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjdcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOFwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI5XCJdIC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogSW5kaWNhdGluZyBTdWNjZXNzICovXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzcy5zdWNjZXNzIC5sYWJlbCB7XG4gIGNvbG9yOiAjMUE1MzFCO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN1Y2Nlc3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucHJvZ3Jlc3Muc3VjY2VzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLnN1Y2Nlc3MgLmJhcixcbi51aS5wcm9ncmVzcy5zdWNjZXNzIC5iYXI6OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3Muc3VjY2VzcyA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjMUE1MzFCO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXYXJuaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnByb2dyZXNzLndhcm5pbmcgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkMwMzcgIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy53YXJuaW5nIC5iYXIsXG4udWkucHJvZ3Jlc3Mud2FybmluZyAuYmFyOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLndhcm5pbmcgPiAubGFiZWwge1xuICBjb2xvcjogIzc5NEIwMjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucHJvZ3Jlc3MuZXJyb3IgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy5lcnJvciAuYmFyLFxuLnVpLnByb2dyZXNzLmVycm9yIC5iYXI6OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3MuZXJyb3IgPiAubGFiZWwge1xuICBjb2xvcjogIzkxMkQyQjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFjdGl2ZS5wcm9ncmVzcyAuYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4td2lkdGg6IDJlbTtcbn1cbi51aS5hY3RpdmUucHJvZ3Jlc3MgLmJhcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICByaWdodDogMHB4O1xuICBib3R0b206IDBweDtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYW5pbWF0aW9uOiBwcm9ncmVzcy1hY3RpdmUgMnMgZWFzZSBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtYWN0aXZlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICB3aWR0aDogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGlzYWJsZWQucHJvZ3Jlc3Mge1xuICBvcGFjaXR5OiAwLjM1O1xufVxuLnVpLmRpc2FibGVkLnByb2dyZXNzIC5iYXIsXG4udWkuZGlzYWJsZWQucHJvZ3Jlc3MgLmJhcjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBib3JkZXI6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQ6ICM4ODg4ODg7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciA+IC5wcm9ncmVzcyB7XG4gIGNvbG9yOiAjRjlGQUZCO1xufVxuLnVpLmludmVydGVkLnByb2dyZXNzID4gLmxhYmVsIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3Muc3VjY2VzcyA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjMjFCQTQ1O1xufVxuLnVpLmludmVydGVkLnByb2dyZXNzLndhcm5pbmcgPiAubGFiZWwge1xuICBjb2xvcjogI0YyQzAzNztcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcy5lcnJvciA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogYm90dG9tIGF0dGFjaGVkICovXG4udWkucHJvZ3Jlc3MuYXR0YWNoZWQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLnByb2dyZXNzLmF0dGFjaGVkLFxuLnVpLnByb2dyZXNzLmF0dGFjaGVkIC5iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwLjJyZW07XG4gIHBhZGRpbmc6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWkucHJvZ3Jlc3MuYXR0YWNoZWQgLmJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qIHRvcCBhdHRhY2hlZCAqL1xuLnVpLnByb2dyZXNzLnRvcC5hdHRhY2hlZCxcbi51aS5wcm9ncmVzcy50b3AuYXR0YWNoZWQgLmJhciB7XG4gIHRvcDogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aS5wcm9ncmVzcy50b3AuYXR0YWNoZWQgLmJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qIENvdXBsaW5nICovXG4udWkuc2VnbWVudCA+IC51aS5hdHRhY2hlZC5wcm9ncmVzcyxcbi51aS5jYXJkID4gLnVpLmF0dGFjaGVkLnByb2dyZXNzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuc2VnbWVudCA+IC51aS5ib3R0b20uYXR0YWNoZWQucHJvZ3Jlc3MsXG4udWkuY2FyZCA+IC51aS5ib3R0b20uYXR0YWNoZWQucHJvZ3Jlc3Mge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVkICovXG4udWkucmVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4O1xufVxuLnVpLnJlZC5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNjk1RTtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLm9yYW5nZS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzExQztcbn1cbi51aS5vcmFuZ2UuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjg1MUI7XG59XG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDg7XG59XG4udWkueWVsbG93LmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFMjFGO1xufVxuLyogT2xpdmUgKi9cbi51aS5vbGl2ZS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxODtcbn1cbi51aS5vbGl2ZS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q5RTc3ODtcbn1cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4ucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDU7XG59XG4udWkuZ3JlZW4uaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyRUNDNDA7XG59XG4vKiBUZWFsICovXG4udWkudGVhbC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRDtcbn1cbi51aS50ZWFsLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkRGRkZGO1xufVxuLyogQmx1ZSAqL1xuLnVpLmJsdWUucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBOUU7XG59XG4udWkuYmx1ZS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUzOTFDNTtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLnZpb2xldC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOTtcbn1cbi51aS52aW9sZXQuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMjkxRkI7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzg7XG59XG4udWkucHVycGxlLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREM3M0ZGO1xufVxuLyogUGluayAqL1xuLnVpLnBpbmsucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTc7XG59XG4udWkucGluay5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGOEVERjtcbn1cbi8qIEJyb3duICovXG4udWkuYnJvd24ucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0Y7XG59XG4udWkuYnJvd24uaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNENjdDMUM7XG59XG4vKiBHcmV5ICovXG4udWkuZ3JleS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3Njtcbn1cbi51aS5ncmV5LmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRENERERFO1xufVxuLyogQmxhY2sgKi9cbi51aS5ibGFjay5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRDtcbn1cbi51aS5ibGFjay5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0NTQ1NDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGlueS5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS50aW55LnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IDAuNWVtO1xufVxuLnVpLnNtYWxsLnByb2dyZXNzIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLnNtYWxsLnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IDFlbTtcbn1cbi51aS5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5wcm9ncmVzcyAuYmFyIHtcbiAgaGVpZ2h0OiAxLjc1ZW07XG59XG4udWkubGFyZ2UucHJvZ3Jlc3Mge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkubGFyZ2UucHJvZ3Jlc3MgLmJhciB7XG4gIGhlaWdodDogMi41ZW07XG59XG4udWkuYmlnLnByb2dyZXNzIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuLnVpLmJpZy5wcm9ncmVzcyAuYmFyIHtcbiAgaGVpZ2h0OiAzLjVlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQcm9ncmVzc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFJhdGluZ1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSYXRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4vKiBTdGFyICovXG4vKiBIZWFydCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSYXRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4vKiBTdGFyICovXG4vKiBIZWFydCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBSYXRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkucmF0aW5nIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi51aS5yYXRpbmc6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLyogSWNvbiAqL1xuLnVpLnJhdGluZyAuaWNvbiB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luOiAwZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmbGV4OiAxIDAgYXV0bztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMS4yNWVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlLCBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgdGV4dC1zaGFkb3cgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2U7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGFuZGFyZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5hY3RpdmUgSWNvbiAqL1xuLnVpLnJhdGluZyAuaWNvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi8qIEFjdGl2ZSBJY29uICovXG4udWkucmF0aW5nIC5hY3RpdmUuaWNvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi8qIFNlbGVjdGVkIEljb24gKi9cbi51aS5yYXRpbmcgLmljb24uc2VsZWN0ZWQsXG4udWkucmF0aW5nIC5pY29uLnNlbGVjdGVkLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbmFjdGl2ZSAqL1xuLnVpLnN0YXIucmF0aW5nIC5pY29uIHtcbiAgd2lkdGg6IDEuMjVlbTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQWN0aXZlIFN0YXIgKi9cbi51aS5zdGFyLnJhdGluZyAuYWN0aXZlLmljb24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTYyMyAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMHB4IC0xcHggMHB4ICNEREM1MDcsIC0xcHggMHB4IDBweCAjRERDNTA3LCAwcHggMXB4IDBweCAjRERDNTA3LCAxcHggMHB4IDBweCAjRERDNTA3ICFpbXBvcnRhbnQ7XG59XG4vKiBTZWxlY3RlZCBTdGFyICovXG4udWkuc3Rhci5yYXRpbmcgLmljb24uc2VsZWN0ZWQsXG4udWkuc3Rhci5yYXRpbmcgLmljb24uc2VsZWN0ZWQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkNDMDAgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IDBweCAtMXB4IDBweCAjRTZBMjAwLCAtMXB4IDBweCAwcHggI0U2QTIwMCwgMHB4IDFweCAwcHggI0U2QTIwMCwgMXB4IDBweCAwcHggI0U2QTIwMCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhlYXJ0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhcnQucmF0aW5nIC5pY29uIHtcbiAgd2lkdGg6IDEuNGVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEFjdGl2ZSBIZWFydCAqL1xuLnVpLmhlYXJ0LnJhdGluZyAuYWN0aXZlLmljb24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNkQ3NSAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMHB4IC0xcHggMHB4ICNDRDA3MDcsIC0xcHggMHB4IDBweCAjQ0QwNzA3LCAwcHggMXB4IDBweCAjQ0QwNzA3LCAxcHggMHB4IDBweCAjQ0QwNzA3ICFpbXBvcnRhbnQ7XG59XG4vKiBTZWxlY3RlZCBIZWFydCAqL1xuLnVpLmhlYXJ0LnJhdGluZyAuaWNvbi5zZWxlY3RlZCxcbi51aS5oZWFydC5yYXRpbmcgLmljb24uc2VsZWN0ZWQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjMwMDAgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IDBweCAtMXB4IDBweCAjQUEwMTAxLCAtMXB4IDBweCAwcHggI0FBMDEwMSwgMHB4IDFweCAwcHggI0FBMDEwMSwgMXB4IDBweCAwcHggI0FBMDEwMSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogZGlzYWJsZWQgcmF0aW5nICovXG4udWkuZGlzYWJsZWQucmF0aW5nIC5pY29uIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBVc2VyIEludGVyYWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWxlY3RlZCBSYXRpbmcgKi9cbi51aS5yYXRpbmcuc2VsZWN0ZWQgLmFjdGl2ZS5pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5yYXRpbmcuc2VsZWN0ZWQgLmljb24uc2VsZWN0ZWQsXG4udWkucmF0aW5nIC5pY29uLnNlbGVjdGVkIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5taW5pLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS5zbWFsbC5yYXRpbmcge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkucmF0aW5nIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5odWdlLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSYXRpbmcnO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZ2dqQ0JzQUFBQzhBQUFBWUdOdFlYQ2oycG04QUFBQkhBQUFBS1JuWVhOd0FBQUFFQUFBQWNBQUFBQUlaMng1WmxKYlhNWUFBQUhJQUFBUm5HaGxZV1FCR0FlNUFBQVRaQUFBQURab2FHVmhBK0lCL1FBQUU1d0FBQUFrYUcxMGVDemdBRU1BQUJQQUFBQUFjR3h2WTJFd1hDeE9BQUFVTUFBQUFEcHRZWGh3QUNJQW5BQUFGR3dBQUFBZ2JtRnRaZkMxbjA0QUFCU01BQUFCUEhCdmMzUUFBd0FBQUFBVnlBQUFBQ0FBQXdJQUFaQUFCUUFBQVV3QlpnQUFBRWNCVEFGbUFBQUE5UUFaQUlRQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEeFpRSGcvK0QvNEFIZ0FDQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFDQUFBQUF3QUFBQlFBQXdBQkFBQUFGQUFFQUpBQUFBQWdBQ0FBQkFBQUFBRUFJT1lGOEFid0RmQWo4Qzd3YnZCdzhJcndsL0NjOFNQeFpmLzkvLzhBQUFBQUFDRG1BUEFFOEF6d0kvQXU4Rzd3Y1BDSDhKZnduUEVqOFdULy9mLy9BQUgvNHhvRUVBWVFBUS9zRCtJUG93K2lENHdQZ0E5OER2WU90Z0FEQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFILy93QVBBQUVBQUFBQUFBQUFBQUFDQUFBM09RRUFBQUFBQVFBQUFBQUFBQUFBQUFJQUFEYzVBUUFBQUFBQkFBQUFBQUFBQUFBQUFnQUFOemtCQUFBQUFBSUFBUC90QWdBQjB3QUtBQlVBQUFFdkFROEJGd2MzRnljM0JRYzNKejhCSHdFSEZ5Y0NBTEZQVDdHQUhwNmVIb0QvQUhBV1czMDRPSDFiRm5BQkdScWdvQnA4c0ZOVHNIeXlPbnhZRW5GeEVsaDhPZ0FBQUFBQ0FBRC83UUlBQWRNQUNnQVNBQUFCTHdFUEFSY0hOeGNuTndVeEVSOEJCeGNuQWdDeFQwK3hnQjZlbmg2QS93QTRmVnNXY0FFWkdxQ2dHbnl3VTFPd2ZMSUJIWEVTV0h3NkFBQUFBUUFBLyswQ0FBSFRBQW9BQUFFdkFROEJGd2MzRnljM0FnQ3hUMCt4Z0I2ZW5oNkFBUmthb0tBYWZMQlRVN0I4QUFBQUFBRUFBQUFBQWdBQndBQXJBQUFCRkE0Q0J6RUhEZ01qSWk0Q0x3RXVBelUwUGdJek1oNENGejRETXpJZUFoVUNBQWNNRWd1Z0Jnd01EQVlHREF3TUJxQUxFZ3dIRnlnMkhoQWZHeGtLQ2hrYkh4QWVOaWdYQVMwUUh4c1pDcUFHQ3drR0JRa0xCcUFLR1JzZkVCNDJLQmNIREJJTEN4SU1CeGNvTmg0QUFBQUFBZ0FBQUFBQ0FBSEFBQ3NBV0FBQUFUUXVBaU1pRGdJSExnTWpJZzRDRlJRZUFoY3hGeDRETXpJK0FqOEJQZ00xRHdFaUZDSUdNVEFtSWpRakp5NEROVFErQWpNeUhnSWZBVGMrQXpNeUhnSVZGQTRDQndJQUZ5ZzJIaEFmR3hrS0Noa2JIeEFlTmlnWEJ3d1NDNkFHREF3TUJnWU1EQXdHb0FzU0RBZGJvZ0VCQVFFQkFhSUdDZ2NFRFJjZUVRa1JFQTRHTHk4R0RoQVJDUkVlRncwRUJ3b0dBUzBlTmlnWEJ3d1NDd3NTREFjWEtEWWVFQjhiR1FxZ0Jnc0pCZ1VKQ3dhZ0Noa2JIeEErb2dFQkFRR2lCZzRRRVFrUkhoY05CQWNLQmpRMEJnb0hCQTBYSGhFSkVSQU9CZ0FCQUFBQUFBSUFBY0FBTVFBQUFSUU9BZ2N4Qnc0REl5SXVBaThCTGdNMU5ENENNekllQWhjSEZ3YzNKemMrQXpNeUhnSVZBZ0FIREJJTG9BWU1EQXdHQmd3TURBYWdDeElNQnhjb05oNEtGUk1TQ0M5d1FMQndKd1VKQ2drRkhqWW9Gd0V0RUI4YkdRcWdCZ3NKQmdVSkN3YWdDaGtiSHhBZU5pZ1hBd1VJQlV0QW9NQkFPd0VDQVFFWEtEWWVBQUFCQUFBQUFBSUFBYmNBS2dBQUV6UTNOak15RnhZWEZoY1dGelkzTmpjMk56WXpNaGNXRlJRUEFRWWpJaThCSmljbUp5WW5KaWNtTlFBa0pVQVJFeElRRUFzTUNnb01DeEFRRWhNUlFDVWtRYklHQndjR3NnTUZCUXNLQ1FrR0J3RXhQeU1rQmdZTENna0tDZ29LQ1FvTEJnWWtJejgvUWF3RkJhd0NCZ1VORGc0T0ZSUVRBQUFBQVFBQUFBMEIyd0hTQUNZQUFCTTBQd0kyRnpZZkFoWVZGQThCRnhRVkZBY0dCeVl2QVFjR0J5WW5KalUwUHdFbkpqVUFFSTlCQlFrSUJrQ1BFQWRvR1FNREJnVUdnSUVHQlFZREF3RVlhQWNCSXdzQ0ZvRU1BUUVNZ1JZQ0N3WUlaSkFCQlFVRkF3RUJBa1ZGQWdFQkF3VUZBd09RWkFrRkFBQUFBQUlBQUFBTkFkc0IwZ0FrQUM0QUFCTTBQd0kyRnpZZkFoWVZGQThCRnhRVkZBY21Md0VIQmdjbUp5WTFORDhCSnlZMUh3RUhOeGNuTnk4QkJ3QVFqMEVGQ1FnR1FJOFFCMmdaREFVR2dJRUdCUVlEQXdFWWFBYy9XQlZzYXhSWGVEWTJBU01MQWhhQkRBRUJESUVXQWdzR0NHU1FBUVVOQVFFQ1JVVUNBUUVEQlFVREE1QmtDUVVSVlhnNE9IaFZFVzV1QUFBQkFDTUFLUUhkQVh3QUdnQUFOelEvQVRZWE5oOEJOellYTmg4QkZoVVVEd0VHQnlZdkFTWTFJd2dtQ0F3TENGUzhDQXNNQ0NZSUNQVUlEQXNJamdqU0N3a21DUUVCQ1ZTN0NRRUJDU1lKQ2cwSDlnY0JBUWVQQnd3QUFBRUFId0FmQVhNQmN3QXNBQUEzTkQ4Qkp5WTFORDhCTmpNeUh3RTNOak15SHdFV0ZSUVBBUmNXRlJRUEFRWWpJaThCQndZaklpOEJKalVmQ0ZSVUNBZ25DQXdMQ0ZSVUNBd0xDQ2NJQ0ZSVUNBZ25DQXNNQ0ZSVUNBc01DQ2NJWWdzSVZGUUlEQXNJSndnSVZGUUlDQ2NJQ3d3SVZGUUlDd3dJSndnSVZGUUlDQ2NJREFBQUFBQUNBQUFBSlFGSkFiY0FId0FyQUFBM05UUTNOanNCTlRRM05qTXlGeFlkQVRNeUZ4WWRBUlFIQmlNaElpY21OVGN6TlRRbkppTWlCd1lkQVFBSUNBc0tKU1kxTkNZbUNRc0lDQWdJQy83dEN3Z0lXNU1XRlI0ZkZSWkFwUXNJQ0RjMEppWW1KalEzQ0FnTHBRc0lDQWdJQzhBM0hoWVZGUlllTndBQUFRQUFBQWNCYmdHM0FDRUFBRGNSTkRjMk56WXpJVElYRmhjV0ZSRVVCd1lIQmlNaUx3RUhCaU1pSnlZbkpqVUFCZ1VLQmdZQkxBWUdDZ1VHQmdVS0JRY09DbjUrQ2c0R0Jnb0ZCaWNCY0FvSUNBTURBd01JQ0FyK2tBb0lDQVFDQ1hsNUNRSUVDQWdLQUFBQUF3QUFBQ1VDQUFGdUFCZ0FNUUJLQUFBM05EYzJOell6TWhjV0Z4WVZGQWNHQndZaklpY21KeVkxTXhZWEZqTXlOelkzSmljV0ZSUUhCaU1pSnlZMU5EY0dCemNVRnhZek1qYzJOVFEzTmpNeU56WTFOQ2NtSXlJSEJoVUFCaWhEUkV0TFJFTW9CZ1lvUTBSTFMwUkRLQVlsSmprNVEwTTVPU1lyUVJFbUpUVTFKU1lSUVN1RUJBUUdCZ1FFRVJFWkJnUUVCQVFHSkJrYXlRb0tRU2dvS0NoQkNnb0tDa0VvSnljb1FRb0tPaU1qSXlNNlJDRWVJalVtSlNVbU5TSWVJVVFsQmdRRUJBUUdHQklSQkFRR0JnUUVHaG9qQUFBQUJRQUFBQWtDQUFHSkFDd0FPQUJSQUdnQWNBQUFOelEzTmpjMk16SVhOell6TWhjV0Z4WVhGaGNXRnhZVkZERUdCd1lQQVFZaklpY21OVFEzSmljbUp5WTFNeFlYTnlZbkpqVTBOd1lITnhRWEZqTXlOelkxTkRjMk16STNOalUwSnlZaklnY0dGUmMzTmpjMk55WW5OeFlYRmhjV0ZSUUhCZ2NHQndZalB3RVdGUlFIQmdjQUJpdEJRVTBaR2hBREJRRUVCQVVGQkFVRUJRRUVIanc4SGc0REJRUWlCUTBwSXlJWkJpVXZTeFlaRGc0UlFTdUVCQVFHQmdRRUVSRVpCZ1FFQkFRR0pCa2FWeFU5TXpRaUlEQVNHeGtaRUFZR0N4UXJPRGsvTGxBQ0Z4WWx5UXNKUXljbkJSd0VBZ0VEQXdJREF3SUJBd1VDTm14c05oa0ZGQU1GQkJVVEhoOG5DUXRLSVNnU0hCc2ZJaDRoUkNVR0JBUUVCQVlZRWhFRUJBWUdCQVFhR2lQSkpRVWlJall6SVNBU0doa2JDZ29LQ2hJWE1Sc2JVWkFOQ3lnaElBOEFBQU1BQUFBQUFiY0Iyd0E1QUVvQWxBQUFOelUwTnpZN0FUWTNOamMyTnpZM05qYzJNeklYRmhjV0ZSUUhNeklYRmhVVUJ4WVZGQWNVRlJRSEZnY0dLd0VpSnlZbkppc0JJaWNtTlRjVUZ4WXpNamMyTlRRbkppTWlCd1lWRnpNeUZ4WVhGaGNXRnhZWEZoY1dPd0V5TlRRbk5qYzJOVFFuTmpVMEp5WW5OamMyTlRRbkppc0JORGMyTlRRbkppTUdCd1lIQmdjR0J3WUhCZ2NHQndZSEJnY0dCd1lyQVJVQUN3b1FUZ29kRVE0R0JBTUZCZ3dMRHhnVEV3b0tEak1kRmhZT0Fnb1JBUmtaS0NVYkd4c2pJUVpTRUFvTEpRVUZDQWNHQlFVR0J3Z0ZCVWtKQkFVRkJBUUhCd01EQndjQ1BDVWpOd0lKQlFVRkR3TURCQWtHQmdzTERtVU9EZ29KR3dnREF3WUZEQVlRQVFVR0F3UUdCZ1lGQmdVR0JnUUpTYmNQQ3dzR0poVVBDQkVSRXhNTUNna0pGQlFoR3h3V0ZSNFpGUW9LRmhNR0JoMFdLQmNYQmdjTURBb0xEeElIQlFZR0JRY0lCUVlHQlFnU0FRRUJBUUlDQVFFREFnRVVMd2dJQlFvTENnc0pEaFFIQ1FrRUFRME5DZzhMQ3hBZEhSRWNEUTRJRUJFVEV3MEdGQUVIQndVRUNBZ0ZCUVVGQWdPM0FBQURBQUQvMndHM0FiY0FQQUJOQUprQUFEYzFORGMyT3dFeU56WTNOanNCTWhjV0J4VVdGUlFWRmhVVUJ4WVZGQWNHS3dFV0ZSUUhCZ2NHSXlJbkppY21KeVluSmljbUp5WW5JeUluSmpVM0ZCY1dNekkzTmpVMEp5WWpJZ2NHRlJjek1oY1dGeFlYRmhjV0Z4WVhGaGNXRnhZWEZoY1dGekkzTmpVMEp5WTFNekkzTmpVMEp5WWpOamMyTlRRbk5qVTBKeVluTmpVMEp5WXJBU0lISWdjR0J3WUhCZ2NHSXdZckFSVUFDd29RVWdZaEpSc2JIaUFvR1JrQkVRb0NEaFlXSFRNT0Nnb1RFeGdQQ3dvRkJnSUJCQU1GRGhFZENrNFFDZ3NsQlFVSUJ3WUZCUVlIQ0FVRlNRa0VCZ1lGQmdVR0JnWUVBd1lGQVJBR0RBVUdBd01JR3drS0RnNWxEZ3NMQmdZSkJBTUREd1VGQlFrQ0RnNFpKU1U4QWdjSEF3TUhCd1FFQlFVRUNiZTNEd3NLREF3SEJoY1dKd0lXSFFZR0V4WUtDaFVaSGhZVkhSb2lFeFFKQ2dzSkRnNE1EQXdOQmc0V0pRY0xDdytrQndVR0JnVUhDQVVHQmdVSXBBTUNCUVlGQlFjSUJBVUhCd0lUQnd3VEV4RVJCdzBPSEJFZEhSQUxDdzhLRFEwRkNRa0hGQTRKQ3dvTENnVUlDQmdNQ3hVREFnRUJBZ01CQVFHM0FBQUFBUUFBQUEwQTdnSFNBQlFBQUJNMFB3STJGeEVIQmdjbUp5WTFORDhCSnlZMUFCQ1BRUVVKZ1FZRkJnTURBUmhvQndFakN3SVdnUXdCL29ORkFnRUJBd1VGQXdPUVpBa0ZBQUFBQUFJQUFBQUFBZ0FCdHdBcUFGa0FBQk0wTnpZek1oY1dGeFlYRmhjMk56WTNOamMyTXpJWEZoVVVEd0VHSXlJdkFTWW5KaWNtSnlZbkpqVXpGQjhCTnpZMU5DY21KeVluSmljbUl5SUhCZ2NHQndZSEJpTWlKeVluSmljbUp5WWpJZ2NHQndZSEJnY0dGUUFrSlVBUkV4SVFFQXNNQ2dvTUN4QVFFaE1SUUNVa1FiSUdCd2NHc2dNRkJRc0tDUWtHQnlVMXBxWTFCZ1lKQ2c0TkRnMFBEaElSRGc4S0NnY0ZDUWtGQndvS0R3NFJFZzRQRFE0TkRnb0pCZ1lCTVQ4akpBWUdDd29KQ2dvS0Nna0tDd1lHSkNNL1AwR3NCUVdzQWdZRkRRNE9EaFVVRXpBMW9KODJNQmNTRWdvTEJnY0NBZ2NIQ3dzS0NRZ0hCd2dKQ2dzTEJ3Y0NBZ2NHQ3dvU0VoY0FBQUFDQUFBQUJ3RnVBYmNBSVFBb0FBQTNFVFEzTmpjMk15RXlGeFlYRmhVUkZBY0dCd1lqSWk4QkJ3WWpJaWNtSnlZMVB3RWZBUkVoRVFBR0JRb0dCZ0VzQmdZS0JRWUdCUW9GQnc0S2ZuNEtEZ1lHQ2dVR0paSVplZjdjSndGd0NnZ0lBd01EQXdnSUN2NlFDZ2dJQkFJSmVYa0pBZ1FJQ0FvSWpSbDBBV1ArblFBQUFBQUJBQUFBSlFIYkFiY0FNZ0FBTnpVME56WTdBVFUwTnpZek1oY1dIUUVVQndZckFTSW5KajBCTkNjbUl5SUhCaDBCTXpJWEZoMEJGQWNHSXlFaUp5WTFBQWdJQzhBbUpqUTFKaVVGQlFnU0NBVUZGaFVmSGhVV0hBc0lDQWdJQy83dEN3Z0lRS1VMQ0FnM05TVW1KaVUxU1FnRkJnWUZDRWtlRmhVVkZoNDNDQWdMcFFzSUNBZ0lDd0FBQUFJQUFRQU5BZHNCMGdBaUFDMEFBQk0yUHdJMk16SWZBaFlYRmc4QkZ4WUhCaU1pTHdFSEJpTWlKeVkvQVNjbU54OENMd0UvQVM4Q0V3RURESkJBQmdnSkJVR09EZ0lEQ21jWUFnUUNDQU1JZjRJRkJnWUVBZ0VaYVFnQzdoQmJFZ0lOU25rSUxnRUJKZ2dDRllJTEM0SVZBZ2dJQ1dXUENnVUZBMFJFQXdVRkNvOWxDUWlwQ1RCbUV3MUhFaEZjL3UwQUFBQURBQUFBQUFISkFiY0FGQUFsQUhrQUFEYzFORGMyT3dFeUZ4WWRBUlFIQmlzQklpY21OVGNVRnhZek1qYzJOVFFuSmlNaUJ3WVZGelUwTnpZek5qYzJOelkzTmpjMk56WTNOamMyTnpZM05qTXlGeFlYRmhjV0Z4WVhGaFVVRlJRSEJnY0dCeFFIQmdjR0J6TXlGeFlWRkFjV0ZSWUhGZ2NHQnhZSEJnY2pJaWNtSnlZbkppY2lKeVkxQUFVR0IxTUhCUVlHQlFkVEJ3WUZKUVVGQ0FjR0JRVUdCd2dGQldRRkJRZ0dEdzhPRkFrRkJBUUJBUU1DQVFJRUJBWUZCdzRLQ2djSEJRUUNBd0VCQWdNREFnWUNBZ0lCQVU4WEVCQVFCUUVPQlFVRUN3TVJFaVlsRXhZWERBd1dKQW9IQlFZM3R3Y0dCUVVHQjdjSUJRVUZCUWdrQndZRkJRWUhDQVVHQmdVSUpMY0hCUVlCRUJBVEdRa0ZDUWdHQlF3TEJnY0lDUVVHQXdNRkJBY0hCZ1lJQ1FRRUJ3c0xDd1lHQ2dJREJBTUNCQkVRRmhrU0RBb1ZFaEFSRUFzZ0ZCVUJCQVVFQkFjTUFRVUZDQUFBQUFBREFBRC8yd0hKQVpJQUZBQWxBSGtBQURjVUZ4WVhOeFkzTmowQk5DY21CeWNHQndZZEFUYzBOelkzRmhjV0ZSUUhCaWNHSnlZMUZ6VTBOelkzRmpjMk56WTNOamNYTmhjV0J4WVhGZ2NXQnhRSEZoVVVCd1lISnhZWEZoY1dGUllYRmhjV0ZSUVZGQWNHQndZSEJnY0dCd1luQmljbUp5WW5KaWNtSnlZbkppY21KeVluSmljaUp5WTFBQVVHQjFNSEJRWUdCUWRUQndZRkpRVUZDQWNHQlFVR0J3Z0ZCV1FHQlFjS0pCWU1EQmNXRXlVbUVoRURDd1FGQlE0QkJSQVFFQmRQQVFFQ0FnSUdBZ01EQWdFQkF3SUVCUWNIQ2dvT0J3VUdCQVFDQVFJREFRRUVCQVVKRkE0UER3WUlCUVdsQndZRkFRRUJCd1FKdFFrRUJ3RUJBUVVHQjdlVEJ3WUVBUUVFQmdjSkJBWUJBUVlFQ1pTNEJ3WUVBZ0VOQndVQ0JnTUJBUUVYRXlFSkVoQVJFQmNJRGhBYUZoRVBBUUVGQWdRQ0JRRUxCUWNLREFrSUJBVUhDZ1VHQndnREJnSUVBUUVIQlFrSUJ3VU1Dd2NFQ2djR0NSb1JFUThDQmdRSUFBQUFBUUFBQUFFQUFKdGg1N2RmRHp6MUFBc0NBQUFBQUFEUC9HT0RBQUFBQU0vOFk0TUFBUC9iQWdBQjJ3QUFBQWdBQWdBQUFBQUFBQUFCQUFBQjRQL2dBQUFDQUFBQUFBQUNBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFIQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUNBQUFBQWdBQUFBSUFBQUFDQUFBQUFnQUFBQUlBQUFBQ0FBQUFBZHdBQUFIY0FBQUNBQUFqQVpNQUh3RkpBQUFCYmdBQUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQUFFQUFBQUNBQUFBQVc0QUFBSGNBQUFCM0FBQkFkd0FBQUhjQUFBQUFBQUFBQW9BRkFBZUFFb0FjQUNLQU1vQlFBR0lBY3dDQ2dKVUFvSUN4Z01FQXpvRHBnUktCUmdGN0FZU0JwZ0cyZ2NnQjJvSUdBak9BQUFBQVFBQUFCd0FtZ0FGQUFBQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRBcmdBQkFBQUFBQUFCQUF3QUFBQUJBQUFBQUFBQ0FBNEFRQUFCQUFBQUFBQURBQXdBSWdBQkFBQUFBQUFFQUF3QVRnQUJBQUFBQUFBRkFCWUFEQUFCQUFBQUFBQUdBQVlBTGdBQkFBQUFBQUFLQURRQVdnQURBQUVFQ1FBQkFBd0FBQUFEQUFFRUNRQUNBQTRBUUFBREFBRUVDUUFEQUF3QUlnQURBQUVFQ1FBRUFBd0FUZ0FEQUFFRUNRQUZBQllBREFBREFBRUVDUUFHQUF3QU5BQURBQUVFQ1FBS0FEUUFXZ0J5QUdFQWRBQnBBRzRBWndCV0FHVUFjZ0J6QUdrQWJ3QnVBQ0FBTVFBdUFEQUFjZ0JoQUhRQWFRQnVBR2R5WVhScGJtY0FjZ0JoQUhRQWFRQnVBR2NBVWdCbEFHY0FkUUJzQUdFQWNnQnlBR0VBZEFCcEFHNEFad0JHQUc4QWJnQjBBQ0FBWndCbEFHNEFaUUJ5QUdFQWRBQmxBR1FBSUFCaUFIa0FJQUJKQUdNQWJ3Qk5BRzhBYndCdUFDNEFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9PSkgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JrOVVWRThBQUJjVUFBb0FBQUFBRnN3QUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJEUmtZZ0FBQUE5QUFBRXVFQUFCTGhvNlR2SUU5VEx6SUFBQlBZQUFBQVlBQUFBR0FJSXdnYlkyMWhjQUFBRkRnQUFBQ2tBQUFBcEtQYW1ieG5ZWE53QUFBVTNBQUFBQWdBQUFBSUFBQUFFR2hsWVdRQUFCVGtBQUFBTmdBQUFEWUJHQWU1YUdobFlRQUFGUndBQUFBa0FBQUFKQVBpQWYxb2JYUjRBQUFWUUFBQUFIQUFBQUJ3TE9BQVEyMWhlSEFBQUJXd0FBQUFCZ0FBQUFZQUhGQUFibUZ0WlFBQUZiZ0FBQUU4QUFBQlBQQzFuMDV3YjNOMEFBQVc5QUFBQUNBQUFBQWdBQU1BQUFFQUJBUUFBUUVCQjNKaGRHbHVad0FCQWdBQkFEcjRIQUw0R3dQNEdBUWVDZ0FaVS8rTGl4NEtBQmxULzR1TERBZUxadmlVK0hRRkhRQUFBUDBQSFFBQUFRSVJIUUFBQUFrZEFBQVMyQklBSFFFQkJ3MFBFUlFaSGlNb0xUSTNQRUZHUzFCVldsOWthVzV6ZUgyQ2g0eHlZWFJwYm1keVlYUnBibWQxTUhVeGRUSXdkVVUyTURCMVJUWXdNWFZGTmpBeWRVVTJNRE4xUlRZd05IVkZOakExZFVZd01EUjFSakF3TlhWR01EQTJkVVl3TUVOMVJqQXdSSFZHTURJemRVWXdNa1YxUmpBMlJYVkdNRGN3ZFVZd09EZDFSakE0T0hWR01EZzVkVVl3T0VGMVJqQTVOM1ZHTURsRGRVWXhNak4xUmpFMk5IVkdNVFkxQUFBQ0FZa0FHZ0FjQWdBQkFBUUFCd0FLQUEwQVZnQ1dBTDBCQWdHTUFlUUNid0x3QTRjRDVRUjBCUU1GZGdaZ0I4TUprUXR4QzdvTTJRMWpEZ2dPbVJBWUVacjhsQTc4bEE3OGxBNzdsQTc0bFBldEZmdEZwVHozTkR6N05QdEZjZmNVK3hCdCswVDNNdDczTWpodDkwVDNGUGNRQmZ1VSswWVYrd1JSb2ZjUU1PUDNFWjNEOXdYRCt3WDNFWGt3TTZIN0VQc0V4UVVPK0pUM3JSWDdSYVU4OXpROCt6VDdSWEgzRlBzUWJmdEU5ekxlOXpJNGJmZEU5eFQzRUFYN2xQdEdGWXVMaS9leHcvc0Y5eEY1TURPaCt4RDdCTVVGRHZpVTk2MFYrMFdsUFBjMFBQczArMFZ4OXhUN0VHMzdSUGN5M3ZjeU9HMzNSUGNVOXhBRkR2aVU5OEVWaTJCNFpHNXdDSXVMK3pUN05BVjdlM3Q3ZTR0N2kzdWJlNXNJK3pUM05BVnVwbml5aTdhTDNNM04zSXUyaTdKNHBtNm1xTEtldG92Y2k4MUppem9JRHZpVTk4RVZpOXhKelRxTFlJdGtlSEJ1Y0toa25tQ0xPb3RKU1lzNmkyQ2VaS2h3Q0l1TDl6VDdOQVdiZTV0N200dWJpNXVibTVzSTl6VDNOQVdvcHA2eWk3WUlNRTBWK3piN05nV0tpb3FLaW91S2k0cU1pb3dJK3piM05nVjZtNEdoaTZPTHViQ3d1WXVqaTZHQm0zb0l1bGU2dndXYm5LR1ZvNHU1aTdCbWkxMkxjNEYxZW5zSUR2aVU5OEVWaTJCNFpHNXdDSXVMK3pUN05BVjdlM3Q3ZTR0N2kzdWJlNXNJK3pUM05BVnVwbml5aTdhTDNNM04zSXVuaTZXRG9YNElYRUQzQkV0TCt6VDNSUGRVK3dUTHNzWUZsNDZZalppTDNJdk5TWXM2Q0E2TDk4VVZpN1dYcktPaW82T3RsN2FMbG91WGlaaUhsNGVXaFphRWxvU1VoWktGazRTU2haS0VrcEtTa1pPU2twR1VrWmFTQ0phU2xwR1hqNWlQbDQyV2k3YUxyWCtqYzZOMGwycUxZWXRoZFdCZ1lBajdSdnRBQlllSWg0bUdpNGFMaDQySGpnajdSdmRBQlltTmlZMkhqNGlPaHBHRGxJU1VoWldGbElXVmhwYUhtWWFZaVppTG1BZ09aNHYzdHhXTGtwQ1BsbzBJOXlPZ3pQY1dCWTZTa0krUmk1Q0xrSWVQaEFqTCt4YjNJM1lGbG9tUWg0dUVpNGFKaDRhR0NDTW1wUHNqQll1S2k0bUxpSXVIaW9pSmlJbUlpSXFIaTRpTGg0eUhqUWo3Rk0vN0ZVY0ZoNG1IaW9pTGg0dUlqSW1PaVk2S2pvdVBpNHlMall5T0NLUDNJeVB3QllhUWlaQ0xqd2dPWjR2M3R4V0xrcENQbG8wSTl5T2d6UGNXQlk2U2tJK1JpNUNMa0llUGhBakwreGIzSTNZRmxvbVFoNHVFaTRhSmg0YUdDQ01tcFBzakJZdUtpNG1MaUl1Q2g0YURpNGlMaDR5SGpRajdGTS83RlVjRmg0bUhpb2lMaDR1SWpJbU9pWTZLam91UGk0eUxqWXlPQ0tQM0l5UHdCWWFRaVpDTGp3aktlUlhqTjNiN0RmY0F4UFpTZC9jTjR0LzdESjFWOXdGVit3RUZEcTczWmhXTGs0MlJrWkVJc2JJRmtaQ1JqcE9Ma291U2lKQ0dDTjgyOTFEM1VBV1FrSktPa291VGk1R0lrWVlJc1dRRmtZYU5oSXVFaTRPSmhZV0ZDUHVKKzRrRmhZV0ZpWU9MaEl1RWpZYVJDUHNpOXlJRmhaQ0prb3VTQ0E3N0FhcnRGWXVTanBLUWtBamYzemZmQllhUWlKS0xrNHVTanBLUWtBaXlzZ1dSa0pHT2s0dVNpNUtJa0lZSTN6ZmYzd1dRa0pLT2s0dVNpNUtJa0lZSXNtUUZrSWFPaEl1RWk0T0loSWFHQ0RjMzN6Y0ZrSWFPaEl1RWk0T0loWWFGQ0dSa0JZYUdoSWlFaTRPTGhJNkdrQWczM3pjM0JZYUdoSWlFaTRPTGhZNkZrQWhrc2dXR2tZaVJpNU1JRHZ0TGk4c1ZpL2M1Qll1U2pwS1FrSkNRa282U2l3aVZpNHZDQll1dWw2bWtwS1NrcXBpdWk2NkxxWDZrY3FSeW1HMkxhQWlMVkpTTEJaS0xrb2lRaHBDR2pvU0xoQWlMK3prRmk0T0loWWFHaG9XRWlZU0xDUHVuaXdXRWk0U05ocEdHa0lpUmk1TUk1dmRVRmZjbmk0dkNCWXVmaEp4OG1uMlplcEozaTNhTGVvUjlmWDE4ZzNxTGR3aUxWQVVPK3lhTHNoV0wrQVFGaTVHTmtZK1JqcENRajVLTmo0MlBqSStMQ1BmQWl3V1BpNCtLajRtUmlaQ0hqNGFQaFkyRmk0VUlpL3dFQll1RWlZV0hob2VHaG9lRmlJaUtob3FIaTRHTGhJNkVrUWo3RXZjTit4TDdEUVdFaFlPSWdvdUhpNGVMaDQyRWpvYVBpSkNIa0ltUmk1SUlEb3YzWFJXTGtvMlJqNUtsdHErdnVLVzRwYnVadll1OWk3dDl1SEc0Y2E5bnBXQ1BoSTJGaTRTTGhZbUVoNFJ4WUdkb1huQUlYbkZiZmxtTFdZdGJtRjZsWHFabnJuRzJoNUtKa291UkNMQ0xGYVJrcTJ5eGRMRjB0SCs0aTdpTHRKZXhvckdpcTZxa3NtNjRaNjFnb1paM2tYYUxkSXRuZm0xeWNuSnliWDlvaXdob2kyMlhjcVJ5cEg2cGk2K0xvcEdnbHA5Z2RXZHBibDRJOXhpd0ZZdUhqSWlPaUk2SWpvcVBpNCtMam95T2pvMk9qWTZMajR1YmtKbVhsNWVXbVpHYmk0K0xqb3lPam8yT2pZNkxqd2lMajRtT2lZNklqWWlOaDR0emkzZUNlbnA2ZW9KM2kzTUlEb3YzWFJXTGtvMlNqNUdvdUsrdXRxVzNwYnFZdm91Y2k1eUpuSWdJbTZjRmpZNk5qSStMakl1Tmk0MkpqWXFPaW8rSmpvbU9pWTZLam9tT2lZNkpqb3FOaW95S2pvbU1pWXVIaTRxTGlvdUxDSGRuYlZWalEyTkRiVlYzWndoOWNnV0ppSWlKaUl1SmkzNlNkSmlJalltT2k0NkxqWStVbEpsdmwzS2NkSjkwb0hlaWU2V0hrWW1TaTVJSXNJc1ZxbHEwWjcxMUNLR3pCWHFYZnBxQ25vS2RocDZMb0l1aWthQ1duMkIxWjJsdVhnajNHTEFWaTRlTWlJNklqb2lPaW8rTGo0dU9qSTZPalk2TmpvdVBpNXVRbVplWGw1YVprWnVMajR1T2pJNk9qWTZOam91UENJdVBpWTZKam9pTmlJMkhpM09MZDRKNmVucDZnbmVMY3dqaSsxMFZvTEFGdEkrd21LMmhycUtucUtLdmRxMXdwMnVoQ0oyckJaMS9uSHljZXB4Nm1IcVdlWStFallXTGhJdUVpWVdIaElSL2dIMStmRzlxYVhKbWVXVjVZNEpoaXdpNTNCWGI5eVFGaklLTWc0dUVpM0NEYzN4MWZIVjNmSE9CQ0E2TDFCV0w5MHNGaTVXUGxKS1NrcEtUajVhTENObUxCWktQbUpxZXBKYVpsWmVWbFkrUWo1T05sNDJXanBlT21JK1lrWldUazVPU2s0NlZpNXVMbVlpWWhaaUZsSUdTZmdpU2ZvNTVpM1dMZVlkNWdYZ0l2b3NGbjR1Y2hKbDhtbjJTZW90M2kzcUdmSUo5allTTGhZdUVpM3lJZm9SK2k0ZUxoNHVIaTNlR2VuOTlpM0NEZG50OENIdDhkWU53aXdobWl3VjVpM21OZVk5NWtIZVJjNU4xazM2UGg0c0lPWXNGZ0l1RGpvU1NoSktIbEl1VkNMQ2RGWXVHakllUGlJK0hqNG1RaTVDTGo0MlBqNDZPalkrTGtJdVFpWkNJam9lUGg0MkdpNGFMaDRtSGg0ZUlpb2FMaGdqVWVSV1Vpd1dOaTQ2TGo0cU9pNCtLallxT2k0K0tqNG1RaW82S2pZcU5pbytLajRtUWlvNktqSXF6ZnF1RXBJc0lyb3NGcjR1ZW1vdXJpNUNLa1lxUWtZNlFrSTZTanBLTmtvdVNpNUtKa29pUmxaV1Fsb3VZaTVDS2tJbVJpWkdKajRpT0NKR01rSStQbEkrVWpaS0xrb3VWaUpPRGs0U1NnbytDaXdnbWl3V0xscENhbEo2VW5wQ2JpNWFMbm9pWWhKU0ZsSCtRZVl1R2hvZURpWUNKZjRoL2gzK0lmb1dCZzRLSGg0U0NnSDRJaTRxSWlZaUdoNGFJaDRtSWlJaUloNGVHaDRhSGg0ZUhpSWlIaUllSGlJaUhpSWVLaDRtSWlvaUxDSUtMaS90TEJRNkw5MHNWaS9kTEJZdVZqNU9TazVLU2s0Nldpd2pkaXdXUGk1aVBvWk9razZDUm5aQ2RqNTZObjRzSXE0c0Zwb3VnZzV4OG0zeVRkNHR4Q0l1SkJaZDhrSHVMZDR1SGk0ZUxoNUoram42TGZJdUVpNFNKaFpSOWtIeUxlb3QzaEhwOGZIMTllb1IzaXdoWWl3V1ZlSTk1aTNtTGRJaDZoSDZFZm9LQmZvVitoWDJIZTR1Qmk0T1BnNUtGa1lhVGg1U0hsWWlUaXBPS2s0cVRpSk1JaVpTSWtZaVBnWlNCbDRDYWVLUittb1NQQ0QyTEJZQ0xnNCtFa29TU2g1U0xsUWl3OXpnVmk0YU1oNCtJajRlUGlaQ0xrSXVQalkrUGpvNk5qNHVRaTVDSmtJaU9oNCtIallhTGhvdUhpWWVIaDRpS2hvdUdDTlQ3T0JXVWl3V09pNDZLajRtUGlvK0lqb2lQaDQrSWpvZVBpSStIajRhUGhvNkhqb2lOaUk2SGo0YU9obzZJaTRxV2ZwS0RqNFlJazRPUmdZNStqMzZPZ0kxL2pZQ1BnNUNHbll1WGo1R1VrcFNPbVl1ZWk1YUdtb0tmZ3A2R21vdVdDUENMQlpTTGxJK1NrcE9UanBPTGxZdVNpWktIbEllVWhvK0ZpNDZQalkrTmtZMlJqSkNMa0l1WWhwYUJsWTZSalpLTGtnaUxrb21TaUpLSWtvYVFoWTZNa0l5Umk1Q0xtNGFYZ3BPQmtuNlBlNHNJWm9zRmNvdHJoR045aW91SWlvYUpoNHFIaW9tS2lZcUlpb2FLaDRtSGlvaUtpWXVIaW9pTGg0cUlpNG1MQ0lLTGkvdExCUTc3bEl2M3R4V0xrcENQbG8wSTl5T2d6UGNXQlk2U2tJK1Jpd2lML0JMN0ZVY0ZoNG1IaW9pTGg0dUlqSW1PaVk2S2pvdVBpNHlMall5T0NLUDNJeVB3QllhUWlaQ0xqd2dPaS9mRkZZdTFsNnlqb3FPanJaZTJpNWFMbDRtWWg1ZUhsb1dXaEphRWxJV1NoWk9Fa29XU2hKS1NrcEdUa3BLUmxKR1drZ2lXa3BhUmw0K1lqNWVObG91Mmk2MS9vM09qZEpkcWkyR0xZWFZnWUdBSSswYjdRQVdIaUllSmhvdUdpNGVOaDQ0SSswYjNRQVdKalltTmg0K0lqb2FSZzVTRWxJV1ZoWlNGbFlhV2g1bUdtSW1ZaTVnSXNJc1ZpMnVjYWE5b0NQYzYrelQzT3ZjekJhK3ZuSzJMcTR1YmlaaUhsNGVYaHBTRmtvU1NnNUdDajRLUWdvMkNqWU9OZ1l1Qmk0S0xnSWwvaG9DR2dJV0NoQWlCZzRPRmhJU0VoWWFGaG9hSWhvYUpoWXVGaTRhTmlKQ0drSWFSaEpHRWtvT1JnWk9Da29DUmdKQi9rSUNOZ29zSWdZdUJpNE9KZ29tQ2lZS0dnb2VEaFlTRWhZU0dnb2QvaDMrSmZvdDdDQTc3Sm91eUZZdjRCQVdMa1kyUmo1R09rSkNQa28yUGpZK01qNHNJOThDTEJZK0xqNHFQaVpHSmtJZVBobytGallXTGhRaUwvQVFGaTRTSmhZZUdoNGFHaDRXSWlJcUdpb2VMZ1l1RWpvU1JDUHNTOXczN0V2c05CWVNGZzRpQ2k0ZUxoNHVIallTT2hvK0lrSWVRaVpHTGtnaXdreFgzSnZjaHBITDNEZnNJaS9mMys3aUxpL3YzQlE1bmk4c1ZpL2M1Qll1U2pwS1FrSkNRa282U2l3ajNWSXVMd2dXTHJwaXBwS1NrcEttWXJvdXZpNmwrcEhLa2NwZHRpMmdJaTBJRmk0YUtob2VJaDRlSGlZYUxDSG1MQllhTGg0MkhqNGVPaXBDTGtBaUwxQVdMbjRPY2ZacDltWHFTZG90M2kzcUVmWDE4ZklSNmkzY0lpMVNuaXdXU2k1S0lrSWFRaG82RWk0UUlpL3M1Qll1RGlJV0dob2FGaEltRWl3ajdwNHNGaEl1RWpZYVJocENJa1l1VENBNW5qUGU2Rll5UWtJNlVqUWozSTZETTl4WUZqNUtQajVHTGtJdVFoNCtFQ012N0Z2Y2pkZ1dVaVpDSWpZYU5ob2lGaFlVSUl5YWsreU1GaklXS2hvbUhpWWlJaVlhTGlJdUhqSWVOQ1BzVXovc1ZSd1dIaVllS2lJdUhpNGVOaVk2Smo0dVFqSkVJby9jakkvQUZoWkdKa1kyUUNQZUIrejBWbklMbFczcnhpSjZabU5UUyt3eWRncHhlNTR2N3B3VU9aNHZDRll2M1N3V0xrSTJQam8rUGpvK05rSXNJM29zRmtJdVBpWTZJajRlTmg0dUdDSXY3U3dXTGhvbUhoNGVJaDRlS2hvc0lPSXNGaG91SGpJZVBpSStKajR1UUNMQ3ZGWXVHakllUGg0NklrSW1RaTVDTGo0MlBqbzZQalkrTGtJdVFpWkNJam9lUGg0MkdpNGFMaG9tSWg0ZUlpb2FMaGdqdlp4V0w5MHNGaTVDTmo0Nk9qNCtQalpDTGo0eVNrSldXbFphVmw1U1htSnVWbDVHUmpvNk9rSTZSalpDTmtJeVBqSTZNa1kyVENJeVNqSkdNajR5UGpaQ09rWTZSanBDUGpvNlBqNDJRaTVTTGs0cVNpWktKa1lpUGlKQ0lqb2lQaG82R2pZZU1od2lOaDR5R2pJYU1oWXVIaTRpTGlJdUhpNGVMZzR1RWlZU0poSW1GaVllSmg0bUZoNFdMaW9xSmlvbUppSXFKaW9rSWk0cUtpSXFKQ05xTEJacUxtSVdXZ0phQWtIK0xmSXQ2aG4yQWY0NkRqWVNMaEl0OWgzNkNmNCtCaTMrSGdJbUFoWUtFaEkxMmhubUFmZ2gvZlhpRGNvc0lab3NGZm90K2pIeU9mSTUvam9PT2c0MS9qMzJRYzVOOGo0U01ob3VIallpT2g0K0pqNHVRQ0E1bmkvYzVGWXVHallhT2lJK0hqNG1RaXdqZWl3V1FpNCtOam8rUGpvMlFpNUFJaS9kS0JZdVFpWkNIam9pUGg0Mkdpd2c0aXdXR2k0ZUpoNGVJaUltR2k0WUlpL3RLQmJEM0poV0xrSXlQajQrT2pwQ05rSXVRaTQrSmo0aU9oNDJIaTRhTGhvbUhpSWVIaDRlS2hvdUdpNGFNaUkrSGo0cVBpNUFJNy9zbkZZdjNTd1dMa0kyUWo0Nk9qNCtOa0l1U2k1cVBvNU9aa0plUGs0NlRqWmVPbW82YWpwaU1tSXNJc0lzRnBJdWVnNWQ5bG42UWVvbDFrb1NSZ28yQWo0Q0xnSWVBbEgrUGZvdDlpNFdKaElpQ2xvQ1FmSXQ3aTN5RmZvR0FDSUNBZm9aOGl3Zzhpd1dNaUl5Smk0bU1pWXlKalltTWlJeUtpNG1QaEkyR2pZZU5oNDJHallPTWhJeUVpNFNMaG91SGk0aUxpWXVHaW9ZSWlvV0tob21IaW9lSmg0aUdoNGVJaDRhSWg0aUZpSVNKaEltRGlvS0xob3VIallpUGg0K0lqNGlSaUpHSmtJcVBDSXFQaXBHS2tvbVRpcEdLajRxT2laQ0prWWlRaUpDSWpvV1NnWlorbklLWGdaYUJsb0dXaEpHSGk0YUxoNDJIandpSWpvbVFpNDhJRHZpVUZQaVVGWXNNQ2dBQUFBQURBZ0FCa0FBRkFBQUJUQUZtQUFBQVJ3Rk1BV1lBQUFEMUFCa0FoQUFBQUFBQUFBQUFBQUFBQUFBQUFBRVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBUEZsQWVELzRQL2dBZUFBSUFBQUFBRUFBQUFBQUFBQUFBQUFBQ0FBQUFBQUFBSUFBQUFEQUFBQUZBQURBQUVBQUFBVUFBUUFrQUFBQUNBQUlBQUVBQUFBQVFBZzVnWHdCdkFOOENQd0x2QnU4SER3aXZDWDhKenhJL0ZsLy8zLy93QUFBQUFBSU9ZQThBVHdEUEFqOEM3d2J2Qnc4SWZ3bC9DYzhTUHhaUC85Ly84QUFmL2pHZ1FRQmhBQkQrd1A0ZytqRDZJUGpBK0FEM3dPOWc2MkFBTUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBZi8vQUE4QUFRQUFBQUVBQUpyVmxMSmZEenoxQUFzQ0FBQUFBQURQL0dPREFBQUFBTS84WTRNQUFQL2JBZ0FCMndBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFCNFAvZ0FBQUNBQUFBQUFBQ0FBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUhBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQ0FBQUFBZ0FBQUFJQUFBQUNBQUFBQWdBQUFBSUFBQUFDQUFBQUFkd0FBQUhjQUFBQ0FBQWpBWk1BSHdGSkFBQUJiZ0FBQWdBQUFBSUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBVzRBQUFIY0FBQUIzQUFCQWR3QUFBSGNBQUFBQUZBQUFCd0FBQUFBQUE0QXJnQUJBQUFBQUFBQkFBd0FBQUFCQUFBQUFBQUNBQTRBUUFBQkFBQUFBQUFEQUF3QUlnQUJBQUFBQUFBRUFBd0FUZ0FCQUFBQUFBQUZBQllBREFBQkFBQUFBQUFHQUFZQUxnQUJBQUFBQUFBS0FEUUFXZ0FEQUFFRUNRQUJBQXdBQUFBREFBRUVDUUFDQUE0QVFBQURBQUVFQ1FBREFBd0FJZ0FEQUFFRUNRQUVBQXdBVGdBREFBRUVDUUFGQUJZQURBQURBQUVFQ1FBR0FBd0FOQUFEQUFFRUNRQUtBRFFBV2dCeUFHRUFkQUJwQUc0QVp3QldBR1VBY2dCekFHa0Fid0J1QUNBQU1RQXVBREFBY2dCaEFIUUFhUUJ1QUdkeVlYUnBibWNBY2dCaEFIUUFhUUJ1QUdjQVVnQmxBR2NBZFFCc0FHRUFjZ0J5QUdFQWRBQnBBRzRBWndCR0FHOEFiZ0IwQUNBQVp3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCSkFHTUFid0JOQUc4QWJ3QnVBQzRBQXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPT0pIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udWkucmF0aW5nIC5pY29uIHtcbiAgZm9udC1mYW1pbHk6ICdSYXRpbmcnO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qIEVtcHR5IFN0YXIgKi9cbi51aS5yYXRpbmcgLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNSc7XG59XG4vKiBBY3RpdmUgU3RhciAqL1xuLnVpLnJhdGluZyAuYWN0aXZlLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNSc7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVW5maWxsZWQgU3RhciAqL1xuLnVpLnN0YXIucmF0aW5nIC5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwMDUnO1xufVxuLyogQWN0aXZlIFN0YXIgKi9cbi51aS5zdGFyLnJhdGluZyAuYWN0aXZlLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNSc7XG59XG4vKiBQYXJ0aWFsICovXG4udWkuc3Rhci5yYXRpbmcgLnBhcnRpYWwuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDA2Jztcbn1cbi51aS5zdGFyLnJhdGluZyAucGFydGlhbC5pY29uIHtcbiAgY29udGVudDogJ1xcZjAwNSc7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSGVhcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVtcHR5IEhlYXJ0XG4udWkuaGVhcnQucmF0aW5nIC5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwOGEnO1xufVxuKi9cbi51aS5oZWFydC5yYXRpbmcgLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNCc7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5oZWFydC5yYXRpbmcgLmFjdGl2ZS5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwMDQnO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU2VhcmNoXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU2VhcmNoXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2VhcmNoIFByb21wdCAqL1xuLyogTW9iaWxlICovXG4vKiBSZXN1bHQgQm94ICovXG4vKiBSZXN1bHQgKi9cbi8qIFJlc3VsdCBJbWFnZSAqL1xuLyogUmVzdWx0IENvbnRlbnQgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBQcmljZSAqL1xuLyogU3BlY2lhbCBNZXNzYWdlICovXG4vKiBBbGwgUmVzdWx0cyBMaW5rICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogRm9jdXMgKi9cbi8qIEhvdmVyICovXG4vKiBMb2FkaW5nICovXG4vKiBBY3RpdmUgQ2F0ZWdvcnkgKi9cbi8qIEFjdGl2ZSBSZXN1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNlbGVjdGlvbiAqL1xuLyogQ2F0ZWdvcnkgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU2VhcmNoXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2VhcmNoIFByb21wdCAqL1xuLyogTW9iaWxlICovXG4vKiBSZXN1bHQgQm94ICovXG4vKiBSZXN1bHQgKi9cbi8qIFJlc3VsdCBJbWFnZSAqL1xuLyogUmVzdWx0IENvbnRlbnQgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBQcmljZSAqL1xuLyogU3BlY2lhbCBNZXNzYWdlICovXG4vKiBBbGwgUmVzdWx0cyBMaW5rICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogRm9jdXMgKi9cbi8qIEhvdmVyICovXG4vKiBMb2FkaW5nICovXG4vKiBBY3RpdmUgQ2F0ZWdvcnkgKi9cbi8qIEFjdGl2ZSBSZXN1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNlbGVjdGlvbiAqL1xuLyogQ2F0ZWdvcnkgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFJlc3VsdCBCb3ggKi9cbi8qIFJlc3VsdCAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIFByaWNlICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFNlYXJjaFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zZWFyY2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udWkuc2VhcmNoID4gLnByb21wdCB7XG4gIG1hcmdpbjogMGVtO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgcGFkZGluZzogMC42Nzg1NzE0M2VtIDFlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwZW0gdHJhbnNwYXJlbnQgaW5zZXQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLnNlYXJjaCAucHJvbXB0IHtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaCAucHJvbXB0IH4gLnNlYXJjaC5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFJlc3VsdHNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMCU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgd2lkdGg6IDE5ZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTIpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG4gIHotaW5kZXg6IDk5ODtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBSZXN1bHRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiAwLjg1NzE0Mjg2ZW0gMS4xNDI4NTcxNGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0Omxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBJbWFnZSAqL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLmltYWdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogNWVtO1xuICBoZWlnaHQ6IDNlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNWVtO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSW5mb1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC5pbWFnZSArIC5jb250ZW50IHtcbiAgbWFyZ2luOiAwZW0gNmVtIDBlbSAwZW07XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCAudGl0bGUge1xuICBtYXJnaW46IC0wLjE0Mjg1NzE0ZW0gMGVtIDBlbTtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLnByaWNlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb2xvcjogIzJDNkE5RTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNZXNzYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiAxZW0gMWVtO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2UgLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogVmlldyBBbGwgUmVzdWx0cyAqL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLmFjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItdG9wOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBwYWRkaW5nOiAwLjkyODU3MTQzZW0gMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnByb21wdDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLnNlYXJjaCAuaW5wdXQgPiBpLmljb246YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NDI4NTcxNGVtIDBlbSAwZW0gLTAuNjQyODU3MTRlbTtcbiAgd2lkdGg6IDEuMjg1NzE0MjllbTtcbiAgaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkubG9hZGluZy5zZWFyY2ggLmlucHV0ID4gaS5pY29uOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NDI4NTcxNGVtIDBlbSAwZW0gLTAuNjQyODU3MTRlbTtcbiAgd2lkdGg6IDEuMjg1NzE0MjllbTtcbiAgaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIGFuaW1hdGlvbjogYnV0dG9uLXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdDpob3Zlcixcbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkgLnJlc3VsdDpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNGOUZBRkI7XG59XG4udWkuc2VhcmNoIC5hY3Rpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRTBFMEUwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xufVxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeS5hY3RpdmUgPiAubmFtZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQuYWN0aXZlLFxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSAucmVzdWx0LmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0LmFjdGl2ZSAudGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0LmFjdGl2ZSAuZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlzYWJsZWQgKi9cbi51aS5kaXNhYmxlZC5zZWFyY2gge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU2VsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaC5zZWxlY3Rpb24gLnByb21wdCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4vKiBSZW1vdmUgaW5wdXQgKi9cbi51aS5zZWFyY2guc2VsZWN0aW9uID4gLmljb24uaW5wdXQgPiAucmVtb3ZlLmljb24ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiBhdXRvO1xuICBvcGFjaXR5OiAwO1xuICBjb2xvcjogJyc7XG4gIHRvcDogMGVtO1xuICByaWdodDogMGVtO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UsIG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLnVpLnNlYXJjaC5zZWxlY3Rpb24gPiAuaWNvbi5pbnB1dCA+IC5hY3RpdmUucmVtb3ZlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuODtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4udWkuc2VhcmNoLnNlbGVjdGlvbiA+IC5pY29uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBpY29uXCJdKSA+IC5pY29uIH4gLnJlbW92ZS5pY29uIHtcbiAgcmlnaHQ6IDEuODU3MTRlbTtcbn1cbi51aS5zZWFyY2guc2VsZWN0aW9uID4gLmljb24uaW5wdXQgPiAucmVtb3ZlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogI0RCMjgyODtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDYXRlZ29yeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggLnJlc3VsdHMge1xuICB3aWR0aDogMjhlbTtcbn1cbi51aS5jYXRlZ29yeS5zZWFyY2ggLnJlc3VsdHMuYW5pbWF0aW5nLFxuLnVpLmNhdGVnb3J5LnNlYXJjaCAucmVzdWx0cy52aXNpYmxlIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG4vKiBDYXRlZ29yeSAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4vKiBMYXN0IENhdGVnb3J5ICovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5Omxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLyogRmlyc3QgLyBMYXN0ICovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5OmZpcnN0LWNoaWxkIC5uYW1lICsgLnJlc3VsdCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5Omxhc3QtY2hpbGQgLnJlc3VsdDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi8qIENhdGVnb3J5IFJlc3VsdCBOYW1lICovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5ID4gLm5hbWUge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2lkdGg6IDEwMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmc6IDAuNGVtIDFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4vKiBDYXRlZ29yeSBSZXN1bHQgKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkgLnJlc3VsdHMge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5IC5yZXN1bHQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbiAgcGFkZGluZzogMC44NTcxNDI4NmVtIDEuMTQyODU3MTRlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTGVmdCAvIFJpZ2h0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLnNlYXJjaCA+IC5yZXN1bHRzIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDAlO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uc2VhcmNoID4gLnJlc3VsdHMge1xuICByaWdodDogMCU7XG4gIGxlZnQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuc2VhcmNoIC5yZXN1bHRzIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xufVxuLnVpLnNtYWxsLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xufVxuLnVpLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhcmdlLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xufVxuLnVpLmJpZy5zZWFyY2gge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbn1cbi51aS5odWdlLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M2VtO1xufVxuLnVpLm1hc3NpdmUuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNb2JpbGVcbi0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zZWFyY2ggLnJlc3VsdHMge1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDJyZW0pO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU2hhcGVcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU2hhcGVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBBbmltYXRpbmcgKi9cbi8qIFNpZGUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ3ViZSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU2hhcGVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBBbmltYXRpbmcgKi9cbi8qIFNpZGUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ3ViZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIFNoYXBlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnNoYXBlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBlcnNwZWN0aXZlOiAyMDAwcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0LCBsZWZ0IDAuNnMgZWFzZS1pbi1vdXQsIHdpZHRoIDAuNnMgZWFzZS1pbi1vdXQsIGhlaWdodCAwLjZzIGVhc2UtaW4tb3V0O1xufVxuLnVpLnNoYXBlIC5zaWRlcyB7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG59XG4udWkuc2hhcGUgLnNpZGUge1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLnNoYXBlIC5zaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5zaGFwZSAuc2lkZSAqIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5jdWJlLnNoYXBlIC5zaWRlIHtcbiAgbWluLXdpZHRoOiAxNWVtO1xuICBoZWlnaHQ6IDE1ZW07XG4gIHBhZGRpbmc6IDJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U2RTZFNjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cbi51aS5jdWJlLnNoYXBlIC5zaWRlID4gLmNvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbn1cbi51aS5jdWJlLnNoYXBlIC5zaWRlID4gLmNvbnRlbnQgPiBkaXYge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS50ZXh0LnNoYXBlLmFuaW1hdGluZyAuc2lkZXMge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLnVpLnRleHQuc2hhcGUgLnNpZGUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnVpLnRleHQuc2hhcGUgLnNpZGUgPiAqIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubG9hZGluZy5zaGFwZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICBsZWZ0OiAtOTk5OXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEFuaW1hdGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zaGFwZSAuYW5pbWF0aW5nLnNpZGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiAxMDA7XG59XG4udWkuc2hhcGUgLmhpZGRlbi5zaWRlIHtcbiAgb3BhY2l0eTogMC42O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQ1NTXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNoYXBlLmFuaW1hdGluZyAuc2lkZXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4udWkuc2hhcGUuYW5pbWF0aW5nIC5zaWRlcyB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0LCBsZWZ0IDAuNnMgZWFzZS1pbi1vdXQsIHdpZHRoIDAuNnMgZWFzZS1pbi1vdXQsIGhlaWdodCAwLjZzIGVhc2UtaW4tb3V0O1xufVxuLnVpLnNoYXBlLmFuaW1hdGluZyAuc2lkZSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBlYXNlLWluLW91dDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNoYXBlIC5hY3RpdmUuc2lkZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFVzZXIgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU2lkZWJhclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTaWRlYmFyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQW5pbWF0aW9uICovXG4vKiBEaW1tZXIgKi9cbi8qIENvbG9yIGJlbG93IHBhZ2UgKi9cbi8qIFNoYWRvdyAqL1xuLyogTGF5ZXJpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogV2lkdGggKi9cbi8qIEhlaWdodCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU2lkZWJhclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFuaW1hdGlvbiAqL1xuLyogRGltbWVyICovXG4vKiBDb2xvciBiZWxvdyBwYWdlICovXG4vKiBTaGFkb3cgKi9cbi8qIExheWVyaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFdpZHRoICovXG4vKiBIZWlnaHQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTaWRlYmFyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2lkZWJhciBNZW51ICovXG4udWkuc2lkZWJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDtcbiAgei1pbmRleDogMTAyO1xufVxuLyogR1BVIExheWVycyBmb3IgQ2hpbGQgRWxlbWVudHMgKi9cbi51aS5zaWRlYmFyID4gKiB7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERpcmVjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sZWZ0LnNpZGViYXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5zaWRlYmFyIHtcbiAgcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCUsIDApO1xufVxuLnVpLnRvcC5zaWRlYmFyLFxuLnVpLmJvdHRvbS5zaWRlYmFyIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4udWkudG9wLnNpZGViYXIge1xuICB0b3A6IDBweCAhaW1wb3J0YW50O1xuICBib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG59XG4udWkuYm90dG9tLnNpZGViYXIge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUHVzaGFibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4ucHVzaGFibGUge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG59XG4vKiBXaG9sZSBQYWdlICovXG5ib2R5LnB1c2hhYmxlIHtcbiAgYmFja2dyb3VuZDogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuLyogUGFnZSBDb250ZXh0ICovXG4ucHVzaGFibGU6bm90KGJvZHkpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbi5wdXNoYWJsZTpub3QoYm9keSkgPiAudWkuc2lkZWJhcixcbi5wdXNoYWJsZTpub3QoYm9keSkgPiAuZml4ZWQsXG4ucHVzaGFibGU6bm90KGJvZHkpID4gLnB1c2hlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4ucHVzaGFibGUgPiAuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHotaW5kZXg6IDEwMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi5wdXNoYWJsZSA+IC5wdXNoZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG4gIHotaW5kZXg6IDI7XG59XG5ib2R5LnB1c2hhYmxlID4gLnB1c2hlciB7XG4gIGJhY2tncm91bmQ6ICNFOUVBRUQ7XG59XG4vKiBQdXNoZXIgc2hvdWxkIGluaGVyaXQgYmFja2dyb3VuZCBmcm9tIGNvbnRleHQgKi9cbi5wdXNoYWJsZSA+IC5wdXNoZXIge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaW1tZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4ucHVzaGFibGUgPiAucHVzaGVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA1MDBtcztcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2lkZWJhci5tZW51IC5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaW1tZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4ucHVzaGFibGUgPiAucHVzaGVyLmRpbW1lZDphZnRlciB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQW5pbWF0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFuaW1hdGluZy5zaWRlYmFyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVmlzaWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52aXNpYmxlLnNpZGViYXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuLyogU2hhZG93IERpcmVjdGlvbiAqL1xuLnVpLmxlZnQudmlzaWJsZS5zaWRlYmFyLFxuLnVpLnJpZ2h0LnZpc2libGUuc2lkZWJhciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnRvcC52aXNpYmxlLnNpZGViYXIsXG4udWkuYm90dG9tLnZpc2libGUuc2lkZWJhciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogVmlzaWJsZSBPbiBMb2FkICovXG4udWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNjBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNjBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZS50b3Auc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLnRvcC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzZweCwgMCk7XG59XG4udWkudmlzaWJsZS5ib3R0b20uc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLmJvdHRvbS5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTM2cHgsIDApO1xufVxuLyogb3Bwb3NpdGUgc2lkZXMgdmlzaWJsZSBmb3JjZXMgY29udGVudCBvdmVybGF5ICovXG4udWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAudWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLnVpLnZpc2libGUucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIsXG4udWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUucmlnaHQuc2lkZWJhciB+IC51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgIGlPU1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgV2lkdGhcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWZ0IC8gUmlnaHQgKi9cbi51aS50aGluLmxlZnQuc2lkZWJhcixcbi51aS50aGluLnJpZ2h0LnNpZGViYXIge1xuICB3aWR0aDogMTUwcHg7XG59XG4udWlbY2xhc3MqPVwidmVyeSB0aGluXCJdLmxlZnQuc2lkZWJhcixcbi51aVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ucmlnaHQuc2lkZWJhciB7XG4gIHdpZHRoOiA2MHB4O1xufVxuLnVpLmxlZnQuc2lkZWJhcixcbi51aS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IDI2MHB4O1xufVxuLnVpLndpZGUubGVmdC5zaWRlYmFyLFxuLnVpLndpZGUucmlnaHQuc2lkZWJhciB7XG4gIHdpZHRoOiAzNTBweDtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ubGVmdC5zaWRlYmFyLFxuLnVpW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IDQ3NXB4O1xufVxuLyogTGVmdCBWaXNpYmxlICovXG4udWkudmlzaWJsZS50aGluLmxlZnQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLnRoaW4ubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTUwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB0aGluXCJdLmxlZnQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgdGhpblwiXS5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg2MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLndpZGUubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUud2lkZS5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzNTBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB3aWRlXCJdLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDQ3NXB4LCAwLCAwKTtcbn1cbi8qIFJpZ2h0IFZpc2libGUgKi9cbi51aS52aXNpYmxlLnRoaW4ucmlnaHQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLnRoaW4ucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNTBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ucmlnaHQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgdGhpblwiXS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGUud2lkZS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUud2lkZS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTM1MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNDc1cHgsIDAsIDApO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBBbmltYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJsYXlcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZXQtdXAgKi9cbi51aS5vdmVybGF5LnNpZGViYXIge1xuICB6LWluZGV4OiAxMDI7XG59XG4vKiBJbml0aWFsICovXG4udWkubGVmdC5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwJSwgMCk7XG59XG4udWkucmlnaHQub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwJSwgMCk7XG59XG4udWkudG9wLm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIC0xMDAlLCAwKTtcbn1cbi51aS5ib3R0b20ub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMTAwJSwgMCk7XG59XG4vKiBBbmltYXRpb24gKi9cbi5hbmltYXRpbmcudWkub3ZlcmxheS5zaWRlYmFyLFxuLnVpLnZpc2libGUub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG59XG4vKiBFbmQgLSBTaWRlYmFyICovXG4udWkudmlzaWJsZS5sZWZ0Lm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAlLCAwKTtcbn1cbi51aS52aXNpYmxlLnJpZ2h0Lm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAlLCAwKTtcbn1cbi51aS52aXNpYmxlLnRvcC5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwJSwgMCk7XG59XG4udWkudmlzaWJsZS5ib3R0b20ub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCUsIDApO1xufVxuLyogRW5kIC0gUHVzaGVyICovXG4udWkudmlzaWJsZS5vdmVybGF5LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5vdmVybGF5LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBQdXNoXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbCAqL1xuLnVpLnB1c2guc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xuICB6LWluZGV4OiAxMDI7XG59XG4vKiBTaWRlYmFyIC0gSW5pdGlhbCAqL1xuLnVpLmxlZnQucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG59XG4udWkucmlnaHQucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbn1cbi51aS50b3AucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgLTEwMCUsIDApO1xufVxuLnVpLmJvdHRvbS5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAxMDAlLCAwKTtcbn1cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCwgMCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVW5jb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluaXRpYWwgKi9cbi51aS51bmNvdmVyLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB6LWluZGV4OiAxO1xufVxuLyogRW5kICovXG4udWkudmlzaWJsZS51bmNvdmVyLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNsaWRlIEFsb25nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbCAqL1xuLnVpLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB6LWluZGV4OiAxO1xufVxuLyogU2lkZWJhciAtIEluaXRpYWwgKi9cbi51aS5sZWZ0LnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xufVxuLnVpLnJpZ2h0LnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG59XG4udWkudG9wLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xufVxuLnVpLmJvdHRvbS5zbGlkZS5hbG9uZy5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgNTAlLCAwKTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLnVpLmFuaW1hdGluZy5zbGlkZS5hbG9uZy5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG59XG4vKiBFbmQgKi9cbi51aS52aXNpYmxlLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNsaWRlIE91dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluaXRpYWwgKi9cbi51aS5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBTaWRlYmFyIC0gSW5pdGlhbCAqL1xuLnVpLmxlZnQuc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG59XG4udWkucmlnaHQuc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xufVxuLnVpLnRvcC5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDUwJSwgMCk7XG59XG4udWkuYm90dG9tLnNsaWRlLm91dC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgLTUwJSwgMCk7XG59XG4vKiBBbmltYXRpb24gKi9cbi51aS5hbmltYXRpbmcuc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUuc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNjYWxlIERvd25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbml0aWFsICovXG4udWkuc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG4gIHotaW5kZXg6IDEwMjtcbn1cbi8qIFNpZGViYXIgLSBJbml0aWFsICAqL1xuLnVpLmxlZnQuc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG59XG4udWkucmlnaHQuc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbn1cbi51aS50b3Auc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgLTEwMCUsIDApO1xufVxuLnVpLmJvdHRvbS5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAxMDAlLCAwKTtcbn1cbi8qIFB1c2hlciAtIEluaXRpYWwgKi9cbi51aS5zY2FsZS5kb3duLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA3NSUgNTAlO1xufVxuLnVpLnNjYWxlLmRvd24ucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAyNSUgNTAlO1xufVxuLnVpLnNjYWxlLmRvd24udG9wLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDc1JTtcbn1cbi51aS5zY2FsZS5kb3duLmJvdHRvbS5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAyNSU7XG59XG4vKiBBbmltYXRpb24gKi9cbi51aS5hbmltYXRpbmcuc2NhbGUuZG93biA+IC52aXNpYmxlLnVpLnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi51aS52aXNpYmxlLnNjYWxlLmRvd24uc2lkZWJhciB+IC5wdXNoZXIsXG4udWkuYW5pbWF0aW5nLnNjYWxlLmRvd24uc2lkZWJhciB+IC5wdXNoZXIge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG4vKiBFbmQgKi9cbi51aS52aXNpYmxlLnNjYWxlLmRvd24uc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG4udWkudmlzaWJsZS5zY2FsZS5kb3duLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTdGlja3lcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGlja3lcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0aWNreVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGlja3lcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc3RpY2t5IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgei1pbmRleDogODAwO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEJvdW5kICovXG4udWkuc3RpY2t5LmJvdW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cbi8qIEZpeGVkICovXG4udWkuc3RpY2t5LmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cbi8qIEJvdW5kL0ZpeGVkIFBvc2l0aW9uICovXG4udWkuc3RpY2t5LmJvdW5kLnRvcCxcbi51aS5zdGlja3kuZml4ZWQudG9wIHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogYXV0bztcbn1cbi51aS5zdGlja3kuYm91bmQuYm90dG9tLFxuLnVpLnN0aWNreS5maXhlZC5ib3R0b20ge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMHB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm5hdGl2ZS5zdGlja3kge1xuICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XG4gIHBvc2l0aW9uOiAtbW96LXN0aWNreTtcbiAgcG9zaXRpb246IC1tcy1zdGlja3k7XG4gIHBvc2l0aW9uOiAtby1zdGlja3k7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gVGFiXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBUYWJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMb2FkaW5nICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgVGFiXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTG9hZGluZyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFVJIFRhYnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkudGFiIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWIuYWN0aXZlLFxuLnVpLnRhYi5vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWIubG9hZGluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDI1MHB4O1xufVxuLnVpLnRhYi5sb2FkaW5nICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgbGVmdDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cbi51aS50YWIubG9hZGluZzpiZWZvcmUsXG4udWkudGFiLmxvYWRpbmcuc2VnbWVudDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDEwMHB4O1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuMjVlbSAwZW0gMGVtIC0xLjI1ZW07XG4gIHdpZHRoOiAyLjVlbTtcbiAgaGVpZ2h0OiAyLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXI6IDAuMmVtIHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS50YWIubG9hZGluZzphZnRlcixcbi51aS50YWIubG9hZGluZy5zZWdtZW50OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAxMDBweDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0xLjI1ZW0gMGVtIDBlbSAtMS4yNWVtO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogMi41ZW07XG4gIGFuaW1hdGlvbjogYnV0dG9uLXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRhYiBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBVc2VyIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFRyYW5zaXRpb25cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVHJhbnNpdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFRyYW5zaXRpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBUcmFuc2l0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzMDBtcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBBbmltYXRpbmcgKi9cbi5hbmltYXRpbmcudHJhbnNpdGlvbiB7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuLyogTG9hZGluZyAqL1xuLmxvYWRpbmcudHJhbnNpdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OTlweDtcbiAgbGVmdDogLTk5OTk5cHg7XG59XG4vKiBIaWRkZW4gKi9cbi5oaWRkZW4udHJhbnNpdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIFZpc2libGUgKi9cbi52aXNpYmxlLnRyYW5zaXRpb24ge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC8qICBiYWNrZmFjZS12aXNpYmlsaXR5OiBAYmFja2ZhY2VWaXNpYmlsaXR5O1xuICB0cmFuc2Zvcm06IEB1c2UzREFjY2VsZXJhdGlvbjsqL1xufVxuLyogRGlzYWJsZWQgKi9cbi5kaXNhYmxlZC50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5sb29waW5nLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVHJhbnNpdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuICBTb21lIHRyYW5zaXRpb25zIGFkYXB0ZWQgZnJvbSBBbmltYXRlIENTU1xuICBodHRwczovL2dpdGh1Yi5jb20vZGFuZWRlbi9hbmltYXRlLmNzc1xuXG4gIEFkZGl0aW9uYWwgdHJhbnNpdGlvbnMgYWRhcHRlZCBmcm9tIEdsaWRlXG4gIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGVcbiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJyb3dzZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi50cmFuc2l0aW9uLmJyb3dzZSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7XG59XG4udHJhbnNpdGlvbi5icm93c2UuaW4ge1xuICBhbmltYXRpb24tbmFtZTogYnJvd3NlSW47XG59XG4udHJhbnNpdGlvbi5icm93c2Uub3V0LFxuLnRyYW5zaXRpb24uYnJvd3NlLmxlZnQub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJyb3dzZU91dExlZnQ7XG59XG4udHJhbnNpdGlvbi5icm93c2UucmlnaHQub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJyb3dzZU91dFJpZ2h0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgYnJvd3NlSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuICAxMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVaKDBweCk7XG4gICAgei1pbmRleDogLTE7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KSB0cmFuc2xhdGVaKDBweCk7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiA5OTk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVaKDBweCk7XG4gICAgei1pbmRleDogOTk5O1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgYnJvd3NlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSByb3RhdGVZKDBkZWcpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbiAgNTAlIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpIHJvdGF0ZVkoMzVkZWcpIHJvdGF0ZVgoMTBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICB9XG4gIDgwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZVkoMGRlZykgcm90YXRlWCgwZGVnKSB0cmFuc2xhdGVaKC0xMHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGJyb3dzZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZVkoMGRlZykgcm90YXRlWCgwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNSUpIHJvdGF0ZVkoMzVkZWcpIHJvdGF0ZVgoMTBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICB9XG4gIDgwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlWSgwZGVnKSByb3RhdGVYKDBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRHJvcFxuLS0tLS0tLS0tLS0tLS0tKi9cbi5kcm9wLnRyYW5zaXRpb24ge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICBhbmltYXRpb24tZHVyYXRpb246IDQwMG1zO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zNCwgMS42MSwgMC43LCAxKTtcbn1cbi5kcm9wLnRyYW5zaXRpb24uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZHJvcEluO1xufVxuLmRyb3AudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZHJvcE91dDtcbn1cbi8qIERyb3AgKi9cbkBrZXlmcmFtZXMgZHJvcEluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZHJvcE91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGYWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnRyYW5zaXRpb24uZmFkZS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIHVwXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSBkb3duXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgcmlnaHRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG59XG4udHJhbnNpdGlvbi5mYWRlLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSB1cFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgbGVmdFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7XG59XG4vKiBJbiAqL1xuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZU91dFVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1JSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01JSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZU91dExlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRmxpcHNcbi0tLS0tLS0tLS0tLS0tLSovXG4uZmxpcC50cmFuc2l0aW9uLmluLFxuLmZsaXAudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tZHVyYXRpb246IDYwMG1zO1xufVxuLmhvcml6b250YWwuZmxpcC50cmFuc2l0aW9uLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGhvcml6b250YWxGbGlwSW47XG59XG4uaG9yaXpvbnRhbC5mbGlwLnRyYW5zaXRpb24ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGhvcml6b250YWxGbGlwT3V0O1xufVxuLnZlcnRpY2FsLmZsaXAudHJhbnNpdGlvbi5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiB2ZXJ0aWNhbEZsaXBJbjtcbn1cbi52ZXJ0aWNhbC5mbGlwLnRyYW5zaXRpb24ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHZlcnRpY2FsRmxpcE91dDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIGhvcml6b250YWxGbGlwSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdmVydGljYWxGbGlwSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBob3Jpem9udGFsRmxpcE91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHZlcnRpY2FsRmxpcE91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2NhbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4uc2NhbGUudHJhbnNpdGlvbi5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzY2FsZUluO1xufVxuLnNjYWxlLnRyYW5zaXRpb24ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNjYWxlT3V0O1xufVxuQGtleWZyYW1lcyBzY2FsZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIHNjYWxlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRmx5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW53YXJkICovXG4udHJhbnNpdGlvbi5mbHkge1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbn1cbi50cmFuc2l0aW9uLmZseS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJbjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSB1cFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJblVwO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmx5SW5Eb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmx5SW5MZWZ0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHJpZ2h0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseUluUmlnaHQ7XG59XG4vKiBPdXR3YXJkICovXG4udHJhbnNpdGlvbi5mbHkub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseU91dDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSB1cFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmx5T3V0VXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgZG93blwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmx5T3V0RG93bjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXRMZWZ0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXRSaWdodDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIGZseUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOSwgMC45LCAwLjkpO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45NywgMC45NywgMC45Nyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmx5SW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTUwMHB4LCAwKTtcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1MDBweCwgMCk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjVweCwgMCk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmx5SW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxNTAwcHgsIDAsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlJblJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTUwMHB4LCAwLCAwKTtcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNXB4LCAwLCAwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIGZseU91dCB7XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOSwgMC45LCAwLjkpO1xuICB9XG4gIDUwJSxcbiAgNTUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjMsIDAuMywgMC4zKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXRVcCB7XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuICA0MCUsXG4gIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXREb3duIHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuICA0MCUsXG4gIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXRSaWdodCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXRMZWZ0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNsaWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnRyYW5zaXRpb24uc2xpZGUuaW4sXG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSBkb3duXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5ZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic2xpZGUgdXBcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSBsZWZ0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5YO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSByaWdodFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluWDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGxlZnQ7XG59XG4udHJhbnNpdGlvbi5zbGlkZS5vdXQsXG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSB1cFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic2xpZGUgbGVmdFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRYO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSByaWdodFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRYO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIHNsaWRlSW5ZIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzbGlkZUluWCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBzbGlkZU91dFkge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlT3V0WCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3dpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udHJhbnNpdGlvbi5zd2luZyB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogODAwbXM7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBkb3duXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nSW5YO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic3dpbmcgdXBcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdJblg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBsZWZ0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nSW5ZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyByaWdodFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ0luWTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGxlZnQ7XG59XG4udHJhbnNpdGlvbi5zd2luZy5vdXQsXG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyB1cFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdPdXRYO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic3dpbmcgbGVmdFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdPdXRZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyByaWdodFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdPdXRZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIHN3aW5nSW5YIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoMTVkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoLTcuNWRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc3dpbmdJblkge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgtMTcuNWRlZyk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSg3LjVkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDBkZWcpO1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgc3dpbmdPdXRYIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoLTcuNWRlZyk7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgxNy41ZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQGtleWZyYW1lcyBzd2luZ091dFkge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSg3LjVkZWcpO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoLTEwZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgWm9vbVxuLS0tLS0tLS0tLS0tLS0tKi9cbi50cmFuc2l0aW9uLnpvb20uaW4ge1xuICBhbmltYXRpb24tbmFtZTogem9vbUluO1xufVxuLnRyYW5zaXRpb24uem9vbS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dDtcbn1cbkBrZXlmcmFtZXMgem9vbUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgem9vbU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgIFN0YXRpYyBBbmltYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIEVtcGhhc2lzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLmZsYXNoLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zO1xuICBhbmltYXRpb24tbmFtZTogZmxhc2g7XG59XG4uc2hha2UudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZTtcbn1cbi5ib3VuY2UudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2U7XG59XG4udGFkYS50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IHRhZGE7XG59XG4ucHVsc2UudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcbn1cbi5qaWdnbGUudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBqaWdnbGU7XG59XG4udHJhbnNpdGlvbi5nbG93IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyMDAwbXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTtcbn1cbi50cmFuc2l0aW9uLmdsb3cge1xuICBhbmltYXRpb24tbmFtZTogZ2xvdztcbn1cbi8qIEZsYXNoICovXG5Aa2V5ZnJhbWVzIGZsYXNoIHtcbiAgMCUsXG4gIDUwJSxcbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAyNSUsXG4gIDc1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyogU2hha2UgKi9cbkBrZXlmcmFtZXMgc2hha2Uge1xuICAwJSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG4gIDEwJSxcbiAgMzAlLFxuICA1MCUsXG4gIDcwJSxcbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpO1xuICB9XG4gIDIwJSxcbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICB9XG59XG4vKiBCb3VuY2UgKi9cbkBrZXlmcmFtZXMgYm91bmNlIHtcbiAgMCUsXG4gIDIwJSxcbiAgNTAlLFxuICA4MCUsXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xuICB9XG59XG4vKiBUYWRhICovXG5Aa2V5ZnJhbWVzIHRhZGEge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMCUsXG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpIHJvdGF0ZSgtM2RlZyk7XG4gIH1cbiAgMzAlLFxuICA1MCUsXG4gIDcwJSxcbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKDNkZWcpO1xuICB9XG4gIDQwJSxcbiAgNjAlLFxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoLTNkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDApO1xuICB9XG59XG4vKiBQdWxzZSAqL1xuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogSmlnZ2xlICovXG5Aa2V5ZnJhbWVzIGppZ2dsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7XG4gIH1cbiAgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45NSwgMS4wNSwgMSk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMC45NSwgMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG4vKiBHbG93ICovXG5Aa2V5ZnJhbWVzIGdsb3cge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkNGRDtcbiAgfVxuICAzMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY2Q0Q7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkNGRDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTG9nb1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVGFic1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jc19fdGFicy0tbWF4V2lkdGgge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbn1cbi5jc19fdGFicy0tdmVydGljYWwge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmNzX190YWJzV3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJveC1zaGFkb3c6IDJweCAycHggMTBweCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMjgpO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuY3NfX3RhYnNXcmFwcGVyIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuLmNzX190YWJzV3JhcHBlci0tZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMTI4cHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5jc19fdGFicy0tdmVydGljYWwgLmNzX190YWJzV3JhcHBlciB7XG4gIGZsZXg6IDAgMCAzMDBweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX190YWJzLS12ZXJ0aWNhbCAuY3NfX3RhYnNXcmFwcGVyIHtcbiAgICBmbGV4OiBhdXRvO1xuICB9XG59XG4uY3NfX3RhYnMtLWludmVydGVkIC5jc19fdGFic1dyYXBwZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGM0YzRjO1xuICBwYWRkaW5nOiAxZW07XG4gIGNvbG9yOiAjZmZmO1xufVxuLmNzX190YWJJdGVtIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjOTI5ZGFmO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZm9udC1zaXplOiAxLjI1ZW07XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4zKTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX190YWJJdGVtIHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBmbGV4OiBhdXRvO1xuICAgIHBhZGRpbmc6IDAuMjVlbTtcbiAgfVxufVxuLmNzX190YWJzLS12ZXJ0aWNhbCAuY3NfX3RhYkl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm9yZGVyOiAwcHg7XG59XG4uY3NfX3RhYnMtLWludmVydGVkIC5jc19fdGFiSXRlbSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmNzX190YWJzLS1pbnZlcnRlZCAuY3NfX3RhYkl0ZW0tLXN1YiB7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi5jc19fdGFicy0taW52ZXJ0ZWQuY3NfX3RhYnMtLXZlcnRpY2FsIC5jc19fdGFiSXRlbS0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUzNmE4YztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBvcGFjaXR5OiAxO1xufVxuLmNzX190YWJTZWN0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY3NfX3RhYkhlYWQge1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuY3NfX3RhYkhlYWQge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gIH1cbn1cbi5jc19fdGFiSXRlbS0tc3ViIHtcbiAgaGVpZ2h0OiAwcHg7XG4gIHBhZGRpbmc6IDAgMC41ZW0gMCAyZW07XG4gIGZvbnQtc2l6ZTogMC45NWVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX190YWJJdGVtLS1zdWIge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICB9XG59XG4uY3NfX3RhYlNlY3Rpb24uY3NfX3RhYlNlY3Rpb24tLWFjdGl2ZSAuY3NfX3RhYkl0ZW0tLXN1YiB7XG4gIHBhZGRpbmc6IDAuNWVtIDAuNWVtIDAuNWVtIDJlbTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmNzX190YWJzLS12ZXJ0aWNhbCAuY3NfX3RhYkl0ZW0tLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmYzZmY7XG59XG4uY3NfX3RhYkl0ZW0tLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MzZhOGM7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5jc19fdGFiSXRlbTpob3Zlcixcbi5jc19fdGFiSXRlbTpmb2N1cyxcbi5jc19fdGFiSXRlbTphY3RpdmUsXG4uY3NfX3RhYkhlYWQ6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xuICBvcGFjaXR5OiAwLjc7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5jc19fdGFiX19jb250ZW50cyB7XG4gICAgbWFyZ2luLXRvcDogMS41ZW07XG4gIH1cbn1cbi5jc19fdGFicy0tdmVydGljYWwgLmNzX190YWJfX2NvbnRlbnRzIHtcbiAgcGFkZGluZzogMmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuY3NfX3RhYnMtLXZlcnRpY2FsIC5jc19fdGFiX19jb250ZW50cyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmNzX190YWJfX2NvbnRlbnQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dDtcbn1cbi5jc19fdGFiX19jb250ZW50LS1hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBoZWlnaHQ6IGF1dG87XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgQ1MgdGFibGVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3NfX3RhYmxlIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNzX190YWJsZSB0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuLmNzX190YWJsZSB0YWJsZSB0aCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5jc19fdGFibGUgdGFibGUgdGgsXG4uY3NfX3RhYmxlIHRhYmxlIHRkIHtcbiAgcGFkZGluZzogMC41ZW07XG59XG4uY3NfX3RhYmxlIHRhYmxlIC5jc19fdGFibGVfX3BpbGxhci0tbGVmdCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE2KTtcbn1cbi5jc19fdGFibGUgdGFibGUgLmNzX190YWJsZV9fcGlsbGFyLS1yaWdodCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNik7XG59XG4uY3NfX3RhYmxlIHRhYmxlIC5jc19fdGFibGVfX3RvdGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYztcbn1cbi5jc19fdGFibGUgdGFibGUgLmNzX190YWJsZV9fdG90YWwgdGQsXG4uY3NfX3RhYmxlIHRhYmxlIC5jc19fdGFibGVfX3RvdGFsIHRoIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNik7XG59XG4uY3NfX3RhYmxlIHRhYmxlIHRoZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjtcbn1cbi5jc19fdGFibGUgdGFibGUgdGhlYWQgdHI6bm90KGxhc3QtY2hpbGQpIHRoLFxuLmNzX190YWJsZSB0YWJsZSB0aGVhZCB0cjpub3QobGFzdC1jaGlsZCkgdGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE2KTtcbn1cbi5jc19fdGFibGUgdGFibGUgdGhlYWQgLmNzX190YWJsZV9fY2VsbC0taW52ZXJ0ZWRCbHVlIHtcbiAgY29sb3I6ICMzYzkyZTE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2Y2ZmY7XG59XG4uY3NfX3RhYmxlIHRhYmxlIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkLFxuLmNzX190YWJsZSB0YWJsZSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0aCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xufVxuLmNzX190YWJsZSB0YWJsZSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkLFxuLmNzX190YWJsZSB0YWJsZSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRoIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNik7XG59XG4uY3NfX3RhYmxlIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZCxcbi5jc19fdGFibGUgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5jc19fdGFibGUgdGFibGUgdGZvb3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjO1xufVxuLmNzX190YWJsZSB0YWJsZSAuY3NfX3RhYmxlX19jZWxsLS1ncmVlbiB7XG4gIGNvbG9yOiAjMTNiNzEzO1xufVxuLmNzX190YWJsZSB0YWJsZSAuY3NfX3RhYmxlX19jZWxsLS1yZWQge1xuICBjb2xvcjogI2ZmMzUzNTtcbn1cbi5jc19fdGFibGUgdGFibGUgLmNzX190YWJsZV9fY2VsbC0tbnVtIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uY3NfX3RhYmxlIHRhYmxlIC5jc19fdGFibGVfX3RleHQtLWFsaWduTGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uY3NfX3RhYmxlIHRhYmxlIC5jc19fdGFibGVfX2NlbGwtLWludmVydGVkQmx1ZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXItY29sb3I6ICMzYzkyZTE7XG59XG4uY3NfX3RhYmxlLS1jZW50ZXJBbGlnbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jc19fdGFibGUtLW1hcmdpblRvcEJvdHRvbSB7XG4gIG1hcmdpbjogMWVtIDA7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5jc19fdGFibGUge1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxuICAuY3NfX3RhYmxlIHRhYmxlIHtcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgSW5kaWNlcyBTbGlkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uaW5kaWNlc19fc2xpZGVyIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuI2NzLWluZGljZXMtcGFnZSAuaW5kaWNlc19fc2xpZGVyLmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAwLjVlbSAhaW1wb3J0YW50O1xuICB3aWR0aDogY2FsYygxMDAlIC0gMS44ZW0gLSAycHgpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDNweCAzcHggMTBweCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMyk7XG4gIGhlaWdodDogNzVweCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluZGljZXMtcGFnZSAuaW5kaWNlc19fc2xpZGVyLmZpeGVkIHtcbiAgICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXNXcmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAwIDAgY2FsYygxMDAlIC0gNjBweCk7XG4gIGhlaWdodDogNzVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMHB4O1xuICB0b3A6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4yNXM7XG59XG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLXdpZHRoOiAxNC4zJTtcbiAgZmxleDogMCAwIDE0LjMlO1xuICBoZWlnaHQ6IDc1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAwLjVlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgfVxufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiAuY3MtaW5kZXgtY29udGFpbmVyID4gYSAuaW5kaWNlc19fc2xpZGVyX19uYW1lIHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyAuY29sdW1uIC5jcy1pbmRleC1jb250YWluZXIgPiBhIC5pbmRpY2VzX19zbGlkZXJfX2NoYXJ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAwIDAgNDAlO1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLmluZGljZXNfX3NsaWRlcl9fY2hhcnQgLmNzLWNoYXJ0IC5saW5lIHtcbiAgc3Ryb2tlLXdpZHRoOiAxLjVweDtcbiAgc3Ryb2tlOiAjZDRkNGQ1O1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLmluZGljZXNfX3NsaWRlcl9fY2hhcnQgLmNzLWNoYXJ0IC5hcmVhIHtcbiAgb3BhY2l0eTogMDtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyAuY29sdW1uIC5jcy1pbmRleC1jb250YWluZXIgPiBhIC5pbmRpY2VzX19zbGlkZXJfX2NoYXJ0IC5jcy1jaGFydCAueC1ncmlkLFxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLmluZGljZXNfX3NsaWRlcl9fY2hhcnQgLmNzLWNoYXJ0IC55LWdyaWQge1xuICBzdHJva2U6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiAuY3MtaW5kZXgtY29udGFpbmVyID4gYSAuaW5kaWNlc19fc2xpZGVyX19jaGFydCAuY3MtY2hhcnQgLmJnIHtcbiAgc3Ryb2tlOiByZ2JhKDAsIDAsIDAsIDApO1xuICBmaWxsOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLmluZGljZXNfX3NsaWRlcl9fY2hhcnQgLmNzLWNoYXJ0IC50aWNrIHRleHQge1xuICBvcGFjaXR5OiAwO1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLmluZGljZXNfX3NsaWRlcl9fY2hhcnQgLmNzLWNoYXJ0IHBhdGg6bm90KC5saW5lKSB7XG4gIHN0cm9rZTogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyAuY29sdW1uIC5jcy1pbmRleC1jb250YWluZXIgPiBhIC5pbmRpY2VzX19zbGlkZXJfX3N0YXRzIHtcbiAgZmxleDogMCAwIDYwJTtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyAuY29sdW1uIC5jcy1pbmRleC1jb250YWluZXIgPiBhIC5pbmRpY2VzX19zbGlkZXJfX3N0YXRzID4gZGl2IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyAuY29sdW1uIC5jcy1pbmRleC1jb250YWluZXIgPiBhIC5pbmRpY2VzX19zbGlkZXJfX3BvaW50cyBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiAuY3MtaW5kZXgtY29udGFpbmVyID4gYSAuZ3JlZW4ge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyAuY29sdW1uIC5jcy1pbmRleC1jb250YWluZXIgPiBhIC5yZWQge1xuICBjb2xvcjogI0RCMjgyODtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyA+IC5jb2x1bW46bm90KDpsYXN0LWNoaWxkKTpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItbGVmdDogMXB4IGRvdHRlZCAjYzljOWM5O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHJpZ2h0OiAwcHg7XG4gIHRvcDogMHB4O1xuICB6LWluZGV4OiAxMTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzID4gLmNvbHVtbjpub3QoOmxhc3QtY2hpbGQpOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmluZGljZXNfX3NsaWRlcl9fY29udHJvbHMge1xuICBmbGV4OiAwIDAgMzBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzO1xufVxuLmluZGljZXNfX3NsaWRlcl9fY29udHJvbHMgaSB7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICBtYXJnaW46IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmluZGljZXNfX3NsaWRlcl9fY29udHJvbHM6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBhbGljZWJsdWU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUYWJsZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy10YWJsZSB0aCAuaWNvbi5zb3J0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmNzLXRhYmxlIHRoOmhvdmVyIC5pY29uLnNvcnQge1xuICBjb2xvcjogIzAwMDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFJhbmdlIFNjYWxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLXJhbmdlLXNjYWxlIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5jcy1yYW5nZS1zY2FsZSAudWkuaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5jcy1yYW5nZS1zY2FsZSAuYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5jcy1yYW5nZS1zY2FsZSAuYmFyIC5wb2ludCB7XG4gIGhlaWdodDogOHB4O1xuICBvdXRsaW5lOiAxcHggc29saWQgI2ZmZjtcbiAgZmxleDogMSAxIGF1dG87XG59XG4uY3MtcmFuZ2Utc2NhbGUgLmhpZ2gsXG4uY3MtcmFuZ2Utc2NhbGUgLmxvdyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmNzLXJhbmdlLXNjYWxlIC5oaWdoIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmNzLXJhbmdlLXNjYWxlIC5iYXIgLmNhcmV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0xMHB4O1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tbGVmdDogLThweDtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFN1cHBvcnQgUmVzaXN0YW5jZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2Uge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMHB4IDAuOGVtO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAucmFpbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnJhaWwgLnVpLnBvcHVwIHtcbiAgcGFkZGluZzogMC4zZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMzQTVCODM7XG4gIG1hcmdpbjogMHB4O1xuICByaWdodDogdW5zZXQ7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHotaW5kZXg6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5yYWlsIC51aS5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM0E1QjgzO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAucmFpbCAuaWNvbiB7XG4gIGNvbG9yOiBibGFjaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbWFyZ2luOiAwcHg7XG4gIHdpZHRoOiBtaW4tY29udGVudDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuaGVhZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMC44ZW07XG4gIG1hcmdpbi1ib3R0b206IDEuNmVtO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2YwMzYzNSAwJSwgIzQ0NDY1NyA1MCUsICMzYWM5NWMgMTAwJSk7XG4gIGhlaWdodDogMTVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC5wb2ludCB7XG4gIHRvcDogLTIzLjVweDtcbiAgd2lkdGg6IDQ1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnNyLWJhciAucG9pbnQgLnZhbHVlLFxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC5wb2ludCAudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50IC50aXRsZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnNyLWJhciAucG9pbnQgLnZhbHVlIHtcbiAgZm9udC1zaXplOiAwLjY1ZW07XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50LnMyIHtcbiAgbGVmdDogY2FsYygwcHggLSAyMi41cHgpO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC5wb2ludC5zMiAudGl0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjYzNjM5O1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC5wb2ludC5zMSB7XG4gIGxlZnQ6IGNhbGMoMjUlIC0gMjIuNXB4KTtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnNyLWJhciAucG9pbnQuczEgLnRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JmNDE0Njtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnNyLWJhciAucG9pbnQucHAge1xuICBsZWZ0OiBjYWxjKDUwJSAtIDIyLjVweCk7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50LnBwIC50aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQ2NTU7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50LnIxIHtcbiAgbGVmdDogY2FsYyg3NSUgLSAyMi41cHgpO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC5wb2ludC5yMSAudGl0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmY5ZTUwO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC5wb2ludC5yMiB7XG4gIGxlZnQ6IGNhbGMoMTAwJSAtIDIyLjVweCk7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50LnIyIC50aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMmNiNWI7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlLnNob3ctcG9pbnRlciAucmFpbCB7XG4gIGhlaWdodDogMTBweDtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2Uuc2hvdy1wb2ludGVyIC5yYWlsIC51aS5wb3B1cCB7XG4gIHotaW5kZXg6IDE7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcywgb3BhY2l0eSAwLjJzIGxpbmVhcjtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2Uuc2hvdy1wb2ludGVyOmhvdmVyIC51aS5wb3B1cCB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMsIG9wYWNpdHkgMC4ycyBsaW5lYXI7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBDUyBTbGlkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3Mtc2xpZGVyIHtcbiAgcGFkZGluZzogMHB4IDNlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNzLXNsaWRlciA+IGkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5jcy1zbGlkZXIgPiBpLmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4xIWltcG9ydGFudDtcbn1cbi5jcy1zbGlkZXIgPiBpOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5jcy1zbGlkZXIgPiBpLmxlZnQge1xuICBsZWZ0OiAwcHg7XG59XG4uY3Mtc2xpZGVyID4gaS5yaWdodCB7XG4gIHJpZ2h0OiAwcHg7XG59XG4uY3Mtc2xpZGVyIC5zbGlkZXItcmFpbCAuc2xpZGUge1xuICBtYXJnaW46IDAuNWVtIDVweDtcbiAgbWluLXdpZHRoOiBjYWxjKDMzLjMzJSAtIDEwcHgpO1xufVxuLmNzLXNsaWRlciAuc2xpZGVyLXJhaWwudHdvIC5zbGlkZSB7XG4gIG1pbi13aWR0aDogY2FsYyg1MCUgLSAxMHB4KTtcbn1cbi5jcy1zbGlkZXIgLnNsaWRlci1yYWlsLm9uZSAuc2xpZGUge1xuICBtaW4td2lkdGg6IGNhbGMoMTAwJSAtIDEwcHgpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgQ1MgdHJlbmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3MtdHJlbmQge1xuICBwYWRkaW5nOiAxZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmNzLXRyZW5kIC5yZWQge1xuICBjb2xvcjogcmVkO1xufVxuLmNzLXRyZW5kIC5ncmVlbiB7XG4gIGNvbG9yOiAjMjViYTQ1O1xufVxuLmNzLXRyZW5kIC51aS5zZWdtZW50IHtcbiAgbWluLWhlaWdodDogMHB4ICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5jcy10cmVuZCB7XG4gICAgcGFkZGluZzogMC41ZW07XG4gIH1cbiAgLmNzLXRyZW5kIC51aS5oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgTUFJTiBIRUFERVJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5jcy1oZWFkZXItd3JhcHBlciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBoZWlnaHQ6IDk1cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHotaW5kZXg6IDIwO1xufVxuI2NzLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYwMDtcbiAgYm9yZGVyOiBub25lO1xuICB6LWluZGV4OiAyO1xuICBib3gtc2hhZG93OiBub25lO1xuICBoZWlnaHQ6IDUycHg7XG59XG4jY3MtaGVhZGVyLmNhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjk5OTI7XG59XG4jY3MtaGVhZGVyIC5jdXJyZW5jeS1yYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBtYXJnaW4tdG9wOiAycHg7XG4gIGNvbG9yOiBzbGF0ZWdyZXk7XG59XG4jY3MtaGVhZGVyIC5jdXJyZW5jeS1yYXRlIC5yYXRlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiBibGFjaztcbn1cbiNjcy1oZWFkZXIgLmN1cnJlbmN5LXJhdGUudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuI2NzLWhlYWRlciAudWkuZHJvcGRvd24uY3MtY3VycmVuY3ktZHJvcGRvd24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxLjNlbSAwLjVlbSAwLjVlbTtcbiAgei1pbmRleDogMTtcbn1cbiNjcy1oZWFkZXIgLnVpLmRyb3Bkb3duLmNzLWN1cnJlbmN5LWRyb3Bkb3duIGltZyB7XG4gIHdpZHRoOiAxN3B4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG4gIG1hcmdpbjogMCAwLjVlbSAwIDA7XG59XG4jY3MtaGVhZGVyIC51aS5kcm9wZG93bi5jcy1jdXJyZW5jeS1kcm9wZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogJ0N1cnJlbmN5JztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDNweDtcbiAgbGVmdDogOHB4O1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogIzhhODk4OTtcbn1cbiNjcy1oZWFkZXIgLnVpLmRyb3Bkb3duLmNzLWN1cnJlbmN5LWRyb3Bkb3duLm5vLXZpc2libGl0aXkge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4jY3MtaGVhZGVyIC5jcy1wb3J0YWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDFlbSAwLjJlbSAxZW0gMC41ZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubG9nbyB7XG4gIGJhY2tncm91bmQ6IHVybCgnL2Fzc2V0cy9pbWFnZXMvbG9nby0zNjAucG5nJykgY2VudGVyIGJvdHRvbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLXNpemU6IDM1cHggMzVweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMzVweDtcbiAgaGVpZ2h0OiAzNXB4O1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1idG4ge1xuICBiYWNrZ3JvdW5kOiAwO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMHB4O1xuICBmb250LXNpemU6IDEuNWVtO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5MDA7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYjU1ODY7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLm1vYmlsZV9fbGlzdEl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcGFkZGluZzogMWVtO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2xpc3RJdGVtOm5vdCg6bGFzdC1jaGlsZCApIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNyk7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLm1vYmlsZV9fbGlzdEl0ZW0tLWRyb3Bkb3duIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2xpc3RJdGVtLS1kaXNhYmxlZCBpIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAubW9iaWxlX19saXN0SXRlbS0taGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAubW9iaWxlX19kcm9wZG93bkxpc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ2NzdiO1xuICBtYXgtaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlLWluO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2Ryb3Bkb3duTGlzdC0tc2hvdyB7XG4gIG1heC1oZWlnaHQ6IDQwMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlLW91dDtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAubW9iaWxlX19kcm9wZG93bkxpc3RJdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMWVtO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2Ryb3Bkb3duTGlzdCA+IC5tb2JpbGVfX2Ryb3Bkb3duTGlzdEl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTcpO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2xpc3RJdGVtLS1mZWVkYmFjayB7XG4gIGJhY2tncm91bmQ6ICM0MzY0OGM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAuY3VycmVudF9fY3VycmVuY3kge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC51aS5pbnZlcnRlZC52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMxQjU1ODY7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLml0ZW0gLnN1Yi1tZW51IC5pdGVtIHtcbiAgYm9yZGVyOiAwcHg7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLmN1cnJlbmN5X19mbGFnIHtcbiAgbWFyZ2luOiAwIDAuNWVtO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5jdXJyZW5jeV9fZmxhZyA+IGltZyB7XG4gIGhlaWdodDogMjBweDtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAuY3VycmVuY3lfX3JhdGUsXG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLmN1cnJlbmN5X19kYXRlIHtcbiAgZm9udC1zaXplOiAwLjZlbTtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAuY3VycmVuY3lfX2RhdGUge1xuICBtYXJnaW46IDAgMWVtIDAgMC41ZW07XG4gIG9wYWNpdHk6IDAuNztcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAubW9iaWxlX19saXN0SXRlbS0tY3VycmVuY3kge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTg1ODU4O1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2Ryb3Bkb3duTGlzdC0tY3VycmVuY3kge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODY4Njg2O1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2Ryb3Bkb3duTGlzdEl0ZW0tLWN1cnJlbmN5IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2Ryb3Bkb3duTGlzdEl0ZW0tLWN1cnJlbmN5Lm1vYmlsZV9fZHJvcGRvd25MaXN0SXRlbS0tc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjNiM2IzO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLnNlYXJjaC1iYXIsXG4jY3MtaGVhZGVyLW1vYmlsZSAuc2VhcmNoLWJhci1tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFiNTU4NjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDE7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAuc2VhcmNoLWJhciAudWkuc2VhcmNoLFxuI2NzLWhlYWRlci1tb2JpbGUgLnNlYXJjaC1iYXItbWVudSAudWkuc2VhcmNoIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAuc2VhcmNoLWJhciAudWkuaW5wdXQsXG4jY3MtaGVhZGVyLW1vYmlsZSAuc2VhcmNoLWJhci1tZW51IC51aS5pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLnNlYXJjaC1iYXIgaW5wdXQsXG4jY3MtaGVhZGVyLW1vYmlsZSAuc2VhcmNoLWJhci1tZW51IGlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwLjRlbTtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmctdG9wOiAwLjZlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNWVtO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICBoZWlnaHQ6IDM1cHg7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAuc2VhcmNoLWJhciAudWkuaW5wdXQgOjpwbGFjZWhvbGRlcixcbiNjcy1oZWFkZXItbW9iaWxlIC5zZWFyY2gtYmFyLW1lbnUgLnVpLmlucHV0IDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnNlYXJjaC1iYXItbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICMyYzZhOWUgIWltcG9ydGFudDtcbn1cbi5zZWFyY2gtYmFyLW1lbnUgLnVpLnNlYXJjaCAudWkuaW5wdXQge1xuICB3aWR0aDogOTAlICFpbXBvcnRhbnQ7XG59XG4uc2VhcmNoLWJhci1tZW51IC51aS5zZWFyY2ggLmNsb3NlLmljb24ge1xuICBmb250LXNpemU6IDEuM2VtO1xuICBtYXJnaW46IDBweDtcbiAgd2lkdGg6IDklO1xufVxuI2NzLWhlYWRlciAudWkuZ3JpZCB7XG4gIG1hcmdpbjogMDtcbn1cbiNjcy1oZWFkZXIgLml0ZW0ubG9nby13cmFwcGVyIHtcbiAgcGFkZGluZzogLjVlbSAuNWVtIC4yZW0gLjZlbTtcbn1cbiNjcy1oZWFkZXIgLmxvZ28sXG4jY3MtZm9vdGVyIC5sb2dvIHtcbiAgYmFja2dyb3VuZDogdXJsKCcvYXNzZXRzL2ltYWdlcy9sb2dvLTM2MC5wbmcnKSBjZW50ZXIgYm90dG9tO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4jY3MtaGVhZGVyIC5sb2dvLmNhbCxcbiNjcy1mb290ZXIgLmxvZ28uY2FsIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy9pbWFnZXMvbG9nby1jYXBpdGFsYW5hbHl0aWNzLmpwZ1wiKTtcbn1cbiNjcy1oZWFkZXIgLmxvZ28ge1xuICBiYWNrZ3JvdW5kLXNpemU6IDgwcHggODBweDtcbiAgaGVpZ2h0OiA4MHB4O1xuICBtYXJnaW4tYm90dG9tOiAtNDBweDtcbiAgd2lkdGg6IDgwcHg7XG59XG4jY3MtaGVhZGVyIC5sb2dvLnBzeCB7XG4gIGJhY2tncm91bmQ6IHVybCgvYXNzZXRzL2ltYWdlcy9wc3gucG5nKSAjZmZmIGJvdHRvbSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4jY3MtZm9vdGVyIC5sb2dvIHtcbiAgYmFja2dyb3VuZC1zaXplOiA5MHB4IDkwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDkwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA5MHB4ICFpbXBvcnRhbnQ7XG59XG4jY3MtaGVhZGVyLW1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUI1NTg2O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBtYXJnaW46IDA7XG4gIHotaW5kZXg6IDE7XG59XG4jY3MtaGVhZGVyLW1lbnUuY2FsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxN2M3Nztcbn1cbiNjcy1oZWFkZXItbW9iaWxlLmNzLWJhc2ljLW1lbnUge1xuICBiYWNrZ3JvdW5kOiAjMmM2YTllO1xufVxuI2NzLWhlYWRlci1tZW51IC51aS5ncmlkIHtcbiAgbWFyZ2luOiAwO1xufVxuI2NzLWhlYWRlci1tZW51IC5pdGVtLmhvbWUge1xuICBtYXJnaW4tbGVmdDogN2VtO1xufVxuI2NzLWhlYWRlci1tZW51LnVpLmludmVydGVkLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51IHtcbiAgYmFja2dyb3VuZDogIzMxNjU5MTtcbn1cbiNjcy1oZWFkZXItbWVudS51aS5pbnZlcnRlZC5tZW51IC5kcm9wZG93biAubWVudSAuaXRlbSB7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG59XG4jY3MtaGVhZGVyLW1lbnUgLml0ZW0ge1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cbiNjcy1oZWFkZXItc2VhcmNoIHtcbiAgcGFkZGluZzogMDtcbn1cbiNjcy1oZWFkZXItc2VhcmNoIC51aS5pbnB1dCBpbnB1dCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwLjRlbTtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmctdG9wOiAwLjZlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNWVtO1xuICBtYXgtd2lkdGg6IDE2MHB4O1xufVxuI2NzLWhlYWRlci1zZWFyY2ggLnVpLmlucHV0IDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk1QjRDRjtcbn1cbiNjcy1oZWFkZXItbWVudS5oaWRlLXJlc2VhcmNoIGFbaHJlZj1cIi9jbGllbnQtcmVzZWFyY2hcIl0sXG4jY3MtaGVhZGVyLW1vYmlsZS5oaWRlLXJlc2VhcmNoIGFbaHJlZj1cIi9jbGllbnQtcmVzZWFyY2hcIl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWhlYWRlci1tZW51IC5jcy1jdXJyZW5jeS1kcm9wZG93biB7XG4gIHdpZHRoOiAxOTBweDtcbiAgcGFkZGluZzogMC41ZW0gMWVtICFpbXBvcnRhbnQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1oZWFkZXItbWVudSAuY3MtY3VycmVuY3ktZHJvcGRvd24gLmN1cnJlbmN5LXJhdGUge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1oZWFkZXItbWVudSAuY3MtY3VycmVuY3ktZHJvcGRvd24gLmN1cnJlbmN5LXJhdGUgLmRhdGUge1xuICBvcGFjaXR5OiAwLjc7XG59XG4jY3MtaGVhZGVyLW1lbnUgLmNzLWN1cnJlbmN5LWRyb3Bkb3duIC5jdXJyZW5jeS1yYXRlLnZpc2libGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWhlYWRlcixcbiAgI2NzLWhlYWRlci1tZW51IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjcy1oZWFkZXItbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAjY3MtaGVhZGVyLW1vYmlsZSAuc2VhcmNoLWJhciAudWkuc2VhcmNoIC5yZXN1bHRzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSE9NRSBQQUdFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4jY3MtaG9tZSAudWkucmliYm9uLmxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgbGVmdDogY2FsYygtMnJlbSk7XG59XG4jY3MtaG9tZSAudWkucmliYm9uLmxhYmVsOmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAwZW0gMC45ZW0gMC45ZW0gMGVtO1xufVxuI2NzLWhvbWUtc3RvY2sge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuI2NzLWhvbWUtc3RvY2suaG9yaXpvbnRhbCAjY3MtaG9tZS1pbmRpY2VzIHtcbiAgd2lkdGg6IDQwJTtcbn1cbiNjcy1ob21lLXN0b2NrLmhvcml6b250YWwgI2NzLWhvbWUtcGVyZm9ybWVycyB7XG4gIHdpZHRoOiAzNSU7XG59XG4jY3MtaG9tZS1zdG9jay5ob3Jpem9udGFsICNjcy1ob21lLWFubm91bmNlbWVudHMge1xuICB3aWR0aDogMjUlO1xufVxuI2NzLWhvbWUtcGVyZm9ybWVycyAudWkudGFiLnNlZ21lbnQge1xuICBwYWRkaW5nOiAwO1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbn1cbiNjcy1ob21lLWdsb2JhbCAudWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuI2NzLWhvbWUtY29tbW9kaXRpZXMgLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbiNjcy1ob21lLWZvcmV4IC51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDEuNmVtO1xufVxuI2NzLWhvbWUtY2FsZW5kYXIgLnVpLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XG4gIHBhZGRpbmctbGVmdDogMC4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNjcy1ob21lLWNhbGVuZGFyIC51aS5saXN0ID4gLml0ZW0gLmhlYWRlciB7XG4gIGxpbmUtaGVpZ2h0OiAyZW07XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGNvbG9yOiAjNzY3Njc2O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuI2NzLWhvbWUtY2FsZW5kYXIgLmNpcmNsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjMmM2YTllO1xuICBsZWZ0OiAtMS4zOTJlbTtcbiAgdG9wOiAwLjU0ZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbn1cbiNjcy1ob21lLWNhbGVuZGFyIC51aS5saXN0ID4gLml0ZW0gLmljb24uZXh0ZXJuYWwge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG59XG4jY3MtaG9tZS1jYWxlbmRhciAudWkubGlzdCA+IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0VGRjdGRjtcbn1cbiNjcy1ob21lLWNhbGVuZGFyIC51aS5saXN0ID4gLml0ZW06aG92ZXIgLmNpcmNsZSB7XG4gIGJhY2tncm91bmQ6ICMyQzZBOUU7XG59XG4jY3MtaG9tZS1jYWxlbmRhciAudWkubGlzdCA+IC5pdGVtOmhvdmVyIC5pY29uLmV4dGVybmFsIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3MtbW9kYWwtc21hbGwge1xuICB3aWR0aDogNDAwcHggIWltcG9ydGFudDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzLW1vZGFsLXNtYWxsIC5maWVsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY3MtbW9kYWwtc21hbGwgLnVpLmZhY2Vib29rLmJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwLjllbSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbiAgfVxufVxuI3NpZ251cC1ib3ggZm9ybSB7XG4gIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbn1cbiNzaWdudXAtYm94IC51aS5yZWQubWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jc2lnbnVwLWJveCAudWkuZmFjZWJvb2suYnV0dG9uIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMS4zZW07XG59XG4jY3MtZmVlZGJhY2stbW9kYWwgI2xpc3Qge1xuICBtYXJnaW46IDFlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuI2NzLWZlZWRiYWNrLW1vZGFsICNsaXN0IHNwYW4ge1xuICBtYXJnaW46IDBweCAxZW07XG59XG4jY3MtZmVlZGJhY2stbW9kYWwgI2xpc3Qgc3BhbiAudGh1bWIge1xuICB3aWR0aDogMTUwcHg7XG59XG4jdG9wLWZpeGVkLW5hdiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMTAwcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSAhaW1wb3J0YW50O1xufVxuI3RvcC1maXhlZC1uYXYgLmxvZ28ge1xuICBiYWNrZ3JvdW5kLXNpemU6IDgwcHggODBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDgwcHg7XG4gIG1hcmdpbjogMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHdpZHRoOiA4MHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2xvZ28tMzYwLnBuZycpIGNlbnRlciBib3R0b207XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiN0b3AtZml4ZWQtbmF2IC5sb2dvLmNhbCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvaW1hZ2VzL2xvZ28tY2FwaXRhbGFuYWx5dGljcy5qcGdcIik7XG59XG4jdG9wLWZpeGVkLW5hdiAubG9nby5wc3gge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2ltYWdlcy9wc3guanBnXCIpO1xufVxuI3RvcC1maXhlZC1uYXYgLmNzLWVudGVycHJpc2UtbG9nbyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTUwcHg7XG4gIHRvcDogNDJweDtcbiAgcGFkZGluZy1sZWZ0OiAyN3B4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4jdG9wLWZpeGVkLW5hdiAucmlnaHQuaXRlbS50b2Mge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4jY3Mtc2lnbnVwLXN1Y2Nlc3MtZGlhbG9nIGgxLFxuI2NzLXNpZ251cC1zdWNjZXNzLWRpYWxvZyBwIHtcbiAgZm9udC1zaXplOiA1MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4jbmF2YmFyLW1lbnUgaSB7XG4gIGZvbnQtc2l6ZTogeC1sYXJnZTtcbiAgdG9wOiAtOC41cmVtICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cbiNuYXZiYXItbWVudSAudWkubWVudS5zZWNvbmRhcnkge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuI25hdmJhci1tZW51IC51aS5tZW51LnNlY29uZGFyeSBhLml0ZW0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4jbmF2YmFyLW1lbnUgLnVpLm1lbnUuc2Vjb25kYXJ5IC51aS5pbnZlcnRlZC5idXR0b24ge1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI3RvcC1maXhlZC1uYXYge1xuICAgIGhlaWdodDogNjVweDtcbiAgfVxuICAjdG9wLWZpeGVkLW5hdiAuY3MtZW50ZXJwcmlzZS1sb2dvIHtcbiAgICBsZWZ0OiA3M3B4O1xuICAgIHRvcDogMjNweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICB9XG4gICN0b3AtZml4ZWQtbmF2IC5yaWdodC5tZW51IC5pdGVtIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICN0b3AtZml4ZWQtbmF2IC5sb2dvIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQ1cHggNDVweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA0NXB4O1xuICAgIGhlaWdodDogNDVweDtcbiAgfVxuICAjdG9wLWZpeGVkLW5hdiAucmlnaHQuaXRlbS50b2Mge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuI2NzLWxhbmRpbmcge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuI2NzLWxhbmRpbmcgI2xhbmRpbmctY2hhcnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICB3aWR0aDogY2FsYygxMDAlICsgNDBweCk7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogLTQwcHg7XG59XG4jY3MtbGFuZGluZyAjbGFuZGluZy1jaGFydCBzdmcge1xuICBmb250OiAxMHB4IHNhbnMtc2VyaWY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbiNjcy1sYW5kaW5nICNsYW5kaW5nLWNoYXJ0IHN2ZzpmaXJzdC1vZi10eXBlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJDNkE5RTtcbn1cbiNjcy1sYW5kaW5nICNsYW5kaW5nLWNoYXJ0IC5saW5lIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiAjZmZmO1xuICBzdHJva2Utd2lkdGg6IDEuNXB4O1xufVxuI2NzLWxhbmRpbmcgI2xhbmRpbmctY2hhcnQgLmF4aXMgcGF0aCxcbiNjcy1sYW5kaW5nICNsYW5kaW5nLWNoYXJ0IC5heGlzIGxpbmUge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6ICNmZmY7XG4gIHNoYXBlLXJlbmRlcmluZzogY3Jpc3BFZGdlcztcbn1cbiNjcy1sYW5kaW5nIC51aS5zZWdtZW50IHtcbiAgYm9yZGVyOiAwcHg7XG59XG4jY3MtbGFuZGluZyAubG9nbyB7XG4gIGJhY2tncm91bmQtc2l6ZTogODBweCA4MHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogODBweDtcbiAgbWFyZ2luOiAwcHg7XG4gIG1hcmdpbi1yaWdodDogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG4gIHdpZHRoOiA4MHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2xvZ28tMzYwLnBuZycpIGNlbnRlciBib3R0b207XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiNjcy1sYW5kaW5nIC5sb2dvLmNhbCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvaW1hZ2VzL2xvZ28tY2FwaXRhbGFuYWx5dGljcy5qcGdcIik7XG4gIG1hcmdpbi1yaWdodDogMTJweDtcbn1cbiNjcy1sYW5kaW5nIC5sb2dvLnBzeCB7XG4gIGJhY2tncm91bmQ6IHVybChcIi9hc3NldHMvaW1hZ2VzL3BzeC5qcGdcIikgI2ZmZiBib3R0b20gbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuI2NzLWxhbmRpbmcgI2NzLWZvb3RlciAubG9nbyB7XG4gIGJhY2tncm91bmQtc2l6ZTogOTBweCA5MHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA5MHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogOTBweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBweDtcbn1cbiNjcy1sYW5kaW5nICNjcy1mb290ZXIgLmxvZ28uY2FsIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy9pbWFnZXMvbG9nby1jYXBpdGFsYW5hbHl0aWNzLmpwZ1wiKTtcbn1cbiNjcy1sYW5kaW5nICNjcy1mb290ZXIgLmxvZ28ucHN4IHtcbiAgYmFja2dyb3VuZDogdXJsKCcvYXNzZXRzL2ltYWdlcy9wc3gucG5nJykgI2ZmZiBib3R0b20gbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudGVycHJpc2UtbG9nbyB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDE1MHB4O1xuICB0b3A6IDQ1cHg7XG4gIHBhZGRpbmctbGVmdDogMjdweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB3aGl0ZTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1kaXNjb3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXRvcDogNDBweDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1kaXNjb3ZlciBwIHtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjU7XG59XG4jY3MtbGFuZGluZyAuY3MtZGlzY292ZXIgLnRpdGxlIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jY3MtbGFuZGluZyAuY3MtZGlzY292ZXIgLmljb24ge1xuICBmb250LXNpemU6IDIwcHg7XG59XG4jY3MtbGFuZGluZyAuY3MtZGlzY292ZXI6aG92ZXIgcCB7XG4gIG9wYWNpdHk6IDE7XG59XG4jY3MtbGFuZGluZyAuY3MtZGlzY292ZXI6aG92ZXIgLmljb24gaSB7XG4gIGFuaW1hdGlvbjogYm91bmNlIDJzIGluZmluaXRlO1xufVxuI2NzLWxhbmRpbmcgLmhpZGRlbi5tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1sYW5kaW5nIC51aS5pbnZlcnRlZC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJDNkE5RTtcbn1cbiNjcy1sYW5kaW5nIC51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlci1jb2xvcjogIzJDNkE5RTtcbn1cbiNjcy1sYW5kaW5nIC5tYXN0aGVhZC5zZWdtZW50IHtcbiAgbWluLWhlaWdodDogMTE1cHg7XG4gIHBhZGRpbmc6IDFlbSAwZW07XG59XG4jY3MtbGFuZGluZyAubWFzdGhlYWQgLmxvZ28uaXRlbSBpbWcge1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cbiNjcy1sYW5kaW5nIC5tYXN0aGVhZCAudWkubWVudSAudWkuYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuI2NzLWxhbmRpbmcgLm1hc3RoZWFkIGgxLnVpLmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDRlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBmb250LXNpemU6IDRlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbiNjcy1sYW5kaW5nIC5tYXN0aGVhZCBoMiB7XG4gIGZvbnQtc2l6ZTogMS43ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4jY3MtbGFuZGluZyAudWkudmVydGljYWwuc3RyaXBlIHtcbiAgcGFkZGluZzogOGVtIDBlbTtcbn1cbiNjcy1sYW5kaW5nIC51aS52ZXJ0aWNhbC5zdHJpcGUgaDMge1xuICBmb250LXNpemU6IDJlbTtcbn1cbiNjcy1sYW5kaW5nIC51aS52ZXJ0aWNhbC5zdHJpcGUgLmJ1dHRvbiArIGgzLFxuI2NzLWxhbmRpbmcgLnVpLnZlcnRpY2FsLnN0cmlwZSBwICsgaDMge1xuICBtYXJnaW4tdG9wOiAzZW07XG59XG4jY3MtbGFuZGluZyAudWkudmVydGljYWwuc3RyaXBlIC5mbG9hdGVkLmltYWdlIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4jY3MtbGFuZGluZyAudWkudmVydGljYWwuc3RyaXBlIHAge1xuICBmb250LXNpemU6IDEuMzNlbTtcbn1cbiNjcy1sYW5kaW5nIC51aS52ZXJ0aWNhbC5zdHJpcGUgLmhvcml6b250YWwuZGl2aWRlciB7XG4gIG1hcmdpbjogM2VtIDBlbTtcbn1cbiNjcy1sYW5kaW5nIC5xdW90ZS5zdHJpcGUuc2VnbWVudCB7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbiNjcy1sYW5kaW5nIC5xdW90ZS5zdHJpcGUuc2VnbWVudCAuZ3JpZCAuY29sdW1uIHtcbiAgcGFkZGluZy10b3A6IDVlbTtcbiAgcGFkZGluZy1ib3R0b206IDVlbTtcbn1cbiNjcy1sYW5kaW5nIC5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAudG9jLml0ZW0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWxhbmRpbmcgLnNlZ21lbnQtYm90dG9tLWJvcmRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpICFpbXBvcnRhbnQ7XG59XG4jY3MtbGFuZGluZyAuY3MtY29udGFpbmVyLWltYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjcy1sYW5kaW5nIC5jcy1jb250YWluZXItaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4jY3MtbGFuZGluZyAjaG9tZS1uYXYge1xuICBtaW4taGVpZ2h0OiAwcHg7XG4gIGhlaWdodDogMTAlO1xuICB6LWluZGV4OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ0LCAxMDYsIDE1OCwgMCk7XG59XG4jY3MtbGFuZGluZyAjaG9tZS1uYXYgLnVpLnBvaW50aW5nLm1lbnUge1xuICBib3JkZXI6IDBweDtcbn1cbiNjcy1sYW5kaW5nICNob21lLWJhbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0NCwgMTA2LCAxNTgsIDApO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDkwJTtcbn1cbiNjcy1sYW5kaW5nICNob21lLWJhbm5lciAudWkuaW52ZXJ0ZWQuaGVhZGVyIHtcbiAgbWFyZ2luOiAwcHg7XG4gIHRleHQtc2hhZG93OiAwIDAgNHB4ICMwYjNlNjkgO1xufVxuI2NzLWxhbmRpbmcgI2hvbWUtYmFubmVyIGgyIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCA0cHggIzBiM2U2OSA7XG59XG4jY3MtbGFuZGluZyAjaG9tZS1iYW5uZXIgLnN0YXJ0LXRyaWFsIHtcbiAgbWFyZ2luOiAyZW0gMHB4O1xufVxuI2NzLWxhbmRpbmcgI2hvbWUtYmFubmVyIC5jcy1kaXNjbGFpbWVyLWZvb3RlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgbWFyZ2luOiAwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHBhZGRpbmc6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XG59XG4jY3MtbGFuZGluZyAjZnJlZS10cmlhbCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBwYWRkaW5nOiA0ZW07XG59XG4jY3MtbGFuZGluZyAjZnJlZS10cmlhbCBwIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI2NzLWxhbmRpbmcgI2ZyZWUtdHJpYWwgaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuI2NzLWxhbmRpbmcgI2ZyZWUtdHJpYWwgYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuI2NzLWxhbmRpbmcgLmNzLWNvbnRhaW5lci10ZXh0IHtcbiAgd2lkdGg6IDEyODBweCAhaW1wb3J0YW50O1xufVxuI2NzLWxhbmRpbmcgLmNvbnRhaW5lci1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZmFmYTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IC5jb2x1bW4ge1xuICBwYWRkaW5nOiAwcHg7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LXJvdyAuY29sdW1uIC5pbWFnZSB7XG4gIGhlaWdodDogNjYwcHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb24teTogdG9wO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGxlZnQ7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LXJvdyAuY29sdW1uIC5pbWFnZS13aW5kb3cge1xuICBtYXJnaW4tdG9wOiA2ZW07XG4gIGJveC1zaGFkb3c6IDBweCAtNXB4IDU5cHggLTE1cHggIzQ1NWQ2OTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IC5jb2x1bW4gLmltYWdlLXdpbmRvdyAuaW1hZ2Uge1xuICBoZWlnaHQ6IDQwMHB4O1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cgLmNvbHVtbiAuaW1hZ2Utd2luZG93IC53aW5kb3cge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTg5OTY7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDdweDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IC5kZXNjcmlwdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IC5kZXNjcmlwdGlvbiAuZGVzLXRleHQgaDEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogNDUwcHg7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cgLmRlc2NyaXB0aW9uIC5kZXMtdGV4dCBwIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNztcbiAgY29sb3I6ICM2OTc3ODI7XG4gIG1heC13aWR0aDogNDUwcHg7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LXJvdy5jcy1jb2wtaW52ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2Y5Zjk7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LXJvdy5jcy1jb2wtaW52ZXJzZSAuaW1hZ2Utd2luZG93IC53aW5kb3cge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA3cHg7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LWZlYXR1cmUtMSAuaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vbWVudGlvbi5jb20vd3AtY29udGVudC90aGVtZXMvbWVudGlvbi9pbWcvcGhvdG9zL29mZmljZTEuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogNjAlIGF1dG87XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LWZlYXR1cmUtMiAuaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vbWVudGlvbi5jb20vd3AtY29udGVudC90aGVtZXMvbWVudGlvbi9pbWcvcGhvdG9zL21hY2Jvb2tJcGhuZS5wbmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiA2MCUgYXV0bztcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMjUlO1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1mZWF0dXJlLTMgLmltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL21lbnRpb24uY29tL3dwLWNvbnRlbnQvdGhlbWVzL21lbnRpb24vaW1nL3Bob3Rvcy9vZmZpY2UyLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDYwJSBhdXRvO1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDgwJTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtZmVhdHVyZS00IC5pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9tZW50aW9uLmNvbS93cC1jb250ZW50L3RoZW1lcy9tZW50aW9uL2ltZy9waG90b3MvaVBob25lMi5wbmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMCUgYXV0bztcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNzAlO1xufVxuI2NzLWxhbmRpbmcgLmNzLWNvbXBhbmllcy1saXN0IC5pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWFnZXMvY29tcGFuaWVzLWxpc3QuanBnJyk7XG59XG4jY3MtbGFuZGluZyAuY3Mtc2VjdG9yLW92ZXJ2aWV3IC5pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWFnZXMvc2VjdG9yLW92ZXJ2aWV3LmpwZycpO1xufVxuI2NzLWxhbmRpbmcgLmNzLWNvbXBhbnktc25hcHNob3QgLmltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy9jb21wYW55LXNuYXBzaG90LmpwZycpO1xufVxuI2NzLWxhbmRpbmcgLmNzLWZ1bmRhbWVudGFsLWluZGljYXRvcnMgLmltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy9mdW5kYW1lbnRhbC1pbmRpY2F0b3JzLmpwZycpO1xufVxuI2NzLWxhbmRpbmcgLmNzLWZpbmFuY2lhbC1zdGF0ZW1lbnRzIC5pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWFnZXMvZmluYW5jaWFsLXN0YXRlbWVudHMuanBnJyk7XG59XG4jY3MtbGFuZGluZyAuY3MtdGVjaG5pY2FsLWNoYXJ0aW5nIC5pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWFnZXMvdGVjaG5pY2FsLWNoYXJ0aW5nLXYyLnBuZycpO1xufVxuI2NzLWxhbmRpbmcgLmNzLXN0b2NrLXNjcmVlbmluZyAuaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1hZ2VzL3N0b2NrLXNjcmVlbmVyLmpwZycpO1xufVxuI2NzLWxhbmRpbmcgLmNzLWxpdmUtZGF0YSAuaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2xpdmUtZGF0YS5qcGcnKTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtbG9jYXRpb24ge1xuICBoZWlnaHQ6IDQwMHB4O1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1sb2NhdGlvbiAuZGVzY3JpcHRpb24gLmRlcy10ZXh0IGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LWxvY2F0aW9uIC5kZXNjcmlwdGlvbiAuZGVzLXRleHQgaDE6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtbG9jYXRpb24gLmRlc2NyaXB0aW9uIC5kZXMtdGV4dCBoMSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1sb2NhdGlvbiAuZGVzY3JpcHRpb24gLmRlcy10ZXh0LmFkZHJlc3Mtb25lIHtcbiAgcGFkZGluZzogMHB4IDVlbSAwcHggMTFlbTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UwZTRlYTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtbG9jYXRpb24gLmRlc2NyaXB0aW9uIC5kZXMtdGV4dC5hZGRyZXNzLXR3byB7XG4gIHBhZGRpbmc6IDBweCAxMWVtIDBweCA1ZW07XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LWxvY2F0aW9uIC5pbWFnZS5ueWMge1xuICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vbWVudGlvbi5jb20vd3AtY29udGVudC90aGVtZXMvbWVudGlvbi9pbWcvcGhvdG9zL21hcC1ueWMucG5nJyk7XG4gIGhlaWdodDogNDAwcHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtbG9jYXRpb24gLmltYWdlLnBhcmlzIHtcbiAgYmFja2dyb3VuZDogdXJsKCdodHRwczovL21lbnRpb24uY29tL3dwLWNvbnRlbnQvdGhlbWVzL21lbnRpb24vaW1nL3Bob3Rvcy9tYXAtcGFyaXMucG5nJyk7XG4gIGhlaWdodDogNDAwcHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWxhbmRpbmcgLmNzLWVudC1sb2NhdGlvbiAuZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnQtbG9jYXRpb24gLmltYWdlLm55YyxcbiAgI2NzLWxhbmRpbmcgLmNzLWVudC1sb2NhdGlvbiAuaW1hZ2UucGFyaXMge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtZW50LWxvY2F0aW9uIC5kZXMtdGV4dCB7XG4gICAgcGFkZGluZzogMjBweCAwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtZW50LWxvY2F0aW9uIC5hZGRyZXNzLW9uZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGU0ZWE7XG4gICAgYm9yZGVyLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtbGFuZGluZyAudWkudmVydGljYWwuc3RyaXBlIHtcbiAgICBwYWRkaW5nOiAxZW0gMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWxhbmRpbmcgLnVpLnZlcnRpY2FsLnN0cmlwZSAuY3MtbWVkaWEtaGVhZGluZyAudWkuaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IDNlbTtcbiAgfVxuICAjY3MtbGFuZGluZyAudWkudmVydGljYWwuc3RyaXBlIC5jcy1tZWRpYS1oZWFkaW5nIHAge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNWVtO1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnRlcnByaXNlLWxvZ28ge1xuICAgIGxlZnQ6IDkwcHg7XG4gICAgdG9wOiAzMHB4O1xuICB9XG4gICNjcy1sYW5kaW5nIC5sb2dvIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQ1cHggNDVweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA0NXB4O1xuICAgIGhlaWdodDogNDVweDtcbiAgfVxuICAjY3MtbGFuZGluZyAjZnJlZS10cmlhbCB7XG4gICAgcGFkZGluZzogNGVtIDBweDtcbiAgfVxuICAjY3MtbGFuZGluZyAjY3MtcHJpY2luZyAuY3MtcHJpY2luZy1oZWFkaW5nIHAge1xuICAgIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbiAgfVxuICAjY3MtbGFuZGluZyAudWkuZml4ZWQubWVudSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1sYW5kaW5nIC5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjY3MtbGFuZGluZyAuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLnRvYy5pdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAjY3MtbGFuZGluZyAubWFzdGhlYWQuc2VnbWVudCB7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgfVxuICAjY3MtbGFuZGluZyAubWFzdGhlYWQgaDEudWkuaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW4tdG9wOiAxLjVlbTtcbiAgfVxuICAjY3MtbGFuZGluZyAubWFzdGhlYWQgaDIge1xuICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmNzLWNvbnRhaW5lci10ZXh0IHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtZW50LXJvdyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtZW50LXJvdyAuaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IC5pbWFnZS13aW5kb3cge1xuICAgIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cgLmltYWdlLXdpbmRvdyAud2luZG93IHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA3cHggIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogN3B4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cgLmltYWdlLXdpbmRvdyAuaW1hZ2Uge1xuICAgIGhlaWdodDogMTgwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtZW50LXJvdyAuZGVzY3JpcHRpb24gLmRlcy10ZXh0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtZW50LXJvdy5jcy1jb2wtaW52ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnQtZmVhdHVyZS00IC5pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwJSBhdXRvO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgfVxufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgcCB7XG4gIGNvbG9yOiAjNjk3NzgyO1xuICBmb250LXdlaWdodDogMTAwO1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMDAwcHggIWltcG9ydGFudDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1tZWRpYS1tb25pdG9yaW5nIC5jcy1tZWRpYS1oZWFkaW5nIGgxLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cbiNjcy1sYW5kaW5nIC5jcy1tZWRpYS1tb25pdG9yaW5nIC5jcy1tZWRpYS1oZWFkaW5nIHAge1xuICB3aWR0aDogNjYlO1xuICBtYXJnaW46IDAgYXV0bztcbn1cbiNjcy1sYW5kaW5nIC5jcy1tZWRpYS1tb25pdG9yaW5nIC5jcy1tZWRpYS1jb2x1bW5zIHtcbiAgbWFyZ2luLXRvcDogMmVtO1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgLmNzLW1lZGlhLWNvbHVtbnMgLmVhY2gtY29sdW1uIHtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgLmNzLW1lZGlhLWNvbHVtbnMgLmVhY2gtY29sdW1uIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgLmNzLW1lZGlhLWNvbHVtbnMgLmVhY2gtY29sdW1uIGgxIGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IDFlbSAxZW07XG4gIG1hcmdpbjogMHB4O1xuICBib3gtc2hhZG93OiAxMnB4IDE1cHggMjBweCAwcHggcmdiYSg0NiwgNjEsIDczLCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgLmNzLW1lZGlhLWNvbHVtbnMgLmVhY2gtY29sdW1uIHAge1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgLmNzLW1lZGlhLWNvbHVtbnMgLmVhY2gtY29sdW1uIC5jb2x1bW4taGVhZCB7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIG1hcmdpbi10b3A6IDJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgLmNzLW1lZGlhLWhlYWRpbmcgcCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cbiNjcy1sYW5kaW5nIC5jcy1tZWRpYS1tb25pdG9yaW5nLmNzLWNvbXBhbnkgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMjAwcHggIWltcG9ydGFudDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1tZWRpYS1tb25pdG9yaW5nLmNzLWNvbXBhbnkuY3MtdmlzdWFsLWFuYWx5dGljcyAudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAyZW07XG59XG4jY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZy5jcy1jb21wYW55LmNzLXZpc3VhbC1hbmFseXRpY3MgLmltYWdlIHtcbiAgaGVpZ2h0OiA0MDBweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcuY3MtY29tcGFueS5jcy12aXN1YWwtYW5hbHl0aWNzIC5pbWFnZS5pbWFnZS0xIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy9jcy1maW5hbmNpYWxzLmpwZycpO1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcuY3MtY29tcGFueS5jcy12aXN1YWwtYW5hbHl0aWNzIC5pbWFnZS5pbWFnZS0yIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy9jcy1wZXJmb3JtYW5jZS5qcGcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZy5jcy1jb21wYW55LmNzLXZpc3VhbC1hbmFseXRpY3MgLnVpLmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogMWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcuY3MtY29tcGFueS5jcy12aXN1YWwtYW5hbHl0aWNzIHAge1xuICAgIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcuY3MtY29tcGFueS5jcy12aXN1YWwtYW5hbHl0aWNzIC5pbWFnZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDIyMHB4O1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiNjcy1leHAtZmVhdHVyZXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmYWZkO1xufVxuI2NzLWV4cC1mZWF0dXJlcyBwIHtcbiAgY29sb3I6ICM2OTc3ODI7XG59XG4jY3MtZXhwLWZlYXR1cmVzIC51aS5ncmlkLmNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTAwMHB4ICFpbXBvcnRhbnQ7XG59XG4jY3MtZXhwLWZlYXR1cmVzIC5jcy1tZWRpYS1jb2x1bW5zIHtcbiAgbWFyZ2luLXRvcDogNjBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWV4cC1mZWF0dXJlcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gICNjcy1leHAtZmVhdHVyZXMgLmNzLW1lZGlhLWNvbHVtbnMge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgfVxuICAjY3MtZXhwLWZlYXR1cmVzIC5laWdodC53aWRlLnJpZ2h0LmZsb2F0ZWQuY29sdW1uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4jY3Mtd29ybGQtYmVzdCBwIHtcbiAgY29sb3I6ICM2OTc3ODI7XG59XG4jY3Mtd29ybGQtYmVzdCAudWkuZ3JpZC5jb250YWluZXIge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuI2NzLXdvcmxkLWJlc3QgLmNzLXdvcmxkLW92ZXJmbG93IHtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuI2NzLXdvcmxkLWJlc3QgLmNzLW1lZGlhLWNvbHVtbnMge1xuICBoZWlnaHQ6IDM5MHB4O1xuICBtaW4td2lkdGg6IDE3MDBweCAhaW1wb3J0YW50O1xufVxuI2NzLXdvcmxkLWJlc3QgLmNzLW1lZGlhLWNvbHVtbnMgLmNvbHVtbiB7XG4gIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbn1cbiNjcy13b3JsZC1iZXN0IC5lYWNoLWNvbHVtbiB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG4gIHBhZGRpbmc6IDIwJSAxMCU7XG4gIGhlaWdodDogMzYwcHg7XG59XG4jY3Mtd29ybGQtYmVzdCAuZWFjaC1jb2x1bW4gLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbiAgaGVpZ2h0OiA2NHB4O1xuICB3aWR0aDogNjRweDtcbiAgYm9yZGVyLXJhZGl1czogNjRweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLXdvcmxkLWJlc3QgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4jY3MtZW50LXJlcXVlc3QtZGVtbyB7XG4gIHBhZGRpbmc6IDExZW0gMHB4ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzk3ZGQ7XG59XG4jY3MtZW50LXJlcXVlc3QtZGVtbyAudWkuaGVhZGVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xufVxuI2NzLXByaWNpbmcgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMzAwcHggIWltcG9ydGFudDtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWhlYWRpbmcgcCB7XG4gIHdpZHRoOiA1MCU7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY2hlY2tib3ggLmNvbG9yLWJsdWUge1xuICBjb2xvcjogIzJDNkE5RTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNoZWNrYm94IC5tb250aGx5IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNoZWNrYm94IC55ZWFybHkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiA2ZW07XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jaGVja2JveCAudWkudG9nZ2xlLmNoZWNrYm94IC5ib3gge1xuICB3aWR0aDogM2VtO1xuICBoZWlnaHQ6IDNlbTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNoZWNrYm94IGxhYmVsOjpiZWZvcmUge1xuICB3aWR0aDogNS4wZW07XG4gIGhlaWdodDogMi41ZW07XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jaGVja2JveCBsYWJlbDo6YWZ0ZXIge1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogMi41ZW07XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jaGVja2JveCAudWkudG9nZ2xlLmNoZWNrYm94IHtcbiAgaGVpZ2h0OiAyLjVlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY2hlY2tib3ggLnNpeHRlZW4ud2lkZS5jb2x1bW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jaGVja2JveCAudWkudG9nZ2xlLmNoZWNrYm94IGlucHV0IHtcbiAgd2lkdGg6IDVlbTtcbiAgaGVpZ2h0OiAyLjVlbTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNoZWNrYm94IC51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCArIGxhYmVsOjphZnRlciB7XG4gIGxlZnQ6IDIuNWVtO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAudWkuc2VnbWVudCB7XG4gIGhlaWdodDogNjU4cHg7XG4gIHBhZGRpbmc6IDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuaGVhZGluZy5mcmVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiYTkyYjtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLmhlYWRpbmcuc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTZiZThlO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuaGVhZGluZy5nb2xkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNlYTlmNTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLmhlYWRpbmcucGxhdGludW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc2OWNjO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuaGVhZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDE3MHB4O1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuaGVhZGluZyBwIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuaGVhZGluZyBoMSxcbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLmhlYWRpbmcgcCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLnByb3BlcnRpZXMge1xuICBwYWRkaW5nOiAyZW07XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5wcm9wZXJ0aWVzIHAge1xuICBmb250LXNpemU6IDEuMmVtICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luOiAwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZGVmZjE7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5jaG9vc2UtYnRuIHtcbiAgcGFkZGluZzogMHB4IDJlbSAyZW0gMmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLmNob29zZS1idG4gYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLmNob29zZS1idG4uZnJlZSBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJhOTJiO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuY2hvb3NlLWJ0bi5zdGFuZGFyZCBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTZiZThlO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuY2hvb3NlLWJ0bi5nb2xkIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZWE5ZjU7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5jaG9vc2UtYnRuLnBsYXRpbnVtIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzY5Y2M7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLnVpLnNlZ21lbnQge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAjY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5jaG9vc2UtYnRuIHtcbiAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jaGVja2JveCAudWkudG9nZ2xlLmNoZWNrYm94IHtcbiAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cbiAgI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY2hlY2tib3ggLnllYXJseSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwcHg7XG4gIH1cbiAgI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY2hlY2tib3ggLm1vbnRobHkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDBweDtcbiAgfVxufVxuI2NzLWNvbnRhY3QtdXMgLnVpLnNlZ21lbnRzIC51aS5zZWdtZW50IHtcbiAgZmxleDogMTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWNvbnRhY3QtdXMgLnVpLnNlZ21lbnRzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuI2NzLWFib3V0LXVzIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcGFkZGluZy1ib3R0b206IDFlbTtcbn1cbiNjcy1hYm91dC11cyAuY3MtYWJvdXQtc3RhdGVtZW50cyB7XG4gIHBhZGRpbmc6IDRlbSAwZW07XG4gIG1heC13aWR0aDogODAwcHggIWltcG9ydGFudDtcbn1cbiNjcy1hYm91dC11cyAuY3MtYWJvdXQtanVtYm90cm9uIC5zaXh0ZWVuLndpZGUuY29sdW1uIHtcbiAgaGVpZ2h0OiA2NTBweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy9hYm91dC1jb3Zlci5qcGcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiNjcy1hYm91dC11cyAuY3MtYWJvdXQtanVtYm90cm9uIC5zaXh0ZWVuLndpZGUuY29sdW1uIC51aS5oZWFkZXIge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDNlbTtcbn1cbiNjcy1hYm91dC11cyAuY3MtYWJvdXQtdGVhbSB7XG4gIGJhY2tncm91bmQ6IGFsaWNlYmx1ZTtcbn1cbiNjcy1hYm91dC11cyAuY3MtYWJvdXQtdGVhbSAudWkudGV4dC5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEyMDBweCAhaW1wb3J0YW50O1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC10ZWFtIC51aS5jYXJkcyB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC10ZWFtIC5jYXJkIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3gtc2hhZG93OiBub25lO1xuICBtYXJnaW4tYm90dG9tOiA0ZW07XG4gIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlLWluO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC10ZWFtIC5jYXJkIGltZyB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbiNjcy1hYm91dC11cyAuY3MtYWJvdXQtdGVhbSAuY2FyZCAubWV0YSB7XG4gIG1hcmdpbjogMWVtO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC10ZWFtIC5jYXJkOmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2UtaW47XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cbiNjcy1hYm91dC11cyAuY3MtYWJvdXQtbG9nb3Mge1xuICBtYXgtd2lkdGg6IDkwMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMWVtIGF1dG8gMmVtO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC1sb2dvcyAuY29sdW1uIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC1sb2dvcyAudWkuaW1hZ2Uge1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1pbjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cbiNjcy1hYm91dC11cyAuY3MtYWJvdXQtbWVtYmVyc2hpcHMge1xuICBtYXgtd2lkdGg6IDYwMHB4ICFpbXBvcnRhbnQ7XG59XG4jY3MtYWJvdXQtdXMgLmNzLWFib3V0LXBhcnRuZXJzIHtcbiAgbWF4LXdpZHRoOiA2MDBweCAhaW1wb3J0YW50O1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC1wYXJ0bmVycyAuZWlnaHQud2lkZS5jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC1wYXJ0bmVycyAudWkuaW1hZ2Uge1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1pbjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cbiNjcy1hYm91dC11cyAuY3MtYWJvdXQtbG9nb3MgLnVpLmltYWdlOmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2UtaW47XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbn1cbiNjcy1hYm91dC11cyBoMS51aS5oZWFkZXIsXG4jY3MtYWJvdXQtdXMgcCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtYWJvdXQtdXMgcCB7XG4gIG1hcmdpbjogMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtYWJvdXQtdXMgLmNzLWFib3V0LWp1bWJvdHJvbiB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1hYm91dC11cyAuY3MtYWJvdXQtanVtYm90cm9uIC5zaXh0ZWVuLndpZGUuY29sdW1uIHtcbiAgICBoZWlnaHQ6IDUwMHB4O1xuICB9XG4gICNjcy1hYm91dC11cyAuY3MtYWJvdXQtanVtYm90cm9uIC51aS5oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwLjVlbSAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1hYm91dC11cyAuY2FyZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEJhbGwgR3JpZCBCZWF0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtZ3JpZC1iZWF0IHtcbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBiYWxsLWdyaWQtYmVhdCB7XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbi5iYWxsLWdyaWQtYmVhdCB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAtNTBweDtcbiAgbWFyZ2luLWxlZnQ6IC01MHB4O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuLmJhbGwtZ3JpZC1iZWF0ID4gZGl2Om50aC1jaGlsZCgxKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC4wN3M7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMDdzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS41M3M7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMS41M3M7XG59XG4uYmFsbC1ncmlkLWJlYXQgPiBkaXY6bnRoLWNoaWxkKDIpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNzJzO1xuICBhbmltYXRpb24tZGVsYXk6IDAuNzJzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC45NHM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC45NHM7XG59XG4uYmFsbC1ncmlkLWJlYXQgPiBkaXY6bnRoLWNoaWxkKDMpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMTFzO1xuICBhbmltYXRpb24tZGVsYXk6IDAuMTFzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS4yNXM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMS4yNXM7XG59XG4uYmFsbC1ncmlkLWJlYXQgPiBkaXY6bnRoLWNoaWxkKDQpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMTNzO1xuICBhbmltYXRpb24tZGVsYXk6IDAuMTNzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS4wMXM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMS4wMXM7XG59XG4uYmFsbC1ncmlkLWJlYXQgPiBkaXY6bnRoLWNoaWxkKDUpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4xcztcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEuMnM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMS4ycztcbn1cbi5iYWxsLWdyaWQtYmVhdCA+IGRpdjpudGgtY2hpbGQoNikge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4xOHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4xOHM7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjk3cztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjk3cztcbn1cbi5iYWxsLWdyaWQtYmVhdCA+IGRpdjpudGgtY2hpbGQoNykge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuMDlzO1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjA5cztcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuNjdzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNjdzO1xufVxuLmJhbGwtZ3JpZC1iZWF0ID4gZGl2Om50aC1jaGlsZCg4KSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjQycztcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjQycztcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuOTJzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuOTJzO1xufVxuLmJhbGwtZ3JpZC1iZWF0ID4gZGl2Om50aC1jaGlsZCg5KSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjUycztcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjUycztcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEuNDNzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDEuNDNzO1xufVxuLmJhbGwtZ3JpZC1iZWF0ID4gZGl2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgd2lkdGg6IDI5JTtcbiAgaGVpZ2h0OiAyOSU7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIG1hcmdpbjogMiU7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYmFsbC1ncmlkLWJlYXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBiYWxsLWdyaWQtYmVhdDtcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwO1xuICBhbmltYXRpb24tZGVsYXk6IDA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgUGFnZSBFbGVtZW50c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1jb21wYW55IC51aS5oZWFkZXIgLmNzLXN5bWJvbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXRvcDogMC4zZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW55IC51aS5oZWFkZXIgLmNzLXN5bWJvbCB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktb3ZlcnZpZXcgLnVpLnN0YWNrYWJsZS5ncmlkIC5zaXh0ZWVuLndpZGUuY29sdW1uLFxuICAjY3MtY29tcGFueSA+IC5zaXh0ZWVuLndpZGUuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG4jY3MtY29tcGFueS1jaGFydC1tb2JpbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1vcHRpb25zLW1vYmlsZSB7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xuICBwYWRkaW5nOiAwLjJlbSAwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE5KTtcbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtb3B0aW9ucy1tb2JpbGUgLnVpLm1lbnUge1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtb3B0aW9ucy1tb2JpbGUgLnVpLm1lbnUgLml0ZW0ge1xuICBtYXJnaW46IDBweDtcbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtbW9iaWxlLmRhcmsgLnkuYXhpcyAudGljayB0ZXh0IHtcbiAgc3Ryb2tlOiB3aGl0ZTtcbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtbW9iaWxlLmRhcmsgLnktZ3JpZCxcbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtbW9iaWxlLmRhcmsgLngtZ3JpZCB7XG4gIHN0cm9rZTogcmdiYSgxMjYsIDEyNywgMTI4LCAwLjM0KTtcbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtbW9iaWxlLmRhcmsgLmxpbmUge1xuICBzdHJva2Utd2lkdGg6IDAuM3B4O1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1tb2JpbGUubGlnaHQgLnktZ3JpZCxcbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtbW9iaWxlLmxpZ2h0IC54LWdyaWQge1xuICBzdHJva2U6IHJnYmEoMjIwLCAyMjAsIDIyMCwgMC41Mik7XG59XG4jY3MtY29tcGFueS1jaGFydC1tb2JpbGUgLmNzLWNoYXJ0LW1vYmlsZS5saWdodCAuYXJlYSB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtbW9iaWxlLnJlZCBsaW5lYXJHcmFkaWVudCBzdG9wIHtcbiAgc3RvcC1jb2xvcjogI2RiMjgyODtcbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtbW9iaWxlLnJlZCAubGluZSB7XG4gIHN0cm9rZTogI2RiMjgyODtcbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtbW9iaWxlLmdyZWVuIGxpbmVhckdyYWRpZW50IHN0b3Age1xuICBzdG9wLWNvbG9yOiAjMjFiYTQ1O1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1tb2JpbGUuZ3JlZW4gLmxpbmUge1xuICBzdHJva2U6ICMyMWJhNDU7XG59XG4jY3MtY29tcGFueS1jaGFydC1tb2JpbGUgLmNzLWNoYXJ0LW1vYmlsZSB7XG4gIG1pbi1oZWlnaHQ6IDEzN3B4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS1jaGFydC1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4jY3MtY29tcGFueS1zdGF0cy1tb2JpbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNvbXBhbnktc3RhdHMtbW9iaWxlIC5jb2x1bW4gLnVpLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtY29tcGFueS1zdGF0cy1tb2JpbGUgI2NzLWNvbXBhbnktcHJpY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cbiNjcy1jb21wYW55LXN0YXRzLW1vYmlsZSAjY3MtY29tcGFueS1wcmljZSAudWkuaGVhZGVyIHtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luOiAwcHg7XG4gIGZvbnQtc2l6ZTogMS43ZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4jY3MtY29tcGFueS1zdGF0cy1tb2JpbGUgI2NzLWNvbXBhbnktcHJpY2UgLnVwZGF0ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAuM2VtIDBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktc3RhdHMtbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuI2NzLWNvbXBhbnktaW5kZXhlcyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IC0wLjNlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuNWVtO1xufVxuI2NzLWNvbXBhbnktaW5kZXhlcyAudWkubGFiZWwge1xuICBtYXJnaW46IDAgMC41ZW0gMC41ZW0gMDtcbiAgcGFkZGluZzogMC41ZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW55LWluZGV4ZXMge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuICB9XG59XG4jY3MtY29tcGFueS1kZWZhdWx0ZXIgLnR5cGUgPiBzcGFuIHtcbiAgd2lkdGg6IDlweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAuNXM7XG59XG4jY3MtY29tcGFueS1kZWZhdWx0ZXIgLnR5cGU6aG92ZXIgPiBzcGFuIHtcbiAgd2lkdGg6IDUxcHg7XG4gIHRyYW5zaXRpb246IHdpZHRoIC41cztcbn1cbiNjcy1jb21wYW55LWRldGFpbCAuY29tcGFueS10aXRsZSA+IGgyIHtcbiAgbWFyZ2luOiAwIDAgMC4yZW0gMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuI2NzLWNvbXBhbnktZGV0YWlsIC5jb21wYW55LXRpdGxlID4gaDIgPiBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4jY3MtY29tcGFueS1kZXRhaWwgLmNvbXBhbnktdHlwZSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuI2NzLWNvbXBhbnktZGV0YWlsIC51aS5zZWdtZW50IHtcbiAgd2lkdGg6IDUwJTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktZGV0YWlsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjcy1jb21wYW55LWRldGFpbCAudWkuaG9yaXpvbnRhbC5zZWdtZW50cyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAjY3MtY29tcGFueS1kZXRhaWwgLnVpLmhvcml6b250YWwuc2VnbWVudHMgLnVpLnNlZ21lbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICNjcy1jb21wYW55LWRldGFpbCAudWkuaG9yaXpvbnRhbC5zZWdtZW50cyAuY3MtY2hhcnQtb3B0aW9ucyAudWkuc2Vjb25kYXJ5Lm1lbnUge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gIH1cbiAgI2NzLWNvbXBhbnktZGV0YWlsIC51aS5ob3Jpem9udGFsLnNlZ21lbnRzIC5jcy1jaGFydC1vcHRpb25zIC5tb2JpbGUtaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuI2NzLWNvbXBhbnktZGV0YWlsLW1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtY29tcGFueS1kZXRhaWwtbW9iaWxlIC51aS5oZWFkZXIge1xuICBmb250LXdlaWdodDogMzAwO1xuICB3aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW55LWRldGFpbC1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4jY3MtY29tcGFueS10YWJzIHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xufVxuI2NzLWNvbXBhbnktdGFicyAuYXR0YWNoZWQge1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy1jb21wYW55LXRhYnMgLnVpLmF0dGFjaGVkLnRpdGxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1jb21wYW55LXRhYnMgPiAudGFiIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4jY3MtY29tcGFueS10YWJzID4gLmF0dGFjaGVkLm1lbnUuZml4ZWQudG9wIHtcbiAgdG9wOiAwcHg7XG4gIGJveC1zaGFkb3c6IDAgN3B4IDIwcHggMCByZ2JhKDQ2LCA2MSwgNzMsIDAuMTUpO1xuICBoZWlnaHQ6IDQ1cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyLjZlbSk7XG4gIGxlZnQ6IDEuMzVlbTtcbiAgei1pbmRleDogMjtcbn1cbiNjcy1jb21wYW55LXRhYnMgPiAudGFiLmZpeGVkIHtcbiAgbWFyZ2luLXRvcDogNDVweDtcbn1cbiNjcy1jb21wYW55LXRhYnMgLmNzLWZvcndhcmQtcGUgLmhlYWRpbmcsXG4jY3MtY29tcGFueS10YWJzIC5jcy1hbmFseXN0LXJlY29tbWVuZCAuaGVhZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbiNjcy1jb21wYW55LXRhYnMgLmNzLWZvcndhcmQtcGUgLmhlYWRpbmcgaDMsXG4jY3MtY29tcGFueS10YWJzIC5jcy1hbmFseXN0LXJlY29tbWVuZCAuaGVhZGluZyBoMyB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWNvbXBhbnktdGFicyAuY3MtZm9yd2FyZC1wZSB0YWJsZSAucGVyaW9kLFxuI2NzLWNvbXBhbnktdGFicyAuY3MtYW5hbHlzdC1yZWNvbW1lbmQgdGFibGUgLnBlcmlvZCB7XG4gIGNvbG9yOiAjYzNjMWMxO1xufVxuI2NzLWNvbXBhbnktdGFicyAuY3MtZm9yd2FyZC1wZSB0YWJsZSAucGFzc2VkLFxuI2NzLWNvbXBhbnktdGFicyAuY3MtYW5hbHlzdC1yZWNvbW1lbmQgdGFibGUgLnBhc3NlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IHJnYmEoMTk1LCAxOTMsIDE5MywgMC42NSk7XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7XG59XG4jY3MtY29tcGFueS10YWJzIC5jcy1mb3J3YXJkLXBlIHRhYmxlIC5wYXNzZWQgdHIgdGQ6Zmlyc3QtY2hpbGQsXG4jY3MtY29tcGFueS10YWJzIC5jcy1hbmFseXN0LXJlY29tbWVuZCB0YWJsZSAucGFzc2VkIHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgd2lkdGg6IDE3MHB4O1xufVxuI2NzLWNvbXBhbnktdGFicyAuY3MtaGlzdG9yeS1yZWNvbW1lbmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jY3MtY29tcGFueS10YWJzIC5jcy1oaXN0b3J5LXJlY29tbWVuZCAucGVyaW9kIHtcbiAgY29sb3I6ICNjM2MxYzE7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cbiNjcy1jb21wYW55LXRhYnMgLmNzLWhpc3RvcnktcmVjb21tZW5kIC5vcGVuLXBkZiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNjcy1jb21wYW55LXRhYnMgLmNzLWhpc3RvcnktcmVjb21tZW5kIC50YWJsZS1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA0NzdweDtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cbiNjcy1jb21wYW55LXRhYnMgLmNzLWhpc3RvcnktcmVjb21tZW5kIC50YWJsZS1maXhlZC1oZWFkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzVweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMXJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktdGFicyAuY3MtaGlzdG9yeS1yZWNvbW1lbmQgLnRhYmxlLWNvbnRhaW5lciAudWkudGFibGUge1xuICAgIG1pbi13aWR0aDogMTAwMHB4O1xuICB9XG4gICNjcy1jb21wYW55LXRhYnMgLmNzLWhpc3RvcnktcmVjb21tZW5kIC50YWJsZS1maXhlZC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiNjcy1jb21wYW55LXRhYnMgLmNzLWFuYWx5c3QtcmVzZWFyY2gge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNvbXBhbnktdGFicyAudWkudGFiW2RhdGEtdGFiPVwicmVzZWFyY2hcIl0gLnVpLnBvcHVwIHtcbiAgd2lkdGg6IDE1MHB4ICFpbXBvcnRhbnQ7XG59XG4jY3MtY29tcGFueS10YWJzIC50YWJbZGF0YS10YWI9XCJwZXJmb3JtYW5jZVwiXSAudGl0bGUtY2VsbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktdGFicyAuY29udGVudCB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG4gICNjcy1jb21wYW55LXRhYnMgPiAuYXR0YWNoZWQubWVudSB7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICB9XG4gICNjcy1jb21wYW55LXRhYnMgPiAuYXR0YWNoZWQubWVudSAuaXRlbTpiZWZvcmUsXG4gICNjcy1jb21wYW55LXRhYnMgPiAuYXR0YWNoZWQubWVudSAuaXRlbTphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjY3MtY29tcGFueS10YWJzID4gLmF0dGFjaGVkLm1lbnUgLml0ZW0ge1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWNvbXBhbnktdGFicyA+IC5hdHRhY2hlZC5tZW51IC5pdGVtLmFjdGl2ZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM3MDcxNzU7XG4gIH1cbiAgI2NzLWNvbXBhbnktdGFicyAudGFiW2RhdGEtdGFiPVwicGVyZm9ybWFuY2VcIl0sXG4gICNjcy1jb21wYW55LXRhYnMgLnRhYltkYXRhLXRhYj1cImZpbmFuY2lhbHNcIl0ge1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxuICAjY3MtY29tcGFueS10YWJzIC51aS50YWJbZGF0YS10YWI9XCJyZXNlYXJjaFwiXSAuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG4jY3MtYW5hbHlzdC1wcmljZS1jaGFydCAuYmcge1xuICBzdHJva2U6ICNmZmZmZmY7XG4gIGZpbGw6ICNmZmZmZmY7XG59XG4jY3MtYW5hbHlzdC1wcmljZS1jaGFydCAubGluZSB7XG4gIHN0cm9rZS13aWR0aDogMnB4O1xufVxuI2NzLWFuYWx5c3QtcHJpY2UtY2hhcnQgLngtZ3JpZCB7XG4gIHN0cm9rZTogI2ZmZjtcbn1cbiNjcy1hbmFseXN0LXByaWNlLWNoYXJ0IC50YXJnZXQge1xuICBzdHJva2UtZGFzaGFycmF5OiA1O1xuICBzdHJva2Utd2lkdGg6IDJweDtcbiAgc3Ryb2tlOiAjOWVhN2FlO1xufVxuI2NzLWFuYWx5c3QtcHJpY2UtY2hhcnQgY2lyY2xlIHtcbiAgZmlsbDogIzlhOWE5YTtcbn1cbiNjcy1hbmFseXN0LXByaWNlLWNoYXJ0LnRhcmdldC1wcmljZS1jaGFydCAubGluZSB7XG4gIHN0cm9rZTogI2E5YTlhOTtcbn1cbiNjcy1hbmFseXN0LXByaWNlLWNoYXJ0LnRhcmdldC1wcmljZS1jaGFydCAuYXJlYSB7XG4gIGZpbGw6IG5vbmUgIWltcG9ydGFudDtcbn1cbiNjcy1vdmVydmlldy1wcm9maWxlIC5zaXh0ZWVuLndpZGUuY29sdW1uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1vdmVydmlldy1wcm9maWxlIC5laWdodC53aWRlLmNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4jY3Mtb3ZlcnZpZXctcHJvZmlsZSAuZWlnaHQud2lkZS5jb2x1bW4gLnVpLmRlZmluaXRpb24udW5zdGFja2FibGUudGFibGUge1xuICBtYXJnaW4tdG9wOiAyZW07XG59XG4jY3MtY29tcGFueS1wcmljZSBoMSB7XG4gIGZvbnQtc2l6ZTogMi4yZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2NzLWNvbXBhbnktcHJpY2UgaDIuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMC4yZW07XG59XG4jY3MtY29tcGFueS1wcmljZSAudWkuaGVhZGVyID4gLmljb24ge1xuICBmb250LXNpemU6IDAuOWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuI2NzLWNvbXBhbnktcHJpY2UgLnVpLmhlYWRlciA+IC5pY29uICsgLmNvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4jY3MtY29tcGFueS1wcmljZSAudWkuaGVhZGVyLmNvbXBhbnktcHJpY2UtdmFsdWUgc3Bhbi5ncmVlbiB7XG4gIGNvbG9yOiAjMjFiYTQ1IWltcG9ydGFudDtcbn1cbiNjcy1jb21wYW55LXByaWNlIC51aS5oZWFkZXIuY29tcGFueS1wcmljZS12YWx1ZSBzcGFuLnJlZCB7XG4gIGNvbG9yOiAjZGIyODI4IWltcG9ydGFudDtcbn1cbiNjcy1jb21wYW55LXByaWNlIGgyLmhlYWRlciBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjZlbTtcbn1cbiNjcy1jb21wYW55LXByaWNlIC51cGRhdGUge1xuICBjb2xvcjogIzc2NzY3NjtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbiNjcy1jb21wYW55LXN0YXRzIHtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogOTVweDtcbn1cbiNjcy1jb21wYW55LXN0YXRzIC51aS5zdGF0aXN0aWNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbiNjcy1jb21wYW55LXN0YXRzIC51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtYXJnaW4tYm90dG9tOiAwLjllbTtcbiAgbWFyZ2luOiAwIDAgMWVtIDEuNGVtO1xufVxuI2NzLWNvbXBhbnktc3RhdHMgLnVpLmhvcml6b250YWwuc2VnbWVudCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbiNjcy1jb21wYW55LXByb2ZpbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAwLjE0ZW07XG59XG4jY3MtY29tcGFueS1yZWNvbW1lbmQgLnVpLmFjY29yZGlvbiAudGl0bGUgLnVpLmxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjdlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXRvcDogLTFweDtcbn1cbiNjcy1jb21wYW55LXJlY29tbWVuZCAudWkuYWNjb3JkaW9uIC50aXRsZSAuZHJvcGRvd24uaWNvbiB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4jY3MtY29tcGFueS1yZWNvbW1lbmQgLnVpLmFjY29yZGlvbiAudGl0bGUgLnRleHQge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuI2NzLWNvbXBhbnkgLmNzLXJhbmdlLXNjYWxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuLmNzLWZpbmFuY2lhbHMtYnV0dG9ucyB7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uY3MtZmluYW5jaWFscy1idXR0b25zIC5jcy1maW5hbmNpYWxzLWRvd25sb2FkIHtcbiAgZmxleDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC5jcy10YWJsZS1maXhlZC1oZWFkZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNDVweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDhlbSk7XG4gIHotaW5kZXg6IDE7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC5jcy10YWJsZS1jb250YWluZXIuZml4ZWQtaGVhZGVyIC5jcy10YWJsZS1maXhlZC1oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLnVpLmRlZmluaXRpb24udGFibGUge1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkOm5vdCguZnVsbC13aWR0aCkgdGg6bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkIHRoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDEuMmVtO1xuICBsaW5lLWhlaWdodDogMS4zZW07XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGNvbG9yOiAjMmM2YTllO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZCB0aDpob3ZlciAueWVhciAucGVyaW9kIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLnVpLmRlZmluaXRpb24udGFibGUgdGhlYWQgdGgueWVhciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZCB0aCAueWVhciAucGVyaW9kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC00MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycztcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi13aWR0aDogMjgwcHg7XG4gIHJpZ2h0OiAtMTAwcHg7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkIHRoIC55ZWFyLnF1YXJ0ZXJseSAucGVyaW9kIHtcbiAgbWluLXdpZHRoOiAxMDBweDtcbiAgcmlnaHQ6IC0xMHB4O1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZCB0aCAueWVhciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICMyQzZBOUU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZCB0aCAueWVhciAucXVhcnRlciB7XG4gIGNvbG9yOiAjNzM3MTc2O1xuICBtYXJnaW4tYm90dG9tOiAwLjFlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMjtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLnVpLmRlZmluaXRpb24udGFibGUgdGhlYWQgdGggLnllYXIgLnllYXItZW5kLWRhdGUge1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZCB0aCAueWVhciAuY3Mtb3Blbi1yZXBvcnQge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTAuNWVtO1xuICB6LWluZGV4OiAxO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZCB0aCAueWVhciAuY3Mtb3Blbi1yZXBvcnQgaSB7XG4gIG1hcmdpbjogMHB4O1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0ciB0ZDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLnVpLmRlZmluaXRpb24udGFibGUgdHIuaGVhZGVyLXJvdyB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0cjpub3QoLmhlYWRlci1yb3cpIHRkIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLnVpLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIGZvbnQtc2l6ZTogMS40ZW07XG4gIGNvbG9yOiAjMkM2QTlFO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLnVpLmRlZmluaXRpb24udGFibGUgLnRyZW5kIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSAuY2hhbmdlLnJlZCB7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSAuY2hhbmdlLmdyZWVuIHtcbiAgY29sb3I6ICMyMUJBNDU7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIC52YWx1ZS0taGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1jb21wYW55LXJldHVybnMgdGFibGUge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4jY3MtY29tcGFueS1yZXR1cm5zIHRoIHtcbiAgcGFkZGluZzogMC41ZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjJlbTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY29sb3I6IGdyZXk7XG59XG4jY3MtY29tcGFueS1yZXR1cm5zIC50aXRsZS1oZWFkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNvbXBhbnktcmV0dXJucyAuY2VsbCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZmZmO1xuICB3aWR0aDogMTUlO1xufVxuI2NzLWNvbXBhbnktcmV0dXJucyAuY2VsbC5yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4O1xufVxuI2NzLWNvbXBhbnktcmV0dXJucyAuY2VsbC5ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDU7XG59XG4jY3MtY29tcGFueS1yZXR1cm5zIC5jcy10aW1lLWZyYW1lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktcmV0dXJucyB7XG4gICAgcGFkZGluZzogMC41ZW0gMCAxLjVlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICAgIGJvcmRlci13aWR0aDogMXB4IDAgMXB4IDA7XG4gIH1cbiAgI2NzLWNvbXBhbnktcmV0dXJucyAudGl0bGUtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAjY3MtY29tcGFueS1yZXR1cm5zIC50aXRsZS1jZWxsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjcy1jb21wYW55LXJldHVybnMgLmNlbGwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAjY3MtY29tcGFueS1yZXR1cm5zIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjcy1jb21wYW55LXJldHVybnMgLmNzLXRpbWUtZnJhbWUge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxufVxuI2NzLWNvbXBhbnktb3ZlcnZpZXcgLmNzLWZpbmFuY2lhbC10YWJsZSB0aGVhZCB0aCxcbi51aS50YWJbZGF0YS10YWI9XCJ0ZWNobmljYWxcIl0gLmNzLWZpbmFuY2lhbC10YWJsZSB0aGVhZCB0aCB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHBhZGRpbmctdG9wOiAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbiNjcy1jb21wYW55LW92ZXJ2aWV3IC5jcy1maW5hbmNpYWwtdGFibGUgLmZpZWxkLFxuLnVpLnRhYltkYXRhLXRhYj1cInRlY2huaWNhbFwiXSAuY3MtZmluYW5jaWFsLXRhYmxlIC5maWVsZCB7XG4gIHdpZHRoOiAyMDBweDtcbn1cbiNjcy1jb21wYW55LW92ZXJ2aWV3IC5jcy1maW5hbmNpYWwtdGFibGUgdGQsXG4udWkudGFiW2RhdGEtdGFiPVwidGVjaG5pY2FsXCJdIC5jcy1maW5hbmNpYWwtdGFibGUgdGQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbiNjcy1jb21wYW55LWZ1bmRhbWVudGFscyAudGl0bGUtY2VsbCB7XG4gIHdpZHRoOiAyMjVweDtcbn1cbiNjcy1jb21wYW55LWZ1bmRhbWVudGFscyAucmFuZ2UtY2VsbCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEzMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jY3MtY29tcGFueS1mdW5kYW1lbnRhbHMgLnJhbmdlLWNlbGwgLmNzLXJhbmdlLXNjYWxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMTBweCAwO1xufVxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC5yYW5nZS1jZWxsIC5jcy1yYW5nZS1zY2FsZSAuYmFyLFxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC5yYW5nZS1jZWxsIC5jcy1yYW5nZS1zY2FsZSAuYmFyIC5wb2ludCB7XG4gIGhlaWdodDogMTBweDtcbn1cbiNjcy1jb21wYW55LWZ1bmRhbWVudGFscyAucmFuZ2UtY2VsbCAuY3MtcmFuZ2Utc2NhbGUgLmJhciAuY2FyZXQge1xuICBib3R0b206IC03cHg7XG4gIG1hcmdpbi1sZWZ0OiAtOXB4O1xuICBmb250LXNpemU6IDEuNmVtO1xufVxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC5zYXBlcmF0b3Ige1xuICB3aWR0aDogMzBweDtcbn1cbiNjcy1jb21wYW55LWZ1bmRhbWVudGFscyAubWp4LWNodG1sLFxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC5NSlhjLWRpc3BsYXkge1xuICBmb250LXNpemU6IDAuOGVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG4jY3MtY29tcGFueS1mdW5kYW1lbnRhbHMgLmNzLWluZm8udWkucG9wdXAge1xuICBwYWRkaW5nLXJpZ2h0OiAxLjhlbTtcbiAgbWF4LXdpZHRoOiBpbml0aWFsO1xufVxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC5jcy1pbmZvLnVpLnBvcHVwIC5jb250ZW50IHtcbiAgbWF4LXdpZHRoOiAyODBweDtcbn1cbiNjcy1jb21wYW55LWZ1bmRhbWVudGFscyAuY3MtdmVyc3VzLWluZm8udWkucG9wdXAge1xuICBmb250LXNpemU6IDAuOWVtO1xuICB3aWR0aDogMjAwcHg7XG59XG4jY3MtY29tcGFueS1mdW5kYW1lbnRhbHMgLmNzLXZlcnN1cy1pbmZvLnVpLnBvcHVwIC5oZWFkZXIge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbiNjcy1jb21wYW55LWZ1bmRhbWVudGFscyAuY3MtdmVyc3VzLWluZm8udWkucG9wdXAgLmNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDAuNGVtIDAuNmVtIDAuMmVtO1xuICBtYXJnaW4tdG9wOiAwLjNlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIHtcbiAgICB3aWR0aDogMTAwMHB4O1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gIH1cbiAgI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC51aS50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMC4yZW0gMC40ZW07XG4gIH1cbiAgI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC50aXRsZS1jZWxsIHtcbiAgICB3aWR0aDogMTI0cHg7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgIEZ1bmRhbWVudGFscyBNZWRpYW4gUmFuZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3MtbWVkaWFuLXJhbmdlIC50ZXh0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNzLW1lZGlhbi1yYW5nZSAudGV4dCA+IGRpdiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5jcy1tZWRpYW4tcmFuZ2UgLnRleHQgLm1pbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmNzLW1lZGlhbi1yYW5nZSAudGV4dCAubWF4IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5jcy1tZWRpYW4tcmFuZ2UgLnRleHQgLm51bSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLmNzLW1lZGlhbi1yYW5nZSAubGluZSB7XG4gIG1hcmdpbjogMTBweCAwIDVweCAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNjY2M7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY3MtbWVkaWFuLXJhbmdlIC5saW5lID4gZGl2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2NjYztcbiAgdG9wOiAtNnB4O1xufVxuLmNzLW1lZGlhbi1yYW5nZSAubGluZSAuY2lyY2xlIHtcbiAgd2lkdGg6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogIzc2NzY3NjtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTVweDtcbn1cbi5jcy1tZWRpYW4tcmFuZ2UgLmxpbmUgLm1pbiB7XG4gIGxlZnQ6IDA7XG59XG4uY3MtbWVkaWFuLXJhbmdlIC5saW5lIC5tYXgge1xuICByaWdodDogMDtcbn1cbi5jcy1tZWRpYW4tcmFuZ2UgLmxpbmUgLm1lZGlhbiB7XG4gIGxlZnQ6IDUwJTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgRnVuZGFtZW50YWxzIFJvdyBNZXRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1yb3ctYmFyIHtcbiAgd2lkdGg6IDMycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG59XG4uY3Mtcm93LWJhciAuYmFyIHtcbiAgaGVpZ2h0OiAxNHB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBORVdTTEVUVEVSXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLWhvbWUtbmV3c2xldHRlciB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuI2NzLWhvbWUtbmV3c2xldHRlciAudWkubWVudSB7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbiNjcy1ob21lLW5ld3NsZXR0ZXIgLnVpLmZvcm0ge1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBDb21wYW55IENoYXJ0IE9wdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3MtY2hhcnQtb3B0aW9ucyAudWkuc2Vjb25kYXJ5Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogIzJDNkE5RSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuI2NzLWNvbXBhbnktYW5ub3VuY2VtZW50cyAuZGF0ZS1jZWxsIHtcbiAgd2lkdGg6IDEyMHB4O1xufVxuI2NzLWNvbXBhbnktYW5ub3VuY2VtZW50cyAuY29tcGFueV9fc2VsZWN0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1jb21wYW55LWFubm91bmNlbWVudHMgLmFubm91bmNlX19kYXRlX19jYWxlbmRlclZpZXcge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNvbXBhbnktYW5ub3VuY2VtZW50cyAjYW5ub3VuY2UtY2FsZW5kYXIge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW55LWFubm91bmNlbWVudHMge1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxuICAjY3MtY29tcGFueS1hbm5vdW5jZW1lbnRzIC51aS50YWJsZSB7XG4gICAgd2lkdGg6IDY1MHB4O1xuICB9XG4gICNjcy1jb21wYW55LWFubm91bmNlbWVudHMgLnVpLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAwLjJlbSAwLjRlbTtcbiAgfVxuICAjY3MtY29tcGFueS1hbm5vdW5jZW1lbnRzIC5hbm5vdW5jZV9fZmlsdGVycyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBwYWRkaW5nOiAwcHg7XG4gIH1cbn1cbi5jcy1maW5hbmNpYWxzLW92ZXJ2aWV3LWJ1dHRvbnMge1xuICBmbG9hdDogcmlnaHQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNzLWZpbmFuY2lhbHMtb3ZlcnZpZXctYnV0dG9ucyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbiNvdXRlckNvbnRhaW5lciAjbWFpbkNvbnRhaW5lciBkaXYudG9vbGJhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgLyogaGlkZSBQREYgdmlld2VyIHRvb2xiYXIgKi9cbn1cbiNvdXRlckNvbnRhaW5lciAjbWFpbkNvbnRhaW5lciAjdmlld2VyQ29udGFpbmVyIHtcbiAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gIC8qIG1vdmUgZG9jIHVwIGludG8gZW1wdHkgYmFyIHNwYWNlICovXG59XG4jY3MtY29tcGFueS1maW5hbmNpYWxzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2NzLWNvbXBhbnktZmluYW5jaWFscyAuZmlzY2FsLXllYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMWVtO1xuICBmb250LXNpemU6IDEuM2VtO1xuICByaWdodDogMWVtO1xuICBjb2xvcjogI2E0YTRhNDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktZmluYW5jaWFscyAuZmlzY2FsLXllYXIge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luOiAxZW0gMC43ZW0gMGVtO1xuICB9XG59XG4jY3MtdGFyZ2V0LWVwcy1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMXB4O1xuICByaWdodDogMi41ZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy10YXJnZXQtZXBzLW1lbnUge1xuICAgIHJpZ2h0OiAwcHg7XG4gIH1cbn1cbiNjcy1waXZvdC1wb2ludHMgdGFibGUgdGJvZHkgdGQge1xuICBwYWRkaW5nOiAwLjk5ZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1lcXVpdHktcHJvZmlsZSB0YWJsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gICNjcy1lcXVpdHktcHJvZmlsZSB0YWJsZSB0aGVhZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgfVxuICAjY3MtZXF1aXR5LXByb2ZpbGUgdGFibGUgdGhlYWQgdGgge1xuICAgIHBhZGRpbmc6IDFlbSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWVxdWl0eS1wcm9maWxlIHRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWVxdWl0eS1wcm9maWxlIHRhYmxlIHRoZWFkIHRoOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWVxdWl0eS1wcm9maWxlIHRhYmxlIHRib2R5IHRkIHtcbiAgICBwYWRkaW5nOiAxZW0gIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMiAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1lcXVpdHktcHJvZmlsZSB0YWJsZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1lcXVpdHktcHJvZmlsZSB0YWJsZSB0Ym9keSB0ZDpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4jY3MtY29tcGFueS1pbnNpZGVyIC5pbnNpZGVyLXRhYmxlIHRhYmxlIHRoIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS1pbnNpZGVyIC5pbnNpZGVyLXRhYmxlIHtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIH1cbiAgI2NzLWNvbXBhbnktaW5zaWRlciAuaW5zaWRlci10YWJsZSB0YWJsZSB7XG4gICAgbWluLXdpZHRoOiAxMDMwcHg7XG4gIH1cbn1cbiNjcy1jb21wYW55LWluc2lkZXItaGVhZGVyIHtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUyZTI7XG59XG4jY3MtY29tcGFueS1pbnNpZGVyLWhlYWRlciBpIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4jY3MtY29tcGFueS1pbnNpZGVyLWhlYWRlciAuZ3JlZW4ge1xuICBjb2xvcjogIzI1QkE0NTtcbn1cbiNjcy1jb21wYW55LWluc2lkZXItaGVhZGVyIC5yZWQge1xuICBjb2xvcjogI0RCMjgzMDtcbn1cbiNjcy1jb21wYW55LWluc2lkZXItaGVhZGVyIC5hbW91bnQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM3Q0IzNDI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW55LWluc2lkZXItaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBtaW4taGVpZ2h0OiA5MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuI2NzLWNvbXBhbnktcGF5b3V0IC51aS5zZWdtZW50IHtcbiAgcGFkZGluZzogMHB4O1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC5jcy1wYXlvdXQtbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC5jcy1wYXlvdXQtbmF2IC51aS5tZW51IHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC1uYXYgLnVpLmRyb3Bkb3duIHtcbiAgd2lkdGg6IDQ1MHB4O1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC5kaXNhYmxlZC1jZWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMjtcbiAgY29sb3I6ICNhMGEwYTA7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmRhbmdlci1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1ODU4O1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC51cGNvbWluZy1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2I1YTgxO1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC5sZWdlbmRzLXZhbHVlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luOiAwIDAgMWVtO1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC5sZWdlbmRzLXZhbHVlcyBoMSB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC51aS5zZWNvbmRhcnkubWVudSAuaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjNWE4OGI1O1xuICBjb2xvcjogd2hpdGU7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC10YWJsZSB0Ym9keSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG1heC1oZWlnaHQ6IDQwMHB4O1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC5jcy1wYXlvdXQtdGFibGUgdGJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogN3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjOGNjO1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC5jcy1wYXlvdXQtdGFibGUgdGJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC10YWJsZSB0ciB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC10YWJsZSB0ciB0ZCxcbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LXRhYmxlIHRyIHRoIHtcbiAgZmxleDogMTtcbn1cbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LXRhYmxlIHRoZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0YzhjYztcbn1cbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LXRhYmxlIHRoZWFkIHRyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDdweCk7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC10YWJsZSAuaW1hZ2UtaWNvbiB7XG4gIGNvbG9yOiAjMmM2YTllO1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC5jcy1wYXlvdXQtdGFibGUgLnBkZi1pY29uIHtcbiAgY29sb3I6ICNkZjQxNDI7XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC1jaGFydC13cmFwcGVyIHtcbiAgbWluLWhlaWdodDogMjUwcHg7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC10YWJsZXMtd3JhcHBlci5sb2FkaW5nOjpiZWZvcmUsXG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC1jaGFydC13cmFwcGVyLmxvYWRpbmc6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LWNoYXJ0LXdyYXBwZXIge1xuICAgIG1pbi1oZWlnaHQ6IDEzMHB4O1xuICB9XG4gICNjcy1jb21wYW55LXBheW91dCA+IC51aS5ncmlkIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbiAgI2NzLWNvbXBhbnktcGF5b3V0IC5jcy1wYXlvdXQtdGFibGUge1xuICAgIHdpZHRoOiA4MDBweDtcbiAgfVxuICAjY3MtY29tcGFueS1wYXlvdXQgI2NzLXBheW91dC1oaXN0b3JpY2FsLWNhc2gsXG4gICNjcy1jb21wYW55LXBheW91dCAjY3MtcGF5b3V0LWhpc3RvcmljYWwtb3RoZXJzIHtcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICB9XG59XG4jY3MtcGF5b3V0LXRyZW5kIC5wYXlvdXRfX3RyZW5kcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbiNjcy1wYXlvdXQtdHJlbmQgLnBheW91dF9fdHJlbmRzID4gZGl2IHtcbiAgZmxleDogMCAwIDMyJTtcbn1cbiNjcy1wYXlvdXQtdHJlbmQgLnBheW91dF9fdHJlbmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1MzgzYjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUzODNiMjtcbiAgY29sb3I6IHdoaXRlO1xufVxuI2NzLXBheW91dC10cmVuZCAucGF5b3V0X190cmVuZFRpdGxlIHtcbiAgZm9udC1zaXplOiAwLjk1ZW07XG59XG4jY3MtcGF5b3V0LXRyZW5kIC5wYXlvdXRfX3RyZW5kU3RhdCB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luOiAwLjI1ZW0gMDtcbiAgY29sb3I6ICNkY2VlZmY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1wYXlvdXQtdHJlbmQgLnBheW91dF9fdHJlbmRTdGF0IHtcbiAgICBmb250LXNpemU6IDEuOGVtO1xuICB9XG59XG4jY3MtcGF5b3V0LXRyZW5kLWhlYWRlciAudWkuaGVhZGVyIHtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUyZTI7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbiNjcy1wYXlvdXQtdHJlbmQtaGVhZGVyIC5hbW91bnQge1xuICBjb2xvcjogIzI1QkE0NTtcbn1cbi5jcy1wYXlvdXQtdG9wLXNlY3Rpb24tLWZpeGVkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIGxlZnQ6IC05OTk5cHg7XG4gIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMmVtKTtcbn1cbiNjcy1jb21wYW55LXBheW91dC1jaGFydCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS1wYXlvdXQtY2hhcnQge1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMmVtKTtcbiAgfVxufVxuLmNzX19jb21wYW55X19zdWJIZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBTRUNUT1JTIE9WRVJWSUVXIFBBR0VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4jY3Mtc2VjdG9ycyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi10b3A6IDk2cHg7XG4gIGJhY2tncm91bmQ6ICMyQzZBOUU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBtaW4taGVpZ2h0OiA2NTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzJDNkE5RTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXNlY3RvcnMge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3Mtc2VjdG9ycy5jcy1zZWN0b3ItdmlldyAjY3Mtc2VjdG9ycy1oZWFkZXIgLnVpLmRpdmlkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgI2NzLXNlY3RvcnMuY3Mtc2VjdG9yLXZpZXcgI2NzLXNlY3RvcnMtaGVhZGVyIC5sYXN0LXVwZGF0ZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbiAgI2NzLXNlY3RvcnMuY3Mtc2VjdG9yLXZpZXcgI2NzLXNlY3RvcnMtaGVhZGVyIC52YWx1ZS10ZXh0IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gICNjcy1zZWN0b3JzLmNzLXNlY3Rvci12aWV3ICNjcy1zZWN0b3JzLWdyaWQgLmNlbGwuY29tcGFuaWVzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLXNlY3RvcnMuY3Mtc2VjdG9yLXZpZXcgI2NzLXNlY3RvcnMtZ3JpZCAuY2VsbC5zZWN0b3Ige1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAjY3Mtc2VjdG9ycy5jcy1zZWN0b3ItdmlldyAjY3Mtc2VjdG9ycy1ncmlkIC5jZWxsLnNlY3RvciAudGV4dCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG4gICNjcy1zZWN0b3JzLmNzLXNlY3Rvci12aWV3ICNjcy1zZWN0b3JzLWdyaWQgLmNlbGwubWFya2V0LWNhcCB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1zZWN0b3JzLmNzLXNlY3Rvci12aWV3ICNjcy1zZWN0b3JzLWdyaWQgLmNlbGwuY2hhbmdlIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiNjcy1zZWN0b3JzLmNzLWNvbXBhbmllcy12aWV3IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXNlY3RvcnMuY3MtY29tcGFuaWVzLXZpZXcgI2NzLXNlY3RvcnMtaGVhZGVyLFxuICAjY3Mtc2VjdG9ycy5jcy1jb21wYW5pZXMtdmlldyAjY3MtY29tcGFuaWVzLWdyaWQuY3MtZ3JpZCB7XG4gICAgd2lkdGg6IDEzNTBweCAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1zZWN0b3JzLmNzLWNvbXBhbmllcy12aWV3ICNjcy1jb21wYW5pZXMtZ3JpZCAuaGVhZCxcbiAgI2NzLXNlY3RvcnMuY3MtY29tcGFuaWVzLXZpZXcgI2NzLWNvbXBhbmllcy1ncmlkIC5ib2R5IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4jY3Mtc2VjdG9ycyAudWkuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0O1xufVxuI2NzLXNlY3RvcnMgPiAudWkuY29udGFpbmVyID4gLnVpLnNlZ21lbnQuYmFzaWMge1xuICBwYWRkaW5nOiAwO1xufVxuI2NzLXNlY3RvcnMtaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjhzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbiAgYmFja2dyb3VuZDogIzJDNkE5RTtcbiAgcGFkZGluZzogMWVtIDAgMDtcbiAgdG9wOiA5NnB4O1xufVxuI2NzLXNlY3RvcnMtaGVhZGVyIC51aS5oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy1zZWN0b3JzLWhlYWRlciAudGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxNmVtO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbWFyZ2luLWJvdHRvbTogLTdweDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG4jY3Mtc2VjdG9ycy1oZWFkZXIgLmluZGljYXRvciB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAwLjdlbTtcbiAgbWFyZ2luLXJpZ2h0OiAyZW07XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cbiNjcy1zZWN0b3JzLWhlYWRlciAuYmFjayB7XG4gIGNvbG9yOiAjZmZmO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIG9wYWNpdHk6IDAuODtcbn1cbiNjcy1zZWN0b3JzLWhlYWRlciAuYmFjazpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4jY3Mtc2VjdG9ycy1oZWFkZXIgLmxhc3QtdXBkYXRlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDAuNWVtO1xuICBtYXJnaW4tdG9wOiAwLjZlbTtcbn1cbiNjcy1zZWN0b3JzLWhlYWRlciAudmFsdWUtdGV4dCB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAwLjVlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBtYXJnaW4tdG9wOiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXNlY3RvcnMtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDYycHg7XG4gIH1cbn1cbiNjcy1zZWN0b3JzLWhlYWRlciAudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjhlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFNFQ1RPUlMgR1JJRFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1ncmlkIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC44cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDk0cHg7XG59XG4uY3MtZ3JpZCAuaGVhZCB7XG4gIGhlaWdodDogNDJweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiAxODRweDtcbiAgYmFja2dyb3VuZDogIzJDNkE5RTtcbiAgei1pbmRleDogMTE7XG59XG4uY3MtZ3JpZCAuYm9keSB7XG4gIGhlaWdodDogMTAwcHg7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgcGFkZGluZy10b3A6IDM4cHg7XG59XG4uY3MtZ3JpZCAucm93IHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDFzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uY3MtZ3JpZCAuY2VsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDIuMmVtO1xuICBmb250LXNpemU6IDEuMWVtO1xuICB3aWR0aDogOCU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsb2F0OiBsZWZ0O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5jcy1ncmlkIC5jZWxsIC50ZXh0IHtcbiAgcGFkZGluZzogMCA0cHggMDtcbn1cbi5jcy1ncmlkIC5oZWFkIC5jZWxsIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgbGluZS1oZWlnaHQ6IDEuNWVtO1xufVxuLmNzLWdyaWQgLmhlYWQgLmNlbGwgLnN1YnRleHQge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogI2NkY2RjZDtcbn1cbi5jcy1ncmlkIC5ibGluay1tZSB7XG4gIGFuaW1hdGlvbjogYmxpbmtlciAxLjVzIGxpbmVhciBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgYmxpbmtlciB7XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4wO1xuICB9XG59XG4uY3MtZ3JpZCAuaGVhZCAuY2VsbC5zZWN0b3IsXG4uY3MtZ3JpZCAuYm9keSAuY2VsbC5zZWN0b3Ige1xuICB3aWR0aDogMjQlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmNzLWdyaWQgLmJvZHkgLmNlbGwgLnRleHQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMkM2QTlFO1xuICBib3JkZXItd2lkdGg6IDAgMnB4IDAgMDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG4uY3MtZ3JpZCAuYm9keSAuY2VsbC5zZWN0b3Ige1xuICBvcGFjaXR5OiAwLjg7XG59XG4uY3MtZ3JpZCAuYm9keSAucm93OmhvdmVyIC5jZWxsLnNlY3RvciB7XG4gIGJhY2tncm91bmQ6ICMyMjVBOEE7XG4gIG9wYWNpdHk6IDE7XG59XG4uY3MtZ3JpZCAuaGVhZCAuY2VsbC5jaGFuZ2UsXG4uY3MtZ3JpZCAuYm9keSAuY2VsbC5jaGFuZ2Uge1xuICB3aWR0aDogNiU7XG59XG4uY3MtZ3JpZCAuYm9keSAuY2VsbC5jb21wYW5pZXMge1xuICB3aWR0aDogNjElO1xuICBtYXJnaW4tbGVmdDogMSU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xufVxuLmNzLWdyaWQgLmJvZHkgLmNlbGwuY29tcGFuaWVzIC5jb21wYW55IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDAuODtcbn1cbi5jcy1ncmlkIC5ib2R5IC5jZWxsLmNvbXBhbmllcyAuY29tcGFueSAudGV4dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uY3MtZ3JpZCAuYm9keSAuY2VsbC5jb21wYW5pZXMgLmNvbXBhbnk6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY3MtZ3JpZCB7XG4gICAgbWFyZ2luLXRvcDogNzBweDtcbiAgfVxuICAuY3MtZ3JpZCAuaGVhZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMHB4O1xuICB9XG59XG4jY3MtY29tcGFuaWVzLWdyaWQgLnNlY3Rvci5jZWxsIHtcbiAgd2lkdGg6IDIwJTtcbn1cbiNjcy1jb21wYW5pZXMtZ3JpZCAuc2VjdG9yLmNlbGwgLnRleHQge1xuICB3aWR0aDogOTglO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbiNjcy1jb21wYW5pZXMtZ3JpZCAuaGVhZCB7XG4gIGhlaWdodDogNjBweDtcbn1cbiNjcy1jb21wYW5pZXMtZ3JpZCAuYm9keSB7XG4gIHBhZGRpbmctdG9wOiA1MHB4O1xufVxuI2NzLWNvbXBhbmllcy1ncmlkIC5jZWxsIHtcbiAgd2lkdGg6IDguNyU7XG59XG4jY3MtY29tcGFuaWVzLWdyaWQgLmhlYWQgLmNlbGwge1xuICBoZWlnaHQ6IDYwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNjcy1jb21wYW5pZXMtZ3JpZCAuaGVhZCAuY2VsbC5ncm91cCAubGluZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cbiNjcy1jb21wYW5pZXMtZ3JpZCAuaGVhZCAuY2VsbCAuaGVhZGluZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtM3B4O1xuICBsZWZ0OiA4cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2NzLWNvbXBhbmllcy1ncmlkIC5oZWFkIC5jZWxsIC50ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDRweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHJpZ2h0OiA0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbn1cbiNjcy1jb21wYW5pZXMtZ3JpZCAuY2VsbC5tYXJrZXQtY2FwIHtcbiAgbWFyZ2luLWxlZnQ6IDElO1xufVxuI2NzLWNvbXBhbmllcy1ncmlkIC5jZWxsLm1hcmt1cCB7XG4gIHdpZHRoOiA5JTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbmllcy1ncmlkIC5ib2R5IHtcbiAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgfVxufVxuI2NzLXNlY3RvcnMtZ3JpZC1wb3B1cCB7XG4gIHdpZHRoOiAzNTBweDtcbn1cbiNjcy1zZWN0b3JzLWdyaWQtcG9wdXAgLnVpLmhlYWRlciB7XG4gIG1hcmdpbjogMCAwIDAuMmVtO1xufVxuI2NzLXNlY3RvcnMtZ3JpZC1wb3B1cCAuc2VjdG9yIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgY29sb3I6ICM3Njc2NzY7XG59XG4jY3Mtc2VjdG9ycy1ncmlkLXBvcHVwIC5kZXNjIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgY29sb3I6ICM3Njc2NzY7XG59XG4jY3Mtc2VjdG9ycy1ncmlkLXBvcHVwIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2NzLXNlY3RvcnMtZ3JpZC1wb3B1cCAuY2hhbmdlIHtcbiAgcGFkZGluZzogMC4yZW0gMDtcbn1cbiNjcy1zZWN0b3JzLWdyaWQtcG9wdXAgLnJlZCB7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuI2NzLXNlY3RvcnMtZ3JpZC1wb3B1cCAuZ3JlZW4ge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTRUNUT1IgVFJFRU1BUFxuLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5jcy1zZWN0b3ItdHJlZW1hcCB7XG4gIGJhY2tncm91bmQ6ICMyNjI5MzE7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMjYyOTMxO1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC51aS5tZW51IHtcbiAgYmFja2dyb3VuZDogIzM2M2E0NjtcbiAgbWFyZ2luOiAwIDAgMC41ZW07XG4gIGJveC1zaGFkb3c6IDFweCAxcHggMHB4ICMxMTE7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5jcy1zZWN0b3ItdHJlZW1hcCAubWVudS5yaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHNsYXRlZ3JleTtcbn1cbi5jcy1zZWN0b3ItdHJlZW1hcCAudWkubWVudSAuZHJvcGRvd24uaXRlbSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzAwMDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC51aS5tZW51IC5pdGVtIHtcbiAgY29sb3I6ICNjY2Q1ZTg7XG4gIHBhZGRpbmc6IDAuNWVtIDAuN2VtO1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC51aS5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC5jaGFydC13cmFwcGVyIHtcbiAgcGFkZGluZzogMCAxZW07XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLmluZm8ge1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tbGVmdDogMjZweDtcbiAgbWFyZ2luLXRvcDogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEzcHg7XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLnNjYWxlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBtYXJnaW4tdG9wOiAxOHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDI2cHg7XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLnNjYWxlIGRpdiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tbGVmdDogMXB4O1xuICBtYXJnaW4tYm90dG9tOiA3cHg7XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLmJlZXAge1xuICBoZWlnaHQ6IDEwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAtMXB4IDAuN2VtIDAgMC41ZW07XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLmJlZXAgLmNpcmNsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBiYWNrZ3JvdW5kOiAjNjY2O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLmJlZXAub3BlbiAuY2lyY2xlIHtcbiAgYW5pbWF0aW9uOiBiZWVwIDJzIGluZmluaXRlO1xuICBiYWNrZ3JvdW5kOiAjNjRmMzQxO1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC5iZWVwLXRleHQge1xuICBjb2xvcjogIzY0ZjM0MTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAwO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC5iZWVwLXRleHQub3BlbiB7XG4gIHdpZHRoOiA0MHB4O1xufVxuQGtleWZyYW1lcyBiZWVwIHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgxMiwgMTUwLCAxMCwgMC44KTtcbiAgfVxuICA4MCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgxMiwgMTUwLCAxMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDEyLCAxNTAsIDEwLCAwKTtcbiAgfVxufVxuI2NzLXRyZWVtYXAtcG9wdXAge1xuICB3aWR0aDogMjgwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAxMDAlO1xuICBwYWRkaW5nOiAxZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHotaW5kZXg6IDEwO1xufVxuI2NzLXRyZWVtYXAtcG9wdXAgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy10cmVlbWFwLXBvcHVwIGhyIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTtcbn1cbiNjcy10cmVlbWFwLXBvcHVwIC5yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuI2NzLXRyZWVtYXAtcG9wdXAgLnNlY3RvciB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGNvbG9yOiAjOTk5O1xufVxuI2NzLXRyZWVtYXAtcG9wdXAgLm5hbWUge1xuICBjb2xvcjogIzAwNDg5Mjtcbn1cbiNjcy10cmVlbWFwLXBvcHVwIC5zeW1ib2wge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbiNjcy10cmVlbWFwLXBvcHVwIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuI2NzLXRyZWVtYXAtcG9wdXAgLmNoYW5nZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuI2NzLXRyZWVtYXAtcG9wdXAgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jY3MtdHJlZW1hcC1wb3B1cCAucmVkIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4jY3MtdHJlZW1hcC1wb3B1cCAuZ3JlZW4ge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbiNjcy10cmVlbWFwLXBvcHVwIHRkIHtcbiAgcGFkZGluZzogMnB4IDA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQVhFU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmF4aXMge1xuICBmb250LXNpemU6IDEwcHg7XG4gIHN0cm9rZTogIzc2NzY3Njtcbn1cbi5heGlzIHBhdGgsXG4uYXhpcyBsaW5lIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiAjRENERERFO1xuICBzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xufVxuLmF4aXMgdGV4dCB7XG4gIHN0cm9rZS13aWR0aDogMC41cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR1JJRFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi54LWdyaWQsXG4ueS1ncmlkIHtcbiAgZmlsbDogbm9uZTtcbiAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzO1xuICBzdHJva2U6ICNEQ0REREU7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExJTkVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5saW5lIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiAjMUI1NTg2O1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBCQVJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5iYXIucG9zaXRpdmUge1xuICBmaWxsOiAjMjFCQTQ1O1xufVxuLmJhci5uZWdhdGl2ZSB7XG4gIGZpbGw6ICNEQjI4Mjg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQVJFQVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmNpcmNsZSB7XG4gIGZpbGw6ICMxQjU1ODY7XG59XG4uYXJlYSB7XG4gIGZpbGw6ICM1MzkxQzU7XG4gIHN0cm9rZTogbm9uZTtcbiAgb3BhY2l0eTogMC4xO1xufVxuLmJhciB7XG4gIGZpbGw6ICMxQjU1ODY7XG59XG4uemVyb2xpbmUge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IHJlZDtcbiAgc3Ryb2tlLXdpZHRoOiAwLjVweDtcbiAgc3Ryb2tlLWRhc2hhcnJheTogNSA1O1xufVxuLnplcm9saW5ldGV4dCB7XG4gIGZpbGw6IHJlZDtcbn1cbi5vdmVybGF5IHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuLmZvY3VzTGluZSB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogc3RlZWxibHVlO1xuICBzdHJva2Utd2lkdGg6IDAuNXB4O1xufVxuLmZvY3VzQ2lyY2xlIHtcbiAgc3Ryb2tlOiAjRkZGRkZGO1xufVxuLmZvY3VzQ2lyY2xlR2xvdyB7XG4gIGZpbGw6ICM1MzkxQzU7XG4gIG9wYWNpdHk6IDAuMTtcbn1cbi5jcy1jaGFydCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMjAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jcy1jaGFydCB7XG4gICAgbWluLWhlaWdodDogYXV0bztcbiAgfVxufVxuLmNzLWNoYXJ0IC51aS5wb2ludGluZy5sZWZ0LmxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgd2lkdGg6IDU0cHg7XG4gIHBhZGRpbmc6IDVweCAzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jcy1jaGFydC1mb290bm90ZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zaXplOiAwLjdlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFdBVEVSRkFMTFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmNzLXdhdGVyZmFsbCAuYXhpcy54IHBhdGgge1xuICBzdHJva2U6IG5vbmU7XG59XG4uY3Mtd2F0ZXJmYWxsIC5heGlzLnggbGluZSB7XG4gIHN0cm9rZTogbm9uZTtcbn1cbi5jcy13YXRlcmZhbGwgLmF4aXMueCBsaW5lIHtcbiAgc3Ryb2tlOiBub25lO1xufVxuLmNzLXdhdGVyZmFsbCAuYXhpcy54IHRleHQge1xuICBmb250LXNpemU6IDExcHg7XG59XG4uY3Mtd2F0ZXJmYWxsIC54LWdyaWQge1xuICBzdHJva2UtZGFzaGFycmF5OiA1O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRJTUVTRVJJRVNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5jcy10aW1lc2VyaWVzIC5heGlzLnkgcGF0aCB7XG4gIHN0cm9rZTogbm9uZTtcbn1cbi5jcy10aW1lc2VyaWVzIC52b2x1bWUge1xuICBzdHJva2U6IG5vbmU7XG4gIGZpbGw6ICM5MDkwOTA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFRpbWUtc2VyaWVzIENoYXJ0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLWNoYXJ0LXRpbWVzZXJpZXMgLnVpLnBvcHVwIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wLGxlZnQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDhzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG4uY3MtY2hhcnQtdGltZXNlcmllcyAudWkucG9wdXA6YmVmb3JlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzIC5mb2N1c0xpbmUge1xuICBmaWxsOiBub25lO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzIC5mb2N1c0NpcmNsZSB7XG4gIHN0cm9rZTogI0ZGRkZGRjtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzIC5mb2N1c0NpcmNsZUdsb3cge1xuICBvcGFjaXR5OiAwLjM7XG59XG4uY3MtY2hhcnQtdGltZXNlcmllcy5kYXJrIC5iZyB7XG4gIGZpbGw6ICMyQzZBOUU7XG59XG4uY3MtY2hhcnQtdGltZXNlcmllcy5kYXJrIC52b2x1bWUgLmJhciB7XG4gIGZpbGw6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLmF4aXMgcGF0aCB7XG4gIHN0cm9rZTogbm9uZTtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLngtZ3JpZCxcbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLnktZ3JpZCB7XG4gIHN0cm9rZTogIzM1NzVBQjtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLmxpbmUge1xuICBzdHJva2U6ICNFQ0Y2RkY7XG59XG4uY3MtY2hhcnQtdGltZXNlcmllcy5kYXJrIC5heGlzIHRleHQge1xuICBzdHJva2Utd2lkdGg6IDAuNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHN0cm9rZTogIzlDOUM5Qztcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLmF4aXMgbGluZSB7XG4gIHN0cm9rZTogbm9uZTtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLmFyZWEge1xuICBvcGFjaXR5OiAxO1xufVxuLmNzLWNoYXJ0LXRpbWVzZXJpZXMuZGFyayAuZm9jdXNMaW5lIHtcbiAgc3Ryb2tlOiAjRkZGRkZGO1xuICBzdHJva2Utd2lkdGg6IDAuNXB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY3MtY2hhcnQtdGltZXNlcmllcy5kYXJrIC5heGlzIHRleHQge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxufVxuLmNzLWNoYXJ0LXRpbWVzZXJpZXMubGlnaHQgLmJnIHtcbiAgc3Ryb2tlOiAjZGNkY2RjO1xuICBmaWxsOiAjZjlmOWY5O1xufVxuLmNzLWNoYXJ0LXRpbWVzZXJpZXMubGlnaHQgLngtZ3JpZCxcbi5jcy1jaGFydC10aW1lc2VyaWVzLmxpZ2h0IC55LWdyaWQge1xuICBzdHJva2U6ICNkY2RjZGM7XG59XG4uY3MtY2hhcnQtdGltZXNlcmllcy5saWdodCAuZm9jdXNMaW5lIHtcbiAgc3Ryb2tlOiAjNzY3Njc2O1xuICBzdHJva2Utd2lkdGg6IDAuNXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS1cbiAgICBUcmVlbWFwXG4tLS0tLS0tLS0tLS0tLS0qL1xuI2NzLXRyZWVtYXAgcmVjdCB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgc3Ryb2tlOiAjMjYyOTMxO1xufVxuI2NzLXRyZWVtYXAgLmhpZ2hsaWdodCByZWN0IHtcbiAgc3Ryb2tlOiAjZmZkNjE0O1xufVxuI2NzLXRyZWVtYXAgLnBhcmVudCAubGFiZWwge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbiNjcy10cmVlbWFwIC5oaWdobGlnaHQgLmxhYmVsIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuI2NzLXRyZWVtYXAgdGV4dCB7XG4gIGZpbGw6IHdoaXRlO1xuICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggYmxhY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiNjcy10cmVlbWFwIC5sYWJlbGJvZHkge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDFweCAwIDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuI2NzLXRyZWVtYXAgLmhpZ2hsaWdodCAubGFiZWxib2R5IHtcbiAgYmFja2dyb3VuZDogI2ZmZDYxNDtcbn1cbiNjcy10cmVlbWFwIC5sYWJlbCB7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuI2NzLXRyZWVtYXAgLmNlbGwge1xuICBmb250LXNpemU6IDExcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5kdWFsLWF4aXMtY2hhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZHVhbC1heGlzLWNoYXJ0IC5jaGFydC10b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAxMHB4IHJnYmEoMTksIDE5LCAxOSwgMC4xMjE1Njg2Myk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiAwLjFzO1xuICBtaW4td2lkdGg6IDE4MHB4O1xufVxuLmR1YWwtYXhpcy1jaGFydCAuY2hhcnQtdG9vbHRpcCAudG9vbC14IHtcbiAgcGFkZGluZzogMC4zZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4OWFlZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxZW07XG59XG4uZHVhbC1heGlzLWNoYXJ0IC5jaGFydC10b29sdGlwIC50b29sLXkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbjogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuM2VtO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuLmR1YWwtYXhpcy1jaGFydCAuY2hhcnQtdG9vbHRpcCAudG9vbC15IC52YWx1ZSB7XG4gIGNvbG9yOiBncmV5O1xufVxuLmR1YWwtYXhpcy1jaGFydCAuY2hhcnQtdG9vbHRpcCAudG9vbC15IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmR1YWwtYXhpcy1jaGFydCAuY2hhcnQtdG9vbHRpcCAudG9vbC15IC50b29sLWNvbG9yLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgLmJhci1wb3B1cCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgLmJhci1wb3B1cC50b3Age1xuICB0b3A6IDFlbTtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgLmJhci1wb3B1cC5ib3R0b20ge1xuICBib3R0b206IDFlbTtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgLmJhci1wb3B1cC5sZWZ0IHtcbiAgbGVmdDogMWVtO1xufVxuLmR1YWwtYXhpcy1jaGFydCAuYmFyLXBvcHVwLnJpZ2h0IHtcbiAgcmlnaHQ6IDFlbTtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgcmVjdC5iYXI6aG92ZXIsXG4uZHVhbC1heGlzLWNoYXJ0IC5iYXItcG9wdXAge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMG1zO1xufVxuLmR1YWwtYXhpcy1jaGFydCByZWN0LmJhci5wb3NpdGl2ZSB7XG4gIGZpbGw6ICM0OTljYTA7XG59XG4uZHVhbC1heGlzLWNoYXJ0IHJlY3QuYmFyLm5lZ2F0aXZlIHtcbiAgZmlsbDogIzg0NDk5MTtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgcGF0aC5saW5lIHtcbiAgc3Ryb2tlOiAjMjg5YWVmO1xuICBzdHJva2Utd2lkdGg6IDJweDtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgLmF4aXMge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLmR1YWwtYXhpcy1jaGFydCAuYXhpcyBsaW5lLFxuLmR1YWwtYXhpcy1jaGFydCAuYXhpcyBwYXRoIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICBzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7XG4gIHN0cm9rZS13aWR0aDogMS41cHg7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDksNztcbn1cbi5kdWFsLWF4aXMtY2hhcnQgbGluZS55LWdyaWQge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6ICNkY2RkZGU7XG4gIHNoYXBlLXJlbmRlcmluZzogY3Jpc3BFZGdlcztcbiAgc3Ryb2tlLXdpZHRoOiAxLjVweDtcbiAgc3Ryb2tlLWRhc2hhcnJheTogMiw0O1xufVxuLmR1YWwtYXhpcy1jaGFydCBsaW5lLnktZ3JpZC56ZXJvLWxpbmUge1xuICBzdHJva2U6ICNiM2IzYjM7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDA7XG59XG4uZHVhbC1heGlzLWNoYXJ0IC54LmF4aXMudHJpbSAudGljazpudGgtY2hpbGQoZXZlbikge1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5kdWFsLWF4aXMtY2hhcnQgLnguYXhpcyAudGljayB0ZXh0IHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIGZvbnQtc2l6ZTogMC42NWVtO1xuICB9XG59XG4uc3VuYnVyc3RfX2NoYXJ0IHtcbiAgZm9udC1mYW1pbHk6IExhdG8sIFNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnN1bmJ1cnN0X19jaGFydCAuc2VjdGlvbiB7XG4gIHN0cm9rZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN1bmJ1cnN0X19jaGFydCAuc2VjdGlvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuOTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnN1bmJ1cnN0X19jaGFydCAuaGlkZGVuLWFyYyB7XG4gIGZpbGw6IG5vbmU7XG59XG4uc3VuYnVyc3RfX2NoYXJ0IHRleHQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZG9taW5hbnQtYmFzZWxpbmU6IG1pZGRsZTtcbiAgdGV4dC1hbmNob3I6IG1pZGRsZTtcbiAgZmlsbDogI0ZGRjtcbn1cbi5zdW5idXJzdF9fY2hhcnQgLnN1bmJ1cnN0LXRvb2x0aXAge1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbiAgbGVmdDogLTk5OTlweDtcbiAgei1pbmRleDogMTA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1NzY3N2Y7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDNweCA1cHg7XG4gIGJveC1zaGFkb3c6IDVweCA1cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5zdW5idXJzdF9fY2hhcnQgLnN1bmJ1cnN0LXRvb2x0aXAgLnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4uc3VuYnVyc3RfX2NoYXJ0IC5zdW5idXJzdC10b29sdGlwIC5jbGljay1ub3RlIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDAuOWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgTUVESUEgREFTSEJPQVJEXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgTUVESUEgT1BUSU9OU1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1tZWRpYS1vcHRpb25zIHtcbiAgbWluLWhlaWdodDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBQYWdlIEVsZW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLXRlY2huaWNhbHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuI2NzLXRlY2huaWNhbHMtbWVudSB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbiNjcy10ZWNobmljYWxzLW1lbnUgLmNzLWRpc3BsYXkgLmRyb3Bkb3duIHtcbiAgbGluZS1oZWlnaHQ6IDAuOWVtO1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIC5pdGVtIHtcbiAgcGFkZGluZzogMC41ZW07XG4gIG1pbi13aWR0aDogNTBweDtcbn1cbiNjcy10ZWNobmljYWxzLWxhYmVscyAuaXRlbVtkYXRhLXZhbHVlPVwiZGF0ZVwiXSB7XG4gIG1pbi13aWR0aDogNzRweDtcbn1cbiNjcy10ZWNobmljYWxzLWxhYmVscyAuaXRlbVtkYXRhLXZhbHVlPVwidm9sdW1lXCJdIHtcbiAgbWluLXdpZHRoOiA4MHB4O1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIC5pdGVtLnRpbWVbZGF0YS12YWx1ZT1cImRhdGVcIl0ge1xuICBtaW4td2lkdGg6IDEyNHB4O1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIC5pdGVtIC5pY29uLmNsb3NlIHtcbiAgbWFyZ2luOiAwIDAgMCAxZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNjcy10ZWNobmljYWxzLWxhYmVscyAuaXRlbSAuaWNvbi5jbG9zZTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIC51aS5zdGF0aXN0aWMge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIC51aS5zdGF0aXN0aWMgLmxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjY1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbn1cbiNjcy10ZWNobmljYWxzLWxhYmVscyAudWkuc3RhdGlzdGljIC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuI2NzLXRlY2huaWNhbHMtY2hhcnQge1xuICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgcGFkZGluZzogMDtcbn1cbiNjcy10ZWNobmljYWxzIC51aS5maXhlZC5zdGlja3kgKyAudWkuY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogODJweDtcbn1cbi51aS5maXhlZC5zdGlja3kgI2NzLXRlY2huaWNhbHMtbGFiZWxzIHtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4ICMwMDA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBQYWdlIEVsZW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLWNoYXJ0LXRlY2huaWNhbHMgdGV4dC52ZXJzaW9uIHtcbiAgZmlsbDogIzU1NTU1NTtcbiAgZm9udDogOHB4IHNhbnMtc2VyaWY7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAuYXhpcyBwYXRoLFxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLmF4aXMgbGluZSB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogI0JCQkJCQjtcbiAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgdGV4dCB7XG4gIGZpbGw6ICNEREREREQ7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLmNsb3NlIHBhdGgge1xuICBzdHJva2U6ICNmNmY2ZjY7XG4gIHN0cm9rZS13aWR0aDogMTtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIHBhdGguY2FuZGxlIHtcbiAgc3Ryb2tlOiAjMDAwMDAwO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5jYW5kbGUuYm9keSB7XG4gIHN0cm9rZS13aWR0aDogMDtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIHBhdGguY2FuZGxlIHtcbiAgZmlsbDogIzc3Nzc3NztcbiAgc3Ryb2tlOiAjNzc3Nzc3O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5jYW5kbGUudXAge1xuICBmaWxsOiAjMDBBQTAwO1xuICBzdHJva2U6ICMwMEFBMDA7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLmNhbmRsZS5kb3duIHtcbiAgZmlsbDogI0ZGMDAwMDtcbiAgc3Ryb2tlOiAjRkYwMDAwO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5vaGxjIHtcbiAgc3Ryb2tlOiAjMDAwMDAwO1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLm9obGMudXAge1xuICBzdHJva2U6ICMwMEFBMDA7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLm9obGMuZG93biB7XG4gIHN0cm9rZTogI0ZGMDAwMDtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC5jbG9zZVZhbHVlLmFubm90YXRpb24udXAgcGF0aCB7XG4gIGZpbGw6ICMwMEFBMDA7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLnZvbHVtZS51cCB7XG4gIGZpbGw6ICM0RkMzMDE7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLnZvbHVtZS5kb3duIHtcbiAgZmlsbDogI0VGMkEyQTtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC5pbmRpY2F0b3IgcGF0aC5saW5lIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlLXdpZHRoOiAxLjU7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBidXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMTBweDtcbiAgdG9wOiAyNXB4O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5tYWNkIHtcbiAgc3Ryb2tlOiAjYWVjN2U4O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5zaWduYWwge1xuICBzdHJva2U6ICNGRjk5OTk7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLnplcm8ge1xuICBzdHJva2U6ICNCQkJCQkI7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDA7XG4gIHN0cm9rZS1vcGFjaXR5OiAwLjU7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLmRpZmZlcmVuY2Uge1xuICBmaWxsOiAjNzc3Nzc3O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5yc2kge1xuICBzdHJva2U6ICNhZWM3ZTg7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLm92ZXJib3VnaHQsXG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLm92ZXJzb2xkIHtcbiAgc3Ryb2tlOiAjRkY5OTk5O1xuICBzdHJva2UtZGFzaGFycmF5OiA1LCA1O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5taWRkbGUsXG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLnplcm8ge1xuICBzdHJva2U6ICNCQkJCQkI7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDUsIDU7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAuYW5hbHlzaXMgcGF0aCxcbi5jcy1jaGFydC10ZWNobmljYWxzIC5hbmFseXNpcyBjaXJjbGUge1xuICBzdHJva2U6IHllbGxvdztcbiAgc3Ryb2tlLXdpZHRoOiAwLjc7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAuaW50ZXJhY3Rpb24gcGF0aCxcbi5jcy1jaGFydC10ZWNobmljYWxzIC5pbnRlcmFjdGlvbiBjaXJjbGUge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLmludGVyYWN0aW9uIC5ib2R5IHtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLnRyZW5kbGluZXMgLmludGVyYWN0aW9uIC5zdGFydCxcbi5jcy1jaGFydC10ZWNobmljYWxzIC50cmVuZGxpbmVzIC5pbnRlcmFjdGlvbiAuZW5kIHtcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC50cmVuZGxpbmUgY2lyY2xlIHtcbiAgc3Ryb2tlLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLm1vdXNlb3ZlciAudHJlbmRsaW5lIHBhdGgge1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAubW91c2VvdmVyIC50cmVuZGxpbmUgY2lyY2xlIHtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xuICBmaWxsOiB5ZWxsb3c7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC5zdXBzdGFuY2UgcGF0aCB7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDIsIDI7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAuc3Vwc3RhbmNlcyAuaW50ZXJhY3Rpb24gcGF0aCB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLnN1cHN0YW5jZXMgLmF4aXNhbm5vdGF0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC5zdXBzdGFuY2VzIC5tb3VzZW92ZXIgLmF4aXNhbm5vdGF0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLnN1cHN0YW5jZXMgLmF4aXNhbm5vdGF0aW9uIHBhdGgge1xuICBmaWxsOiAjODA2NTE3O1xuICBzdHJva2U6IG5vbmU7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAubW91c2VvdmVyIC5zdXBzdGFuY2UgcGF0aCB7XG4gIHN0cm9rZS13aWR0aDogMS41O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLmNyb3NzaGFpciB7XG4gIGN1cnNvcjogY3Jvc3NoYWlyO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLmNyb3NzaGFpciBwYXRoLndpcmUge1xuICBzdHJva2U6ICM1NTU1NTU7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDE7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAuY3Jvc3NoYWlyIC5heGlzYW5ub3RhdGlvbiBwYXRoIHtcbiAgZmlsbDogIzc3Nzc3Nztcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC5jcm9zc2hhaXIgLmF4aXNhbm5vdGF0aW9uIHRleHQge1xuICBmb250LXNpemU6IDExcHg7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAueC1ncmlkLFxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLnktZ3JpZCB7XG4gIHN0cm9rZTogIzYzNjM2MztcbiAgc3Ryb2tlLXdpZHRoOiAwLjVweDtcbiAgb3BhY2l0eTogMTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqIFN0eWxlc2hlZXQgZm9yIHRoZSBEYXRlIFJhbmdlIFBpY2tlciwgZm9yIHVzZSB3aXRoIFNlbWFudGljIFVJXG4gKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSBEYW4gR3Jvc3NtYW4gKCBodHRwOi8vd3d3LmRhbmdyb3NzbWFuLmluZm8gKVxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAqXG4gKiBCdWlsdCBmb3IgaHR0cDovL3d3dy5pbXByb3ZlbHkuY29tXG4gKi9cbi5kYXRlcmFuZ2VwaWNrZXIuZHJvcGRvd24tbWVudSB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMzAwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm94LXNoYWRvdzogMCAwIDVweCAjY2NjO1xufVxuLmRhdGVyYW5nZXBpY2tlci5vcGVuc2xlZnQgLnJhbmdlcyxcbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNsZWZ0IC5jYWxlbmRhciB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDRweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNyaWdodCAucmFuZ2VzLFxuLmRhdGVyYW5nZXBpY2tlci5vcGVuc3JpZ2h0IC5jYWxlbmRhcixcbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNjZW50ZXIgLnJhbmdlcyxcbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNjZW50ZXIgLmNhbGVuZGFyIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDRweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIuc2luZ2xlIC5yYW5nZXMsXG4uZGF0ZXJhbmdlcGlja2VyLnNpbmdsZSAuY2FsZW5kYXIge1xuICBmbG9hdDogbm9uZTtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyB7XG4gIHdpZHRoOiAxNjBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyAucmFuZ2VfaW5wdXRzID4gZGl2IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uZGF0ZXJhbmdlcGlja2VyIC5yYW5nZXMgLnJhbmdlX2lucHV0cyA+IGRpdjpudGgtY2hpbGQoMikge1xuICBwYWRkaW5nLWxlZnQ6IDExcHg7XG59XG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogMjcwcHg7XG59XG4uZGF0ZXJhbmdlcGlja2VyLnNob3ctY2FsZW5kYXIgLmNhbGVuZGFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhci5zaW5nbGUgLmNhbGVuZGFyLWRhdGUge1xuICBib3JkZXI6IG5vbmU7XG59XG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhciB0aCxcbi5kYXRlcmFuZ2VwaWNrZXIgLmNhbGVuZGFyIHRkIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAzMnB4O1xufVxuLmRhdGVyYW5nZXBpY2tlciAuZGF0ZXJhbmdlcGlja2VyX3N0YXJ0X2lucHV0IGxhYmVsLFxuLmRhdGVyYW5nZXBpY2tlciAuZGF0ZXJhbmdlcGlja2VyX2VuZF9pbnB1dCBsYWJlbCB7XG4gIGNvbG9yOiAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIHRleHQtc2hhZG93OiAjZmZmIDFweCAxcHggMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDogNzRweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyBpbnB1dCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyAuaW5wdXQtbWluaSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6ICM1NTU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDExcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgcGFkZGluZzogMCA2cHg7XG4gIHdpZHRoOiA3NHB4O1xufVxuLmRhdGVyYW5nZXBpY2tlciAucmFuZ2VzIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLmRhdGVyYW5nZXBpY2tlciAucmFuZ2VzIGxpIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjVmNWY1O1xuICBjb2xvcjogIzA4YztcbiAgcGFkZGluZzogM3B4IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyBsaS5hY3RpdmUsXG4uZGF0ZXJhbmdlcGlja2VyIC5yYW5nZXMgbGk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjMDhjO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDhjO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLmNhbGVuZGFyLWRhdGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBwYWRkaW5nOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLmNhbGVuZGFyLXRpbWUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogOHB4IGF1dG8gMCBhdXRvO1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRvcDogMTAwcHg7XG4gIGxlZnQ6IDIwcHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNsZWZ0OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtN3B4O1xuICByaWdodDogOXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgI2NjYztcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBjb250ZW50OiAnJztcbn1cbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNsZWZ0OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC02cHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29udGVudDogJyc7XG59XG4uZGF0ZXJhbmdlcGlja2VyLm9wZW5zY2VudGVyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtN3B4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJpZ2h0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDdweCBzb2xpZCAjY2NjO1xuICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGNvbnRlbnQ6ICcnO1xufVxuLmRhdGVyYW5nZXBpY2tlci5vcGVuc2NlbnRlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNnB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAjZmZmO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBjb250ZW50OiAnJztcbn1cbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNyaWdodDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTdweDtcbiAgbGVmdDogOXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgI2NjYztcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBjb250ZW50OiAnJztcbn1cbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNyaWdodDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNnB4O1xuICBsZWZ0OiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29udGVudDogJyc7XG59XG4uZGF0ZXJhbmdlcGlja2VyLmRyb3B1cCB7XG4gIG1hcmdpbi10b3A6IC01cHg7XG59XG4uZGF0ZXJhbmdlcGlja2VyLmRyb3B1cDpiZWZvcmUge1xuICB0b3A6IGluaXRpYWw7XG4gIGJvdHRvbTogLTdweDtcbiAgYm9yZGVyLWJvdHRvbTogaW5pdGlhbDtcbiAgYm9yZGVyLXRvcDogN3B4IHNvbGlkICNjY2M7XG59XG4uZGF0ZXJhbmdlcGlja2VyLmRyb3B1cDphZnRlciB7XG4gIHRvcDogaW5pdGlhbDtcbiAgYm90dG9tOiAtNnB4O1xuICBib3JkZXItYm90dG9tOiBpbml0aWFsO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgI2ZmZjtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuLmRhdGVyYW5nZXBpY2tlciB0ZCxcbi5kYXRlcmFuZ2VwaWNrZXIgdGgge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgdGQub2ZmIHtcbiAgY29sb3I6ICM5OTk7XG59XG4uZGF0ZXJhbmdlcGlja2VyIHRkLmRpc2FibGVkLFxuLmRhdGVyYW5nZXBpY2tlciBvcHRpb24uZGlzYWJsZWQge1xuICBjb2xvcjogIzk5OTtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgdGQuYXZhaWxhYmxlOmhvdmVyLFxuLmRhdGVyYW5nZXBpY2tlciB0aC5hdmFpbGFibGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xufVxuLmRhdGVyYW5nZXBpY2tlciB0ZC5pbi1yYW5nZSB7XG4gIGJhY2tncm91bmQ6ICNlYmY0Zjg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmRhdGVyYW5nZXBpY2tlciB0ZC5zdGFydC1kYXRlIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XG59XG4uZGF0ZXJhbmdlcGlja2VyIHRkLmVuZC1kYXRlIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcbiAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XG59XG4uZGF0ZXJhbmdlcGlja2VyIHRkLnN0YXJ0LWRhdGUuZW5kLWRhdGUge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgdGQuYWN0aXZlLFxuLmRhdGVyYW5nZXBpY2tlciB0ZC5hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU3ZWJkO1xuICBib3JkZXItY29sb3I6ICMzMDcxYTk7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmRhdGVyYW5nZXBpY2tlciB0ZC53ZWVrLFxuLmRhdGVyYW5nZXBpY2tlciB0aC53ZWVrIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjY2NjO1xufVxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24ubW9udGhzZWxlY3QsXG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi55ZWFyc2VsZWN0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIG1hcmdpbjogMCA1cHggMCAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgc2VsZWN0Lm1vbnRoc2VsZWN0IHtcbiAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgd2lkdGg6IGF1dG87XG59XG4uZGF0ZXJhbmdlcGlja2VyIHNlbGVjdC55ZWFyc2VsZWN0IHtcbiAgd2lkdGg6IGF1dG87XG59XG4uZGF0ZXJhbmdlcGlja2VyIHNlbGVjdC51aS5kcm9wZG93bi5ob3Vyc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciBzZWxlY3QudWkuZHJvcGRvd24ubWludXRlc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciBzZWxlY3QudWkuZHJvcGRvd24uc2Vjb25kc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciBzZWxlY3QudWkuZHJvcGRvd24uYW1wbXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweDtcbiAgaGVpZ2h0OiAyZW07XG59XG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi5ob3Vyc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24ubWludXRlc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24uc2Vjb25kc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24uYW1wbXNlbGVjdCB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnVpLmRyb3Bkb3duLnllYXJzZWxlY3QgPiAudGV4dCxcbi5kYXRlcmFuZ2VwaWNrZXIgLnVpLmRyb3Bkb3duLm1vbnRoc2VsZWN0ID4gLnRleHQsXG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi5ob3Vyc2VsZWN0ID4gLnRleHQsXG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi5taW51dGVzZWxlY3QgPiAudGV4dCxcbi5kYXRlcmFuZ2VwaWNrZXIgLnVpLmRyb3Bkb3duLnNlY29uZHNlbGVjdCA+IC50ZXh0LFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24uYW1wbXNlbGVjdCA+IC50ZXh0IHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjI1ZW07XG59XG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi55ZWFyc2VsZWN0ID4gLmRyb3Bkb3duLmljb24sXG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi5tb250aHNlbGVjdCA+IC5kcm9wZG93bi5pY29uLFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24uaG91cnNlbGVjdCA+IC5kcm9wZG93bi5pY29uLFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24ubWludXRlc2VsZWN0ID4gLmRyb3Bkb3duLmljb24sXG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi5zZWNvbmRzZWxlY3QgPiAuZHJvcGRvd24uaWNvbixcbi5kYXRlcmFuZ2VwaWNrZXIgLnVpLmRyb3Bkb3duLmFtcG1zZWxlY3QgPiAuZHJvcGRvd24uaWNvbiB7XG4gIHBhZGRpbmc6IC44ZW0gLjE1ZW0gLjhlbSAuOGVtO1xufVxuLmRhdGVyYW5nZXBpY2tlcl9zdGFydF9pbnB1dCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmRhdGVyYW5nZXBpY2tlcl9lbmRfaW5wdXQge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAxMXB4O1xufVxuLmRhdGVyYW5nZXBpY2tlciB0aC5tb250aCB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xufVxuLmRhdGVyYW5nZXBpY2tlciAucHJldiAubGVmdC5hcnJvdy5pY29uLFxuLmRhdGVyYW5nZXBpY2tlciAubmV4dCAucmlnaHQuYXJyb3cuaWNvbiB7XG4gIG1hcmdpbjogMDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3MtZGFzaGJvYXJkLWxvYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgei1pbmRleDogMTA7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2NzLXJlY2VudC1yZXNlYXJjaCAuaXRlbSAuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luLWJvdHRvbTogLjNlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXJlY2VudC1yZXNlYXJjaCAuaXRlbSAuaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXJlY2VudC1yZXNlYXJjaCAuaXRlbSAudWkubGFiZWwudGlueTpub3QoLmdyZXkpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4jY3MtZGFzaGJvYXJkLW5ld3MgLmltYWdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIGhlaWdodDogMTAwcHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbiNjcy1kYXNoYm9hcmQtbmV3cyAuY29udGVudCB7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZGFzaGJvYXJkLW5ld3Mge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLW5ld3MgaW1nIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLW5ld3MgLmNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiAxZW07XG4gIH1cbn1cbiNjcy1kYXNoYm9hcmQtbmV3cy1tb2JpbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWRhc2hib2FyZC1uZXdzLW1vYmlsZSAuY29udGVudCB7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuI2NzLWRhc2hib2FyZC1uZXdzLW1vYmlsZSAubmV3cy1pbWFnZS10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4jY3MtZGFzaGJvYXJkLW5ld3MtbW9iaWxlIC5uZXdzLWltYWdlLXRpdGxlIGltZyB7XG4gIHBhZGRpbmctcmlnaHQ6IDFlbTtcbiAgbWF4LXdpZHRoOiAxNDBweDtcbiAgbWF4LWhlaWdodDogMTAwcHg7XG59XG4jY3MtZGFzaGJvYXJkLW5ld3MtbW9iaWxlIC5uZXdzLWltYWdlLXRpdGxlIC5jb250ZW50IHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbiNjcy1kYXNoYm9hcmQtbmV3cy1tb2JpbGUgLm5ld3MtaW1hZ2UtdGl0bGUgLmNvbnRlbnQgLmhlYWRlciB7XG4gIGNvbG9yOiBibGFjaztcbn1cbiNjcy1kYXNoYm9hcmQtbmV3cy1tb2JpbGUgLm5ld3MtaW1hZ2UtdGl0bGUgLmNvbnRlbnQgLmV4dHJhIHtcbiAgZm9udC1zaXplOiAwLjdlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWRhc2hib2FyZC1uZXdzLW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuI2NzLWZpbmFuY2lhbC1yZXN1bHQtdGFibGUsXG4jY3MtYm9hcmQtbWVldGluZy10YWJsZSxcbiNjcy1lY29ub215LXRhYmxlIHtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5jcy1tb2JpbGUtY2hhcnQtbGFiZWxzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMCAwLjVlbTtcbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmNzLW1vYmlsZS1jaGFydC1sYWJlbHMgcCB7XG4gIG1hcmdpbjogMHB4O1xuICBmb250LXNpemU6IDAuN2VtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5jcy1jaGFydFt0aW1lPVwiM21cIl0gLnguYXhpcyAudGljazpudGgtY2hpbGQob2RkKSB0ZXh0IHtcbiAgZmlsbDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgc3Ryb2tlOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAgLmNzLWZvcmVpZ24tbG9jYWwtcG9wdXAge1xuICBtaW4td2lkdGg6IDI3NXB4O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAgLmNzLWZvcmVpZ24tbG9jYWwtcG9wdXAgLml0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMHB4O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAgLmNzLWZvcmVpZ24tbG9jYWwtcG9wdXAgLml0ZW0gcCB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAgLmNzLWZvcmVpZ24tbG9jYWwtcG9wdXAgLml0ZW0gcCBiIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCAuaXRlbSBwOmZpcnN0LWNoaWxkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2lkdGg6IDcwJTtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCAuaXRlbSBwOmxhc3QtY2hpbGQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgd2lkdGg6IDMwJTtcbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLnVpLnBvcHVwIC5jcy1mb3JlaWduLWxvY2FsLXBvcHVwIC5pdGVtIHAucmVkIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCAuaXRlbSBwLmdyZWVuIHtcbiAgY29sb3I6ICMyMUJBNDU7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCAuaXRlbS50b3RhbCBwOmZpcnN0LWNoaWxkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCAuaXRlbS50b3RhbCBwOmxhc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JleTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGdyZXk7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCBwLmRhdGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAge1xuICAgIHBhZGRpbmc6IDAuMmVtO1xuICB9XG4gICNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLnVpLnBvcHVwIC5jcy1mb3JlaWduLWxvY2FsLXBvcHVwIHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAgLmNzLWZvcmVpZ24tbG9jYWwtcG9wdXAgLml0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMC43ZW07XG4gIH1cbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLnVpLnBvaW50aW5nLm1lbnUgLml0ZW0ge1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogI2Q0ZDRkNTtcbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLnVpLnBvaW50aW5nLm1lbnUgLml0ZW0uYWN0aXZlIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkudGFiIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnQtb3B0aW9ucyB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBnYWluc2Jvcm87XG4gIHBhZGRpbmc6IDFlbTtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnQtb3B0aW9ucyAuY3MtdGltZS1idXR0b25zIHtcbiAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnQtb3B0aW9ucyAuY3MtdGltZS1idXR0b25zLm1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbjogMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5jcy1jaGFydC1vcHRpb25zIC5mb3VydGVlbi53aWRlLmNvbHVtbiB7XG4gICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gICNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmNzLWNoYXJ0LW9wdGlvbnMgLmNzLXRpbWUtYnV0dG9ucy5kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmNzLWNoYXJ0LW9wdGlvbnMgLmNzLXRpbWUtYnV0dG9ucy5tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IGF1dG87XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnQtb3B0aW9ucyAudWkuYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5jcy1jaGFydC1vcHRpb25zIC5jcy1jbGllbnQtdHlwZS1idXR0b25zIHtcbiAgICBmbGV4OiBhdXRvO1xuICB9XG4gICNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmNzLWNoYXJ0LW9wdGlvbnMgLnVpLmRyb3Bkb3duIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnQtb3B0aW9ucyAudHdvLndpZGUuY29sdW1uIHtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5jcy1jaGFydC1vcHRpb25zIC50d28ud2lkZS5jb2x1bW4gLnVpLmxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtcG9ydGZvbGlvLXNldHRsZW1lbnQtbWVudSB7XG4gICAgbWFyZ2luOiAwcHg7XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtcG9ydGZvbGlvLXNldHRsZW1lbnQtbWVudSAuaXRlbSB7XG4gICAgcGFkZGluZzogMC41ZW07XG4gICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICB9XG4gICNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmNzLW1vYmlsZS1jaGFydC1sYWJlbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3NfX3BvcnRfX2NoYXJ0IHtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnRbdGltZT1cIm9uZS1kYXlcIl1bdHlwZT1cImxvY2FsXCJdIC54LmF4aXMgLnRpY2s6bnRoLWNoaWxkKG9kZCkgdGV4dCB7XG4gICAgZmlsbDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgICBzdHJva2U6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIH1cbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmRhcmsge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmRhcmsgdGV4dCB7XG4gIGZpbGw6ICNmZmY7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5kYXJrIGNpcmNsZSB7XG4gIGZpbGw6IHllbGxvdztcbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmRhcmsgLmxpbmUge1xuICBzdHJva2U6ICM5MGNjZmY7XG59XG4jY3MtZGFzaGJvYXJkLXNldHRsZW1lbnQgLmJhciB7XG4gIGZpbGw6ICNjMGUyZmYhaW1wb3J0YW50O1xufVxuI2NzLWRhc2hib2FyZC1zZXR0bGVtZW50IC5zdWItYmFyIHtcbiAgZmlsbDogIzZlYTRkMiFpbXBvcnRhbnQ7XG59XG4jY3MtZGFzaGJvYXJkLXNldHRsZW1lbnQgLmxpbmUge1xuICBzdHJva2U6ICNmZjc2MDAhaW1wb3J0YW50O1xufVxuI2NzLWRhc2hib2FyZC1mb3JlaWduLWxvY2FsIC5jcy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuI2NzLWRhc2hib2FyZC1mb3JlaWduLWxvY2FsIC5jcy1oZWFkZXIgLnVpLmhlYWRlciB7XG4gIGZsZXg6IGF1dG87XG59XG4jY3MtZGFzaGJvYXJkLWZvcmVpZ24tbG9jYWwgLmNzLXR5cGUtYnV0dG9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNjVweDtcbn1cbiNjcy1kYXNoYm9hcmQtZm9yZWlnbi1sb2NhbCAudWkuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuI2NzLWRhc2hib2FyZC1mb3JlaWduLWxvY2FsIC51aS5zZWdtZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4jY3MtZGFzaGJvYXJkLWZvcmVpZ24tbG9jYWwgLnplcm8tbGluZSB7XG4gIHN0cm9rZTogI2Q3MzAyNztcbiAgc3Ryb2tlLXdpZHRoOiAzcHg7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDE1O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZGFzaGJvYXJkLWZvcmVpZ24tbG9jYWwgLmNzLXR5cGUtYnV0dG9ucyB7XG4gICAgdG9wOiAtNDBweDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLWZvcmVpZ24tbG9jYWwgLnVpLnNlZ21lbnQge1xuICAgIHBhZGRpbmc6IDFlbSAwLjNlbTtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLWZvcmVpZ24tbG9jYWwgLmNzLWhlYWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIHBhZGRpbmc6IDAgMC41ZW07XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1mb3JlaWduLWxvY2FsIC5jcy1oZWFkZXIgLnVpLmJ1dHRvbiB7XG4gICAgcGFkZGluZzogMC41ZW07XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1mb3JlaWduLWxvY2FsIC5jcy1oZWFkZXIgLnVpLmhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBtYXJnaW46IDBweDtcbiAgfVxufVxuI2NzLWRhc2hib2FyZCAjY3MtZGFzaGJvYXJkLXRpbWUtc3RhbXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxLjVlbTtcbiAgdG9wOiAxLjVlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC10aW1lLXN0YW1wIC5pbmRpY2VzX19zdGF0dXMge1xuICBwYWRkaW5nOiAwcHg7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG59XG4jY3MtZGFzaGJvYXJkIC51aS5zZWdtZW50IHtcbiAgYm94LXNoYWRvdzogN3B4IDEwcHggMjBweCAwIHJnYmEoNDYsIDYxLCA3MywgMC4xNSk7XG59XG4jY3MtZGFzaGJvYXJkIC51aS50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNWVtIDBlbTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC10YWJsZXMge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA4NXB4O1xufVxuI2NzLWRhc2hib2FyZCAuY3MtZGFzaGJvYXJkLXRhYmxlcyAudWkudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC10YWJsZXMgLnVpLnRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZDogZ3JleTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxZW0gMGVtO1xufVxuI2NzLWRhc2hib2FyZCAuY3MtZGFzaGJvYXJkLXRhYmxlcyAudWkudGFibGUgdHIgdGQ6bnRoLWNoaWxkKDEpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0NCwgMTA2LCAxNTgsIDAuMDYpO1xufVxuI2NzLWRhc2hib2FyZCAuY3MtZGFzaGJvYXJkLXRhYmxlcyAudWkudGFibGUgdHIgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgY29sb3I6ICNjYzllMWM7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjA0LCAxNTgsIDI4LCAwLjA5KTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC10YWJsZXMgLnVpLnRhYmxlIHRyIHRkOm50aC1jaGlsZCgzKSB7XG4gIGNvbG9yOiAjMjFCQTQ3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMzLCAxODYsIDcxLCAwLjA1KTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC10YWJsZXMgLnVpLnRhYmxlIHRyIHRkOm50aC1jaGlsZCg0KSB7XG4gIGNvbG9yOiBibGFjaztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDBweCAwLjVlbSAwcHg7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLmNzLXN0YXRzLXJhbmdlLWdyb3VwLm1vYmlsZSB7XG4gIG1hcmdpbi10b3A6IDJlbSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLmNzLXN0YXRzLXJhbmdlLWdyb3VwLm1vYmlsZSAuc2l4dGVlbi53aWRlLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDBweCAxZW0gIWltcG9ydGFudDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1zdGF0cy1tb2JpbGUge1xuICBtYXJnaW4tYm90dG9tOiAzZW0gIWltcG9ydGFudDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1zdGF0cy1tb2JpbGUgLnVpLnN0YXRpc3RpYyB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1zdGF0cy1tb2JpbGUgLnVpLnN0YXRpc3RpYyAudmFsdWUsXG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLmNzLXN0YXRzLXJhbmdlLWdyb3VwLm1vYmlsZSAjY3MtZGFzaGJvYXJkLXN1bW1hcnktc3RhdHMtbW9iaWxlIC51aS5zdGF0aXN0aWMgLmxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlIC5jcy1yYW5nZSB7XG4gIGhlaWdodDogNTVweDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlIC50aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMzVweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAudWkuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBmb250LXdlaWdodDogMzAwO1xufVxuI2NzLWRhc2hib2FyZCAjY3MtZGFzaGJvYXJkLW1hcmtldC1zdW1tYXJ5IC51aS5zZWdtZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLnVpLmdyaWQucGFkZGVkLnN0YWNrYWJsZSB7XG4gIHBhZGRpbmctdG9wOiAwLjVlbTtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAudWkuc2Vjb25kYXJ5Lm1lbnUge1xuICBtYXJnaW46IDBweDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3MtcmFuZ2Uge1xuICBoZWlnaHQ6IDY1cHg7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLmNzLXJhbmdlIGg1IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuI2NzLWRhc2hib2FyZCAjY3MtZGFzaGJvYXJkLW1hcmtldC1zdW1tYXJ5IC5jcy1yYW5nZSAuaGlnaCxcbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3MtcmFuZ2UgLmxvdyB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLmNzLXN0YXRzLXJhbmdlLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAudWkuaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAudWkuZ3JpZC5wYWRkZWQuc3RhY2thYmxlIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAudWkuZ3JpZC5wYWRkZWQuc3RhY2thYmxlIC5jb2x1bW4ge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gIH1cbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LXN0YXRzIC51aS52ZXJ5LmJhc2ljLmNvbGxhcHNpbmcudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LXN0YXRzIC51aS52ZXJ5LmJhc2ljLmNvbGxhcHNpbmcudGFibGUgdGQge1xuICBwYWRkaW5nLXRvcDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICBib3JkZXI6IG5vbmU7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1zdGF0cyAudWkudmVyeS5iYXNpYy5jb2xsYXBzaW5nLnRhYmxlIHRkIC5sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LXN0YXRzIC51aS5ncmlkLnBhZGRlZC5zdGFja2FibGUge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1zdGF0cyAudWkudmVyeS5iYXNpYy5jb2xsYXBzaW5nLnRhYmxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgI2NzLWRhc2hib2FyZCAjY3MtZGFzaGJvYXJkLXN1bW1hcnktc3RhdHMgLnVpLnZlcnkuYmFzaWMuY29sbGFwc2luZy50YWJsZSAuc3RhdGlzdGljIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LXN0YXRzIC51aS52ZXJ5LmJhc2ljLmNvbGxhcHNpbmcudGFibGUgLnN0YXRpc3RpYyAudmFsdWUsXG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LXN0YXRzIC51aS52ZXJ5LmJhc2ljLmNvbGxhcHNpbmcudGFibGUgLnN0YXRpc3RpYyAubGFiZWwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICB9XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1jaGFydCB7XG4gIHBhZGRpbmc6IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMWVtIDBweDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LWNoYXJ0IC5saW5lIHtcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG59XG4jY3MtZGFzaGJvYXJkIC5jcy1kYXNoYm9hcmQtc3VtbWFyeS1vcHRpb25zLmNzLXN1bW1hcnktZGVza3RvcCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBnYWluc2Jvcm87XG4gIHBhZGRpbmc6IDFlbSAwLjRlbTtcbiAgbWFyZ2luLXRvcDogLTNweDtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC1zdW1tYXJ5LW9wdGlvbnMuY3Mtc3VtbWFyeS1kZXNrdG9wIC51aS5zZWNvbmRhcnkubWVudSAuaXRlbSB7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBtYXJnaW46IDAgMC4xZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC1zdW1tYXJ5LW9wdGlvbnMuY3Mtc3VtbWFyeS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4jY3MtZGFzaGJvYXJkIC5jcy1kYXNoYm9hcmQtc3VtbWFyeS1vcHRpb25zLmNzLXN1bW1hcnktbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC1zdW1tYXJ5LW9wdGlvbnMuY3Mtc3VtbWFyeS1tb2JpbGUgLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xufVxuI2NzLWRhc2hib2FyZCAuY3MtZGFzaGJvYXJkLXN1bW1hcnktb3B0aW9ucy5jcy1zdW1tYXJ5LW1vYmlsZSAudWkuc2Vjb25kYXJ5Lm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC1zdW1tYXJ5LW9wdGlvbnMuY3Mtc3VtbWFyeS1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4jY3MtZGFzaGJvYXJkIC5jcy1kYXNoYm9hcmQtc3VtbWFyeS1vcHRpb25zLmNzLXN1bW1hcnktbW9iaWxlLmNzLWluZGljZXMge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4jY3MtZGFzaGJvYXJkIC5jcy1kYXNoYm9hcmQtc3VtbWFyeS1vcHRpb25zLmNzLXN1bW1hcnktbW9iaWxlLmNzLXRpbWUtb3B0cyB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBwYWRkaW5nOiAwLjVlbSAwcHggMHB4O1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG59XG4jY3MtZGFzaGJvYXJkIC5jcy1kYXNoYm9hcmQtc3VtbWFyeS1vcHRpb25zLmNzLXN1bW1hcnktbW9iaWxlLmNzLXRpbWUtb3B0cyAuc2l4dGVlbi53aWRlLmNvbHVtbiB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjVlbSAhaW1wb3J0YW50O1xufVxuI2NzLWRhc2hib2FyZCAuY3MtZGFzaGJvYXJkLXN1bW1hcnktb3B0aW9ucy5jcy1zdW1tYXJ5LW1vYmlsZS5jcy10aW1lLW9wdHMgLnVpLm1lbnUgLml0ZW0ge1xuICBwYWRkaW5nOiAwLjVlbTtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1wZXJmb3JtZXJzIC51aS5iYXNpYy50YWIge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1wZXJmb3JtZXJzIC5jcy1sb2FkZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDU7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtcGVyZm9ybWVycyAuY3MtY2hhcnQge1xuICBtYXJnaW4tdG9wOiAzLjJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWRhc2hib2FyZCAjY3MtZGFzaGJvYXJkLXBlcmZvcm1lcnMge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZGFzaGJvYXJkIHtcbiAgICBtYXJnaW4tdG9wOiAxZW0gIWltcG9ydGFudDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkIC5jcy1jaGFydC10aW1lc2VyaWVzLmxpZ2h0IC54LWdyaWQsXG4gICNjcy1kYXNoYm9hcmQgLmNzLWNoYXJ0LXRpbWVzZXJpZXMubGlnaHQgLnktZ3JpZCB7XG4gICAgc3Ryb2tlOiByZ2JhKDIxOSwgMjE5LCAyMTksIDAuNDIpO1xuICB9XG4gICNjcy1kYXNoYm9hcmQgLmNvbHVtbiB7XG4gICAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC10aW1lLXN0YW1wIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxufVxuI2NzLWRhc2hiYXJkLWFuYWx5c3Qtb3BpbmlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbiNjcy1yZWNlbnQtcmVzZWFyY2ggLnVpLmxpc3Qge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzogMCAwLjVyZW07XG4gIG1heC1oZWlnaHQ6IDM4Ljc1cmVtO1xufVxuI2NzLWRhc2hib2FyZC1yZXNlYXJjaC10YWJzIC5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwcHg7XG59XG4jY3MtdG9wLXN0b2NrcyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gIHBhZGRpbmctYm90dG9tOiAxZW07XG59XG4jY3MtdG9wLXN0b2NrcyAudWkuZ3JpZCB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLXRvcC1zdG9ja3MgLnVpLmhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDAuM2VtO1xuICBmb250LXNpemU6IDEuNWVtO1xufVxuI2NzLXRvcC1zdG9ja3MgLnVpLmhlYWRlciBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjVlbTtcbn1cbiNjcy10b3Atc3RvY2tzIC51aS5oZWFkZXIsXG4jY3MtdG9wLXN0b2NrcyBwIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4jY3MtdG9wLXN0b2NrcyBwIHtcbiAgY29sb3I6ICM5ODk4OTg7XG59XG4jY3MtdG9wLXN0b2NrcyAubGlzdCAubGlzdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2hhZG93OiAwIDAgMXB4IGdyZXk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogLjdlbTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbiNjcy10b3Atc3RvY2tzIC5saXN0IC5saXN0LWl0ZW0gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDAuN2VtIDBlbTtcbiAgYmFja2dyb3VuZDogZ3JleTtcbiAgZmxleDogMCAwIDg2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuI2NzLXRvcC1zdG9ja3MgLmxpc3QgLmxpc3QtaXRlbSAuZGV0YWlscyB7XG4gIGZsZXg6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAwLjVlbTtcbn1cbiNjcy10b3Atc3RvY2tzIC5saXN0IC5saXN0LWl0ZW0gLmRldGFpbHMgLmNsb3NlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4jY3MtdG9wLXN0b2NrcyAubGlzdCAubGlzdC1pdGVtIC5kZXRhaWxzIC5zeW1ib2wge1xuICBjb2xvcjogIzk4OTg5ODtcbiAgZm9udC1zaXplOiAxLjE1ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2NzLXRvcC1zdG9ja3MgLmxpc3QgLmxpc3QtaXRlbSAuZGV0YWlscyAuY2hhbmdlLnJlZCB7XG4gIGNvbG9yOiByZWQ7XG59XG4jY3MtdG9wLXN0b2NrcyAubGlzdCAubGlzdC1pdGVtIC5kZXRhaWxzIC5jaGFuZ2UuZ3JlZW4ge1xuICBjb2xvcjogIzY3Y2MzODtcbn1cbiNjcy10b3Atc3RvY2tzIC5jb2x1bW4uZGkge1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbn1cbiNjcy10b3Atc3RvY2tzIC5jb2x1bW4uZGkgLnVpLmhlYWRlciB7XG4gIGNvbG9yOiAjODQ3ODZkO1xufVxuI2NzLXRvcC1zdG9ja3MgLmNvbHVtbi5kaSAubGlzdCAubGlzdC1pdGVtIC52YWx1ZSB7XG4gIGJhY2tncm91bmQ6ICM4NDc4NmQ7XG59XG4jY3MtdG9wLXN0b2NrcyAuY29sdW1uLnBlciAudWkuaGVhZGVyIHtcbiAgY29sb3I6ICNCMzk0MzA7XG59XG4jY3MtdG9wLXN0b2NrcyAuY29sdW1uLnBlciAubGlzdCAubGlzdC1pdGVtIC52YWx1ZSB7XG4gIGJhY2tncm91bmQ6ICNCMzk0MzA7XG59XG4jY3MtdG9wLXN0b2NrcyAuY29sdW1uLnByIC51aS5oZWFkZXIge1xuICBjb2xvcjogIzE0NjE1Rjtcbn1cbiNjcy10b3Atc3RvY2tzIC5jb2x1bW4ucHIgLmxpc3QgLmxpc3QtaXRlbSAudmFsdWUge1xuICBiYWNrZ3JvdW5kOiAjMTQ2MTVGO1xufVxuI2NzLXRvcC1zdG9ja3MgLmNvbHVtbi52dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcbn1cbiNjcy10b3Atc3RvY2tzIC5jb2x1bW4udnQgLnVpLmhlYWRlciB7XG4gIGNvbG9yOiAjM0Y3RkE2O1xufVxuI2NzLXRvcC1zdG9ja3MgLmNvbHVtbi52dCAubGlzdCAubGlzdC1pdGVtIC52YWx1ZSB7XG4gIGJhY2tncm91bmQ6ICMzRjdGQTY7XG59XG4jY3MtdG9wLXN0b2NrcyAubGlzdCAubGlzdC1pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy10b3Atc3RvY2tzIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cbiAgI2NzLXRvcC1zdG9ja3MgLmNvbHVtbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICB9XG59XG4uY3MtdG9wLXN0b2Nrcy1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLmNzLXRvcC1zdG9ja3MtbmF2IC5ub3RlIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogZ3JleTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jcy10b3Atc3RvY2tzLW5hdiAubm90ZSB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG4gIC5jcy10b3Atc3RvY2tzLW5hdiAjY3Mtc3RvY2staW5kaWNlcyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNzLXRvcC1zdG9ja3MtbmF2ICNjcy1zdG9jay1pbmRpY2VzIC51aS5idXR0b24ge1xuICAgIGZsZXg6IGF1dG87XG4gICAgcGFkZGluZzogMWVtIDAuNWVtO1xuICB9XG59XG4udXBkYXRlX19wcm9kdWN0X19tb2RhbCAuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVwZGF0ZV9fcHJvZHVjdF9fbW9kYWwgLmNvbnRlbnQgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIG1hcmdpbjogMWVtIDA7XG59XG4udXBkYXRlX19wcm9kdWN0X19tb2RhbCBoMyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVwZGF0ZV9fcHJvZHVjdF9fbW9kYWwgaDMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLnVwZGF0ZV9fcHJvZHVjdF9fbW9kYWwgaDMgLnVpLmJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG59XG4uc3RrX19hZHZlcnQgLnVpLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgbWF4LXdpZHRoOiAxMy44MTI1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMXJlbTtcbiAgZm9udC1zaXplOiAxLjE4NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbn1cbi5zdGtfX2FkdmVydCAudWkuYnV0dG9uLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzI2NENFMCAwJSwgIzI2NENFMCAxMDAlKSwgIzBFNURCRTtcbn1cbi5zdGtfX2FkdmVydCAudWkuYnV0dG9uLmdyZWVuIHtcbiAgYmFja2dyb3VuZDogIzNDQzA2Mjtcbn1cbi5zdGtfX2FkdmVydCAudWkuYnV0dG9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMC45O1xufVxuLnN0a19fYWR2ZXJ0X193aWRnZXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDIuNXJlbSAxLjI1cmVtO1xufVxuLnN0a19fYWR2ZXJ0X193aWRnZXQgLmJnLTEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwOTEzMUMgMCUsICMwQzE4MjMgMTAwJSksIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNGNkY2RjYgMCUsIHdoaXRlIDEwMCUpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIHRvcDogMHB4O1xuICB6LWluZGV4OiAyO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG4uc3RrX19hZHZlcnRfX3dpZGdldCAuYmctMiB7XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDc4LjZkZWcsICMzQUNERDkgOC40NyUsICMyNjRDREYgMzguMjQlLCAjMjBDRUQ5IDczLjg4JSwgIzNEQzE2MiA5NS4wOCUpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyA4cHgpO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSArIDhweCk7XG4gIGxlZnQ6IC00cHg7XG4gIHRvcDogLTRweDtcbn1cbi5zdGtfX2FkdmVydF9fd2lkZ2V0IC5iZy0zIHtcbiAgei1pbmRleDogMztcbiAgd2lkdGg6IDM4OXB4O1xuICBoZWlnaHQ6IDE5NnB4O1xuICBsZWZ0OiAzNHB4O1xuICB0b3A6IDE2NHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsIDAsIDAsIDAuNDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDEpIDEwMCUpLCBjb25pYy1ncmFkaWVudChmcm9tIDE4MGRlZyBhdCA1MCUgNTAlLCAjMjBEMERBIDQ3ZGVnLCAjMjY0Q0UwIDE1MGRlZywgIzNFQzQ1RiAyOTdkZWcsICMxNzVDQjkgMzYwZGVnKTtcbiAgYm94LXNoYWRvdzogNDAwcHggNDAwcHggNDAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgZmlsdGVyOiBibHVyKDIwMHB4KTtcbn1cbi5zdGtfX2FkdmVydF9fd2lkZ2V0IC5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA0O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5zdGtfX2FkdmVydF9fd2lkZ2V0IC5oZWFkaW5nIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMi41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnN0a19fYWR2ZXJ0X193aWRnZXQgLnN1Yi1oZWFkaW5nIHtcbiAgY29sb3I6ICNFMEU5RjI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5zdGtfX2FkdmVydF9fb3ZlcmxheSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDExO1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICBwYWRkaW5nOiAzLjNyZW0gMi41cmVtO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMDkxMzFDIDAlLCAjMEMxODIzIDEwMCUpLCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjRjZGNkY2IDAlLCB3aGl0ZSAxMDAlKTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnN0a19fYWR2ZXJ0X19vdmVybGF5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uc3RrX19hZHZlcnRfX292ZXJsYXkgLmNvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIGdhcDogMS41cmVtO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC5jb250ZW50X19sZWZ0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMS41cmVtO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC5jb250ZW50X19yaWdodCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgZ2FwOiAxLjEyNXJlbTtcbn1cbi5zdGtfX2FkdmVydF9fb3ZlcmxheSAuY29udGVudF9fcmlnaHQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICByaWdodDogLTYwcHg7XG4gIGJvdHRvbTogLTMwcHg7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIGJveC1zaGFkb3c6IDQwMHB4IDQwMHB4IDQwMHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XG4gIGZpbHRlcjogYmx1cigxMDBweCk7XG4gIHotaW5kZXg6IC0xO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC5oZWFkaW5nIHtcbiAgY29sb3I6ICMyMENFREE7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4OC41ZGVnLCAjMjBDRURBIDAuODclLCAjMjY0RUREIDM0LjA2JSwgIzNEQzI2MCA2Ni43NCUsICMxNzVDQjkgOTguOTElKTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBmb250LXNpemU6IDIuODEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuODEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC5zdWItaGVhZGluZyB7XG4gIGNvbG9yOiAjRTBFOUYyO1xuICBmb250LXNpemU6IDEuMzEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuODEyNXJlbTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC5iZy12aWV3IHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOXB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOXB4O1xuICBib3JkZXItbGVmdDogNHB4ICMzQUNERDkgc29saWQ7XG4gIGJvcmRlci10b3A6IDRweCAjM0FDREQ5IHNvbGlkO1xuICBib3JkZXItcmlnaHQ6IDRweCAjM0FDREQ5IHNvbGlkO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA0NSU7XG4gIHRvcDogNnJlbTtcbiAgcmlnaHQ6IDRyZW07XG4gIHotaW5kZXg6IC0xO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC51aS5idXR0b24uY2xvc2Uge1xuICBjb2xvcjogIzUwNUM3QyAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMS41cmVtO1xuICByaWdodDogMS41cmVtO1xuICB3aWR0aDogMi44NDM4cmVtO1xuICBoZWlnaHQ6IDIuODQzOHJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1vZGFsIC5jbG9zZS5pY29uIHtcbiAgY29sb3I6ICNkNGQ0ZDUgIWltcG9ydGFudDtcbn1cbi51aS5saXN0IGEuaXRlbSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcGFkZGluZzogMC41ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS5saXN0IGEuaXRlbSAuY29udGVudCB7XG4gIHBhZGRpbmc6IDAgMWVtIDAgLjVlbTtcbn1cbi51aS5saXN0IGEuaXRlbSAuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC4zZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFlbTtcbn1cbi51aS5saXN0IGEuaXRlbSAuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMyQzZBQTA7XG59XG4udWkubGlzdCBhLml0ZW0gLmhlYWRlcixcbi51aS5saXN0IGEuaXRlbSAubGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkubGlzdCBhLml0ZW0gLmxhYmVsOmhvdmVyIHtcbiAgb3BhY2l0eTogMC44O1xufVxuI2NzLWNsaWVudHJlcyAuY3MtZW1iZWQge1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNsaWVudHJlcyAuY3MtZW1iZWQge1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgaGVpZ2h0OiA1MDBweDtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cbn1cbiNjcy1jbGllbnRyZXMgLmNzLXJlc2VhcmNoLXByZXZpZXcge1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY2xpZW50cmVzIC5jcy1yZXNlYXJjaC1wcmV2aWV3IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuI2NzLWNsaWVudHJlcyAuY3MtZWRpdG9yLXNlZ21lbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNsaWVudHJlcyAuY3MtZWRpdG9yLXNlZ21lbnQgLmNzLWVkaXRvci1ub3RlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogODB2aDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI2NzLWNsaWVudHJlcyAuY3MtZWRpdG9yLXNlZ21lbnQgLmNzLWVkaXRvci1ub3RlIGgxIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgZm9udC1zaXplOiAzZW07XG59XG4jY3MtY2xpZW50cmVzIC5jcy1lZGl0b3Itc2VnbWVudCAuY3MtZWRpdG9yLW5vdGUgcCB7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGNvbG9yOiBncmV5O1xufVxuI2NzLWNsaWVudHJlcyAuY3Mtbm8tcmVzZWFyY2gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI2NzLWNsaWVudHJlcyAuY3Mtbm8tcmVzZWFyY2ggaDEge1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXNpemU6IDNlbTtcbn1cbiNjcy1jbGllbnRyZXMgLmNzLW5vLXJlc2VhcmNoLmhpZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNsaWVudHJlcyBpZnJhbWUge1xuICBib3JkZXI6IG5vbmU7XG59XG4jY3MtY2xpZW50cmVzIC51aS5hY2NvcmRpb24gLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbiNjcy1jbGllbnRyZXMgLnVpLmljb24uYnV0dG9ucyAudWkucG9wdXAge1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI2NzLWNsaWVudHJlcyAudWkuYWNjb3JkaW9uID4gLmNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiAyNDVweDtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjQsIDEyNCwgMTI0LCAwLjgpO1xuICBwYWRkaW5nOiAwLjVlbSAwLjVlbSAxLjVlbTtcbn1cbi51aS5tb2RhbCBpLmNsb3NlLmljb24ge1xuICBjb2xvcjogd2hpdGU7XG4gIHRvcDogLTJlbTtcbiAgcmlnaHQ6IC0xLjVlbTtcbn1cbiNjcy1yZXNlYXJjaC1hcmNoaXZlLW1vZGFsIC51aS5saXN0IHtcbiAgbWF4LWhlaWdodDogNDUwcHg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG4jY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5pdGVtIHtcbiAgcGFkZGluZzogM2VtO1xufVxuI2NzLWFuYWx5c3QtcHJvZmlsZS1tb2RhbCAuaXRlbSAuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAyZW07XG59XG4jY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5pdGVtIC51aS50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5pdGVtIC51aS50YWJsZSB0ZCB7XG4gIGJvcmRlcjogMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5jb250ZW50IC5pdGVtIHtcbiAgICBwYWRkaW5nOiAwLjVlbSAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1hbmFseXN0LXByb2ZpbGUtbW9kYWwgLmNvbnRlbnQgLml0ZW0gLnVpLmltYWdlIHtcbiAgICBtYXgtd2lkdGg6IDEyMHB4IWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiAxMjBweCFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWFuYWx5c3QtcHJvZmlsZS1tb2RhbCAuY29udGVudCAuaXRlbSAuaGVhZGVyIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgfVxuICAjY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5jb250ZW50IC5pdGVtICNjcy1lZGl0LWFuYWx5c3QtYnRuIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDFlbSAwZW07XG4gIH1cbiAgI2NzLWFuYWx5c3QtcHJvZmlsZS1tb2RhbCAuY29udGVudCAuaXRlbSAudWkudGFibGUge1xuICAgIG1hcmdpbjogMHB4O1xuICB9XG4gICNjcy1hbmFseXN0LXByb2ZpbGUtbW9kYWwgLmNvbnRlbnQgLml0ZW0gLnVpLnRhYmxlIHRyIHtcbiAgICBwYWRkaW5nOiAwcHggMHB4IDAuNWVtO1xuICB9XG59XG4jY3MtcmVwb3J0LW5hbWUge1xuICBtYXJnaW46IDAuNWVtIDBweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy11cGxvYWQtbW9kYWwgLmRyb3B6b25lIHtcbiAgYm9yZGVyOiAycHggZGFzaGVkICMwMDg3RkU7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4jY3MtdXBsb2FkLW1vZGFsIC5kcm9wem9uZSAuZHotbWVzc2FnZSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtdXBsb2FkLW1vZGFsIC5kcm9wem9uZSAuZHotZmlsZW5hbWUge1xuICBtYXJnaW4tdG9wOiAzLjVlbTtcbn1cbiNjcy11cGxvYWQtbW9kYWwgLmRyb3B6b25lIC5kei1kZXRhaWxzIHtcbiAgcGFkZGluZzogMWVtIDFlbTtcbn1cbiNjcy11cGxvYWQtbW9kYWwgLmRyb3B6b25lIC5kei1wcm9ncmVzcyB7XG4gIHRvcDogNDAlO1xufVxuI2NzLXVwbG9hZC1tb2RhbCAudWkudG9nZ2xlLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuI2NzLXVwbG9hZC1tb2RhbCAudWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMyMWJhNDUgIWltcG9ydGFudDtcbn1cbiNjcy11cGxvYWQtbW9kYWwgLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4jY3MtdXBsb2FkLW1vZGFsIC51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNkYjI4MjggIWltcG9ydGFudDtcbn1cbiNjcy11cGxvYWQtbW9kYWwgLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4jY3MtdXBsb2FkLW1vZGFsIC51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNkYjI4MjggIWltcG9ydGFudDtcbn1cbi5jcy10YWctZ2VuZXJhdG9yIHtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4uY3MtdGFnLWdlbmVyYXRvciBpbnB1dCB7XG4gIGZvbnQtc2l6ZTogMC45ZW0gIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAyMzBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IDBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xufVxuLmNzLXRhZy1nZW5lcmF0b3IgLnRhZy1ncm91cCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiNjcy1lZGl0LWNhdGVnb3J5LW1vZGFsIC51aS5kaXZpZGluZy5oZWFkZXIge1xuICBtYXJnaW46IDFyZW0gMGVtICFpbXBvcnRhbnQ7XG59XG4jY3MtZWRpdC1jYXRlZ29yeS1mb3JtcyB7XG4gIG1heC1oZWlnaHQ6IDM3MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMTEpO1xuICBwYWRkaW5nOiAxZW07XG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMTFweCAjYTI5ZTllO1xufVxuI2NzLWFkZC1jYXRlZ29yeS1idG4ge1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xufVxuI2NzLWFkZC1jYXRlZ29yeS1mb3JtcyB7XG4gIHBhZGRpbmc6IDFlbTtcbn1cbiNjcy1tYW5hZ2UtYW5hbHlzdC1tb2RhbCB7XG4gIHdpZHRoOiA0MDBweDtcbn1cbiNjcy1zZWFyY2gtcmVzZWFyY2gtbW9kYWwgLnVpLmxpc3Qge1xuICBtYXgtaGVpZ2h0OiA0MHZoO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4jY3Mtc2VhcmNoLXJlc2VhcmNoLW1vZGFsIC5jb250ZW50IHtcbiAgbWluLWhlaWdodDogNDE1cHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1zZWFyY2gtcmVzZWFyY2gtbW9kYWwgLnVpLmZvcm0gLmZpZnRlZW4ud2lkZS5maWVsZCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDcwcHgpICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLXNlYXJjaC1yZXNlYXJjaC1tb2RhbCAudWkuZm9ybSAub25lLndpZGUuZmllbGQge1xuICAgIHdpZHRoOiA1NXB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiNjcy1hZGQtZXhwLW1vZGFsIC51aS5mb3JtIC51aS5oZWFkZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW46IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIxMSwgMjExLCAyMTEsIDAuNDkpO1xuICBwYWRkaW5nOiAwLjdlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5jcy1vcGluaW9uLW1vZGFsczpub3QoLmNzLWFkZC1vcGluaW9uKTpub3QoI2NzLWRlbGV0ZS1vcGluaW9uLW1vZGFsKTpub3QoLmNzLWVkaXQtb3Bpbmlvbikge1xuICB3aWR0aDogNTAwcHggIWltcG9ydGFudDtcbn1cbi5jcy1vcGluaW9uLW1vZGFscyAudWkubWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY3Mtb3Bpbmlvbi1tb2RhbHMgLmFjdGlvbnMgLmNzLXNraXAtbW9kYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmMDtcbiAgbWFyZ2luOiAwcHg7XG59XG4uY3Mtb3Bpbmlvbi1tb2RhbHMgLnVpLmRyb3Bkb3duIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xufVxuLmNyX19oZWFkUm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmNyX19hZHZTZWFyY2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTlmMmZhICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjMjE4NWQwIGluc2V0LCAwIDAgMCAwIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4uY3JfX2FkdlNlYXJjaCAudWkuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMjE4NWQwO1xufVxuI2NzLXNlYXJjaC1yZXN1bHQge1xuICBtYXgtaGVpZ2h0OiA0MHZoO1xuICBtaW4taGVpZ2h0OiAyMHZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIHBhZGRpbmc6IDBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXNlYXJjaC1yZXN1bHQge1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxufVxuI2NzLXNlYXJjaC1yZXN1bHQgdGFibGUgdGggaS5zb3J0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG4jY3Mtc2VhcmNoLXJlc3VsdCB0YWJsZSB0aDpub3QoLm5vLXNvcnQpOmFmdGVyIHtcbiAgd2lkdGg6IDE0cHggIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIGNvbnRlbnQ6IFwiXFxmMGRjXCIgIWltcG9ydGFudDtcbn1cbiNjcy1zZWFyY2gtcmVzdWx0IHRhYmxlIHRoLmFzY2VuZGluZzphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXGYwZDgnICFpbXBvcnRhbnQ7XG59XG4jY3Mtc2VhcmNoLXJlc3VsdCB0YWJsZSB0aC5kZXNjZW5kaW5nOmFmdGVyIHtcbiAgY29udGVudDogJ1xcZjBkNycgIWltcG9ydGFudDtcbn1cbiNjcy1jYXRlZ29yeS1hY2NvcmRpb24gLml0ZW1fX2NvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjVyZW07XG4gIHJpZ2h0OiAwLjVyZW07XG59XG4jY3MtY2F0ZWdvcnktYWNjb3JkaW9uIC5pdGVtX19jb250cm9scyA+IGkge1xuICBjb2xvcjogd2hpdGU7XG59XG4jY3MtY2F0ZWdvcnktYWNjb3JkaW9uIC5pdGVtX19jb250cm9scyA+IGkuY2xvc2U6aG92ZXIge1xuICBjb2xvcjogI2RiMjgyODtcbn1cbiNjcy1jYXRlZ29yeS1hY2NvcmRpb24gLml0ZW1fX2NvbnRyb2xzID4gaS5wZW5jaWw6aG92ZXIge1xuICBjb2xvcjogIzAwODdGRTtcbn1cbi8qXG4gKiBUaGUgTUlUIExpY2Vuc2VcbiAqIENvcHlyaWdodCAoYykgMjAxMiBNYXRpYXMgTWVubyA8bUB0aWFzLm1lPlxuICovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcGFzc2luZy10aHJvdWdoIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICB9XG4gIDMwJSxcbiAgNzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgfVxufVxuQC1tb3ota2V5ZnJhbWVzIHBhc3NpbmctdGhyb3VnaCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgfVxuICAzMCUsXG4gIDcwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcGFzc2luZy10aHJvdWdoIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICB9XG4gIDMwJSxcbiAgNzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlLWluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICB9XG4gIDMwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICB9XG59XG5ALW1vei1rZXlmcmFtZXMgc2xpZGUtaW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gIH1cbiAgMzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2xpZGUtaW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gIH1cbiAgMzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5ALW1vei1rZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtby10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgMTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG4uZHJvcHpvbmUsXG4uZHJvcHpvbmUgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uZHJvcHpvbmUge1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMjBweCAyMHB4O1xufVxuLmRyb3B6b25lLmR6LWNsaWNrYWJsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5kcm9wem9uZS5kei1jbGlja2FibGUgKiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kcm9wem9uZS5kei1jbGlja2FibGUgLmR6LW1lc3NhZ2UsXG4uZHJvcHpvbmUuZHotY2xpY2thYmxlIC5kei1tZXNzYWdlICoge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZHJvcHpvbmUuZHotc3RhcnRlZCAuZHotbWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZHJvcHpvbmUuZHotZHJhZy1ob3ZlciB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZHJvcHpvbmUuZHotZHJhZy1ob3ZlciAuZHotbWVzc2FnZSB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5kcm9wem9uZSAuZHotbWVzc2FnZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAyZW0gMDtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtYXJnaW46IDE2cHg7XG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3OmhvdmVyIHtcbiAgei1pbmRleDogMTAwMDtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldzpob3ZlciAuZHotZGV0YWlscyB7XG4gIG9wYWNpdHk6IDE7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotZmlsZS1wcmV2aWV3IC5kei1pbWFnZSB7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJhY2tncm91bmQ6ICM5OTk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNlZWUsICNkZGQpO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWZpbGUtcHJldmlldyAuZHotZGV0YWlscyB7XG4gIG9wYWNpdHk6IDE7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotaW1hZ2UtcHJldmlldyB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWltYWdlLXByZXZpZXcgLmR6LWRldGFpbHMge1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGxpbmVhcjtcbiAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LXJlbW92ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LXJlbW92ZTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3OmhvdmVyIC5kei1kZXRhaWxzIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyB7XG4gIHotaW5kZXg6IDIwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgb3BhY2l0eTogMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMmVtIDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICBsaW5lLWhlaWdodDogMTUwJTtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotc2l6ZSB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1maWxlbmFtZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWRldGFpbHMgLmR6LWZpbGVuYW1lOmhvdmVyIHNwYW4ge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwMCwgMjAwLCAyMDAsIDAuOCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotZmlsZW5hbWU6bm90KDpob3Zlcikge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotZmlsZW5hbWU6bm90KDpob3Zlcikgc3BhbiB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1maWxlbmFtZSBzcGFuLFxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1zaXplIHNwYW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gIHBhZGRpbmc6IDAgMC40ZW07XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldzpob3ZlciAuZHotaW1hZ2UgaW1nIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpO1xuICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4wNSwgMS4wNSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpO1xuICAtby10cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpO1xuICAtd2Via2l0LWZpbHRlcjogYmx1cig4cHgpO1xuICBmaWx0ZXI6IGJsdXIoOHB4KTtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotaW1hZ2Uge1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogMTIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHotaW5kZXg6IDEwO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldy5kei1zdWNjZXNzIC5kei1zdWNjZXNzLW1hcmsge1xuICAtd2Via2l0LWFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gIC1tb3otYW5pbWF0aW9uOiBwYXNzaW5nLXRocm91Z2ggM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgLW1zLWFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gIC1vLWFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gIGFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotZXJyb3IgLmR6LWVycm9yLW1hcmsge1xuICBvcGFjaXR5OiAxO1xuICAtd2Via2l0LWFuaW1hdGlvbjogc2xpZGUtaW4gM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgLW1vei1hbmltYXRpb246IHNsaWRlLWluIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gIC1tcy1hbmltYXRpb246IHNsaWRlLWluIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gIC1vLWFuaW1hdGlvbjogc2xpZGUtaW4gM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgYW5pbWF0aW9uOiBzbGlkZS1pbiAzcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1zdWNjZXNzLW1hcmssXG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWVycm9yLW1hcmsge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogNTAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTI3cHg7XG4gIG1hcmdpbi10b3A6IC0yN3B4O1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1zdWNjZXNzLW1hcmsgc3ZnLFxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1lcnJvci1tYXJrIHN2ZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNTRweDtcbiAgaGVpZ2h0OiA1NHB4O1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LXByb2Nlc3NpbmcgLmR6LXByb2dyZXNzIHtcbiAgb3BhY2l0eTogMTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnMgbGluZWFyO1xuICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuMnMgbGluZWFyO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGxpbmVhcjtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldy5kei1jb21wbGV0ZSAuZHotcHJvZ3Jlc3Mge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluO1xuICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluO1xuICAtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2UtaW47XG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1pbjtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldzpub3QoLmR6LXByb2Nlc3NpbmcpIC5kei1wcm9ncmVzcyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBwdWxzZSA2cyBlYXNlIGluZmluaXRlO1xuICAtbW96LWFuaW1hdGlvbjogcHVsc2UgNnMgZWFzZSBpbmZpbml0ZTtcbiAgLW1zLWFuaW1hdGlvbjogcHVsc2UgNnMgZWFzZSBpbmZpbml0ZTtcbiAgLW8tYW5pbWF0aW9uOiBwdWxzZSA2cyBlYXNlIGluZmluaXRlO1xuICBhbmltYXRpb246IHB1bHNlIDZzIGVhc2UgaW5maW5pdGU7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LXByb2dyZXNzIHtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxNnB4O1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtOHB4O1xuICB3aWR0aDogODBweDtcbiAgbWFyZ2luLWxlZnQ6IC00MHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1wcm9ncmVzcyAuZHotdXBsb2FkIHtcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzY2NiwgIzQ0NCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2UtaW4tb3V0O1xuICAtbXMtdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlLWluLW91dDtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldy5kei1lcnJvciAuZHotZXJyb3ItbWVzc2FnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWVycm9yOmhvdmVyIC5kei1lcnJvci1tZXNzYWdlIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWVycm9yLW1lc3NhZ2Uge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB0b3A6IDEzMHB4O1xuICBsZWZ0OiAtMTBweDtcbiAgd2lkdGg6IDE0MHB4O1xuICBiYWNrZ3JvdW5kOiAjYmUyNjI2O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYmUyNjI2LCAjYTkyMjIyKTtcbiAgcGFkZGluZzogMC41ZW0gMS4yZW07XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZXJyb3ItbWVzc2FnZTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTZweDtcbiAgbGVmdDogNjRweDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAjYmUyNjI2O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5QaXZvdCBQb2ludHMgU3VwcG9ydCBSZXNpc3RhbmNlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLXBpdm90LXBvaW50cyAudWkuc2VnbWVudCB7XG4gIG1pbi1oZWlnaHQ6IDY1MHB4O1xufVxuI2NzLXBpdm90LXBvaW50cyAudWkuaGVhZGVyLmRpdmlkaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTJlMmUyO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zZW07XG59XG4jY3MtcGl2b3QtcG9pbnRzIC5jcy1waXZvdC10YWJzIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jY3MtcGl2b3QtcG9pbnRzIC5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgaDUuaGVhZCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgaGVpZ2h0OiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbiNjcy1waXZvdC1wb2ludHMgLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC52YWx1ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtcGl2b3QtcG9pbnRzIC5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnBvaW50IHtcbiAgdG9wOiAtMy41cHg7XG59XG4jY3MtcGl2b3QtcG9pbnRzIC51aS50YWJbZGF0YS10YWI9XCJzdG9ja3NcIl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jY3MtcGl2b3QtcG9pbnRzIC51aS50YWJbZGF0YS10YWI9XCJzdG9ja3NcIl0gLnVpLmRyb3Bkb3duLmluZGV4LWZpbHRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNHB4O1xuICByaWdodDogMjIwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1waXZvdC1wb2ludHMgLnVpLnRhYltkYXRhLXRhYj1cInN0b2Nrc1wiXSAudWkuZHJvcGRvd24uaW5kZXgtZmlsdGVyIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gIH1cbn1cbiNjcy1waXZvdC1wb2ludHMgLnVpLnRhYltkYXRhLXRhYj1cInN0b2Nrc1wiXSAudWkuZHJvcGRvd24ucGFnaW5nLXR5cGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTRweDtcbiAgcmlnaHQ6IDQyNXB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtcGl2b3QtcG9pbnRzIC51aS50YWJbZGF0YS10YWI9XCJzdG9ja3NcIl0gLnVpLmRyb3Bkb3duLnBhZ2luZy10eXBlIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gIH1cbn1cbiNjcy1waXZvdC1wb2ludHMgLmNzLXRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxkIC51aS5pbnB1dCB7XG4gIHdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtcGl2b3QtcG9pbnRzIC5jcy10YWJsZSB0aGVhZCB0aDpmaXJzdC1jaGlsZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1waXZvdC1wb2ludHMgLmNzLXRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxkIC51aS5pbnB1dCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAzLjVlbSkgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5QaXZvdCBQb2ludHMgU3VwcG9ydCBSZXNpc3RhbmNlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLWhpc3RvcmljYWwtZGF0YSAuZ2VuZXJhdGUtZXhjZWwge1xuICBmbGV4OiBhdXRvO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtaGQtdGFibGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtaGQtdGFibGUgPiAudWkuaGVhZGVyIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMTc1YTc7XG59XG4jY3MtaGlzdG9yaWNhbC1kYXRhIC5jcy10YWJsZSAudWkuaWNvbi5pbnB1dCB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG59XG4jY3MtaGlzdG9yaWNhbC1kYXRhIC5jcy10YWJsZSB0YWJsZSB0aGVhZCB0ciB0aDpub3QoLmFsaWduZWQpOmZpcnN0LWNoaWxkLFxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtdGFibGUgdGFibGUgdGJvZHkgdHIgdGg6bm90KC5hbGlnbmVkKTpmaXJzdC1jaGlsZCxcbiNjcy1oaXN0b3JpY2FsLWRhdGEgLmNzLXRhYmxlIHRhYmxlIHRoZWFkIHRyIHRkOmZpcnN0LWNoaWxkLFxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtdGFibGUgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtdGFibGUgdGFibGUgdGhlYWQgdHIgdGg6bm90KC5hbGlnbmVkKSxcbiNjcy1oaXN0b3JpY2FsLWRhdGEgLmNzLXRhYmxlIHRhYmxlIHRib2R5IHRyIHRoOm5vdCguYWxpZ25lZCksXG4jY3MtaGlzdG9yaWNhbC1kYXRhIC5jcy10YWJsZSB0YWJsZSB0aGVhZCB0ciB0ZCxcbiNjcy1oaXN0b3JpY2FsLWRhdGEgLmNzLXRhYmxlIHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtdGFibGUgdGFibGUgdGhlYWQgdHIgLnBvc2l0aXZlLFxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtdGFibGUgdGFibGUgdGJvZHkgdHIgLnBvc2l0aXZlIHtcbiAgY29sb3I6IGdyZWVuICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbiNjcy1oaXN0b3JpY2FsLWRhdGEgLmNzLXRhYmxlIHRhYmxlIHRoZWFkIHRyIC5uZWdhdGl2ZSxcbiNjcy1oaXN0b3JpY2FsLWRhdGEgLmNzLXRhYmxlIHRhYmxlIHRib2R5IHRyIC5uZWdhdGl2ZSB7XG4gIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xufVxuI2NzLWhpc3RvcmljYWwtZGF0YSAudWkudGFiW2RhdGEtdGFiPVwiaGlzdG9yaWNhbC1kYXRhXCJdIC5jcy10YWJsZSB0YWJsZSB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4jY3MtaGlzdG9yaWNhbC1kYXRhIC51aS50YWJbZGF0YS10YWI9XCJoaXN0b3JpY2FsLWRhdGFcIl0gLmNzLXRhYmxlIHRhYmxlIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgxKSxcbiNjcy1oaXN0b3JpY2FsLWRhdGEgLnVpLnRhYltkYXRhLXRhYj1cImhpc3RvcmljYWwtZGF0YVwiXSAuY3MtdGFibGUgdGFibGUgdGhlYWQgdHIgdGg6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDE1MHB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5QaXZvdCBQb2ludHMgU3VwcG9ydCBSZXNpc3RhbmNlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLWluc2lkZXItcGFnZSAuY3MtaW5zaWRlci1oZWFkZXIge1xuICBtYXJnaW46IDAuMmVtIDAgMC41ZW0gMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluc2lkZXItcGFnZSAuY3MtaW5zaWRlci1oZWFkZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDAuMmVtIGF1dG8gMC4yZW0gYXV0bztcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluc2lkZXItcGFnZSAuY3MtaW5zaWRlci1jaGFydC13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgfVxufVxuI2NzLWluc2lkZXItcGFnaW5hdGUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC5jcy1pbnNpZGVyLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLmNzLWluc2lkZXItbmF2IC51aS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNDOTJERjtcbiAgbWFyZ2luOiAwcHg7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci1uYXYgLmNzLWluc2lkZXItbmF2LWZpbHRlcnMge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLmNzLWluc2lkZXItbmF2IC5jcy1pbnNpZGVyLW5hdi1maWx0ZXJzIC50cmVuZC1maWx0ZXJzIHtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC5jcy1pbnNpZGVyLW5hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci1uYXYgLnVpLm1lbnUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC5jcy1pbnNpZGVyLW5hdiAudWkubWVudSAuaXRlbSB7XG4gICAgZmxleDogMTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci1uYXYgLnVpLmRyb3Bkb3duIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cbiAgI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLmNzLWluc2lkZXItbmF2IC5jcy1pbnNpZGVyLW5hdi1maWx0ZXJzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTUwcHggKiA1MCk7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC50aXRsZS5ncmV5LFxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuY29udGVudC5ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiZmJmYjtcbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmluc2lkZXItdHJlbmQtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmluc2lkZXItdHJlbmQtd3JhcHBlciAudG9wLWFjdGl2aXR5IHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuaW5zaWRlci10cmVuZC13cmFwcGVyIC50b3AtYWN0aXZpdHkgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5pbnNpZGVyLXRyZW5kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLnRpdGxlIC51aS5wb3B1cCAuY29udGVudCB7XG4gIHBhZGRpbmc6IDBweDtcbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLnRyZW5kIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAudHJlbmQgaSB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAudHJlbmQgLm51bWJlciB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5jb250ZW50IC50YWJsZS13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAxO1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuY29udGVudCAudGFibGUtd3JhcHBlciAuc3RhdGljLXRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1heC1oZWlnaHQ6IDY0cHg7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2Utb3V0O1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuY29udGVudCAudGFibGUtd3JhcHBlciB0YWJsZSB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuY29udGVudCAudGFibGUtd3JhcHBlciB0YWJsZSB0aGVhZCB0aCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHBhZGRpbmc6IDAuMmVtIDAuN2VtO1xuICBiYWNrZ3JvdW5kOiAjZjFmMWYxO1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuY29udGVudCAudGFibGUtd3JhcHBlciB0YWJsZSB0aGVhZCAubmFtZSB7XG4gIHdpZHRoOiAyNSU7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5jb250ZW50IC50YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IC5uYW1lIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmNvbnRlbnQgLnRhYmxlLXdyYXBwZXIgdGFibGUgLm5hbWUge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmNvbnRlbnQgLnRhYmxlLXdyYXBwZXIge1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5jb250ZW50IC50YWJsZS13cmFwcGVyIC5zdGF0aWMtdGFibGUge1xuICAgIHdpZHRoOiAxMzAwcHg7XG4gIH1cbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmNvbnRlbnQgLnRhYmxlLXdyYXBwZXIuZXhwYW5kIC5zdGF0aWMtdGFibGUge1xuICBtYXgtaGVpZ2h0OiAyODBweDtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVzIGVhc2UtaW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiB7XG4gICAgbWF4LWhlaWdodDogY2FsYygyMDBweCAqIDMwKTtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5pbnNpZGVyLXRyZW5kLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmluc2lkZXItdHJlbmQtd3JhcHBlciAudG9wLWFjdGl2aXR5IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICB9XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci10YWJsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluc2lkZXItdHJhbnNhY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAuNWVtO1xuICB9XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC50cmVuZCB7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci10YWJsZSB7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICB9XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC5jcy1pbnNpZGVyLXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTQ1MHB4O1xuICB9XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC5jcy1pbnNpZGVyLXRhYmxlIHRhYmxlIC5jcy1pbnNpZGVyLXRhYmxlX19tZXNzYWdlUm93IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci10YWJsZSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5QaXZvdCBQb2ludHMgU3VwcG9ydCBSZXNpc3RhbmNlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2Fubm91bmNlLWNhbGVuZGFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U5RUFFRjtcbiAgbWFyZ2luOiAwIC0xLjFlbTtcbn1cbi5hbm5vdW5jZV9fZmlsdGVycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cbi5hbm5vdW5jZV9fc2VhcmNoX19wb3B1cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMzhweDtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuLmFubm91bmNlX19zZWFyY2hfX3BvcHVwIC51aS5idXR0b24ge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5hbm5vdW5jZV9fZGF0ZV9fY2FsZW5kZXJWaWV3IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdG9wOiAtMTBweDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICM3MTlhYmM7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBwYWRkaW5nOiAycHggMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nOiAzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5hbm5vdW5jZV9fZGF0ZV9fY2FsZW5kZXJWaWV3IGkge1xuICBmb250LXNpemU6IDEuMmVtO1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5hbm5vdW5jZV9fZGF0ZV9fY2FsZW5kZXJWaWV3LS1zaG93IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmFubm91bmNlX19kYXRlX19jYWxlbmRlclZpZXcge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luOiAxZW0gMCAwLjVlbTtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgfVxufVxuLmFubm91bmNlX19kYXRlX19maWx0ZXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjNDY2RkM1O1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLmZpZWxkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi5hbm5vdW5jZV9fZGF0ZV9fZmlsdGVycyAuZmllbGQgbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgPiAuZmllbGQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMHB4O1xufVxuLmFubm91bmNlX19kYXRlX19maWx0ZXJzIC5kYXRlcmFuZ2Uge1xuICB3aWR0aDogMTM1cHg7XG59XG4uYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLnR3by5maWVsZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICB3aWR0aDogMjgwcHg7XG59XG4uYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBwYWRkaW5nOiA1cHggMCAwIDA7XG4gICAgbWFyZ2luOiA1cHggMCAwIDA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxuICAuYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLmNvbXBhbnlfX3NlbGVjdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmFubm91bmNlX19kYXRlX19maWx0ZXJzIC5maWVsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5hbm5vdW5jZV9fZGF0ZV9fZmlsdGVycyAuZmllbGQgLnVpLmlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLnR3by5maWVsZHMge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLnR3by5maWVsZHMgLmZpZWxkIHtcbiAgICB3aWR0aDogNDklO1xuICB9XG4gIC5hbm5vdW5jZV9fZGF0ZV9fZmlsdGVycyAuYXBwbHkge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxufVxuLmFubm91bmNlX190eXBlX19maWx0ZXIge1xuICBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICBmbGV4OiBhdXRvO1xufVxuLmFubm91bmNlX190eXBlX19maWx0ZXIgLml0ZW0ge1xuICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDIuNWVtIDEuMjVlbSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjN2M3YzgwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7XG4gIGxldHRlci1zcGFjaW5nOiAxLjVweCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuNzVlbSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xufVxuLmFubm91bmNlX190eXBlX19maWx0ZXIgLml0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJCNkE5RSAhaW1wb3J0YW50O1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmFubm91bmNlX19jYWxlbmRhckNvbnRyb2xzIHtcbiAgZm9udC1zaXplOiA0ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzUzODNiMjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggI2U4ZThlODtcbiAgdHJhbnNpdGlvbjogYWxsIDUwMG1zO1xufVxuLmFubm91bmNlX19jYWxlbmRhckNvbnRyb2xzOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjdmZjtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJDb250cm9scy0tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFyQ29udHJvbHMgPiBpIHtcbiAgaGVpZ2h0OiAwLjVlbTtcbiAgd2lkdGg6IDUwcHg7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbjogMCA4cHg7XG4gIGZsZXg6IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMjAwcHg7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbXMgPiBkaXYge1xuICBmbGV4OiAwIDAgMTMuNyU7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbXMgPiBkaXY6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLmFubm91bmNlX19jYWxlbmRhckl0ZW0ge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICBib3gtc2hhZG93OiAxcHggMXB4IDVweCAjZThlOGU4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgMTAwMG1zO1xufVxuLmFubm91bmNlX19jYWxlbmRhckl0ZW0tLXNlbGVjdGVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzlhOWM5ZTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA1cHggIzlhOWM5ZTtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJJdGVtLS1tZXNzYWdlIHtcbiAgZmxleDogMCAwIDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFyRGF0ZSB7XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWFyZ2luOiAwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogNjRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRjdGRjtcbiAgcGFkZGluZzogMTVweCA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJJdGVtLS1zZWxlY3RlZCAuYW5ub3VuY2VfX2NhbGVuZGFyRGF0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMTM2NUI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJEYXRlID4gZGl2IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmFubm91bmNlX19jYWxlbmRhckRhdGUtLXRvZGF5OjpiZWZvcmUge1xuICBjb250ZW50OiAnVE9EQVknO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNTNjOTA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtOHB4O1xuICBsZWZ0OiBjYWxjKDUwJSAtIDI1cHgpO1xuICB3aWR0aDogNTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHotaW5kZXg6IDE7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbSA+IC51aS5kaXZpZGluZy5oZWFkZXIge1xuICBtYXJnaW46IDAuNWVtIDA7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbS0tc2VsZWN0ZWQgPiAudWkuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjNTI4OWNlO1xufVxuLmFubm91bmNlX19jYWxlbmRhckRhdGUgPiBzcGFuIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGVyX19kYXlOdW1iZXIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJfX21vbnRoRGF5V2VlayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFyVGV4dCB7XG4gIGZsZXg6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDc1cHg7XG4gIHBhZGRpbmc6IDE1cHggNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFyVGV4dCAudWkubGFiZWwge1xuICBmb250LXNpemU6IDAuNjg1NzE0cmVtICFpbXBvcnRhbnQ7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGVyX19tb250aCB7XG4gIGZvbnQtc2l6ZTogMC40ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFubm91bmNlX19jYWxlbmRlcl9fZGF5V2Vlayxcbi5hbm5vdW5jZV9fY2FsZW5kZXJfX21vbnRoIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFubm91bmNlX19jYWxlbmRlcl9fZGF5V2VlayB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMC4zZW07XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbS0tc2VsZWN0ZWQgLmFubm91bmNlX19jYWxlbmRlcl9fZGF5V2VlayB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJSZXBvcnRpbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbm5vdW5jZV9fdHlwZU51bWJlcnMge1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJUZXh0ID4gLmFubm91bmNlX190eXBlTnVtYmVyczpub3QobGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4uYW5ub3VuY2VfX3R5cGVOdW1iZXJMYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIHdpZHRoOiAzMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuLmFubm91bmNlX190eXBlTnVtYmVyTGFiZWwtLXdpZHRoQXV0byB7XG4gIG1pbi13aWR0aDogMzBweDtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDAgNXB4O1xufVxuLmFubm91bmNlX190eXBlTnVtYmVyTGFiZWwtLXB1cnBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4OTNBRDY7XG59XG4uYW5ub3VuY2VfX3R5cGVOdW1iZXJMYWJlbC0tb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1NjUzZTtcbn1cbi5hbm5vdW5jZV9fdHlwZU51bWJlckxhYmVsLS10ZWFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4YmNkNDtcbn1cbi5hbm5vdW5jZV9fdHlwZU51bWJlckxhYmVsLS1saXRlYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCMUJBRDY7XG59XG4uYW5ub3VuY2VfX3R5cGVOdW1iZXJMYWJlbC0tc2VhZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzViZjlmO1xufVxuLmFubm91bmNlX190eXBlTnVtYmVyTGFiZWwtLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4YzMxNDtcbn1cbi5hbm5vdW5jZV9fdHlwZU51bWJlclRleHQge1xuICBmb250LXNpemU6IDEuMWVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJFbXB0eSB7XG4gIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ2ZGVnLCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQgMTNweCwgcmdiYSgwLCAwLCAwLCAwLjA1KSAwLCByZ2JhKDAsIDAsIDAsIDAuMDUpIDE3cHgpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDk1cHg7XG4gIG1hcmdpbjogLTEwcHggMDtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJGb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6ICM2MzdhOTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG59XG4uYW5ub3VjZW1lbnQtdGFibGUtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xufVxuLmFubm91bmNlX19tb2RhbEltYWdlV3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgYmFja2dyb3VuZDogIzMzMzMzMztcbiAgaGVpZ2h0OiA5MHZoO1xufVxuI2Fubm91bmNlLXRhYmxlIHRhYmxlIHtcbiAgYm9yZGVyLWxlZnQ6IDBweDtcbiAgYm9yZGVyLXJpZ2h0OiAwcHg7XG59XG4jYW5ub3VuY2UtdGFibGUgLmFubm91bmNlX19jYWxlbmRhckVtcHR5IHtcbiAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgtNDZkZWcsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCA4cHgsIHJnYmEoMCwgMCwgMCwgMC4wNSkgMCwgcmdiYSgwLCAwLCAwLCAwLjA1KSAxMnB4KTtcbiAgbWluLWhlaWdodDogMjVweDtcbn1cbiNhbm5vdW5jZS10YWJsZSAuYW5ub3VuY2VfX2NhbGVuZGFyRW1wdHktLUZSIHtcbiAgbWluLWhlaWdodDogNTVweDtcbn1cbiNhbm5vdW5jZS10YWJsZSAubmV3IHtcbiAgYW5pbWF0aW9uOiBjaGFuZ2UtYmctbmV3LWNvbG9yIDEwcztcbn1cbiNhbm5vdW5jZS10YWJsZSAuaW5mby1tZXNzYWdlIHtcbiAgcGFkZGluZzogNzBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4jYW5ub3VuY2UtdGFibGUgLnVwZGF0ZWQge1xuICBhbmltYXRpb246IGNoYW5nZS1iZy11cGRhdGUtY29sb3IgMTBzO1xufVxuI2Fubm91bmNlLXRhYmxlIHRhYmxlIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jYW5ub3VuY2UtdGFibGUgLnVpLmhlYWRlciB7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2Fubm91bmNlLXRhYmxlIC51aS5zdHJpcGVkLnRhYmxlID4gdHI6bnRoLWNoaWxkKDJuKSxcbiNhbm5vdW5jZS10YWJsZSAudWkuc3RyaXBlZC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoMm4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjA1KTtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkIHRyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkIHRyIHRoLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQgdHIgdGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkIHRyIC5hbm5vdW5jZV9fdGFibGVSb3ctLWZ1bGxXaWR0aCB7XG4gIGZsZXg6IDAgMCAxMDAlICFpbXBvcnRhbnQ7XG59XG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZEhlYWRlciB0aGVhZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxMjhweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDNlbSk7XG4gIHotaW5kZXg6IDEwMjtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAxMHB4IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4zKSAhaW1wb3J0YW50O1xufVxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1GUiB0ciB0aCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGQge1xuICBmbGV4OiAwIDAgOTVweDtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGg6Zmlyc3QtY2hpbGQsXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUZSIHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgZmxleDogYXV0bztcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGg6bGFzdC1jaGlsZCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGQ6bGFzdC1jaGlsZCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGg6bnRoLWNoaWxkKDMpLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1GUiB0ciB0ZDpudGgtY2hpbGQoMyksXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUZSIHRyIHRoOm50aC1jaGlsZCg0KSxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGQ6bnRoLWNoaWxkKDQpIHtcbiAgZmxleDogMCAwIDEwMHB4O1xufVxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1GUiB0ciB0aDpudGgtY2hpbGQoMiksXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUZSIHRyIHRkOm50aC1jaGlsZCgyKSB7XG4gIGZsZXg6IDAgMCAxOTBweDtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tQlJNIHRyIHRoLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1CUk0gdHIgdGQge1xuICBmbGV4OiAwIDAgMTUlO1xufVxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1CUk0gdHIgdGg6Zmlyc3QtY2hpbGQsXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUJSTSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGZsZXg6IGF1dG87XG59XG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUJSTSB0ciB0aDpsYXN0LWNoaWxkLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1CUk0gdHIgdGQ6bGFzdC1jaGlsZCB7XG4gIGZsZXg6IDAgMCAxMiU7XG59XG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUJSTSB0ciB0aDpudGgtY2hpbGQoMiksXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUJSTSB0ciB0ZDpudGgtY2hpbGQoMikge1xuICBmbGV4OiAwIDAgMTglO1xufVxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1FT0dNIHRyIHRoLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1FT0dNIHRyIHRkIHtcbiAgZmxleDogMCAwIDMwJTtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRU9HTSB0ciB0aDpmaXJzdC1jaGlsZCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRU9HTSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGZsZXg6IGF1dG87XG59XG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUVPR00gdHIgdGg6bGFzdC1jaGlsZCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRU9HTSB0ciB0ZDpsYXN0LWNoaWxkIHtcbiAgZmxleDogMCAwIDEyJTtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tUFlUIHRyIHRoLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1QWVQgdHIgdGQge1xuICBmbGV4OiAwIDAgMTIwcHg7XG59XG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLVBZVCB0ciB0aDpmaXJzdC1jaGlsZCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tUFlUIHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgZmxleDogYXV0bztcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tUFlUIHRyIHRoOmxhc3QtY2hpbGQsXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLVBZVCB0ciB0ZDpsYXN0LWNoaWxkIHtcbiAgZmxleDogMCAwIDEwMHB4O1xufVxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1QWVQgdHIgdGg6bnRoLWNoaWxkKDIpLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1QWVQgdHIgdGQ6bnRoLWNoaWxkKDIpLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1QWVQgdHIgdGg6bnRoLWNoaWxkKDgpLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1QWVQgdHIgdGQ6bnRoLWNoaWxkKDgpIHtcbiAgZmxleDogMCAwIDIyNXB4O1xufVxuLmFubm91bmNlX190YWJsZVJvdyB7XG4gIHBhZGRpbmc6IDAgMC41ZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93TGVmdCB7XG4gIGZsZXg6IDAgMCA0MDBweDtcbn1cbi5hbm5vdW5jZV9fdGFibGVSb3dSaWdodCB7XG4gIGZsZXg6IDAgMCAxMDBweDtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cbi5hbm5vdW5jZV9fdGFibGVSb3dfX2NvbXBhbnlOYW1lLFxuLmFubm91bmNlX190YWJsZVJvd19fdGl0bGUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5hbm5vdW5jZV9fdGFibGVSb3dfX2NvbXBhbnlOYW1lIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5hbm5vdW5jZV9fdGFibGVSb3dfX3Bvc3RlZCB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICMyYjZhOWQ7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xufVxuLmFubm91bmNlX190YWJsZVJvd19fY29tcGFueU5hbWUgPiAudWkuYmx1ZS5sYWJlbCB7XG4gIG1pbi13aWR0aDogNjVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLmFubm91Y2VtZW50LXRhYmxlLXdyYXBwZXI6OmFmdGVyIHtcbiAgdG9wOiA4MHB4ICFpbXBvcnRhbnQ7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyIHtcbiAgZmxleDogYXV0bztcbiAgcGFkZGluZzogMWVtO1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICM3MTlhYmM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkN2VkZmY7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyLS1wdXJwbGUge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICM4OTNBRDY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFM0Q1RjI7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyLS1vcmFuZ2Uge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNkNTY1M2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWUyZGE7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyLS1yZWQge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNGRjAwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWUyZGE7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyLS10ZWFsIHtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjMzhiY2Q0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJlZmY3O1xufVxuLmFubm91bmNlX190YWJsZVJvd0NlbnRlci0tZ3JlZW4ge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICMxOGMzMTQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGZkYzY7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyLS1nb2xkIHtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCBnb2xkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTkxO1xufVxuLmFubm91bmNlX190YWJsZVJvd0NlbnRlci0tb2xpdmUge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNDRERDMzk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUZGQzY7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93X19zdWJUZXh0IHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLmFubm91bmNlX190YWJsZVJvd19fb3B0aW9uV3JhcHBlciB7XG4gIGZsZXg6IDAgMCAxMDBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93X19vcHRpb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGNvbG9yOiAjMkM2QTlFO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cbi5hbm5vdW5jZV9fdGFibGVDb2xEaXZpZGVyIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYWJhYmFiICFpbXBvcnRhbnQ7XG59XG4uYW5ub3VuY2VfX3RhYmxlRmlsZXMtLWhvcml6b250YWwge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmFubm91bmNlX190YWJsZUZpbGVzID4gYTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFubm91bmNlX190YWJsZUZpbGVzLS12ZXJ0aWNhbCA+IGE6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi5hbm5vdW5jZV9fdGFibGVGaWxlcy0taG9yaXpvbnRhbCA+IGE6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLmFubm91bmNlX190eXBlX19maWx0ZXItLW1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5hbm5vdW5jZV9fdGFibGVIZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uYW5ub3VuY2VfX3RhYmxlTGVnZW5kcyB7XG4gIHBhZGRpbmc6IDFlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogYXV0bztcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgZm9udC1zaXplOiAwLjdlbTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5hbm5vdW5jZV9fdGFibGVMZWdlbmRzLS1tb2JpbGUge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4uYW5ub3VuY2VfX3RhYmxlTGVnZW5kcyA+IGRpdjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYW5ub3VuY2VfX2xlZ2VuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IGF1dG87XG59XG4uYW5ub3VuY2VfX2xlZ2VuZF9fdGV4dCB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbm5vdW5jZV9fbGVnZW5kX19jb2xvckJsb2NrIHtcbiAgZmxleDogMCAwIDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYW5ub3VuY2VfX3RhYmxlUGVyaW9kIHtcbiAgbWFyZ2luOiAwLjVlbSAwO1xuICBjb2xvcjogZ3JleTtcbn1cbi5hbm5vdW5jZV9fbGVnZW5kX19jb2xvckJsb2NrLS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODkzQUQ2O1xufVxuLmFubm91bmNlX19sZWdlbmRfX2NvbG9yQmxvY2stLW9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNTY1M2U7XG59XG4uYW5ub3VuY2VfX2xlZ2VuZF9fY29sb3JCbG9jay0tcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMDtcbn1cbi5hbm5vdW5jZV9fbGVnZW5kX19jb2xvckJsb2NrLS10ZWFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4YmNkNDtcbn1cbi5hbm5vdW5jZV9fbGVnZW5kX19jb2xvckJsb2NrLS1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOGMzMTQ7XG59XG4uYW5ub3VuY2VfX2xlZ2VuZF9fY29sb3JCbG9jay0tZ29sZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGdvbGQ7XG59XG4uYW5ub3VuY2VfX2xlZ2VuZF9fY29sb3JCbG9jay0tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MTlhYmM7XG59XG4uYW5ub3VuY2VfX2xlZ2VuZF9fY29sb3JCbG9jay0tb2xpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0REQzM5O1xufVxuQGtleWZyYW1lcyBjaGFuZ2UtYmctbmV3LWNvbG9yIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjFjODtcbiAgfVxuICB0byB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cbn1cbkBrZXlmcmFtZXMgY2hhbmdlLWJnLXVwZGF0ZS1jb2xvciB7XG4gIGZyb20ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYmQ5ZjE7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MjBweCkge1xuICAuYW5ub3VjZW1lbnQtY2FsZW5kYXItd3JhcHBlcixcbiAgLmFubm91Y2VtZW50LXRhYmxlLXdyYXBwZXIge1xuICAgIGZvbnQtc2l6ZTogMC45NWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXIge1xuICAgIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTM3NXB4KSB7XG4gIC5hbm5vdWNlbWVudC1jYWxlbmRhci13cmFwcGVyLFxuICAuYW5ub3VjZW1lbnQtdGFibGUtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAwLjllbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzNTBweCkge1xuICAuYW5ub3VjZW1lbnQtY2FsZW5kYXItd3JhcHBlcixcbiAgLmFubm91Y2VtZW50LXRhYmxlLXdyYXBwZXIge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXIge1xuICAgIGZvbnQtc2l6ZTogMS4wMmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTMyNXB4KSB7XG4gIC5hbm5vdWNlbWVudC1jYWxlbmRhci13cmFwcGVyLFxuICAuYW5ub3VjZW1lbnQtdGFibGUtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyIHtcbiAgICBmb250LXNpemU6IDEuMDZlbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzMDBweCkge1xuICAuYW5ub3VjZW1lbnQtY2FsZW5kYXItd3JhcHBlcixcbiAgLmFubm91Y2VtZW50LXRhYmxlLXdyYXBwZXIge1xuICAgIGZvbnQtc2l6ZTogMC43NWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXIge1xuICAgIGZvbnQtc2l6ZTogMS4xZW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc1cHgpIHtcbiAgLmFubm91Y2VtZW50LWNhbGVuZGFyLXdyYXBwZXIsXG4gIC5hbm5vdWNlbWVudC10YWJsZS13cmFwcGVyIHtcbiAgICBmb250LXNpemU6IDAuN2VtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXIge1xuICAgIGZvbnQtc2l6ZTogMS4yZW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjUwcHgpIHtcbiAgLmFubm91Y2VtZW50LWNhbGVuZGFyLXdyYXBwZXIsXG4gIC5hbm5vdWNlbWVudC10YWJsZS13cmFwcGVyIHtcbiAgICBmb250LXNpemU6IDAuNjVlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyIHtcbiAgICBmb250LXNpemU6IDEuM2VtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIyNXB4KSB7XG4gIC5hbm5vdWNlbWVudC1jYWxlbmRhci13cmFwcGVyLFxuICAuYW5ub3VjZW1lbnQtdGFibGUtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAwLjZlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyIHtcbiAgICBmb250LXNpemU6IDEuNGVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIC5hbm5vdWNlbWVudC1jYWxlbmRhci13cmFwcGVyLFxuICAuYW5ub3VjZW1lbnQtdGFibGUtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAwLjU1ZW0gIWltcG9ydGFudDtcbiAgfVxuICAuYW5ub3VuY2VfX3R5cGVfX2ZpbHRlciB7XG4gICAgZm9udC1zaXplOiAxLjVlbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5hbm5vdW5jZV9fbGVnZW5kIHtcbiAgICBmbGV4OiAwIDAgNDglO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICB9XG4gIC5hbm5vdW5jZV9fc2VhcmNoX19wb3B1cCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmFubm91bmNlX19kYXRlX19maWx0ZXJzLS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5hbm5vdW5jZV9fdGFibGVMZWdlbmRzLS1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZUxlZ2VuZHMtLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmFubm91Y2VtZW50LWNhbGVuZGFyLXdyYXBwZXIsXG4gIC5hbm5vdWNlbWVudC10YWJsZS13cmFwcGVyIHtcbiAgICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyIHtcbiAgICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyLS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXItLW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkI2QTlFICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJCNkE5RSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyLS1tb2JpbGUgLnRleHQsXG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyLS1tb2JpbGUgaSB7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXItLW1vYmlsZSAubWVudSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJCNkE5RSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyLS1tb2JpbGUgLnRleHQge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXItLW1vYmlsZS51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIHtcbiAgICBwYWRkaW5nOiAxLjVlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyLS1tb2JpbGUudWkuZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IHVuc2V0O1xuICB9XG4gIC5hbm5vdW5jZV9fY2FsZW5kYXJDb250cm9scyB7XG4gICAgZm9udC1zaXplOiAzZW07XG4gIH1cbiAgLmFubm91bmNlX19jYWxlbmRhckNvbnRyb2xzID4gaSB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgbWFyZ2luOiAwcHg7XG4gIH1cbiAgLmFubm91bmNlX19jYWxlbmRhckl0ZW1zIHtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIH1cbiAgLmFubm91bmNlX19jYWxlbmRhckl0ZW1zID4gZGl2IHtcbiAgICBmbGV4OiAwIDAgMjAwcHg7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZVJvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZVJvd0NlbnRlciB7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgfVxuICAuYW5ub3VuY2VfX3RhYmxlUm93UmlnaHQge1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAjYW5ub3VuY2UtdGFibGUgLnVpLmhlYWRlciB7XG4gICAgcGFkZGluZzogMC41ZW07XG4gIH1cbiAgLmFubm91bmNlX190YWJsZUhlYWRlciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuYW5ub3VuY2VfX3RhYmxlTGVnZW5kcyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gIH1cbiAgLmFubm91bmNlX19sZWdlbmQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICB9XG4gIC5hbm5vdWNlbWVudC1jYWxlbmRhci13cmFwcGVyOmZpcnN0LWNoaWxkIHtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gIH1cbiAgLmFubm91bmNlX19maWx0ZXJzIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgdG9wOiBjYWxjKDEwMHB4IC0gMC41ZW0pO1xuICAgIGxlZnQ6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxZW07XG4gIH1cbiAgLmFubm91bmNlX19maWx0ZXJzIC51aS5kcm9wZG93bixcbiAgLmFubm91bmNlX19maWx0ZXJzIC51aS5idXR0b24ge1xuICAgIGJveC1zaGFkb3c6IDNweCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZVJvdyB7XG4gICAgcGFkZGluZzogMHB4O1xuICB9XG4gIC5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tQlJNIHRyIHRkLFxuICAuYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUZSIHRyIHRkLFxuICAuYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUVPR00gdHIgdGQsXG4gIC5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tUFlUIHRyIHRkIHtcbiAgICBmbGV4OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZS0tbW9iaWxlIC5jb21wYW55LXR5cGUge1xuICAgIG1hcmdpbjogMHB4O1xuICB9XG4gIC5hbm5vdW5jZV9fdGFibGUtLW1vYmlsZSAuYW5ub3VuY2VfX3RhYmxlUm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAuYW5ub3VuY2VfX3RhYmxlLS1tb2JpbGUgLmFubm91bmNlX190YWJsZVJvd0xlZnQsXG4gIC5hbm5vdW5jZV9fdGFibGUtLW1vYmlsZSAuYW5ub3VuY2VfX3RhYmxlUm93UmlnaHQge1xuICAgIGZsZXg6IGF1dG87XG4gIH1cbiAgLmFubm91bmNlX190YWJsZS0tbW9iaWxlIC5hbm5vdW5jZV9fdGFibGVSb3dMZWZ0IHtcbiAgICBmbGV4OiAwIDAgMTMwcHg7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZS0tbW9iaWxlIC5hbm5vdW5jZV9fdGFibGVQZXJpb2Qge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAjOGVhZmNhO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5hbm5vdW5jZV9fdGFibGUtLW1vYmlsZSAuYW5ub3VuY2VfX21vYmlsZVRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC5hbm5vdW5jZV9fdGFibGUtLW1vYmlsZSAuYW5ub3VuY2VfX21vYmlsZVRhYmxlID4gZGl2IHtcbiAgICBwYWRkaW5nOiAwLjA1ZW0gMC4yNWVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLmFubm91bmNlX190YWJsZS0tbW9iaWxlIC5hbm5vdW5jZV9fbW9iaWxlVGFibGUgPiBkaXYgPiBzcGFuIHtcbiAgICBjb2xvcjogZ3JleTtcbiAgfVxuICAuYW5ub3VuY2VfX3RhYmxlLS1tb2JpbGUgLmFubm91bmNlX19tb2JpbGVUYWJsZSA+IGRpdiA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEluZGljZXMgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1pbmRpY2VzLXBhZ2UgLnVpLmxvYWRpbmcuc2VnbWVudDpiZWZvcmUsXG4jY3MtaW5kaWNlcy1wYWdlIC51aS5sb2FkaW5nLnNlZ21lbnQ6YWZ0ZXIge1xuICB6LWluZGV4OiAxMDtcbn1cbiNjcy1pbmRpY2VzLXBhZ2UgPiAuY29sdW1uLFxuI2NzLWluZGljZXMtcGFnZSA+IC5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4jY3MtaW5kaWNlcy1wYWdlID4gLnJvdyB7XG4gIHBhZGRpbmc6IDBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluZGljZXMtcGFnZSA+IC5jb2x1bW4sXG4gICNjcy1pbmRpY2VzLXBhZ2UgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5pbmRpY2VzX19tZW51X193cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLmluZGljZXNfX21lbnVfX3dyYXBwZXIgI2NzLWtzZS1pbmRpY2VzIHtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNzVweCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBtYXJnaW46IDAuNWVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuaW5kaWNlc19fbWVudV9fd3JhcHBlciAjY3Mta3NlLWluZGljZXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uaW5kaWNlc19fbWVudSA+IC5jb2x1bW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5pbmRpY2VzX19tZW51ID4gLmNvbHVtbjo6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogM3B4O1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cztcbn1cbi5pbmRpY2VzX19tZW51ID4gLmNvbHVtbjpob3Zlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjBkM2YwO1xufVxuLmluZGljZXNfX21lbnUgPiAuY29sdW1uLmFjdGl2ZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmI2YmE4O1xufVxuLmluZGljZXNfX2hlYWRlciB7XG4gIGNvbG9yOiAjNTg1ODU4O1xuICBmb250LXNpemU6IDEuNWVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG4uaW5kaWNlc19faGVhZGVyLS10YWJzLFxuLmluZGljZXNfX2hlYWRlci0tc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbi5pbmRpY2VzX19oZWFkZXJUYWJzIHtcbiAgYm9yZGVyOiAzcHggc29saWQgIzJiNmJhODtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmluZGljZXNfX2hlYWRlclRhYnMgLnVpLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmI2YmE4ICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IGF1dG87XG4gIG1pbi13aWR0aDogMTMwcHg7XG4gIHBhZGRpbmc6IDAuNnJlbSAxcmVtO1xufVxuLmluZGljZXNfX2hlYWRlclRhYnMgLnVpLmJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJiNmJhOCAhaW1wb3J0YW50O1xufVxuLmluZGljZXNfX21hcmtldF9fdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuLmluZGljZXNfX21hcmtldF9fdGFibGUtLW5vTWFyZ2luIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4uaW5kaWNlc19fbWFya2V0X190YWJsZSB0ZCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5pbmRpY2VzX19tYXJrZXRfX3RhYmxlLS1ob3Jpem9udGFsIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RhZGFkYTtcbn1cbi5pbmRpY2VzX19tYXJrZXRfX3RhYmxlLS1jZW50ZXIgdGQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uaW5kaWNlc19fbWFya2V0X190YWJsZSB0aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG4gIGNvbG9yOiAjNzE3MTcxO1xufVxuLmluZGljZXNfX21hcmtldF9fdGFibGUtLWhvcml6b250YWwgdGgge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGFkYWRhO1xufVxuLmluZGljZXNfX21hcmtldF9fdGFibGUtLWNlbnRlciB0aCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5pbmRpY2VzX19tYXJrZXRfX3RhYmxlIHRkLFxuLmluZGljZXNfX21hcmtldF9fdGFibGUgdGgge1xuICBwYWRkaW5nOiA3cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyO1xufVxuLmluZGljZXNfX21hcmtldF9fdGFibGUtLWhvcml6b250YWwgdGgge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBwYWRkaW5nOiAycHg7XG59XG4uaW5kaWNlc19fbWFya2V0X190YWJsZSAuZ3JlZW4ge1xuICBjb2xvcjogIzQyRDA0NDtcbn1cbi5pbmRpY2VzX19tYXJrZXRfX3RhYmxlIC5yZWQge1xuICBjb2xvcjogI2ZmMWIxYjtcbn1cbi5pbmRpY2VzX192b2x1bWVfX3RhYmxlIC5pbmRpY2VzX19tYXJrZXRfX3RhYmxlIHRkLFxuLmluZGljZXNfX3ZvbHVtZV9fdGFibGUgLmluZGljZXNfX21hcmtldF9fdGFibGUgdGgge1xuICB3aWR0aDogNTAlO1xufVxuLmluZGljZXNfX3JhbmdlU2NhbGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG4uaW5kaWNlc19fcmFuZ2VTY2FsZSB7XG4gIGZsZXg6IDAgMCA0OSU7XG59XG4uaW5kaWNlc19fcmFuZ2VTY2FsZSAudWkuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuMnJlbTtcbn1cbi5pbmRpY2VzX192b2x1bWUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmluZGljZXNfX3ZvbHVtZS0tbWFyZ2luQm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuLmluZGljZXNfX3ZvbHVtZSA+IGRpdiB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIGhlaWdodDogNzBweDtcbn1cbi5pbmRpY2VzX19jaGFydCAuYmFyLnBvc2l0aXZlIHtcbiAgZmlsbDogIzJGQzc5OCAhaW1wb3J0YW50O1xufVxuLmluZGljZXNfX2NoYXJ0IC5iYXIubmVnYXRpdmUge1xuICBmaWxsOiAjYzcyMTUyICFpbXBvcnRhbnQ7XG59XG4uaW5kaWNlc19fY2hhcnQgLnRvb2wtY29sb3ItYmxvY2suZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkZDNzk4O1xufVxuLmluZGljZXNfX2NoYXJ0IC50b29sLWNvbG9yLWJsb2NrLnJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNzIxNTI7XG59XG4uaW5kaWNlc19fY2hhcnQgdGV4dC5iYXItdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uaW5kaWNlc19fY2hhcnQgdGV4dC5iYXItdGV4dC5ncmVlbiB7XG4gIHN0cm9rZTogIzJGQzc5ODtcbn1cbi5pbmRpY2VzX19jaGFydCB0ZXh0LmJhci10ZXh0LnJlZCB7XG4gIHN0cm9rZTogI2M3MjE1Mjtcbn1cbi5pbmRpY2VzX19jaGFydCAueS1ncmlkIHtcbiAgc3Ryb2tlOiByZ2JhKDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7XG59XG4uaW5kaWNlc19fY2hhcnQgLnRpY2sgdGV4dCB7XG4gIG9wYWNpdHk6IDA7XG59XG4uaW5kaWNlc19fY2hhcnQgLmNzLXNlY3Rvci10cmVlbWFwIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5pbmRpY2VzX19jaGFydCAuY3Mtc2VjdG9yLXRyZWVtYXAgLnNjYWxlIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5pbmRpY2VzX19jaGFydCAuY3Mtc2VjdG9yLXRyZWVtYXAgLnNjYWxlIGRpdiB7XG4gIG1hcmdpbjogMHB4O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdGhlYWQgdHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkOGQ4O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUtLWZpeGVkIHtcbiAgcGFkZGluZy10b3A6IDM1cHg7XG59XG4uaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZS0tZml4ZWQgdGhlYWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMjAycHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0ZW0pO1xuICB6LWluZGV4OiAxMDtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAxMHB4IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4zKSAhaW1wb3J0YW50O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGg6bm90KDpmaXJzdC1jaGlsZCksXG4uaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0ZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGg6Zmlyc3QtY2hpbGQsXG4uaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGZsZXg6IGF1dG87XG59XG4uaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0aCxcbi5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRkIHtcbiAgZmxleDogMCAwIDEwN3B4O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdGhlYWQgdHIgdGgge1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQjZCNkJCICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQjZCNkJCICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNWVtICFpbXBvcnRhbnQ7XG59XG4uaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0aGVhZCB0ciB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0I2QjZCQiAhaW1wb3J0YW50O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdGhlYWQgdHIgdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNCNkI2QkIgIWltcG9ydGFudDtcbn1cbi5pbmRpY2VzX190YWIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmluZGljZXNfX3RhYi0tYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uaW5kaWNlc19fc3ltYm9sIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogODBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmluZGljZXNfX2JhclN0YXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG59XG4uaW5kaWNlc19fYmFyU3RhdC0tc3ltYm9sIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5pbmRpY2VzX19iYXJTdGF0cy0tZ3JlZW4ge1xuICBib3gtc2hhZG93OiA1cHggNXB4IDBweCAjMkZDNzk4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyRkM3OTggIWltcG9ydGFudDtcbn1cbi5pbmRpY2VzX19iYXJTdGF0cy0tcmVkIHtcbiAgYm94LXNoYWRvdzogNXB4IDVweCAwcHggI2M3MjE1MiAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzcyMTUyICFpbXBvcnRhbnQ7XG59XG4uaW5kaWNlc19fYmFyU3RhdCB7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiA5MHB4O1xufVxuLmluZGljZXNfX2JhclN0YXRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAwLjdlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLmluZGljZXNfX2JhclN0YXRzIC5pbmRpY2VzX19iYXJTdGF0Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZWFlYWVhO1xufVxuLmluZGljZXNfX2JhclN0YXRfX3ZhbHVlLS1ncmVlbiB7XG4gIGNvbG9yOiAjMkZDNzk4O1xufVxuLmluZGljZXNfX2JhclN0YXRfX3ZhbHVlLS1yZWQge1xuICBjb2xvcjogI2M3MjE1Mjtcbn1cbi5pbmRpY2VzX19iYXJTdGF0LS1uYW1lIHtcbiAgZm9udC1zaXplOiAwLjdlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5pbmRpY2VzX190YWJbZGF0YS10YWI9Y29tcGFuaWVzXSAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0aDpudGgtY2hpbGQoMiksXG4uaW5kaWNlc19fdGFiW2RhdGEtdGFiPWNvbXBhbmllc10gLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGQ6bnRoLWNoaWxkKDIpLFxuLmluZGljZXNfX3RhYltkYXRhLXRhYj1jb21wYW5pZXNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRoOm50aC1jaGlsZCgzKSxcbi5pbmRpY2VzX190YWJbZGF0YS10YWI9Y29tcGFuaWVzXSAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0ZDpudGgtY2hpbGQoMyksXG4uaW5kaWNlc19fdGFiW2RhdGEtdGFiPWNvbXBhbmllc10gLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGg6bnRoLWNoaWxkKDQpLFxuLmluZGljZXNfX3RhYltkYXRhLXRhYj1jb21wYW5pZXNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRkOm50aC1jaGlsZCg0KSB7XG4gIGZsZXg6IDAgMCAxMjVweDtcbn1cbi5pbmRpY2VzX190YWJbZGF0YS10YWI9Y29tcGFuaWVzXSAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0aDpsYXN0LWNoaWxkLFxuLmluZGljZXNfX3RhYltkYXRhLXRhYj1jb21wYW5pZXNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRkOmxhc3QtY2hpbGQge1xuICBmbGV4OiAwIDAgMTU1cHg7XG59XG4uaW5kaWNlc19fdGFiW2RhdGEtdGFiPXNlY3RvcnNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRoOm50aC1jaGlsZCgyKSxcbi5pbmRpY2VzX190YWJbZGF0YS10YWI9c2VjdG9yc10gLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGQ6bnRoLWNoaWxkKDIpLFxuLmluZGljZXNfX3RhYltkYXRhLXRhYj1zZWN0b3JzXSAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0aDpudGgtY2hpbGQoMyksXG4uaW5kaWNlc19fdGFiW2RhdGEtdGFiPXNlY3RvcnNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRkOm50aC1jaGlsZCgzKSB7XG4gIGZsZXg6IDAgMCAxMjVweDtcbn1cbi5pbmRpY2VzX190YWJbZGF0YS10YWI9c2VjdG9yc10gLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGg6bnRoLWNoaWxkKDQpLFxuLmluZGljZXNfX3RhYltkYXRhLXRhYj1zZWN0b3JzXSAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0ZDpudGgtY2hpbGQoNCksXG4uaW5kaWNlc19fdGFiW2RhdGEtdGFiPXNlY3RvcnNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRoOm50aC1jaGlsZCg1KSxcbi5pbmRpY2VzX190YWJbZGF0YS10YWI9c2VjdG9yc10gLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGQ6bnRoLWNoaWxkKDUpIHtcbiAgZmxleDogMCAwIDE1NXB4O1xufVxuLmluZGljZXNfX3NlY3Rvcl9fY2hhcnQge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4jY3MtaW5kaWNlcy1zdW5idXJzdC1jaGFydCB7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5pbmRpY2VzX19wZXJmb3JtYW5jZV9fZGl2aWRlciB7XG4gIG1hcmdpbjogMWVtIDA7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzVjNWM1O1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX190aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMS43ZW07XG4gIG1hcmdpbjogMC41ZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3RpdGxlLS1kdWFsTWFyZ2luIHtcbiAgbWFyZ2luOiAwLjdlbSAwO1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX19zdGF0VGl0bGUge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRzID4gZGl2IHtcbiAgZmxleDogMCAwIDUwJTtcbn1cbi5pbmRpY2VzX19wZXJmb3JtYW5jZV9fc3RhdCB7XG4gIHBhZGRpbmc6IDAuNWVtIDA7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRWYWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRWYWx1ZSBpIHtcbiAgd2lkdGg6IGF1dG87XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRDaGFuZ2Uge1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRWYWx1ZS0tcmVkIHtcbiAgY29sb3I6ICNmZjFiMWI7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRWYWx1ZS0tZ3JlZW4ge1xuICBjb2xvcjogIzQyRDA0NDtcbn1cbi5pbmRpY2VzX19wZXJmb3JtYW5jZV9fc3RhdFZhbHVlLS1ibHVlIHtcbiAgY29sb3I6ICMwNzUyODM7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX2NoYW5nZVBlcmNlbnQge1xuICBmb250LXNpemU6IDAuN2VtO1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX190YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX190YWJsZSB0ZCxcbi5pbmRpY2VzX19wZXJmb3JtYW5jZV9fdGFibGUgdGgge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNWVtO1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX190YWJsZSB0aCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3RhYmxlIHRkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3RhYmxlIHRkLmdyZWVuIHtcbiAgY29sb3I6ICMwNzcyMEU7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3RhYmxlIHRkLnJlZCB7XG4gIGNvbG9yOiAjZjAzODI4O1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX190YWJsZSB0ZC5ibHVlIHtcbiAgY29sb3I6ICMwNzUyODM7XG59XG4uaW5kaWNlc19fa3NlU3RhdHNfX3RhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbn1cbi5pbmRpY2VzX19rc2VTdGF0c19fdGFibGUgdHIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmluZGljZXNfX2tzZVN0YXRzX190YWJsZSB0ZCxcbi5pbmRpY2VzX19rc2VTdGF0c19fdGFibGUgdGgge1xuICBmbGV4OiAxO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAwLjhlbSAwO1xuICBmb250LXNpemU6IDEuMWVtO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMzMzMgNDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDIwJSk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbTtcbiAgYmFja2dyb3VuZC1zaXplOiAzcHggMnB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uaW5kaWNlc19fa3NlU3RhdHNfX3RhYmxlIHRoIHtcbiAgY29sb3I6ICM1ZjVkNWU7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbi5pbmRpY2VzX19rc2VTdGF0c19fdGFibGUgdGQge1xuICBjb2xvcjogIzYzNjI2MztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5pbmRpY2VzX19rc2VTdGF0c19fdGFibGUgdHIgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuLmluZGljZXNfX2tzZVN0YXRzX190YWJsZSB0ciB0ZDpudGgtY2hpbGQoMykge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5pbmRpY2VzX19rc2VTdGF0c19fdGFibGUgLnJlZCB7XG4gIGNvbG9yOiAjZmYxYjFiO1xufVxuLmluZGljZXNfX2tzZVN0YXRzX190YWJsZSAuZ3JlZW4ge1xuICBjb2xvcjogIzQyRDA0NDtcbn1cbi5pbmRpY2VzX19ub3RlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtc3R5bGU6IHJpZ2h0O1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogZ3JleTtcbn1cbi5pbmRpY2VzX19zdGF0dXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmluZGljZXNfX3N0YXR1c1B1bHNlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiAjNTc2NzdmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaGFkb3c6IDAgMCAwIHJnYmEoMjA0LCAxNjksIDQ0LCAwLjQpO1xuICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlO1xufVxuLmluZGljZXNfX3N0YXR1c1RleHQge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogIzU3Njc3Zjtcbn1cbi5pbmRpY2VzX19zdGF0dXMtLWxpdmUgLmluZGljZXNfX3N0YXR1c1B1bHNlIHtcbiAgYmFja2dyb3VuZDogIzMwQzc5QjtcbiAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSg0OSwgMTk5LCAxNTUsIDAuNCk7XG4gIGFuaW1hdGlvbjogcHVsc2VMaXZlIDJzIGluZmluaXRlO1xufVxuLmluZGljZXNfX3N0YXR1cy0tbGl2ZSAuaW5kaWNlc19fc3RhdHVzVGV4dCB7XG4gIGNvbG9yOiAjMzBDNzlCO1xufVxuLmluZGljZXNfX3N0YXR1cy0tY2xvc2UgLmluZGljZXNfX3N0YXR1c1B1bHNlIHtcbiAgYmFja2dyb3VuZDogI2NlY2VjZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgI2NlY2VjZTtcbiAgYW5pbWF0aW9uOiBub25lO1xufVxuLmluZGljZXNfX3N0YXR1cy0tY2xvc2UgLmluZGljZXNfX3N0YXR1c1RleHQge1xuICBjb2xvcjogI2NlY2VjZTtcbn1cbi5pbmRpY2VzX19tZW51TW9iaWxlX193cmFwcGVyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgdG9wOiA5NHB4O1xuICB6LWluZGV4OiAtMTtcbiAgb3BhY2l0eTogMDtcbiAgbGVmdDogMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgNTAwbXM7XG59XG4uaW5kaWNlc19fbWVudU1vYmlsZV9fd3JhcHBlciAuZHJvcGRvd24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5pbmRpY2VzX19tZW51TW9iaWxlX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4uaW5kaWNlc19fbWVudU1vYmlsZV9fd3JhcHBlci0tc2hvdyB7XG4gIHotaW5kZXg6IDIwO1xuICBvcGFjaXR5OiAxO1xufVxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoODcsIDEwMywgMTI3LCAwLjQpO1xuICB9XG4gIDcwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDg3LCAxMDMsIDEyNywgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDg3LCAxMDMsIDEyNywgMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcHVsc2VMaXZlIHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg0OSwgMTk5LCAxNTUsIDAuNCk7XG4gIH1cbiAgNzAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoNDksIDE5OSwgMTU1LCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoNDksIDE5OSwgMTU1LCAwKTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuaW5kaWNlc19fcGVyZm9ybWFuY2VfX2RpdmlkZXIge1xuICAgIG1hcmdpbjogMC41ZW0gMDtcbiAgfVxuICAuaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRUaXRsZSB7XG4gICAgZm9udC1zaXplOiAwLjc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbiAgLmluZGljZXNfX2tzZVN0YXRzX190YWJsZSB0aCB7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxuICAuaW5kaWNlc19fdm9sdW1lID4gZGl2IHtcbiAgICBmbGV4OiAwIDAgMzUlO1xuICB9XG4gIC5pbmRpY2VzX192b2x1bWVfX3RhYmxlIHtcbiAgICBmbGV4OiAwIDAgNjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmluZGljZXNfX21hcmtldF9fdGFibGUgdGgge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gIH1cbiAgLmluZGljZXNfX2hlYWRlci0tdGFicyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuaW5kaWNlc19faGVhZGVyLS10YWJzIC5pbmRpY2VzX19oZWFkZXJUZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG4gIC5pbmRpY2VzX19oZWFkZXJUYWJzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuaW5kaWNlc19fY2hhcnQgdGV4dC5iYXItdGV4dCB7XG4gICAgZm9udC1zaXplOiAwLjY1ZW07XG4gIH1cbiAgLmluZGljZXNfX2JhclN0YXRzIHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5pbmRpY2VzX19iYXJTdGF0IHtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgbWluLXdpZHRoOiA3MHB4O1xuICB9XG4gIC5pbmRpY2VzX19iYXJTdGF0X190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIC5pbmRpY2VzX19iYXJTdGF0LS1uYW1lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5pbmRpY2VzX19iYXJTdGF0LS1zeW1ib2wge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuaW5kaWNlc19fYmFyU3RhdC0tbWNhcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZS0tZml4ZWQge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gIH1cbiAgLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUtLWZpeGVkIHRoZWFkIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9XG4gIC5pbmRpY2VzX190YWIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxuICAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB7XG4gICAgd2lkdGg6IDEyNTBweCAhaW1wb3J0YW50O1xuICB9XG4gIC5pbmRpY2VzX192b2x1bWVfX3RhYmxlIC5pbmRpY2VzX19tYXJrZXRfX3RhYmxlIHRkLFxuICAuaW5kaWNlc19fdm9sdW1lX190YWJsZSAuaW5kaWNlc19fbWFya2V0X190YWJsZSB0aCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLmluZGljZXNfX2R1bW15X193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEhlbHAgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1oZWxwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbiNjcy1oZWxwLXRhYnMgPiAuY3NfX3RhYl9fY29udGVudHMge1xuICBtYXJnaW4tdG9wOiAxODJweDtcbn1cbi5jc19faGVscF9fY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG59XG4uY3NfX2hlbHBfX2NvbnRlbnQgaDIge1xuICBtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDtcbn1cbi5jc19faGVscF9fY29udGVudCAudXJkIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBcIlVyZHUgTmFzdGFsaXEgVW5pY29kZVwiO1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuLmNzX19oZWxwX19jb250ZW50IHVsLnVyZCxcbi5jc19faGVscF9fY29udGVudCBvbC51cmQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cbi5jc19faGVscF9fY29udGVudCAudWkuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uY3NfX2hlbHBfX2xhbmdCdG4ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBwYWRkaW5nOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLmNzX19oZWxwX19sYW5nQnRuIC50ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuLmNzX19oZWxwX19pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMiAhaW1wb3J0YW50O1xufVxuLmNzX19oZWxwX19pbWFnZVBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNXB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgb3BhY2l0eTogMDtcbn1cbi5jc19faGVscF9faW1hZ2U6aG92ZXIgLmNzX19oZWxwX19pbWFnZVBhbmVsIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5jc19faGVscF9fdXBsb2FkSW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY3NfX2hlbHBfX3VwbG9hZEltYWdlIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgb3BhY2l0eTogMDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEhlbHAgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1wb3J0LWludmVzdC1wYWdlIC5jcy1jaGFydCAubmVnYXRpdmUge1xuICBmaWxsOiAjYzcyMTUyO1xufVxuI2NzLXBvcnQtaW52ZXN0LXBhZ2UgLmNzLWNoYXJ0IC5wb3NpdGl2ZSB7XG4gIGZpbGw6ICMyRkM3OTg7XG59XG4jY3MtcG9ydC1pbnZlc3QtcGFnZSAuY3MtdHlwZS1idXR0b25zIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbiNjcy1wb3J0LWludmVzdC1wYWdlIC51aS5ncmlkIHtcbiAgbWFyZ2luOiAtMC41ZW07XG59XG4jY3MtcG9ydC1pbnZlc3QtcGFnZSAudWkuZ3JpZCAuY29sdW1uIHtcbiAgcGFkZGluZzogMC41ZW07XG59XG4jY3MtcG9ydC1pbnZlc3QtcGFnZSAuY3NfX3RhYmxlIHRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbiNjcy1wb3J0LWludmVzdC1wYWdlIC5jc19fdGFibGUgdGJvZHkgdHIgdGQge1xuICB3aWR0aDogODBweDtcbn1cbiNjcy1wb3J0LWludmVzdC1wYWdlIC5pbmRpY2VzX19ub3RlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4jY3MtcG9ydC1pbnZlc3QtcGFnZSAuaW5kaWNlc19fbm90ZSAuaW5kaWNlc19fbm90ZS0tbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLXBvcnQtaW52ZXN0LXBhZ2UgLmluZGljZXNfX25vdGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAjY3MtcG9ydC1pbnZlc3QtcGFnZSAuaW5kaWNlc19fbm90ZSAuaW5kaWNlc19fbm90ZS0tZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjY3MtcG9ydC1pbnZlc3QtcGFnZSAuaW5kaWNlc19fbm90ZSAuaW5kaWNlc19fbm90ZS0tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuI2NzLXBvcnQtaW52ZXN0LXBhZ2UgLm1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1wb3J0LWludmVzdC1wYWdlIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1wb3J0LWludmVzdC1wYWdlIC5tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gICNjcy1wb3J0LWludmVzdC1wYWdlIC5kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uY3NfX3BvcnRfX3RvcFBhbmVsIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBjYWxjKDk3JSk7XG4gIHRvcDogMTUwcHg7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuNSksIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuNSkgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX19wb3J0X190b3BQYW5lbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5jc19fcG9ydF9fdG9wSGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4uY3NfX3BvcnRfX3RvcEhlYWRlciAudWkuaGVhZGVyIHtcbiAgbWFyZ2luOiAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5jc19fcG9ydF9fdG9wSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cbiAgLmNzX19wb3J0X190b3BIZWFkZXIgaDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLmNzX19wb3J0X190b3BIZWFkZXJCdXR0b25zID4gZGl2Om5vdChmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogMWVtICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5jc19fcG9ydF9fdG9wSGVhZGVyQnV0dG9ucyA+IGRpdjpub3QoZmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX19wb3J0X190b3BIZWFkZXJCdXR0b25zIC51aS5kcm9wZG93biB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMWVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5jc19fcG9ydF9fc2VjdG9yQ2hhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY3NfX3BvcnRfX3NlY3RvckNoYXJ0IC5yZWQge1xuICBjb2xvcjogI2M3MjE1Mjtcbn1cbi5jc19fcG9ydF9fc2VjdG9yQ2hhcnQgLmdyZWVuIHtcbiAgY29sb3I6ICMyRkM3OTg7XG59XG4uY3NfX3BvcnRfX3NlY3RvckNoYXJ0IC50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmNzX19wb3J0X19zZWN0b3JDaGFydCAuYXhpcyBwYXRoLFxuLmNzX19wb3J0X19zZWN0b3JDaGFydCAuYXhpcyBsaW5lIHtcbiAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzO1xufVxuLmNzX19wb3J0X19zZWN0b3JDaGFydCBkaXYudG9vbHRpcCB7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGxlZnQ6IDBweDtcbiAgdG9wOiAwcHg7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjI1KTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX19wb3J0X19jaGFydCAuY3MtY2hhcnQge1xuICAgIHdpZHRoOiAxNTAlO1xuICB9XG4gIC5jc19fcG9ydF9fc2VjdG9yQ2hhcnQge1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBDbGllbnQgUG9ydGZvbGlvcyBQYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLWNsaWVudC1wb3J0Zm9saW8ge1xuICBtYXJnaW4tdG9wOiAxMjdweCAhaW1wb3J0YW50O1xufVxuLmNzLWNscG9ydF9fbWVudSB7XG4gIGhlaWdodDogNTFweDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuLmNzLWNscG9ydF9fbWVudSAudWkubWVudSB7XG4gIG1hcmdpbi10b3A6IDEyN3B4O1xuICB6LWluZGV4OiAxO1xufVxuLmNzLWNscG9ydF9fbWVudSAudWkubWVudSAudWkuZHJvcGRvd24gLnRleHQgaS5jaGVja21hcmsge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNzLWNscG9ydF9fbWVudSAudWkubWVudSAudWkuZHJvcGRvd24gLml0ZW0gaS5jaGVja21hcmsge1xuICBjb2xvcjogIzI0ZDIyNDtcbiAgb3BhY2l0eTogMDtcbn1cbi5jcy1jbHBvcnRfX21lbnUgLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5pdGVtLnNlbGVjdGVkIGkuY2hlY2ttYXJrIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5jcy1jbHBvcnRfX2NyZWF0ZSAudWkuYXR0YWNoZWQuc2VnbWVudCxcbi5jcy1jbHBvcnRfX2FkZC10cmFkZSAudWkuYXR0YWNoZWQuc2VnbWVudCxcbi5jcy1jbHBvcnRfX2FkZC12YWx1YXRpb25zIC51aS5hdHRhY2hlZC5zZWdtZW50IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG59XG4uY3MtY2xwb3J0X19jcmVhdGUgZm9ybS51aS5hdHRhY2hlZC5zZWdtZW50LFxuLmNzLWNscG9ydF9fYWRkLXRyYWRlIGZvcm0udWkuYXR0YWNoZWQuc2VnbWVudCxcbi5jcy1jbHBvcnRfX2FkZC12YWx1YXRpb25zIGZvcm0udWkuYXR0YWNoZWQuc2VnbWVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyQzZBOUU7XG59XG4uY3MtY2xwb3J0X19jcmVhdGUtaGVhZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jcy1jbHBvcnRfX2NyZWF0ZS1oZWFkZXItLXNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jcy1jbHBvcnRfX29wZW4tdmlldy12YWx1YXRpb25zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cbi5jcy1jbHBvcnRfX29wZW4tYWRkLXRyYWRlLFxuLmNzLWNscG9ydF9fb3Blbi1hZGQtdmFsdWF0aW9ucyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNGQyMjQgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG4uY3MtY2xwb3J0X19vcGVuLWNyZWF0ZS1wb3J0Zm9saW8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY1NzIyICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuLmNzLWNscG9ydF9fc2VsZWN0LWNvbXBhbnkgLm1lbnUgLml0ZW0gc3Bhbixcbi5jcy1jbHBvcnRfX3NlbGVjdC1jb21wYW55IC50ZXh0IHNwYW4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uY3MtY2xwb3J0X19hZGQtdHJhZGUgaW5wdXRbcmVhZG9ubHldIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDI0OCwgMjU1LCAwLjk0KSAhaW1wb3J0YW50O1xufVxuLmNzLWNscG9ydF9fc3VtbWFyeSAuY3MtY2xwb3J0X19zdW1tYXJ5X19wb3J0VmFsdWUgLnZhbHVlIHtcbiAgZm9udC1zaXplOiAzZW0gIWltcG9ydGFudDtcbn1cbi5jcy1jbHBvcnRfX3N1bW1hcnkgLnN0YXRpc3RpYyAudmFsdWUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhaW1wb3J0YW50O1xufVxuLmNzLWNscG9ydF9fc3VtbWFyeSAuc2l4LndpZGUuY29sdW1uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNzLWNscG9ydF9fc3VtbWFyeSAuc2l4LndpZGUuY29sdW1uIC5zdGF0aXN0aWMgLnZhbHVlIHtcbiAgZm9udC1zaXplOiAyLjI1ZW0gIWltcG9ydGFudDtcbn1cbi5jcy1jbHBvcnRfX3N1bW1hcnkgLnNpeC53aWRlLmNvbHVtbjo6YmVmb3JlIHtcbiAgY29udGVudDogJyAnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xZW07XG4gIHRvcDogMHB4O1xuICBoZWlnaHQ6IDkwJTtcbiAgd2lkdGg6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZDFkMTtcbn1cbi5jcy1jbHBvcnRfX3RyYWRlLXRhYmxlIHtcbiAgbWFyZ2luLXRvcDogMS41ZW07XG59XG4uY3MtY2xwb3J0X190cmFkZS10YWJsZSB0aCBpLnNvcnQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDBweDtcbn1cbi5jcy1jbHBvcnRfX3RyYWRlLXRhYmxlIHRoOm5vdCgubm8tc29ydCk6YWZ0ZXIge1xuICB3aWR0aDogMTRweCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgY29udGVudDogXCJcXGYwZGNcIiAhaW1wb3J0YW50O1xufVxuLmNzLWNscG9ydF9fdHJhZGUtdGFibGUgdGguYXNjZW5kaW5nOmFmdGVyIHtcbiAgY29udGVudDogJ1xcZjBkOCcgIWltcG9ydGFudDtcbn1cbi5jcy1jbHBvcnRfX3RyYWRlLXRhYmxlIHRoLmRlc2NlbmRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxmMGQ3JyAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgUG9ydGZvbGlvIEJ1aWxkZXIgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1wb3J0Zm9saW8tYnVpbGRlciB7XG4gIG1hcmdpbi10b3A6IDEyOHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IC0xcmVtO1xufVxuLnBiX19ib2R5IHtcbiAgcGFkZGluZzogM3JlbSA0LjI4NnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkNGQztcbiAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG59XG4ucGJfX2JvZHktLWJnLWJsdWUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgyLjMxZGVnLCAjMDE0MDg5IDEuNTIlLCAjMDkyNDczIDk0LjU2JSk7XG59XG4ucGJfX2dyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnBiX19ncmlkLS1zcGMtYnR3IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLnBiX19ncmlkLS1mbHgtZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5wYl9fZ3JpZC0tYWxnbi1jbnRyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5wYl9fZ3JpZC0tbnJtbC1zcGMge1xuICBtYXJnaW46IC0wLjVyZW07XG59XG4ucGJfX2dyaWQtLW1lZC1zcGMge1xuICBtYXJnaW46IC0wLjcxNDI4NTcxcmVtO1xufVxuLnBiX19ncmlkLS12ZXJ0aWNhbCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4ucGJfX2dyaWQtLWVxLWJveCA+IGRpdiB7XG4gIGZsZXg6IDE7XG59XG4ucGJfX2dyaWQtLW5ybWwtc3BjID4gZGl2IHtcbiAgbWFyZ2luOiAwLjVyZW07XG59XG4ucGJfX2dyaWQtLW1lZC1zcGMgPiBkaXYge1xuICBtYXJnaW46IDAuNzE0Mjg1NzE0Mjg1NzE0M3JlbTtcbn1cbi5wYl9fZ3JpZC0tbW9kYWwge1xuICBwYWRkaW5nOiAxLjI1cmVtIDEuMjVyZW0gMDtcbn1cbi5wYl9fZ3JpZCA+IC5wYl9fZ3JpZF9fY29sdW1uLS1mbGV4LTIge1xuICBmbGV4OiAyO1xufVxuLnBiX19oZWFkZXIge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDI4NTcxNDI4NnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI4NTcxNDI4NnJlbTtcbn1cbi5wYl9faGVhZGVyLS1sZyB7XG4gIGZvbnQtc2l6ZTogMS45M3JlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNThyZW07XG59XG4ucGJfX2J0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMUYxRjM7XG4gIGNvbG9yOiAjN0M3QzgwO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIHBhZGRpbmc6IGNhbGMoMS4xNHJlbSAvIDIpIDEuMTRyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm94LXNoYWRvdzogMHB4IDAuMjlyZW0gMC4yOXJlbSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogODZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnBiX19idG4tLW1pbi13ZHRoLTU2IHtcbiAgbWluLXdpZHRoOiA1NnB4O1xufVxuLnBiX19idG46aG92ZXIge1xuICBvcGFjaXR5OiAwLjc1O1xufVxuLnBiX19idG4gPiBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjg2cmVtO1xufVxuLnBiX19idG4tLWZudC1tZWQgPiBzcGFuIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnBiX19idG4tLWZudC1zbWxsID4gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC42NDI4NTcxNDI4NTcxNDI5cmVtO1xufVxuLnBiX19idG4tLWJnLW9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNzYwMTQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5wYl9fYnRuLS1iZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnBiX19idG4tLWJnLXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNzE3MTc7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5wYl9fYnRuLS1iZy1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwN0E1OTU7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5wYl9fYnRuLS1iZy1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzExNEI5QjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnBiX19idG4tLXR4dC0tZHJrQmx1ZSB7XG4gIGNvbG9yOiAjMTE0QjlCO1xufVxuLnBiX19idG4tLXR4dC0tb3JhbmdlIHtcbiAgY29sb3I6ICNGNzYwMTQ7XG59XG4ucGJfX2J0bi0tbm8tc2hkdyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4ucGJfX2J0bi0tbm8tYnJkci1yYWQge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4ucGJfX2J0bi0tYnJkci1kcmstYmx1ZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMxMTRCOUI7XG59XG4ucGJfX2J0bi0tYnJkci1vcmFuZ2Uge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRjc2MDE0O1xufVxuLnBiX19idG4tLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC42NTtcbn1cbi5wYl9fYnRuLS1sb2FkaW5nIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi5wYl9fYnRuLS1sb2FkaW5nOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTQ7XG59XG4ucGJfX2J0bi0tbG9hZGluZzo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IGNhbGMoNTAlIC0gKDEuNXJlbSAvIDIpKTtcbiAgbGVmdDogY2FsYyg1MCUgLSAoMS41cmVtIC8gMikpO1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNlZ21lbnQtc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBzZWdtZW50LXNwaW4gMC42cyBsaW5lYXI7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogd2hpdGUgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogLjJyZW07XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMC4wNzE0Mjg1N3JlbSB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4wNzE0Mjg1N3JlbSB0cmFuc3BhcmVudDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgei1pbmRleDogMTAxO1xufVxuLnBiX19idG4tLXR4dC0tZHJrQmx1ZS5wYl9fYnRuLS1iZy13aGl0ZS5wYl9fYnRuLS1icmRyLWRyay1ibHVlLnBiX19idG4tLWxvYWRpbmc6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMxMTRCOUI7XG59XG4ucGJfX2J0bnMge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnBiX19idG5zLS1zcGMtYnR3IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLnBiX19idG5zLS1mbHgtZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5wYl9fYnRucyA+IC5wYl9fYnRuOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tcmlnaHQ6IDAuODU3MTQyODU3MTQyODU3MXJlbTtcbn1cbi5wYl9fYnRucy0tZ3JvdXAgPiAucGJfX2J0biB7XG4gIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG59XG4ucGJfX2J0bnMtLWdyb3VwID4gLnBiX19idG46Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xufVxuLnBiX19idG5zLS1ncm91cCA+IC5wYl9fYnRuOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG59XG4ucGJfX2J0bnMtLWdyb3VwLWZ1bGwtd2R0aCA+IC5wYl9fYnRuIHtcbiAgZmxleDogMTtcbn1cbi5wYl9fc2VjdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucGJfX3NlY3Rpb24tLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxudGFibGUucGJfX3RhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMHB4IDBweDtcbn1cbnRhYmxlLnBiX190YWJsZSB0aGVhZCB0ZCxcbnRhYmxlLnBiX190YWJsZSB0aGVhZCB0aCB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI4NTcxNDI4NnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VCRUJFQjtcbiAgcGFkZGluZzogMS4xNDI4NTcxNHJlbTtcbn1cbnRhYmxlLnBiX190YWJsZSB0Ym9keSB0ZCxcbnRhYmxlLnBiX190YWJsZSB0Ym9keSB0aCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0Mjg1NzE0Mjg2cmVtO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mjg1NzE0Mjg2cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMS4xNDI4NTcxNHJlbTtcbn1cbnRhYmxlLnBiX190YWJsZSB0Ym9keSB0cjpub3QoOmxhc3QtY2hpbGQpIHRkLFxudGFibGUucGJfX3RhYmxlIHRib2R5IHRyOm5vdCg6bGFzdC1jaGlsZCkgdGgge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxudGFibGUucGJfX3RhYmxlIHRoZWFkIHRyIHRoOm5vdCg6Zmlyc3QtY2hpbGQpLFxudGFibGUucGJfX3RhYmxlIHRib2R5IHRyIHRoOm5vdCg6Zmlyc3QtY2hpbGQpLFxudGFibGUucGJfX3RhYmxlIHRoZWFkIHRyIHRkOm5vdCg6Zmlyc3QtY2hpbGQpLFxudGFibGUucGJfX3RhYmxlIHRib2R5IHRyIHRkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG50YWJsZS5wYl9fdGFibGUgdGhlYWQgdHIgdGg6Zmlyc3QtY2hpbGQsXG50YWJsZS5wYl9fdGFibGUgdGJvZHkgdHIgdGg6Zmlyc3QtY2hpbGQsXG50YWJsZS5wYl9fdGFibGUgdGhlYWQgdHIgdGQ6Zmlyc3QtY2hpbGQsXG50YWJsZS5wYl9fdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxudGFibGUucGJfX3RhYmxlIC5wYl9fdGFibGVfX25vRGF0YSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogOC45Mjg1NzE0Mjg1NzE0MjlyZW07XG59XG4ucGJfX3NlZ21lbnQge1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi5wYl9fc2VnbWVudC0tZnVsbC13ZHRoIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi5wYl9fc2VnbWVudF9faGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxLjE0Mjg1NzE0Mjg1NzE0MjhyZW0gMXJlbTtcbn1cbi5wYl9fc2VnbWVudF9faGVhZGVyID4gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMS42NDI4NTcxNDI4NTcxNDI4cmVtO1xuICBsaW5lLWhlaWdodDogMi4yMTQyODU3MTQyODU3MTQ0cmVtO1xufVxuLnBiX19zZWdtZW50X19oZWFkZXItLXNwYy1idHcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4ucGJfX3NlZ21lbnRfX2hlYWRlci0tc3BjLWJ0dyA+IHNwYW46bGFzdC1jaGlsZCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0Mjg1NzE0Mjg2cmVtO1xufVxuLnBiX19zZWdtZW50X19oZWFkZXJNZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMS4xNDI4NTcxNDI4NTcxNDI4cmVtIDFyZW07XG59XG4ucGJfX3NlZ21lbnRfX2hlYWRlck1lbnUgPiAucGJfX3NlZ21lbnRfX2hlYWRlciB7XG4gIGZsZXg6IGF1dG87XG4gIHBhZGRpbmc6IDBweDtcbn1cbi5wYl9fc2VnbWVudF9fbWVudV9fdG9nZ2xlIHtcbiAgd2lkdGg6IDIuNDk1NTcxNDI4NTcxNDI4NnJlbTtcbiAgaGVpZ2h0OiAyLjQ5NTU3MTQyODU3MTQyODZyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucGJfX3NlZ21lbnRfX21lbnVfX3RvZ2dsZSA+IGkge1xuICBtYXJnaW46IDBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4ucGJfX3NlZ21lbnRfX2NvbnRlbnQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnBiX19zZWdtZW50X19jb250ZW50LS1uby1icmRyIHtcbiAgYm9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5wYl9fc2VnbWVudF9fY29udGVudCxcbi5wYl9fc2VnbWVudF9fYWN0aW9ucyB7XG4gIHBhZGRpbmc6IDFyZW07XG59XG4ucGJfX3NlZ21lbnRfX2FjdGlvbnMgLnBiX19idG4ge1xuICBtaW4td2lkdGg6IDEyMHB4O1xufVxuLnBiX19jcmVhdGVfX3N0ZXBzUHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1heC13aWR0aDogMTE4MHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMS4xNDI4NTcxNDI4NTcxNDI4cmVtO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuLnBiX19jcmVhdGVfX3Byb2dyZXNzUmFpbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiBjYWxjKDUwJSAtICgwLjI4NTcxNDI4NTcxNDI4NTdyZW0gLyAyKSk7XG4gIGhlaWdodDogMC4yODU3MTQyODU3MTQyODU3cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkI4QUM3O1xufVxuLnBiX19jcmVhdGVfX3Byb2dyZXNzUG9pbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5wYl9fY3JlYXRlX19wcm9ncmVzc1BvaW50X19kb3Qge1xuICB3aWR0aDogMC44NTcxNDI4NTcxNDI4NTcxcmVtO1xuICBoZWlnaHQ6IDAuODU3MTQyODU3MTQyODU3MXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2QjhBQzc7XG4gIGJvcmRlcjogMC4xNDI4NTcxNHJlbSBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xufVxuLnBiX19jcmVhdGVfX3Byb2dyZXNzUG9pbnQtLWFjdGl2ZSA+IC5wYl9fY3JlYXRlX19wcm9ncmVzc1BvaW50X19kb3Qge1xuICB3aWR0aDogMS4xNDI4NTcxNDI4NTcxNDI4cmVtO1xuICBoZWlnaHQ6IDEuMTQyODU3MTQyODU3MTQyOHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogI0Y3NjAxNDtcbn1cbi5wYl9fY3JlYXRlX19wcm9ncmVzc1BvaW50LS1jb21wbGV0ZWQgPiAucGJfX2NyZWF0ZV9fcHJvZ3Jlc3NQb2ludF9fZG90IHtcbiAgd2lkdGg6IDEuMTQyODU3MTQyODU3MTQyOHJlbTtcbiAgaGVpZ2h0OiAxLjE0Mjg1NzE0Mjg1NzE0MjhyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNzYwMTQ7XG4gIGJvcmRlci1jb2xvcjogI0Y3NjAxNDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ucGJfX2NyZWF0ZV9fcHJvZ3Jlc3NQb2ludC0tY29tcGxldGVkID4gLnBiX19jcmVhdGVfX3Byb2dyZXNzUG9pbnRfX2RvdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGNcIjtcbiAgZm9udC1mYW1pbHk6ICdJY29ucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi5wYl9fY3JlYXRlX19wcm9ncmVzc1BvaW50X190ZXh0IHtcbiAgd2lkdGg6IDguNTcxNDI4NTcxNDI4NTcxcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogY2FsYygoLTguNTcxNDI4NTcxNDI4NTcxcmVtIC8gMikgKyAoMC44NTcxNDI4NTcxNDI4NTcxcmVtIC8gMikpO1xuICBib3R0b206IC0xLjVyZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg1NzE0Mjg1NzFyZW07XG4gIG9wYWNpdHk6IDAuNjU7XG59XG4ucGJfX2NyZWF0ZV9fcHJvZ3Jlc3NQb2ludC0tYWN0aXZlID4gLnBiX19jcmVhdGVfX3Byb2dyZXNzUG9pbnRfX3RleHQge1xuICBvcGFjaXR5OiAxO1xufVxuLnBiX19jcmVhdGVfX3N0ZXAge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnBiX19jcmVhdGVfX3N0ZXAtLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnBiX19waWVfX2NoYXJ0IHtcbiAgbWFyZ2luLXRvcDogMi44NTcxNDI4NTcxNDI4NTdyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuNDI4NTcxNDI4NTcxNDI4NnJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgd2lkdGg6IDEzcmVtO1xuICBtaW4taGVpZ2h0OiAxM3JlbTtcbn1cbi5wYl9fcGllX19jaGFydF9fbGFiZWxzIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbi5wYl9fcGllX19jaGFydF9fbGFiZWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NTcxNDI4NTcxcmVtO1xuICBsaW5lLWhlaWdodDogMS43MTQyODU3MTQyODU3MTQycmVtO1xufVxuLnBiX19waWVfX2NoYXJ0X19sYWJlbCBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMC43MTQyODU3MXJlbTtcbiAgaGVpZ2h0OiAwLjcxNDI4NTcxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn1cbi5wYl9faXRlbXMgPiAucGJfX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDEuNDI4NTcxNDI4NTcxNDI4NnJlbTtcbn1cbi5wYl9faXRlbV9fdGl0bGUge1xuICBmb250LXNpemU6IDAuODU3MTQyODU3MTQyODU3MXJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42NSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyODU3MTQyODZyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNTcxNDI4NTcxNDI4NTcxNHJlbTtcbn1cbi5wYl9faXRlbV9fc3ViVGV4dCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5wYl9fc3ltYm9sX19sYWJlbCB7XG4gIHBhZGRpbmc6IDAuMjg1NzE0MjlyZW0gMC43MTQyODU3MXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzMzk4NDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5wYl9fc3ltYm9sX19sYWJlbCA+IHNwYW4ge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG4gIGxpbmUtaGVpZ2h0OiAwLjg1NzE0Mjg2cmVtO1xufVxuLnBiX19jcml0ZXJpYXMge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnBiX19jcml0ZXJpYXMgPiAucGJfX2NyaXRlcmlhOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tcmlnaHQ6IDAuMjg1NzE0MjlyZW07XG59XG4ucGJfX2NyaXRlcmlhIHtcbiAgcGFkZGluZzogMC4yODU3MTQyOXJlbSAwLjcxNDI4NTcxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnBiX19jcml0ZXJpYS0taGlnaF95aWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNywgMTY1LCAxNDksIDAuMik7XG4gIGNvbG9yOiAjMDdBNTk1O1xufVxuLnBiX19jcml0ZXJpYS0taGlnaF9ncm93dGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDgwLCAxMTUsIDE4NCwgMC4yKTtcbiAgY29sb3I6ICM1MDczQjg7XG59XG4ucGJfX2NyaXRlcmlhLS12b2xhdGlsaXR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzEsIDc2LCA2MCwgMC4yKTtcbiAgY29sb3I6ICNFNzRDM0M7XG59XG4ucGJfX3NsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wYl9fc2xpZGVyIC51aS13aWRnZXQudWktd2lkZ2V0LWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NDQ0NDO1xuICBib3JkZXItY29sb3I6ICNDQ0NDQ0M7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIGhlaWdodDogMC4yODU3MTQyOXJlbTtcbn1cbi5wYl9fc2xpZGVyIC51aS13aWRnZXQtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y3NjAxNDtcbn1cbi5wYl9fc2xpZGVyIC51aS1zdGF0ZS1kZWZhdWx0LFxuLnBiX19zbGlkZXIgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LFxuLnBiX19zbGlkZXIgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHQsXG4ucGJfX3NsaWRlciAudWktYnV0dG9uLFxuLnBiX19zbGlkZXIgaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmhvdmVyLFxuLnBiX19zbGlkZXIgaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmFjdGl2ZSB7XG4gIGJvcmRlcjogMC4xNDI4NTcxNHJlbSBzb2xpZCAjRjc2MDE0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdXRsaW5lOiAwcHg7XG4gIHdpZHRoOiAxLjE0Mjg1NzE0cmVtO1xuICBoZWlnaHQ6IDEuMTQyODU3MTRyZW07XG4gIHRvcDogLTAuNXJlbTtcbn1cbi5wYl9fc2xpZGVyIC5wYl9fc2VnbWVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDI0LjU3MTQyODU3MTQyODU3M3JlbTtcbiAgei1pbmRleDogMTtcbn1cbi5wYl9fc2xpZGVyX19yYW5nZUV4dGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnBiX19ib3gtLW1nLWJ0LWxnIHtcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbn1cbi5wYl9fYm94LS1tZy1idC1tZWQge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuLnBiX19ib3gtLW1nLWJ0LW5ybWwge1xuICBtYXJnaW4tYm90dG9tOiAxLjg1NzE0Mjg1NzE0Mjg1NzJyZW07XG59XG4ucGJfX2JveC0tbWctYnQtc21sbCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNDI4NTcxNDNyZW07XG59XG4ucGJfX2JveC0tbWctYnQteHMtc21sbCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzE0Mjg1NzFyZW07XG59XG4ucGJfX2JveC0tbWctdHAtbnJtbCB7XG4gIG1hcmdpbi10b3A6IDEuODU3MTQyODU3MTQyODU3MnJlbTtcbn1cbi5wYl9fYm94LS1tZy10cC1zbWxsIHtcbiAgbWFyZ2luLXRvcDogMS40Mjg1NzE0M3JlbTtcbn1cbi5wYl9fYm94LS1uby1tZy1idCB7XG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuLnBiX19ib3gtLW5vLXBkIHtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG59XG4ucGJfX2JveC0tc2hkdyB7XG4gIGJveC1zaGFkb3c6IDdweCAxMHB4IDIwcHggcmdiYSg0NiwgNjEsIDczLCAwLjE1KTtcbn1cbi5wYl9fYm94LS1oaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wYl9fYm94LS1sb2FkaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnBiX19ib3gtLWxvYWRpbmc6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxNDtcbn1cbi5wYl9fYm94LS1sb2FkaW5nOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuNXJlbSAwIDAgLTEuNXJlbTtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogM3JlbTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNlZ21lbnQtc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBzZWdtZW50LXNwaW4gMC42cyBsaW5lYXI7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAuMnJlbTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAwLjA3MTQyODU3cmVtIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjA3MTQyODU3cmVtIHRyYW5zcGFyZW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB6LWluZGV4OiAxMDE7XG59XG4ucGJfX3RleHQtLWNsci13aHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4ucGJfX3RleHQtLWNsci1zbC13aHQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcbn1cbi5wYl9fdGV4dC0tdXBjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5wYl9fdGV4dC0td3JkLXNwYyB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjEwNzE0Mjg1NzE0Mjg1NzE0cmVtO1xufVxuLnBiX190ZXh0LS1sZWZ0LWFsZ24ge1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG4ucGJfX3RleHQtLXJnaHQtYWxnbiB7XG4gIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG4ucGJfX3RleHQtLWNudHItYWxnbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuLnBiX190ZXh0LS1jb2xvci1ncmV5IHtcbiAgY29sb3I6ICM3QzdDODA7XG59XG4ucGJfX3RleHQtLWNvbG9yLXJlZCB7XG4gIGNvbG9yOiAjRTcxNzE3O1xufVxuLnBiX190ZW1wLS1zdG9ja3MtZmlsdGVycyB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xufVxuLnBiX190ZW1wLS1zdG9ja3MtZmlsdGVycy5maWVsZHMgPiAuZmllbGQge1xuICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG4ucGJfX2V2ZW50LS12YWx1ZS1hbGxvY2F0ZSB7XG4gIHdpZHRoOiAxNTBweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFBvcnRmb2xpbyBCdWlsZGVyIFBhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4jY3MtdmlkZW8tcmVzZWFyY2gge1xuICBtYXJnaW4tdG9wOiAxMjhweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAtMXJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLXZpZGVvLXJlc2VhcmNoIHtcbiAgICBtYXJnaW4tdG9wOiA1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52cl9fYm9keSB7XG4gIHBhZGRpbmc6IDIuMTQzcmVtIDEuNDI4NTcxNDNyZW07XG59XG4udnJfX2JvZHkgLnVpLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwLjJyZW0gMHB4IDAuNXJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnZyX19ib2R5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC52cl9fYm9keSAudnJfX2J0biB7XG4gICAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52cl9fYm9keS0tbG9hZGluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTI5cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnZyX19ib2R5LS1sb2FkaW5nOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwJTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgei1pbmRleDogMTAwO1xufVxuLnZyX19ib2R5LS1sb2FkaW5nOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuNWVtIDBlbSAwZW0gLTEuNWVtO1xuICB3aWR0aDogM2VtO1xuICBoZWlnaHQ6IDNlbTtcbiAgYW5pbWF0aW9uOiBzZWdtZW50LXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB6LWluZGV4OiAxMDE7XG59XG4udnJfX2J0biB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjY0Q0UwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNzE0Mjg1NzFyZW0gMS40Mjg1NzE0M3JlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi52cl9fYnRuLS1yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjE0RjYzICFpbXBvcnRhbnQ7XG59XG4udnJfX2J0bjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi52cl9fdmlkZW9JdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogY2FsYygtMC40MjlyZW0pO1xufVxuLnZyX192aWRlb0l0ZW1zLS12ZXIge1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC52cl9fdmlkZW9JdGVtcy0tdmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudnJfX3ZpZGVvSXRlbXMtLXZlciA+IC52cl9fdmlkZW9JdGVtIHtcbiAgICBtYXJnaW46IDFyZW0gLjM3NXJlbSAhaW1wb3J0YW50O1xuICB9XG59XG4udnJfX3ZpZGVvSXRlbXMtLWhvcnoge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnZyX192aWRlb0l0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICBib3JkZXItcmFkaXVzOiAwLjM1N3JlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAudnJfX3ZpZGVvSXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi52cl9fdmlkZW9JdGVtcy0tbG9hZGluZyB7XG4gIGhlaWdodDogMzAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi52cl9fdmlkZW9JdGVtcy0tbG9hZGluZzo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIGJhY2tncm91bmQ6ICNFOUVBRUQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIHotaW5kZXg6IDEwMDtcbn1cbi52cl9fdmlkZW9JdGVtcy0tbG9hZGluZzo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0xLjVlbSAwZW0gMGVtIC0xLjVlbTtcbiAgd2lkdGg6IDNlbTtcbiAgaGVpZ2h0OiAzZW07XG4gIGFuaW1hdGlvbjogc2VnbWVudC1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKSByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgei1pbmRleDogMTAxO1xufVxuLnZyX192aWRlb0l0ZW1zID4gLnZyX192aWRlb0l0ZW0ge1xuICBmbGV4OiAwIDAgY2FsYygxNS45MiUpO1xuICBtYXJnaW46IC4zNzVyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQ1MHB4KSB7XG4gIC52cl9fdmlkZW9JdGVtcyA+IC52cl9fdmlkZW9JdGVtIHtcbiAgICBmbGV4OiAwIDAgY2FsYygxOC44NzUlKTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjUwcHgpIHtcbiAgLnZyX192aWRlb0l0ZW1zID4gLnZyX192aWRlb0l0ZW0ge1xuICAgIGZsZXg6IDAgMCBjYWxjKDIzLjg3NSUpO1xuICB9XG59XG4udnJfX3ZpZGVvSXRlbXMgPiAudnJfX3ZpZGVvSXRlbTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi52cl9fdmlkZW9JdGVtcy0tdmVyID4gLnZyX192aWRlb0l0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi52cl9fdmlkZW9JdGVtX190aHVtYiB7XG4gIGZsZXg6IDAgMCAzMC41NjI1cmVtO1xuICBoZWlnaHQ6IDE3cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwQTI1NDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC52cl9fdmlkZW9JdGVtX190aHVtYiB7XG4gICAgaGVpZ2h0OiAxMC41cmVtO1xuICB9XG59XG4udnJfX3ZpZGVvSXRlbV9fdGh1bWIgPiBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cbi52cl9fdmlkZW9JdGVtcy0tdmVyID4gLnZyX192aWRlb0l0ZW0gLnZyX192aWRlb0l0ZW1fX3RodW1iIHtcbiAgaGVpZ2h0OiAxMS4yNXJlbTtcbn1cbi52cl9fdmlkZW9JdGVtcy0taG9yeiA+IC52cl9fdmlkZW9JdGVtIC52cl9fdmlkZW9JdGVtX190aHVtYiB7XG4gIGhlaWdodDogNi44MTI1cmVtO1xuICBmbGV4OiAwIDAgMTIuMTI1cmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAudnJfX3ZpZGVvSXRlbXMtLWhvcnogPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fdGh1bWIge1xuICAgIGhlaWdodDogMTAuNXJlbTtcbiAgfVxufVxuLnZyX192aWRlb0l0ZW1fX3RpbWUge1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xuICBsaW5lLWhlaWdodDogMC44NTcxNDI4NnJlbTtcbiAgYmFja2dyb3VuZDogIzA0MTQyNDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgcGFkZGluZzogMC4zNTdyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwLjQyOXJlbTtcbiAgcmlnaHQ6IDAuNDI5cmVtO1xufVxuLnZyX192aWRlb0l0ZW1fX2RldGFpbHMge1xuICBwYWRkaW5nOiAxLjQyODU3MTQzcmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAudnJfX3ZpZGVvSXRlbV9fZGV0YWlscyB7XG4gICAgcGFkZGluZzogMC43NXJlbTtcbiAgfVxufVxuLnZyX192aWRlb0l0ZW1zLS12ZXIgPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fZGV0YWlscyxcbi52cl9fdmlkZW9JdGVtcy0taG9yeiA+IC52cl9fdmlkZW9JdGVtIC52cl9fdmlkZW9JdGVtX19kZXRhaWxzIHtcbiAgcGFkZGluZzogMXJlbTtcbn1cbi52cl9fdmlkZW9JdGVtX190aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS43MTRyZW07XG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xuICBjb2xvcjogIzBBMjU0MDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnZyX192aWRlb0l0ZW1fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gIH1cbn1cbi52cl9fdmlkZW9JdGVtX190aXRsZTpob3ZlciB7XG4gIGNvbG9yOiAjMjY0Q0UwO1xufVxuLnZyX192aWRlb0l0ZW1zLS12ZXIgPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fdGl0bGUsXG4udnJfX3ZpZGVvSXRlbXMtLWhvcnogPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fdGl0bGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE0Mjg1NzE0cmVtO1xufVxuLnZyX192aWRlb0l0ZW1zLS1ob3J6ID4gLnZyX192aWRlb0l0ZW0gLnZyX192aWRlb0l0ZW1fX3RpdGxlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4udnJfX3ZpZGVvSXRlbXMtLWhvcnogPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fbGFiZWxzIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG4udnJfX3ZpZGVvSXRlbXMtLWhvcnogPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fbGFiZWxzIC51aS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC42NXJlbSAhaW1wb3J0YW50O1xufVxuLnZyX192aWRlb0l0ZW1zLS1ob3J6ID4gLnZyX192aWRlb0l0ZW0gLnZyX192aWRlb0l0ZW1fX21ldGEge1xuICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cbi52cl9fdmlkZW9JdGVtX19sYWJlbHMge1xuICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC52cl9fdmlkZW9JdGVtX19sYWJlbHMge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG59XG4udnJfX3ZpZGVvSXRlbV9fbGFiZWwudWkubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjY0Q0UwICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMC44NTcxNDI4NnJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjI4NTcxNDI5cmVtIDAuMzU3cmVtICFpbXBvcnRhbnQ7XG59XG4udnJfX3ZpZGVvSXRlbV9fbWV0YSB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbiAgbGluZS1oZWlnaHQ6IDAuODU3MTQyODZyZW07XG4gIG1hcmdpbjogMXJlbSAwO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAudnJfX3ZpZGVvSXRlbV9fbWV0YSB7XG4gICAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgfVxufVxuLnZyX192aWRlb0l0ZW1fX21ldGEgPiBzcGFuOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cbi52cl9fdmlkZW9JdGVtcy0tdmVyID4gLnZyX192aWRlb0l0ZW0gLnZyX192aWRlb0l0ZW1fX21ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuLnZyX192aWRlb0l0ZW1fX2Rlc2Mge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzcmVtO1xuICBjb2xvcjogIzUwNUM3Qztcbn1cbi52cl9fdmlkZW9JdGVtX19kZXNjIC52cl9fdmlkZW9JdGVtX19kZXNjVGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgbWluLWhlaWdodDogNC4ycmVtO1xufVxuLnZyX192aWRlb0l0ZW1fX2Rlc2MgLnZyX192aWRlb0l0ZW1fX2Rlc2NUZXh0LS1oaWRkZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDQuMnJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG4udnJfX3ZpZGVvSXRlbV9fZGVzYyA+IGEge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICMyNjRDRTA7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi52cl9fdmlkZW9JdGVtX19waW4ge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW0gIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEuNTcxcmVtO1xuICByaWdodDogMS43ODZyZW07XG4gIGNvbG9yOiAjNzY4MDlCO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udnJfX3ZpZGVvSXRlbV9fcGxheWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBBMjU0MDtcbiAgYm9yZGVyLXJhZGl1czogMC4zNTdyZW07XG4gIGhlaWdodDogY2FsYyg0MS4wNjc3NjE4MXZ3KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnZyX192aWRlb0l0ZW1fX3BsYXllciB7XG4gICAgbWFyZ2luOiBhdXRvIC0xLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIGhlaWdodDogY2FsYyg1Ny4xNDI4NTcxNHZ3KTtcbiAgfVxufVxuLnZyX19wbGF5YmFja19fbGVmdCAudnJfX3ZpZGVvSXRlbV9fZGV0YWlscyB7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG59XG4udnJfX3BsYXliYWNrIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnZyX19wbGF5YmFjay51aS5ncmlkID4gLndpZGUuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG4udnJfX3RhYnNfX2xpc3Qge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICBib3JkZXItcmFkaXVzOiAwLjM1N3JlbTtcbiAgbWFyZ2luOiAxLjQyODU3MTQzcmVtIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnZyX190YWJzX19saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLnZyX190YWJzX19saXN0ID4gdWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG4gIG1hcmdpbjogMHB4O1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIHBhZGRpbmctYm90dG9tOiAuMTI1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yaWdodDogLjA2MjVyZW0gc29saWQgI2RlZGVkZjtcbiAgLyogd2lkdGggKi9cbiAgLyogSGFuZGxlICovXG59XG4udnJfX3RhYnNfX2xpc3QgPiB1bDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBoZWlnaHQ6IC4yNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogLjEyNXJlbTtcbn1cbi52cl9fdGFic19fbGlzdCA+IHVsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoODAsIDkyLCAxMjQsIDAuMjUpO1xuICBib3JkZXItcmFkaXVzOiAuMTI1cmVtO1xuICBvcGFjaXR5OiAwLjU7XG59XG4udnJfX3RhYnNfX2xpc3QgPiB1bCA+ICoge1xuICBmb250LXNpemU6IDEuMDcxcmVtO1xuICBsaW5lLWhlaWdodDogMS4yODZyZW07XG4gIHBhZGRpbmc6IDEuMjg2cmVtIDA7XG4gIG1hcmdpbjogMCAxcmVtIDAgMS40Mjg1NzE0M3JlbTtcbiAgY29sb3I6ICM1MDVDN0M7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMC4yMTQyODU3MXJlbSBzb2xpZCAjRkZGRkZGO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi52cl9fdGFic19fbGlzdCA+IHVsID4gKjpob3ZlciB7XG4gIGNvbG9yOiAjMjY0Q0UwO1xufVxuLnZyX190YWJzX19saXN0ID4gdWwgPiBsaS52cl9fdGFiLS1hY3RpdmUge1xuICBjb2xvcjogIzI2NENFMDtcbiAgYm9yZGVyLWJvdHRvbTogMC4yMTQyODU3MXJlbSBzb2xpZCAjMjY0Q0UwO1xufVxuLnZyX190YWJzX19saXN0ID4gdWwgPiBsaSA+IGkuY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtMS4xNXJlbTtcbiAgdG9wOiAxLjM3NXJlbTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBtYXJnaW46IDBweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzO1xufVxuLnZyX190YWJzX19saXN0ID4gdWwgPiBsaTpob3ZlciA+IGkuY2xvc2Uge1xuICBvcGFjaXR5OiAxO1xufVxuLnZyX19zZWFyY2gge1xuICBtYXJnaW46IDAgMC44NTcxNDI4NnJlbTtcbiAgZmxleDogMCAwIDMxLjI1cmVtO1xufVxuLnZyX19zZWFyY2ggLnZyX19idG4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnZyX19zZWFyY2ggLnVpLmlucHV0IHtcbiAgaGVpZ2h0OiAyLjgxMjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC52cl9fc2VhcmNoIC51aS5kcm9wZG93bixcbiAgLnZyX19zZWFyY2ggLnVpLmlucHV0IHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnZyX19zZWFyY2ggLnVpLmlucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cbiAgLnZyX19zZWFyY2ggLnZyX19idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLnZyX192aWRlb19fc29ydCB7XG4gIHdpZHRoOiAyMzBweDtcbn1cbi52cl9fdmlkZW9JdGVtX19vcHRpb25zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwLjVyZW07XG4gIHRvcDogMC41cmVtO1xufVxuLnZyX192aWRlb0l0ZW1fX29wdGlvbnMgLnVpLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMTRGNjMgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC41cmVtO1xufVxuLnZyX192aWRlb0l0ZW1fX29wdGlvbnMgLnVpLmJ1dHRvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNzU7XG59XG4udnJfX3ZpZGVvSXRlbXMtLXByZXZpZXcge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuLnZyX192aWRlb0l0ZW1zLS1wcmV2aWV3ID4gLnZyX192aWRlb0l0ZW0ge1xuICBmbGV4OiAwIDAgMjByZW0gIWltcG9ydGFudDtcbn1cbi52cl9fdmlkZW9JdGVtcy0tcHJldmlldyAudnJfX3ZpZGVvSXRlbV9fb3B0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udnJfX3ZpZGVvSXRlbXMtLXByZXZpZXcgLnZyX192aWRlb0l0ZW1fX2Rlc2Mge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnZyX19hbmFseXN0cyA+IC52cl9fYW5hbHlzdEl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZTI7XG59XG4udnJfX2FuYWx5c3RJdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLnZyX19hbmFseXN0SXRlbV9fbmFtZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEluZGljZXMgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1ldGYgLnVpLmxvYWRpbmcuc2VnbWVudDpiZWZvcmUsXG4jY3MtZXRmIC51aS5sb2FkaW5nLnNlZ21lbnQ6YWZ0ZXIge1xuICB6LWluZGV4OiAxMDtcbn1cbiNjcy1ldGYgPiAudWkuZ3JpZCA+IC5yb3cge1xuICBwYWRkaW5nOiAwcHg7XG59XG4jY3MtZXRmID4gLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbn1cbiNjcy1ldGYgLnVpLnNlZ21lbnQ6bm90KC50YWIpIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZXRmIC51aS5zZWdtZW50Om5vdCgudGFiKSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gIH1cbn1cbiNjcy1ldGYgLnVpLnNlZ21lbnQubG9hZGluZzpub3QoLnRhYikge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbn1cbi5ldGZfX3RpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmV0Zl9fdGl0bGUgLnVpLmhlYWRlciB7XG4gIG1hcmdpbjogMHB4O1xufVxuLmV0Zl9fc2VjdG9yIHtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG4uZXRmX19jbG9zZSxcbi5ldGZfX2NoYW5nZSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLmV0Zl9fY2xvc2Uge1xuICBjb2xvcjogIzJDNkE5RTtcbn1cbi5ldGZfX2NoYW5nZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDAuNWVtIDA7XG59XG4uZXRmX19jaGFuZ2UtLXJlZCB7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuLmV0Zl9fY2hhbmdlLS1ncmVlbiB7XG4gIGNvbG9yOiAjMjFCQTQ1O1xufVxuLmV0Zl9fc3VtbWFyeSAudWkuc3RhdGlzdGljcyA+IC5zdGF0aXN0aWMge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uZXRmX19zdW1tYXJ5IC51aS5zdGF0aXN0aWNzID4gLnN0YXRpc3RpYzpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UyZTJlMjtcbiAgcGFkZGluZy1yaWdodDogMWVtO1xufVxuLmV0Zl9fc3VtbWFyeSAudXBkYXRlIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY29sb3I6IGdyZXk7XG59XG4uZXRmX19yYW5nZSAudWkuaGVhZGVyLFxuLmV0Zl9fcmFuZ2UgLmhlYWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmV0Zl9fY2hhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZXRmX19jaGFydF9fbm90ZSB7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMWVtO1xuICByaWdodDogMWVtO1xufVxuLmV0Zl9fY2hhcnRfX29wdGlvbnMge1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG4uZXRmX19jaGFydF9fb3B0aW9ucyAuaXRlbS5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uZXRmX19jaGFydF9fZW1wdHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZXRmX19jaGFydF9fZW1wdHk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdDYW5cXCd0IFJlbmRlciBDaGFydC4gRGF0YSBpcyBFbXB0eSEnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDBweDtcbiAgdG9wOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uZXRmX19jaGFydF9fb3B0aW9ucyAudWkuc2Vjb25kYXJ5Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG4uZXRmX190YWJzIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmV0Zl9fdGFicyA+IC51aS5tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDI7XG59XG4uZXRmX190YWJzID4gLnVpLm1lbnUuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDAuOGVtO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMS42ZW0pO1xufVxuLmV0Zl9fdGFicyAudWkuc2VnbWVudC50YWIge1xuICBtYXJnaW46IDBweDtcbiAgbWluLWhlaWdodDogNzB2aDtcbn1cbi5ldGZfX3RhYnMgLnVpLmludmVydGVkLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTQ5ZCAhaW1wb3J0YW50O1xufVxuLmV0Zl9fdGFicyAudWkudmVyeS5iYXNpYy50YWJsZSB0aGVhZCB0ciB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCAjYmJiO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcbn1cbi5ldGZfX3RhYnMgLnVpLnZlcnkuYmFzaWMudGFibGUgdGhlYWQgdHIgdGgge1xuICBwYWRkaW5nLXRvcDogMC41ZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbn1cbi5ldGZfX3RhYnMgLnVpLnZlcnkuYmFzaWMudGFibGUgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDIzMCwgMjIxLCAwLjIpICFpbXBvcnRhbnQ7XG59XG4uZXRmX190YWJzIC51aS52ZXJ5LmJhc2ljLnRhYmxlIHRmb290IHRyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcbn1cbi5ldGZfX3RhYnMgLnVpLnZlcnkuYmFzaWMudGFibGUgdGZvb3QgdHIgdGgge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5ldGZfX3RhYnMtLWVycm9yIHtcbiAgbWluLWhlaWdodDogMzAwcHg7XG4gIGNvbG9yOiAjMjgyODI4ICFpbXBvcnRhbnQ7XG59XG4uZXRmX190YWJzLS1lcnJvcjo6YmVmb3JlIHtcbiAgY29udGVudDogJ0RhdGEgTm90IEZvdW5kISc7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDBweDtcbiAgdG9wOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uZXRmX190YWJzX190ZXh0IHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG4uZXRmX19zeW1ib2wge1xuICBtYXJnaW4tcmlnaHQ6IDFlbSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDYwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5ldGZfX292ZXJ2aWV3X19zdGF0cyB7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbn1cbi5ldGZfX292ZXJ2aWV3X19zdW5idXJzdENoYXJ0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xufVxuLmV0Zl9fb3ZlcnZpZXdfX3N1bmJ1cnN0Q2hhcnQgLmNzLXNlY3Rvci10cmVlbWFwLFxuLmV0Zl9fb3ZlcnZpZXdfX3N1bmJ1cnN0Q2hhcnQgLmluZGljZXNfX25vdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmV0Zl9fb3ZlcnZpZXdfX3NlY3RvckhvbGRpbmdzIHtcbiAgcGFkZGluZy10b3A6IDExMHB4O1xufVxuLmV0Zl9fb3ZlcnZpZXdfX3NlY3RvckhvbGRpbmdzIHRhYmxlLFxuLmV0Zl9fb3ZlcnZpZXdfX2hvbGRpbmdzIHRhYmxlIHtcbiAgZm9udC1zaXplOiAwLjllbSAhaW1wb3J0YW50O1xufVxuLmV0Zl9fc3VtbWFyeSAuZXRmX19jbG9zZSxcbi5ldGZfX3N1bW1hcnkgLmV0Zl9fY2hhbmdlIHtcbiAgZm9udC1zaXplOiAxLjhlbTtcbn1cbi5ldGZfX3N1bW1hcnkgLnVpLnN0YXRpc3RpY3Mge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLmV0Zl9fY29tcGFueV9faG9sZGluZ3Mge1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4uZXRmX19jb21wYW55X19ob2xkaW5ncyAudWkuaGVhZGVyIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4uZXRmX19jb21wYW55X19ob2xkaW5ncyB0YWJsZSB0Ym9keSB0ciB0ZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHdpZHRoOiAxMzBweDtcbn1cbi5ldGZfX2Fubm91bmNlbWVudHMgLmFubm91Y2VtZW50LWNhbGVuZGFyLXdyYXBwZXIsXG4uZXRmX19hbm5vdW5jZW1lbnRzIC5hbm5vdWNlbWVudC10YWJsZS13cmFwcGVyIHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG4uZXRmX19hbm5vdW5jZW1lbnRzICNhbm5vdW5jZS1jYWxlbmRhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5ldGZfX21lc3NhZ2Uge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmV0Zl9fZmluYW5jaWFscyAuZmlzY2FsLXllYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMWVtO1xuICBmb250LXNpemU6IDEuM2VtO1xuICByaWdodDogMWVtO1xuICBjb2xvcjogI2E0YTRhNDtcbn1cbi5ldGZfX2NvbXBhbnkge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uZXRmX190YWJsZV9fd3JhcHBlciB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbn1cbi5ldGZfX3RhYmxlX193cmFwcGVyIHRhYmxlIHtcbiAgbWluLXdpZHRoOiA4MDBweDtcbn1cbi5ldGZfX2NoYXJ0IC5saW5lIHtcbiAgc3Ryb2tlLXdpZHRoOiAycHg7XG59XG4uZXRmX19jaGFydF9fbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5ldGZfX2NoYXJ0X19jb2xvckJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZXRmID4gLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgcGFkZGluZzogMC41ZW0gMCAhaW1wb3J0YW50O1xuICB9XG4gIC5ldGZfX2NoYXJ0X19jb2x1bW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZXRmX190YWJzIC51aS5tZW51IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIH1cbiAgLmV0Zl9fb3ZlcnZpZXdfX3NlY3RvckhvbGRpbmdzIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICB9XG4gIC5ldGZfX2ZpbmFuY2lhbHMgLnVpLnRhYi5zZWdtZW50IHtcbiAgICBwYWRkaW5nOiAwcHg7XG4gIH1cbiAgLmV0Zl9fZmluYW5jaWFscyAuZmlzY2FsLXllYXIge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luOiAxZW0gMHB4O1xuICB9XG4gIC5ldGZfX2Fubm91bmNlbWVudHMgLmFubm91bmNlX19maWx0ZXJzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxuICAuZXRmX190YWJzIC5jcy10YWJsZS1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxuICAuZXRmX190YWJzIC5jcy10YWJsZS1jb250YWluZXIgdGFibGUge1xuICAgIG1pbi13aWR0aDogMTEwMHB4O1xuICB9XG4gIC5ldGZfX3RhYnMgI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuZXRmX190aXRsZSAudWkubGFiZWwge1xuICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG4gIC5ldGZfX3RpdGxlIC51aS5oZWFkZXIge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG4gIC5ldGZfX3RhYnMgPiAudWkubWVudS5maXhlZCB7XG4gICAgbGVmdDogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB9XG4gIC5ldGZfX292ZXJ2aWV3X19zdGF0cyB7XG4gICAgbWFyZ2luLXRvcDogNGVtO1xuICB9XG4gIC5ldGZfX3N1bW1hcnlfX21vYmlsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICB9XG4gIC5ldGZfX3N1bW1hcnlfX21vYmlsZSAuZXRmX19wcmljZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICB9XG4gIC5ldGZfX3N1bW1hcnlfX21vYmlsZSAuZXRmX19wcmljZSA+IGRpdiB7XG4gICAgbWFyZ2luOiAwcHg7XG4gIH1cbiAgLmV0Zl9fc3VtbWFyeV9fbW9iaWxlIC51cGRhdGUge1xuICAgIGNvbG9yOiBncmV5O1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLnktZ3JpZCxcbiAgLmV0Zl9fY2hhcnRfX21vYmlsZSAueC1ncmlkIHtcbiAgICBzdHJva2U6IHJnYmEoMjIwLCAyMjAsIDIyMCwgMC41Mik7XG4gIH1cbiAgLmV0Zl9fY2hhcnRfX21vYmlsZSAuYXJlYSB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLmV0Zl9fY2hhcnQtLXJlZCBsaW5lYXJHcmFkaWVudCBzdG9wIHtcbiAgICBzdG9wLWNvbG9yOiAjZGIyODI4O1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLmV0Zl9fY2hhcnQtLXJlZCAubGluZSB7XG4gICAgc3Ryb2tlOiAjZGIyODI4O1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLmV0Zl9fY2hhcnQtLWdyZWVuIGxpbmVhckdyYWRpZW50IHN0b3Age1xuICAgIHN0b3AtY29sb3I6ICMyMWJhNDU7XG4gIH1cbiAgLmV0Zl9fY2hhcnRfX21vYmlsZSAuZXRmX19jaGFydC0tZ3JlZW4gLmxpbmUge1xuICAgIHN0cm9rZTogIzIxYmE0NTtcbiAgfVxuICAuZXRmX19jaGFydF9fbW9iaWxlIC51aS5zZWdtZW50IHtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAuZXRmX19jaGFydF9fbW9iaWxlIC5ldGZfX2NoYXJ0X19ub3RlIHtcbiAgICBib3R0b206IC0yZW07XG4gICAgcmlnaHQ6IDBlbTtcbiAgfVxuICAuZXRmX19jaGFydF9fbW9iaWxlIC5ldGZfX2NoYXJ0X19vcHRpb25zIC51aS5zZWNvbmRhcnkubWVudSB7XG4gICAgcGFkZGluZzogMC41ZW0gMHB4O1xuICAgIG1hcmdpbjogMC41ZW0gMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTJlMmUyO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyO1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLmV0Zl9fY2hhcnRfX29wdGlvbnMgLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtIHtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLmV0Zl9fY2hhcnRfX29wdGlvbnMgLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDFCNUFEICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmV0Zl9fY2hhcnRfX21vYmlsZSAuZXRmX19jaGFydF9fb3B0aW9ucyAudWkuc2Vjb25kYXJ5Lm1lbnUgLml0ZW0uYWN0aXZlIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEFkbWluIFBhbmVsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmFwX190ZXh0LS1jb2RlIHtcbiAgY29sb3I6IGNyaW1zb247XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIHBhZGRpbmctbGVmdDogNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG59XG4uYXBfX3RleHQtLW5vQnJlYWsge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFwX190ZXh0LS10eHRVcENhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFwX190ZXh0LS1ub01nIHtcbiAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbn1cbi5hcF9faW1hZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hcF9faW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYXBfX3NpZGViYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDMwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM3MGIzO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBwYWRkaW5nOiAxZW07XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hcF9fc2lkZWJhcl9fdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFwX19zaWRlYmFyX190aXRsZUltYWdlIHtcbiAgZmxleDogMCAwIDYwcHg7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLmFwX19zaWRlYmFyX190aXRsZVRleHQge1xuICBmb250LXNpemU6IDEuNWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hcF9fc2lkZWJhcl9fYWNjb3JkaW9uIHtcbiAgcGFkZGluZzogMWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgbWF4LWhlaWdodDogNzB2aDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuLmFwX19zaWRlYmFyX19hY2NvcmRpb24gLnRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmFwX19zaWRlYmFyX19hY2NvcmRpb24gLnRpdGxlOjpiZWZvcmUge1xuICBjb250ZW50OiAnICc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDFlbSk7XG4gIGhlaWdodDogY2FsYygxMDAlICsgMWVtKTtcbiAgdG9wOiAtMC41ZW07XG4gIGxlZnQ6IC0wLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzO1xufVxuLmFwX19zaWRlYmFyX19hY2NvcmRpb24gLnRpdGxlOmhvdmVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4uYXBfX3NpZGViYXJfX2FjY29yZGlvbiAudWkudmVydGljYWwubWVudSA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG4uYXBfX3NpZGViYXJfX2FjY29yZGlvbiAudWkudmVydGljYWwubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFwX19zaWRlYmFyX19hY2NvcmRpb24gLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0ge1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjI1cztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFwX19zaWRlYmFyX19hY2NvcmRpb24gLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLml0ZW1bZGF0YS1zZWN0aW9uXSB7XG4gIHBhZGRpbmctbGVmdDogMWVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbn1cbi5hcF9fc2lkZWJhcl9fYWNjb3JkaW9uIC51aS52ZXJ0aWNhbC5tZW51IC5pdGVtOmhvdmVyIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFwX19jb250ZW50IHtcbiAgd2lkdGg6IGNhbGMoMTAwdncgLSAzMDBweCk7XG4gIGhlaWdodDogMTAwdmg7XG4gIG1hcmdpbi1sZWZ0OiAzMDBweDtcbiAgcGFkZGluZzogMWVtO1xufVxuLmFwX19jb250ZW50ID4gLnVpLnNlZ21lbnQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbi5hcF9fc2VjdGlvbixcbi5hcF9fc2VjdGlvbl9fc3ViIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hcF9fc2VjdGlvbi0tYWN0aXZlLFxuLmFwX19zZWN0aW9uX19zdWItLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFwX19zaWRlYmFyX19uYXYge1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQwN2NiYTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmFwX19zaWRlYmFyX19uYXZJdGVtIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4yNXM7XG59XG4uYXBfX3NpZGViYXJfX25hdkl0ZW0tLWFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmFwX19zaWRlYmFyX19uYXZJdGVtOmhvdmVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uYXBfX3RhYmxlIHRib2R5IHRyOmhvdmVyIHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC4wNikgIWltcG9ydGFudDtcbn1cbi5hcF9fcGVyZm9tYW5jZVRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxkIHtcbiAgY29sb3I6ICMyZDY5OWUgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgd2lkdGg6IDI1MHB4O1xufVxuLmFwX19wZXJmb21hbmNlVGFibGUgdHIgdGQ6Zmlyc3QtY2hpbGQ6bm90KC5pZ25vcmVkKSxcbi5hcF9fcGVyZm9tYW5jZVRhYmxlIHRyIHRkLmRlZmluaXRpb24ge1xuICBiYWNrZ3JvdW5kOiAjZTVmM2ZmICFpbXBvcnRhbnQ7XG59XG4uYXBfX21lc3NhZ2VzIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgcGFkZGluZzogMWVtO1xuICB6LWluZGV4OiAxMDAwMTtcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG59XG4uYXBfX2ltYWdlVXBsb2FkIC50d28uY29sdW1uLndpZGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFwX19pbWFnZVVwbG9hZCAudWkuaW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYXBfX2ltYWdlVXBsb2FkIC51aS5pbnB1dDpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNzU7XG59XG4uYXBfX2ltYWdlVXBsb2FkIGlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYXBfX3BlcnNvblNlY3Rpb24tLWRldGFpbHMgdGFibGUgdGJvZHkgdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gIHdpZHRoOiAyNTBweDtcbn1cbi5hcF9fcGVyc29uU2VjdGlvbi0tdXBsb2FkSW1hZ2VGb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgbWF4LWhlaWdodDogMTUwcHg7XG59XG4uYXBfX3BlcnNvblNlY3Rpb24tLXVwbG9hZEltYWdlRm9ybSAudWkuaW1hZ2Uge1xuICBoZWlnaHQ6IDE1MHB4O1xuICB3aWR0aDogMTUwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG59XG4uYXBfX2ZpbGV1cGxvYWQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmFwX19maWxldXBsb2FkIC51aS5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYXBfX2ZpbGV1cGxvYWQgLnVpLmJ1dHRvbiBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbn1cbi5hcF9fY29tcGFueVN0YXRlbWVudExvZ3Mge1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gIGJvcmRlcjogLjA2MjVyZW0gc29saWQgI2UyZTJlMjtcbiAgbWFyZ2luOiAxcmVtIDA7XG59XG4uYXBfX3NlY3Rpb25bZGF0YS1zZWN0aW9uPVwidHJhY2tpbmctc2hlZXRcIl0gLmFwX190YWJsZSB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4uYXBfX3NlY3Rpb25bZGF0YS1zZWN0aW9uPVwidHJhY2tpbmctc2hlZXRcIl0gLmFwX190YWJsZSB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4uYXBfX3NlY3Rpb25bZGF0YS1zZWN0aW9uPVwidHJhY2tpbmctc2hlZXRcIl0gLmFwX190YWJsZSB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB3aWR0aDogMTIuNXJlbTtcbiAgei1pbmRleDogMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuLmFwX19zZWN0aW9uW2RhdGEtc2VjdGlvbj1cInRyYWNraW5nLXNoZWV0XCJdIC5hcF9fdGFibGUgdGgsXG4uYXBfX3NlY3Rpb25bZGF0YS1zZWN0aW9uPVwidHJhY2tpbmctc2hlZXRcIl0gLmFwX190YWJsZSB0ZCB7XG4gIHdpZHRoOiAxNi4yNXJlbTtcbn1cbi5hcF9fc2lkZWJhcl9fYWNjb3JkaW9uOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG4gIC8qIHdpZHRoIG9mIHRoZSBzY3JvbGxiYXIgKi9cbn1cbi5hcF9fc2lkZWJhcl9fYWNjb3JkaW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgLyogY29sb3Igb2YgdGhlIHNjcm9sbGJhciB0aHVtYiAqL1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIC8qIHJvdW5kbmVzcyBvZiB0aGUgc2Nyb2xsYmFyIHRodW1iICovXG59XG4uYXBfX3NpZGViYXJfX2FjY29yZGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIC8qIGNvbG9yIG9mIHRoZSBzY3JvbGxiYXIgdHJhY2sgKi9cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gQ29uZGVuc2VkJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG9jb25kZW5zZWQvdjMxL2llVm8yWmhaSTJlQ041anpiakVFVFM5d2VxOC1fZDZUX1BPbDBmUkpleVd5b3ZCSi50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgUmVwb3J0cyBCdWlsZGVyIFBhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIHtcbiAgZm9udC1zaXplOiAxLjE1cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIHRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUgdGFibGUgdGhlYWQgdGgge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjdiMTg7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuLmNzLXJlcG9ydC1wYWdlIC5tbWFrcy10YWJsZSB0YWJsZSB0Ym9keSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDAuMzVyZW07XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5tbWFrcy10YWJsZSB0YWJsZSAudG90YWwgdGQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgYmxhY2s7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBibGFjaztcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUgLmhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUgLmZvb3RlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIC5mb290ZXIgPiBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5tbWFrcy10YWJsZSAuZm9vdGVyIC5ub3RlIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogZ3JleTtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUgLmZvb3RlciAubm90ZV9fcGFkZGVkIHtcbiAgcGFkZGluZzogMCAwLjVyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIC5mb290ZXIgLmZvb3Rlcl9fbG9nbyA+IGltZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5tbWFrcy10YWJsZSAuZm9vdGVyIC5mb290ZXJfX2xvZ28uZm9vdGVyX19sb2dvLS1tbWFrcyB7XG4gIHdpZHRoOiAxMDBweDtcbiAgZmxleDogMCAwIGF1dG87XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIC5mb290ZXIgLmZvb3Rlcl9fbG9nby5mb290ZXJfX2xvZ28tLWNzIHtcbiAgd2lkdGg6IDUwcHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5tbWFrcy10YWJsZS5jZWxsLWJvcmRlcnMgdGFibGUsXG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlLmNlbGwtYm9yZGVycyB0aCxcbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUuY2VsbC1ib3JkZXJzIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgZ3JleTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1maXBpLWxpcGkgdGFibGUgdHIgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDFweCBkb3R0ZWQgZ3JleTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1maXBpLWxpcGkgdGFibGUgdHIgPiA6bnRoLWNoaWxkKDQpIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggZG90dGVkIGdyZXk7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlLm1tYWtzLXRhYmxlLS1maXBpTGlwaSAud3JhcHBlci0tZmlwaS1saXBpIHRhYmxlIHRib2R5IHRyIHRkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlLm1tYWtzLXRhYmxlLS1maXBpTGlwaSAud3JhcHBlci0tZmlwaS1saXBpIHRhYmxlIHRib2R5IHRyID4gOm50aC1jaGlsZCg0KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1jdW11bGF0aXZlLWFjdGl2aXR5IHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogM3JlbSAwIDJyZW0gMDtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1jdW11bGF0aXZlLWFjdGl2aXR5IHRhYmxlIHRyID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggZG90dGVkIGdyZXk7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlLm1tYWtzLXRhYmxlLS1maXBpTGlwaSAud3JhcHBlci0tY3VtdWxhdGl2ZS1hY3Rpdml0eSB0YWJsZSB0Ym9keSB0ciB0ZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmNzLXJlcG9ydC1wYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uY3MtcmVwb3J0LXBhZ2UgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fY29sbGFiIHtcbiAgcGFkZGluZzogMXJlbTtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX19jb2xsYWJfX2xvZ29zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAzLjEyNXJlbTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX19jb2xsYWJfX2xvZ29zID4gaW1nIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fdGV4dCB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogI2FlYjBhZTtcbiAgd2lkdGg6IDguNzVyZW07XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyID4gZGl2IHtcbiAgZmxleDogMTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyID4gLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fY29sbGFiIHtcbiAgZmxleDogbm9uZTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX190ZXh0IHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjc1cmVtO1xuICBmb250LXdlaWdodDogOTAwO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLXNtYWxsIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4zcmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLWZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmNzLXJlcG9ydC1wYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLWZsZXggKiB7XG4gIGZsZXg6IDE7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHRkIHtcbiAgYmFja2dyb3VuZDogI2YyZjJmMjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgTU1BS1MgUmVwb3J0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLm1tYWtzLXRhYmxlIC5mb290ZXItLW1tYWtzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgPiAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX19jb2xsYWItLW1tYWtzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLW1pbmkge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE1cmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tbWFrcyAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLXNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fY29sbGFiIHtcbiAgcGFkZGluZzogMXJlbTtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fY29sbGFiX19sb2dvcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogMy4xMjVyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fbG9nb3MgPiBpbWcge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fdGV4dCB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogI2FlYjBhZTtcbiAgd2lkdGg6IDguNzVyZW07XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLmNzLXJlcG9ydF9fbm90ZSB7XG4gIGNvbG9yOiAjYjhiMmIwO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2NvbXBUYWJsZSB0YWJsZSB0aCxcbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRkIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNHJlbTtcbiAgaGVpZ2h0OiAycmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tbWFrcyAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdGgge1xuICBib3JkZXItdG9wOiAuMjVyZW0gc29saWQgI2U0ODEzZDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIC5jcy1yZXBvcnRfX2NvbXBUYWJsZV9fZW1wdHlSb3dzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1pbi1oZWlnaHQ6IDQuNjg3NXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2NvbXBUYWJsZS5jcy1yZXBvcnRfX2NvbXBUYWJsZS0taGVhZEJvcmRlckJvdHRvbSB0YWJsZSB0aGVhZCA+IHRyOmxhc3QtY2hpbGQgPiB0aCB7XG4gIGJvcmRlci1ib3R0b206IC4yNXJlbSBzb2xpZCAjZTQ4MTNkO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tbWFrcyAuY3MtcmVwb3J0X19jb21wVGFibGUuY3MtcmVwb3J0X19jb21wVGFibGUtLWhlYWRsaW5lSGVpZ2h0IHRhYmxlIHRoIHtcbiAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2NvbXBUYWJsZS5jcy1yZXBvcnRfX2NvbXBUYWJsZS0tZm9udEZhbVJvYm90byB0YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIENvbmRlbnNlZCcsIHNhbnMtc2VyaWY7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2NvbXBUYWJsZS5jcy1yZXBvcnRfX2NvbXBUYWJsZS0tZm9udFNpemVNZWQgdGFibGUgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2NvbXBUYWJsZS5jcy1yZXBvcnRfX2NvbXBUYWJsZS0tZm9udFNpemVNZWQgdGFibGUgdGQge1xuICBmb250LXNpemU6IDEuMzVyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFN1bW1pdCBSZXBvcnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQgLm1tYWtzLXRhYmxlIC5mb290ZXItLXN1bW1pdCxcbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0LWxldmVyYWdlIC5tbWFrcy10YWJsZSAuZm9vdGVyLS1zdW1taXQsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUgLmZvb3Rlci0tc3VtbWl0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAubW1ha3MtdGFibGUgdGFibGUgdGhlYWQgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAubW1ha3MtdGFibGUgdGFibGUgdGhlYWQgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUgdGFibGUgdGhlYWQgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGMwO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQgLm1tYWtzLXRhYmxlIC5ncmVlbixcbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0LWxldmVyYWdlIC5tbWFrcy10YWJsZSAuZ3JlZW4sXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUgLmdyZWVuIHtcbiAgY29sb3I6ICMxNWI3M2M7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAubW1ha3MtdGFibGUgLnJlZCxcbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0LWxldmVyYWdlIC5tbWFrcy10YWJsZSAucmVkLFxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLm1tYWtzLXRhYmxlIC5yZWQge1xuICBjb2xvcjogI2MwMDAwMDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyLFxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLmNzLXJlcG9ydF9faGVyb0hlYWRlciB7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQgLmNzLXJlcG9ydF9faGVyb0hlYWRlciA+IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYi0tc3VtbWl0LFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9faGVyb0hlYWRlciA+IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYi0tc3VtbWl0LFxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLmNzLXJlcG9ydF9faGVyb0hlYWRlciA+IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYi0tc3VtbWl0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fbG9nb3MsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fbG9nb3MsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fbG9nb3Mge1xuICBoZWlnaHQ6IDRyZW07XG4gIHBhZGRpbmc6IDBweDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fdGV4dCxcbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0LWxldmVyYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fdGV4dCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fdGV4dCB7XG4gIGNvbG9yOiAjMDA3OGMwO1xuICBmb250LXNpemU6IDJyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLXNtYWxsLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9faGVyb0hlYWRlciAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX190ZXh0LS1zbWFsbCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fdGV4dC0tc21hbGwge1xuICBjb2xvcjogI2Q0MDYxOTtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlLFxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGQsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGQsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGQge1xuICBwYWRkaW5nOiAwLjE1cmVtO1xuICBmb250LXNpemU6IDEuMTVyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6bnRoLWNoaWxkKDIpIHRoLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRoZWFkIHRyOm50aC1jaGlsZCgyKSB0aCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2NvbXBUYWJsZSB0YWJsZSB0aGVhZCB0cjpudGgtY2hpbGQoMikgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkMGQwO1xuICBjb2xvcjogI2Q0MDYxOTtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0IC5jcy1yZXBvcnRfX2NvbXBUYWJsZS0tbTJtLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlLS1tMm0sXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUtLW0ybSxcbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0IC5jcy1yZXBvcnRfX2NvbXBUYWJsZS0tYzJjLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlLS1jMmMsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUtLWMyYyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFN1bW1pdCBSZXBvcnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLm1tYWtzLXRhYmxlIC5mb290ZXItLXN1bW1pdCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUgLmZvb3Rlci0tbXJhIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUgdGFibGUgdGhlYWQgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzliOWI5ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiBibGFjaztcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5tbWFrcy10YWJsZSB0YWJsZSB0aCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5tbWFrcy10YWJsZSB0YWJsZSB0ZCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLm1tYWtzLXRhYmxlIHRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkIHRoIHtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLm1tYWtzLXRhYmxlIHRhYmxlIHRoZWFkIHRyOm50aC1jaGlsZCgyKSB0aCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5tbWFrcy10YWJsZSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGQwZDAgIWltcG9ydGFudDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1maXBpLWxpcGkgdGFibGUgdGJvZHkgdHIgPiA6bnRoLWNoaWxkKDQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5tbWFrcy10YWJsZS5tbWFrcy10YWJsZS0tZmlwaUxpcGkgLndyYXBwZXItLWZpcGktbGlwaSB0YWJsZSB0Ym9keSB0ciA+IDpudGgtY2hpbGQoNSksXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1maXBpLWxpcGkgdGFibGUgdGJvZHkgdHIgPiA6bGFzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTYgIWltcG9ydGFudDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5tbWFrcy10YWJsZS5tbWFrcy10YWJsZS0tZmlwaUxpcGkgLndyYXBwZXItLWZpcGktbGlwaSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoMykgPiB0ZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYmU1ZTYgIWltcG9ydGFudDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgPiAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX19jb2xsYWIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLmNzLXJlcG9ydF9faGVyb0hlYWRlciA+IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYi0tbXJhIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQge1xuICBjb2xvcjogIzc5YjliOTtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fdGV4dC0tc21hbGwge1xuICBjb2xvcjogYmxhY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzliOWI5O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBTdW1taXQgTGV2ZXJhZ2UgJiBNUkEgUmVwb3J0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0LWxldmVyYWdlIC5jcy1yZXBvcnRfX2NvbXBUYWJsZSB0YWJsZSB0aGVhZCB0cjpudGgtY2hpbGQoMikgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6bnRoLWNoaWxkKDIpIHRoLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRoZWFkIHRyIHRoLFxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRoZWFkIHRyIHRoIHtcbiAgY29sb3I6ICMwMDA7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGJvZHkgdHIuc3ViLXRvdGFsLXJvdyB0ZCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2NvbXBUYWJsZSB0YWJsZSB0Ym9keSB0ci5zdWItdG90YWwtcm93IHRkIHtcbiAgYmFja2dyb3VuZDogI2RjZGJkYiAhaW1wb3J0YW50O1xufVxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRib2R5IHRyLnRvdGFsLXJvdyB0ZCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2NvbXBUYWJsZSB0YWJsZSB0Ym9keSB0ci50b3RhbC1yb3cgdGQge1xuICBiYWNrZ3JvdW5kOiAjZDBkMGQwICFpbXBvcnRhbnQ7XG59XG4jcmVwb3J0cy1zY3JlZW5zaG90LWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAyMDB2aDtcbiAgbGVmdDogMjAwdnc7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB6LWluZGV4OiAyMDtcbn1cbiNyZXBvcnRzLXNjcmVlbnNob3QtY29udGFpbmVyID4gZGl2KiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBDbGllbnQgUmVzZWFyY2ggVjIgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1jbGllbnRSZXMgLl9faGVhZGluZyxcbi5jcy1jbGllbnRSZXMgLl9fcGFyYSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY3MtY2xpZW50UmVzIC5fX2hlYWRpbmcsXG4gIC5jcy1jbGllbnRSZXMgLl9fcGFyYSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5jcy1jbGllbnRSZXMgLl9fZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmNzLWNsaWVudFJlcyAuX19ncm91cC4tLWFsaWduQ2VudGVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5jcy1jbGllbnRSZXMgLl9fZ3JvdXAuLS1qdXN0aWZ5U3BjQnR3IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmNzLWNsaWVudFJlcyAuX19ncm91cC4tLWp1c3RpZnlDZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5jcy1jbGllbnRSZXMgLl9fZ3JvdXAuLS1kaXJDb2wge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmNzLWNsaWVudFJlcyAuX19ncm91cC4tLWhlaWdodEZpdENvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY3MtY2xpZW50UmVzIC5fX3ByZXZpZXcge1xuICBoZWlnaHQ6IDc3dmg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jcy1jbGllbnRSZXMgLl9fcHJldmlldyB7XG4gICAgaGVpZ2h0OiA1NXZoO1xuICB9XG59XG4uY3MtY2xpZW50UmVzIC5fX3ByZXZpZXcgLl9faWZyYW1lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNzJ2aDtcbiAgYmFja2dyb3VuZDogZ3JleTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNzLWNsaWVudFJlcyAuX19wcmV2aWV3IC5fX2lmcmFtZSB7XG4gICAgaGVpZ2h0OiA1MHZoO1xuICB9XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC5jb250ZW50IHtcbiAgcGFkZGluZzogMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyNCwgMTI0LCAxMjQsIDAuOCk7XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC5jb250ZW50IC5fX2xpc3QgLmxpc3Qge1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIG1heC1oZWlnaHQ6IDE4Ljc1cmVtO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC5jb250ZW50IC5fX2xpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4xNXJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNzLWNsaWVudFJlcyAuX19jYXRlZ29yaWVzIC51aS5hY2NvcmRpb24gPiAuY29udGVudCAuX19saXN0IC5saXN0ID4gLml0ZW0gPiAuY29udGVudCA+IC5oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuLmNzLWNsaWVudFJlcyAuX19jYXRlZ29yaWVzIC51aS5hY2NvcmRpb24gPiAuY29udGVudCAuX19saXN0IC5saXN0ID4gLml0ZW0gLml0ZW1fX2NvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuLmNzLWNsaWVudFJlcyAuX19jYXRlZ29yaWVzIC51aS5hY2NvcmRpb24gPiAuY29udGVudCAuX19saXN0IC5saXN0ID4gLml0ZW0gLml0ZW1fX2NvbnRyb2xzIGkge1xuICBjb2xvcjogd2hpdGU7XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC5jb250ZW50IC5fX2xpc3QgLmxpc3QgPiAuaXRlbSAuaXRlbV9fY29udHJvbHMgaTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jcy1jbGllbnRSZXMgLl9fY2F0ZWdvcmllcyAudWkuYWNjb3JkaW9uID4gLmNvbnRlbnQgLmRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuMjVyZW07XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC5jb250ZW50IC5kZXNjcmlwdGlvbiAudWkubGFiZWwge1xuICBtYXJnaW46IDBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNzLWNsaWVudFJlcyAuX19jYXRlZ29yaWVzIC51aS5hY2NvcmRpb24gPiAuY29udGVudCAuZGVzY3JpcHRpb24gLnVpLmxhYmVsLnRpbnk6bm90KC5ncmV5KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmNzLWNsaWVudFJlcyAuX19jYXRlZ29yaWVzIC51aS5hY2NvcmRpb24gPiAuY29udGVudCAuX19saXN0IHtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbn1cbi5jcy1jbGllbnRSZXMgLl9fY2F0ZWdvcmllcyAudWkuYWNjb3JkaW9uIC5fX2FyY2hpdmUge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG59XG4jcmVzLXNlYXJjaC1yZXNlYXJjaCAuX19zZWFyY2hSZXN1bHRzIHtcbiAgbWluLWhlaWdodDogMjVyZW07XG4gIG1heC1oZWlnaHQ6IDI1cmVtO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIHBhZGRpbmc6IDBweDtcbn1cbiNyZXMtc2VhcmNoLXJlc2VhcmNoIC5fX3NlYXJjaFJlc3VsdHMgdGgge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIC8qIERvbid0IGZvcmdldCB0aGlzLCByZXF1aXJlZCBmb3IgdGhlIHN0aWNraW5lc3MgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4jcmVzLXNlYXJjaC1yZXNlYXJjaCAuX19zZWFyY2hSZXN1bHRzIC5fX3ByZXZpZXdQZGYge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jcmVzLXNlYXJjaC1yZXNlYXJjaCAuX19zZWFyY2hSZXN1bHRzIC5fX3ByZXZpZXdQZGY6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiNyZXMtc2VhcmNoLXJlc2VhcmNoIC5fX3NlYXJjaFJlc3VsdHMgLl9fZW1wdHlNZXNzYWdlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbiNyZXMtc2VhcmNoLXJlc2VhcmNoIC5fX3NlYXJjaFJlc3VsdHMgdGFibGUge1xuICBtaW4td2lkdGg6IDcxcmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjcmVzLXNlYXJjaC1yZXNlYXJjaCAuX190b2dnbGVGaWx0ZXJzIHNwYW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiNyZXMtYWRkLXJlc2VhcmNoLW1vZGFsIC5fX2Ryb3B6b25lIHtcbiAgYm9yZGVyOiAycHggZGFzaGVkICMwMDg3RkU7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1pbi1oZWlnaHQ6IDEyLjVyZW07XG59XG4jcmVzLWFkZC1yZXNlYXJjaC1tb2RhbCAuX19kcm9wem9uZSAuZHotbWVzc2FnZSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jcmVzLWFkZC1yZXNlYXJjaC1tb2RhbCAuX19kcm9wem9uZSAuZHotZmlsZW5hbWUge1xuICBtYXJnaW4tdG9wOiAzLjVlbTtcbn1cbiNyZXMtYWRkLXJlc2VhcmNoLW1vZGFsIC5fX2Ryb3B6b25lIC5kei1kZXRhaWxzIHtcbiAgcGFkZGluZzogMWVtIDFlbTtcbn1cbiNyZXMtYWRkLXJlc2VhcmNoLW1vZGFsIC5fX2Ryb3B6b25lIC5kei1wcm9ncmVzcyB7XG4gIHRvcDogNDAlO1xufVxuI3Jlcy1hZGQtcmVzZWFyY2gtbW9kYWwgLl9fZHJvcHpvbmUgLmR6LXByZXZpZXcge1xuICB6LWluZGV4OiAxO1xufVxuI3Jlcy1hZGQtcmVzZWFyY2gtbW9kYWwgLl9fZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWVycm9yLW1lc3NhZ2Uge1xuICB0b3A6IDExcmVtICFpbXBvcnRhbnQ7XG59XG4jcmVzLWFkZC1yZXNlYXJjaC10YXJnZXQtbW9kYWwge1xuICBtYXgtd2lkdGg6IDUzLjEyNXJlbTtcbn1cbiNyZXMtYWRkLXJlc2VhcmNoLXRhcmdldC1tb2RhbCAuX19saXN0IHtcbiAgbWF4LWhlaWdodDogMTUuNjI1cmVtO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4jcmVzLWFkZC1yZXNlYXJjaC10YXJnZXQtbW9kYWwgLl9fbGlzdEl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC4yNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC4xNXJlbTtcbn1cbiNyZXMtYWRkLXJlc2VhcmNoLXRhcmdldC1tb2RhbCAuX19saXN0SXRlbSAuX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuMjVyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbiNyZXMtYWRkLXJlc2VhcmNoLXRhcmdldC1tb2RhbCAuX19saXN0SXRlbSAuX19oZWFkZXIgPiBhIHtcbiAgbWluLXdpZHRoOiAzLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xufVxuI3Jlcy1hZGQtcmVzZWFyY2gtdGFyZ2V0LW1vZGFsIC5fX2NvbnRlbnRXcmFwcGVyIHtcbiAgcGFkZGluZzogMHB4O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuI3Jlcy1hZGQtcmVzZWFyY2gtdGFyZ2V0LW1vZGFsIC5fX2xpc3RJdGVtOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNyZXMtbWFuYWdlLWNhdGVnb3JpZXMgLl9fbGlzdCxcbiNyZXMtbWFuYWdlLWFuYWx5c3RzIC5fX2xpc3QsXG4jcmVzLWFkZC1hbmFseXN0IC5fX2xpc3Qge1xuICBtYXgtaGVpZ2h0OiAxOC43NXJlbTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuI3Jlcy1tYW5hZ2UtY2F0ZWdvcmllcyAuX19saXN0IC5fX2l0ZW0sXG4jcmVzLW1hbmFnZS1hbmFseXN0cyAuX19saXN0IC5fX2l0ZW0sXG4jcmVzLWFkZC1hbmFseXN0IC5fX2xpc3QgLl9faXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbiNyZXMtbWFuYWdlLWNhdGVnb3JpZXMgLl9fbGlzdCAuX19pdGVtIC5jb250ZW50LFxuI3Jlcy1tYW5hZ2UtYW5hbHlzdHMgLl9fbGlzdCAuX19pdGVtIC5jb250ZW50LFxuI3Jlcy1hZGQtYW5hbHlzdCAuX19saXN0IC5fX2l0ZW0gLmNvbnRlbnQge1xuICBnYXA6IDAuMjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4jcmVzLW1hbmFnZS1jYXRlZ29yaWVzIC5fX2xpc3QgLl9faXRlbTphZnRlcixcbiNyZXMtbWFuYWdlLWFuYWx5c3RzIC5fX2xpc3QgLl9faXRlbTphZnRlcixcbiNyZXMtYWRkLWFuYWx5c3QgLl9fbGlzdCAuX19pdGVtOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNyZXMtbWFuYWdlLWNhdGVnb3JpZXMgLl9fc2VnbWVudCxcbiNyZXMtbWFuYWdlLWFuYWx5c3RzIC5fX3NlZ21lbnQsXG4jcmVzLWFkZC1hbmFseXN0IC5fX3NlZ21lbnQge1xuICBwYWRkaW5nOiAwcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgUFggdG8gUkVNXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEZPT1RFUlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI2Rpc2NsYWltZXItYm94IHtcbiAgd2lkdGg6IDUwMHB4O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0xNWVtO1xufVxuI2Rpc2NsYWltZXItYm94IC51aS5zZWdtZW50IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RlZGVkZTtcbiAgaGVpZ2h0OiA0MDBweDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuI2Rpc2NsYWltZXItYm94IHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG4jZGlzY2xhaW1lci1ib3ggcCB7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xufVxuI2Rpc2NsYWltZXItYm94IGxpIHtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNkaXNjbGFpbWVyLWJveCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgI2Rpc2NsYWltZXItYm94IC51aS5zZWdtZW50IHtcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICB9XG59XG4jY3MtZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCNTU4NiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAzZW0gMDtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG59XG4jY3MtZm9vdGVyLmNhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjk5OTIgIWltcG9ydGFudDtcbn1cbiNjcy1mb290ZXIgLnVpLmRpdmlkZXIge1xuICBtYXJnaW46IDJyZW0gMHB4O1xufVxuI2NzLWZvb3RlciAuY3MtZGlzY2xhaW1lci1mb290ZXIge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDAuOGVtO1xuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWZvb3RlciB7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAjY3MtZm9vdGVyIC5jb2x1bW4ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNDI3MjlhO1xuICAgIG9yZGVyOiAzO1xuICB9XG4gICNjcy1mb290ZXIgLmNzLWRpc2NsYWltZXItZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgfVxuICAjY3MtZm9vdGVyIC5jcy1zaG93LXRlcm1zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gIH1cbiAgI2NzLWZvb3RlciAuY29sdW1uLnNvY2lhbC1jb2x1bW4ge1xuICAgIG9yZGVyOiAyO1xuICB9XG4gICNjcy1mb290ZXIgLmNvbHVtbi5mb290ZXItbG9nbyB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbn1cbi8qIC0tLS0gcGFydGljbGVzLmpzIGNvbnRhaW5lciAtLS0tICovXG4jY3MtcGFydGljbGVzLWpzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI5OTkyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgU1RPQ0sgVElDS0VSXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4jY3NUaWNrZXIge1xuICBiYWNrZ3JvdW5kOiAjNGM0YzRjO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDM0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHdoaXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxNTtcbn1cbiNjc1RpY2tlciA+IC5pbmRpY2VzLXdyYXBwZXIge1xuICB3aWR0aDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzMzMztcbn1cbiNjc1RpY2tlciA+IC5pbmRpY2VzLXdyYXBwZXIgPiAuYm9yZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTdweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICB3aWR0aDogNDJweDtcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXcoLTIyZGVnLCAwZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogc2tldygtMjJkZWcsIDBkZWcpO1xuICAtby10cmFuc2Zvcm06IHNrZXcoLTIyZGVnLCAwZGVnKTtcbiAgdHJhbnNmb3JtOiBza2V3KC0yMmRlZywgMGRlZyk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7XG4gIGJveC1zaGFkb3c6IDJweCAtMnB4IDNweCAjMDAwO1xufVxuI2NzVGlja2VyID4gLmluZGljZXMtd3JhcHBlciA+IC5pbmRpY2VzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2NzVGlja2VyID4gLnN0b2Nrcy13cmFwcGVyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwMHB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiNjc1RpY2tlciAuaXRlbSA+IC53cmFwcGVyIHtcbiAgcGFkZGluZzogMnB4IDdweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHdoaXRlO1xufVxuI2NzVGlja2VyIC5pdGVtIC5uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgY29sb3I6ICNjY2M7XG59XG4jY3NUaWNrZXIgLml0ZW0gLnZhbHVlIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbiNjc1RpY2tlciAuaXRlbSAuY29scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjc1RpY2tlciAuY2hhbmdlLXdyYXBwZXIge1xuICBmb250LXNpemU6IDEuM2VtO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMCAjMTExO1xufVxuI2NzVGlja2VyIC5pbmRpY2VzIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbiNjc1RpY2tlciAuaW5kaWNlcyAuaXRlbSB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzJTtcbn1cbiNjc1RpY2tlciAuc3RvY2tzIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbiNjc1RpY2tlciAuaXRlbSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzFkMWQxZDtcbn1cbiNjc1RpY2tlciAuc3RvY2tzIC5pdGVtIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDA0MDQwO1xufVxuI2NzVGlja2VyIC5wb3Mge1xuICBjb2xvcjogIzI2ZDIyNjtcbn1cbiNjc1RpY2tlciAubmVnIHtcbiAgY29sb3I6ICNmZjg2ODY7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjc1RpY2tlciB7XG4gICAgdG9wOiA2MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzVGlja2VyID4gLmluZGljZXMtd3JhcHBlciB7XG4gICAgd2lkdGg6IDEzMHB4O1xuICB9XG4gIC5pdGVtW2RhdGEtc3ltYm9sPVwiQUxMU0hSXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5pdGVtW2RhdGEtc3ltYm9sPVwiS01JQUxMU0hSXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjc1RpY2tlciAuaW5kaWNlcyAuaXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgI2NzVGlja2VyID4gLnN0b2Nrcy13cmFwcGVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTMwcHgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgI2NzVGlja2VyIC5pdGVtID4gLndyYXBwZXIge1xuICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIE5PVElGWVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI2NzLW5vdGlmeSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIHotaW5kZXg6IDEwMjtcbn1cbiNjcy1ub3RpZnkgLm5vdGlmeS1idXR0b24td3JhcHBlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMWVtIDFlbTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbiNjcy1ub3RpZnkgLm5vdGlmeS1idXR0b24td3JhcHBlci0tc2hvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG9wYWNpdHk6IDE7XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciB7XG4gIHBhZGRpbmc6IDFlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLW5vdGlmeSAubm90aWZ5LXdyYXBwZXIge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICB9XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciA+IC51aS5tZXNzYWdlOm5vdCg6bGFzdC1jaGlsZCkge1xuICBvcGFjaXR5OiAwLjU7XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciA+IC51aS5tZXNzYWdlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbiNjcy1ub3RpZnkgLm5vdGlmeS13cmFwcGVyID4gLnVpLm1lc3NhZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwcHggM3B4IDIwcHggIzAwMDAwMDc1O1xuICB3aWR0aDogNDAwcHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLW5vdGlmeSAubm90aWZ5LXdyYXBwZXIgPiAudWkubWVzc2FnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiNjcy1ub3RpZnkgLm5vdGlmeS13cmFwcGVyID4gLnVpLm1lc3NhZ2UgLnVpLnNlZ21lbnQge1xuICBjb2xvcjogIzAwMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLW5vdGlmeSAubm90aWZ5LXdyYXBwZXIgPiAudWkubWVzc2FnZSAudWkuc2VnbWVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuI2NzLW5vdGlmeSAubm90aWZ5LXdyYXBwZXIgPiAudWkubWVzc2FnZSAudWkubGFiZWwge1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciA+IC51aS5tZXNzYWdlIC5sb2FkaW5nLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBQUI7XG4gIGhlaWdodDogNXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciA+IC51aS5tZXNzYWdlIC50eXBlLXBkZiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciA+IC51aS5tZXNzYWdlIGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiNjcy1ub3RpZnkgLm5vdGlmeS13cmFwcGVyID4gLnVpLm1lc3NhZ2UgcCB7XG4gIG1hcmdpbjogMC41ZW0gMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3Mtbm90aWZ5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAjY3Mtbm90aWZ5IC5oZWFkZXIgLm5hbWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBDT05URU5UXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uY3MtY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuY29udGFpbmVyLmdyaWQuY3MtY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogNi43NWVtICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICAudWkuY29udGFpbmVyLmdyaWQuY3MtY29udGVudCAuc2l4dGVlbi53aWRlLmNvbHVtbiB7XG4gICAgcGFkZGluZzogMHB4O1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgT1ZFUlZJRVcgVEFCTEVTXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxlIENvbnRlbnQgKi9cbi51aS50YWJsZSB0aC5yZWQsXG4udWkudGFibGUgdGQucmVkIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4udWkudGFibGUgdGguZ3JlZW4sXG4udWkudGFibGUgdGQuZ3JlZW4ge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbi51aS50YWJsZSB0aC5ibHVlLFxuLnVpLnRhYmxlIHRkLmJsdWUge1xuICBjb2xvcjogIzJDNkE5RTtcbn1cbiNjcy1tYXJrZXQtcGVyZm9ybWVycyAudWkudGFiIHtcbiAgbWluLWhlaWdodDogMjAwcHg7XG59XG4jY3MtbWFya2V0LW92ZXJ2aWV3IC51aS50YWIge1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNVTU1BUlkgUEFHRVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3Mtc3VtbWFyeSAuY3MtY2hhcnQtb3B0aW9ucyAudWkuYnV0dG9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gIH1cbiAgI2NzLXN1bW1hcnkgLmNzLWNoYXJ0LW9wdGlvbnMgLmNzLWNoYXJ0LWNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4jY3Mtc3VtbWFyeS1zdGF0cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMTUwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1zdW1tYXJ5LXN0YXRzIC51aS5ncmlkIC5jb2x1bW4ge1xuICAgIHBhZGRpbmc6IDFlbSAhaW1wb3J0YW50O1xuICB9XG59XG4jY3Mtc3VtbWFyeS1zdGF0cyAudWkuaG9yaXpvbnRhbC5zZWdtZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuI2NzLXN1bW1hcnkgLmNzLXJhbmdlLXNjYWxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFRSQURFIFNDUkVFTiBQQUdFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4jY3MtdHJhZGUtdGFibGUgdHIucmVkIHRkIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4jY3MtdHJhZGUtdGFibGUgdHIuZ3JlZW4gdGQge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEFSVElDTEUgUEFHRVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI2NzLWFydGljbGUtY29udGVudCB7XG4gIG1hcmdpbjogMWVtIDA7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjZlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFNZTUJPTCBMQUJFTFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaG9yaXpvbnRhbC5sYWJlbC5jcy1zeW1ib2wtbGFiZWwge1xuICBtaW4td2lkdGg6IDVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEFubm91bmNlbWVudHMgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI2NzLWFubm91bmNlbWVudHMgLmNzLWRldGFpbHMuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1pbi13aWR0aDogMTIwcHg7XG59XG4jY3MtYW5ub3VuY2VtZW50cyAuY3MtZGV0YWlscy5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbSAhaW1wb3J0YW50O1xufVxuI2NzLWFubm91bmNlbWVudHMgLmNzLWRldGFpbHMubGlzdCA+IC5pdGVtIC5kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGNvbG9yOiAjOTk5O1xufVxuI2NzLWFubm91bmNlbWVudHMgLm5lZ2F0aXZlIHtcbiAgY29sb3I6ICNFNjBEMEQ7XG59XG4jY3MtYW5ub3VuY2VtZW50cyAuY3MtdGFibGUgdGhlYWQgdHIgdGhbZGF0YS1rZXk9XCJkYXRlXCJdLFxuI2NzLWFubm91bmNlbWVudHMgLmNzLXRhYmxlIHRoZWFkIHRyIHRoW2RhdGEta2V5PVwiYWN0aW9uc1wiXSB7XG4gIHdpZHRoOiAxMzBweDtcbn1cbiNjcy1hbm5vdW5jZW1lbnRzIC5jcy10YWJsZSB0aGVhZCB0ciB0aFtkYXRhLWtleT1cIm5hbWVcIl0ge1xuICB3aWR0aDogMjAwcHg7XG59XG4jY3MtYW5ub3VuY2VtZW50cyAuY3MtdGFibGUgdGhlYWQgdHIgdGhbZGF0YS1rZXk9XCJ2ZXJpZmllZFwiXSB7XG4gIHdpZHRoOiA4MHB4O1xufVxuI2NzLWFubm91bmNlbWVudHMgLnVpLnRhYltkYXRhLXRhYj1cImZpbmFuY2lhbHNcIl0gLmNzLXRhYmxlIHRoZWFkIHRyIHRoW2RhdGEta2V5PVwiZGV0YWlsc1wiXSB7XG4gIHdpZHRoOiA2OTVweDtcbn1cbiNjcy1hbm5vdW5jZW1lbnRzIC5jcy10YWJsZSB0aGVhZCB0ciB0aFtkYXRhLWtleT1cImxpbmtcIl0ge1xuICB3aWR0aDogNDVweDtcbn1cbiNjcy1hbm5vdW5jZW1lbnRzIC5jcy10YWJsZSB0Ym9keSB0ciB0ZCAuY29tcGFueSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4jY3MtYW5ub3VuY2VtZW50cyAuY3MtdGFibGUgdGJvZHkgdHIgdGQgLmNvbXBhbnkgLmxhYmVsIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbiNjcy1hbm5vdW5jZW1lbnRzIC5jcy10YWJsZSAuZWRpdCAucmF0aW8tZmllbGRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjcy1hbm5vdW5jZW1lbnRzIC5jcy10YWJsZSAuZWRpdCAucmF0aW8tZmllbGRzIGlucHV0IHtcbiAgd2lkdGg6IDcwcHg7XG59XG4jY3MtYW5ub3VuY2VtZW50cyAuY3MtdGFibGUgLmVkaXQgLnJhdGlvLWZpZWxkcyBzcGFuIHtcbiAgcGFkZGluZzogMCAwLjVlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWFubm91bmNlbWVudHMgLnVpLm1lbnUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICNjcy1hbm5vdW5jZW1lbnRzIC51aS50YWIuYmFzaWMuc2VnbWVudCB7XG4gICAgcGFkZGluZzogMHB4O1xuICB9XG59XG4jY3MtYW5ub3VuY2VtZW50cyAjY3MtYW5ub3VuY2VtZW50cy1maWx0ZXJzIHtcbiAgcGFkZGluZzogMWVtO1xuICBiYWNrZ3JvdW5kOiAjRUVFO1xuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQ29tcGFuaWVzIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiNjcy1jb21wYW5pZXMgLmNzLXRhYmxlIHtcbiAgbWluLWhlaWdodDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMTgwcHg7XG59XG4jY3MtY29tcGFuaWVzIC5jcy10YWJsZSAubGlzdCAuZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbmllcyAuY3MtdGFibGUge1xuICAgIG1hcmdpbjogMHB4O1xuICB9XG59XG4jY3MtY29tcGFuaWVzIC5iYWxsLWdyaWQtYmVhdCA+IGRpdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBOUU7XG59XG4jY3MtY29tcGFuaWVzLWZpbHRlcnMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogMTI4cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA1ZW0pO1xuICBtYXJnaW46IGF1dG8gMi41ZW07XG4gIGxlZnQ6IDBweDtcbiAgYm94LXNoYWRvdzogMHB4IDdweCAyMHB4IDBweCByZ2JhKDQ2LCA2MSwgNzMsIDAuMTUpO1xuICBtYXJnaW4tYm90dG9tOiAwLjhlbTtcbn1cbiNjcy1jb21wYW5pZXMtZmlsdGVycyAudWkuZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuI2NzLWNvbXBhbmllcy1maWx0ZXJzIC51aS5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMUQ1MjdGO1xufVxuI2NzLWNvbXBhbmllcy1maWx0ZXJzIC51aS5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy1jb21wYW5pZXMtZmlsdGVycyAuZmlsdGVyLW9wdGlvbnMgLmZpZWxkLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtY29tcGFuaWVzLWZpbHRlcnMgLmZpbHRlci1vcHRpb25zIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IC51aS5pbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4jY3MtY29tcGFuaWVzLWZpbHRlcnMgLmZpbHRlci1vcHRpb25zIC51aS5kcm9wZG93biA+IC50ZXh0IHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbiNjcy1jb21wYW5pZXMtZmlsdGVycyAuZmlsdGVyLW9wdGlvbnMgLnVpLnNlbGVjdGlvbi55ZWFyLmRyb3Bkb3duIHtcbiAgd2lkdGg6IDhlbTtcbiAgbWluLXdpZHRoOiA4ZW07XG59XG4jY3MtY29tcGFuaWVzLWZpbHRlcnMgLmZpbHRlci1vcHRpb25zIC5pbmxpbmUuZmllbGRzIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbiNjcy1jb21wYW5pZXMtZmlsdGVycyAuZmlsdGVyLW9wdGlvbnMgLnVpLmdyZWVuLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4QTczOSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxOEE3MzkgIWltcG9ydGFudDtcbn1cbiNjcy1jb21wYW5pZXMtZmlsdGVycyAudWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBsYWJlbCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuI2NzLWNvbXBhbmllcy1maWx0ZXJzIC5maWx0ZXJzIC51aS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI2NzLWNvbXBhbmllcy1maWx0ZXJzIC51aS5pbWFnZS5sYWJlbCAuZGV0YWlsIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwLjRlbTtcbiAgcGFkZGluZy1yaWdodDogMC40ZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG9wYWNpdHk6IDAuODtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW5pZXMtZmlsdGVycyB7XG4gICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0b3A6IDBweDtcbiAgfVxuICAjY3MtY29tcGFuaWVzLWZpbHRlcnMgLmZpbHRlcnMgLnVpLmxhYmVsIHtcbiAgICBsaW5lLWhlaWdodDogMS40ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogMC4zZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNzLXRhYmxlIHtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNzLXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogODAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIERhc2hib2FyZCBPcGluaW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmNzLW9waW5pb24tbGlzdC5kYXNoYm9hcmQge1xuICBoZWlnaHQ6IDQwcmVtO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4uY3Mtb3Bpbmlvbi1saXN0LnJlc2VhcmNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG4uY3Mtb3Bpbmlvbi1saXN0IC5vcGluaW9uIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nOiAxZW07XG4gIG1hcmdpbjogMC41ZW0gMHB4IDFlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnJvdyAuY29sIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnJvdyAuY29sIC5oZWFkIHtcbiAgY29sb3I6ICNjM2MxYzE7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIG1hcmdpbjogMHB4O1xufVxuLmNzLW9waW5pb24tbGlzdCAub3BpbmlvbiAucm93IC5jb2wgLmRhdGUge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogI2MzYzFjMTtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnJvdy50YXJnZXQtcm93IHtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG4uY3Mtb3Bpbmlvbi1saXN0IC5vcGluaW9uIC5jb21wYW55IC5zeW1ib2wtZmlsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDAuM2VtO1xufVxuLmNzLW9waW5pb24tbGlzdCAub3BpbmlvbiAuY29tcGFueSAuc3ltYm9sLWZpbGUgLnN5bWJvbCB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmNzLW9waW5pb24tbGlzdCAub3BpbmlvbiAuY29tcGFueSAuc3ltYm9sLWZpbGUgLm9wZW4tcGRmIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY3Mtb3Bpbmlvbi1saXN0IC5vcGluaW9uIC5jb21wYW55IC5wcmljZSB7XG4gIGNvbG9yOiAjMjhhNWRmO1xufVxuLmNzLW9waW5pb24tbGlzdCAub3BpbmlvbiAuY29tcGFueSAucHJpY2Ugc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnVwLWRvd24ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnVwLWRvd24gLnVpLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMC4zZW07XG59XG4uY3Mtb3Bpbmlvbi1saXN0IC5vcGluaW9uIC51aS5sYWJlbCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnVpLmxhYmVsLmJ1eSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI3NDk7XG59XG4uY3Mtb3Bpbmlvbi1saXN0IC5vcGluaW9uIC51aS5sYWJlbC5zZWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3MmMxYztcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24uYnV5IHtcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCAjMDBiNzQ5O1xufVxuLmNzLW9waW5pb24tbGlzdCAub3Bpbmlvbi5zZWxsIHtcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCAjZTcyYzFjO1xufVxuLmNzLW9waW5pb24tbGlzdCAub3Bpbmlvbi5ob2xkIHtcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCAjMmM2YTllO1xufVxuLmNzLW9waW5pb24tbGlzdCAub3Bpbmlvbi5wYXNzZWQge1xuICBvcGFjaXR5OiAwLjU7XG59XG4uY3Mtb3Bpbmlvbi1saXN0LmRhc2hib2FyZCAub3BpbmlvbiAucm93LnRhcmdldC1yb3cgLmNvbCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLmNvbXBhbnktdHlwZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIGZvbnQtc2l6ZTogMS40ZW07XG59XG4uY29tcGFueS10eXBlIC50eXBlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRlYWw7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAuNWVtO1xuICBwYWRkaW5nOiAwIDAuN2VtO1xuICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyO1xufVxuLmNvbXBhbnktdHlwZSAudHlwZS5yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGIyODI4O1xufVxuQG1lZGlhIG5vdCBhbGwgYW5kIChtaW4tcmVzb2x1dGlvbjogMC4wMDFkcGNtKSB7XG4gIC51aS5tb2RhbCBpLmNsb3NlLmljb24ge1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAwcHg7XG4gIH1cbn1cbi5jc19fbG9hZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uY3NfX2xvYWRlciAuc3Age1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xufVxuLmNzX19sb2FkZXIgLnNwLWNpcmNsZSB7XG4gIGJvcmRlcjogNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSkgc29saWQ7XG4gIGJvcmRlci10b3A6IDRweCBibGFjayBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IHNwQ2lyY1JvdCAuNnMgaW5maW5pdGUgbGluZWFyO1xufVxuQGtleWZyYW1lcyBzcENpcmNSb3Qge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuLyogQ2hyb21lLCBTYWZhcmksIEVkZ2UsIE9wZXJhICovXG5pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbmlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4vKiBGaXJlZm94ICovXG5pbnB1dFt0eXBlPW51bWJlcl0ge1xuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cbiJdfQ== */