WordPress.org

Make WordPress Themes


Ignore:
Location:
qusq-lite
Files:
2 added
16 deleted
26 edited

Legend:

Unmodified
Added
Removed
  • qusq-lite/1.0.3/footer.php

    r85403 r85403  
    5858                        <div class="site-info ish-legals ish-widget-element"> 
    5959                            <?php /* translators: Theme Name with a link to website */ ?> 
    60                             <?php printf( esc_html__( '%s Theme', 'qusq-lite' ), '<a href="http://' . esc_attr( 'ishyoboy.com' ) . '/" class="ish-underline">Qusq Lite</a>' ); ?> 
     60                            <?php printf( '%s %s', '<a href="http://' . esc_attr( 'ishyoboy.com' ) . '/" class="ish-underline">' . esc_html__( 'Qusq Lite', 'qusq-lite' ) . '</a>', esc_html__( 'Theme', 'qusq-lite' ) ); ?> 
    6161                            <span class="ish-separator">~</span> 
    6262                            <?php /* translators: WordPress with a link to website */ ?> 
    63                             <?php printf( esc_html__( 'Proudly powered by %s', 'qusq-lite' ), '<a href="https://' . esc_attr( 'wordpress.org' ) . '/" target="_blank" class="ish-underline">WordPress</a>' ); ?> 
     63                            <?php printf( '%s %s', esc_html__( 'Proudly powered by', 'qusq-lite' ),'<a href="https://' . esc_attr( 'wordpress.org' ) . '/" target="_blank" class="ish-underline">' . esc_html__( 'WordPress', 'qusq-lite' ) . '</a>' ); ?> 
    6464                            <span class="ish-separator">~</span> 
    6565                            <?php /* translators: Author Name with a link to website */ ?> 
    66                             <?php printf( esc_html__( 'Created by %1$s', 'qusq-lite' ), '<a href="http://' . esc_attr( 'ishyoboy.com' ) . '/" target="_blank" class="ish-underline">IshYoBoy.com</a>' ); ?> 
     66                            <?php printf( '%s %s', esc_html__( 'Created by', 'qusq-lite' ),'<a href="https://' . esc_attr( 'ishyoboy.com' ) . '/" target="_blank" class="ish-underline">' . esc_html__( 'IshYoBoy.com', 'qusq-lite' ) . '</a>' ); ?> 
    6767                        </div> 
    6868                    <?php } ?> 
  • qusq-lite/1.0.3/functions.php

    r85403 r85403  
    135135    wp_enqueue_script( 'modernizr', get_template_directory_uri() . '/js/bower/modernizr/modernizr.js', array(), '20151215', true ); 
    136136 
    137     wp_enqueue_script( 'lightgallery', get_template_directory_uri() . '/js/bower/lightgallery/dist/js/lightgallery.min.js', array( 'jquery' ), '20151215', true ); 
     137    wp_enqueue_script( 'lightgallery', get_template_directory_uri() . '/js/bower/lightgallery/dist/js/lightgallery-all.min.js', array( 'jquery' ), '20151215', true ); 
    138138    wp_enqueue_style( 'lightgallery', get_template_directory_uri() . '/js/bower/lightgallery/dist/css/lightgallery.min.css', array(), '20151215' ); 
    139139 
    140     // All LightGallery modules. 
    141     wp_enqueue_script( 'lg-autoplay', get_template_directory_uri() . '/js/bower/lg-autoplay/dist/lg-autoplay.min.js', array( 'lightgallery' ), '20151215', true ); 
    142     wp_enqueue_script( 'lg-fullscreen', get_template_directory_uri() . '/js/bower/lg-fullscreen/dist/lg-fullscreen.min.js', array( 'lightgallery' ), '20151215', true ); 
    143     wp_enqueue_script( 'lg-hash', get_template_directory_uri() . '/js/bower/lg-hash/dist/lg-hash.min.js', array( 'lightgallery' ), '20151215', true ); 
    144     wp_enqueue_script( 'lg-pager', get_template_directory_uri() . '/js/bower/lg-pager/dist/lg-pager.min.js', array( 'lightgallery' ), '20151215', true ); 
    145     wp_enqueue_script( 'lg-share', get_template_directory_uri() . '/js/bower/lg-share/dist/lg-share.min.js', array( 'lightgallery' ), '20151215', true ); 
    146     wp_enqueue_script( 'lg-thumbnail', get_template_directory_uri() . '/js/bower/lg-thumbnail/dist/lg-thumbnail.min.js', array( 'lightgallery' ), '20151215', true ); 
    147     wp_enqueue_script( 'lg-video', get_template_directory_uri() . '/js/bower/lg-video/dist/lg-video.min.js', array( 'lightgallery' ), '20151215', true ); 
    148     wp_enqueue_script( 'lg-zoom', get_template_directory_uri() . '/js/bower/lg-zoom/dist/lg-zoom.min.js', array( 'lightgallery' ), '20151215', true ); 
    149  
    150140    wp_enqueue_script( 'isinviewport', get_template_directory_uri() . '/js/bower/isInViewport/lib/isInViewport.min.js', array( 'jquery' ), '20151215', true ); 
    151141 
    152     wp_enqueue_script( 'justifiedgallery', get_template_directory_uri() . '/js/bower/justifiedGallery/dist/js/jquery.justifiedGallery.js', array( 'jquery' ), '20151215', true ); 
    153  
    154     wp_enqueue_script( 'macy', get_template_directory_uri() . '/js/bower/macy/dist/macy.js', array( 'jquery' ), '20151215', true ); 
     142    wp_enqueue_script( 'macy', get_template_directory_uri() . '/js/bower/macy/dist/macy.min.js', array( 'jquery' ), '20151215', true ); 
    155143 
    156144    wp_enqueue_script( 'qusq-lite-animonscroll', get_template_directory_uri() . '/js/AnimOnScroll.js', array( 'jquery', 'imagesloaded' ), '20151215', true ); 
     
    212200 
    213201/** 
    214  * Module to add Color selector to back-end of pages, posts, etc.. 
    215  */ 
    216 require get_template_directory() . '/inc/modules/metabox-colors/metabox-colors.php'; 
    217  
    218 /** 
    219  * Module to add Color Animation Option to back-end of pages, posts, etc.. 
    220  */ 
    221 require get_template_directory() . '/inc/modules/metabox-colors-animation/metabox-colors-animation.php'; 
    222  
    223 /** 
    224202 * Module to add Color Settings to customizer 
    225203 */ 
     
    237215 
    238216/** 
    239  * Module to add Footer Legals Setting to customizer 
    240  */ 
    241 require get_template_directory() . '/inc/modules/customizer-footer-legals/customizer-footer-legals.php'; 
    242  
    243 /** 
    244217 * Module to add Metabox to pick the user for "About Page" template 
    245218 */ 
     
    247220 
    248221/** 
    249  * Module to add Sidenav Legals Setting to customizer 
    250  */ 
    251 require get_template_directory() . '/inc/modules/customizer-sidenav-legals/customizer-sidenav-legals.php'; 
    252  
    253 /** 
    254222 * Module to enable the essential JetPack Modules 
    255223 */ 
  • qusq-lite/1.0.3/header.php

    r85403 r85403  
    5959                        <!-- Menu open Button --> 
    6060                        <div class="ish-menu-container ish--tc3"> 
    61                             <a href="#"><span class="ish-icon-nav"><i class="ish-icon-menu"></i></span><span class="ish-menu-desc ish-vertical">Menu</span></a> 
     61                            <a href="#"><span class="ish-icon-nav"><i class="ish-icon-menu"></i></span><span class="ish-menu-desc ish-vertical"><?php echo esc_html__( 'Menu', 'qusq-lite' ); ?></span></a> 
    6262                        </div> 
    6363 
  • qusq-lite/1.0.3/inc/modules/customizer-colors/customizer-colors.php

    r85403 r85403  
    1616    // Output LivePreview Dynamic CSS. 
    1717    add_action( 'wp_enqueue_scripts', 'qusq_lite_customizer_colors_dynamic_css', 999 ); 
     18 
     19    // Postfix filter. 
     20    add_filter( 'qusq_lite_customizer_colors_postfix', 'qusq_lite_customizer_colors_postfix' , 10, 2 ); 
    1821 
    1922} 
     
    4750 
    4851    $default_colors = array_slice( qusq_lite_get_theme_colors_array(), 0, 4 ); 
     52    $default_colors = array_merge( array( '' ), $default_colors ); 
     53    unset( $default_colors[0] ); 
    4954 
    5055    foreach ( $default_colors as $key => $value ) { 
     
    5964 
    6065        $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'qusq_lite_color_control' . esc_html( $key ) . esc_html( $postfix ) , array( 
    61             'label' => esc_html__( 'Color', 'qusq-lite' ) . ' ' . esc_html( $key + 1 ), 
     66            'label' => esc_html__( 'Color', 'qusq-lite' ) . ' ' . esc_html( $key ), 
    6267            'section' => 'qusq_lite_colors', 
    6368            'settings' => 'qusq_lite_color' . esc_html( $key ) . esc_html( $postfix ), 
     
    6772 
    6873} 
     74 
     75 
     76/** 
     77 * Makes Colors after Color 4 uneditable 
     78 * 
     79 * @param string $postfix the original postfix. 
     80 * @param string $key the color order number. 
     81 * 
     82 * @return string 
     83 */ 
     84function qusq_lite_customizer_colors_postfix( $postfix, $key ) { 
     85    return ( $key > 4 ) ? '-lite-promo' : ''; 
     86} 
  • qusq-lite/1.0.3/inc/modules/tgm-plugin-activation/tgm-plugin-activation.php

    r85403 r85403  
    6060     */ 
    6161    $config = array( 
    62         'id'           => 'qusq-lite',              // Unique ID for hashing notices for multiple instances of TGMPA. 
     62        'id'           => 'qusq-lite',             // Unique ID for hashing notices for multiple instances of TGMPA. 
    6363        'default_path' => '',                      // Default absolute path to bundled plugins. 
    6464        'menu'         => 'tgmpa-install-plugins', // Menu slug. 
  • qusq-lite/1.0.3/inc/mu-modules/customizer-enhancement/customizer-enhancement.php

    r85403 r85403  
    2828    // Admin Edit screens CSS. 
    2929    add_action( 'admin_enqueue_scripts', 'qusq_lite_customizer_enhancement_admin_style' ); 
    30  
    31     // Admin Page edit screns - Page Templates. 
    32     add_action( 'page_attributes_meta_box_template', 'qusq_lite_customizer_enhancement_page_templates_metabox', 10, 2 ); 
    3330 
    3431    // remember the activation date. 
     
    130127    if ( 'post.php' === $hook ||  'post-new.php' === $hook ||  'profile.php' === $hook ||  'appearance_page_qusq-lite' === $hook ) { 
    131128        wp_enqueue_style( 'qusq-lite-customizer-enhancement-edit', get_template_directory_uri() . '/inc/mu-modules/customizer-enhancement/css/admin.css', array(), '20151215' ); 
    132     } 
    133 } 
    134  
    135 /** 
    136  * Adds promo page templates on edit screen 
    137  * 
    138  * @param string $template The template path. 
    139  * @param object $post The post itself. 
    140  */ 
    141 function qusq_lite_customizer_enhancement_page_templates_metabox( $template, $post ) { 
    142  
    143     // Only Apply for PAGE post type. 
    144     if ( isset( $post->post_type ) && 'page' === $post->post_type ) { 
    145  
    146         // Only output if "lite-promo" templates exist. 
    147         $page_templates_pro = get_page_templates( null, 'lite-promo' ); 
    148         if ( is_array( $page_templates_pro ) && ! empty( $page_templates_pro ) ) { 
    149             ?> 
    150  
    151             <span class="metabox-nag"> 
    152                 <a href="<?php echo esc_html( 'https' ); ?>://ishyoboy.com/themes/qusq-pro/" target="_blank" title="<?php esc_attr_e( 'Setting available only in Pro Version', 'qusq-lite' ); ?>"><?php esc_html_e( 'Pro', 'qusq-lite' ); ?></a> 
    153             </span> 
    154  
    155             </p> 
    156  
    157             <div id="page_templates_pro_container"> 
    158                 <?php foreach ( $page_templates_pro as $name => $path ) { ?> 
    159                     <label> 
    160                         <input type="radio" name="page_templates_pro" id="" value=""/><?php echo esc_html( $name ); ?> 
    161                     </label> 
    162                 <?php } ?> 
    163             </div> 
    164  
    165             <p class="post-attributes-label-wrapper"> 
    166             <label class="post-attributes-label" for="page_template"><?php esc_html_e( 'Template', 'qusq-lite' ); ?></label> 
    167             <?php 
    168         } 
    169129    } 
    170130} 
  • qusq-lite/1.0.3/js/bower/lightgallery/dist/css/lightgallery.min.css

    r85403 r85403  
    1 .lg-sub-html,.lg-toolbar{background-color:rgba(0,0,0,.45)}@font-face{font-family:lg;src:url(../fonts/lg.eot?n1z373);src:url(../fonts/lg.eot?#iefixn1z373) format("embedded-opentype"),url(../fonts/lg.woff?n1z373) format("woff"),url(../fonts/lg.ttf?n1z373) format("truetype"),url(../fonts/lg.svg?n1z373#lg) format("svg");font-weight:400;font-style:normal}.lg-icon{font-family:lg;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lg-actions .lg-next,.lg-actions .lg-prev{background-color:rgba(0,0,0,.45);border-radius:2px;color:#999;cursor:pointer;display:block;font-size:22px;margin-top:-10px;padding:8px 10px 9px;position:absolute;top:50%;z-index:1080;border:none;outline:0}.lg-actions .lg-next.disabled,.lg-actions .lg-prev.disabled{pointer-events:none;opacity:.5}.lg-actions .lg-next:hover,.lg-actions .lg-prev:hover{color:#FFF}.lg-actions .lg-next{right:20px}.lg-actions .lg-next:before{content:"\e095"}.lg-actions .lg-prev{left:20px}.lg-actions .lg-prev:after{content:"\e094"}@-webkit-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-moz-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-ms-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-webkit-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@-moz-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@-ms-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}.lg-outer.lg-right-end .lg-object{-webkit-animation:lg-right-end .3s;-o-animation:lg-right-end .3s;animation:lg-right-end .3s;position:relative}.lg-outer.lg-left-end .lg-object{-webkit-animation:lg-left-end .3s;-o-animation:lg-left-end .3s;animation:lg-left-end .3s;position:relative}.lg-toolbar{z-index:1082;left:0;position:absolute;top:0;width:100%}.lg-toolbar .lg-icon{color:#999;cursor:pointer;float:right;font-size:24px;height:47px;line-height:27px;padding:10px 0;text-align:center;width:50px;text-decoration:none!important;outline:0;-webkit-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.lg-toolbar .lg-icon:hover{color:#FFF}.lg-toolbar .lg-close:after{content:"\e070"}.lg-toolbar .lg-download:after{content:"\e0f2"}.lg-sub-html{bottom:0;color:#EEE;font-size:16px;left:0;padding:10px 40px;position:fixed;right:0;text-align:center;z-index:1080}.lg-sub-html h4{margin:0;font-size:13px;font-weight:700}.lg-sub-html p{font-size:12px;margin:5px 0 0}#lg-counter{color:#999;display:inline-block;font-size:16px;padding-left:20px;padding-top:12px;vertical-align:middle}.lg-next,.lg-prev,.lg-toolbar{opacity:1;-webkit-transition:-webkit-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear;-moz-transition:-moz-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear;-o-transition:-o-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear;transition:transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear}.lg-hide-items .lg-prev{opacity:0;-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}.lg-hide-items .lg-next{opacity:0;-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}.lg-hide-items .lg-toolbar{opacity:0;-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object{-webkit-transform:scale3d(.5,.5,.5);transform:scale3d(.5,.5,.5);opacity:0;-webkit-transition:-webkit-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-moz-transition:-moz-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-o-transition:-o-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;transition:transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-outer .lg-thumb-outer{background-color:#0D0A0A;bottom:0;position:absolute;width:100%;z-index:1080;max-height:350px;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1) 0s;transition:transform .25s cubic-bezier(0,0,.25,1) 0s}.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-outer.lg-thumb-open .lg-thumb-outer{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-thumb{padding:10px 0;height:100%;margin-bottom:-5px}.lg-outer .lg-thumb-item{cursor:pointer;float:left;overflow:hidden;height:100%;border:2px solid #FFF;border-radius:4px;margin-bottom:5px}@media (min-width:1025px){.lg-outer .lg-thumb-item{-webkit-transition:border-color .25s ease;-o-transition:border-color .25s ease;transition:border-color .25s ease}}.lg-outer .lg-thumb-item.active,.lg-outer .lg-thumb-item:hover{border-color:#a90707}.lg-outer .lg-thumb-item img{width:100%;height:100%;object-fit:cover}.lg-outer.lg-has-thumb .lg-item{padding-bottom:120px}.lg-outer.lg-can-toggle .lg-item{padding-bottom:0}.lg-outer.lg-pull-caption-up .lg-sub-html{-webkit-transition:bottom .25s ease;-o-transition:bottom .25s ease;transition:bottom .25s ease}.lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html{bottom:100px}.lg-outer .lg-toogle-thumb{background-color:#0D0A0A;border-radius:2px 2px 0 0;color:#999;cursor:pointer;font-size:24px;height:39px;line-height:27px;padding:5px 0;position:absolute;right:20px;text-align:center;top:-39px;width:50px}.lg-outer .lg-toogle-thumb:hover,.lg-outer.lg-dropdown-active #lg-share{color:#FFF}.lg-outer .lg-toogle-thumb:after{content:"\e1ff"}.lg-outer .lg-video-cont{display:inline-block;vertical-align:middle;max-width:1140px;max-height:100%;width:100%;padding:0 5px}.lg-outer .lg-video{width:100%;height:0;padding-bottom:56.25%;overflow:hidden;position:relative}.lg-outer .lg-video .lg-object{display:inline-block;position:absolute;top:0;left:0;width:100%!important;height:100%!important}.lg-outer .lg-video .lg-video-play{width:84px;height:59px;position:absolute;left:50%;top:50%;margin-left:-42px;margin-top:-30px;z-index:1080;cursor:pointer}.lg-outer .lg-has-vimeo .lg-video-play{background:url(../img/vimeo-play.png) no-repeat}.lg-outer .lg-has-vimeo:hover .lg-video-play{background:url(../img/vimeo-play.png) 0 -58px no-repeat}.lg-outer .lg-has-html5 .lg-video-play{background:url(../img/video-play.png) no-repeat;height:64px;margin-left:-32px;margin-top:-32px;width:64px;opacity:.8}.lg-outer .lg-has-html5:hover .lg-video-play{opacity:1}.lg-outer .lg-has-youtube .lg-video-play{background:url(../img/youtube-play.png) no-repeat}.lg-outer .lg-has-youtube:hover .lg-video-play{background:url(../img/youtube-play.png) 0 -60px no-repeat}.lg-outer .lg-video-object{width:100%!important;height:100%!important;position:absolute;top:0;left:0}.lg-outer .lg-has-video .lg-video-object{visibility:hidden}.lg-outer .lg-has-video.lg-video-playing .lg-object,.lg-outer .lg-has-video.lg-video-playing .lg-video-play{display:none}.lg-outer .lg-has-video.lg-video-playing .lg-video-object{visibility:visible}.lg-progress-bar{background-color:#333;height:5px;left:0;position:absolute;top:0;width:100%;z-index:1083;opacity:0;-webkit-transition:opacity 80ms ease 0s;-moz-transition:opacity 80ms ease 0s;-o-transition:opacity 80ms ease 0s;transition:opacity 80ms ease 0s}.lg-progress-bar .lg-progress{background-color:#a90707;height:5px;width:0}.lg-progress-bar.lg-start .lg-progress{width:100%}.lg-show-autoplay .lg-progress-bar{opacity:1}.lg-autoplay-button:after{content:"\e01d"}.lg-show-autoplay .lg-autoplay-button:after{content:"\e01a"}.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image,.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition-duration:0s;transition-duration:0s}.lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition:-webkit-transform .3s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .3s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .3s cubic-bezier(0,0,.25,1) 0s;transition:transform .3s cubic-bezier(0,0,.25,1) 0s}.lg-outer.lg-use-left-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s;-moz-transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s;-o-transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s;transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:-webkit-transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;-moz-transition:-moz-transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;-o-transition:-o-transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;transition:transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}#lg-zoom-in:after{content:"\e311"}#lg-actual-size{font-size:20px}#lg-actual-size:after{content:"\e033"}#lg-zoom-out{opacity:.5;pointer-events:none}#lg-zoom-out:after{content:"\e312"}.lg-zoomed #lg-zoom-out{opacity:1;pointer-events:auto}.lg-outer .lg-pager-outer{bottom:60px;left:0;position:absolute;right:0;text-align:center;z-index:1080;height:10px}.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont{overflow:visible}.lg-outer .lg-pager-cont{cursor:pointer;display:inline-block;overflow:hidden;position:relative;vertical-align:top;margin:0 5px}.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-pager-cont.lg-pager-active .lg-pager{box-shadow:0 0 0 2px #fff inset}.lg-outer .lg-pager-thumb-cont{background-color:#fff;color:#FFF;bottom:100%;height:83px;left:0;margin-bottom:20px;margin-left:-60px;opacity:0;padding:5px;position:absolute;width:120px;border-radius:3px;-webkit-transition:opacity .15s ease 0s,-webkit-transform .15s ease 0s;-moz-transition:opacity .15s ease 0s,-moz-transform .15s ease 0s;-o-transition:opacity .15s ease 0s,-o-transform .15s ease 0s;transition:opacity .15s ease 0s,transform .15s ease 0s;-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}.lg-outer .lg-pager-thumb-cont img{width:100%;height:100%}.lg-outer .lg-pager{background-color:rgba(255,255,255,.5);border-radius:50%;box-shadow:0 0 0 8px rgba(255,255,255,.7) inset;display:block;height:12px;-webkit-transition:box-shadow .3s ease 0s;-o-transition:box-shadow .3s ease 0s;transition:box-shadow .3s ease 0s;width:12px}.lg-outer .lg-pager:focus,.lg-outer .lg-pager:hover{box-shadow:0 0 0 8px #fff inset}.lg-outer .lg-caret{border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px dashed;bottom:-10px;display:inline-block;height:0;left:50%;margin-left:-5px;position:absolute;vertical-align:middle;width:0}.lg-fullscreen:after{content:"\e20c"}.lg-fullscreen-on .lg-fullscreen:after{content:"\e20d"}.lg-outer #lg-dropdown-overlay{background-color:rgba(0,0,0,.25);bottom:0;cursor:default;left:0;position:fixed;right:0;top:0;z-index:1081;opacity:0;visibility:hidden;-webkit-transition:visibility 0s linear .18s,opacity .18s linear 0s;-o-transition:visibility 0s linear .18s,opacity .18s linear 0s;transition:visibility 0s linear .18s,opacity .18s linear 0s}.lg-outer.lg-dropdown-active #lg-dropdown-overlay,.lg-outer.lg-dropdown-active .lg-dropdown{-webkit-transition-delay:0s;transition-delay:0s;-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;visibility:visible}.lg-outer .lg-dropdown{background-color:#fff;border-radius:2px;font-size:14px;list-style-type:none;margin:0;padding:10px 0;position:absolute;right:0;text-align:left;top:50px;opacity:0;visibility:hidden;-moz-transform:translate3d(0,5px,0);-o-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0);-webkit-transition:-webkit-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;-moz-transition:-moz-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;-o-transition:-o-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;transition:transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s}.lg-outer .lg-dropdown:after{content:"";display:block;height:0;width:0;position:absolute;border:8px solid transparent;border-bottom-color:#FFF;right:16px;top:-16px}.lg-outer .lg-dropdown>li:last-child{margin-bottom:0}.lg-outer .lg-dropdown>li:hover .lg-icon,.lg-outer .lg-dropdown>li:hover a{color:#333}.lg-outer .lg-dropdown a{color:#333;display:block;white-space:pre;padding:4px 12px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px}.lg-outer .lg-dropdown a:hover{background-color:rgba(0,0,0,.07)}.lg-outer .lg-dropdown .lg-dropdown-text{display:inline-block;line-height:1;margin-top:-3px;vertical-align:middle}.lg-outer .lg-dropdown .lg-icon{color:#333;display:inline-block;float:none;font-size:20px;height:auto;line-height:1;margin-right:8px;padding:0;vertical-align:middle;width:auto}.lg-outer,.lg-outer .lg,.lg-outer .lg-inner{width:100%;height:100%}.lg-outer #lg-share{position:relative}.lg-outer #lg-share:after{content:"\e80d"}.lg-outer #lg-share-facebook .lg-icon{color:#3b5998}.lg-outer #lg-share-facebook .lg-icon:after{content:"\e901"}.lg-outer #lg-share-twitter .lg-icon{color:#00aced}.lg-outer #lg-share-twitter .lg-icon:after{content:"\e904"}.lg-outer #lg-share-googleplus .lg-icon{color:#dd4b39}.lg-outer #lg-share-googleplus .lg-icon:after{content:"\e902"}.lg-outer #lg-share-pinterest .lg-icon{color:#cb2027}.lg-outer #lg-share-pinterest .lg-icon:after{content:"\e903"}.lg-group:after{content:"";display:table;clear:both}.lg-outer{position:fixed;top:0;left:0;z-index:1050;text-align:left;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lg-outer.lg-visible{opacity:1}.lg-outer.lg-css3 .lg-item.lg-current,.lg-outer.lg-css3 .lg-item.lg-next-slide,.lg-outer.lg-css3 .lg-item.lg-prev-slide{-webkit-transition-duration:inherit!important;transition-duration:inherit!important;-webkit-transition-timing-function:inherit!important;transition-timing-function:inherit!important}.lg-outer.lg-css3.lg-dragging .lg-item.lg-current,.lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide,.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide{-webkit-transition-duration:0s!important;transition-duration:0s!important;opacity:1}.lg-outer.lg-grab img.lg-object{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer.lg-grabbing img.lg-object{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg{position:relative;overflow:hidden;margin-left:auto;margin-right:auto;max-width:100%;max-height:100%}.lg-outer .lg-inner{position:absolute;left:0;top:0;white-space:nowrap}.lg-outer .lg-item{background:url(../img/loading.gif) center center no-repeat;display:none!important}.lg-outer.lg-css .lg-current,.lg-outer.lg-css3 .lg-current,.lg-outer.lg-css3 .lg-next-slide,.lg-outer.lg-css3 .lg-prev-slide{display:inline-block!important}.lg-outer .lg-img-wrap,.lg-outer .lg-item{display:inline-block;text-align:center;position:absolute;width:100%;height:100%}.lg-outer .lg-img-wrap:before,.lg-outer .lg-item:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-1px}.lg-outer .lg-img-wrap{position:absolute;padding:0 5px;left:0;right:0;top:0;bottom:0}.lg-outer .lg-item.lg-complete{background-image:none}.lg-outer .lg-item.lg-current{z-index:1060}.lg-outer .lg-image{display:inline-block;vertical-align:middle;max-width:100%;max-height:100%;width:auto!important;height:auto!important}.lg-outer.lg-show-after-load .lg-item .lg-object,.lg-outer.lg-show-after-load .lg-item .lg-video-play{opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object,.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play{opacity:1}.lg-outer .lg-empty-html,.lg-outer.lg-hide-download #lg-download{display:none}.lg-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1040;background-color:#000;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-backdrop.in{opacity:1}.lg-css3.lg-no-trans .lg-current,.lg-css3.lg-no-trans .lg-next-slide,.lg-css3.lg-no-trans .lg-prev-slide{-webkit-transition:none 0s ease 0s!important;-moz-transition:none 0s ease 0s!important;-o-transition:none 0s ease 0s!important;transition:none 0s ease 0s!important}.lg-css3.lg-use-css3 .lg-item,.lg-css3.lg-use-left .lg-item{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-css3.lg-fade .lg-item{opacity:0}.lg-css3.lg-fade .lg-item.lg-current{opacity:1}.lg-css3.lg-fade .lg-item.lg-current,.lg-css3.lg-fade .lg-item.lg-next-slide,.lg-css3.lg-fade .lg-item.lg-prev-slide{-webkit-transition:opacity .1s ease 0s;-moz-transition:opacity .1s ease 0s;-o-transition:opacity .1s ease 0s;transition:opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-css3 .lg-item{opacity:0}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-left .lg-item{opacity:0;position:absolute;left:0}.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{left:-100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide{left:100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current{left:0;opacity:1}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current,.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{-webkit-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s} 
     1.lg-sub-html,.lg-toolbar{background-color:rgba(0,0,0,.45)}@font-face{font-family:lg;src:url(../fonts/lg.eot?n1z373);src:url(../fonts/lg.eot?#iefixn1z373) format("embedded-opentype"),url(../fonts/lg.woff?n1z373) format("woff"),url(../fonts/lg.ttf?n1z373) format("truetype"),url(../fonts/lg.svg?n1z373#lg) format("svg");font-weight:400;font-style:normal}.lg-icon{font-family:lg;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lg-actions .lg-next,.lg-actions .lg-prev{background-color:rgba(0,0,0,.45);border-radius:2px;color:#999;cursor:pointer;display:block;font-size:22px;margin-top:-10px;padding:8px 10px 9px;position:absolute;top:50%;z-index:1080;border:none;outline:0}.lg-actions .lg-next.disabled,.lg-actions .lg-prev.disabled{pointer-events:none;opacity:.5}.lg-actions .lg-next:hover,.lg-actions .lg-prev:hover{color:#FFF}.lg-actions .lg-next{right:20px}.lg-actions .lg-next:before{content:"\e095"}.lg-actions .lg-prev{left:20px}.lg-actions .lg-prev:after{content:"\e094"}@-webkit-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-moz-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-ms-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-webkit-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@-moz-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@-ms-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}.lg-outer.lg-right-end .lg-object{-webkit-animation:lg-right-end .3s;-o-animation:lg-right-end .3s;animation:lg-right-end .3s;position:relative}.lg-outer.lg-left-end .lg-object{-webkit-animation:lg-left-end .3s;-o-animation:lg-left-end .3s;animation:lg-left-end .3s;position:relative}.lg-toolbar{z-index:1082;left:0;position:absolute;top:0;width:100%}.lg-toolbar .lg-icon{color:#999;cursor:pointer;float:right;font-size:24px;height:47px;line-height:27px;padding:10px 0;text-align:center;width:50px;text-decoration:none!important;outline:0;-webkit-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.lg-toolbar .lg-icon:hover{color:#FFF}.lg-toolbar .lg-close:after{content:"\e070"}.lg-toolbar .lg-download:after{content:"\e0f2"}.lg-sub-html{bottom:0;color:#EEE;font-size:16px;left:0;padding:10px 40px;position:fixed;right:0;text-align:center;z-index:1080}.lg-sub-html h4{margin:0;font-size:13px;font-weight:700}.lg-sub-html p{font-size:12px;margin:5px 0 0}#lg-counter{color:#999;display:inline-block;font-size:16px;padding-left:20px;padding-top:12px;vertical-align:middle}.lg-next,.lg-prev,.lg-toolbar{opacity:1;-webkit-transition:-webkit-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear;-moz-transition:-moz-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear;-o-transition:-o-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear;transition:transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear}.lg-hide-items .lg-prev{opacity:0;-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}.lg-hide-items .lg-next{opacity:0;-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}.lg-hide-items .lg-toolbar{opacity:0;-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object{-webkit-transform:scale3d(.5,.5,.5);transform:scale3d(.5,.5,.5);opacity:0;-webkit-transition:-webkit-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-moz-transition:-moz-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-o-transition:-o-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;transition:transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-outer .lg-thumb-outer{background-color:#0D0A0A;bottom:0;position:absolute;width:100%;z-index:1080;max-height:350px;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1) 0s;transition:transform .25s cubic-bezier(0,0,.25,1) 0s}.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-outer.lg-thumb-open .lg-thumb-outer{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-thumb{padding:10px 0;height:100%;margin-bottom:-5px}.lg-outer .lg-thumb-item{cursor:pointer;float:left;overflow:hidden;height:100%;border:2px solid #FFF;border-radius:4px;margin-bottom:5px}@media (min-width:1025px){.lg-outer .lg-thumb-item{-webkit-transition:border-color .25s ease;-o-transition:border-color .25s ease;transition:border-color .25s ease}}.lg-outer .lg-thumb-item.active,.lg-outer .lg-thumb-item:hover{border-color:#a90707}.lg-outer .lg-thumb-item img{width:100%;height:100%;object-fit:cover}.lg-outer.lg-has-thumb .lg-item{padding-bottom:120px}.lg-outer.lg-can-toggle .lg-item{padding-bottom:0}.lg-outer.lg-pull-caption-up .lg-sub-html{-webkit-transition:bottom .25s ease;-o-transition:bottom .25s ease;transition:bottom .25s ease}.lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html{bottom:100px}.lg-outer .lg-toogle-thumb{background-color:#0D0A0A;border-radius:2px 2px 0 0;color:#999;cursor:pointer;font-size:24px;height:39px;line-height:27px;padding:5px 0;position:absolute;right:20px;text-align:center;top:-39px;width:50px}.lg-outer .lg-toogle-thumb:hover,.lg-outer.lg-dropdown-active #lg-share{color:#FFF}.lg-outer .lg-toogle-thumb:after{content:"\e1ff"}.lg-outer .lg-video-cont{display:inline-block;vertical-align:middle;max-width:1140px;max-height:100%;width:100%;padding:0 5px}.lg-outer .lg-video{width:100%;height:0;padding-bottom:56.25%;overflow:hidden;position:relative}.lg-outer .lg-video .lg-object{display:inline-block;position:absolute;top:0;left:0;width:100%!important;height:100%!important}.lg-outer .lg-video .lg-video-play{width:84px;height:59px;position:absolute;left:50%;top:50%;margin-left:-42px;margin-top:-30px;z-index:1080;cursor:pointer}.lg-outer .lg-has-iframe .lg-video{-webkit-overflow-scrolling:touch;overflow:auto}.lg-outer .lg-has-vimeo .lg-video-play{background:url(../img/vimeo-play.png) no-repeat}.lg-outer .lg-has-vimeo:hover .lg-video-play{background:url(../img/vimeo-play.png) 0 -58px no-repeat}.lg-outer .lg-has-html5 .lg-video-play{background:url(../img/video-play.png) no-repeat;height:64px;margin-left:-32px;margin-top:-32px;width:64px;opacity:.8}.lg-outer .lg-has-html5:hover .lg-video-play{opacity:1}.lg-outer .lg-has-youtube .lg-video-play{background:url(../img/youtube-play.png) no-repeat}.lg-outer .lg-has-youtube:hover .lg-video-play{background:url(../img/youtube-play.png) 0 -60px no-repeat}.lg-outer .lg-video-object{width:100%!important;height:100%!important;position:absolute;top:0;left:0}.lg-outer .lg-has-video .lg-video-object{visibility:hidden}.lg-outer .lg-has-video.lg-video-playing .lg-object,.lg-outer .lg-has-video.lg-video-playing .lg-video-play{display:none}.lg-outer .lg-has-video.lg-video-playing .lg-video-object{visibility:visible}.lg-progress-bar{background-color:#333;height:5px;left:0;position:absolute;top:0;width:100%;z-index:1083;opacity:0;-webkit-transition:opacity 80ms ease 0s;-moz-transition:opacity 80ms ease 0s;-o-transition:opacity 80ms ease 0s;transition:opacity 80ms ease 0s}.lg-progress-bar .lg-progress{background-color:#a90707;height:5px;width:0}.lg-progress-bar.lg-start .lg-progress{width:100%}.lg-show-autoplay .lg-progress-bar{opacity:1}.lg-autoplay-button:after{content:"\e01d"}.lg-show-autoplay .lg-autoplay-button:after{content:"\e01a"}.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image,.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition-duration:0s;transition-duration:0s}.lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition:-webkit-transform .3s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .3s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .3s cubic-bezier(0,0,.25,1) 0s;transition:transform .3s cubic-bezier(0,0,.25,1) 0s}.lg-outer.lg-use-left-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s;-moz-transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s;-o-transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s;transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:-webkit-transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;-moz-transition:-moz-transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;-o-transition:-o-transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;transition:transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}#lg-zoom-in:after{content:"\e311"}#lg-actual-size{font-size:20px}#lg-actual-size:after{content:"\e033"}#lg-zoom-out{opacity:.5;pointer-events:none}#lg-zoom-out:after{content:"\e312"}.lg-zoomed #lg-zoom-out{opacity:1;pointer-events:auto}.lg-outer .lg-pager-outer{bottom:60px;left:0;position:absolute;right:0;text-align:center;z-index:1080;height:10px}.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont{overflow:visible}.lg-outer .lg-pager-cont{cursor:pointer;display:inline-block;overflow:hidden;position:relative;vertical-align:top;margin:0 5px}.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-pager-cont.lg-pager-active .lg-pager{box-shadow:0 0 0 2px #fff inset}.lg-outer .lg-pager-thumb-cont{background-color:#fff;color:#FFF;bottom:100%;height:83px;left:0;margin-bottom:20px;margin-left:-60px;opacity:0;padding:5px;position:absolute;width:120px;border-radius:3px;-webkit-transition:opacity .15s ease 0s,-webkit-transform .15s ease 0s;-moz-transition:opacity .15s ease 0s,-moz-transform .15s ease 0s;-o-transition:opacity .15s ease 0s,-o-transform .15s ease 0s;transition:opacity .15s ease 0s,transform .15s ease 0s;-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}.lg-outer .lg-pager-thumb-cont img{width:100%;height:100%}.lg-outer .lg-pager{background-color:rgba(255,255,255,.5);border-radius:50%;box-shadow:0 0 0 8px rgba(255,255,255,.7) inset;display:block;height:12px;-webkit-transition:box-shadow .3s ease 0s;-o-transition:box-shadow .3s ease 0s;transition:box-shadow .3s ease 0s;width:12px}.lg-outer .lg-pager:focus,.lg-outer .lg-pager:hover{box-shadow:0 0 0 8px #fff inset}.lg-outer .lg-caret{border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px dashed;bottom:-10px;display:inline-block;height:0;left:50%;margin-left:-5px;position:absolute;vertical-align:middle;width:0}.lg-fullscreen:after{content:"\e20c"}.lg-fullscreen-on .lg-fullscreen:after{content:"\e20d"}.lg-outer #lg-dropdown-overlay{background-color:rgba(0,0,0,.25);bottom:0;cursor:default;left:0;position:fixed;right:0;top:0;z-index:1081;opacity:0;visibility:hidden;-webkit-transition:visibility 0s linear .18s,opacity .18s linear 0s;-o-transition:visibility 0s linear .18s,opacity .18s linear 0s;transition:visibility 0s linear .18s,opacity .18s linear 0s}.lg-outer.lg-dropdown-active #lg-dropdown-overlay,.lg-outer.lg-dropdown-active .lg-dropdown{-webkit-transition-delay:0s;transition-delay:0s;-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;visibility:visible}.lg-outer .lg-dropdown{background-color:#fff;border-radius:2px;font-size:14px;list-style-type:none;margin:0;padding:10px 0;position:absolute;right:0;text-align:left;top:50px;opacity:0;visibility:hidden;-moz-transform:translate3d(0,5px,0);-o-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0);-webkit-transition:-webkit-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;-moz-transition:-moz-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;-o-transition:-o-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;transition:transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s}.lg-outer .lg-dropdown:after{content:"";display:block;height:0;width:0;position:absolute;border:8px solid transparent;border-bottom-color:#FFF;right:16px;top:-16px}.lg-outer .lg-dropdown>li:last-child{margin-bottom:0}.lg-outer .lg-dropdown>li:hover .lg-icon,.lg-outer .lg-dropdown>li:hover a{color:#333}.lg-outer .lg-dropdown a{color:#333;display:block;white-space:pre;padding:4px 12px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px}.lg-outer .lg-dropdown a:hover{background-color:rgba(0,0,0,.07)}.lg-outer .lg-dropdown .lg-dropdown-text{display:inline-block;line-height:1;margin-top:-3px;vertical-align:middle}.lg-outer .lg-dropdown .lg-icon{color:#333;display:inline-block;float:none;font-size:20px;height:auto;line-height:1;margin-right:8px;padding:0;vertical-align:middle;width:auto}.lg-outer,.lg-outer .lg,.lg-outer .lg-inner{width:100%;height:100%}.lg-outer #lg-share{position:relative}.lg-outer #lg-share:after{content:"\e80d"}.lg-outer #lg-share-facebook .lg-icon{color:#3b5998}.lg-outer #lg-share-facebook .lg-icon:after{content:"\e901"}.lg-outer #lg-share-twitter .lg-icon{color:#00aced}.lg-outer #lg-share-twitter .lg-icon:after{content:"\e904"}.lg-outer #lg-share-googleplus .lg-icon{color:#dd4b39}.lg-outer #lg-share-googleplus .lg-icon:after{content:"\e902"}.lg-outer #lg-share-pinterest .lg-icon{color:#cb2027}.lg-outer #lg-share-pinterest .lg-icon:after{content:"\e903"}.lg-group:after{content:"";display:table;clear:both}.lg-outer{position:fixed;top:0;left:0;z-index:1050;text-align:left;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lg-outer.lg-visible{opacity:1}.lg-outer.lg-css3 .lg-item.lg-current,.lg-outer.lg-css3 .lg-item.lg-next-slide,.lg-outer.lg-css3 .lg-item.lg-prev-slide{-webkit-transition-duration:inherit!important;transition-duration:inherit!important;-webkit-transition-timing-function:inherit!important;transition-timing-function:inherit!important}.lg-outer.lg-css3.lg-dragging .lg-item.lg-current,.lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide,.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide{-webkit-transition-duration:0s!important;transition-duration:0s!important;opacity:1}.lg-outer.lg-grab img.lg-object{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer.lg-grabbing img.lg-object{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg{position:relative;overflow:hidden;margin-left:auto;margin-right:auto;max-width:100%;max-height:100%}.lg-outer .lg-inner{position:absolute;left:0;top:0;white-space:nowrap}.lg-outer .lg-item{background:url(../img/loading.gif) center center no-repeat;display:none!important}.lg-outer.lg-css .lg-current,.lg-outer.lg-css3 .lg-current,.lg-outer.lg-css3 .lg-next-slide,.lg-outer.lg-css3 .lg-prev-slide{display:inline-block!important}.lg-outer .lg-img-wrap,.lg-outer .lg-item{display:inline-block;text-align:center;position:absolute;width:100%;height:100%}.lg-outer .lg-img-wrap:before,.lg-outer .lg-item:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-1px}.lg-outer .lg-img-wrap{position:absolute;padding:0 5px;left:0;right:0;top:0;bottom:0}.lg-outer .lg-item.lg-complete{background-image:none}.lg-outer .lg-item.lg-current{z-index:1060}.lg-outer .lg-image{display:inline-block;vertical-align:middle;max-width:100%;max-height:100%;width:auto!important;height:auto!important}.lg-outer.lg-show-after-load .lg-item .lg-object,.lg-outer.lg-show-after-load .lg-item .lg-video-play{opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object,.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play{opacity:1}.lg-outer .lg-empty-html,.lg-outer.lg-hide-download #lg-download{display:none}.lg-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1040;background-color:#000;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-backdrop.in{opacity:1}.lg-css3.lg-no-trans .lg-current,.lg-css3.lg-no-trans .lg-next-slide,.lg-css3.lg-no-trans .lg-prev-slide{-webkit-transition:none 0s ease 0s!important;-moz-transition:none 0s ease 0s!important;-o-transition:none 0s ease 0s!important;transition:none 0s ease 0s!important}.lg-css3.lg-use-css3 .lg-item,.lg-css3.lg-use-left .lg-item{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-css3.lg-fade .lg-item{opacity:0}.lg-css3.lg-fade .lg-item.lg-current{opacity:1}.lg-css3.lg-fade .lg-item.lg-current,.lg-css3.lg-fade .lg-item.lg-next-slide,.lg-css3.lg-fade .lg-item.lg-prev-slide{-webkit-transition:opacity .1s ease 0s;-moz-transition:opacity .1s ease 0s;-o-transition:opacity .1s ease 0s;transition:opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-css3 .lg-item{opacity:0}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-left .lg-item{opacity:0;position:absolute;left:0}.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{left:-100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide{left:100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current{left:0;opacity:1}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current,.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{-webkit-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s} 
  • qusq-lite/1.0.3/js/bower/modernizr/modernizr.js

    r85403 r85403  
    66 * Available under the BSD and MIT licenses: www.modernizr.com/license/ 
    77 */ 
    8 window.Modernizr=function(window,document,undefined){function setCss(str){mStyle.cssText=str}function setCssAll(str1,str2){return setCss(prefixes.join(str1+";")+(str2||""))}function is(obj,type){return typeof obj===type}function contains(str,substr){return!!~(""+str).indexOf(substr)}function testProps(props,prefixed){for(var i in props){var prop=props[i];if(!contains(prop,"-")&&mStyle[prop]!==undefined)return"pfx"!=prefixed||prop}return!1}function testDOMProps(props,obj,elem){for(var i in props){var item=obj[props[i]];if(item!==undefined)return elem===!1?props[i]:is(item,"function")?item.bind(elem||obj):item}return!1}function testPropsAll(prop,prefixed,elem){var ucProp=prop.charAt(0).toUpperCase()+prop.slice(1),props=(prop+" "+cssomPrefixes.join(ucProp+" ")+ucProp).split(" ");return is(prefixed,"string")||is(prefixed,"undefined")?testProps(props,prefixed):(props=(prop+" "+domPrefixes.join(ucProp+" ")+ucProp).split(" "),testDOMProps(props,prefixed,elem))}function webforms(){Modernizr.input=function(props){for(var i=0,len=props.length;i<len;i++)attrs[props[i]]=!!(props[i]in inputElem);return attrs.list&&(attrs.list=!(!document.createElement("datalist")||!window.HTMLDataListElement)),attrs}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),Modernizr.inputtypes=function(props){for(var bool,inputElemType,defaultView,i=0,len=props.length;i<len;i++)inputElem.setAttribute("type",inputElemType=props[i]),bool="text"!==inputElem.type,bool&&(inputElem.value=smile,inputElem.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(inputElemType)&&inputElem.style.WebkitAppearance!==undefined?(docElement.appendChild(inputElem),defaultView=document.defaultView,bool=defaultView.getComputedStyle&&"textfield"!==defaultView.getComputedStyle(inputElem,null).WebkitAppearance&&0!==inputElem.offsetHeight,docElement.removeChild(inputElem)):/^(search|tel)$/.test(inputElemType)||(bool=/^(url|email)$/.test(inputElemType)?inputElem.checkValidity&&inputElem.checkValidity()===!1:inputElem.value!=smile)),inputs[props[i]]=!!bool;return inputs}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var featureName,hasOwnProp,version="2.8.3",Modernizr={},enableClasses=!0,docElement=document.documentElement,mod="modernizr",modElem=document.createElement(mod),mStyle=modElem.style,inputElem=document.createElement("input"),smile=":)",toString={}.toString,prefixes=" -webkit- -moz- -o- -ms- ".split(" "),omPrefixes="Webkit Moz O ms",cssomPrefixes=omPrefixes.split(" "),domPrefixes=omPrefixes.toLowerCase().split(" "),ns={svg:"http://www.w3.org/2000/svg"},tests={},inputs={},attrs={},classes=[],slice=classes.slice,injectElementWithStyles=function(rule,callback,nodes,testnames){var style,ret,node,docOverflow,div=document.createElement("div"),body=document.body,fakeBody=body||document.createElement("body");if(parseInt(nodes,10))for(;nodes--;)node=document.createElement("div"),node.id=testnames?testnames[nodes]:mod+(nodes+1),div.appendChild(node);return style=["&#173;",'<style id="s',mod,'">',rule,"</style>"].join(""),div.id=mod,(body?div:fakeBody).innerHTML+=style,fakeBody.appendChild(div),body||(fakeBody.style.background="",fakeBody.style.overflow="hidden",docOverflow=docElement.style.overflow,docElement.style.overflow="hidden",docElement.appendChild(fakeBody)),ret=callback(div,rule),body?div.parentNode.removeChild(div):(fakeBody.parentNode.removeChild(fakeBody),docElement.style.overflow=docOverflow),!!ret},testMediaQuery=function(mq){var matchMedia=window.matchMedia||window.msMatchMedia;if(matchMedia)return matchMedia(mq)&&matchMedia(mq).matches||!1;var bool;return injectElementWithStyles("@media "+mq+" { #"+mod+" { position: absolute; } }",function(node){bool="absolute"==(window.getComputedStyle?getComputedStyle(node,null):node.currentStyle).position}),bool},isEventSupported=function(){function isEventSupported(eventName,element){element=element||document.createElement(TAGNAMES[eventName]||"div"),eventName="on"+eventName;var isSupported=eventName in element;return isSupported||(element.setAttribute||(element=document.createElement("div")),element.setAttribute&&element.removeAttribute&&(element.setAttribute(eventName,""),isSupported=is(element[eventName],"function"),is(element[eventName],"undefined")||(element[eventName]=undefined),element.removeAttribute(eventName))),element=null,isSupported}var TAGNAMES={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return isEventSupported}(),_hasOwnProperty={}.hasOwnProperty;hasOwnProp=is(_hasOwnProperty,"undefined")||is(_hasOwnProperty.call,"undefined")?function(object,property){return property in object&&is(object.constructor.prototype[property],"undefined")}:function(object,property){return _hasOwnProperty.call(object,property)},Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError;var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var F=function(){};F.prototype=target.prototype;var self=new F,result=target.apply(self,args.concat(slice.call(arguments)));return Object(result)===result?result:self}return target.apply(that,args.concat(slice.call(arguments)))};return bound}),tests.flexbox=function(){return testPropsAll("flexWrap")},tests.flexboxlegacy=function(){return testPropsAll("boxDirection")},tests.canvas=function(){var elem=document.createElement("canvas");return!(!elem.getContext||!elem.getContext("2d"))},tests.canvastext=function(){return!(!Modernizr.canvas||!is(document.createElement("canvas").getContext("2d").fillText,"function"))},tests.webgl=function(){return!!window.WebGLRenderingContext},tests.touch=function(){var bool;return"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch?bool=!0:injectElementWithStyles(["@media (",prefixes.join("touch-enabled),("),mod,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(node){bool=9===node.offsetTop}),bool},tests.geolocation=function(){return"geolocation"in navigator},tests.postmessage=function(){return!!window.postMessage},tests.websqldatabase=function(){return!!window.openDatabase},tests.indexedDB=function(){return!!testPropsAll("indexedDB",window)},tests.hashchange=function(){return isEventSupported("hashchange",window)&&(document.documentMode===undefined||document.documentMode>7)},tests.history=function(){return!(!window.history||!history.pushState)},tests.draganddrop=function(){var div=document.createElement("div");return"draggable"in div||"ondragstart"in div&&"ondrop"in div},tests.websockets=function(){return"WebSocket"in window||"MozWebSocket"in window},tests.rgba=function(){return setCss("background-color:rgba(150,255,150,.5)"),contains(mStyle.backgroundColor,"rgba")},tests.hsla=function(){return setCss("background-color:hsla(120,40%,100%,.5)"),contains(mStyle.backgroundColor,"rgba")||contains(mStyle.backgroundColor,"hsla")},tests.multiplebgs=function(){return setCss("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(mStyle.background)},tests.backgroundsize=function(){return testPropsAll("backgroundSize")},tests.borderimage=function(){return testPropsAll("borderImage")},tests.borderradius=function(){return testPropsAll("borderRadius")},tests.boxshadow=function(){return testPropsAll("boxShadow")},tests.textshadow=function(){return""===document.createElement("div").style.textShadow},tests.opacity=function(){return setCssAll("opacity:.55"),/^0.55$/.test(mStyle.opacity)},tests.cssanimations=function(){return testPropsAll("animationName")},tests.csscolumns=function(){return testPropsAll("columnCount")},tests.cssgradients=function(){var str1="background-image:",str2="gradient(linear,left top,right bottom,from(#9f9),to(white));",str3="linear-gradient(left top,#9f9, white);";return setCss((str1+"-webkit- ".split(" ").join(str2+str1)+prefixes.join(str3+str1)).slice(0,-str1.length)),contains(mStyle.backgroundImage,"gradient")},tests.cssreflections=function(){return testPropsAll("boxReflect")},tests.csstransforms=function(){return!!testPropsAll("transform")},tests.csstransforms3d=function(){var ret=!!testPropsAll("perspective");return ret&&"webkitPerspective"in docElement.style&&injectElementWithStyles("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(node,rule){ret=9===node.offsetLeft&&3===node.offsetHeight}),ret},tests.csstransitions=function(){return testPropsAll("transition")},tests.fontface=function(){var bool;return injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}',function(node,rule){var style=document.getElementById("smodernizr"),sheet=style.sheet||style.styleSheet,cssText=sheet?sheet.cssRules&&sheet.cssRules[0]?sheet.cssRules[0].cssText:sheet.cssText||"":"";bool=/src/i.test(cssText)&&0===cssText.indexOf(rule.split(" ")[0])}),bool},tests.generatedcontent=function(){var bool;return injectElementWithStyles(["#",mod,"{font:0/0 a}#",mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(""),function(node){bool=node.offsetHeight>=3}),bool},tests.video=function(){var elem=document.createElement("video"),bool=!1;try{(bool=!!elem.canPlayType)&&(bool=new Boolean(bool),bool.ogg=elem.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),bool.h264=elem.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),bool.webm=elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(e){}return bool},tests.audio=function(){var elem=document.createElement("audio"),bool=!1;try{(bool=!!elem.canPlayType)&&(bool=new Boolean(bool),bool.ogg=elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),bool.mp3=elem.canPlayType("audio/mpeg;").replace(/^no$/,""),bool.wav=elem.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),bool.m4a=(elem.canPlayType("audio/x-m4a;")||elem.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(e){}return bool},tests.localstorage=function(){try{return localStorage.setItem(mod,mod),localStorage.removeItem(mod),!0}catch(e){return!1}},tests.sessionstorage=function(){try{return sessionStorage.setItem(mod,mod),sessionStorage.removeItem(mod),!0}catch(e){return!1}},tests.webworkers=function(){return!!window.Worker},tests.applicationcache=function(){return!!window.applicationCache},tests.svg=function(){return!!document.createElementNS&&!!document.createElementNS(ns.svg,"svg").createSVGRect},tests.inlinesvg=function(){var div=document.createElement("div");return div.innerHTML="<svg/>",(div.firstChild&&div.firstChild.namespaceURI)==ns.svg},tests.smil=function(){return!!document.createElementNS&&/SVGAnimate/.test(toString.call(document.createElementNS(ns.svg,"animate")))},tests.svgclippaths=function(){return!!document.createElementNS&&/SVGClipPath/.test(toString.call(document.createElementNS(ns.svg,"clipPath")))};for(var feature in tests)hasOwnProp(tests,feature)&&(featureName=feature.toLowerCase(),Modernizr[featureName]=tests[feature](),classes.push((Modernizr[featureName]?"":"no-")+featureName));return Modernizr.input||webforms(),Modernizr.addTest=function(feature,test){if("object"==typeof feature)for(var key in feature)hasOwnProp(feature,key)&&Modernizr.addTest(key,feature[key]);else{if(feature=feature.toLowerCase(),Modernizr[feature]!==undefined)return Modernizr;test="function"==typeof test?test():test,"undefined"!=typeof enableClasses&&enableClasses&&(docElement.className+=" "+(test?"":"no-")+feature),Modernizr[feature]=test}return Modernizr},setCss(""),modElem=inputElem=null,function(window,document){function addStyleSheet(ownerDocument,cssText){var p=ownerDocument.createElement("p"),parent=ownerDocument.getElementsByTagName("head")[0]||ownerDocument.documentElement;return p.innerHTML="x<style>"+cssText+"</style>",parent.insertBefore(p.lastChild,parent.firstChild)}function getElements(){var elements=html5.elements;return"string"==typeof elements?elements.split(" "):elements}function getExpandoData(ownerDocument){var data=expandoData[ownerDocument[expando]];return data||(data={},expanID++,ownerDocument[expando]=expanID,expandoData[expanID]=data),data}function createElement(nodeName,ownerDocument,data){if(ownerDocument||(ownerDocument=document),supportsUnknownElements)return ownerDocument.createElement(nodeName);data||(data=getExpandoData(ownerDocument));var node;return node=data.cache[nodeName]?data.cache[nodeName].cloneNode():saveClones.test(nodeName)?(data.cache[nodeName]=data.createElem(nodeName)).cloneNode():data.createElem(nodeName),!node.canHaveChildren||reSkip.test(nodeName)||node.tagUrn?node:data.frag.appendChild(node)}function createDocumentFragment(ownerDocument,data){if(ownerDocument||(ownerDocument=document),supportsUnknownElements)return ownerDocument.createDocumentFragment();data=data||getExpandoData(ownerDocument);for(var clone=data.frag.cloneNode(),i=0,elems=getElements(),l=elems.length;i<l;i++)clone.createElement(elems[i]);return clone}function shivMethods(ownerDocument,data){data.cache||(data.cache={},data.createElem=ownerDocument.createElement,data.createFrag=ownerDocument.createDocumentFragment,data.frag=data.createFrag()),ownerDocument.createElement=function(nodeName){return html5.shivMethods?createElement(nodeName,ownerDocument,data):data.createElem(nodeName)},ownerDocument.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+getElements().join().replace(/[\w\-]+/g,function(nodeName){return data.createElem(nodeName),data.frag.createElement(nodeName),'c("'+nodeName+'")'})+");return n}")(html5,data.frag)}function shivDocument(ownerDocument){ownerDocument||(ownerDocument=document);var data=getExpandoData(ownerDocument);return!html5.shivCSS||supportsHtml5Styles||data.hasCSS||(data.hasCSS=!!addStyleSheet(ownerDocument,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),supportsUnknownElements||shivMethods(ownerDocument,data),ownerDocument}var supportsHtml5Styles,supportsUnknownElements,version="3.7.0",options=window.html5||{},reSkip=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,saveClones=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,expando="_html5shiv",expanID=0,expandoData={};!function(){try{var a=document.createElement("a");a.innerHTML="<xyz></xyz>",supportsHtml5Styles="hidden"in a,supportsUnknownElements=1==a.childNodes.length||function(){document.createElement("a");var frag=document.createDocumentFragment();return"undefined"==typeof frag.cloneNode||"undefined"==typeof frag.createDocumentFragment||"undefined"==typeof frag.createElement}()}catch(e){supportsHtml5Styles=!0,supportsUnknownElements=!0}}();var html5={elements:options.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:version,shivCSS:options.shivCSS!==!1,supportsUnknownElements:supportsUnknownElements,shivMethods:options.shivMethods!==!1,type:"default",shivDocument:shivDocument,createElement:createElement,createDocumentFragment:createDocumentFragment};window.html5=html5,shivDocument(document)}(this,document),Modernizr._version=version,Modernizr._prefixes=prefixes,Modernizr._domPrefixes=domPrefixes,Modernizr._cssomPrefixes=cssomPrefixes,Modernizr.mq=testMediaQuery,Modernizr.hasEvent=isEventSupported,Modernizr.testProp=function(prop){return testProps([prop])},Modernizr.testAllProps=testPropsAll,Modernizr.testStyles=injectElementWithStyles,Modernizr.prefixed=function(prop,obj,elem){return obj?testPropsAll(prop,obj,elem):testPropsAll(prop,"pfx")},docElement.className=docElement.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(enableClasses?" js "+classes.join(" "):""),Modernizr}(this,this.document); 
     8 
     9/* 
     10 * Modernizr tests which native CSS3 and HTML5 features are available in 
     11 * the current UA and makes the results available to you in two ways: 
     12 * as properties on a global Modernizr object, and as classes on the 
     13 * <html> element. This information allows you to progressively enhance 
     14 * your pages with a granular level of control over the experience. 
     15 * 
     16 * Modernizr has an optional (not included) conditional resource loader 
     17 * called Modernizr.load(), based on Yepnope.js (yepnopejs.com). 
     18 * To get a build that includes Modernizr.load(), as well as choosing 
     19 * which tests to include, go to www.modernizr.com/download/ 
     20 * 
     21 * Authors        Faruk Ates, Paul Irish, Alex Sexton 
     22 * Contributors   Ryan Seddon, Ben Alman 
     23 */ 
     24 
     25window.Modernizr = (function( window, document, undefined ) { 
     26 
     27    var version = '2.8.3', 
     28 
     29    Modernizr = {}, 
     30 
     31    /*>>cssclasses*/ 
     32    // option for enabling the HTML classes to be added 
     33    enableClasses = true, 
     34    /*>>cssclasses*/ 
     35 
     36    docElement = document.documentElement, 
     37 
     38    /** 
     39     * Create our "modernizr" element that we do most feature tests on. 
     40     */ 
     41    mod = 'modernizr', 
     42    modElem = document.createElement(mod), 
     43    mStyle = modElem.style, 
     44 
     45    /** 
     46     * Create the input element for various Web Forms feature tests. 
     47     */ 
     48    inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ , 
     49 
     50    /*>>smile*/ 
     51    smile = ':)', 
     52    /*>>smile*/ 
     53 
     54    toString = {}.toString, 
     55 
     56    // TODO :: make the prefixes more granular 
     57    /*>>prefixes*/ 
     58    // List of property values to set for css tests. See ticket #21 
     59    prefixes = ' -webkit- -moz- -o- -ms- '.split(' '), 
     60    /*>>prefixes*/ 
     61 
     62    /*>>domprefixes*/ 
     63    // Following spec is to expose vendor-specific style properties as: 
     64    //   elem.style.WebkitBorderRadius 
     65    // and the following would be incorrect: 
     66    //   elem.style.webkitBorderRadius 
     67 
     68    // Webkit ghosts their properties in lowercase but Opera & Moz do not. 
     69    // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+ 
     70    //   erik.eae.net/archives/2008/03/10/21.48.10/ 
     71 
     72    // More here: github.com/Modernizr/Modernizr/issues/issue/21 
     73    omPrefixes = 'Webkit Moz O ms', 
     74 
     75    cssomPrefixes = omPrefixes.split(' '), 
     76 
     77    domPrefixes = omPrefixes.toLowerCase().split(' '), 
     78    /*>>domprefixes*/ 
     79 
     80    /*>>ns*/ 
     81    ns = {'svg': 'http://www.w3.org/2000/svg'}, 
     82    /*>>ns*/ 
     83 
     84    tests = {}, 
     85    inputs = {}, 
     86    attrs = {}, 
     87 
     88    classes = [], 
     89 
     90    slice = classes.slice, 
     91 
     92    featureName, // used in testing loop 
     93 
     94 
     95    /*>>teststyles*/ 
     96    // Inject element with style element and some CSS rules 
     97    injectElementWithStyles = function( rule, callback, nodes, testnames ) { 
     98 
     99      var style, ret, node, docOverflow, 
     100          div = document.createElement('div'), 
     101          // After page load injecting a fake body doesn't work so check if body exists 
     102          body = document.body, 
     103          // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it. 
     104          fakeBody = body || document.createElement('body'); 
     105 
     106      if ( parseInt(nodes, 10) ) { 
     107          // In order not to give false positives we create a node for each test 
     108          // This also allows the method to scale for unspecified uses 
     109          while ( nodes-- ) { 
     110              node = document.createElement('div'); 
     111              node.id = testnames ? testnames[nodes] : mod + (nodes + 1); 
     112              div.appendChild(node); 
     113          } 
     114      } 
     115 
     116      // <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed 
     117      // when injected with innerHTML. To get around this you need to prepend the 'NoScope' element 
     118      // with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements. 
     119      // msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx 
     120      // Documents served as xml will throw if using &shy; so use xml friendly encoded version. See issue #277 
     121      style = ['&#173;','<style id="s', mod, '">', rule, '</style>'].join(''); 
     122      div.id = mod; 
     123      // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody. 
     124      // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270 
     125      (body ? div : fakeBody).innerHTML += style; 
     126      fakeBody.appendChild(div); 
     127      if ( !body ) { 
     128          //avoid crashing IE8, if background image is used 
     129          fakeBody.style.background = ''; 
     130          //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible 
     131          fakeBody.style.overflow = 'hidden'; 
     132          docOverflow = docElement.style.overflow; 
     133          docElement.style.overflow = 'hidden'; 
     134          docElement.appendChild(fakeBody); 
     135      } 
     136 
     137      ret = callback(div, rule); 
     138      // If this is done after page load we don't want to remove the body so check if body exists 
     139      if ( !body ) { 
     140          fakeBody.parentNode.removeChild(fakeBody); 
     141          docElement.style.overflow = docOverflow; 
     142      } else { 
     143          div.parentNode.removeChild(div); 
     144      } 
     145 
     146      return !!ret; 
     147 
     148    }, 
     149    /*>>teststyles*/ 
     150 
     151    /*>>mq*/ 
     152    // adapted from matchMedia polyfill 
     153    // by Scott Jehl and Paul Irish 
     154    // gist.github.com/786768 
     155    testMediaQuery = function( mq ) { 
     156 
     157      var matchMedia = window.matchMedia || window.msMatchMedia; 
     158      if ( matchMedia ) { 
     159        return matchMedia(mq) && matchMedia(mq).matches || false; 
     160      } 
     161 
     162      var bool; 
     163 
     164      injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) { 
     165        bool = (window.getComputedStyle ? 
     166                  getComputedStyle(node, null) : 
     167                  node.currentStyle)['position'] == 'absolute'; 
     168      }); 
     169 
     170      return bool; 
     171 
     172     }, 
     173     /*>>mq*/ 
     174 
     175 
     176    /*>>hasevent*/ 
     177    // 
     178    // isEventSupported determines if a given element supports the given event 
     179    // kangax.github.com/iseventsupported/ 
     180    // 
     181    // The following results are known incorrects: 
     182    //   Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative 
     183    //   Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333 
     184    //   ... 
     185    isEventSupported = (function() { 
     186 
     187      var TAGNAMES = { 
     188        'select': 'input', 'change': 'input', 
     189        'submit': 'form', 'reset': 'form', 
     190        'error': 'img', 'load': 'img', 'abort': 'img' 
     191      }; 
     192 
     193      function isEventSupported( eventName, element ) { 
     194 
     195        element = element || document.createElement(TAGNAMES[eventName] || 'div'); 
     196        eventName = 'on' + eventName; 
     197 
     198        // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those 
     199        var isSupported = eventName in element; 
     200 
     201        if ( !isSupported ) { 
     202          // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element 
     203          if ( !element.setAttribute ) { 
     204            element = document.createElement('div'); 
     205          } 
     206          if ( element.setAttribute && element.removeAttribute ) { 
     207            element.setAttribute(eventName, ''); 
     208            isSupported = is(element[eventName], 'function'); 
     209 
     210            // If property was created, "remove it" (by setting value to `undefined`) 
     211            if ( !is(element[eventName], 'undefined') ) { 
     212              element[eventName] = undefined; 
     213            } 
     214            element.removeAttribute(eventName); 
     215          } 
     216        } 
     217 
     218        element = null; 
     219        return isSupported; 
     220      } 
     221      return isEventSupported; 
     222    })(), 
     223    /*>>hasevent*/ 
     224 
     225    // TODO :: Add flag for hasownprop ? didn't last time 
     226 
     227    // hasOwnProperty shim by kangax needed for Safari 2.0 support 
     228    _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp; 
     229 
     230    if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) { 
     231      hasOwnProp = function (object, property) { 
     232        return _hasOwnProperty.call(object, property); 
     233      }; 
     234    } 
     235    else { 
     236      hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */ 
     237        return ((property in object) && is(object.constructor.prototype[property], 'undefined')); 
     238      }; 
     239    } 
     240 
     241    // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js 
     242    // es5.github.com/#x15.3.4.5 
     243 
     244    if (!Function.prototype.bind) { 
     245      Function.prototype.bind = function bind(that) { 
     246 
     247        var target = this; 
     248 
     249        if (typeof target != "function") { 
     250            throw new TypeError(); 
     251        } 
     252 
     253        var args = slice.call(arguments, 1), 
     254            bound = function () { 
     255 
     256            if (this instanceof bound) { 
     257 
     258              var F = function(){}; 
     259              F.prototype = target.prototype; 
     260              var self = new F(); 
     261 
     262              var result = target.apply( 
     263                  self, 
     264                  args.concat(slice.call(arguments)) 
     265              ); 
     266              if (Object(result) === result) { 
     267                  return result; 
     268              } 
     269              return self; 
     270 
     271            } else { 
     272 
     273              return target.apply( 
     274                  that, 
     275                  args.concat(slice.call(arguments)) 
     276              ); 
     277 
     278            } 
     279 
     280        }; 
     281 
     282        return bound; 
     283      }; 
     284    } 
     285 
     286    /** 
     287     * setCss applies given styles to the Modernizr DOM node. 
     288     */ 
     289    function setCss( str ) { 
     290        mStyle.cssText = str; 
     291    } 
     292 
     293    /** 
     294     * setCssAll extrapolates all vendor-specific css strings. 
     295     */ 
     296    function setCssAll( str1, str2 ) { 
     297        return setCss(prefixes.join(str1 + ';') + ( str2 || '' )); 
     298    } 
     299 
     300    /** 
     301     * is returns a boolean for if typeof obj is exactly type. 
     302     */ 
     303    function is( obj, type ) { 
     304        return typeof obj === type; 
     305    } 
     306 
     307    /** 
     308     * contains returns a boolean for if substr is found within str. 
     309     */ 
     310    function contains( str, substr ) { 
     311        return !!~('' + str).indexOf(substr); 
     312    } 
     313 
     314    /*>>testprop*/ 
     315 
     316    // testProps is a generic CSS / DOM property test. 
     317 
     318    // In testing support for a given CSS property, it's legit to test: 
     319    //    `elem.style[styleName] !== undefined` 
     320    // If the property is supported it will return an empty string, 
     321    // if unsupported it will return undefined. 
     322 
     323    // We'll take advantage of this quick test and skip setting a style 
     324    // on our modernizr element, but instead just testing undefined vs 
     325    // empty string. 
     326 
     327    // Because the testing of the CSS property names (with "-", as 
     328    // opposed to the camelCase DOM properties) is non-portable and 
     329    // non-standard but works in WebKit and IE (but not Gecko or Opera), 
     330    // we explicitly reject properties with dashes so that authors 
     331    // developing in WebKit or IE first don't end up with 
     332    // browser-specific content by accident. 
     333 
     334    function testProps( props, prefixed ) { 
     335        for ( var i in props ) { 
     336            var prop = props[i]; 
     337            if ( !contains(prop, "-") && mStyle[prop] !== undefined ) { 
     338                return prefixed == 'pfx' ? prop : true; 
     339            } 
     340        } 
     341        return false; 
     342    } 
     343    /*>>testprop*/ 
     344 
     345    // TODO :: add testDOMProps 
     346    /** 
     347     * testDOMProps is a generic DOM property test; if a browser supports 
     348     *   a certain property, it won't return undefined for it. 
     349     */ 
     350    function testDOMProps( props, obj, elem ) { 
     351        for ( var i in props ) { 
     352            var item = obj[props[i]]; 
     353            if ( item !== undefined) { 
     354 
     355                // return the property name as a string 
     356                if (elem === false) return props[i]; 
     357 
     358                // let's bind a function 
     359                if (is(item, 'function')){ 
     360                  // default to autobind unless override 
     361                  return item.bind(elem || obj); 
     362                } 
     363 
     364                // return the unbound function or obj or value 
     365                return item; 
     366            } 
     367        } 
     368        return false; 
     369    } 
     370 
     371    /*>>testallprops*/ 
     372    /** 
     373     * testPropsAll tests a list of DOM properties we want to check against. 
     374     *   We specify literally ALL possible (known and/or likely) properties on 
     375     *   the element including the non-vendor prefixed one, for forward- 
     376     *   compatibility. 
     377     */ 
     378    function testPropsAll( prop, prefixed, elem ) { 
     379 
     380        var ucProp  = prop.charAt(0).toUpperCase() + prop.slice(1), 
     381            props   = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' '); 
     382 
     383        // did they call .prefixed('boxSizing') or are we just testing a prop? 
     384        if(is(prefixed, "string") || is(prefixed, "undefined")) { 
     385          return testProps(props, prefixed); 
     386 
     387        // otherwise, they called .prefixed('requestAnimationFrame', window[, elem]) 
     388        } else { 
     389          props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' '); 
     390          return testDOMProps(props, prefixed, elem); 
     391        } 
     392    } 
     393    /*>>testallprops*/ 
     394 
     395 
     396    /** 
     397     * Tests 
     398     * ----- 
     399     */ 
     400 
     401    // The *new* flexbox 
     402    // dev.w3.org/csswg/css3-flexbox 
     403 
     404    tests['flexbox'] = function() { 
     405      return testPropsAll('flexWrap'); 
     406    }; 
     407 
     408    // The *old* flexbox 
     409    // www.w3.org/TR/2009/WD-css3-flexbox-20090723/ 
     410 
     411    tests['flexboxlegacy'] = function() { 
     412        return testPropsAll('boxDirection'); 
     413    }; 
     414 
     415    // On the S60 and BB Storm, getContext exists, but always returns undefined 
     416    // so we actually have to call getContext() to verify 
     417    // github.com/Modernizr/Modernizr/issues/issue/97/ 
     418 
     419    tests['canvas'] = function() { 
     420        var elem = document.createElement('canvas'); 
     421        return !!(elem.getContext && elem.getContext('2d')); 
     422    }; 
     423 
     424    tests['canvastext'] = function() { 
     425        return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function')); 
     426    }; 
     427 
     428    // webk.it/70117 is tracking a legit WebGL feature detect proposal 
     429 
     430    // We do a soft detect which may false positive in order to avoid 
     431    // an expensive context creation: bugzil.la/732441 
     432 
     433    tests['webgl'] = function() { 
     434        return !!window.WebGLRenderingContext; 
     435    }; 
     436 
     437    /* 
     438     * The Modernizr.touch test only indicates if the browser supports 
     439     *    touch events, which does not necessarily reflect a touchscreen 
     440     *    device, as evidenced by tablets running Windows 7 or, alas, 
     441     *    the Palm Pre / WebOS (touch) phones. 
     442     * 
     443     * Additionally, Chrome (desktop) used to lie about its support on this, 
     444     *    but that has since been rectified: crbug.com/36415 
     445     * 
     446     * We also test for Firefox 4 Multitouch Support. 
     447     * 
     448     * For more info, see: modernizr.github.com/Modernizr/touch.html 
     449     */ 
     450 
     451    tests['touch'] = function() { 
     452        var bool; 
     453 
     454        if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) { 
     455          bool = true; 
     456        } else { 
     457          injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) { 
     458            bool = node.offsetTop === 9; 
     459          }); 
     460        } 
     461 
     462        return bool; 
     463    }; 
     464 
     465 
     466    // geolocation is often considered a trivial feature detect... 
     467    // Turns out, it's quite tricky to get right: 
     468    // 
     469    // Using !!navigator.geolocation does two things we don't want. It: 
     470    //   1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513 
     471    //   2. Disables page caching in WebKit: webk.it/43956 
     472    // 
     473    // Meanwhile, in Firefox < 8, an about:config setting could expose 
     474    // a false positive that would throw an exception: bugzil.la/688158 
     475 
     476    tests['geolocation'] = function() { 
     477        return 'geolocation' in navigator; 
     478    }; 
     479 
     480 
     481    tests['postmessage'] = function() { 
     482      return !!window.postMessage; 
     483    }; 
     484 
     485 
     486    // Chrome incognito mode used to throw an exception when using openDatabase 
     487    // It doesn't anymore. 
     488    tests['websqldatabase'] = function() { 
     489      return !!window.openDatabase; 
     490    }; 
     491 
     492    // Vendors had inconsistent prefixing with the experimental Indexed DB: 
     493    // - Webkit's implementation is accessible through webkitIndexedDB 
     494    // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB 
     495    // For speed, we don't test the legacy (and beta-only) indexedDB 
     496    tests['indexedDB'] = function() { 
     497      return !!testPropsAll("indexedDB", window); 
     498    }; 
     499 
     500    // documentMode logic from YUI to filter out IE8 Compat Mode 
     501    //   which false positives. 
     502    tests['hashchange'] = function() { 
     503      return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7); 
     504    }; 
     505 
     506    // Per 1.6: 
     507    // This used to be Modernizr.historymanagement but the longer 
     508    // name has been deprecated in favor of a shorter and property-matching one. 
     509    // The old API is still available in 1.6, but as of 2.0 will throw a warning, 
     510    // and in the first release thereafter disappear entirely. 
     511    tests['history'] = function() { 
     512      return !!(window.history && history.pushState); 
     513    }; 
     514 
     515    tests['draganddrop'] = function() { 
     516        var div = document.createElement('div'); 
     517        return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div); 
     518    }; 
     519 
     520    // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10 
     521    // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17. 
     522    // FF10 still uses prefixes, so check for it until then. 
     523    // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/ 
     524    tests['websockets'] = function() { 
     525        return 'WebSocket' in window || 'MozWebSocket' in window; 
     526    }; 
     527 
     528 
     529    // css-tricks.com/rgba-browser-support/ 
     530    tests['rgba'] = function() { 
     531        // Set an rgba() color and check the returned value 
     532 
     533        setCss('background-color:rgba(150,255,150,.5)'); 
     534 
     535        return contains(mStyle.backgroundColor, 'rgba'); 
     536    }; 
     537 
     538    tests['hsla'] = function() { 
     539        // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally, 
     540        //   except IE9 who retains it as hsla 
     541 
     542        setCss('background-color:hsla(120,40%,100%,.5)'); 
     543 
     544        return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla'); 
     545    }; 
     546 
     547    tests['multiplebgs'] = function() { 
     548        // Setting multiple images AND a color on the background shorthand property 
     549        //  and then querying the style.background property value for the number of 
     550        //  occurrences of "url(" is a reliable method for detecting ACTUAL support for this! 
     551 
     552        setCss('background:url(https://),url(https://),red url(https://)'); 
     553 
     554        // If the UA supports multiple backgrounds, there should be three occurrences 
     555        //   of the string "url(" in the return value for elemStyle.background 
     556 
     557        return (/(url\s*\(.*?){3}/).test(mStyle.background); 
     558    }; 
     559 
     560 
     561 
     562    // this will false positive in Opera Mini 
     563    //   github.com/Modernizr/Modernizr/issues/396 
     564 
     565    tests['backgroundsize'] = function() { 
     566        return testPropsAll('backgroundSize'); 
     567    }; 
     568 
     569    tests['borderimage'] = function() { 
     570        return testPropsAll('borderImage'); 
     571    }; 
     572 
     573 
     574    // Super comprehensive table about all the unique implementations of 
     575    // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance 
     576 
     577    tests['borderradius'] = function() { 
     578        return testPropsAll('borderRadius'); 
     579    }; 
     580 
     581    // WebOS unfortunately false positives on this test. 
     582    tests['boxshadow'] = function() { 
     583        return testPropsAll('boxShadow'); 
     584    }; 
     585 
     586    // FF3.0 will false positive on this test 
     587    tests['textshadow'] = function() { 
     588        return document.createElement('div').style.textShadow === ''; 
     589    }; 
     590 
     591 
     592    tests['opacity'] = function() { 
     593        // Browsers that actually have CSS Opacity implemented have done so 
     594        //  according to spec, which means their return values are within the 
     595        //  range of [0.0,1.0] - including the leading zero. 
     596 
     597        setCssAll('opacity:.55'); 
     598 
     599        // The non-literal . in this regex is intentional: 
     600        //   German Chrome returns this value as 0,55 
     601        // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632 
     602        return (/^0.55$/).test(mStyle.opacity); 
     603    }; 
     604 
     605 
     606    // Note, Android < 4 will pass this test, but can only animate 
     607    //   a single property at a time 
     608    //   goo.gl/v3V4Gp 
     609    tests['cssanimations'] = function() { 
     610        return testPropsAll('animationName'); 
     611    }; 
     612 
     613 
     614    tests['csscolumns'] = function() { 
     615        return testPropsAll('columnCount'); 
     616    }; 
     617 
     618 
     619    tests['cssgradients'] = function() { 
     620        /** 
     621         * For CSS Gradients syntax, please see: 
     622         * webkit.org/blog/175/introducing-css-gradients/ 
     623         * developer.mozilla.org/en/CSS/-moz-linear-gradient 
     624         * developer.mozilla.org/en/CSS/-moz-radial-gradient 
     625         * dev.w3.org/csswg/css3-images/#gradients- 
     626         */ 
     627 
     628        var str1 = 'background-image:', 
     629            str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));', 
     630            str3 = 'linear-gradient(left top,#9f9, white);'; 
     631 
     632        setCss( 
     633             // legacy webkit syntax (FIXME: remove when syntax not in use anymore) 
     634              (str1 + '-webkit- '.split(' ').join(str2 + str1) + 
     635             // standard syntax             // trailing 'background-image:' 
     636              prefixes.join(str3 + str1)).slice(0, -str1.length) 
     637        ); 
     638 
     639        return contains(mStyle.backgroundImage, 'gradient'); 
     640    }; 
     641 
     642 
     643    tests['cssreflections'] = function() { 
     644        return testPropsAll('boxReflect'); 
     645    }; 
     646 
     647 
     648    tests['csstransforms'] = function() { 
     649        return !!testPropsAll('transform'); 
     650    }; 
     651 
     652 
     653    tests['csstransforms3d'] = function() { 
     654 
     655        var ret = !!testPropsAll('perspective'); 
     656 
     657        // Webkit's 3D transforms are passed off to the browser's own graphics renderer. 
     658        //   It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in 
     659        //   some conditions. As a result, Webkit typically recognizes the syntax but 
     660        //   will sometimes throw a false positive, thus we must do a more thorough check: 
     661        if ( ret && 'webkitPerspective' in docElement.style ) { 
     662 
     663          // Webkit allows this media query to succeed only if the feature is enabled. 
     664          // `@media (transform-3d),(-webkit-transform-3d){ ... }` 
     665          injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) { 
     666            ret = node.offsetLeft === 9 && node.offsetHeight === 3; 
     667          }); 
     668        } 
     669        return ret; 
     670    }; 
     671 
     672 
     673    tests['csstransitions'] = function() { 
     674        return testPropsAll('transition'); 
     675    }; 
     676 
     677 
     678    /*>>fontface*/ 
     679    // @font-face detection routine by Diego Perini 
     680    // javascript.nwbox.com/CSSSupport/ 
     681 
     682    // false positives: 
     683    //   WebOS github.com/Modernizr/Modernizr/issues/342 
     684    //   WP7   github.com/Modernizr/Modernizr/issues/538 
     685    tests['fontface'] = function() { 
     686        var bool; 
     687 
     688        injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) { 
     689          var style = document.getElementById('smodernizr'), 
     690              sheet = style.sheet || style.styleSheet, 
     691              cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : ''; 
     692 
     693          bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0; 
     694        }); 
     695 
     696        return bool; 
     697    }; 
     698    /*>>fontface*/ 
     699 
     700    // CSS generated content detection 
     701    tests['generatedcontent'] = function() { 
     702        var bool; 
     703 
     704        injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) { 
     705          bool = node.offsetHeight >= 3; 
     706        }); 
     707 
     708        return bool; 
     709    }; 
     710 
     711 
     712 
     713    // These tests evaluate support of the video/audio elements, as well as 
     714    // testing what types of content they support. 
     715    // 
     716    // We're using the Boolean constructor here, so that we can extend the value 
     717    // e.g.  Modernizr.video     // true 
     718    //       Modernizr.video.ogg // 'probably' 
     719    // 
     720    // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845 
     721    //                     thx to NielsLeenheer and zcorpan 
     722 
     723    // Note: in some older browsers, "no" was a return value instead of empty string. 
     724    //   It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2 
     725    //   It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5 
     726 
     727    tests['video'] = function() { 
     728        var elem = document.createElement('video'), 
     729            bool = false; 
     730 
     731        // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224 
     732        try { 
     733            if ( bool = !!elem.canPlayType ) { 
     734                bool      = new Boolean(bool); 
     735                bool.ogg  = elem.canPlayType('video/ogg; codecs="theora"')      .replace(/^no$/,''); 
     736 
     737                // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546 
     738                bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,''); 
     739 
     740                bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,''); 
     741            } 
     742 
     743        } catch(e) { } 
     744 
     745        return bool; 
     746    }; 
     747 
     748    tests['audio'] = function() { 
     749        var elem = document.createElement('audio'), 
     750            bool = false; 
     751 
     752        try { 
     753            if ( bool = !!elem.canPlayType ) { 
     754                bool      = new Boolean(bool); 
     755                bool.ogg  = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''); 
     756                bool.mp3  = elem.canPlayType('audio/mpeg;')               .replace(/^no$/,''); 
     757 
     758                // Mimetypes accepted: 
     759                //   developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements 
     760                //   bit.ly/iphoneoscodecs 
     761                bool.wav  = elem.canPlayType('audio/wav; codecs="1"')     .replace(/^no$/,''); 
     762                bool.m4a  = ( elem.canPlayType('audio/x-m4a;')            || 
     763                              elem.canPlayType('audio/aac;'))             .replace(/^no$/,''); 
     764            } 
     765        } catch(e) { } 
     766 
     767        return bool; 
     768    }; 
     769 
     770 
     771    // In FF4, if disabled, window.localStorage should === null. 
     772 
     773    // Normally, we could not test that directly and need to do a 
     774    //   `('localStorage' in window) && ` test first because otherwise Firefox will 
     775    //   throw bugzil.la/365772 if cookies are disabled 
     776 
     777    // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem 
     778    // will throw the exception: 
     779    //   QUOTA_EXCEEDED_ERRROR DOM Exception 22. 
     780    // Peculiarly, getItem and removeItem calls do not throw. 
     781 
     782    // Because we are forced to try/catch this, we'll go aggressive. 
     783 
     784    // Just FWIW: IE8 Compat mode supports these features completely: 
     785    //   www.quirksmode.org/dom/html5.html 
     786    // But IE8 doesn't support either with local files 
     787 
     788    tests['localstorage'] = function() { 
     789        try { 
     790            localStorage.setItem(mod, mod); 
     791            localStorage.removeItem(mod); 
     792            return true; 
     793        } catch(e) { 
     794            return false; 
     795        } 
     796    }; 
     797 
     798    tests['sessionstorage'] = function() { 
     799        try { 
     800            sessionStorage.setItem(mod, mod); 
     801            sessionStorage.removeItem(mod); 
     802            return true; 
     803        } catch(e) { 
     804            return false; 
     805        } 
     806    }; 
     807 
     808 
     809    tests['webworkers'] = function() { 
     810        return !!window.Worker; 
     811    }; 
     812 
     813 
     814    tests['applicationcache'] = function() { 
     815        return !!window.applicationCache; 
     816    }; 
     817 
     818 
     819    // Thanks to Erik Dahlstrom 
     820    tests['svg'] = function() { 
     821        return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect; 
     822    }; 
     823 
     824    // specifically for SVG inline in HTML, not within XHTML 
     825    // test page: paulirish.com/demo/inline-svg 
     826    tests['inlinesvg'] = function() { 
     827      var div = document.createElement('div'); 
     828      div.innerHTML = '<svg/>'; 
     829      return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; 
     830    }; 
     831 
     832    // SVG SMIL animation 
     833    tests['smil'] = function() { 
     834        return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate'))); 
     835    }; 
     836 
     837    // This test is only for clip paths in SVG proper, not clip paths on HTML content 
     838    // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg 
     839 
     840    // However read the comments to dig into applying SVG clippaths to HTML content here: 
     841    //   github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491 
     842    tests['svgclippaths'] = function() { 
     843        return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath'))); 
     844    }; 
     845 
     846    /*>>webforms*/ 
     847    // input features and input types go directly onto the ret object, bypassing the tests loop. 
     848    // Hold this guy to execute in a moment. 
     849    function webforms() { 
     850        /*>>input*/ 
     851        // Run through HTML5's new input attributes to see if the UA understands any. 
     852        // We're using f which is the <input> element created early on 
     853        // Mike Taylr has created a comprehensive resource for testing these attributes 
     854        //   when applied to all input types: 
     855        //   miketaylr.com/code/input-type-attr.html 
     856        // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary 
     857 
     858        // Only input placeholder is tested while textarea's placeholder is not. 
     859        // Currently Safari 4 and Opera 11 have support only for the input placeholder 
     860        // Both tests are available in feature-detects/forms-placeholder.js 
     861        Modernizr['input'] = (function( props ) { 
     862            for ( var i = 0, len = props.length; i < len; i++ ) { 
     863                attrs[ props[i] ] = !!(props[i] in inputElem); 
     864            } 
     865            if (attrs.list){ 
     866              // safari false positive's on datalist: webk.it/74252 
     867              // see also github.com/Modernizr/Modernizr/issues/146 
     868              attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement); 
     869            } 
     870            return attrs; 
     871        })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' ')); 
     872        /*>>input*/ 
     873 
     874        /*>>inputtypes*/ 
     875        // Run through HTML5's new input types to see if the UA understands any. 
     876        //   This is put behind the tests runloop because it doesn't return a 
     877        //   true/false like all the other tests; instead, it returns an object 
     878        //   containing each input type with its corresponding true/false value 
     879 
     880        // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/ 
     881        Modernizr['inputtypes'] = (function(props) { 
     882 
     883            for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) { 
     884 
     885                inputElem.setAttribute('type', inputElemType = props[i]); 
     886                bool = inputElem.type !== 'text'; 
     887 
     888                // We first check to see if the type we give it sticks.. 
     889                // If the type does, we feed it a textual value, which shouldn't be valid. 
     890                // If the value doesn't stick, we know there's input sanitization which infers a custom UI 
     891                if ( bool ) { 
     892 
     893                    inputElem.value         = smile; 
     894                    inputElem.style.cssText = 'position:absolute;visibility:hidden;'; 
     895 
     896                    if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) { 
     897 
     898                      docElement.appendChild(inputElem); 
     899                      defaultView = document.defaultView; 
     900 
     901                      // Safari 2-4 allows the smiley as a value, despite making a slider 
     902                      bool =  defaultView.getComputedStyle && 
     903                              defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' && 
     904                              // Mobile android web browser has false positive, so must 
     905                              // check the height to see if the widget is actually there. 
     906                              (inputElem.offsetHeight !== 0); 
     907 
     908                      docElement.removeChild(inputElem); 
     909 
     910                    } else if ( /^(search|tel)$/.test(inputElemType) ){ 
     911                      // Spec doesn't define any special parsing or detectable UI 
     912                      //   behaviors so we pass these through as true 
     913 
     914                      // Interestingly, opera fails the earlier test, so it doesn't 
     915                      //  even make it here. 
     916 
     917                    } else if ( /^(url|email)$/.test(inputElemType) ) { 
     918                      // Real url and email support comes with prebaked validation. 
     919                      bool = inputElem.checkValidity && inputElem.checkValidity() === false; 
     920 
     921                    } else { 
     922                      // If the upgraded input compontent rejects the :) text, we got a winner 
     923                      bool = inputElem.value != smile; 
     924                    } 
     925                } 
     926 
     927                inputs[ props[i] ] = !!bool; 
     928            } 
     929            return inputs; 
     930        })('search tel url email datetime date month week time datetime-local number range color'.split(' ')); 
     931        /*>>inputtypes*/ 
     932    } 
     933    /*>>webforms*/ 
     934 
     935 
     936    // End of test definitions 
     937    // ----------------------- 
     938 
     939 
     940 
     941    // Run through all tests and detect their support in the current UA. 
     942    // todo: hypothetically we could be doing an array of tests and use a basic loop here. 
     943    for ( var feature in tests ) { 
     944        if ( hasOwnProp(tests, feature) ) { 
     945            // run the test, throw the return value into the Modernizr, 
     946            //   then based on that boolean, define an appropriate className 
     947            //   and push it into an array of classes we'll join later. 
     948            featureName  = feature.toLowerCase(); 
     949            Modernizr[featureName] = tests[feature](); 
     950 
     951            classes.push((Modernizr[featureName] ? '' : 'no-') + featureName); 
     952        } 
     953    } 
     954 
     955    /*>>webforms*/ 
     956    // input tests need to run. 
     957    Modernizr.input || webforms(); 
     958    /*>>webforms*/ 
     959 
     960 
     961    /** 
     962     * addTest allows the user to define their own feature tests 
     963     * the result will be added onto the Modernizr object, 
     964     * as well as an appropriate className set on the html element 
     965     * 
     966     * @param feature - String naming the feature 
     967     * @param test - Function returning true if feature is supported, false if not 
     968     */ 
     969     Modernizr.addTest = function ( feature, test ) { 
     970       if ( typeof feature == 'object' ) { 
     971         for ( var key in feature ) { 
     972           if ( hasOwnProp( feature, key ) ) { 
     973             Modernizr.addTest( key, feature[ key ] ); 
     974           } 
     975         } 
     976       } else { 
     977 
     978         feature = feature.toLowerCase(); 
     979 
     980         if ( Modernizr[feature] !== undefined ) { 
     981           // we're going to quit if you're trying to overwrite an existing test 
     982           // if we were to allow it, we'd do this: 
     983           //   var re = new RegExp("\\b(no-)?" + feature + "\\b"); 
     984           //   docElement.className = docElement.className.replace( re, '' ); 
     985           // but, no rly, stuff 'em. 
     986           return Modernizr; 
     987         } 
     988 
     989         test = typeof test == 'function' ? test() : test; 
     990 
     991         if (typeof enableClasses !== "undefined" && enableClasses) { 
     992           docElement.className += ' ' + (test ? '' : 'no-') + feature; 
     993         } 
     994         Modernizr[feature] = test; 
     995 
     996       } 
     997 
     998       return Modernizr; // allow chaining. 
     999     }; 
     1000 
     1001 
     1002    // Reset modElem.cssText to nothing to reduce memory footprint. 
     1003    setCss(''); 
     1004    modElem = inputElem = null; 
     1005 
     1006    /*>>shiv*/ 
     1007    /** 
     1008     * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 
     1009     */ 
     1010    ;(function(window, document) { 
     1011        /*jshint evil:true */ 
     1012        /** version */ 
     1013        var version = '3.7.0'; 
     1014 
     1015        /** Preset options */ 
     1016        var options = window.html5 || {}; 
     1017 
     1018        /** Used to skip problem elements */ 
     1019        var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; 
     1020 
     1021        /** Not all elements can be cloned in IE **/ 
     1022        var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; 
     1023 
     1024        /** Detect whether the browser supports default html5 styles */ 
     1025        var supportsHtml5Styles; 
     1026 
     1027        /** Name of the expando, to work with multiple documents or to re-shiv one document */ 
     1028        var expando = '_html5shiv'; 
     1029 
     1030        /** The id for the the documents expando */ 
     1031        var expanID = 0; 
     1032 
     1033        /** Cached data for each document */ 
     1034        var expandoData = {}; 
     1035 
     1036        /** Detect whether the browser supports unknown elements */ 
     1037        var supportsUnknownElements; 
     1038 
     1039        (function() { 
     1040          try { 
     1041            var a = document.createElement('a'); 
     1042            a.innerHTML = '<xyz></xyz>'; 
     1043            //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles 
     1044            supportsHtml5Styles = ('hidden' in a); 
     1045 
     1046            supportsUnknownElements = a.childNodes.length == 1 || (function() { 
     1047              // assign a false positive if unable to shiv 
     1048              (document.createElement)('a'); 
     1049              var frag = document.createDocumentFragment(); 
     1050              return ( 
     1051                typeof frag.cloneNode == 'undefined' || 
     1052                typeof frag.createDocumentFragment == 'undefined' || 
     1053                typeof frag.createElement == 'undefined' 
     1054              ); 
     1055            }()); 
     1056          } catch(e) { 
     1057            // assign a false positive if detection fails => unable to shiv 
     1058            supportsHtml5Styles = true; 
     1059            supportsUnknownElements = true; 
     1060          } 
     1061 
     1062        }()); 
     1063 
     1064        /*--------------------------------------------------------------------------*/ 
     1065 
     1066        /** 
     1067         * Creates a style sheet with the given CSS text and adds it to the document. 
     1068         * @private 
     1069         * @param {Document} ownerDocument The document. 
     1070         * @param {String} cssText The CSS text. 
     1071         * @returns {StyleSheet} The style element. 
     1072         */ 
     1073        function addStyleSheet(ownerDocument, cssText) { 
     1074          var p = ownerDocument.createElement('p'), 
     1075          parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; 
     1076 
     1077          p.innerHTML = 'x<style>' + cssText + '</style>'; 
     1078          return parent.insertBefore(p.lastChild, parent.firstChild); 
     1079        } 
     1080 
     1081        /** 
     1082         * Returns the value of `html5.elements` as an array. 
     1083         * @private 
     1084         * @returns {Array} An array of shived element node names. 
     1085         */ 
     1086        function getElements() { 
     1087          var elements = html5.elements; 
     1088          return typeof elements == 'string' ? elements.split(' ') : elements; 
     1089        } 
     1090 
     1091        /** 
     1092         * Returns the data associated to the given document 
     1093         * @private 
     1094         * @param {Document} ownerDocument The document. 
     1095         * @returns {Object} An object of data. 
     1096         */ 
     1097        function getExpandoData(ownerDocument) { 
     1098          var data = expandoData[ownerDocument[expando]]; 
     1099          if (!data) { 
     1100            data = {}; 
     1101            expanID++; 
     1102            ownerDocument[expando] = expanID; 
     1103            expandoData[expanID] = data; 
     1104          } 
     1105          return data; 
     1106        } 
     1107 
     1108        /** 
     1109         * returns a shived element for the given nodeName and document 
     1110         * @memberOf html5 
     1111         * @param {String} nodeName name of the element 
     1112         * @param {Document} ownerDocument The context document. 
     1113         * @returns {Object} The shived element. 
     1114         */ 
     1115        function createElement(nodeName, ownerDocument, data){ 
     1116          if (!ownerDocument) { 
     1117            ownerDocument = document; 
     1118          } 
     1119          if(supportsUnknownElements){ 
     1120            return ownerDocument.createElement(nodeName); 
     1121          } 
     1122          if (!data) { 
     1123            data = getExpandoData(ownerDocument); 
     1124          } 
     1125          var node; 
     1126 
     1127          if (data.cache[nodeName]) { 
     1128            node = data.cache[nodeName].cloneNode(); 
     1129          } else if (saveClones.test(nodeName)) { 
     1130            node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); 
     1131          } else { 
     1132            node = data.createElem(nodeName); 
     1133          } 
     1134 
     1135          // Avoid adding some elements to fragments in IE < 9 because 
     1136          // * Attributes like `name` or `type` cannot be set/changed once an element 
     1137          //   is inserted into a document/fragment 
     1138          // * Link elements with `src` attributes that are inaccessible, as with 
     1139          //   a 403 response, will cause the tab/window to crash 
     1140          // * Script elements appended to fragments will execute when their `src` 
     1141          //   or `text` property is set 
     1142          return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node; 
     1143        } 
     1144 
     1145        /** 
     1146         * returns a shived DocumentFragment for the given document 
     1147         * @memberOf html5 
     1148         * @param {Document} ownerDocument The context document. 
     1149         * @returns {Object} The shived DocumentFragment. 
     1150         */ 
     1151        function createDocumentFragment(ownerDocument, data){ 
     1152          if (!ownerDocument) { 
     1153            ownerDocument = document; 
     1154          } 
     1155          if(supportsUnknownElements){ 
     1156            return ownerDocument.createDocumentFragment(); 
     1157          } 
     1158          data = data || getExpandoData(ownerDocument); 
     1159          var clone = data.frag.cloneNode(), 
     1160          i = 0, 
     1161          elems = getElements(), 
     1162          l = elems.length; 
     1163          for(;i<l;i++){ 
     1164            clone.createElement(elems[i]); 
     1165          } 
     1166          return clone; 
     1167        } 
     1168 
     1169        /** 
     1170         * Shivs the `createElement` and `createDocumentFragment` methods of the document. 
     1171         * @private 
     1172         * @param {Document|DocumentFragment} ownerDocument The document. 
     1173         * @param {Object} data of the document. 
     1174         */ 
     1175        function shivMethods(ownerDocument, data) { 
     1176          if (!data.cache) { 
     1177            data.cache = {}; 
     1178            data.createElem = ownerDocument.createElement; 
     1179            data.createFrag = ownerDocument.createDocumentFragment; 
     1180            data.frag = data.createFrag(); 
     1181          } 
     1182 
     1183 
     1184          ownerDocument.createElement = function(nodeName) { 
     1185            //abort shiv 
     1186            if (!html5.shivMethods) { 
     1187              return data.createElem(nodeName); 
     1188            } 
     1189            return createElement(nodeName, ownerDocument, data); 
     1190          }; 
     1191 
     1192          ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' + 
     1193                                                          'var n=f.cloneNode(),c=n.createElement;' + 
     1194                                                          'h.shivMethods&&(' + 
     1195                                                          // unroll the `createElement` calls 
     1196                                                          getElements().join().replace(/[\w\-]+/g, function(nodeName) { 
     1197            data.createElem(nodeName); 
     1198            data.frag.createElement(nodeName); 
     1199            return 'c("' + nodeName + '")'; 
     1200          }) + 
     1201            ');return n}' 
     1202                                                         )(html5, data.frag); 
     1203        } 
     1204 
     1205        /*--------------------------------------------------------------------------*/ 
     1206 
     1207        /** 
     1208         * Shivs the given document. 
     1209         * @memberOf html5 
     1210         * @param {Document} ownerDocument The document to shiv. 
     1211         * @returns {Document} The shived document. 
     1212         */ 
     1213        function shivDocument(ownerDocument) { 
     1214          if (!ownerDocument) { 
     1215            ownerDocument = document; 
     1216          } 
     1217          var data = getExpandoData(ownerDocument); 
     1218 
     1219          if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) { 
     1220            data.hasCSS = !!addStyleSheet(ownerDocument, 
     1221                                          // corrects block display not defined in IE6/7/8/9 
     1222                                          'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' + 
     1223                                            // adds styling not present in IE6/7/8/9 
     1224                                            'mark{background:#FF0;color:#000}' + 
     1225                                            // hides non-rendered elements 
     1226                                            'template{display:none}' 
     1227                                         ); 
     1228          } 
     1229          if (!supportsUnknownElements) { 
     1230            shivMethods(ownerDocument, data); 
     1231          } 
     1232          return ownerDocument; 
     1233        } 
     1234 
     1235        /*--------------------------------------------------------------------------*/ 
     1236 
     1237        /** 
     1238         * The `html5` object is exposed so that more elements can be shived and 
     1239         * existing shiving can be detected on iframes. 
     1240         * @type Object 
     1241         * @example 
     1242         * 
     1243         * // options can be changed before the script is included 
     1244         * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false }; 
     1245         */ 
     1246        var html5 = { 
     1247 
     1248          /** 
     1249           * An array or space separated string of node names of the elements to shiv. 
     1250           * @memberOf html5 
     1251           * @type Array|String 
     1252           */ 
     1253          'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video', 
     1254 
     1255          /** 
     1256           * current version of html5shiv 
     1257           */ 
     1258          'version': version, 
     1259 
     1260          /** 
     1261           * A flag to indicate that the HTML5 style sheet should be inserted. 
     1262           * @memberOf html5 
     1263           * @type Boolean 
     1264           */ 
     1265          'shivCSS': (options.shivCSS !== false), 
     1266 
     1267          /** 
     1268           * Is equal to true if a browser supports creating unknown/HTML5 elements 
     1269           * @memberOf html5 
     1270           * @type boolean 
     1271           */ 
     1272          'supportsUnknownElements': supportsUnknownElements, 
     1273 
     1274          /** 
     1275           * A flag to indicate that the document's `createElement` and `createDocumentFragment` 
     1276           * methods should be overwritten. 
     1277           * @memberOf html5 
     1278           * @type Boolean 
     1279           */ 
     1280          'shivMethods': (options.shivMethods !== false), 
     1281 
     1282          /** 
     1283           * A string to describe the type of `html5` object ("default" or "default print"). 
     1284           * @memberOf html5 
     1285           * @type String 
     1286           */ 
     1287          'type': 'default', 
     1288 
     1289          // shivs the document according to the specified `html5` object options 
     1290          'shivDocument': shivDocument, 
     1291 
     1292          //creates a shived element 
     1293          createElement: createElement, 
     1294 
     1295          //creates a shived documentFragment 
     1296          createDocumentFragment: createDocumentFragment 
     1297        }; 
     1298 
     1299        /*--------------------------------------------------------------------------*/ 
     1300 
     1301        // expose html5 
     1302        window.html5 = html5; 
     1303 
     1304        // shiv the document 
     1305        shivDocument(document); 
     1306 
     1307    }(this, document)); 
     1308    /*>>shiv*/ 
     1309 
     1310    // Assign private properties to the return object with prefix 
     1311    Modernizr._version      = version; 
     1312 
     1313    // expose these for the plugin API. Look in the source for how to join() them against your input 
     1314    /*>>prefixes*/ 
     1315    Modernizr._prefixes     = prefixes; 
     1316    /*>>prefixes*/ 
     1317    /*>>domprefixes*/ 
     1318    Modernizr._domPrefixes  = domPrefixes; 
     1319    Modernizr._cssomPrefixes  = cssomPrefixes; 
     1320    /*>>domprefixes*/ 
     1321 
     1322    /*>>mq*/ 
     1323    // Modernizr.mq tests a given media query, live against the current state of the window 
     1324    // A few important notes: 
     1325    //   * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false 
     1326    //   * A max-width or orientation query will be evaluated against the current state, which may change later. 
     1327    //   * You must specify values. Eg. If you are testing support for the min-width media query use: 
     1328    //       Modernizr.mq('(min-width:0)') 
     1329    // usage: 
     1330    // Modernizr.mq('only screen and (max-width:768)') 
     1331    Modernizr.mq            = testMediaQuery; 
     1332    /*>>mq*/ 
     1333 
     1334    /*>>hasevent*/ 
     1335    // Modernizr.hasEvent() detects support for a given event, with an optional element to test on 
     1336    // Modernizr.hasEvent('gesturestart', elem) 
     1337    Modernizr.hasEvent      = isEventSupported; 
     1338    /*>>hasevent*/ 
     1339 
     1340    /*>>testprop*/ 
     1341    // Modernizr.testProp() investigates whether a given style property is recognized 
     1342    // Note that the property names must be provided in the camelCase variant. 
     1343    // Modernizr.testProp('pointerEvents') 
     1344    Modernizr.testProp      = function(prop){ 
     1345        return testProps([prop]); 
     1346    }; 
     1347    /*>>testprop*/ 
     1348 
     1349    /*>>testallprops*/ 
     1350    // Modernizr.testAllProps() investigates whether a given style property, 
     1351    //   or any of its vendor-prefixed variants, is recognized 
     1352    // Note that the property names must be provided in the camelCase variant. 
     1353    // Modernizr.testAllProps('boxSizing') 
     1354    Modernizr.testAllProps  = testPropsAll; 
     1355    /*>>testallprops*/ 
     1356 
     1357 
     1358    /*>>teststyles*/ 
     1359    // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards 
     1360    // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... }) 
     1361    Modernizr.testStyles    = injectElementWithStyles; 
     1362    /*>>teststyles*/ 
     1363 
     1364 
     1365    /*>>prefixed*/ 
     1366    // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input 
     1367    // Modernizr.prefixed('boxSizing') // 'MozBoxSizing' 
     1368 
     1369    // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style. 
     1370    // Return values will also be the camelCase variant, if you need to translate that to hypenated style use: 
     1371    // 
     1372    //     str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-'); 
     1373 
     1374    // If you're trying to ascertain which transition end event to bind to, you might do something like... 
     1375    // 
     1376    //     var transEndEventNames = { 
     1377    //       'WebkitTransition' : 'webkitTransitionEnd', 
     1378    //       'MozTransition'    : 'transitionend', 
     1379    //       'OTransition'      : 'oTransitionEnd', 
     1380    //       'msTransition'     : 'MSTransitionEnd', 
     1381    //       'transition'       : 'transitionend' 
     1382    //     }, 
     1383    //     transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ]; 
     1384 
     1385    Modernizr.prefixed      = function(prop, obj, elem){ 
     1386      if(!obj) { 
     1387        return testPropsAll(prop, 'pfx'); 
     1388      } else { 
     1389        // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame' 
     1390        return testPropsAll(prop, obj, elem); 
     1391      } 
     1392    }; 
     1393    /*>>prefixed*/ 
     1394 
     1395 
     1396    /*>>cssclasses*/ 
     1397    // Remove "no-js" class from <html> element, if it exists: 
     1398    docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + 
     1399 
     1400                            // Add the new classes to the <html> element. 
     1401                            (enableClasses ? ' js ' + classes.join(' ') : ''); 
     1402    /*>>cssclasses*/ 
     1403 
     1404    return Modernizr; 
     1405 
     1406})(this, this.document); 
  • qusq-lite/1.0.3/js/bower/smoothscroll-for-websites/SmoothScroll.js

    r85403 r85403  
    1313// without getting a written permission first. 
    1414// 
    15 !function(){function initTest(){options.keyboardSupport&&addEvent("keydown",keydown)}function init(){if(!initDone&&document.body){initDone=!0;var body=document.body,html=document.documentElement,windowHeight=window.innerHeight,scrollHeight=body.scrollHeight;if(root=document.compatMode.indexOf("CSS")>=0?html:body,activeElement=body,initTest(),top!=self)isFrame=!0;else if(isOldSafari&&scrollHeight>windowHeight&&(body.offsetHeight<=windowHeight||html.offsetHeight<=windowHeight)){var fullPageElem=document.createElement("div");fullPageElem.style.cssText="position:absolute; z-index:-10000; top:0; left:0; right:0; height:"+root.scrollHeight+"px",document.body.appendChild(fullPageElem);var pendingRefresh;refreshSize=function(){pendingRefresh||(pendingRefresh=setTimeout(function(){isExcluded||(fullPageElem.style.height="0",fullPageElem.style.height=root.scrollHeight+"px",pendingRefresh=null)},500))},setTimeout(refreshSize,10),addEvent("resize",refreshSize);var config={attributes:!0,childList:!0,characterData:!1};if(observer=new MutationObserver(refreshSize),observer.observe(body,config),root.offsetHeight<=windowHeight){var clearfix=document.createElement("div");clearfix.style.clear="both",body.appendChild(clearfix)}}options.fixedBackground||isExcluded||(body.style.backgroundAttachment="scroll",html.style.backgroundAttachment="scroll")}}function cleanup(){observer&&observer.disconnect(),removeEvent(wheelEvent,wheel),removeEvent("mousedown",mousedown),removeEvent("keydown",keydown),removeEvent("resize",refreshSize),removeEvent("load",init)}function scrollArray(elem,left,top){if(directionCheck(left,top),1!=options.accelerationMax){var now=Date.now(),elapsed=now-lastScroll;if(elapsed<options.accelerationDelta){var factor=(1+50/elapsed)/2;factor>1&&(factor=Math.min(factor,options.accelerationMax),left*=factor,top*=factor)}lastScroll=Date.now()}if(que.push({x:left,y:top,lastX:left<0?.99:-.99,lastY:top<0?.99:-.99,start:Date.now()}),!pending){var scrollWindow=elem===document.body,step=function(time){for(var now=Date.now(),scrollX=0,scrollY=0,i=0;i<que.length;i++){var item=que[i],elapsed=now-item.start,finished=elapsed>=options.animationTime,position=finished?1:elapsed/options.animationTime;options.pulseAlgorithm&&(position=pulse(position));var x=item.x*position-item.lastX>>0,y=item.y*position-item.lastY>>0;scrollX+=x,scrollY+=y,item.lastX+=x,item.lastY+=y,finished&&(que.splice(i,1),i--)}scrollWindow?window.scrollBy(scrollX,scrollY):(scrollX&&(elem.scrollLeft+=scrollX),scrollY&&(elem.scrollTop+=scrollY)),left||top||(que=[]),que.length?requestFrame(step,elem,1e3/options.frameRate+1):pending=!1};requestFrame(step,elem,0),pending=!0}}function wheel(event){initDone||init();var target=event.target;if(event.defaultPrevented||event.ctrlKey)return!0;if(isNodeName(activeElement,"embed")||isNodeName(target,"embed")&&/\.pdf/i.test(target.src)||isNodeName(activeElement,"object")||target.shadowRoot)return!0;var deltaX=-event.wheelDeltaX||event.deltaX||0,deltaY=-event.wheelDeltaY||event.deltaY||0;isMac&&(event.wheelDeltaX&&isDivisible(event.wheelDeltaX,120)&&(deltaX=-120*(event.wheelDeltaX/Math.abs(event.wheelDeltaX))),event.wheelDeltaY&&isDivisible(event.wheelDeltaY,120)&&(deltaY=-120*(event.wheelDeltaY/Math.abs(event.wheelDeltaY)))),deltaX||deltaY||(deltaY=-event.wheelDelta||0),1===event.deltaMode&&(deltaX*=40,deltaY*=40);var overflowing=overflowingAncestor(target);return overflowing?!!isTouchpad(deltaY)||(Math.abs(deltaX)>1.2&&(deltaX*=options.stepSize/120),Math.abs(deltaY)>1.2&&(deltaY*=options.stepSize/120),scrollArray(overflowing,deltaX,deltaY),event.preventDefault(),void scheduleClearCache()):!isFrame||!isChrome||(Object.defineProperty(event,"target",{value:window.frameElement}),parent.wheel(event))}function keydown(event){var target=event.target,modifier=event.ctrlKey||event.altKey||event.metaKey||event.shiftKey&&event.keyCode!==key.spacebar;document.body.contains(activeElement)||(activeElement=document.activeElement);var inputNodeNames=/^(textarea|select|embed|object)$/i,buttonTypes=/^(button|submit|radio|checkbox|file|color|image)$/i;if(event.defaultPrevented||inputNodeNames.test(target.nodeName)||isNodeName(target,"input")&&!buttonTypes.test(target.type)||isNodeName(activeElement,"video")||isInsideYoutubeVideo(event)||target.isContentEditable||modifier)return!0;if((isNodeName(target,"button")||isNodeName(target,"input")&&buttonTypes.test(target.type))&&event.keyCode===key.spacebar)return!0;if(isNodeName(target,"input")&&"radio"==target.type&&arrowKeys[event.keyCode])return!0;var shift,x=0,y=0,overflowing=overflowingAncestor(activeElement);if(!overflowing)return!isFrame||!isChrome||parent.keydown(event);var clientHeight=overflowing.clientHeight;switch(overflowing==document.body&&(clientHeight=window.innerHeight),event.keyCode){case key.up:y=-options.arrowScroll;break;case key.down:y=options.arrowScroll;break;case key.spacebar:shift=event.shiftKey?1:-1,y=-shift*clientHeight*.9;break;case key.pageup:y=.9*-clientHeight;break;case key.pagedown:y=.9*clientHeight;break;case key.home:y=-overflowing.scrollTop;break;case key.end:var scroll=overflowing.scrollHeight-overflowing.scrollTop,scrollRemaining=scroll-clientHeight;y=scrollRemaining>0?scrollRemaining+10:0;break;case key.left:x=-options.arrowScroll;break;case key.right:x=options.arrowScroll;break;default:return!0}scrollArray(overflowing,x,y),event.preventDefault(),scheduleClearCache()}function mousedown(event){activeElement=event.target}function scheduleClearCache(){clearTimeout(clearCacheTimer),clearCacheTimer=setInterval(function(){cache={}},1e3)}function setCache(elems,overflowing){for(var i=elems.length;i--;)cache[uniqueID(elems[i])]=overflowing;return overflowing}function overflowingAncestor(el){var elems=[],body=document.body,rootScrollHeight=root.scrollHeight;do{var cached=cache[uniqueID(el)];if(cached)return setCache(elems,cached);if(elems.push(el),rootScrollHeight===el.scrollHeight){var topOverflowsNotHidden=overflowNotHidden(root)&&overflowNotHidden(body),isOverflowCSS=topOverflowsNotHidden||overflowAutoOrScroll(root);if(isFrame&&isContentOverflowing(root)||!isFrame&&isOverflowCSS)return setCache(elems,getScrollRoot())}else if(isContentOverflowing(el)&&overflowAutoOrScroll(el))return setCache(elems,el)}while(el=el.parentElement)}function isContentOverflowing(el){return el.clientHeight+10<el.scrollHeight}function overflowNotHidden(el){var overflow=getComputedStyle(el,"").getPropertyValue("overflow-y");return"hidden"!==overflow}function overflowAutoOrScroll(el){var overflow=getComputedStyle(el,"").getPropertyValue("overflow-y");return"scroll"===overflow||"auto"===overflow}function addEvent(type,fn){window.addEventListener(type,fn,!1)}function removeEvent(type,fn){window.removeEventListener(type,fn,!1)}function isNodeName(el,tag){return(el.nodeName||"").toLowerCase()===tag.toLowerCase()}function directionCheck(x,y){x=x>0?1:-1,y=y>0?1:-1,direction.x===x&&direction.y===y||(direction.x=x,direction.y=y,que=[],lastScroll=0)}function isTouchpad(deltaY){if(deltaY)return deltaBuffer.length||(deltaBuffer=[deltaY,deltaY,deltaY]),deltaY=Math.abs(deltaY),deltaBuffer.push(deltaY),deltaBuffer.shift(),clearTimeout(deltaBufferTimer),deltaBufferTimer=setTimeout(function(){try{localStorage.SS_deltaBuffer=deltaBuffer.join(",")}catch(e){}},1e3),!allDeltasDivisableBy(120)&&!allDeltasDivisableBy(100)}function isDivisible(n,divisor){return Math.floor(n/divisor)==n/divisor}function allDeltasDivisableBy(divisor){return isDivisible(deltaBuffer[0],divisor)&&isDivisible(deltaBuffer[1],divisor)&&isDivisible(deltaBuffer[2],divisor)}function isInsideYoutubeVideo(event){var elem=event.target,isControl=!1;if(document.URL.indexOf("www.youtube.com/watch")!=-1)do if(isControl=elem.classList&&elem.classList.contains("html5-video-controls"))break;while(elem=elem.parentNode);return isControl}function pulse_(x){var val,start,expx;return x*=options.pulseScale,x<1?val=x-(1-Math.exp(-x)):(start=Math.exp(-1),x-=1,expx=1-Math.exp(-x),val=start+expx*(1-start)),val*options.pulseNormalize}function pulse(x){return x>=1?1:x<=0?0:(1==options.pulseNormalize&&(options.pulseNormalize/=pulse_(1)),pulse_(x))}function SmoothScroll(optionsToSet){for(var key in optionsToSet)defaultOptions.hasOwnProperty(key)&&(options[key]=optionsToSet[key])}var activeElement,observer,refreshSize,clearCacheTimer,deltaBufferTimer,defaultOptions={frameRate:150,animationTime:400,stepSize:100,pulseAlgorithm:!0,pulseScale:4,pulseNormalize:1,accelerationDelta:50,accelerationMax:3,keyboardSupport:!0,arrowScroll:50,fixedBackground:!0,excluded:""},options=defaultOptions,isExcluded=!1,isFrame=!1,direction={x:0,y:0},initDone=!1,root=document.documentElement,deltaBuffer=[],isMac=/^Mac/.test(navigator.platform),key={left:37,up:38,right:39,down:40,spacebar:32,pageup:33,pagedown:34,end:35,home:36},arrowKeys={37:1,38:1,39:1,40:1},que=[],pending=!1,lastScroll=Date.now(),uniqueID=function(){var i=0;return function(el){return el.uniqueID||(el.uniqueID=i++)}}(),cache={};if(window.localStorage&&localStorage.SS_deltaBuffer)try{deltaBuffer=localStorage.SS_deltaBuffer.split(",")}catch(e){}var wheelEvent,requestFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(callback,element,delay){window.setTimeout(callback,delay||1e3/60)}}(),MutationObserver=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,getScrollRoot=function(){var SCROLL_ROOT;return function(){if(!SCROLL_ROOT){var dummy=document.createElement("div");dummy.style.cssText="height:10000px;width:1px;",document.body.appendChild(dummy);var bodyScrollTop=document.body.scrollTop;document.documentElement.scrollTop;window.scrollBy(0,3),SCROLL_ROOT=document.body.scrollTop!=bodyScrollTop?document.body:document.documentElement,window.scrollBy(0,-3),document.body.removeChild(dummy)}return SCROLL_ROOT}}(),userAgent=window.navigator.userAgent,isEdge=/Edge/.test(userAgent),isChrome=/chrome/i.test(userAgent)&&!isEdge,isSafari=/safari/i.test(userAgent)&&!isEdge,isMobile=/mobile/i.test(userAgent),isIEWin7=/Windows NT 6.1/i.test(userAgent)&&/rv:11/i.test(userAgent),isOldSafari=isSafari&&(/Version\/8/i.test(userAgent)||/Version\/9/i.test(userAgent)),isEnabledForBrowser=(isChrome||isSafari||isIEWin7)&&!isMobile;"onwheel"in document.createElement("div")?wheelEvent="wheel":"onmousewheel"in document.createElement("div")&&(wheelEvent="mousewheel"),wheelEvent&&isEnabledForBrowser&&(addEvent(wheelEvent,wheel),addEvent("mousedown",mousedown),addEvent("load",init)),SmoothScroll.destroy=cleanup,window.SmoothScrollOptions&&SmoothScroll(window.SmoothScrollOptions),"function"==typeof define&&define.amd?define(function(){return SmoothScroll}):"object"==typeof exports?module.exports=SmoothScroll:window.SmoothScroll=SmoothScroll}(); 
     15 
     16(function () { 
     17   
     18// Scroll Variables (tweakable) 
     19var defaultOptions = { 
     20 
     21    // Scrolling Core 
     22    frameRate        : 150, // [Hz] 
     23    animationTime    : 400, // [ms] 
     24    stepSize         : 100, // [px] 
     25 
     26    // Pulse (less tweakable) 
     27    // ratio of "tail" to "acceleration" 
     28    pulseAlgorithm   : true, 
     29    pulseScale       : 4, 
     30    pulseNormalize   : 1, 
     31 
     32    // Acceleration 
     33    accelerationDelta : 50,  // 50 
     34    accelerationMax   : 3,   // 3 
     35 
     36    // Keyboard Settings 
     37    keyboardSupport   : true,  // option 
     38    arrowScroll       : 50,    // [px] 
     39 
     40    // Other 
     41    fixedBackground   : true,  
     42    excluded          : ''     
     43}; 
     44 
     45var options = defaultOptions; 
     46 
     47 
     48// Other Variables 
     49var isExcluded = false; 
     50var isFrame = false; 
     51var direction = { x: 0, y: 0 }; 
     52var initDone  = false; 
     53var root = document.documentElement; 
     54var activeElement; 
     55var observer; 
     56var refreshSize; 
     57var deltaBuffer = []; 
     58var isMac = /^Mac/.test(navigator.platform); 
     59 
     60var key = { left: 37, up: 38, right: 39, down: 40, spacebar: 32,  
     61            pageup: 33, pagedown: 34, end: 35, home: 36 }; 
     62var arrowKeys = { 37: 1, 38: 1, 39: 1, 40: 1 }; 
     63 
     64/*********************************************** 
     65 * INITIALIZE 
     66 ***********************************************/ 
     67 
     68/** 
     69 * Tests if smooth scrolling is allowed. Shuts down everything if not. 
     70 */ 
     71function initTest() { 
     72    if (options.keyboardSupport) { 
     73        addEvent('keydown', keydown); 
     74    } 
     75} 
     76 
     77/** 
     78 * Sets up scrolls array, determines if frames are involved. 
     79 */ 
     80function init() { 
     81   
     82    if (initDone || !document.body) return; 
     83 
     84    initDone = true; 
     85 
     86    var body = document.body; 
     87    var html = document.documentElement; 
     88    var windowHeight = window.innerHeight;  
     89    var scrollHeight = body.scrollHeight; 
     90     
     91    // check compat mode for root element 
     92    root = (document.compatMode.indexOf('CSS') >= 0) ? html : body; 
     93    activeElement = body; 
     94     
     95    initTest(); 
     96 
     97    // Checks if this script is running in a frame 
     98    if (top != self) { 
     99        isFrame = true; 
     100    } 
     101 
     102    /** 
     103     * Safari 10 fixed it, Chrome fixed it in v45: 
     104     * This fixes a bug where the areas left and right to  
     105     * the content does not trigger the onmousewheel event 
     106     * on some pages. e.g.: html, body { height: 100% } 
     107     */ 
     108    else if (isOldSafari && 
     109             scrollHeight > windowHeight && 
     110            (body.offsetHeight <= windowHeight ||  
     111             html.offsetHeight <= windowHeight)) { 
     112 
     113        var fullPageElem = document.createElement('div'); 
     114        fullPageElem.style.cssText = 'position:absolute; z-index:-10000; ' + 
     115                                     'top:0; left:0; right:0; height:' +  
     116                                      root.scrollHeight + 'px'; 
     117        document.body.appendChild(fullPageElem); 
     118         
     119        // DOM changed (throttled) to fix height 
     120        var pendingRefresh; 
     121        refreshSize = function () { 
     122            if (pendingRefresh) return; // could also be: clearTimeout(pendingRefresh); 
     123            pendingRefresh = setTimeout(function () { 
     124                if (isExcluded) return; // could be running after cleanup 
     125                fullPageElem.style.height = '0'; 
     126                fullPageElem.style.height = root.scrollHeight + 'px'; 
     127                pendingRefresh = null; 
     128            }, 500); // act rarely to stay fast 
     129        }; 
     130   
     131        setTimeout(refreshSize, 10); 
     132 
     133        addEvent('resize', refreshSize); 
     134 
     135        // TODO: attributeFilter? 
     136        var config = { 
     137            attributes: true,  
     138            childList: true,  
     139            characterData: false  
     140            // subtree: true 
     141        }; 
     142 
     143        observer = new MutationObserver(refreshSize); 
     144        observer.observe(body, config); 
     145 
     146        if (root.offsetHeight <= windowHeight) { 
     147            var clearfix = document.createElement('div');    
     148            clearfix.style.clear = 'both'; 
     149            body.appendChild(clearfix); 
     150        } 
     151    } 
     152 
     153    // disable fixed background 
     154    if (!options.fixedBackground && !isExcluded) { 
     155        body.style.backgroundAttachment = 'scroll'; 
     156        html.style.backgroundAttachment = 'scroll'; 
     157    } 
     158} 
     159 
     160/** 
     161 * Removes event listeners and other traces left on the page. 
     162 */ 
     163function cleanup() { 
     164    observer && observer.disconnect(); 
     165    removeEvent(wheelEvent, wheel); 
     166    removeEvent('mousedown', mousedown); 
     167    removeEvent('keydown', keydown); 
     168    removeEvent('resize', refreshSize); 
     169    removeEvent('load', init); 
     170} 
     171 
     172 
     173/************************************************ 
     174 * SCROLLING  
     175 ************************************************/ 
     176  
     177var que = []; 
     178var pending = false; 
     179var lastScroll = Date.now(); 
     180 
     181/** 
     182 * Pushes scroll actions to the scrolling queue. 
     183 */ 
     184function scrollArray(elem, left, top) { 
     185     
     186    directionCheck(left, top); 
     187 
     188    if (options.accelerationMax != 1) { 
     189        var now = Date.now(); 
     190        var elapsed = now - lastScroll; 
     191        if (elapsed < options.accelerationDelta) { 
     192            var factor = (1 + (50 / elapsed)) / 2; 
     193            if (factor > 1) { 
     194                factor = Math.min(factor, options.accelerationMax); 
     195                left *= factor; 
     196                top  *= factor; 
     197            } 
     198        } 
     199        lastScroll = Date.now(); 
     200    }           
     201     
     202    // push a scroll command 
     203    que.push({ 
     204        x: left,  
     205        y: top,  
     206        lastX: (left < 0) ? 0.99 : -0.99, 
     207        lastY: (top  < 0) ? 0.99 : -0.99,  
     208        start: Date.now() 
     209    }); 
     210         
     211    // don't act if there's a pending queue 
     212    if (pending) { 
     213        return; 
     214    }   
     215 
     216    var scrollWindow = (elem === document.body); 
     217     
     218    var step = function (time) { 
     219         
     220        var now = Date.now(); 
     221        var scrollX = 0; 
     222        var scrollY = 0;  
     223     
     224        for (var i = 0; i < que.length; i++) { 
     225             
     226            var item = que[i]; 
     227            var elapsed  = now - item.start; 
     228            var finished = (elapsed >= options.animationTime); 
     229             
     230            // scroll position: [0, 1] 
     231            var position = (finished) ? 1 : elapsed / options.animationTime; 
     232             
     233            // easing [optional] 
     234            if (options.pulseAlgorithm) { 
     235                position = pulse(position); 
     236            } 
     237             
     238            // only need the difference 
     239            var x = (item.x * position - item.lastX) >> 0; 
     240            var y = (item.y * position - item.lastY) >> 0; 
     241             
     242            // add this to the total scrolling 
     243            scrollX += x; 
     244            scrollY += y;             
     245             
     246            // update last values 
     247            item.lastX += x; 
     248            item.lastY += y; 
     249         
     250            // delete and step back if it's over 
     251            if (finished) { 
     252                que.splice(i, 1); i--; 
     253            }            
     254        } 
     255 
     256        // scroll left and top 
     257        if (scrollWindow) { 
     258            window.scrollBy(scrollX, scrollY); 
     259        }  
     260        else { 
     261            if (scrollX) elem.scrollLeft += scrollX; 
     262            if (scrollY) elem.scrollTop  += scrollY;                     
     263        } 
     264         
     265        // clean up if there's nothing left to do 
     266        if (!left && !top) { 
     267            que = []; 
     268        } 
     269         
     270        if (que.length) {  
     271            requestFrame(step, elem, (1000 / options.frameRate + 1));  
     272        } else {  
     273            pending = false; 
     274        } 
     275    }; 
     276     
     277    // start a new queue of actions 
     278    requestFrame(step, elem, 0); 
     279    pending = true; 
     280} 
     281 
     282 
     283/*********************************************** 
     284 * EVENTS 
     285 ***********************************************/ 
     286 
     287/** 
     288 * Mouse wheel handler. 
     289 * @param {Object} event 
     290 */ 
     291function wheel(event) { 
     292 
     293    if (!initDone) { 
     294        init(); 
     295    } 
     296     
     297    var target = event.target; 
     298 
     299    // leave early if default action is prevented    
     300    // or it's a zooming event with CTRL  
     301    if (event.defaultPrevented || event.ctrlKey) { 
     302        return true; 
     303    } 
     304     
     305    // leave embedded content alone (flash & pdf) 
     306    if (isNodeName(activeElement, 'embed') ||  
     307       (isNodeName(target, 'embed') && /\.pdf/i.test(target.src)) || 
     308        isNodeName(activeElement, 'object') || 
     309        target.shadowRoot) { 
     310        return true; 
     311    } 
     312 
     313    var deltaX = -event.wheelDeltaX || event.deltaX || 0; 
     314    var deltaY = -event.wheelDeltaY || event.deltaY || 0; 
     315     
     316    if (isMac) { 
     317        if (event.wheelDeltaX && isDivisible(event.wheelDeltaX, 120)) { 
     318            deltaX = -120 * (event.wheelDeltaX / Math.abs(event.wheelDeltaX)); 
     319        } 
     320        if (event.wheelDeltaY && isDivisible(event.wheelDeltaY, 120)) { 
     321            deltaY = -120 * (event.wheelDeltaY / Math.abs(event.wheelDeltaY)); 
     322        } 
     323    } 
     324     
     325    // use wheelDelta if deltaX/Y is not available 
     326    if (!deltaX && !deltaY) { 
     327        deltaY = -event.wheelDelta || 0; 
     328    } 
     329 
     330    // line based scrolling (Firefox mostly) 
     331    if (event.deltaMode === 1) { 
     332        deltaX *= 40; 
     333        deltaY *= 40; 
     334    } 
     335 
     336    var overflowing = overflowingAncestor(target); 
     337 
     338    // nothing to do if there's no element that's scrollable 
     339    if (!overflowing) { 
     340        // except Chrome iframes seem to eat wheel events, which we need to  
     341        // propagate up, if the iframe has nothing overflowing to scroll 
     342        if (isFrame && isChrome)  { 
     343            // change target to iframe element itself for the parent frame 
     344            Object.defineProperty(event, "target", {value: window.frameElement}); 
     345            return parent.wheel(event); 
     346        } 
     347        return true; 
     348    } 
     349     
     350    // check if it's a touchpad scroll that should be ignored 
     351    if (isTouchpad(deltaY)) { 
     352        return true; 
     353    } 
     354 
     355    // scale by step size 
     356    // delta is 120 most of the time 
     357    // synaptics seems to send 1 sometimes 
     358    if (Math.abs(deltaX) > 1.2) { 
     359        deltaX *= options.stepSize / 120; 
     360    } 
     361    if (Math.abs(deltaY) > 1.2) { 
     362        deltaY *= options.stepSize / 120; 
     363    } 
     364     
     365    scrollArray(overflowing, deltaX, deltaY); 
     366    event.preventDefault(); 
     367    scheduleClearCache(); 
     368} 
     369 
     370/** 
     371 * Keydown event handler. 
     372 * @param {Object} event 
     373 */ 
     374function keydown(event) { 
     375 
     376    var target   = event.target; 
     377    var modifier = event.ctrlKey || event.altKey || event.metaKey ||  
     378                  (event.shiftKey && event.keyCode !== key.spacebar); 
     379     
     380    // our own tracked active element could've been removed from the DOM 
     381    if (!document.body.contains(activeElement)) { 
     382        activeElement = document.activeElement; 
     383    } 
     384 
     385    // do nothing if user is editing text 
     386    // or using a modifier key (except shift) 
     387    // or in a dropdown 
     388    // or inside interactive elements 
     389    var inputNodeNames = /^(textarea|select|embed|object)$/i; 
     390    var buttonTypes = /^(button|submit|radio|checkbox|file|color|image)$/i; 
     391    if ( event.defaultPrevented || 
     392         inputNodeNames.test(target.nodeName) || 
     393         isNodeName(target, 'input') && !buttonTypes.test(target.type) || 
     394         isNodeName(activeElement, 'video') || 
     395         isInsideYoutubeVideo(event) || 
     396         target.isContentEditable ||  
     397         modifier ) { 
     398      return true; 
     399    } 
     400 
     401    // [spacebar] should trigger button press, leave it alone 
     402    if ((isNodeName(target, 'button') || 
     403         isNodeName(target, 'input') && buttonTypes.test(target.type)) && 
     404        event.keyCode === key.spacebar) { 
     405      return true; 
     406    } 
     407 
     408    // [arrwow keys] on radio buttons should be left alone 
     409    if (isNodeName(target, 'input') && target.type == 'radio' && 
     410        arrowKeys[event.keyCode])  { 
     411      return true; 
     412    } 
     413     
     414    var shift, x = 0, y = 0; 
     415    var overflowing = overflowingAncestor(activeElement); 
     416 
     417    if (!overflowing) { 
     418        // Chrome iframes seem to eat key events, which we need to  
     419        // propagate up, if the iframe has nothing overflowing to scroll 
     420        return (isFrame && isChrome) ? parent.keydown(event) : true; 
     421    } 
     422 
     423    var clientHeight = overflowing.clientHeight;  
     424 
     425    if (overflowing == document.body) { 
     426        clientHeight = window.innerHeight; 
     427    } 
     428 
     429    switch (event.keyCode) { 
     430        case key.up: 
     431            y = -options.arrowScroll; 
     432            break; 
     433        case key.down: 
     434            y = options.arrowScroll; 
     435            break;          
     436        case key.spacebar: // (+ shift) 
     437            shift = event.shiftKey ? 1 : -1; 
     438            y = -shift * clientHeight * 0.9; 
     439            break; 
     440        case key.pageup: 
     441            y = -clientHeight * 0.9; 
     442            break; 
     443        case key.pagedown: 
     444            y = clientHeight * 0.9; 
     445            break; 
     446        case key.home: 
     447            y = -overflowing.scrollTop; 
     448            break; 
     449        case key.end: 
     450            var scroll = overflowing.scrollHeight - overflowing.scrollTop; 
     451            var scrollRemaining = scroll - clientHeight; 
     452            y = (scrollRemaining > 0) ? scrollRemaining + 10 : 0; 
     453            break; 
     454        case key.left: 
     455            x = -options.arrowScroll; 
     456            break; 
     457        case key.right: 
     458            x = options.arrowScroll; 
     459            break;             
     460        default: 
     461            return true; // a key we don't care about 
     462    } 
     463 
     464    scrollArray(overflowing, x, y); 
     465    event.preventDefault(); 
     466    scheduleClearCache(); 
     467} 
     468 
     469/** 
     470 * Mousedown event only for updating activeElement 
     471 */ 
     472function mousedown(event) { 
     473    activeElement = event.target; 
     474} 
     475 
     476 
     477/*********************************************** 
     478 * OVERFLOW 
     479 ***********************************************/ 
     480 
     481var uniqueID = (function () { 
     482    var i = 0; 
     483    return function (el) { 
     484        return el.uniqueID || (el.uniqueID = i++); 
     485    }; 
     486})(); 
     487 
     488var cache = {}; // cleared out after a scrolling session 
     489var clearCacheTimer; 
     490 
     491//setInterval(function () { cache = {}; }, 10 * 1000); 
     492 
     493function scheduleClearCache() { 
     494    clearTimeout(clearCacheTimer); 
     495    clearCacheTimer = setInterval(function () { cache = {}; }, 1*1000); 
     496} 
     497 
     498function setCache(elems, overflowing) { 
     499    for (var i = elems.length; i--;) 
     500        cache[uniqueID(elems[i])] = overflowing; 
     501    return overflowing; 
     502} 
     503 
     504//  (body)                (root) 
     505//         | hidden | visible | scroll |  auto  | 
     506// hidden  |   no   |    no   |   YES  |   YES  | 
     507// visible |   no   |   YES   |   YES  |   YES  | 
     508// scroll  |   no   |   YES   |   YES  |   YES  | 
     509// auto    |   no   |   YES   |   YES  |   YES  | 
     510 
     511function overflowingAncestor(el) { 
     512    var elems = []; 
     513    var body = document.body; 
     514    var rootScrollHeight = root.scrollHeight; 
     515    do { 
     516        var cached = cache[uniqueID(el)]; 
     517        if (cached) { 
     518            return setCache(elems, cached); 
     519        } 
     520        elems.push(el); 
     521        if (rootScrollHeight === el.scrollHeight) { 
     522            var topOverflowsNotHidden = overflowNotHidden(root) && overflowNotHidden(body); 
     523            var isOverflowCSS = topOverflowsNotHidden || overflowAutoOrScroll(root); 
     524            if (isFrame && isContentOverflowing(root) ||  
     525               !isFrame && isOverflowCSS) { 
     526                return setCache(elems, getScrollRoot());  
     527            } 
     528        } else if (isContentOverflowing(el) && overflowAutoOrScroll(el)) { 
     529            return setCache(elems, el); 
     530        } 
     531    } while (el = el.parentElement); 
     532} 
     533 
     534function isContentOverflowing(el) { 
     535    return (el.clientHeight + 10 < el.scrollHeight); 
     536} 
     537 
     538// typically for <body> and <html> 
     539function overflowNotHidden(el) { 
     540    var overflow = getComputedStyle(el, '').getPropertyValue('overflow-y'); 
     541    return (overflow !== 'hidden'); 
     542} 
     543 
     544// for all other elements 
     545function overflowAutoOrScroll(el) { 
     546    var overflow = getComputedStyle(el, '').getPropertyValue('overflow-y'); 
     547    return (overflow === 'scroll' || overflow === 'auto'); 
     548} 
     549 
     550 
     551/*********************************************** 
     552 * HELPERS 
     553 ***********************************************/ 
     554 
     555function addEvent(type, fn) { 
     556    window.addEventListener(type, fn, false); 
     557} 
     558 
     559function removeEvent(type, fn) { 
     560    window.removeEventListener(type, fn, false);   
     561} 
     562 
     563function isNodeName(el, tag) { 
     564    return (el.nodeName||'').toLowerCase() === tag.toLowerCase(); 
     565} 
     566 
     567function directionCheck(x, y) { 
     568    x = (x > 0) ? 1 : -1; 
     569    y = (y > 0) ? 1 : -1; 
     570    if (direction.x !== x || direction.y !== y) { 
     571        direction.x = x; 
     572        direction.y = y; 
     573        que = []; 
     574        lastScroll = 0; 
     575    } 
     576} 
     577 
     578var deltaBufferTimer; 
     579 
     580if (window.localStorage && localStorage.SS_deltaBuffer) { 
     581    try { // #46 Safari throws in private browsing for localStorage  
     582        deltaBuffer = localStorage.SS_deltaBuffer.split(','); 
     583    } catch (e) { }  
     584} 
     585 
     586function isTouchpad(deltaY) { 
     587    if (!deltaY) return; 
     588    if (!deltaBuffer.length) { 
     589        deltaBuffer = [deltaY, deltaY, deltaY]; 
     590    } 
     591    deltaY = Math.abs(deltaY); 
     592    deltaBuffer.push(deltaY); 
     593    deltaBuffer.shift(); 
     594    clearTimeout(deltaBufferTimer); 
     595    deltaBufferTimer = setTimeout(function () { 
     596        try { // #46 Safari throws in private browsing for localStorage 
     597            localStorage.SS_deltaBuffer = deltaBuffer.join(','); 
     598        } catch (e) { }   
     599    }, 1000); 
     600    return !allDeltasDivisableBy(120) && !allDeltasDivisableBy(100); 
     601}  
     602 
     603function isDivisible(n, divisor) { 
     604    return (Math.floor(n / divisor) == n / divisor); 
     605} 
     606 
     607function allDeltasDivisableBy(divisor) { 
     608    return (isDivisible(deltaBuffer[0], divisor) && 
     609            isDivisible(deltaBuffer[1], divisor) && 
     610            isDivisible(deltaBuffer[2], divisor)); 
     611} 
     612 
     613function isInsideYoutubeVideo(event) { 
     614    var elem = event.target; 
     615    var isControl = false; 
     616    if (document.URL.indexOf ('www.youtube.com/watch') != -1) { 
     617        do { 
     618            isControl = (elem.classList &&  
     619                         elem.classList.contains('html5-video-controls')); 
     620            if (isControl) break; 
     621        } while (elem = elem.parentNode); 
     622    } 
     623    return isControl; 
     624} 
     625 
     626var requestFrame = (function () { 
     627      return (window.requestAnimationFrame       ||  
     628              window.webkitRequestAnimationFrame ||  
     629              window.mozRequestAnimationFrame    || 
     630              function (callback, element, delay) { 
     631                 window.setTimeout(callback, delay || (1000/60)); 
     632             }); 
     633})(); 
     634 
     635var MutationObserver = (window.MutationObserver ||  
     636                        window.WebKitMutationObserver || 
     637                        window.MozMutationObserver);   
     638 
     639var getScrollRoot = (function() { 
     640  var SCROLL_ROOT; 
     641  return function() { 
     642    if (!SCROLL_ROOT) { 
     643      var dummy = document.createElement('div'); 
     644      dummy.style.cssText = 'height:10000px;width:1px;'; 
     645      document.body.appendChild(dummy); 
     646      var bodyScrollTop  = document.body.scrollTop; 
     647      var docElScrollTop = document.documentElement.scrollTop; 
     648      window.scrollBy(0, 3); 
     649      if (document.body.scrollTop != bodyScrollTop) 
     650        (SCROLL_ROOT = document.body); 
     651      else  
     652        (SCROLL_ROOT = document.documentElement); 
     653      window.scrollBy(0, -3); 
     654      document.body.removeChild(dummy); 
     655    } 
     656    return SCROLL_ROOT; 
     657  }; 
     658})(); 
     659 
     660 
     661/*********************************************** 
     662 * PULSE (by Michael Herf) 
     663 ***********************************************/ 
     664  
     665/** 
     666 * Viscous fluid with a pulse for part and decay for the rest. 
     667 * - Applies a fixed force over an interval (a damped acceleration), and 
     668 * - Lets the exponential bleed away the velocity over a longer interval 
     669 * - Michael Herf, http://stereopsis.com/stopping/ 
     670 */ 
     671function pulse_(x) { 
     672    var val, start, expx; 
     673    // test 
     674    x = x * options.pulseScale; 
     675    if (x < 1) { // acceleartion 
     676        val = x - (1 - Math.exp(-x)); 
     677    } else {     // tail 
     678        // the previous animation ended here: 
     679        start = Math.exp(-1); 
     680        // simple viscous drag 
     681        x -= 1; 
     682        expx = 1 - Math.exp(-x); 
     683        val = start + (expx * (1 - start)); 
     684    } 
     685    return val * options.pulseNormalize; 
     686} 
     687 
     688function pulse(x) { 
     689    if (x >= 1) return 1; 
     690    if (x <= 0) return 0; 
     691 
     692    if (options.pulseNormalize == 1) { 
     693        options.pulseNormalize /= pulse_(1); 
     694    } 
     695    return pulse_(x); 
     696} 
     697 
     698 
     699/*********************************************** 
     700 * FIRST RUN 
     701 ***********************************************/ 
     702 
     703var userAgent = window.navigator.userAgent; 
     704var isEdge    = /Edge/.test(userAgent); // thank you MS 
     705var isChrome  = /chrome/i.test(userAgent) && !isEdge;  
     706var isSafari  = /safari/i.test(userAgent) && !isEdge;  
     707var isMobile  = /mobile/i.test(userAgent); 
     708var isIEWin7  = /Windows NT 6.1/i.test(userAgent) && /rv:11/i.test(userAgent); 
     709var isOldSafari = isSafari && (/Version\/8/i.test(userAgent) || /Version\/9/i.test(userAgent)); 
     710var isEnabledForBrowser = (isChrome || isSafari || isIEWin7) && !isMobile; 
     711 
     712var wheelEvent; 
     713if ('onwheel' in document.createElement('div')) 
     714    wheelEvent = 'wheel'; 
     715else if ('onmousewheel' in document.createElement('div')) 
     716    wheelEvent = 'mousewheel'; 
     717 
     718if (wheelEvent && isEnabledForBrowser) { 
     719    addEvent(wheelEvent, wheel); 
     720    addEvent('mousedown', mousedown); 
     721    addEvent('load', init); 
     722} 
     723 
     724 
     725/*********************************************** 
     726 * PUBLIC INTERFACE 
     727 ***********************************************/ 
     728 
     729function SmoothScroll(optionsToSet) { 
     730    for (var key in optionsToSet) 
     731        if (defaultOptions.hasOwnProperty(key))  
     732            options[key] = optionsToSet[key]; 
     733} 
     734SmoothScroll.destroy = cleanup; 
     735 
     736if (window.SmoothScrollOptions) // async API 
     737    SmoothScroll(window.SmoothScrollOptions); 
     738 
     739if (typeof define === 'function' && define.amd) 
     740    define(function() { 
     741        return SmoothScroll; 
     742    }); 
     743else if ('object' == typeof exports) 
     744    module.exports = SmoothScroll; 
     745else 
     746    window.SmoothScroll = SmoothScroll; 
     747 
     748})(); 
  • qusq-lite/1.0.3/js/main.js

    r85403 r85403  
    124124    ish.validateForm(); 
    125125    ish.decorationHeight(); 
    126     ish.activateGallery(); 
    127126    ish.arrangeWidgetRecentProjects(); 
    128127 
     
    937936 
    938937/*-------------------------------------------------------------- 
    939  ## Gallery 
    940  --------------------------------------------------------------*/ 
    941 if ( ! functionExists( 'activateGallery' ) ) { 
    942     ish.activateGallery = function() { 
    943  
    944         var galleries = jQuery( '.ish-sc-gallery' ); 
    945  
    946         if ( galleries.length ) { 
    947             galleries.each( function() { 
    948                 var thisEl = jQuery( this ); 
    949                 var rowHeight = ( thisEl.attr( 'data-rowHeight' ) ) ? thisEl.attr( 'data-rowHeight' ) : 200; 
    950                 var lastRow = ( thisEl.attr( 'data-lastRow' ) ) ? thisEl.attr( 'data-lastRow' ) : 'nojustify'; 
    951                 var margins = ( thisEl.attr( 'data-margins' ) ) ? thisEl.attr( 'data-margins' ) : 1; 
    952  
    953                 thisEl.justifiedGallery({ 
    954                     rowHeight : rowHeight, 
    955                     lastRow : lastRow, 
    956                     margins : margins 
    957                 }); 
    958             }); 
    959         } 
    960     } 
    961 } 
    962  
    963  
    964 /*-------------------------------------------------------------- 
    965  ## Trip Tooltip 
    966  --------------------------------------------------------------*/ 
    967 if ( ! functionExists( 'activateTripTooltip' ) ) { 
    968     ish.activateTripTooltip = function() { 
    969  
    970         /* 
    971          var options = {}; // details about options are listed in next chapter 
    972          var trip = new Trip('.ish-trips', options); 
    973  
    974          trip.start(); 
    975          */ 
    976  
    977     } 
    978 } 
    979  
    980  
    981 /*-------------------------------------------------------------- 
    982938 ## Arrange Widget Recent Projects 
    983939 --------------------------------------------------------------*/ 
  • qusq-lite/1.0.3/scss/style.scss

    r85403 r85403  
    55Author URI: http://ishyoboy.com/ 
    66Description: Qusq Lite is a unique colourful portfolio theme, perfectly suitable for designers, freelancers & all kind of artist who want to show off their creative work with style. It covers all the necessary pages such a portfolio website might need. 
    7 Version: 1.0.2 
     7Version: 1.0.3 
    88License: GNU General Public License v2 or later 
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html 
  • qusq-lite/1.0.3/style.css

    r85403 r85403  
    55Author URI: http://ishyoboy.com/ 
    66Description: Qusq Lite is a unique colourful portfolio theme, perfectly suitable for designers, freelancers & all kind of artist who want to show off their creative work with style. It covers all the necessary pages such a portfolio website might need. 
    7 Version: 1.0.2 
     7Version: 1.0.3 
    88License: GNU General Public License v2 or later 
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    6262--------------------------------------------------------------*/@media only screen and (min-width: 480px){.ish-widget-element{margin-bottom:50px}.ish-decor-container{height:160px}.ish-navigation.ish-nav-on{transform:rotate(0deg)}.ish-navigation{width:480px;transform:rotate(30deg)}.ish-navigation .ish-nav-bg{position:absolute;display:block;width:320px;top:0;left:0;z-index:-1;transform-origin:0 0}.ish-navigation .ish-nav-close{position:absolute;top:30px;left:80px;transform:rotate(80deg) translateZ(0);transform-origin:0 0;background:none}.ish-navigation .ish-nav-close i:before{transform:rotate(0deg) translateZ(0);transition:all 0.5s ease;transform-origin:50%}.ish-navigation .ish-nav-close:hover i:before{transform:rotate(180deg) translateZ(0);transition:all 0.5s ease}.ish-navigation .ish-nav-container-bg{width:320px;height:120%;float:right}.ish-navigation .ish-nav-container-bg .ish-nav-container{padding:50px 50px 20px 20px;height:83%}.ish-pflo-gal.ish-1col,.ish-pflo-gal.ish-2col{margin-bottom:50px}.ish-pflo-gal.ish-1col .ish-item,.ish-pflo-gal.ish-2col .ish-item{margin-top:-60px;padding-bottom:0;width:calc(100% - 87px)}.ish-pflo-gal.ish-1col .ish-item:nth-child(2n),.ish-pflo-gal.ish-2col .ish-item:nth-child(2n){margin-right:87px}.ish-pflo-gal.ish-1col .ish-item:nth-child(2n+1),.ish-pflo-gal.ish-2col .ish-item:nth-child(2n+1){margin-left:87px}.ish-pflo-gal.ish-1col .ish-item.ish-featured-image,.ish-pflo-gal.ish-2col .ish-item.ish-featured-image{margin-top:0;margin-right:0;margin-left:-0.5rem;width:100%}.page-template-portfolio .ish-caption-container span:not(.ish-h4){display:inline-block}.gallery-item{max-width:25%}.gallery-columns-1 .gallery-item{max-width:100%}.gallery-columns-2 .gallery-item{max-width:50%}.gallery-columns-3 .gallery-item{max-width:33.33%}.gallery-columns-4 .gallery-item{max-width:25%}.ish-results .ish-result{padding-top:0;padding-left:116px}.ish-results .ish-result p,.ish-results .ish-result .ish-title{float:left;clear:both}.ish-results .ish-result .ish-result-number{display:inline-block}}@media only screen and (min-width: 601px){.admin-bar .ish-sticky-on.site-header .ish-logo-container,.admin-bar .ish-sticky-on.site-header .ish-menu-container{top:45px}}@media only screen and (min-width: 768px){.admin-bar .ish-sticky-on.site-header .ish-logo-container,.admin-bar .ish-sticky-on.site-header .ish-menu-container{top:30px}H1,H2,H3,H4,H5,H6,p,ul,ol,dl,table,hr,blockquote,pre,address,.ish-main-content .tiled-gallery,.ish-main-content .jetpack-video-wrapper,.post-password-form,.ish-theme-element{margin-top:0;margin-bottom:50px}p.comment-subscription-form{margin-bottom:0}p.comment-subscription-form:last-child{margin-bottom:50px}blockquote p,form p:last-child,form p:last-child input,form.wpcf7-form p:nth-last-child(2),form.wpcf7-form p:nth-last-child(2) input{margin-bottom:0}.ish-main-content .ish-row:last-child *[class*="ish-col-"]:last-child>*:last-child{margin-bottom:0}.ish-sidebar{border-top:none}.page-with-sidebar .ish-main-content{-ms-flex-preferred-size:66.667%;flex-basis:66.667%;max-width:66.667%;display:inline-block}.page-with-sidebar .ish-sidebar{-ms-flex-preferred-size:33.333%;flex-basis:33.333%;max-width:33.333%;padding-top:100px;display:inline-block}.page-with-sidebar .ish-sidebar.ish-sidebar-left{float:left;padding-right:60px}.page-with-sidebar .ish-sidebar.ish-sidebar-right{float:right;padding-left:60px}.page-with-sidebar .ish-sidebar .ish-widget-element{margin-bottom:100px}.ish-container-fluid{padding:1rem 2rem}.ish-decor-container{height:210px}.site-header .ish-logo-container .ish-menu-desc,.site-header .ish-logo-container .ish-theme-tagline,.site-header .ish-menu-container .ish-menu-desc,.site-header .ish-menu-container .ish-theme-tagline{display:inline}.site-header .ish-logo-container .ish-theme-tagline.ish-no-logo .ish-tagline-text{display:inline}.ish-navigation{width:550px}.ish-navigation .ish-nav-container{padding:100px 50px 10% 20px}.ish-footer .ish-separator{width:auto}.ish-footer .ish-social-box li{margin-bottom:0;-ms-flex-preferred-size:8.333%;flex-basis:8.333%;max-width:8.333%}.ish-social-box-contact li{-ms-flex-preferred-size:8.333%;flex-basis:8.333%;max-width:8.333%}.ish-results .ish-result{padding-top:0;padding-left:126px;margin-bottom:100px}.ish-txt-align-left{text-align:left}.ish-txt-align-right{text-align:right}.ish-txt-align-center{text-align:center}.ish-resp-center .ish-main-content,.ish-resp-center .ish-sidebar{text-align:left}.ish-resp-center .ish-txt-align-left{text-align:left}.ish-resp-center .ish-txt-align-right{text-align:right}.ish-resp-center .ish-txt-align-center{text-align:center}.ish-resp-center .ish-result:before{left:0}.ish-resp-center ul,.ish-resp-center ol{text-align:inherit}.ish-contact-info-container .ish-contact-info-box{padding-bottom:0;padding-top:250px}.ish-contact-info-container .ish-contact-info-box p,.ish-contact-info-container .ish-contact-info-box .sharedaddy{text-align:right}.ish-pflo-gal.ish-scroll-anim .ish-item{opacity:0}.ish-pflo-gal.ish-2col .ish-item .ish-item-container{margin-bottom:150px}.ish-pflo-gal.ish-2col .ish-item:nth-child(2) .ish-item-container{padding-top:150px}.ish-pflo-gal.ish-2col .ish-item:nth-child(2n){width:52% !important;left:0 !important;margin:0}.ish-pflo-gal.ish-2col .ish-item:nth-child(2n+1){width:52% !important;left:calc(48% + 1px) !important;margin:0}.ish-pflo-gal.ish-2col.ish-scroll-anim{margin-bottom:-100px}.ish-portfolio-navigation a,.ish-portfolio-navigation .ish-disabled{text-decoration:none;position:relative}.ish-portfolio-navigation a span,.ish-portfolio-navigation .ish-disabled span{position:relative;display:inline-block}.ish-portfolio-navigation a span:before,.ish-portfolio-navigation .ish-disabled span:before{position:absolute;content:'';width:0;height:2px;left:50%;bottom:-2px;transition:all 0.5s ease;left:50%}.ish-portfolio-navigation a i:before,.ish-portfolio-navigation .ish-disabled i:before{position:relative;left:0;transition-duration:0.3s}.ish-portfolio-navigation a:hover span:before,.ish-portfolio-navigation .ish-disabled:hover span:before{width:100%;left:0;transition:all 0.5s ease}.ish-portfolio-navigation .nav-links>div{display:inline-block}.ish-portfolio-navigation .nav-links>div:first-child a:hover i:before{left:-30px}.ish-portfolio-navigation .nav-links>div:last-child a:hover i:before{left:30px}.ish-blog-masonry .ish-item:first-child .ish-blog-post-media{margin-top:calc( 0.177 * ( 100% + 40px + 32px ))}.ish-blog-masonry .ish-item:nth-child(2n-1){padding-right:30px}.ish-blog-masonry .ish-item:nth-child(2n){padding-left:30px}.ish-blog-classic .ish-item,.ish-blog-classic .ish-item:last-child{padding-bottom:100px}.ish-blog-classic .ish-item .ish-blog-post-details,.ish-blog-masonry .ish-item .ish-blog-post-details{margin-bottom:auto}.ish-post-navigation .nav-links{text-align:center}.ish-post-navigation .nav-links div{display:inline}.ish-post-navigation .ish-separator,.ish-post-navigation .nav-previous ~ .nav-next:before{display:none}.ish-post-navigation a,.ish-post-navigation .ish-disabled{text-decoration:none;position:relative}.ish-post-navigation a span,.ish-post-navigation .ish-disabled span{position:relative;display:inline;margin:0 6px}.ish-post-navigation a span:before,.ish-post-navigation .ish-disabled span:before{position:absolute;content:'';width:0;height:2px;left:50%;bottom:-2px;transition:all 0.5s ease;left:50%}.ish-post-navigation a i:before,.ish-post-navigation .ish-disabled i:before{position:relative;left:0;transition-duration:0.3s}.ish-post-navigation a:hover span:before,.ish-post-navigation .ish-disabled:hover span:before{width:100%;left:0;transition:all 0.5s ease}.ish-post-navigation .nav-previous{float:left}.ish-post-navigation .nav-next{float:right}.ish-post-navigation .nav-previous a:hover i:before{left:-30px}.ish-post-navigation .nav-next a:hover i:before{left:30px}.page-template-blog .ish-pagination-container{margin-top:-100px}.ish-shadow-image .ish-item{width:calc(100% - 87px);margin-right:87px}.ish-shadow-image.ish-captions-right .ish-item{margin-left:87px}.ish-shadow-image.ish-captions-right .ish-item{margin-left:87px}.ish-shadow-image.ish-no-margin .ish-item{width:100%;margin-right:87px}.ish-shadow-image.ish-no-margin.ish-captions-right .ish-item{margin-left:0}.ish-shadow-image.ish-no-margin.ish-captions-right .ish-item{margin-left:0}.ish-team-archive-content{padding-top:50px;padding-bottom:50px}.page-template-team .site-content .ish-row{margin-bottom:0;margin-top:-50px}.page-template-team .site-content .ish-row:first-child{margin-top:0}.page-template-team .ish-item{margin-bottom:0}#map{height:600px}blockquote{padding:50px}blockquote:before{top:-50px}blockquote:after{top:50px}pre{padding:40px}.aligncenter,img.aligncenter{display:block;margin:0 auto}.alignleft{float:left}.alignright{float:right}figure.alignleft,figure.alignright{float:left;margin:0}figure.alignright{float:right}figure.aligncenter,figure.alignnone{float:none;margin:0 auto 50px auto}figure.aligncenter figcaption,figure.alignnone figcaption{margin:0 0 0.5em 0;text-align:center}figure.alignright figcaption{margin:0 0 0.5em 0;text-align:right}.ish-img-align-left,img.alignleft,figure.alignleft{margin:0 1.5em 0.5em 0}.ish-img-align-right,img.alignright,figure.alignright{margin:0 0 0.5em 1.2em}.ish-img-align-left{float:left;display:inline-block;margin:0 1.5em 0.5em 0}.ish-img-align-right{float:right;display:inline-block;margin:0 0 0.5em 1.2em}.ish-img-align-center{float:none;display:inline-block;margin:0 0 0 50%;transform:translateX(-50%)}.ish-resp-center .ish-img-align-left{margin:0 1.5em 0.5em 0}.ish-resp-center .ish-img-align-right{margin:0 0 0.5em 1.2em}.gallery-columns-5 .gallery-item{max-width:20%}.gallery-columns-6 .gallery-item{max-width:16.66%}.gallery-columns-7 .gallery-item{max-width:14.28%}.gallery-columns-8 .gallery-item{max-width:12.5%}.gallery-columns-9 .gallery-item{max-width:11.11%}.post-password-form{padding:2.5rem 3rem 3rem}.ish-content-overlay-small .site-content{margin-top:-50px}.ish-content-overlay-medium .site-content{margin-top:-100px}.ish-content-overlay-large .site-content{margin-top:-150px}}@media only screen and (min-width: 1024px){.ish-decor-container{height:280px}.site-header .ish-header{margin-top:100px}.site-header .site-title,.site-header h1{margin:100px 0 40px}.ish-blog-masonry .ish-item:nth-child(2n-1){padding-right:40px}.ish-blog-masonry .ish-item:nth-child(2n){padding-left:40px}.ish-team-archive-content{padding-top:0;padding-bottom:0}#map{height:800px}}@media only screen and (min-width: 1360px){.ish-decor-container{height:390px}.ish-sticky-on.site-header .ish-header{width:calc(100% - 4rem - 32px);left:inherit;margin-top:50px}.ish-sticky-on.site-header .ish-logo-container,.ish-sticky-on.site-header .ish-menu-container{top:40px;width:180px}.site-header .ish-header{margin-top:0}.site-header .ish-logo-container,.site-header .ish-menu-container{position:fixed;top:100px;left:50%;margin-left:480px;margin-top:0;z-index:99;width:180px;text-align:center}.site-header .ish-logo-container .ish-vertical,.site-header .ish-menu-container .ish-vertical{transform:rotate(-90deg)}.site-header .ish-logo-container .ish-menu-desc,.site-header .ish-logo-container .ish-theme-tagline,.site-header .ish-menu-container .ish-menu-desc,.site-header .ish-menu-container .ish-theme-tagline{position:relative;width:200%;padding:0;float:right;right:50%;top:35px;transform-origin:100% 50%}.site-header .ish-logo-container .ish-menu-desc,.site-header .ish-menu-container .ish-menu-desc{top:22px;padding-bottom:4px}.site-header .ish-logo-container{margin-left:-660px}.site-header .ish-logo-container .ish-theme-tagline.ish-no-logo{top:-2em;text-align:right}.site-header .ish-logo-container .ish-theme-tagline.ish-no-logo .site-title-text{display:block;padding:0}.site-header .ish-menu-container .ish-icon-nav i{float:none;display:inline-block}.site-header .site-title,.site-header h1{margin-top:170px}.ish-content-overlay-small .site-content{margin-top:-100px}.ish-content-overlay-medium .site-content{margin-top:-150px}.ish-content-overlay-large .site-content{margin-top:-230px}}@media only screen and (min-width: 1920px){.ish-decor-container{height:470px}}@media only screen and (min-height: 800px){.ish-navigation .ish-nav-bg{height:150%}} 
    6363 
    64 /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJfbm9ybWFsaXplLnNjc3MiLCJfZmxleGJveGdyaWQuc2NzcyIsIl9ib2lsZXJwbGF0ZS5zY3NzIiwiX2xheW91dC5zY3NzIiwic2hvcnRjb2Rlcy1zdHlsZXMvX3Nob3J0Y29kZXMuc2NzcyIsIl9mb250cy5zY3NzIiwiX2lzaC1pY29ucy5zY3NzIiwiX3BvcnRmb2xpby5zY3NzIiwiX2Jsb2cuc2NzcyIsIl9zb2NpYWwtaWNvbnMuc2NzcyIsIl9yZXNwb25zaXZlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0JFOzs7Ozs7Ozs7Ozs7Ozs7OztnRUFtQjhEOztnRUFNQSw0RUM3Q1ksS0FTeEUsdUJBQ0EsMEJBQ0EsNkJBQStCLENBQ2xDLEtBT0csUUFBVSxDQUNiLDJGQXlCRyxhQUFlLENBQ2xCLDRCQVdHLHFCQUNBLHVCQUF5QixDQUM1QixzQkFRRyxhQUNBLFFBQVUsQ0FDYixrQkFTRyxZQUFjLENBQ2pCLEVBVUcsNEJBQThCLENBQ2pDLGlCQVNHLFNBQVcsQ0FDZCxZQVVHLHdCQUEwQixDQUM3QixTQVFHLGdCQUFrQixDQUNyQixJQU9HLGlCQUFtQixDQUN0QixHQVFHLGNBQ0EsZUFBaUIsQ0FDcEIsS0FPRyxnQkFDQSxVQUFZLENBQ2YsTUFPRyxhQUFlLENBQ2xCLFFBUUcsY0FDQSxjQUNBLGtCQUNBLHVCQUF5QixDQUM1QixJQUdHLFVBQVksQ0FDZixJQUdHLGNBQWdCLENBQ25CLElBVUcsUUFBVSxDQUNiLGVBT0csZUFBaUIsQ0FDcEIsT0FVRyxlQUFpQixDQUNwQixHQU9HLHVCQUNBLFFBQVUsQ0FDYixJQU9HLGFBQWUsQ0FDbEIsa0JBVUcsaUNBQ0EsYUFBZSxDQUNsQixzQ0FzQkcsY0FDQSxhQUNBLFFBQVUsQ0FDYixPQU9HLGdCQUFrQixDQUNyQixjQVdHLG1CQUFxQixDQUN4QiwwRUFjRywwQkFDQSxjQUFnQixDQUNuQixzQ0FRRyxjQUFnQixDQUNuQixpREFRRyxTQUNBLFNBQVcsQ0FDZCxNQVFHLGtCQUFvQixDQUN2QiwyQ0FZRyxzQkFDQSxTQUFXLENBQ2QsZ0dBVUcsV0FBYSxDQUNoQixxQkFRRyw2QkFDQSxzQkFBd0IsQ0FDM0IsbUdBVUcsdUJBQXlCLENBQzVCLFNBT0cseUJBQ0EsYUFDQSw2QkFBK0IsQ0FDbEMsT0FRRyxTQUNBLFNBQVcsQ0FDZCxTQU9HLGFBQWUsQ0FDbEIsU0FRRyxnQkFBa0IsQ0FDckIsTUFVRyx5QkFDQSxnQkFBa0IsQ0FDckIsTUFJRyxTQUFXLENEclhmOztnRUFFZ0Usb0NFakQ1RCxrQkFDQSxnQkFBa0IsQ0FDckIscUJBR0csbUJBQ0EsaUJBQW1CLENBQ3RCLFNBR0csc0JBQ0EsQUFFQSxvQkFDQSxhQUNBLEFBRUEsa0JBQ0EsY0FDQSxBQUdBLHVCQUNBLG1CQUNBLEFBQ0EsbUJBQ0EsZUFDQSxxQkFDQSxtQkFBcUIsQ0FDeEIscUJBTUcsK0JBQ0EsMEJBQTRCLENBQy9CLHFCQU1HLGtDQUNBLDZCQUErQixDQUNsQywyY0E0Qkcsc0JBQ0EsQUFFQSxrQkFDQSxjQUNBLHFCQUNBLG1CQUFxQixDQUN4QixZQUtHLG9CQUNBLFlBQ0EsQUFDQSwwQkFDQSxhQUNBLGNBQWdCLENBQ25CLGNBSUcsK0JBQ0Esa0JBQ0EsZ0JBQWtCLENBQ3JCLGNBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGNBSUcsNEJBQ0EsZUFDQSxhQUFlLENBQ2xCLGNBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGNBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGNBSUcsNEJBQ0EsZUFDQSxhQUFlLENBQ2xCLGNBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGNBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGNBSUcsNEJBQ0EsZUFDQSxhQUFlLENBQ2xCLGVBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGVBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGVBSUcsNkJBQ0EsZ0JBQ0EsY0FBZ0IsQ0FDbkIscUJBR0csYUFBZSxDQUNsQixxQkFHRyxrQkFBb0IsQ0FDdkIscUJBR0csbUJBQXFCLENBQ3hCLHFCQUdHLGVBQWlCLENBQ3BCLHFCQUdHLG1CQUFxQixDQUN4QixxQkFHRyxtQkFBcUIsQ0FDeEIscUJBR0csZUFBaUIsQ0FDcEIscUJBR0csbUJBQXFCLENBQ3hCLHFCQUdHLG1CQUFxQixDQUN4QixxQkFHRyxlQUFpQixDQUNwQixzQkFHRyxtQkFBcUIsQ0FDeEIsc0JBR0csbUJBQXFCLENBQ3hCLGNBS0csb0JBQ0EsMkJBQ0EsZ0JBQWtCLENBQ3JCLGVBS0cscUJBQ0EsdUJBQ0EsaUJBQW1CLENBQ3RCLFlBS0csa0JBQ0EseUJBQ0EsY0FBZ0IsQ0FDbkIsWUFLRyxxQkFDQSxzQkFBd0IsQ0FDM0IsZUFLRyxzQkFDQSxrQkFBb0IsQ0FDdkIsZUFLRyxtQkFDQSxvQkFBc0IsQ0FDekIsZUFJRyx5QkFDQSw0QkFBOEIsQ0FDakMsZ0JBS0csc0JBQ0EsNkJBQStCLENBQ2xDLGNBS0csa0JBQ0EsUUFBVSxDQUNiLGFBS0csaUJBQ0EsT0FBUyxDQUNaLHlDQUdHLGVBQ0ksV0FBYSxDQUNoQiwyY0E0Qkcsc0JBQ0EsQUFFQSxrQkFDQSxjQUNBLHFCQUNBLG1CQUFxQixDQUN4QixZQUtHLG9CQUNBLFlBQ0EsQUFDQSwwQkFDQSxhQUNBLGNBQWdCLENBQ25CLGNBSUcsK0JBQ0Esa0JBQ0EsZ0JBQWtCLENBQ3JCLGNBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGNBSUcsNEJBQ0EsZUFDQSxhQUFlLENBQ2xCLGNBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGNBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGNBSUcsNEJBQ0EsZUFDQSxhQUFlLENBQ2xCLGNBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGNBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGNBSUcsNEJBQ0EsZUFDQSxhQUFlLENBQ2xCLGVBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGVBSUcsZ0NBQ0EsbUJBQ0EsaUJBQW1CLENBQ3RCLGVBSUcsNkJBQ0EsZ0JBQ0EsY0FBZ0IsQ0FDbkIscUJBR0csYUFBZSxDQUNsQixxQkFHRyxrQkFBb0IsQ0FDdkIscUJBR0csbUJBQXFCLENBQ3hCLHFCQUdHLGVBQWlCLENBQ3BCLHFCQUdHLG1CQUFxQixDQUN4QixxQkFHRyxtQkFBcUIsQ0FDeEIscUJBR0csZUFBaUIsQ0FDcEIscUJBR0csbUJBQXFCLENBQ3hCLHFCQUdHLG1CQUFxQixDQUN4QixxQkFHRyxlQUFpQixDQUNwQixzQkFHRyxtQkFBcUIsQ0FDeEIsc0JBR0csbUJBQXFCLENBQ3hCLGNBS0csb0JBQ0EsMkJBQ0EsZ0JBQWtCLENBQ3JCLGVBS0cscUJBQ0EsdUJBQ0EsaUJBQW1CLENBQ3RCLFlBS0csa0JBQ0EseUJBQ0EsY0FBZ0IsQ0FDbkIsWUFLRyxxQkFDQSxzQkFBd0IsQ0FDM0IsZUFLRyxzQkFDQSxrQkFBb0IsQ0FDdkIsZUFLRyxtQkFDQSxvQkFBc0IsQ0FDekIsZUFJRyx5QkFDQSw0QkFBOEIsQ0FDakMsZ0JBS0csc0JBQ0EsNkJBQStCLENBQ2xDLGNBS0csa0JBQ0EsUUFBVSxDQUNiLGFBS0csaUJBQ0EsT0FBUyxDQUNaLENBR0wseUNBQ0ksZUFDSSxXQUFhLENBQ2hCLDJjQTRCRyxzQkFDQSxBQUVBLGtCQUNBLGNBQ0EscUJBQ0EsbUJBQXFCLENBQ3hCLFlBS0csb0JBQ0EsWUFDQSxBQUNBLDBCQUNBLGFBQ0EsY0FBZ0IsQ0FDbkIsY0FJRywrQkFDQSxrQkFDQSxnQkFBa0IsQ0FDckIsY0FJRyxnQ0FDQSxtQkFDQSxpQkFBbUIsQ0FDdEIsY0FJRyw0QkFDQSxlQUNBLGFBQWUsQ0FDbEIsY0FJRyxnQ0FDQSxtQkFDQSxpQkFBbUIsQ0FDdEIsY0FJRyxnQ0FDQSxtQkFDQSxpQkFBbUIsQ0FDdEIsY0FJRyw0QkFDQSxlQUNBLGFBQWUsQ0FDbEIsY0FJRyxnQ0FDQSxtQkFDQSxpQkFBbUIsQ0FDdEIsY0FJRyxnQ0FDQSxtQkFDQSxpQkFBbUIsQ0FDdEIsY0FJRyw0QkFDQSxlQUNBLGFBQWUsQ0FDbEIsZUFJRyxnQ0FDQSxtQkFDQSxpQkFBbUIsQ0FDdEIsZUFJRyxnQ0FDQSxtQkFDQSxpQkFBbUIsQ0FDdEIsZUFJRyw2QkFDQSxnQkFDQSxjQUFnQixDQUNuQixxQkFHRyxhQUFlLENBQ2xCLHFCQUdHLGtCQUFvQixDQUN2QixxQkFHRyxtQkFBcUIsQ0FDeEIscUJBR0csZUFBaUIsQ0FDcEIscUJBR0csbUJBQXFCLENBQ3hCLHFCQUdHLG1CQUFxQixDQUN4QixxQkFHRyxlQUFpQixDQUNwQixxQkFHRyxtQkFBcUIsQ0FDeEIscUJBR0csbUJBQXFCLENBQ3hCLHFCQUdHLGVBQWlCLENBQ3BCLHNCQUdHLG1CQUFxQixDQUN4QixzQkFHRyxtQkFBcUIsQ0FDeEIsY0FLRyxvQkFDQSwyQkFDQSxnQkFBa0IsQ0FDckIsZUFLRyxxQkFDQSx1QkFDQSxpQkFBbUIsQ0FDdEIsWUFLRyxrQkFDQSx5QkFDQSxjQUFnQixDQUNuQixZQUtHLHFCQUNBLHNCQUF3QixDQUMzQixlQUtHLHNCQUNBLGtCQUFvQixDQUN2QixlQUtHLG1CQUNBLG9CQUFzQixDQUN6QixlQUlHLHlCQUNBLDRCQUE4QixDQUNqQyxnQkFLRyxzQkFDQSw2QkFBK0IsQ0FDbEMsY0FLRyxrQkFDQSxRQUFVLENBQ2IsYUFLRyxpQkFDQSxPQUFTLENBQ1osQ0FHTCx5Q0FDSSxlQUNJLFdBQWEsQ0FDaEIsMmNBNEJHLHNCQUNBLEFBRUEsa0JBQ0EsY0FDQSxxQkFDQSxtQkFBcUIsQ0FDeEIsWUFLRyxvQkFDQSxZQUNBLEFBQ0EsMEJBQ0EsYUFDQSxjQUFnQixDQUNuQixjQUlHLCtCQUNBLGtCQUNBLGdCQUFrQixDQUNyQixjQUlHLGdDQUNBLG1CQUNBLGlCQUFtQixDQUN0QixjQUlHLDRCQUNBLGVBQ0EsYUFBZSxDQUNsQixjQUlHLGdDQUNBLG1CQUNBLGlCQUFtQixDQUN0QixjQUlHLGdDQUNBLG1CQUNBLGlCQUFtQixDQUN0QixjQUlHLDRCQUNBLGVBQ0EsYUFBZSxDQUNsQixjQUlHLGdDQUNBLG1CQUNBLGlCQUFtQixDQUN0QixjQUlHLGdDQUNBLG1CQUNBLGlCQUFtQixDQUN0QixjQUlHLDRCQUNBLGVBQ0EsYUFBZSxDQUNsQixlQUlHLGdDQUNBLG1CQUNBLGlCQUFtQixDQUN0QixlQUlHLGdDQUNBLG1CQUNBLGlCQUFtQixDQUN0QixlQUlHLDZCQUNBLGdCQUNBLGNBQWdCLENBQ25CLHFCQUdHLGFBQWUsQ0FDbEIscUJBR0csa0JBQW9CLENBQ3ZCLHFCQUdHLG1CQUFxQixDQUN4QixxQkFHRyxlQUFpQixDQUNwQixxQkFHRyxtQkFBcUIsQ0FDeEIscUJBR0csbUJBQXFCLENBQ3hCLHFCQUdHLGVBQWlCLENBQ3BCLHFCQUdHLG1CQUFxQixDQUN4QixxQkFHRyxtQkFBcUIsQ0FDeEIscUJBR0csZUFBaUIsQ0FDcEIsc0JBR0csbUJBQXFCLENBQ3hCLHNCQUdHLG1CQUFxQixDQUN4QixjQUtHLG9CQUNBLDJCQUNBLGdCQUFrQixDQUNyQixlQUtHLHFCQUNBLHVCQUNBLGlCQUFtQixDQUN0QixZQUtHLGtCQUNBLHlCQUNBLGNBQWdCLENBQ25CLFlBS0cscUJBQ0Esc0JBQXdCLENBQzNCLGVBS0csc0JBQ0Esa0JBQW9CLENBQ3ZCLGVBS0csbUJBQ0Esb0JBQXNCLENBQ3pCLGVBSUcseUJBQ0EsNEJBQThCLENBQ2pDLGdCQUtHLHNCQUNBLDZCQUErQixDQUNsQyxjQUtHLGtCQUNBLFFBQVUsQ0FDYixhQUtHLGlCQUNBLE9BQVMsQ0FDWixDRmgvQkw7O2dFQUVnRSw2RUcxRGEsS0FhekUsV0FDQSxjQUNBLGVBQWlCLENBQ3BCLGlCQVdHLG1CQUNBLGdCQUFrQixDQUNyQixZQUdHLG1CQUNBLGdCQUFrQixDQUNyQixHQU9HLGNBQ0EsV0FDQSxTQUNBLDBCQUNBLGFBQ0EsU0FBVyxDQUNkLGtDQWNHLHFCQUF1QixDQUMxQixTQU9HLFNBQ0EsU0FDQSxTQUFXLENBQ2QsU0FPRyxlQUFpQixDQUNwQixnQkFPRyxlQUNBLGdCQUNBLFdBQ0EsZUFBaUIsQ0FDcEIsUUFlRyx1QkFBeUIsQ0FDNUIsZ0JBUUcsU0FDQSxtQkFDQSxXQUNBLFlBQ0EsZ0JBQ0EsVUFDQSxrQkFDQSxTQUFXLENBQ2QsaUVBVUcsVUFDQSxZQUNBLFNBQ0EsaUJBQ0EsZ0JBQ0EsVUFBWSxDQUNmLFdBT0csaUJBQW1CLENBQ3RCLGlDQWdCRyxZQUNBLGFBQWUsQ0FDbEIsZ0JBR0csVUFBWSxDQUNmLGFBMEJHLG1CQUdJLGtDQUNBLHNCQUdBLDJCQUNBLDJCQUE2QixDQUNoQyxZQUlHLHlCQUEyQixDQUM5QixjQUdHLDJCQUE0QixDQUMvQixrQkFHRyw0QkFBNkIsQ0FDaEMsZ0RBU0csVUFBWSxDQUNmLGVBSUcsc0JBQ0EsdUJBQXlCLENBQzVCLE1BUUcsMEJBQTRCLENBQy9CLE9BSUcsdUJBQXlCLENBQzVCLElBR0cseUJBQTJCLENBQzlCLFFBS0csVUFDQSxRQUFVLENBQ2IsTUFJRyxzQkFBd0IsQ0FDM0IsQ0h6TUw7O2dFQUVnRSx5VUkwRDVELG1CQUNBLFdBQ0EscUJBQXVCLENBQzFCLDJCQU9HLEdBQ0ksZ0JBQWtCLENBRXRCLElBQ0ksZ0JBQWtCLENBRXRCLEtBQ0ksZ0JBQWtCLENBQUEsQ0FPMUIsRUFDSSxxQkFBdUIsQ0FDMUIsb0JBSUcsOEJBQ0EsNkJBQ0EsV0FDQSxVQUNBLGdCQUNBLFFBQVUsQ0FDYixLQU1HLG1DQUNBLGlDQUFtQyxDQUN0QyxvR0FjRyxhQUNBLGtCQUFvQixDQUN2QixrQkFNRyxlQUFpQixDQUNwQixNQUdHLGVBQWlCLENBRHJCLGtCQUtRLFlBQ0EsZ0JBQWtCLENBQ3JCLElBSUQsa0JBQW9CLENBQ3ZCLEdBR0csWUFDQSxZQUNBLFVBQVksQ0FDZixJQUdHLGVBQ0EsV0FBYSxDQUNoQixxQ0FNTyxZQUFjLENBSnRCLDZEQVFZLGVBQWlCLENBUjdCLFdBYVEsWUFDQSxZQUNBLGtCQUNBLGlCQUFtQixDQWhCM0IscURBcUJRLFdBQWEsQ0FDaEIsT0FJRCxZQUNBLGdCQUNBLFlBQ0EsWUFDQSxrQkFDQSw0QkFDQSx3QkFBQSxBQUVBLHFCQUZBLEFBRUEsZ0JBQUEsMEtBR0EseUVBR0EsNENBR0EsMkJBQTZCLENBQ2hDLGFBR0csOExBR0EseUVBR0EsNENBR0EsMkJBQTZCLENBQ2hDLEtBR0csZUFBaUIsQ0FDcEIsRUFHRyxxQkFDQSx3QkFwUDBCLENBcVA3QixPQUdHLGNBQWdCLENBQ25CLG9DQUlHLFdBQ0EsUUFBVSxDQUNiLE1BR0csaUJBQW1CLENBQ3RCLG1CQXZMRywwQkFFQSxxQkEwTEksb0JBQXNCLENBSDlCLCtCQXZMSSxvQkFnTVEsQUFDQSxlQUNBLFdBQWEsQ0FYekIsa0NBZ0JRLGVBQ0EsT0FDQSxNQUNBLGNBQ0EsV0FDQSxZQUNBLFdBQWEsQ0FDaEIsMENBS0QsaUJBQW1CLENBQ3RCLHFCQUdHLFlBQWMsQ0FDakIsNEJBR0csWUFBYyxDQUNqQixxQkFHRyxnQkFDQSxjQUNBLGNBQWdCLENBQ25CLGtCQUdHLFVBQVksQ0FEaEIsZ01BTVEscUJBQXVCLENBTi9CLG1GQWFnQixlQUFpQixDQWJqQyx5R0FxQlEscUJBQXVCLENBQzFCLHdCQUtELGlCQUFtQixDQUN0QixlQUdHLGdCQUNBLGNBQ0EsWUFBYyxDQUNqQixxQkFHRyxnQkFDQSxhQUNBLFVBQVksQ0FIaEIsMkVBT1Esa0JBQ0EsV0FDQSxjQUNBLGlCQUNBLFlBQ0EsVUFBWSxDQVpwQixvQ0FnQlEsZ0JBQ0EsZUFDQSxxQ0FDQSxXQUFhLENBbkJyQix1Q0F1QlEsbUNBQXlCLENBQzVCLGNBSUQscUJBQ0Esd0JBQWlCLENBQ3BCLGtCQUdHLHdCQUFpQixDQURyQixtQ0FJUSx1QkFBeUIsQ0FKakMsZ0NBUVEsdUJBQXlCLENBQzVCLHlCQUlELGVBQWlCLENBQ3BCLGVBR0cscUJBQ0Esa0JBQ0Esb0JBQXNCLENBSDFCLHNCQU1RLFdBQ0Esa0JBQ0EsWUFDQSxTQUNBLFdBQ0EsUUFDQSx3QkFsWnNCLENBc1k5Qiw0Q0FnQlEsV0FDQSxNQUFRLENBakJoQiw0QkFxQlEsV0FDQSxNQUFRLENBdEJoQixrREEwQlEsUUFDQSxRQUFVLENBQ2IsZUFJRCxnQkFDQSxxQkFDQSxjQUFnQixDQUhwQixtQkFNUSxlQUNBLHlCQUNBLHVCQUFxQixDQVI3Qix5QkFZUSxtQ0FBaUMsQ0FDcEMsbURBT0QsUUFBVSxDQUNiLHNEQUtHLFFBQVUsQ0FDYixnSUFPTyxRQUFVLENBQ2IsZ0JBSUQsZ0JBQ0EscUJBQ0Esc0NBQTRCLENBRXBCLCtCQUNKLGtCQUFvQixDQUN2Qix5Q0FNRCxXQUNBLGNBQ0EsbUJBQ0EsYUFBZSxDQUxuQix1REFRUSxtQkFBcUIsQ0FDeEIsbUxBU0csaUJBQW1CLENBTjNCLDJFQVdRLGtCQUFvQixDQVg1Qiw0RUFnQlksZUFBaUIsQ0FoQjdCLHFCQXFCUSxlQUFpQixDQUNwQix5Q0FLRCxlQUFpQixDQUNwQixzQkFHRyxpQkFBbUIsQ0FDdEIsZ0JBR0csVUFBWSxDQUNmLGlCQUdHLFdBQWEsQ0FDaEIsZ0JBR0csaUJBQW1CLENBRHZCLHNCQUlRLHdDQUNBLHFCQUNBLGtCQUNBLFNBQ0EsT0FDQSxrQkFBb0IsQ0FDdkIsaUJBS0QsY0FBZ0IsQ0FDbkIsY0FHRyxXQUFhLENBRGpCLG1CQUlRLFlBQWMsQ0FDakIsa0RBU0csb0JBQXNCLENBSDlCLHNEQU1ZLG9CQUFzQixDQU5sQyxrSEFXWSxlQUFpQixDQUNwQix3RUFRRCxrQkFBb0IsQ0FINUIsOEVBTVksWUFBYyxDQU4xQiwwRkFXUSxpQkFBbUIsQ0FYM0Isc0VBZVEsWUFBYyxDQWZ0QixvU0FzQlEsV0FDQSxZQUNBLHFCQUNBLGNBQ0EsbUJBQ0EsZ0JBQ0EsZ0JBQ0EsWUFFQSx3QkFDQSxlQUFpQixDQWhDekIsME1BcUNRLFVBQVksQ0FyQ3BCLDRFQXlDUSxZQUFjLENBekN0QiwwTUE4Q1Esd0JBeG1Cc0IsQ0EwakI5QixrTkFpRFksd0JBM21Ca0IsQ0EwakI5QiwwT0FzRGdCLGdCQUFrQixDQXREbEMsNEdBNERRLGdCQUNBLGVBQ0EsZ0JBQ0EsZ0JBQWtCLENBL0QxQiwwTEFtRVEsUUFBVSxDQUNiLDZCQUlELGtCQUFvQixDQUN2Qix5QkFHRyxvQkFBc0IsQ0FEMUIsd0NBSVEsb0JBQXNCLENBQ3pCLCtHQU1HLFVBQVksQ0FIcEIsMkJBT1EscUJBQUEsQUFBd0Isc0JBQUEsQ0FQaEMsMkJBV1EsZ0NBQUEsQUFDQSxtQkFBQSxpQkFBbUIsQ0FDdEIsMkJBSUQsWUFBYyxDQUNqQiwwQkFHRyxjQUNBLGVBQ0EsZ0JBQ0EsZ0JBQWtCLENBQ3JCLHlCQUdHLGdCQUFrQixDQUNyQix1QkFPTyxvQkFBc0IsQ0FDekIsc0JBSUQsb0JBQXNCLENBQ3pCLHVDQUtXLGVBQ0EsbUNBQUEsQUFDQSwyQkFBQSxjQUNBLE1BQ0EsT0FDQSxXQUNBLFNBQ0EsWUFBYyxDQVYxQiw4RkFlWSxtQkFDQSxhQUNBLFdBQ0Esb0JBQXNCLENBbEJsQyxnUUFzQmdCLFlBQWMsQ0F0QjlCLDhFQTZCZ0IsWUFBYyxDQTdCOUIsK0NBbUNZLFdBQWEsQ0FuQ3pCLCtEQXNDZ0IsVUFBWSxDQXRDNUIsMEVBOENRLG9CQUFzQixDQTlDOUIsNE1Ba0RZLGtCQUNBLGNBQ0EsaUJBQW1CLENBcEQvQixzTkF5RFksV0FDQSxZQUNBLFNBQVcsQ0EzRHZCLDBIQW9FZ0IsY0FDQSxlQUNBLGdCQUNBLFVBQVksQ0FDZixzQkFhTCxRQUFVLENBRmxCLHlCQU1RLGdCQUNBLGNBQ0EsV0FDQSxVQUFZLENBVHBCLDRCQWFRLGNBQWdCLENBYnhCLHdDQWdCWSxlQUFpQixDQWhCN0Isa0VBdUJRLGtCQUNBLFVBQ0EsV0FBYSxDQXpCckIsOEZBNEJZLHNCQUFpQixDQTVCN0Isd01BaUNZLGtCQUNBLGFBQ0EsZUFDQSxpQkFDQSxVQUFZLENBckN4QixpQ0EwQ1EsU0FBVyxDQTFDbkIsMkNBNkNZLGdCQUNBLGdCQUFrQixDQTlDOUIsZ0VBdURZLE1BQ0EsVUFDQSxlQUNBLGVBQWlCLENBMUQ3QixpRkE2RGdCLGVBQ0Esa0JBQW9CLENBOURwQyxrRkFrRWdCLFlBQWMsQ0FsRTlCLG1DQXVFWSxvQkFBc0IsQ0F2RWxDLGlDQTRFUSxnQkFBa0IsQ0E1RTFCLGlEQWdGZ0IsV0FBYSxDQWhGN0IseUNBc0ZRLGtCQUFvQixDQXRGNUIsNENBMEZRLGFBQWUsQ0ExRnZCLHFGQStGUSx5QkFDQSxvQkFBc0IsQ0FoRzlCLHVDQW9HUSxlQUFpQixDQXBHekIscUZBd0dRLGVBQWlCLENBQ3BCLHdHQUlHLHVEQUF5RCxDQUM1RCxnQkFPRCxTQUFXLENBbDFCWCxvQ0FDSSxXQUNBLFdBQWEsQ0FDaEIsMENBRUcsbUJBQ0Esb0JBQ0EsNkJBQ0EsMkJBQTZCLENBQ2hDLDBDQUVHLGVBdzBCa0MsQ0F2MEJyQyxxQkFNRyw2QkFDQSwwQkFnMEJrQyxDQS96QnJDLDJCQWswQkcseUJBQ0EsT0FBUyxDQUNaLGdCQUlELGVBQ0EsV0FDQSxZQUNBLE1BQ0EsWUFDQSxXQUNBLHlCQUNBLDJCQUNBLGdDQUFrQyxDQVR0QyxrQkFZUSxvQkFBc0IsQ0FaOUIsNEJBZ0JRLGFBQ0EsV0FBYSxDQWpCckIsK0JBcUJRLGtCQUNBLFNBQ0EsVUFDQSxhQUNBLHFCQUNBLHFCQUNBLFdBQ0Esa0JBQ0EsbUNBQUEsQUFBNEIsMEJBQUEsQ0E3QnBDLHNDQWlDUSxXQUNBLFlBQ0EsV0FBYSxDQW5DckIseURBc0NZLGtCQUNBLGtCQUNBLFlBQ0EsaUJBQ0EsV0FDQSxZQUVBLGdDQUFrQyxDQTdDOUMsb0NBbURZLGVBQWlCLENBbkQ3QixtQkF3RFEsZ0JBQ0EsY0FBZ0IsQ0F6RHhCLHNCQTREWSxZQUFjLENBNUQxQix5QkErRGdCLGlCQUFtQixDQS9EbkMsc0JBb0VZLGVBQWlCLENBcEU3Qix3QkF1RWdCLGtCQUNBLG9CQUFzQixDQXhFdEMsNkJBMkVvQixrQkFDQSxvQkFBc0IsQ0E1RTFDLGtVQXNGZ0IsV0FDQSxPQUNBLHdCQWwrQmMsQ0EwNEI5Qiw0R0E4Rm9CLFlBQ0EsU0FDQSxVQUFZLENBaEdoQyxrQ0EzM0JJLGtCQUNBLFdBQ0EsUUFDQSxXQUNBLFNBQ0EsWUFDQSx5QkEyOUJZLFdBQ0EsU0FBVyxDQXZHM0IsdUNBK0dZLGdCQUNBLGlCQUNBLFdBQWEsQ0FqSHpCLGdDQXVIUSxXQUNBLGVBQ0EsYUFBZSxDQXpIdkIsc0xBOEhZLFVBQVksQ0E5SHhCLG1DQWtJWSxnQkFDQSxXQUNBLGtCQUFBLEFBQTBCLHdCQUFBLENBcEl0QyxtQ0F3SVksaUJBQ0EsZ0JBQ0EsY0FBZ0IsQ0FDbkIsWUFRTCxpQkFBbUIsQ0FEdkIsY0FJUSxxQkFDQSxpQkFBbUIsQ0FMM0IsK0JBVVkscUJBQUEsQUFDQSx1QkFBQSxpQkFBbUIsQ0FYL0IsK0JBZVksa0JBQW9CLENBZmhDLDJCQXdCUSxxQkFDQSxXQUNBLGNBQWdCLENBQ25CLGlCQUlELGlCQUFtQixDQUR2QixtQkFJUSx5QkFDQSx1QkFDQSxxQkFDQSxrQkFDQSxTQUNBLGFBQ0EsWUFDQSxxQkFDQSxjQUFnQixDQVp4Qix3QkFlWSxrQkFDQSxvQkFBc0IsQ0FoQmxDLCtCQTNpQ0ksa0JBQ0EsV0FDQSxRQUNBLFdBQ0EsU0FDQSxZQUNBLHlCQXlqQ1ksTUFBUSxDQXBCeEIseUNBMEJnQixXQUNBLHdCQXJsQ2MsQ0EwakM5QiwrQkErQmdCLGdCQUFrQixDQS9CbEMsbUJBc0NRLHFCQUNBLG1CQUNBLGlCQUVBLG9CQUFzQixDQUN6Qix5QkFTRyxrQkFDQSxrQkFDQSxnQkFDQSxrQkFBb0IsQ0FONUIsK0RBVVksUUFBVSxDQVZ0QixvQ0FjWSxlQUFpQixDQWQ3QixzQ0FpQmdCLG9CQUFzQixDQWpCdEMsNENBc0JZLGtCQUNBLE1BQ0EsT0FDQSxjQUNBLFdBQ0EsWUFDQSxpQkFDQSxrQkFDQSwwQkFDQSx1Q0FDQSxVQUFZLENBaEN4Qix5QkFxQ1EsVUFBWSxDQUNmLG9DQUlELHFCQUFVLENBQ2IsNkJBTUcsa0JBQW9CLENBQ3ZCLGNBR0csZ0JBQ0EsY0FBZ0IsQ0FGcEIsd0JBS1EsZUFBaUIsQ0FDcEIsY0FJRCxrQkFBb0IsQ0FDdkIsa0NBR0csZUFDQSxjQUFnQixDQUNuQixnQkFHRyxnQkFBa0IsQ0FEdEIsb0JBSVEsV0FDQSxZQUNBLGtCQUNBLGlCQUFtQixDQUN0Qiw4QkFJRCx1QkFBeUIsQ0FDNUIsb0JBS08sWUF4ckNKLHdCQUEwQixDQXFyQzlCLDBCQU9ZLFNBQVcsQ0FQdkIsb0JBWVEsZ0JBQWtCLENBWjFCLDZCQWdCUSxjQUFnQixDQUNuQixvQkFJRCxtQkFDQSxrQkFDQSxjQUFnQixDQUhwQiwrQ0FNUSxxQkFDQSxhQUFlLENBUHZCLHNCQVdRLHFCQUNBLFlBcnRDSix3QkFBMEIsQ0F5c0M5Qiw0QkFnQlksU0FBVyxDQWhCdkIsaUNBcUJRLDRCQUE4QixDQUNqQyx1QkFNRyxZQUFjLENBRnRCLGlEQU1RLFdBQ0EsZ0JBQ0Esa0JBQ0Esa0JBQ0EsWUFDQSxjQUNBLGVBL3VDSix3QkFBMEIsQ0FtdUM5Qiw2RUFrQlEscUJBQ0EsVUFBWSxDQW5CcEIsZ0RBdUJRLGtCQUFvQixDQUN2QixrQkFJRCxpQkFDQSxlQUNBLFlBandDQSx3QkFBMEIsQ0E4dkM5Qix3QkFPUSxTQUFXLENBQ2Qsc0JBS0QsMkJBQTZCLENBQ2hDLGlDQUdHLGVBQWlCLENBQ3BCLGNBTUcsaUJBQW1CLENBQ3RCLGVBR0csYUFBZSxDQUNsQixxQkFJRyxXQUNBLGNBQ0EsVUFBWSxDQUNmLG9CQUdHLGFBQ0EsaUJBQW1CLENBRnZCLDJDQUtRLGdCQUNBLFdBQ0EsWUFDQSxrQkFDQSxtQkFDQSxnQkFBa0IsQ0FWMUIseUNBY1Esa0JBQ0EsV0FDQSxZQUNBLGtCQUNBLGNBdHpDSix3QkFBMEIsQ0FveUM5QixpQ0F1QlEsZUFBaUIsQ0FDcEIsMEJBT0Qsb0JBQ0EsZ0JBQ0EsU0FBVyxDQUhmLHNDQU1RLGlCQUFtQixDQU4zQixxQ0F0MENJLHlCQWsxQ0ksMEJBQ0EsbUNBQUEsQUFDQSwyQkFBQSxvQkFBc0IsQ0FkOUIsb0NBbUJRLFVBQVksQ0FuQnBCLHNEQXNCWSxhQUFlLENBdEIzQiwyQ0EyQlEsWUFBYyxDQUNqQix3SkFPRyxvQkFBc0IsQ0FDekIsbUNBS0QscUJBQ0EsV0FDQSxZQUNBLGlCQUNBLG1CQUNBLGdCQUNBLGtCQUNBLHFCQWwzQ0Esd0JBQTBCLENBeTJDOUIsaURBYVEsa0JBQ0EsY0FDQSxRQUNBLFNBQ0EsVUFDQSxtQ0FBcUMsQ0FDeEMsaUJBSUQsZUFDQSxTQUNBLDZCQUNBLGtCQUNBLHVCQUNBLHdCQUNBLHNCQTE0Q0Esd0JBQWlCLENBbTRDckIsd0JBV1EsZ0JBQ0Esd0JBQ0EsVUFDQSxnQkFDQSxpQkFBbUIsQ0FmM0Isc0JBbUJRLGVBQWlCLENBbkJ6Qix5R0F3QlEsc0JBQXdCLENBQzNCLGlCQUtELGtCQUNBLHFCQUFTLENBRmIsMEJBS1EsbUJBQXFCLENBQ3hCLFdBT0QsZ0JBQ0EsU0FBVyxDQUZmLGNBS1Esa0JBQW9CLENBQ3ZCLGVBSUQsYUFBZSxDQUNsQixZQU1HLGlCQUFtQixDQUR2QixlQUdRLFlBQWMsQ0FIdEIseUJBS1ksZ0JBQWtCLENBQ3JCLFVBVUwsaUJBQW1CLENBRnZCLFlBS1EsZ0JBQWtCLENBTDFCLG1CQVFZLFdBQWEsQ0FSekIsa0JBWVkscUJBQXVCLENBQzFCLElBU0wsYUFDQSxzQ0FBNEIsQ0FDL0IsT0FHRyxjQUFnQixDQUNuQiw4QkFHRyxZQUNBLHNDQUE0QixDQUMvQiw2QkFJRyxlQUFpQixDQUNwQixXQUdHLFdBQ0Esa0JBQ0Esa0JBQ0EsY0FDQSxZQUFjLENBTGxCLG1DQVFRLFlBQ0EsY0FDQSxZQUNBLFdBQ0EsY0FDQSxpQkFBbUIsQ0FiM0Isa0JBaUJRLFNBQVcsQ0FqQm5CLGlCQXFCUSxRQUFVLENBckJsQixhQXdCUSxlQUFpQixDQUNwQiwwQkFRRCxtQkFBcUIsQ0FDeEIsaUNBT0csMkJBQTZCLENBRGpDLDhDQUlRLDJCQUE2QixDQUNoQyxnSEFRRyxnQkFBa0IsQ0FMMUIsd1NBU1ksZ0JBQWtCLENBVDlCLGdFQWVRLHVDQUNBLGdCQUNBLGNBQ0EscUJBQXVCLENBbEIvQiw0RUFzQlksbUNBQ0EsbUNBQUEsQUFDQSwyQkFBQSx3QkFDQSxtQkFBcUIsQ0F6QmpDLDhGQTZCWSxtQ0FBaUMsQ0FDcEMsdUJBS0wsWUFDQSxzQkFDQSxhQUNBLGlDQUFrQyxDQUNyQyxrREFJTyx1QkFBeUIsQ0FGakMsK0JBdmtESSx3QkFBMEIsQ0F1a0Q5Qiw4RUFZUSxtQkFBZSxDQUNsQixjQU9ELHFCQUNBLGdCQUNBLG1CQUNBLGlCQUNBLGtCQUNBLFNBQVcsQ0FDZCxpQ0FHRyxVQUFZLENBQ2YsaUNBR0csYUFBZSxDQUNsQiw0REFLRyxnQkFDQSxxQkFDQSxjQUFnQixDQUNuQixvQkFHRyxjQUNBLEFBRUEsK0JBQ0EsQUFDQSxtQ0FDQSwwQkFBNEIsQ0FDL0IsaUJBR0csY0FDQSxnQkFDQSxtQkFDQSxlQUFpQixDQUNwQixpQkFHRyx1QkFBeUIsQ0FDNUIsb0JBTUcsa0JBQW9CLENBQ3ZCLGlCQUdHLGlCQUFtQixDQUR2Qix1QkFJUSxZQUFjLENBSnRCLCtDQVNRLFlBQ0EsbUJBQ0EsaUJBQW1CLENBWDNCLHVCQWVRLGdCQUNBLFdBQ0EsWUFDQSw0QkFDQSxnQkFBa0IsQ0FuQjFCLHdCQXVCUSxnQkFDQSxrQkFDQSxNQUNBLFFBQ0EsV0FDQSxZQUNBLHdCQXZyRHNCLENBd3JEekIsbUJBTUcsZ0JBQ0EsVUFDQSxXQUNBLG1CQUFBLEFBQ0EsZUFBQSxvQkFBQSxBQUFjLFlBQUEsQ0FQdEIsbUJBV1EsbUJBRUEsZ0NBQUEsQUFDQSxtQkFBQSxrQkFDQSxzQkFDQSxxQkFDQSxtQkFBcUIsQ0FqQjdCLGtDQW9CWSxZQUFjLENBcEIxQixnREF5Qlksd0JBcHREa0IsQ0FxdERyQixtREFLTCxXQUFhLENBQ2hCLHFDQU9PLDZCQUFBLEFBQ0EsZ0JBQUEsY0FBZ0IsQ0FIeEIsZ0NBT1EsNkJBQUEsQUFDQSxnQkFBQSxjQUFnQixDQUNuQixhQUlELGlCQUNBLGtCQUNBLG9CQUFzQixDQUgxQixvU0FjUSxhQUNBLGtCQUFvQixDQWY1QixvQkFtQlEsVUFBWSxDQW5CcEIsaUNBdUJRLGtCQUFvQixDQXZCNUIsK0NBMEJZLGVBQWlCLENBMUI3QixpREE2QmdCLG9CQUFzQixDQTdCdEMsbURBaUNnQixZQUFjLENBakM5QixvQ0FzQ1ksdUJBQXlCLENBdENyQywwRkEyQ1ksaUJBQ0EsZUFBaUIsQ0E1QzdCLG9DQWdEWSxlQUFpQixDQWhEN0Isc0NBbURnQixxQkFDQSxtQkFDQSxxQkFDQSxhQUFlLENBdEQvQiwrREE0RGdCLFdBQ0EsY0FDQSxZQUNBLGtCQUFvQixDQS9EcEMsK0NBcUVnQixrQkFBb0IsQ0FyRXBDLHdHQXlFb0IsV0FDQSxjQUNBLFlBQ0Esa0JBQW9CLENBNUV4Qyx3REFpRmdCLGtCQUFvQixDQWpGcEMsNkRBdUZnQixXQUNBLGdDQUNBLDZCQUErQixDQXpGL0Msa0ZBOEZvQiwyQkFDQSx5QkFBMkIsQ0EvRi9DLHNGQW1Hb0IsU0FBVyxDQW5HL0IsZ0VBd0dnQixXQUFhLENBeEc3QixxR0E4R1ksMEJBQTRCLENBOUd4QyxzRUFtSGdCLFdBQ0EsZUFBaUIsQ0FwSGpDLGtKQXdIb0IsV0FBYSxDQXhIakMsNEVBNEhvQixnQkFBa0IsQ0E1SHRDLDRKQWlJb0Isb0JBQXNCLENBakkxQyx5REFzSWdCLGVBQWlCLENBdElqQywyRkEySVksa0JBQW9CLENBM0loQyxnRUErSVksZUFBaUIsQ0EvSTdCLGdEQW50REksV0FBYSxDQW10RGpCLHNEQWh0RFEsU0FBVyxDQUNkLDBEQXUyRFcsV0FBYSxDQXhKN0IsNkRBNkpZLHFCQUNBLGdCQUNBLGNBQWdCLENBL0o1QixnRUFrS2dCLFVBQ0EscUJBQ0EsZ0JBQ0EsV0FDQSx3QkFsNURjLENBNHVEOUIsc0VBeUtvQixXQUFhLENBektqQyw4RUE4S3dCLGVBQ0EsWUFDQSxVQUFZLENBaExwQyw2RUFvTHdCLGdCQUNBLFdBQ0EsV0FBYSxDQXRMckMsa0VBOExnQixhQUFlLENBOUwvQixpRkFpTW9CLGNBQWdCLENBak1wQyxtRkFudERJLFdBQWEsQ0FtdERqQix5RkFodERRLFNBQVcsQ0FDZCw2REF5NURXLHFCQUNBLG1CQUNBLGtCQUFvQixDQTVNcEMsc0lBbU5nQixpQkFBbUIsQ0FuTm5DLGdJQW50REksWUEyNkRZLG9CQUFzQixDQXhOdEMsNElBaHREUSxTQUFXLENBQ2QsMkVBNDZEVyxpQkFBbUIsQ0FDdEIsZ0RBV0wsU0FBVyxDQUhuQix1REFPUSxZQUFjLENBUHRCLGlJQWFZLFNBQVcsQ0FDZCxLQUtMLFdBQ0EsYUFDQSxrQkFDQSxxQkFDQSxTQUFXLENBTGYsaUZBUVEsUUFBVSxDQVJsQix1REFZUSxrQkFBb0IsQ0FaNUIsbUNBa0JZLFFBQVUsQ0FDYixZQUtMLFlBQWMsQ0FDakIsNkNBT08sYUFBZSxDQUNsQiwyRUFRRCw2QkFBK0IsQ0FDbEMseUNBR0csV0FDQSxrQkFBb0IsQ0FDdkIsa0NBR0csZ0JBQWtCLENKdi9EdEI7O2dFQUVnRSxnQktqQzVELGFBQ0Esa0JBQW9CLENBQ3ZCLCtCQU9XLDRCQUE4QixDQUNqQywwQ0FVTCxnQkFDSSxhQUNBLGtCQUFvQixDQUN2QixDTGNMOztnRUFFZ0UsaUZNdEQ1RCx1Q0FDQSxlQUNBLDBCQUNBLGtCQUFvQixDQUN2QixtQkFHRyxlQUNBLDJCQUNBLGtCQUFvQixDQUN2QixzRUFLRyxlQUNBLDBCQUNBLGtCQUFvQixDQUN2Qiw4Q0FJRyxlQUNBLDBCQUNBLGtCQUFvQixDQUN2QixrTEFVRyxlQUNBLDBCQUNBLGtCQUFvQixDQUN2Qiw4REFLRyxlQUNBLDBCQUNBLGtCQUFvQixDQUN2QixtR0FNRyxlQUNBLDBCQUNBLGtCQUFvQixDQUN2Qix3QkFHRyxjQUFnQixDQUNuQix3Q0FHRyxjQUFnQixDQUNuQix1R0FNRyxjQUFnQixDQUNuQixtRUFJRyx5QkFBMkIsQ0FDOUIsNEZBS0csZUFDQSxrQkFBb0IsQ0FDdkIsa0VBS0csY0FBZ0IsQ0FDbkIsMkJBR0csZUFBaUIsQ0FDcEIsOERBSUcsdUNBQ0EsZUFDQSwwQkFDQSxrQkFBb0IsQ0FDdkIsMENBVUcsbUJBQ0ksY0FBZ0IsQ0FDbkIsdUNBSUcsY0FBZ0IsQ0FDbkIsbUJBR0csY0FBZ0IsQ0FDbkIsUUFHRyxjQUFnQixDQUNuQixRQUdHLGNBQWdCLENBQ25CLFFBR0csY0FBZ0IsQ0FDbkIsd0NBR0csY0FBZ0IsQ0FDbkIsQ0FNTCwyQ0FDSSxtQkFDSSxjQUFnQixDQUNuQix1Q0FJRyxjQUFnQixDQUNuQixtQkFHRyxjQUFnQixDQUNuQixDTmpHTDs7Z0VBRWdFLFdPakY1RCx3QkFDQSwwQ0FDQSxpVEFLQSxtQkFDQSxpQkFBbUIsQ0FBQSx5REFjbkIsd0JBQ0Esa0JBQ0EsbUJBQ0EsV0FFQSxxQkFDQSx3QkFDQSxVQUNBLGtCQUNBLGtCQUlBLG9CQUNBLG9CQUdBLGdCQUlBLGlCQU1BLG1DQUNBLGlDQUFtQyxDQUl0Qyx3QkFFeUIsZUFBaUIsQ0FBSSxzQkFDdkIsZUFBaUIsQ0FBSSwwQkFDakIsZUFBaUIsQ0FBSSx1QkFDeEIsZUFBaUIsQ0FBSSw2QkFDZixlQUFpQixDQUFJLHlCQUN6QixlQUFpQixDQUFJLHdCQUN0QixlQUFpQixDQUFJLHNCQUN2QixlQUFpQixDQUFJLHFCQUN0QixlQUFpQixDQUFJLHlCQUNqQixlQUFpQixDQUFJLHdCQUN0QixlQUFpQixDQUFJLHdCQUNyQixlQUFpQixDQUFJLG9CQUN6QixlQUFpQixDQUFJLHdCQUNqQixlQUFpQixDQUFJLHNCQUN2QixlQUFpQixDQUFJLHVCQUNwQixlQUFpQixDQUFJLHNCQUN0QixlQUFpQixDQUFJLDJCQUNoQixlQUFpQixDQUFJLGdDQUNoQixlQUFpQixDQUFJLGdDQUNyQixlQUFpQixDQUFJLHlCQUM1QixlQUFpQixDQUFJLCtCQUNmLGVBQWlCLENBQUksMEJBQzFCLGVBQWlCLENBQUksdUJBQ3hCLGVBQWlCLENBQUksd0JBQ3BCLGVBQWlCLENBQUksd0JBQ3JCLGVBQWlCLENBQUksNEJBQ2pCLGVBQWlCLENBQUksNkJBQ3BCLGVBQWlCLENBQUksMEJBQ3hCLGVBQWlCLENBQUksNEJBQ25CLGVBQWlCLENBQUksdUJBQzFCLGVBQWlCLENBQUksdUJBQ3JCLGVBQWlCLENBQUksMEJBQ2xCLGVBQWlCLENBQUksaUNBQ2QsZUFBaUIsQ0FBSSx3QkFDOUIsZUFBaUIsQ0FBSSxzQkFDdkIsZUFBaUIsQ0FBSSx5QkFDbEIsZUFBaUIsQ0FBSSx1QkFDdkIsZUFBaUIsQ0FBSSx1QkFDckIsZUFBaUIsQ0FBSSx5QkFDbkIsZUFBaUIsQ0FBSSwyQkFDbkIsZUFBaUIsQ0FBSSx5QkFDdkIsZUFBaUIsQ0FBSSwyQkFDbkIsZUFBaUIsQ0FBSSwwQkFDdEIsZUFBaUIsQ0FBSSwyQkFDcEIsZUFBaUIsQ0FBSSwwQkFDdEIsZUFBaUIsQ0FBSSxzQkFDekIsZUFBaUIsQ0FBSSx3QkFDbkIsZUFBaUIsQ0FBSSx5QkFDcEIsZUFBaUIsQ0FBSSw4QkFDaEIsZUFBaUIsQ0FBSSw2QkFDdEIsZUFBaUIsQ0FBSSx5QkFDekIsZUFBaUIsQ0FBSSxzQkFDeEIsZUFBaUIsQ0FBSSw0QkFDZixlQUFpQixDQUFJLDRCQUNyQixlQUFpQixDQUFJLDZCQUNwQixlQUFpQixDQUFJLDBCQUN4QixlQUFpQixDQUFJLDBCQUNyQixlQUFpQixDQUFJLDBCQUNyQixlQUFpQixDQUFJLHdCQUN2QixlQUFpQixDQUFJLCtCQUNkLGVBQWlCLENBQUksc0JBQzlCLGVBQWlCLENBQUksc0JBQ3JCLGVBQWlCLENBQUksdUJBQ3BCLGVBQWlCLENBQUksNkJBQ2YsZUFBaUIsQ0FBSSx1QkFDM0IsZUFBaUIsQ0FBSSxzQkFDdEIsZUFBaUIsQ0FBSSw0QkFDZixlQUFpQixDQUFJLCtCQUNsQixlQUFpQixDQUFJLHNCQUM5QixlQUFpQixDQUFJLG1DQUNSLGVBQWlCLENBQUksb0NBQ3BCLGVBQWlCLENBQUksaUNBQ3hCLGVBQWlCLENBQUksbUNBQ25CLGVBQWlCLENBQUksK0JBQ3pCLGVBQWlCLENBQUksMkJBQ3pCLGVBQWlCLENBQUkseUJBQ3ZCLGVBQWlCLENBQUksMkJBQ25CLGVBQWlCLENBQUksMEJBQ3RCLGVBQWlCLENBQUksMEJBQ3JCLGVBQWlCLENBQUksMkJBQ3BCLGVBQWlCLENBQUkseUJBQ3ZCLGVBQWlCLENBQUksNkJBQ2pCLGVBQWlCLENBQUksNEJBQ3RCLGVBQWlCLENBQUksdUJBQzFCLGVBQWlCLENBQUksMEJBQ2xCLGVBQWlCLENBQUksOEJBQ2pCLGVBQWlCLENBQUkscUJBQzlCLGVBQWlCLENBQUksdUJBQ25CLGVBQWlCLENBQUksNkJBQ2YsZUFBaUIsQ0FBSSxxQ0FDYixlQUFpQixDQUFJLDhCQUM1QixlQUFpQixDQUFJLHdCQUMzQixlQUFpQixDQUFJLDJCQUNsQixlQUFpQixDQUFJLDRCQUNwQixlQUFpQixDQUFJLHdCQUN6QixlQUFpQixDQUFJLDJCQUNsQixlQUFpQixDQUFJLHVCQUN6QixlQUFpQixDQUFJLCtCQUNiLGVBQWlCLENBQUksNkJBQ3ZCLGVBQWlCLENBQUksdUJBQzNCLGVBQWlCLENBQUkseUJBQ25CLGVBQWlCLENBQUksNEJBQ2xCLGVBQWlCLENBQUksc0JBQzNCLGVBQWlCLENBQUksMEJBQ2pCLGVBQWlCLENBQUksMEJBQ3JCLGVBQWlCLENBQUksNEJBQ25CLGVBQWlCLENBQUksc0JBQzNCLGVBQWlCLENBQUksd0JBQ25CLGVBQWlCLENBQUksNkJBQ2hCLGVBQWlCLENBQUksMEJBQ3hCLGVBQWlCLENBQUksZ0NBQ2YsZUFBaUIsQ1BsRm5EOztnRUFFZ0U7O2dFQU1BLGtCUXJFeEQsV0FDQSxlQUNBLGlCQUFtQixDQUwzQix3QkFVUSxjQUNBLFVBQVksQ0FYcEIsNENBY1ksY0FDQSxXQUNBLGlCQUFtQixDQWhCL0IsZ0ZBb0JZLG1CQUNBLFlBQ0Esc0JBQ0EsZUFBaUIsQ0F2QjdCLCtDQTJCWSxZQUNBLFVBQStCLENBNUIzQyxpQ0FnQ1ksaUNBQWUsQ0FoQzNCLGtEQW1DZ0IsY0FDQSxnQkFDQSx1Q0FDQSxlQUNBLFVBQVksQ0F2QzVCLHlEQTBDb0IsWUFDQSxjQUNBLGtCQUNBLGVBQWlCLENBN0NyQyxxQ0FtRFksa0JBQ0EsU0FDQSx5QkFDQSwrQkFDQSxVQUNBLG1DQUFBLEFBQ0EsMkJBQUEsbUJBQ0EsaUJBQ0EsV0FBdUIsQ0EzRG5DLHVDQThEZ0IsZ0JBQTRCLENBOUQ1Qyw0REFtRVksYUFBZSxDQW5FM0IsZ0VBc0VnQixhQUFlLENBdEUvQix5RUEwRWdCLFVBQ0EsYUFBZSxDQUNsQixrRUFVTCxtQkFFSCxDQUFDLGtDQVNFLGdCQUNBLGtCQUNBLHNDQUE0QixDQUxwQyxvQ0FRWSxnQkFFQSxrQ0FDQSw0QkFDQSxzQkFFQSxrQkFDQSxNQUNBLE9BQ0EsUUFDQSxRQUFVLENBbEJ0Qix3REFxQmdCLHFCQUFnQixDQXJCaEMseUNBMEJZLGlCQUNBLFdBQ0EsYUFBZSxDQTVCM0Isb0RBaUNnQixZQUNILENBbENiLHFFQXFDZ0IsZ0JBQWtCLENBckNsQyxzQ0EyQ1ksVUFDQSxjQUNBLGVBQ0EsZUFBaUIsQ0FDcEIsd0NBUUwsU0FBVyxDQUNkLDhDQUdHLFNBQVcsQ0FDZCxnREFHRyw0QkFDQSx1Q0FBeUMsQ0FDNUMsQUFXRCxxQkFDSSxJQUVBLEtBRUksd0JBQ0EsU0FBVyxDQUFBLENBT25CLGtFQUVRLFlBQWMsQ0FDakIsb0VBVUcscUJBQ0EsaUJBQW1CLENBTDNCLDhFQVFZLFlBQWMsQ0FFakIsNEJBa0JELGNBQ0EsVUFBWSxDQVhwQixnQ0FLWSxXQUNBLGVBQ0Esc0NBQTRCLENBUHhDLGdEQWNZLGNBQ0EsV0FDQSxpQkFBbUIsQ0FoQi9CLHdGQW9CWSxrQkFBb0IsQ0FwQmhDLG1EQXdCWSxZQUNBLFVBQStCLENBekIzQyxxQ0E2QlksaUNBQWUsQ0E3QjNCLHVDQWdDZ0IsY0FDQSxnQkFDQSxzQ0FBNEIsQ0FsQzVDLDJDQXFDb0IsZ0JBQ0Esd0JBQTBCLENBdEM5QyxpREEyQ2dCLHFCQUFnQixDQTNDaEMsc0RBK0NnQixjQUNBLGdCQUNBLHVDQUNBLGVBQ0EsVUFBWSxDQW5ENUIsNkRBc0RvQixZQUNBLGNBQ0Esa0JBQ0EsZ0JBQWtCLENBekR0Qyx5Q0ErRFksa0JBQ0EsVUFDQSx5QkFDQSwrQkFDQSxTQUNBLFVBQ0EsbUJBQ0EsaUJBQ0EsV0FBdUIsQ0F2RW5DLDJDQXlFZ0IsZ0JBQTRCLENBekU1QywyQ0E2RWdCLG9CQUFzQixDQTdFdEMseURBc0ZZLGFBQWUsQ0F0RjNCLDZEQXlGZ0IsYUFBZSxDQXpGL0Isc0VBNkZnQixVQUNBLFNBQ0EsYUFBZSxDQUNsQiwyQ0FXTCxrQkFBb0IsQ0FGNUIsc0RBS1ksZUFBaUIsQ0FMN0IsOEJBVVEsa0JBQW9CLENBVjVCLDJDQWFZLFdBQWEsQ0FiekIsd0RBaUJZLGVBQ0EsT0FDQSxXQUNBLFlBQ0Esa0JBQW9CLENBckJoQywwREF3QmdCLGNBQ0Esa0JBQ0EsaUJBQ0EsV0o1VFoseUJJK1RZLG1DQUFBLEFBQ0EsMkJBQUEsd0JBQ0EsV0FBYSxDQWhDN0IsZ0VBbUNvQixTQUFXLENBbkMvQiw0REF1Q29CLG9CQUFzQixDQXZDMUMscURBNkNZLHFCQUF1QixDQTdDbkMsc0ZBc0RnQixRQUNBLFNBQVcsQ0F2RDNCLDBEQStEWSxlQUFpQixDUjlTN0I7O2dFQUVnRSw0Q1MvRXhELFdBQ0EsY0FBZ0IsQ0FKeEIsd0RBUVEsY0FDQSxVQUFZLENBVHBCLHNHQWNnQixvQkFBc0IsQ0FkdEMsb0hBbUJvQixnQkFBa0IsQ0FuQnRDLHdLQTBCZ0IsZUFBaUIsQ0ExQmpDLDBFQStCWSxtQkFBcUIsQ0EvQmpDLHNHQW1DWSxrQkFBb0IsQ0FuQ2hDLDRIQXNDZ0IsV0FBYSxDQXRDN0Isb0lBMENnQixlQUFpQixDQTFDakMsMEdBOENnQixvQkFBc0IsQ0E5Q3RDLGtJQW9EZ0IsWUFBYyxDQUNqQiw0QkFPTCxtQkFBcUIsQ0FGN0IsdUNBS1ksbUJBQXFCLENBQ3hCLFFBS0wsdUJBQXlCLENBQzVCLG9DQU9PLFdBQWEsQ0FGckIsc0RBTVEsWUFDQSxZQUNBLGFBQWUsQ0FSdkIsZ0NBWVEsaUJBQW1CLENBWjNCLDZFTHJCUSxZQUNBLGFBQWUsQ0FDbEIsc0NBR0csVUFBWSxDQUNmLG9DS2dDTyxjQUFnQixDQWpCNUIsMERBdUJRLHFCQUNBLGlCQUFtQixDQXhCM0Isb0VBMkJZLFlBQWMsQ1RoQjFCOztnRUFFZ0UsWVV6RzVELGdCQUNBLFNBQVcsQ0FGZixlQUtRLG9CQUFzQixDQUw5QixjQVNRLHNCQUNBLHFCQUNBLGdCQUNBLG9CTm9DSix5Qk1qQ0ksbUNBQUEsQUFDQSwyQkFBQSx3QkFDQSxXQUFhLENBakJyQixvQkFvQlksU0FBVyxDQXBCdkIscUJBd0JZLFdBQ0EsY0FFQSx3QkFDQSxrQkFDQSxtQkFDQSxXQUVBLHFCQUNBLHFCQUNBLFVBQ0Esa0JBQ0Esa0JBSUEsb0JBQ0Esb0JBSUEsaUJBR0EsbUNBQ0EsaUNBQW1DLENBakQvQyxxQkFxRDRDLGVBQWlCLENBckQ3RCwwQ0FzRDRDLGVBQWlCLENBdEQ3RCw0Q0F1RDRDLGVBQWlCLENBdkQ3RCx5Q0F3RDRDLGVBQWlCLENBeEQ3RCw2Q0F5RDRDLGVBQWlCLENBekQ3RCx1Q0EwRDRDLGVBQWlCLENBMUQ3RCwyQ0EyRDRDLGVBQWlCLENBM0Q3RCwwQ0E0RDRDLGVBQWlCLENBNUQ3RCwyQ0E2RDRDLGVBQWlCLENBN0Q3RCx5Q0E4RDRDLGVBQWlCLENBOUQ3RCw2Q0ErRDRDLGVBQWlCLENBL0Q3RCw4Q0FnRTRDLGVBQWlCLENBaEU3RCx5Q0FpRTRDLGVBQWlCLENBakU3RCw0Q0FrRTRDLGVBQWlCLENBbEU3RCwyQ0FtRTRDLGVBQWlCLENBbkU3RCxzQ0FvRTRDLGVBQWlCLENBcEU3RCwyQ0FxRTRDLGVBQWlCLENBckU3RCxzQ0FzRTRDLGVBQWlCLENBdEU3RCw0Q0F1RTRDLGVBQWlCLENBdkU3RCx5Q0F3RTRDLGVBQWlCLENBeEU3RCx5Q0F5RTRDLGVBQWlCLENBekU3RCx3Q0EwRTRDLGVBQWlCLENBMUU3RCxxQ0EyRTRDLGVBQWlCLENBM0U3RCx3Q0E0RTRDLGVBQWlCLENBNUU3RCxnREE2RTRDLGVBQWlCLENBN0U3RCxnREE4RTRDLGVBQWlCLENBOUU3RCw2Q0ErRTRDLGVBQWlCLENBL0U3RCwyQ0FnRjRDLGVBQWlCLENBaEY3RCw2Q0FpRjRDLGVBQWlCLENBakY3RCwwQ0FrRjRDLGVBQWlCLENBbEY3RCxpREFtRjRDLGVBQWlCLENBbkY3RCw4Q0FvRjRDLGVBQWlCLENBcEY3RCxtQ0FxRjRDLGVBQWlCLENBckY3RCw4Q0FzRjRDLGVBQWlCLENBdEY3RCx5Q0F1RjRDLGVBQWlCLENBdkY3RCx3Q0F3RjRDLGVBQWlCLENBeEY3RCwwQ0F5RjRDLGVBQWlCLENBekY3RCx3Q0EwRjRDLGVBQWlCLENBMUY3RCxzQ0EyRjRDLGVBQWlCLENBM0Y3RCxxQ0E0RjRDLGVBQWlCLENBNUY3RCx3Q0E2RjRDLGVBQWlCLENBN0Y3RCx3Q0E4RjRDLGVBQWlCLENBOUY3RCx5Q0ErRjRDLGVBQWlCLENBL0Y3RCx1Q0FnRzRDLGVBQWlCLENBaEc3RCwwQ0FpRzRDLGVBQWlCLENBakc3RCx1Q0FrRzRDLGVBQWlCLENWWTdEOztnRUFFZ0UsMENXbEY1RCxvQkFDSSxrQkFBb0IsQ0FDdkIscUJBR0csWUFBYyxDQUNqQiwyQkFJTyxzQkFBaUIsQ0FDcEIsZ0JBSUQsWUFDQSx1QkFBaUIsQ0FGckIsNEJBS1Esa0JBQ0EsY0FDQSxZQUNBLE1BQ0EsT0FDQSxXQUNBLG9CQUFzQixDQVg5QiwrQkFlUSxrQkFDQSxTQUNBLFVBQ0Esc0NBQ0EscUJBQ0EsZUFBaUIsQ0FwQnpCLHdDQXVCWSxxQ0FDQSx5QkFDQSxvQkFBc0IsQ0F6QmxDLDhDQThCZ0IsdUNBQ0Esd0JBM0RVLENBNEIxQixzQ0FxQ1EsWUFDQSxZQUNBLFdBQWEsQ0F2Q3JCLHlEQTBDWSw0QkFDQSxVQUFZLENBQ2YsOENBOEJMLGtCQUFvQixDQXpCeEIsa0VBSVEsaUJBQ0EsaUJBVUEsdUJBQVcsQ0FmbkIsOEZBUVksaUJBQW1CLENBUi9CLGtHQVlZLGdCQUFrQixDQVo5Qix3R0FtQlEsYUFDQSxlQUNBLG9CQUNBLFVBQVksQ0FDZixrRUFRRyxvQkFBc0IsQ0FDekIsY0FPRCxhQUFlLENBQ2xCLGlDQUdHLGNBQWdCLENBQ25CLGlDQUdHLGFBQWUsQ0FDbEIsaUNBR0csZ0JBQWtCLENBQ3JCLGlDQUdHLGFBQWUsQ0FDbEIseUJBS08sY0FDQSxrQkFBb0IsQ0FINUIsK0RBT1ksV0FDQSxVQUFZLENBUnhCLDRDQVlZLG9CQUFzQixDQUN6QixDQVFiLDBDQUVJLG9IQUtnQixRQUFVLENBQ2IsQ0FXakIsMENBRUksb0hBS2dCLFFBQVUsQ0FDYiw4S0FtQlQsYUFDQSxrQkFBb0IsQ0FDdkIsNEJBR0csZUFBaUIsQ0FEckIsdUNBSVEsa0JBQW9CLENBQ3ZCLHFJQVFELGVBQWlCLENBQ3BCLG1GQU1lLGVBQWlCLENBQ3BCLGFBTVQsZUFBaUIsQ0FDcEIscUNBSU8sZ0NBQUEsQUFDQSxtQkFBQSxrQkFDQSxvQkFBc0IsQ0FKOUIsZ0NBUVEsZ0NBQUEsQUFDQSxtQkFBQSxrQkFDQSxrQkFDQSxvQkFBc0IsQ0FYOUIsaURBY1ksV0FDQSxrQkFBb0IsQ0FmaEMsa0RBbUJZLFlBQ0EsaUJBQW1CLENBcEIvQixvREF5QlEsbUJBQXFCLENBQ3hCLHFCQUlELGlCQUFtQixDQUN0QixxQkFHRyxZQUFjLENBQ2pCLHdNQWVXLGNBQWdCLENBTDVCLGtGQVlnQixjQUFnQixDQUNuQixnQkFNVCxXQUFhLENBRGpCLG1DQUlRLDJCQUE2QixDQUNoQywyQkFLRyxVQUFZLENBRnBCLCtCQU1RLGdCQUNBLCtCQUFBLEFBQ0Esa0JBQUEsZ0JBQWtCLENBQ3JCLDJCQU1HLCtCQUFBLEFBQ0Esa0JBQUEsZ0JBQWtCLENBQ3JCLHlCQUtHLGNBQ0EsbUJBQ0EsbUJBQXFCLENBQ3hCLG9CQUlELGVBQWlCLENBQ3BCLHFCQUdHLGdCQUFrQixDQUNyQixzQkFHRyxpQkFBbUIsQ0FDdEIsaUVBS08sZUFBaUIsQ0FIekIscUNBT1EsZUFBaUIsQ0FQekIsc0NBV1EsZ0JBQWtCLENBWDFCLHVDQWVRLGlCQUFtQixDQUN0QixvQ0FLRyxNQUFRLENBQ1gsd0NBS0csa0JBQW9CLENBQ3ZCLGtEQU1HLGlCQUNBLGlCQUFtQixDQUgzQixrSEFPWSxnQkFBa0IsQ0FDckIsd0NBTUwsU0FBVyxDQUNkLHFEQU1XLG1CQUErQixDQUozQyxrRUFRWSxpQkFBNkIsQ0FSekMsK0NBWVkscUJBQ0Esa0JBQ0EsUUFBVSxDQWR0QixpREFrQlkscUJBQ0EsZ0NBQ0EsUUFBVSxDQXBCdEIsdUNBMEJRLG9CQUFzQixDQUN6QixvRUFTRyxxQkFDQSxpQkFBbUIsQ0FMM0IsOEVBUVksa0JBQ0Esb0JBQXNCLENBVGxDLDRGUHpZQSxrQkFDQSxXQUNBLFFBQ0EsV0FDQSxTQUNBLFlBQ0EseUJPZ1pnQixRQUFVLENBYjFCLHNGQW1CZ0Isa0JBQ0EsT1BqYWhCLHdCQUEwQixDTzZZMUIsd0dBMkJnQixXQUNBLE9BQ0Esd0JBMWNVLENBNmExQix5Q0FvQ1Esb0JBQXNCLENBcEM5QixzRUF5Q29CLFVBQVksQ0F6Q2hDLHFFQWlEb0IsU0FBVyxDQUNkLDZEQVViLGdEQUFnQixDQUVuQiw0Q0FHRyxrQkFBb0IsQ0FDdkIsMENBR0csaUJBQW1CLENBQ3RCLG1FQUlHLG9CQUFzQixDQUN6QixzR0FJRyxrQkFBb0IsQ0FDdkIsZ0NBS08saUJBQW1CLENBRjNCLG9DQUtZLGNBQWdCLENBTDVCLDBGQVdRLFlBQWMsQ0FYdEIsMERBZ0JRLHFCQUNBLGlCQUFtQixDQWpCM0Isb0VBb0JZLGtCQUNBLGVBQ0EsWUFBYyxDQXRCMUIsa0ZQNWRBLGtCQUNBLFdBQ0EsUUFDQSxXQUNBLFNBQ0EsWUFDQSx5Qk9nZmdCLFFBQVUsQ0ExQjFCLDRFQWdDZ0Isa0JBQ0EsT1BqZ0JoQix3QkFBMEIsQ09nZTFCLDhGQXdDZ0IsV0FDQSxPQUNBLHdCQTFpQlUsQ0FnZ0IxQixtQ0FpRFEsVUFBWSxDQWpEcEIsK0JBb0RRLFdBQWEsQ0FwRHJCLG9EQXlEWSxVQUFZLENBekR4QixnREErRFksU0FBVyxDQUNkLDhDQU9ELGlCQUFtQixDQUN0Qiw0QkFPRyx3QkFDQSxpQkFBbUIsQ0FKM0IsK0NBU1ksZ0JBQWtCLENBVDlCLCtDQWVZLGdCQUFrQixDQWY5QiwwQ0FxQlksV0FDQSxpQkFBbUIsQ0F0Qi9CLDZEQTJCZ0IsYUFBZSxDQTNCL0IsNkRBaUNnQixhQUFlLENBQ2xCLDBCQVFULGlCQUNBLG1CQUFxQixDQUN4QiwyQ0FNVyxnQkFDQSxnQkFBa0IsQ0FKOUIsdURBT2dCLFlBQWMsQ0FQOUIsOEJBYVEsZUFBaUIsQ0FDcEIsS0FLRCxZQUFjLENBQ2pCLFdBSUcsWUFBYyxDQURsQixrQkFJUSxTQUFXLENBSm5CLGlCQVFRLFFBQVUsQ0FDYixJQUlELFlBQWMsQ0FDakIsNkJBSUcsY0FDQSxhQUFlLENBQ2xCLFdBRUcsVUFBWSxDQUNmLFlBRUcsV0FBYSxDQUNoQixtQ0FLRyxXQUNBLFFBQVUsQ0FDYixrQkFHRyxXQUFhLENBQ2hCLG9DQUlHLFdBQ0EsdUJBQXlCLENBQzVCLDBEQUlHLG1CQUNBLGlCQUFtQixDQUN0Qiw2QkFHRyxtQkFDQSxnQkFBa0IsQ0FDckIsbURBS0csc0JBQXdCLENBQzNCLHNEQUtHLHNCQUF3QixDQUMzQixvQkFHRyxXQUNBLHFCQUNBLHNCQUF3QixDQUMzQixxQkFHRyxZQUNBLHFCQUNBLHNCQUF3QixDQUMzQixzQkFHRyxXQUNBLHFCQUNBLGlCQUNBLDBCQUFxQixDQUN4QixxQ0FJTyxzQkFBd0IsQ0FGaEMsc0NBTVEsc0JBQXdCLENBQzNCLGlDQU1ELGFBQWUsQ0FDbEIsaUNBR0csZ0JBQWtCLENBQ3JCLGlDQUdHLGdCQUFrQixDQUNyQixpQ0FHRyxlQUFpQixDQUNwQixpQ0FHRyxnQkFBa0IsQ0FDckIsb0JBR0csd0JBQTBCLENBQzdCLHlDQUlHLGdCQUFrQixDQUNyQiwwQ0FHRyxpQkFBbUIsQ0FDdEIseUNBR0csaUJBQW1CLENBQ3RCLENBTUwsMkNBQ0kscUJBQ0ksWUFBYyxDQUNqQix5QkFJTyxnQkFBa0IsQ0FGMUIseUNBTVEsbUJBQXFCLENBQ3hCLDRDQUlELGtCQUFvQixDQUN2QiwwQ0FHRyxpQkFBbUIsQ0FDdEIsMEJBSUcsY0FDQSxnQkFBa0IsQ0FDckIsS0FJRyxZQUFjLENBQ2pCLENBTUwsMkNBQ0kscUJBQ0ksWUFBYyxDQUNqQix1Q0FLVywrQkFDQSxhQUNBLGVBQWlCLENBTDdCLDhGQVVZLFNBQ0EsV0FBYSxDQUNoQix5QkFNRCxZQUFjLENBRnRCLGtFQU9RLGVBQ0EsVUFDQSxTQUNBLGtCQUNBLGFBQ0EsV0FDQSxZQUNBLGlCQUFtQixDQWQzQiw4RkFpQlksd0JBQWlCLENBakI3Qix3TUFzQlksa0JBQ0EsV0FDQSxVQUNBLFlBQ0EsVUFDQSxTQUNBLHlCQUEyQixDQTVCdkMsZ0dBZ0NZLFNBQ0Esa0JBQW9CLENBakNoQyxpQ0FzQ1Esa0JBQW9CLENBdEM1QixnRUEwQ2dCLFNBQ0EsZ0JBQWtCLENBM0NsQyxpRkE4Q29CLGNBQ0EsU0FBVyxDQS9DL0IsaURBdURZLFdBQ0Esb0JBQXNCLENBeERsQyx5Q0E2RFEsZ0JBQWtCLENBQ3JCLHlDQUlELGlCQUFtQixDQUN0QiwwQ0FHRyxpQkFBbUIsQ0FDdEIseUNBR0csaUJBQW1CLENBQ3RCLENBT0wsMkNBQ0kscUJBQ0ksWUFBYyxDQUNqQixDQU9MLDJDQUNJLDRCQUVRLFdBQWEsQ0FDaEIsQ0FBQSIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcblRoZW1lIE5hbWU6IFF1c3EgTGl0ZVxuVGhlbWUgVVJJOiBodHRwczovL2lzaHlvYm95LmNvbS90aGVtZXMvcXVzcS1wcm8vXG5BdXRob3I6IElzaFlvQm95LmNvbVxuQXV0aG9yIFVSSTogaHR0cDovL2lzaHlvYm95LmNvbS9cbkRlc2NyaXB0aW9uOiBRdXNxIExpdGUgaXMgYSB1bmlxdWUgY29sb3VyZnVsIHBvcnRmb2xpbyB0aGVtZSwgcGVyZmVjdGx5IHN1aXRhYmxlIGZvciBkZXNpZ25lcnMsIGZyZWVsYW5jZXJzICYgYWxsIGtpbmQgb2YgYXJ0aXN0IHdobyB3YW50IHRvIHNob3cgb2ZmIHRoZWlyIGNyZWF0aXZlIHdvcmsgd2l0aCBzdHlsZS4gSXQgY292ZXJzIGFsbCB0aGUgbmVjZXNzYXJ5IHBhZ2VzIHN1Y2ggYSBwb3J0Zm9saW8gd2Vic2l0ZSBtaWdodCBuZWVkLlxuVmVyc2lvbjogMS4wLjJcbkxpY2Vuc2U6IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYyIG9yIGxhdGVyXG5MaWNlbnNlIFVSSTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0yLjAuaHRtbFxuVGV4dCBEb21haW46IHF1c3EtbGl0ZVxuVGFnczogdHdvLWNvbHVtbnMsIHJpZ2h0LXNpZGViYXIsIGdyaWQtbGF5b3V0LCBjdXN0b20tY29sb3JzLCBjdXN0b20tbWVudSwgZWRpdG9yLXN0eWxlLCBmZWF0dXJlZC1pbWFnZXMsIGZ1bGwtd2lkdGgtdGVtcGxhdGUsIHN0aWNreS1wb3N0LCB0aGVtZS1vcHRpb25zLCB0aHJlYWRlZC1jb21tZW50cywgdHJhbnNsYXRpb24tcmVhZHksIGJsb2csIHBob3RvZ3JhcGh5LCBwb3J0Zm9saW9cblxuVGhpcyB0aGVtZSwgbGlrZSBXb3JkUHJlc3MsIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuXG5Vc2UgaXQgdG8gbWFrZSBzb21ldGhpbmcgY29vbCwgaGF2ZSBmdW4sIGFuZCBzaGFyZSB3aGF0IHlvdSd2ZSBsZWFybmVkIHdpdGggb3RoZXJzLlxuXG5RdXNxIExpdGUgaXMgYmFzZWQgb24gVW5kZXJzY29yZXMgaHR0cDovL3VuZGVyc2NvcmVzLm1lLywgKEMpIDIwMTItMjAxNiBBdXRvbWF0dGljLCBJbmMuXG5VbmRlcnNjb3JlcyBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHUEwgdjIgb3IgbGF0ZXIuXG5cbk5vcm1hbGl6aW5nIHN0eWxlcyBoYXZlIGJlZW4gaGVscGVkIGFsb25nIHRoYW5rcyB0byB0aGUgZmluZSB3b3JrIG9mXG5OaWNvbGFzIEdhbGxhZ2hlciBhbmQgSm9uYXRoYW4gTmVhbCBodHRwOi8vbmVjb2xhcy5naXRodWIuY29tL25vcm1hbGl6ZS5jc3MvXG4qL1xuXG4vKiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gVEFCTEUgT0YgQ09OVEVOVFM6XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE5vcm1hbGl6ZVxuIyBGbGV4Qm94IEdyaWQgU3lzdGVtXG4jIEJvaWxlcnBsYXRlIFN0eWxlc1xuXG4jIE1haW4gTGF5b3V0XG4jIFNob3J0Y29kZXNcbiMgRm9udHNcbiMgSWNvbnNcbiMgQ29sb3JzXG4jIFBvcnRmb2xpb1xuIyBCbG9nXG4jIExpZ2h0Ym94XG4jIEp1c3RpZmllZCBHYWxsZXJ5XG4jIE1lZGlhIFF1ZXJpZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTm9ybWFsaXplXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdub3JtYWxpemUuc2Nzcyc7XG5cblxuLyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBGbGV4Qm94IEdyaWQgU3lzdGVtXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBpbXBvcnQgJ2ZsZXhib3hncmlkLnNjc3MnO1xuXG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQm9pbGVycGxhdGUgU3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdib2lsZXJwbGF0ZS5zY3NzJztcblxuXG4vKiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE1haW4gTGF5b3V0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdsYXlvdXQuc2Nzcyc7XG5cblxuLyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBTaG9ydGNvZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdzaG9ydGNvZGVzLXN0eWxlcy9zaG9ydGNvZGVzJztcblxuXG4vKiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdmb250cy5zY3NzJztcblxuXG4vKiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdpc2gtaWNvbnMuc2Nzcyc7XG5cblxuLyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8vIE1PVkVEIFRPIGNvbG9ycy5waHAgdG8gc3VwcG9ydCBjdXN0b21pemVyIHZhbHVlc1xuXG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgUG9ydGZvbGlvXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdwb3J0Zm9saW8uc2Nzcyc7XG5cblxuLyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBCbG9nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdibG9nLnNjc3MnO1xuXG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQmxvZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnc29jaWFsLWljb25zLnNjc3MnO1xuXG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTWVkaWEgUXVlcmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAncmVzcG9uc2l2ZS5zY3NzJzsiLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAgIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICAgIGJvcmRlcjogMDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICAgIHBhZGRpbmc6IDA7XG59IiwiLmlzaC1jb250YWluZXItZmx1aWQsXG4uaXNoLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4uaXNoLWNvbnRhaW5lci1mbHVpZCB7XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG59XG5cbi5pc2gtcm93IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgLXdlYmtpdC1mbGV4OiAwIDEgYXV0bztcbiAgICAtbXMtZmxleDogMCAxIGF1dG87XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1yaWdodDogLTAuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbn1cblxuLmlzaC1yb3cuaXNoLXJldmVyc2Uge1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG5cbi5pc2gtY29sLmlzaC1yZXZlcnNlIHtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbn1cblxuLmlzaC1jb2wteHMsXG4uaXNoLWNvbC14cy0xLFxuLmlzaC1jb2wteHMtMixcbi5pc2gtY29sLXhzLTMsXG4uaXNoLWNvbC14cy00LFxuLmlzaC1jb2wteHMtNSxcbi5pc2gtY29sLXhzLTYsXG4uaXNoLWNvbC14cy03LFxuLmlzaC1jb2wteHMtOCxcbi5pc2gtY29sLXhzLTksXG4uaXNoLWNvbC14cy0xMCxcbi5pc2gtY29sLXhzLTExLFxuLmlzaC1jb2wteHMtMTIsXG4uaXNoLWNvbC14cy1vZmZzZXQtMCxcbi5pc2gtY29sLXhzLW9mZnNldC0xLFxuLmlzaC1jb2wteHMtb2Zmc2V0LTIsXG4uaXNoLWNvbC14cy1vZmZzZXQtMyxcbi5pc2gtY29sLXhzLW9mZnNldC00LFxuLmlzaC1jb2wteHMtb2Zmc2V0LTUsXG4uaXNoLWNvbC14cy1vZmZzZXQtNixcbi5pc2gtY29sLXhzLW9mZnNldC03LFxuLmlzaC1jb2wteHMtb2Zmc2V0LTgsXG4uaXNoLWNvbC14cy1vZmZzZXQtOSxcbi5pc2gtY29sLXhzLW9mZnNldC0xMCxcbi5pc2gtY29sLXhzLW9mZnNldC0xMSxcbi5pc2gtY29sLXhzLW9mZnNldC0xMiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xuICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87XG4gICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbn1cblxuLmlzaC1jb2wteHMge1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gICAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMDtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMDtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmlzaC1jb2wteHMtMSB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDguMzMzJTtcbiAgICBmbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMyU7XG59XG5cbi5pc2gtY29sLXhzLTIge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMTYuNjY2JTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTYuNjY2JTtcbiAgICBmbGV4LWJhc2lzOiAxNi42NjYlO1xuICAgIG1heC13aWR0aDogMTYuNjY2JTtcbn1cblxuLmlzaC1jb2wteHMtMyB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAyNSU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDI1JTtcbiAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG59XG5cbi5pc2gtY29sLXhzLTQge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMzMuMzMzJTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMzMuMzMzJTtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzJTtcbn1cblxuLmlzaC1jb2wteHMtNSB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA0MS42NjclO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA0MS42NjclO1xuICAgIGZsZXgtYmFzaXM6IDQxLjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjclO1xufVxuXG4uaXNoLWNvbC14cy02IHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDUwJTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNTAlO1xuICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbn1cblxuLmlzaC1jb2wteHMtNyB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1OC4zMzMlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA1OC4zMzMlO1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMlO1xufVxuXG4uaXNoLWNvbC14cy04IHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDY2LjY2NyU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDY2LjY2NyU7XG4gICAgZmxleC1iYXNpczogNjYuNjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NyU7XG59XG5cbi5pc2gtY29sLXhzLTkge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogNzUlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA3NSU7XG4gICAgZmxleC1iYXNpczogNzUlO1xuICAgIG1heC13aWR0aDogNzUlO1xufVxuXG4uaXNoLWNvbC14cy0xMCB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4My4zMzMlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA4My4zMzMlO1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMlO1xufVxuXG4uaXNoLWNvbC14cy0xMSB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA5MS42NjclO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA5MS42NjclO1xuICAgIGZsZXgtYmFzaXM6IDkxLjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjclO1xufVxuXG4uaXNoLWNvbC14cy0xMiB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxMDAlO1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5pc2gtY29sLXhzLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMlO1xufVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NiU7XG59XG5cbi5pc2gtY29sLXhzLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xufVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMyU7XG59XG5cbi5pc2gtY29sLXhzLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY3JTtcbn1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG59XG5cbi5pc2gtY29sLXhzLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzJTtcbn1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjclO1xufVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbn1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzJTtcbn1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY3JTtcbn1cblxuLmlzaC1zdGFydC14cyB7XG4gICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xufVxuXG4uaXNoLWNlbnRlci14cyB7XG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmlzaC1lbmQteHMge1xuICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgLW1zLWZsZXgtcGFjazogZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgdGV4dC1hbGlnbjogZW5kO1xufVxuXG4uaXNoLXRvcC14cyB7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4uaXNoLW1pZGRsZS14cyB7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uaXNoLWJvdHRvbS14cyB7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cblxuLmlzaC1hcm91bmQteHMge1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLmlzaC1iZXR3ZWVuLXhzIHtcbiAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uaXNoLWZpcnN0LXhzIHtcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xuICAgIC13ZWJraXQtb3JkZXI6IC0xO1xuICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcbiAgICBvcmRlcjogLTE7XG59XG5cbi5pc2gtbGFzdC14cyB7XG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcbiAgICAtd2Via2l0LW9yZGVyOiAxO1xuICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xuICAgIG9yZGVyOiAxO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuaXNoLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiA0OXJlbTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbSxcbiAgICAuaXNoLWNvbC1zbS0xLFxuICAgIC5pc2gtY29sLXNtLTIsXG4gICAgLmlzaC1jb2wtc20tMyxcbiAgICAuaXNoLWNvbC1zbS00LFxuICAgIC5pc2gtY29sLXNtLTUsXG4gICAgLmlzaC1jb2wtc20tNixcbiAgICAuaXNoLWNvbC1zbS03LFxuICAgIC5pc2gtY29sLXNtLTgsXG4gICAgLmlzaC1jb2wtc20tOSxcbiAgICAuaXNoLWNvbC1zbS0xMCxcbiAgICAuaXNoLWNvbC1zbS0xMSxcbiAgICAuaXNoLWNvbC1zbS0xMixcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMCxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMSxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMixcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMyxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNCxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNSxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNixcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNyxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtOCxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtOSxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMTAsXG4gICAgLmlzaC1jb2wtc20tb2Zmc2V0LTExLFxuICAgIC5pc2gtY29sLXNtLW9mZnNldC0xMiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87XG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20ge1xuICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xuICAgICAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTtcbiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAwO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMDtcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLTEge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDguMzMzJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDguMzMzJTtcbiAgICAgICAgZmxleC1iYXNpczogOC4zMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDguMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS0yIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxNi42NjYlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTYuNjY2JTtcbiAgICAgICAgZmxleC1iYXNpczogMTYuNjY2JTtcbiAgICAgICAgbWF4LXdpZHRoOiAxNi42NjYlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLTMge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDI1JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDI1JTtcbiAgICAgICAgZmxleC1iYXNpczogMjUlO1xuICAgICAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS00IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMzMuMzMzJTtcbiAgICAgICAgZmxleC1iYXNpczogMzMuMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLTUge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDQxLjY2NyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA0MS42NjclO1xuICAgICAgICBmbGV4LWJhc2lzOiA0MS42NjclO1xuICAgICAgICBtYXgtd2lkdGg6IDQxLjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tNiB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogNTAlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNTAlO1xuICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgICAgIG1heC13aWR0aDogNTAlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLTcge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDU4LjMzMyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA1OC4zMzMlO1xuICAgICAgICBmbGV4LWJhc2lzOiA1OC4zMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDU4LjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tOCB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogNjYuNjY3JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDY2LjY2NyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDY2LjY2NyU7XG4gICAgICAgIG1heC13aWR0aDogNjYuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS05IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA3NSU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA3NSU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDc1JTtcbiAgICAgICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tMTAge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDgzLjMzMyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA4My4zMzMlO1xuICAgICAgICBmbGV4LWJhc2lzOiA4My4zMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDgzLjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tMTEge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDkxLjY2NyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA5MS42NjclO1xuICAgICAgICBmbGV4LWJhc2lzOiA5MS42NjclO1xuICAgICAgICBtYXgtd2lkdGg6IDkxLjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tMTIge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxMDAlO1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tb2Zmc2V0LTAge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4LjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tb2Zmc2V0LTIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTYuNjY2JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tb2Zmc2V0LTQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMzMuMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MS42NjclO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLW9mZnNldC02IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLW9mZnNldC04IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDY2LjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tb2Zmc2V0LTkge1xuICAgICAgICBtYXJnaW4tbGVmdDogNzUlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLW9mZnNldC0xMCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLW9mZnNldC0xMSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA5MS42NjclO1xuICAgIH1cblxuICAgIC5pc2gtc3RhcnQtc20ge1xuICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cblxuICAgIC5pc2gtY2VudGVyLXNtIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmlzaC1lbmQtc20ge1xuICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB0ZXh0LWFsaWduOiBlbmQ7XG4gICAgfVxuXG4gICAgLmlzaC10b3Atc20ge1xuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLmlzaC1taWRkbGUtc20ge1xuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmlzaC1ib3R0b20tc20ge1xuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xuICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgIC5pc2gtYXJvdW5kLXNtIHtcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICAgICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgfVxuXG4gICAgLmlzaC1iZXR3ZWVuLXNtIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG5cbiAgICAuaXNoLWZpcnN0LXNtIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMDtcbiAgICAgICAgLXdlYmtpdC1vcmRlcjogLTE7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgIH1cblxuICAgIC5pc2gtbGFzdC1zbSB7XG4gICAgICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDI7XG4gICAgICAgIC13ZWJraXQtb3JkZXI6IDE7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xuICAgICAgICBvcmRlcjogMTtcbiAgICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5pc2gtY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDY1cmVtO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLFxuICAgIC5pc2gtY29sLW1kLTEsXG4gICAgLmlzaC1jb2wtbWQtMixcbiAgICAuaXNoLWNvbC1tZC0zLFxuICAgIC5pc2gtY29sLW1kLTQsXG4gICAgLmlzaC1jb2wtbWQtNSxcbiAgICAuaXNoLWNvbC1tZC02LFxuICAgIC5pc2gtY29sLW1kLTcsXG4gICAgLmlzaC1jb2wtbWQtOCxcbiAgICAuaXNoLWNvbC1tZC05LFxuICAgIC5pc2gtY29sLW1kLTEwLFxuICAgIC5pc2gtY29sLW1kLTExLFxuICAgIC5pc2gtY29sLW1kLTEyLFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0wLFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0xLFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0yLFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0zLFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC00LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC01LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC02LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC03LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC04LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC05LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0xMCxcbiAgICAuaXNoLWNvbC1tZC1vZmZzZXQtMTEsXG4gICAgLmlzaC1jb2wtbWQtb2Zmc2V0LTEyIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMDtcbiAgICAgICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bztcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gICAgICAgIC13ZWJraXQtZmxleC1ncm93OiAxO1xuICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDA7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwO1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtMSB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogOC4zMzMlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogOC4zMzMlO1xuICAgICAgICBmbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgICAgIG1heC13aWR0aDogOC4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLTIge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDE2LjY2NiU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxNi42NjYlO1xuICAgICAgICBmbGV4LWJhc2lzOiAxNi42NjYlO1xuICAgICAgICBtYXgtd2lkdGg6IDE2LjY2NiU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtMyB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMjUlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMjUlO1xuICAgICAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgICAgIG1heC13aWR0aDogMjUlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLTQge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDMzLjMzMyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAzMy4zMzMlO1xuICAgICAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtNSB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogNDEuNjY3JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDQxLjY2NyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDQxLjY2NyU7XG4gICAgICAgIG1heC13aWR0aDogNDEuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC02IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1MCU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA1MCU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtNyB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogNTguMzMzJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDU4LjMzMyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDU4LjMzMyU7XG4gICAgICAgIG1heC13aWR0aDogNTguMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC04IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA2Ni42NjclO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNjYuNjY3JTtcbiAgICAgICAgZmxleC1iYXNpczogNjYuNjY3JTtcbiAgICAgICAgbWF4LXdpZHRoOiA2Ni42NjclO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLTkge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDc1JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDc1JTtcbiAgICAgICAgZmxleC1iYXNpczogNzUlO1xuICAgICAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC0xMCB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogODMuMzMzJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDgzLjMzMyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDgzLjMzMyU7XG4gICAgICAgIG1heC13aWR0aDogODMuMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC0xMSB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogOTEuNjY3JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDkxLjY2NyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDkxLjY2NyU7XG4gICAgICAgIG1heC13aWR0aDogOTEuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC0xMiB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDEwMCU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC1vZmZzZXQtMCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0xIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDguMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC1vZmZzZXQtMiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNi42NjYlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0zIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC1vZmZzZXQtNCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLW9mZnNldC01IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtb2Zmc2V0LTYge1xuICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLW9mZnNldC03IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDU4LjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtb2Zmc2V0LTgge1xuICAgICAgICBtYXJnaW4tbGVmdDogNjYuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC1vZmZzZXQtOSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtb2Zmc2V0LTEwIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDgzLjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtb2Zmc2V0LTExIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDkxLjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1zdGFydC1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuXG4gICAgLmlzaC1jZW50ZXItbWQge1xuICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuaXNoLWVuZC1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIHRleHQtYWxpZ246IGVuZDtcbiAgICB9XG5cbiAgICAuaXNoLXRvcC1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcbiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICAuaXNoLW1pZGRsZS1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuaXNoLWJvdHRvbS1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XG4gICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLmlzaC1hcm91bmQtbWQge1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICB9XG5cbiAgICAuaXNoLWJldHdlZW4tbWQge1xuICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgIC5pc2gtZmlyc3QtbWQge1xuICAgICAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xuICAgICAgICAtd2Via2l0LW9yZGVyOiAtMTtcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xO1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgfVxuXG4gICAgLmlzaC1sYXN0LW1kIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcbiAgICAgICAgLXdlYmtpdC1vcmRlcjogMTtcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDE7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLmlzaC1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogNzZyZW07XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGcsXG4gICAgLmlzaC1jb2wtbGctMSxcbiAgICAuaXNoLWNvbC1sZy0yLFxuICAgIC5pc2gtY29sLWxnLTMsXG4gICAgLmlzaC1jb2wtbGctNCxcbiAgICAuaXNoLWNvbC1sZy01LFxuICAgIC5pc2gtY29sLWxnLTYsXG4gICAgLmlzaC1jb2wtbGctNyxcbiAgICAuaXNoLWNvbC1sZy04LFxuICAgIC5pc2gtY29sLWxnLTksXG4gICAgLmlzaC1jb2wtbGctMTAsXG4gICAgLmlzaC1jb2wtbGctMTEsXG4gICAgLmlzaC1jb2wtbGctMTIsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTAsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTEsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTIsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTMsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTQsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTUsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTYsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTcsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTgsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTksXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTEwLFxuICAgIC5pc2gtY29sLWxnLW9mZnNldC0xMSxcbiAgICAuaXNoLWNvbC1sZy1vZmZzZXQtMTIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xuICAgICAgICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7XG4gICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMDtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDA7XG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy0xIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA4LjMzMyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDguMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiA4LjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctMiB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMTYuNjY2JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDE2LjY2NiU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDE2LjY2NiU7XG4gICAgICAgIG1heC13aWR0aDogMTYuNjY2JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy0zIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAyNSU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAyNSU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDI1JTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctNCB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMzMuMzMzJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDMzLjMzMyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDMzLjMzMyU7XG4gICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy01IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA0MS42NjclO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNDEuNjY3JTtcbiAgICAgICAgZmxleC1iYXNpczogNDEuNjY3JTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MS42NjclO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLTYge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDUwJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDUwJTtcbiAgICAgICAgZmxleC1iYXNpczogNTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy03IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1OC4zMzMlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNTguMzMzJTtcbiAgICAgICAgZmxleC1iYXNpczogNTguMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1OC4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLTgge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDY2LjY2NyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA2Ni42NjclO1xuICAgICAgICBmbGV4LWJhc2lzOiA2Ni42NjclO1xuICAgICAgICBtYXgtd2lkdGg6IDY2LjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctOSB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogNzUlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNzUlO1xuICAgICAgICBmbGV4LWJhc2lzOiA3NSU7XG4gICAgICAgIG1heC13aWR0aDogNzUlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLTEwIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4My4zMzMlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogODMuMzMzJTtcbiAgICAgICAgZmxleC1iYXNpczogODMuMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiA4My4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLTExIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA5MS42NjclO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogOTEuNjY3JTtcbiAgICAgICAgZmxleC1iYXNpczogOTEuNjY3JTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MS42NjclO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLTEyIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTAwJTtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLW9mZnNldC0wIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOC4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLW9mZnNldC0yIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2LjY2NiU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTMge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjUlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLW9mZnNldC00IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMzLjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTUge1xuICAgICAgICBtYXJnaW4tbGVmdDogNDEuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy1vZmZzZXQtNiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTcge1xuICAgICAgICBtYXJnaW4tbGVmdDogNTguMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy1vZmZzZXQtOCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjclO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLW9mZnNldC05IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy1vZmZzZXQtMTAge1xuICAgICAgICBtYXJnaW4tbGVmdDogODMuMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy1vZmZzZXQtMTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOTEuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLXN0YXJ0LWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG5cbiAgICAuaXNoLWNlbnRlci1sZyB7XG4gICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5pc2gtZW5kLWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgdGV4dC1hbGlnbjogZW5kO1xuICAgIH1cblxuICAgIC5pc2gtdG9wLWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIC5pc2gtbWlkZGxlLWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC5pc2gtYm90dG9tLWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcbiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAuaXNoLWFyb3VuZC1sZyB7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIH1cblxuICAgIC5pc2gtYmV0d2Vlbi1sZyB7XG4gICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgLmlzaC1maXJzdC1sZyB7XG4gICAgICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDA7XG4gICAgICAgIC13ZWJraXQtb3JkZXI6IC0xO1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogLTE7XG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG5cbiAgICAuaXNoLWxhc3QtbGcge1xuICAgICAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyO1xuICAgICAgICAtd2Via2l0LW9yZGVyOiAxO1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogMTtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgfVxufSIsIi8qISBIVE1MNSBCb2lsZXJwbGF0ZSB2NS4yLjAgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vaHRtbDVib2lsZXJwbGF0ZS5jb20vICovXG5cbi8qXG4gKiBXaGF0IGZvbGxvd3MgaXMgdGhlIHJlc3VsdCBvZiBtdWNoIHJlc2VhcmNoIG9uIGNyb3NzLWJyb3dzZXIgc3R5bGluZy5cbiAqIENyZWRpdCBsZWZ0IGlubGluZSBhbmQgYmlnIHRoYW5rcyB0byBOaWNvbGFzIEdhbGxhZ2hlciwgSm9uYXRoYW4gTmVhbCxcbiAqIEtyb2MgQ2FtZW4sIGFuZCB0aGUgSDVCUCBkZXYgY29tbXVuaXR5IGFuZCB0ZWFtLlxuICovXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlIHN0eWxlczogb3BpbmlvbmF0ZWQgZGVmYXVsdHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmh0bWwge1xuICAgIGNvbG9yOiAjMjIyO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi8qXG4gKiBSZW1vdmUgdGV4dC1zaGFkb3cgaW4gc2VsZWN0aW9uIGhpZ2hsaWdodDpcbiAqIGh0dHBzOi8vdHdpdHRlci5jb20vbWlrZXRheWxyL3N0YXR1cy8xMjIyODgwNTMwMVxuICpcbiAqIFRoZXNlIHNlbGVjdGlvbiBydWxlIHNldHMgaGF2ZSB0byBiZSBzZXBhcmF0ZS5cbiAqIEN1c3RvbWl6ZSB0aGUgYmFja2dyb3VuZCBjb2xvciB0byBtYXRjaCB5b3VyIGRlc2lnbi5cbiAqL1xuXG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjYjNkNGZjO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2IzZDRmYztcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuLypcbiAqIEEgYmV0dGVyIGxvb2tpbmcgZGVmYXVsdCBob3Jpem9udGFsIHJ1bGVcbiAqL1xuXG5ociB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLypcbiAqIFJlbW92ZSB0aGUgZ2FwIGJldHdlZW4gYXVkaW8sIGNhbnZhcywgaWZyYW1lcyxcbiAqIGltYWdlcywgdmlkZW9zIGFuZCB0aGUgYm90dG9tIG9mIHRoZWlyIGNvbnRhaW5lcnM6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9pc3N1ZXMvNDQwXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5pZnJhbWUsXG5pbWcsXG5zdmcsXG52aWRlbyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLypcbiAqIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IHN0eWxlcy5cbiAqL1xuXG5maWVsZHNldCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKlxuICogQWxsb3cgb25seSB2ZXJ0aWNhbCByZXNpemluZyBvZiB0ZXh0YXJlYXMuXG4gKi9cblxudGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCcm93c2VyIFVwZ3JhZGUgUHJvbXB0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYnJvd3NlcnVwZ3JhZGUge1xuICAgIG1hcmdpbjogMC4yZW0gMDtcbiAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIHBhZGRpbmc6IDAuMmVtIDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBBdXRob3IncyBjdXN0b20gc3R5bGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSGVscGVyIGNsYXNzZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzOlxuICovXG5cbi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLypcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqL1xuXG4udmlzdWFsbHloaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbi8qXG4gKiBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnRcbiAqIHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOlxuICogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzg5NzYzOFxuICovXG5cbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6YWN0aXZlLFxuLnZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTpmb2N1cyB7XG4gICAgY2xpcDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gKi9cblxuLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKlxuICogQ2xlYXJmaXg6IGNvbnRhaW4gZmxvYXRzXG4gKlxuICogRm9yIG1vZGVybiBicm93c2Vyc1xuICogMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbiAqICAgIGBjb250ZW50ZWRpdGFibGVgIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbiAqICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuICogICAgdGhhdCByZWNlaXZlIHRoZSBgY2xlYXJmaXhgIGNsYXNzLlxuICogMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbiAqICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbiAqL1xuXG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLyogMSAqL1xuICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAyICovXG59XG5cbi5jbGVhcmZpeDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFWEFNUExFIE1lZGlhIFF1ZXJpZXMgZm9yIFJlc3BvbnNpdmUgRGVzaWduLlxuICAgVGhlc2UgZXhhbXBsZXMgb3ZlcnJpZGUgdGhlIHByaW1hcnkgKCdtb2JpbGUgZmlyc3QnKSBzdHlsZXMuXG4gICBNb2RpZnkgYXMgY29udGVudCByZXF1aXJlcy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzVlbSkge1xuICAgIC8qIFN0eWxlIGFkanVzdG1lbnRzIGZvciB2aWV3cG9ydHMgdGhhdCBtZWV0IHRoZSBjb25kaXRpb24gKi9cbn1cblxuQG1lZGlhIHByaW50LFxuKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4yNSksXG4obWluLXJlc29sdXRpb246IDEuMjVkcHB4KSxcbihtaW4tcmVzb2x1dGlvbjogMTIwZHBpKSB7XG4gICAgLyogU3R5bGUgYWRqdXN0bWVudHMgZm9yIGhpZ2ggcmVzb2x1dGlvbiBkZXZpY2VzICovXG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcmludCBzdHlsZXMuXG4gICBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbiAgIGh0dHA6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQG1lZGlhIHByaW50IHtcbiAgICAqLFxuICAgICo6YmVmb3JlLFxuICAgICo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgICAgICAvKiBCbGFjayBwcmludHMgZmFzdGVyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5zYW5iZWlqaS5jb20vYXJjaGl2ZXMvOTUzICovXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIGFbaHJlZl06YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgICB9XG5cbiAgICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIERvbid0IHNob3cgbGlua3MgdGhhdCBhcmUgZnJhZ21lbnQgaWRlbnRpZmllcnMsXG4gICAgICogb3IgdXNlIHRoZSBgamF2YXNjcmlwdDpgIHBzZXVkbyBwcm90b2NvbFxuICAgICAqL1xuXG4gICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFByaW50aW5nIFRhYmxlczpcbiAgICAgKiBodHRwOi8vY3NzLWRpc2N1c3MuaW5jdXRpby5jb20vd2lraS9QcmludGluZ19UYWJsZXNcbiAgICAgKi9cblxuICAgIHRoZWFkIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICAgIH1cblxuICAgIHRyLFxuICAgIGltZyB7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgb3JwaGFuczogMztcbiAgICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gICAgfVxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVmFyc1xuIyBNaXhpbnNcbiMgRXh0ZW5kXG4jIEFuaW1hdGlvbnNcbiMgR2VuZXJhbFxuIyBCb2R5XG4jIyBDb250ZW50XG4jIyBDb250YWN0XG4jIyMgUGFnaW5hdGlvbiAmIEluZmluaXRlIFNjcm9sbFxuIyMjIFNpbmdsZSAtIEN1c3RvbSBNZXRhXG4jIyMgU2luZ2xlIC0gTGluayBwYWdlc1xuIyMjIFNpbmdsZSAtIFRhZ3NcbiMjIyBDb2RlICYgUHJlXG4jIyBIZWFkZXJcbiMjIE5hdmlnYXRpb25cbiMjIEZvb3RlclxuIyMgU2VhcmNoIFJlc3VsdHNcbiMjIENvbW1lbnRzXG4jIFRlYW1cbiMgSmV0cGFjayBHYWxsZXJpZXNcbiMgV29yZFByZXNzIEdhbGxlcmllc1xuIyBXaWRnZXRzXG4jIFNpZGViYXJcbiMgTWFwXG4jIFBsdWdpbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBWYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4kQ09OVEVOVF9XSURUSDogOTk2cHg7IC8qIE1haW4gY29udGVudCB3aWR0aCAqL1xuJFRIRU1FX0FOR0xFOiAtMTBkZWc7XG4kVkVSVElDQUxfQU5HTEU6IC05MGRlZztcbiRTVElDS1lfQk9YX1NJWkU6IDgwcHg7XG4kTkFWX1RSQU5TSVRJT046IGFsbCAwLjVzIGVhc2U7XG4kRk9STV9FTEVNRU5UX0hFSUdIVDogNDRweDtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBNaXhpbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtaXhpbiB0aGVtZS1yb3RhdGUoICRhbmdsZSApIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgkYW5nbGUpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1vbiB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbn1cblxuQG1peGluIGlzaC11bmRlcmxpbmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiAnJztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm90dG9tOiAtMnB4O1xuICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbn1cblxuQG1peGluIGlzaC1oYWxmLW9wYWNpdHkge1xuICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgXCI7IC8qIDEgKi9cbiAgICAgICAgZGlzcGxheTogdGFibGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG59XG5cbkBtaXhpbiBzY3JvbGxiYXJzKCRzaXplLCAkZm9yZWdyb3VuZC1jb2xvciwgJGJhY2tncm91bmQtY29sb3I6IG1peCgkZm9yZWdyb3VuZC1jb2xvciwgd2hpdGUsICA1MCUpKSB7XG4gICAgLy8gRm9yIEdvb2dsZSBDaHJvbWVcbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6ICRzaXplICogMztcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZSAqIDM7XG4gICAgfVxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNpemUgKiAxLjQ7XG4gICAgICAgIGJvcmRlcjogJHNpemUgc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICB9XG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlIHtcbiAgICAgICAgLyptYXJnaW4tYm90dG9tOiAxMHB4OyovXG4gICAgfVxuICAgIC8vIEZvciBJbnRlcm5ldCBFeHBsb3JlclxuICAgIGJvZHkge1xuICAgICAgICBzY3JvbGxiYXItZmFjZS1jb2xvcjogJGZvcmVncm91bmQtY29sb3I7XG4gICAgICAgIHNjcm9sbGJhci10cmFjay1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxufVxuXG5AbWl4aW4gYmx1ci1wYWdlKCR2YWwpIHtcbiAgICAvKiBBbnkgYnJvd3NlciB3aGljaCBzdXBwb3J0cyBDU1MzICovXG4gICAgLy9maWx0ZXI6IGJsdXIoJHZhbCk7XG4gICAgLyogRmlyZWZveCAqL1xuICAgIC8vZmlsdGVyOiB1cmwoXCJibHVyLnN2ZyNnYXVzc2lhbl9ibHVyXCIpO1xuICAgIC8qIFdlYmtpdCAqL1xuICAgIC13ZWJraXQtZmlsdGVyOiBibHVyKCR2YWwpO1xuICAgIC8qIE9wZXJhICovXG4gICAgLW8tZmlsdGVyOiBibHVyKCR2YWwpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEV4dGVuZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC12ZXJ0aWNhbC1taWRkbGUge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBBbmltYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGUgYW5pbWF0aW9uIGNvZGUgKi9cbkBrZXlmcmFtZXMgaXNoLWJhY2stdG8tdG9wIHtcbiAgICAwJSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIH1cbiAgICAxMCUge1xuICAgICAgICBtYXJnaW4tbGVmdDogNjBweDtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBHZW5lcmFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4qIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKiBodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9hY2Nlc3NpYmlsaXR5LzIwMTUvMDIvMDkvaGlkaW5nLXRleHQtZm9yLXNjcmVlbi1yZWFkZXJzLXdpdGgtd29yZHByZXNzLWNvcmUvICovXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgd2lkdGg6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBCb2R5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5ib2R5IHtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5IMSwgSDIsIEgzLCBINCwgSDUsIEg2LFxucCxcbnVsLFxub2wsXG5kbCxcbnRhYmxlLFxuaHIsXG5wcmUsXG5ibG9ja3F1b3RlLFxuYWRkcmVzcyxcbi5wb3N0LXBhc3N3b3JkLWZvcm0sXG4uaXNoLXRoZW1lLWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLyogSW5jcmVhc2UgYnkgMTBweCBkdWUgdG8gdGhlIHNoYWRvdyAqL1xudWwgdWwsXG5vbCBvbCxcbmRsIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG50YWJsZSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweDtcbiAgICB9XG59XG5cbnByZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuaHIge1xuICAgIG9wYWNpdHk6IDAuMjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgaGVpZ2h0OiAxcHg7XG59XG5cbmltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuZm9ybSB7XG4gICAgaW5wdXQsXG4gICAgYnV0dG9uLFxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAmLmludmFsaWQge1xuICAgICAgICAgICAgLypib3JkZXItdG9wOiBzb2xpZCAxcHg7Ki9cbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIGhlaWdodDogJEZPUk1fRUxFTUVOVF9IRUlHSFQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cbnNlbGVjdCB7XG4gICAgaGVpZ2h0OiAkRk9STV9FTEVNRU5UX0hFSUdIVDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHBhZGRpbmc6IDEwcHggNTRweCAxMHB4IDEwcHg7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNTAlLCB3aGl0ZSA1MCUpLFxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHdoaXRlIDUwJSwgdHJhbnNwYXJlbnQgNTAlKSxcbiAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMjBweCkgMjFweCxcbiAgICBjYWxjKDEwMCUgLSAxM3B4KSAyMXB4LFxuICAgIDEwMCUgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDdweCA3cHgsXG4gICAgN3B4IDdweCxcbiAgICA0NHB4IDQ0cHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuc2VsZWN0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHdoaXRlIDUwJSwgdHJhbnNwYXJlbnQgNTAlKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB0cmFuc3BhcmVudCA1MCUsIHdoaXRlIDUwJSksXG4gICAgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKHdoaXRlLCAwLjIpLCByZ2JhKHdoaXRlLCAwLjIpKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxM3B4KSAxOHB4LFxuICAgIGNhbGMoMTAwJSAtIDIwcHgpIDE4cHgsXG4gICAgMTAwJSAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogN3B4IDdweCxcbiAgICA3cHggN3B4LFxuICAgIDQ0cHggNDRweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG5tYXJrIHtcbiAgICBwYWRkaW5nOiAycHggNnB4O1xufVxuXG5hIHtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgdHJhbnNpdGlvbjogJE5BVl9UUkFOU0lUSU9OO1xufVxuXG5maWd1cmUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuZmlndXJlLmFsaWduY2VudGVyLFxuZmlndXJlLmFsaWdubm9uZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4jcGFnZSB7XG4gICAgaXNvbGF0aW9uOiBpc29sYXRlOyAvLyBGaXggYSBwcm9ibGVtIHdoZW4gYWRtaW5iYXIgZGlzYXBwZWFycyBvbiBUZWFtIHBhZ2Vcbn1cblxuLmlzaC1ibHVycmVkIHtcbiAgICAjcGFnZSB7XG4gICAgICAgIEBpbmNsdWRlIGJsdXItcGFnZSgzMHB4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDUwMG1zOyAvLyBBbHNvIGNoYW5nZSBpc2hQYWdlRWZmZWN0QW5pbVNwZWVkIGluIG1haW4uanNcbiAgICB9XG5cbiAgICAmLmlzaC1uby1ibHVyIHtcbiAgICAgICAgI3BhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmx1ci1wYWdlKDBweCk7XG4gICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogbm9uZTtcbiAgICAgICAgICAgIC1vLWZpbHRlcjogbm9uZTtcbiAgICAgICAgICAgIGZpbHRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtYmx1cnJlZC1vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgfVxufVxuXG4uaXNoLWNvbnRhaW5lci1mbHVpZCxcbi5pc2gtY29udGFpbmVyLWlubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5pc2gtY29udGFpbmVyLWZsdWlkIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xufVxuXG5oZWFkZXIgLmlzaC1jb250YWluZXItZmx1aWQge1xuICAgIHotaW5kZXg6IGF1dG87XG59XG5cbi5pc2gtY29udGFpbmVyLWlubmVyIHtcbiAgICBtYXgtd2lkdGg6ICRDT05URU5UX1dJRFRIO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbn1cblxuLmlzaC1tYWluLWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbiAgICAucG9zdC1tZXRhLWtleSxcbiAgICAuaXNoLWhpZ2hsaWdodCB7XG4gICAgICAgIG1peC1ibGVuZC1tb2RlOiBzY3JlZW47XG4gICAgfVxuXG4gICAgLmlzaC1yb3c6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qKltjbGFzc149XCJpc2gtY29sLVwiXSwqL1xuICAgICAgICAqW2NsYXNzKj1cImlzaC1jb2wtXCJdOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZWxlY3QgYWxsIGxpbmtzIHdpdGhvdXQgY2xhc3MgYXR0cmlidXRlIG9yIHdpdGggZW1wdHkgY2xhc3MgYXR0cmlidXRlXG4gICAgcDpub3QoW2NsYXNzXSkgPiBhOm5vdChbY2xhc3NdKTpob3ZlcixcbiAgICBwOm5vdChbY2xhc3NdKSA+IGFbY2xhc3M9XCJcIl06aG92ZXIge1xuICAgICAgICBtaXgtYmxlbmQtbW9kZTogc2NyZWVuO1xuICAgIH1cbn1cblxuLmlzaC1yb3csXG4uaXNoLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaXNoLWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAkQ09OVEVOVF9XSURUSDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAxNnB4O1xufVxuXG4uaXNoLWRlY29yLWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDExMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmlzaC1kZWNvci1ib3R0b20sXG4gICAgLmlzaC1kZWNvci10b3Age1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxNDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmlzaC1kZWNvci10b3Age1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAuaXNoLWRlY29yLWJvdHRvbSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICB9XG59XG5cbi5pc2gtdmVydGljYWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgkVkVSVElDQUxfQU5HTEUpO1xufVxuXG4uaXNoLXRoZW1lLXJvdGF0ZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoJFRIRU1FX0FOR0xFKTtcblxuICAgICYuaXNoLWRlY29yLWJvdHRvbSB7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICB9XG5cbiAgICAmLmlzaC1kZWNvci10b3Age1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gICAgfVxufVxuXG4jY29udGVudCAuaXNoLXNvY2lhbC1ib3gge1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG59XG5cbi5pc2gtdW5kZXJsaW5lIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtMnB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogJE5BVl9UUkFOU0lUSU9OO1xuICAgIH1cblxuICAgICYuaXNoLXVuZGVybGluZS12aXNpYmxlOmJlZm9yZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgICY6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgJi5pc2gtdW5kZXJsaW5lLXZpc2libGU6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICB9XG59XG5cbi5pc2gtaW1nLXNjYWxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgIH1cblxuICAgICY6aG92ZXIgaW1nIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KSB0cmFuc2xhdGVaKDApO1xuICAgIH1cbn1cblxuXG4uaXNoLWltZy1hbGlnbi1sZWZ0LFxuaW1nLmFsaWdubGVmdCxcbmZpZ3VyZS5hbGlnbmxlZnQge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmlzaC1pbWctYWxpZ24tcmlnaHQsXG5pbWcuYWxpZ25yaWdodCxcbmZpZ3VyZS5hbGlnbnJpZ2h0IHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5pc2gtaW1nLWFsaWduLWxlZnQsXG4uaXNoLWltZy1hbGlnbi1yaWdodFxue1xuICAgIC5hbGlnbmxlZnQsXG4gICAgLmFsaWducmlnaHQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4uaXNoLWltZy1zaGFkb3cge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8vIEFkZGVkIGZvciBjYXNlcyB3aGVuIGltYWdlIGVudGVyZWQgdG8gY29udGVudCB3aXRoIC5pc2gtbm8tc2NhbGUgY2xhc3MgYW5kIEltYWdlIENhcHRpb25cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vIEFkZGVkIGZvciBjYXNlcyB3aGVuIGltYWdlIGVudGVyZWQgdG8gY29udGVudCB3aXRoIC5pc2gtbm8tc2NhbGVcbiAgICBib3gtc2hhZG93OiAxMHB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cbiAgICBAYXQtcm9vdCAud3AtY2FwdGlvbiA+IGltZyN7Jn0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxufVxuXG4uaXNoLWltZy1hbGlnbi1sZWZ0LFxuLmlzaC1pbWctYWxpZ24tcmlnaHQge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICBmaWd1cmUgJiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICAgIH1cbn1cblxuLmlzaC1yZXNwLWNlbnRlciB7XG4gICAgLmlzaC1tYWluLWNvbnRlbnQsXG4gICAgLmlzaC10eHQtYWxpZ24tbGVmdCxcbiAgICAuaXNoLXR4dC1hbGlnbi1yaWdodCxcbiAgICAuaXNoLXR4dC1hbGlnbi1jZW50ZXIsXG4gICAgLmlzaC1zaWRlYmFyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5pc2gtaW1nLWFsaWduLWxlZnQsXG4gICAgLmlzaC1pbWctYWxpZ24tcmlnaHQge1xuICAgICAgICBtYXJnaW46IDAgYXV0byA0MHB4O1xuICAgIH1cblxuICAgIC5pc2gtbWFpbi1jb250ZW50IHtcbiAgICAgICAgdWwsIG9sIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcmUge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbn1cblxuLmlzaC10eHQtYWxpZ24tbGVmdCxcbi5pc2gtdHh0LWFsaWduLXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uaXNoLXR4dC1hbGlnbi1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmlzaC1hbGlnbi1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLmlzaC1hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ucmVxdWlyZWQtZXJyb3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnVGhpcyBmaWVsZCBtdXN0IGJlIGZpbGxlZCBpbiEnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cbn1cblxuLy8gTG9nbyAmIFRleHRcbi5zaXRlLXRpdGxlLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbn1cblxuLmlzaC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuXG4gICAgc3BhbiB7XG4gICAgICAgIG1hcmdpbjogMCA2cHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBDb250YWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaXNoLWNvbnRhY3QtaW5mby1jb250YWluZXIge1xuXG4gICAgLmlzaC1jb250YWN0LWluZm8tYm94IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAsXG4gICAgICAgIC5zaGFyZWRhZGR5IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLmlzaC1jb250YWN0LWZvcm0tYm94LFxuLmlzaC1jb250YWN0LWZvcm0tYm94IC5jb250YWN0LWZvcm0ge1xuICAgIGxlZ2VuZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZXF1aXJlZC1lcnJvciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgaW5wdXQsXG4gICAgcCBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgdGV4dGFyZWEge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiAycHg7XG5cbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGhlaWdodDogMTUwcHg7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbiAgICBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcblxuICAgICAgICBpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGFjdC1mb3JtLXN1Ym1pc3Npb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLmlzaC1jb250YWN0LWZvcm0tYm94IGRpdiBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLmlzaC1jb250YWN0LWZvcm0tYm94IGgzIHtcbiAgICBtaXgtYmxlbmQtbW9kZTogdW5zZXQ7XG5cbiAgICAuaXNoLWhpZ2hsaWdodCB7XG4gICAgICAgIG1peC1ibGVuZC1tb2RlOiB1bnNldDtcbiAgICB9XG59XG5cbi5pc2gtc29jaWFsLWJveC1jb250YWN0IHtcbiAgICAubWVudS1zb2NpYWwtaWNvbnMtY29udGFpbmVyLFxuICAgIC5tZW51LXNvY2lhbC1saW5rcy1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgfVxufVxuXG4ud3BjZjctZm9ybSBwIC5hamF4LWxvYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuZGl2LndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbnNwYW4ud3BjZjctbm90LXZhbGlkLXRpcCB7XG4gICAgbWFyZ2luLXRvcDogLTE2cHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIEhlYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1uby1jb250ZW50IHtcbiAgICBoZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtNDAwcHg7XG4gICAgfVxufVxuXG4uaXNoLW1lbnUtY29udGFpbmVyIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmlzaC1zdGlja3ktb24ge1xuICAgICYuc2l0ZS1oZWFkZXIge1xuICAgICAgICAuaXNoLWhlYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWxvZ28tY29udGFpbmVyLFxuICAgICAgICAuaXNoLW1lbnUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgIC5pc2gtdGhlbWUtdGFnbGluZSxcbiAgICAgICAgICAgIC5pc2gtbWVudS1kZXNjIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWxvZ28tY29udGFpbmVyIHtcbiAgICAgICAgICAgIC5pc2gtdGhlbWUtdGFnbGluZS5pc2gtbm8tbG9nbyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAgICAgICAgIC5pc2gtaWNvbi1uYXYgaSB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5pc2gtbG9nby1jb250YWluZXIgYSxcbiAgICAuaXNoLW1lbnUtY29udGFpbmVyIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgLmlzaC1sb2dvLWJveCxcbiAgICAgICAgLmlzaC1pY29uLW5hdiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtbG9nby1ib3ggc3BhbixcbiAgICAgICAgLmlzaC1pY29uLW5hdiB7XG4gICAgICAgICAgICB3aWR0aDogJFNUSUNLWV9CT1hfU0laRTtcbiAgICAgICAgICAgIGhlaWdodDogJFNUSUNLWV9CT1hfU0laRTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWxvZ28tYm94IHtcbiAgICAgICAgICAgIC5pc2gtbG9nby1taWRkbGUge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmlzaC12ZXJ0aWNhbC1taWRkbGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pc2gtbG9nbyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAkU1RJQ0tZX0JPWF9TSVpFO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6ICRTVElDS1lfQk9YX1NJWkU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWljb24tbmF2IHtcbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmlzaC12ZXJ0aWNhbC1taWRkbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zaXRlLWhlYWRlciB7XG4gICAgLmlzaC1yb3cge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmlzaC1oZWFkZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDk5O1xuICAgIH1cblxuICAgIC5zaXRlLWJyYW5kaW5nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtbG9nby1jb250YWluZXIsXG4gICAgLmlzaC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgIEBleHRlbmQgLmlzaC12ZXJ0aWNhbC1taWRkbGU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIC5pc2gtdmVydGljYWwge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLW1lbnUtZGVzYyxcbiAgICAgICAgLmlzaC10aGVtZS10YWdsaW5lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDUwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzaC1sb2dvLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiA3MCU7XG5cbiAgICAgICAgLmlzaC1sb2dvIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtbG9nbyxcbiAgICAgICAgLmlzaC10aGVtZS10YWdsaW5lIHtcblxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC10aGVtZS10YWdsaW5lLmlzaC1uby1sb2dvIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAuc2l0ZS10aXRsZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCA1MHB4IDAgMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlzaC10YWdsaW5lLXRleHQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtbWVudS1jb250YWluZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAuaXNoLWljb24tbmF2IHtcbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaXRlLXRpdGxlLCBoMSB7XG4gICAgICAgIG1hcmdpbjogNTBweCAwIDIwcHg7XG4gICAgfVxuXG4gICAgLnNpdGUtc3VidGl0bGUsIGgyIHtcbiAgICAgICAgbWFyZ2luOiA0MHB4IDA7XG4gICAgfVxuXG4gICAgLnNpdGUtdGl0bGUsIGgxLFxuICAgIC5zaXRlLXN1YnRpdGxlLCBoMiB7XG4gICAgICAgIC1tcy13b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICAuaXNoLXBvcnRmb2xpby1uYXZpZ2F0aW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICB9XG5cbiAgICAuc2l0ZS1kZXNjLCAuc2l0ZS1icmFuZGluZyBoMywgLnNpdGUtYnJhbmRpbmcgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmlzaC1iZy1hbmltYXRlICYgLmlzaC1jb250YWluZXItZmx1aWQsXG4gICAgLmlzaC1iZy1hbmltYXRlICYgLmlzaC1kZWNvci1jb250YWluZXIgPiBkaXYge1xuICAgICAgICBhbmltYXRpb246IGFuaW1hdGVCZ0NvbG9yIDMwcyBlYXNlLWluIGluZmluaXRlIGFsdGVybmF0ZTtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIE5hdmlnYXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pc2gtbmF2aWdhdGlvbiB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBAaW5jbHVkZSBzY3JvbGxiYXJzKDRweCwgI2E4YThhOCwgbm9uZSk7XG5cbiAgICAmLmlzaC1uYXYtb24ge1xuICAgICAgICB0cmFuc2l0aW9uOiAkTkFWX1RSQU5TSVRJT047XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbn1cblxuLmlzaC1uYXZpZ2F0aW9uIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogLTEwMCU7XG4gICAgei1pbmRleDogOTk7XG4gICAgdHJhbnNpdGlvbjogJE5BVl9UUkFOU0lUSU9OO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMjAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5pc2gtbmF2LWJnIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiAxNTAlO1xuICAgIH1cblxuICAgIC5pc2gtbmF2LWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB6LWluZGV4OiA5OTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmlzaC1uYXYtY29udGFpbmVyLWJnIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgICAgIC5pc2gtbmF2LWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMTAlO1xuXG4gICAgICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWFpbi1uYXZpZ2F0aW9uIHtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi41O1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5pc2gtYWN0aXZlLWl0ZW0gPiBhID4gc3BhbjpiZWZvcmUsXG4gICAgICAgICAgICAmLmN1cnJlbnQtbWVudS1hbmNlc3RvciA+IGEgPiBzcGFuOmJlZm9yZSxcbiAgICAgICAgICAgICYuY3VycmVudF9wYWdlX2FuY2VzdG9yID4gYSA+IHNwYW46YmVmb3JlLFxuICAgICAgICAgICAgJi5jdXJyZW50LW1lbnUtaXRlbSA+IGEgPiBzcGFuOmJlZm9yZSxcbiAgICAgICAgICAgICYuY3VycmVudF9wYWdlX2l0ZW0gPiBhID4gc3BhbjpiZWZvcmUsXG4gICAgICAgICAgICAmLmlzaC1ob3ZlciA+IGEgPiBzcGFuOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAkTkFWX1RSQU5TSVRJT047XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubWVudS1pdGVtLWhhcy1jaGlsZHJlbixcbiAgICAgICAgICAgICYucGFnZV9pdGVtX2hhc19jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgPiBhOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcuJztcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW46YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBpc2gtdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogOHB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtc2VhcmNoLWZvcm0ge1xuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLXNvY2lhbC1ib3gge1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgIC5tZW51LXNvY2lhbC1jb250YWluZXIsXG4gICAgICAgIC5tZW51LXNvY2lhbC1pY29ucy1jb250YWluZXIsXG4gICAgICAgIC5tZW51LXNvY2lhbC1saW5rcy1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS42NjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIEZvb3RlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1mb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAuaXNoLXNvY2lhbC1ib3gge1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLWxlZ2FscyB7XG5cbiAgICB9XG5cbiAgICAuaXNoLXNlcGFyYXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICB9XG59XG5cbi5pc2gtYmFjay10by10b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGEge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgkVkVSVElDQUxfQU5HTEUpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgYm90dG9tOiAtMjRweDtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGlzaC11bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaXNoLWhvdmVyIHtcbiAgICAgICAgICAgIHNwYW46YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAkTkFWX1RSQU5TSVRJT047XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICAgICAgICAgICAgICAgIC8vQGluY2x1ZGUgdHJhbnNpdGlvbi1vbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAvL0BpbmNsdWRlIHRyYW5zaXRpb24tb247XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCA1MDBtcztcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIFNlYXJjaCBSZXN1bHRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaXNoLXJlc3VsdHMge1xuXG4gICAgLmlzaC1yZXN1bHQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMTZweDtcbiAgICAgICAgbWluLWhlaWdodDogODZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcblxuICAgICAgICBwLFxuICAgICAgICAuaXNoLXRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1yZXN1bHQtbnVtYmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA4NnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA4NnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDg2cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrb2xpdmVncmVlbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDEwcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5vLXJlc3VsdHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5pc2gtcmVzcC1jZW50ZXIgLmlzaC1yZXN1bHQ6YmVmb3JlIHtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDQzcHgpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBDb21tZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI2NvbW1lbnRzIC5jb21tZW50LWNvbnRlbnQgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbn1cblxuLmNvbW1lbnQtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAuY2hpbGRyZW4ge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbn1cblxuLmNvbW1lbnQtbWV0YSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLmNvbW1lbnQtYXV0aG9yLCAuY29tbWVudC1tZXRhZGF0YSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmNvbW1lbnQtYXV0aG9yIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIH1cbn1cblxuLmJ5cG9zdGF1dGhvciAuY29tbWVudC1hdXRob3Ige1xuICAgIHRleHQtZGVjb3JhdGlvbjogaW5pdGlhbDtcbn1cblxuLmNvbW1lbnQtbWV0YWRhdGEge1xuXG4gICAgYSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1vbjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gKiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG5cbi5jb21tZW50LW5hdmlnYXRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgIGEsIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1vbjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzcGFuLmN1cnJlbnQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICB9XG5cbn1cblxuLmNvbW1lbnQtcmVzcG9uZCB7XG4gICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGlucHV0LCB0ZXh0YXJlYSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDIycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLW9uO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIGZvcm0gcFtjbGFzcyo9XCJjb21tZW50LWZvcm0tXCJdIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG59XG5cbi5pc2gtY2FuY2VsLXJlcGx5IHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tb247XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi8vIEpldFBhY2sgQ29tbWVudHMgTGlrZSBmZWF0dXJlXG4uY29tbWVudC1saWtlcy13aWRnZXQge1xuICAgIG1hcmdpbi10b3A6IC0zNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jb21tZW50LXN1YnNjcmlwdGlvbi1mb3JtIGlucHV0IHtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uc2l0ZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5pc2gtc2VwYXJhdG9yIHtcbiAgICBwYWRkaW5nOiAwIDhweDtcbn1cblxuLy8gQ2xlYXJmaXggZm9yIGVudHJ5IGNvbnRlbnQgc28gbGFzdCBmbG9hdGVkIGltYWdlcyBkbyBub3QgYnJlYWsgdGhlIGxheW91dFxuLmVudHJ5LWNvbnRlbnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi5wb3N0LXBhc3N3b3JkLWZvcm0ge1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogJEZPUk1fRUxFTUVOVF9IRUlHSFQ7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogJEZPUk1fRUxFTUVOVF9IRUlHSFQ7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tb247XG4gICAgfVxuXG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIyBQYWdpbmF0aW9uICYgSW5maW5pdGUgU2Nyb2xsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaXNoLXBhZ2luYXRpb24tY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAtMTJ2dztcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIHotaW5kZXg6IDM7XG5cbiAgICAubmF2aWdhdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIH1cblxuICAgIC5uYXYtbGlua3Mge1xuICAgICAgICBAaW5jbHVkZSB0aGVtZS1yb3RhdGUoJFRIRU1FX0FOR0xFKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgfVxuXG4gICAgLm5hdi1uZXh0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgLmlzaC1wYWdlLW51bWJlcnMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5maW5pdGUtc2Nyb2xsICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmlzaC1wYWdpbmF0aW9uLWNvbnRhaW5lcixcbi5pc2gtcG9ydGZvbGlvLW5hdmlnYXRpb24ge1xuICAgIC5uYXYtcHJldmlvdXMsXG4gICAgLm5hdi1uZXh0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbn1cblxuLmlzaC1wYWdlLW51bWJlcnMsXG4jaW5maW5pdGUtaGFuZGxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIHRleHQtaW5kZW50OiAtOTk5ZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tb247XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogLTAuNWVtIDAgMCAtMC41ZW0gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbiNpbmZpbml0ZS1oYW5kbGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHRvcDogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogLTEydncgIWltcG9ydGFudDtcbiAgICB3aWR0aDogODBweCAhaW1wb3J0YW50O1xuICAgIEBpbmNsdWRlIHRoZW1lLXJvdGF0ZSgkVEhFTUVfQU5HTEUpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxlODM1JztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdpc2gtaWNvbnMnO1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLnBhZ2UtdGVtcGxhdGUtaG9tZXBhZ2UtcG9ydGZvbGlvICYgLFxuICAgIC5wb3N0LXR5cGUtYXJjaGl2ZS1qZXRwYWNrLXBvcnRmb2xpbyAmIHtcbiAgICAgICAgYm90dG9tOiAtNHZ3ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5cbi5pbmZpbml0ZS1sb2FkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSAtIDUwcHgpO1xuXG4gICAgLnNwaW5uZXIge1xuICAgICAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIyBTaW5nbGUgLSBDdXN0b20gTWV0YVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBvc3QtbWV0YSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIH1cbn1cblxuLnBvc3QtbWV0YS1rZXkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyMgU2luZ2xlIC0gTGluayBQYWdlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBhZ2UtbGlua3Mge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAmICsgaHIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAmICsgLmlzaC10YWdzIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0yNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIyBTaW5nbGUgLSBUYWdzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaXNoLXRhZ3Mge1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgYSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcjJztcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgbWl4LWJsZW5kLW1vZGU6IHNjcmVlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyMgQ29kZSAmIFByZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xucHJlIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJveC1zaGFkb3c6IDEwcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuaWZyYW1lIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmlmcmFtZTpub3QoLnR3aXR0ZXItdGltZWxpbmUpIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMTBweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vLyBKZXRQYWNrIENvbW1lbnRzIExpa2UgZmVhdHVyZVxuLmNvbW1lbnQtbGlrZXMtd2lkZ2V0IGlmcmFtZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuYmxvY2txdW90ZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nOiAzMHB4O1xuXG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICB0b3A6IDMwcHg7XG4gICAgfVxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFRlYW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pc2gtdGVhbS1hcmNoaXZlLWNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgSmV0cGFjayBHYWxsZXJpZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi50aWxlZC1nYWxsZXJ5Om5vdCgudHlwZS1jaXJjbGUpIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuXG4gICAgLmdhbGxlcnktcm93IHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5pc2gtc2MtZ2FsbGVyeSxcbi50aWxlZC1nYWxsZXJ5Om5vdCgudHlwZS1jaXJjbGUpLFxuLmdhbGxlcnkge1xuXG4gICAgJi5qdXN0aWZpZWQtZ2FsbGVyeSB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAgID4gYSA+IC5jYXB0aW9uLFxuICAgICAgICA+IGRpdiA+IC5jYXB0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgYm94LXNoYWRvdzogMTBweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAycHggIWltcG9ydGFudDtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgLy8gQGluY2x1ZGUgdHJhbnNpdGlvbi1vbjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZSAhaW1wb3J0YW50OyAvLyBOZWNlc3NhcnkgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgTGlnaHRHYWxsZXJ5IHRyYW5zaXRpb25cbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciBpbWcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KSB0cmFuc2xhdGVaKDApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udGlsZWQtZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgYm90dG9tOiAycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpICFpbXBvcnRhbnQ7XG59XG5cbi50aWxlZC1nYWxsZXJ5LnR5cGUtY2lyY2xlIHtcbiAgICAudGlsZWQtZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tb247XG4gICAgfVxuXG4gICAgYTpob3ZlciBpbWcsXG4gICAgYTpmb2N1cyBpbWcge1xuICAgICAgICAtd2Via2l0LWZpbHRlcjogb3BhY2l0eSg2MCUpO1xuICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoNjAlKTtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgV29yZFByZXNzIEdhbGxlcmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmdhbGxlcnktaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBtYXJnaW46IDAgMCAxLjVlbTtcbiAgICBwYWRkaW5nOiAwIDFlbSAwIDA7XG4gICAgd2lkdGg6IDUwJTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy0xIC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTIgLmdhbGxlcnktaXRlbSB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG59XG5cbi5nYWxsZXJ5LWl0ZW0gYSxcbi5nYWxsZXJ5LWl0ZW0gYTpob3Zlcixcbi5nYWxsZXJ5LWl0ZW0gYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uZ2FsbGVyeS1pdGVtIGEgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtZmlsdGVyIDAuMnMgZWFzZS1pbjtcbiAgICB0cmFuc2l0aW9uOiAtd2Via2l0LWZpbHRlciAwLjJzIGVhc2UtaW47XG4gICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuMnMgZWFzZS1pbjtcbiAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4ycyBlYXNlLWluLCAtd2Via2l0LWZpbHRlciAwLjJzIGVhc2UtaW47XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgMTBweCAwIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLndwLWNhcHRpb24tdGV4dCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbml0aWFsO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFdpZGdldHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pc2gtd2lkZ2V0LWVsZW1lbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5pc2gtc2VhcmNoLWZvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBpbnB1dCxcbiAgICBidXR0b24ge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6ICRGT1JNX0VMRU1FTlRfSEVJR0hUO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDQ4cHggMTBweCAyMHB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweDtcbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAkRk9STV9FTEVNRU5UX0hFSUdIVDtcbiAgICAgICAgaGVpZ2h0OiAkRk9STV9FTEVNRU5UX0hFSUdIVDtcbiAgICAgICAgdHJhbnNpdGlvbjogJE5BVl9UUkFOU0lUSU9OO1xuICAgIH1cbn1cblxuLmlzaC1zb2NpYWwtYm94IHtcblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG5cbiAgICAgICAgZmxleC1iYXNpczogMzMuMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuXG4gICAgICAgIC5pc2gtaGlkZS10ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBhLFxuICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLndpZGdldF90YWdfY2xvdWQgLnRhZ2Nsb3VkIC50YWctY2xvdWQtbGluazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcjJztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBTaWRlYmFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ucGFnZS13aXRoLXNpZGViYXIge1xuICAgIC5pc2gtbWFpbi1jb250ZW50IHtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5pc2gtc2lkZWJhciB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5pc2gtc2lkZWJhciB7XG4gICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZDtcblxuICAgIEgxLCBIMiwgSDMsIEg0LCBINSwgSDYsXG4gICAgcCxcbiAgICB1bCxcbiAgICBvbCxcbiAgICBocixcbiAgICBibG9ja3F1b3RlLFxuICAgIC53aWRnZXQtdGl0bGUsXG4gICAgLmlzaC1tYWluLWNvbnRlbnQgLnRpbGVkLWdhbGxlcnksXG4gICAgLmpldHBhY2stdmlkZW8td3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmlzaC13aWRnZXQtZWxlbWVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG5cbiAgICAgICAgLndpZGdldC10aXRsZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsID4gbGkgPiB1bCxcbiAgICAgICAgdWwgPiBsaSA+IHVsID4gbGkgPiB1bCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLndpZGdldF9yZWNlbnRfZW50cmllcyB7XG4gICAgICAgICAgICBsaSBzcGFuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYud2lkZ2V0X3JzcyB7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgICAgICAgICAgIHNwYW4sXG4gICAgICAgICAgICAgICAgY2l0ZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnJzc1N1bW1hcnkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLndpZGdldF9yZWNlbnRfY29tbWVudHMge1xuICAgICAgICAgICAgbGkgYSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsaSAuY29tbWVudC1hdXRob3ItbGluayB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsaSBzcGFuIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaTpsYXN0LWNoaWxkIGEsXG4gICAgICAgIGxpOmxhc3QtY2hpbGQgc3BhbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLndpZGdldF9jYWxlbmRhciB7XG4gICAgICAgICAgICAuY2FsZW5kYXJfd3JhcCB0YWJsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICNuZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI25leHQgYSxcbiAgICAgICAgICAgICAgICAjcHJldiBhIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYud2lkZ2V0X2pldHBhY2tfZGlzcGxheV9wb3N0c193aWRnZXQgaDQ6bm90KC53aWRnZXQtdGl0bGUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLndpZGdldF9nb29nbGVwbHVzX2JhZGdlIGlmcmFtZSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1yZWFkLW1vcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaXNoLWhhbGYtb3BhY2l0eTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtd2lkZ2V0LXNlYXJjaCB7XG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC13aWRnZXQtcmVjZW50LXByb2plY3RzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzMlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgJi5sYW5kc2NhcGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLnBvcnRyYWl0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtd2lkZ2V0LXJlY2VudC10d2VldHMge1xuICAgICAgICAgICAgLnR3ZWV0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxZW0gMDtcblxuICAgICAgICAgICAgICAgIC50d2VldC1kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuXG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaXNoLWhhbGYtb3BhY2l0eTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtd2lkZ2V0LXNvY2lhbCxcbiAgICAgICAgJi53aWRnZXRfd3Bjb21fc29jaWFsX21lZGlhX2ljb25zX3dpZGdldCB7XG4gICAgICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaXNoLWhhbGYtb3BhY2l0eTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi53aWRnZXRfd3Bjb21fc29jaWFsX21lZGlhX2ljb25zX3dpZGdldCB7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE1hcFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBhZ2UtdGVtcGxhdGUtY29udGFjdC1tYXAge1xuXG4gICAgLmlzaC1jb250YWluZXItZmx1aWQge1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgIH1cblxuICAgIGhlYWRlciAuaXNoLWNvbnRhaW5lci1mbHVpZCB7XG4gICAgICAgIHotaW5kZXg6IGF1dG87XG4gICAgfVxuXG4gICAgLmlzaC1kZWNvci1jb250YWluZXIge1xuICAgICAgICAuaXNoLWRlY29yLWJvdHRvbSxcbiAgICAgICAgLmlzaC1kZWNvci10b3Age1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI21hcCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0MDBweDtcbiAgICBtYXJnaW4tdG9wOiAtNDAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTM5MHB4O1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBzcGFuLCBkaXYsIGEge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICB9XG5cbiAgICAuaXNoLW1hcmtlci1pbmZvIHtcbiAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubWFwLW1hcmtlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBQbHVnaW5zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYWRtaW4tYmFyIHtcbiAgICAubGctYmFja2Ryb3AsIC5sZy1vdXRlciB7XG4gICAgICAgIHotaW5kZXg6IDk5OTk5O1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBKZXRwYWNrIC0gc2hhcmVkYWRkeSAtIHNvY2lhbCBzaGFyaW5nIGJ1dHRvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5zaGFyZWRhZGR5IC5zZC1jb250ZW50IHVsLFxuLnNoYXJlZGFkZHkuc2Qtc2hhcmluZy1lbmFibGVkIC5zZC10aXRsZTpiZWZvcmUge1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHggIWltcG9ydGFudDtcbn1cblxuLnNoYXJlZGFkZHkuc2Qtc2hhcmluZy1lbmFibGVkIC5zZC10aXRsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmlzaC1jb250YWN0LWluZm8tYm94IC5zaGFyZWRhZGR5IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gVEFCTEUgT0YgQ09OVEVOVFM6XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFZhcnNcbiMgTWl4aW5zXG4jIEV4dGVuZFxuIyBBbmltYXRpb25zXG4jIEdlbmVyYWxcbiMgU2hvcnRjb2Rlc1xuIyBNZWRpYSBRdWVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE1peGluc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEV4dGVuZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEFuaW1hdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBHZW5lcmFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgU2hvcnRjb2Rlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uaXNoLXNjLWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLyogVEFCUyAqL1xuXG4uaXNoLXNjLXRhYnMge1xuICAgIC5pc2gtdGFicy1tZW51IHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBNZWRpYSBRdWVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG5cbiAgICAuaXNoLXNjLWVsZW1lbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIH1cblxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVmFyc1xuIyBGb250c1xuIyBNZWRpYSBRdWVyeVxuIyMgNzY4cHhcbiMjIDEwMjRweFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFZhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiRzaXplOiAxNjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuYm9keSxcbiNtYXAgKixcbi5pc2gtY29udGFjdC1mb3JtLWJveCAqIGgzLFxuLndpZGdldF93cGNvbV9zb2NpYWxfbWVkaWFfaWNvbnNfd2lkZ2V0IGEge1xuICAgIGZvbnQtZmFtaWx5OiAnVmFyZWxhIFJvdW5kJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMzAgLyAxOCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDEsIC5pc2gtaDEsICNtYXAgaDEge1xuICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICBsaW5lLWhlaWdodDogY2FsYygxMDAgLyA5MCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDIsIC5pc2gtaDIsICNtYXAgaDIsXG4uaXNoLXJlc3VsdCAuaXNoLXJlc3VsdC1udW1iZXIsXG4uc2l0ZS1icmFuZGluZyBoMiBwIHtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoNzAgLyA2MCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDMsIC5pc2gtaDMsICNtYXAgaDMsXG4uaXNoLXNvY2lhbC1ib3gtY29udGFjdCBsaSB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDUwIC8gNDApO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbmg0LCAuaXNoLWg0LCAjbWFwIGg0LFxuLnNpdGUtYnJhbmRpbmcgLnNpdGUtZGVzYyxcbi5zaXRlLWJyYW5kaW5nIGgzLFxuLnNpdGUtYnJhbmRpbmcgcCxcbi5zaXRlLWJyYW5kaW5nLFxuLmlzaC1pY29uLW5hdiBpLFxuLmlzaC1wb3J0Zm9saW8tbmF2aWdhdGlvbixcbi5zaGFyZWRhZGR5LnNkLXNoYXJpbmctZW5hYmxlZCAuc2QtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBsaW5lLWhlaWdodDogY2FsYygzNSAvIDI1KTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5oNSwgLmlzaC1oNSwgI21hcCBoNSxcbi5wb3N0LW1ldGEta2V5LFxuLmlzaC1mb290ZXIgLmlzaC1zb2NpYWwtYm94IHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMzAgLyAyMCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDYsIC5pc2gtaDYsICNtYXAgaDYsXG4uaXNoLXBmbG8tZ2FsLmlzaC0yY29sIC5pc2gtdGl0bGUsXG4uaXNoLW5hdmlnYXRpb24gdWwgdWwsXG4uaXNoLWZvb3RlciAuaXNoLWxlZ2FscyB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDI1IC8gMTYpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbiNtYXAgaDQsICNtYXAgaDUsICNtYXAgaDYge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuI21hcCBwLCAjbWFwIGRpdiwgI21hcCBzcGFuLCAjbWFwIGksICNtYXAgYSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucmVxdWlyZWQtZXJyb3I6YmVmb3JlLFxuLnJlcXVpcmVkLWVycm9yOmFmdGVyLFxuc3Bhbi53cGNmNy1ub3QtdmFsaWQtdGlwLFxuLmlzaC1ibG9nIC5pc2gtYmxvZy1wb3N0LWRldGFpbHMge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnRpbGVkLWdhbGxlcnktY2FwdGlvbixcbi53aWRnZXRfdGFnX2Nsb3VkIC50YWdjbG91ZCAudGFnLWNsb3VkLWxpbmsge1xuICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4ud2lkZ2V0X3JlY2VudF9lbnRyaWVzIHVsIHNwYW4sXG4ud2lkZ2V0X3JzcyB1bCBzcGFuLFxuLmlzaC13aWRnZXQtcmVjZW50LXR3ZWV0cyAudHdlZXQtZGV0YWlscyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5pc2gtbmF2LWNsb3NlIGksXG4uaXNoLWJhY2stdG8tdG9wIGksXG4uaXNoLWNvbnRhY3QtaW5mby1jb250YWluZXIgaSB7XG4gICAgZm9udC1zaXplOiAxMjAlO1xufVxuXG5oZWFkZXIgLmlzaC10YWdsaW5lLXdpZGdldCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmp1c3RpZmllZC1nYWxsZXJ5ID4gYSA+IC5jYXB0aW9uLFxuLmp1c3RpZmllZC1nYWxsZXJ5ID4gZGl2ID4gLmNhcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiAnVmFyZWxhIFJvdW5kJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMzAgLyAxOCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBNZWRpYSBRdWVyeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyA3NjhweCAvIDQ4ZW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBoMSwgLmlzaC1oMSwgI21hcCBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNzBweDtcbiAgICB9XG5cbiAgICBoMiwgLmlzaC1oMiwgI21hcCBoMixcbiAgICAuc2l0ZS1icmFuZGluZyBoMiBwIHtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgIH1cblxuICAgIGgzLCAuaXNoLWgzLCAjbWFwIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAzNXB4O1xuICAgIH1cblxuICAgICNtYXAgaDQge1xuICAgICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgfVxuXG4gICAgI21hcCBoNSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAjbWFwIGg2IHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgICNtYXAgcCwgI21hcCBkaXYsICNtYXAgc3BhbiwgI21hcCBpLCAjbWFwIGEge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyAxMDI0cHggLyA2NGVtXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGgxLCAuaXNoLWgxLCAjbWFwIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiA5MHB4O1xuICAgIH1cblxuICAgIGgyLCAuaXNoLWgyLCAjbWFwIGgyLFxuICAgIC5zaXRlLWJyYW5kaW5nIGgyIHAge1xuICAgICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgfVxuXG4gICAgaDMsIC5pc2gtaDMsICNtYXAgaDMge1xuICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgfVxufSIsIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnaXNoLWljb25zJztcbiAgICBzcmM6IHVybCgnLi4vZm9udC9pc2gtaWNvbnMuZW90PzU4Mzc4NzYyJyk7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnQvaXNoLWljb25zLmVvdD81ODM3ODc2MiNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICB1cmwoJy4uL2ZvbnQvaXNoLWljb25zLndvZmYyPzU4Mzc4NzYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnLi4vZm9udC9pc2gtaWNvbnMud29mZj81ODM3ODc2MicpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnLi4vZm9udC9pc2gtaWNvbnMudHRmPzU4Mzc4NzYyJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgIHVybCgnLi4vZm9udC9pc2gtaWNvbnMuc3ZnPzU4Mzc4NzYyI2lzaC1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKiBDaHJvbWUgaGFjazogU1ZHIGlzIHJlbmRlcmVkIG1vcmUgc21vb3RoIGluIFdpbmRvenplLiAxMDAlIG1hZ2ljLCB1bmNvbW1lbnQgaWYgeW91IG5lZWQgaXQuICovXG4vKiBOb3RlLCB0aGF0IHdpbGwgYnJlYWsgaGludGluZyEgSW4gb3RoZXIgT1MtZXMgZm9udCB3aWxsIGJlIG5vdCBhcyBzaGFycCBhcyBpdCBjb3VsZCBiZSAqL1xuLypcbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCkge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ2lzaC1pY29ucyc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnQvaXNoLWljb25zLnN2Zz81ODM3ODc2MiNpc2gtaWNvbnMnKSBmb3JtYXQoJ3N2ZycpO1xuICB9XG59XG4qL1xuXG5bY2xhc3NePVwiaXNoLWljb24tXCJdOmJlZm9yZSwgW2NsYXNzKj1cIiBpc2gtaWNvbi1cIl06YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogXCJpc2gtaWNvbnNcIjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBzcGVhazogbm9uZTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgd2lkdGg6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC4yZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIG9wYWNpdHk6IC44OyAqL1xuXG4gICAgLyogRm9yIHNhZmV0eSAtIHJlc2V0IHBhcmVudCBzdHlsZXMsIHRoYXQgY2FuIGJyZWFrIGdseXBoIGNvZGVzKi9cbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgIC8qIGZpeCBidXR0b25zIGhlaWdodCwgZm9yIHR3aXR0ZXIgYm9vdHN0cmFwICovXG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcblxuICAgIC8qIEFuaW1hdGlvbiBjZW50ZXIgY29tcGVuc2F0aW9uIC0gbWFyZ2lucyBzaG91bGQgYmUgc3ltbWV0cmljICovXG4gICAgLyogcmVtb3ZlIGlmIG5vdCBuZWVkZWQgKi9cbiAgICBtYXJnaW4tbGVmdDogLjJlbTtcblxuICAgIC8qIHlvdSBjYW4gYmUgbW9yZSBjb21mb3J0YWJsZSB3aXRoIGluY3JlYXNlZCBpY29ucyBzaXplICovXG4gICAgLyogZm9udC1zaXplOiAxMjAlOyAqL1xuXG4gICAgLyogRm9udCBzbW9vdGhpbmcuIFRoYXQgd2FzIHRha2VuIGZyb20gVFdCUyAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgICAvKiBVbmNvbW1lbnQgZm9yIDNEIGVmZmVjdCAqL1xuICAgIC8qIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMyk7ICovXG59XG5cbi5pc2gtaWNvbi1zZWFyY2g6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMCc7IH0gLyogJ+6ggCcgKi9cbi5pc2gtaWNvbi1tYWlsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDEnOyB9IC8qICfuoIEnICovXG4uaXNoLWljb24tbWFpbC1hbHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMic7IH0gLyogJ+6ggicgKi9cbi5pc2gtaWNvbi1oZWFydDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAzJzsgfSAvKiAn7qCDJyAqL1xuLmlzaC1pY29uLWhlYXJ0LWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDQnOyB9IC8qICfuoIQnICovXG4uaXNoLWljb24tZHJvcGJveDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA1JzsgfSAvKiAn7qCFJyAqL1xuLmlzaC1pY29uLWRydXBhbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA2JzsgfSAvKiAn7qCGJyAqL1xuLmlzaC1pY29uLW1lbnU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNyc7IH0gLyogJ+6ghycgKi9cbi5pc2gtaWNvbi1jb2c6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwOCc7IH0gLyogJ+6giCcgKi9cbi5pc2gtaWNvbi1jb2ctYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDknOyB9IC8qICfuoIknICovXG4uaXNoLWljb24td3JlbmNoOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGEnOyB9IC8qICfuoIonICovXG4uaXNoLWljb24tYmFza2V0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGInOyB9IC8qICfuoIsnICovXG4uaXNoLWljb24tb2s6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwYyc7IH0gLyogJ+6gjCcgKi9cbi5pc2gtaWNvbi1jYW5jZWw6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwZCc7IH0gLyogJ+6gjScgKi9cbi5pc2gtaWNvbi1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGUnOyB9IC8qICfuoI4nICovXG4uaXNoLWljb24tbWludXM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwZic7IH0gLyogJ+6gjycgKi9cbi5pc2gtaWNvbi11c2VyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTAnOyB9IC8qICfuoJAnICovXG4uaXNoLWljb24tdXNlci1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTEnOyB9IC8qICfuoJEnICovXG4uaXNoLWljb24tZ2l0aHViLWNpcmNsZWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxMic7IH0gLyogJ+6gkicgKi9cbi5pc2gtaWNvbi1naXRodWItc3F1YXJlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODEzJzsgfSAvKiAn7qCTJyAqL1xuLmlzaC1pY29uLWNvbW1lbnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxNCc7IH0gLyogJ+6glCcgKi9cbi5pc2gtaWNvbi1jb21tZW50LWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTUnOyB9IC8qICfuoJUnICovXG4uaXNoLWljb24tZ2l0aHViLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxNic7IH0gLyogJ+6glicgKi9cbi5pc2gtaWNvbi1saW51eDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE3JzsgfSAvKiAn7qCXJyAqL1xuLmlzaC1pY29uLXJlZGRpdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE4JzsgfSAvKiAn7qCYJyAqL1xuLmlzaC1pY29uLXJlbnJlbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE5JzsgfSAvKiAn7qCZJyAqL1xuLmlzaC1pY29uLWFuZ2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxYSc7IH0gLyogJ+6gmicgKi9cbi5pc2gtaWNvbi1hbmdsZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODFiJzsgfSAvKiAn7qCbJyAqL1xuLmlzaC1pY29uLWFuZ2xlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MWMnOyB9IC8qICfuoJwnICovXG4uaXNoLWljb24tYW5nbGUtZG93bjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODFkJzsgfSAvKiAn7qCdJyAqL1xuLmlzaC1pY29uLXBob25lOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MWUnOyB9IC8qICfuoJ4nICovXG4uaXNoLWljb24tc2xhY2s6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxZic7IH0gLyogJ+6gnycgKi9cbi5pc2gtaWNvbi13aGF0c2FwcDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODIwJzsgfSAvKiAn7qCgJyAqL1xuLmlzaC1pY29uLXN0YWNrb3ZlcmZsb3ctMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODIxJzsgfSAvKiAn7qChJyAqL1xuLmlzaC1pY29uLXR3aXRjaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODIyJzsgfSAvKiAn7qCiJyAqL1xuLmlzaC1pY29uLWhvbWU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyMyc7IH0gLyogJ+6goycgKi9cbi5pc2gtaWNvbi1iZWhhbmNlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjQnOyB9IC8qICfuoKQnICovXG4uaXNoLWljb24tZ3BsdXM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyNSc7IH0gLyogJ+6gpScgKi9cbi5pc2gtaWNvbi1za3lwZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODI2JzsgfSAvKiAn7qCmJyAqL1xuLmlzaC1pY29uLXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyNyc7IH0gLyogJ+6gpycgKi9cbi5pc2gtaWNvbi13b3JkcHJlc3M6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyOCc7IH0gLyogJ+6gqCcgKi9cbi5pc2gtaWNvbi15b3V0dWJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjknOyB9IC8qICfuoKknICovXG4uaXNoLWljb24tcGludGVyZXN0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MmEnOyB9IC8qICfuoKonICovXG4uaXNoLWljb24tZmFjZWJvb2s6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyYic7IH0gLyogJ+6gqycgKi9cbi5pc2gtaWNvbi1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogJ1xcZTgyYyc7IH0gLyogJ+6grCcgKi9cbi5pc2gtaWNvbi1jYW5jZWwtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODJkJzsgfSAvKiAn7qCtJyAqL1xuLmlzaC1pY29uLW9rLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyZSc7IH0gLyogJ+6gricgKi9cbi5pc2gtaWNvbi1wbHVzLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyZic7IH0gLyogJ+6grycgKi9cbi5pc2gtaWNvbi1taW51cy0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzAnOyB9IC8qICfuoLAnICovXG4uaXNoLWljb24tcmlnaHQtb3Blbi0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzEnOyB9IC8qICfuoLEnICovXG4uaXNoLWljb24tbGVmdC1vcGVuLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzMic7IH0gLyogJ+6gsicgKi9cbi5pc2gtaWNvbi13aW5kb3dzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzMnOyB9IC8qICfuoLMnICovXG4uaXNoLWljb24teGluZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODM0JzsgfSAvKiAn7qC0JyAqL1xuLmlzaC1pY29uLWRvd24tc21hbGw6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzNSc7IH0gLyogJ+6gtScgKi9cbi5pc2gtaWNvbi1sZWZ0LXNtYWxsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzYnOyB9IC8qICfuoLYnICovXG4uaXNoLWljb24tcmlnaHQtc21hbGw6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzNyc7IH0gLyogJ+6gtycgKi9cbi5pc2gtaWNvbi11cC1zbWFsbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODM4JzsgfSAvKiAn7qC4JyAqL1xuLmlzaC1pY29uLWxpbmtlZGluOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzknOyB9IC8qICfuoLknICovXG4uaXNoLWljb24tZHJpYmJibGU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzYSc7IH0gLyogJ+6guicgKi9cbi5pc2gtaWNvbi10dW1ibHI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzYic7IH0gLyogJ+6guycgKi9cbi5pc2gtaWNvbi12aW1lby1zcXVhcmVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4M2MnOyB9IC8qICfuoLwnICovXG4uaXNoLWljb24tZGlnZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODNkJzsgfSAvKiAn7qC9JyAqL1xuLmlzaC1pY29uLWNzczM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzZSc7IH0gLyogJ+6gvicgKi9cbi5pc2gtaWNvbi1hcHBsZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODNmJzsgfSAvKiAn7qC/JyAqL1xuLmlzaC1pY29uLWNyZWRpdC1jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDAnOyB9IC8qICfuoYAnICovXG4uaXNoLWljb24taHRtbDU6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0MSc7IH0gLyogJ+6hgScgKi9cbi5pc2gtaWNvbi1zdGFyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDInOyB9IC8qICfuoYInICovXG4uaXNoLWljb24tc3Rhci1lbXB0eTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQzJzsgfSAvKiAn7qGDJyAqL1xuLmlzaC1pY29uLXN0YXItaGFsZi1hbHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0NCc7IH0gLyogJ+6hhCcgKi9cbi5pc2gtaWNvbi1jb2RlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDUnOyB9IC8qICfuoYUnICovXG4uaXNoLWljb24tYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0Nic7IH0gLyogJ+6hhicgKi9cbi5pc2gtaWNvbi1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0Nyc7IH0gLyogJ+6hhycgKi9cbi5pc2gtaWNvbi1hbmdsZS1kb3VibGUtdXA6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0OCc7IH0gLyogJ+6hiCcgKi9cbi5pc2gtaWNvbi1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQ5JzsgfSAvKiAn7qGJJyAqL1xuLmlzaC1pY29uLWNsb3VkLXN1bi1pbnY6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0YSc7IH0gLyogJ+6hiicgKi9cbi5pc2gtaWNvbi1jbG91ZC1pbnY6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0Yic7IH0gLyogJ+6hiycgKi9cbi5pc2gtaWNvbi1zdW4taW52OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NGMnOyB9IC8qICfuoYwnICovXG4uaXNoLWljb24tbGlnaHRidWxiOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NGQnOyB9IC8qICfuoY0nICovXG4uaXNoLWljb24tdW1icmVsbGE6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0ZSc7IH0gLyogJ+6hjicgKi9cbi5pc2gtaWNvbi1pbmZpbml0eTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODRmJzsgfSAvKiAn7qGPJyAqL1xuLmlzaC1pY29uLWhvdXJnbGFzczpiZWZvcmUgeyBjb250ZW50OiAnXFxlODUwJzsgfSAvKiAn7qGQJyAqL1xuLmlzaC1pY29uLWJpY3ljbGU6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1MSc7IH0gLyogJ+6hkScgKi9cbi5pc2gtaWNvbi1hcnQtZ2FsbGVyeTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODUyJzsgfSAvKiAn7qGSJyAqL1xuLmlzaC1pY29uLXdoZWVsY2hhaXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1Myc7IH0gLyogJ+6hkycgKi9cbi5pc2gtaWNvbi1nbG9iZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODU0JzsgfSAvKiAn7qGUJyAqL1xuLmlzaC1pY29uLWxvY2F0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTUnOyB9IC8qICfuoZUnICovXG4uaXNoLWljb24tc291bmRjbG91ZC0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTYnOyB9IC8qICfuoZYnICovXG4uaXNoLWljb24tcGluOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTcnOyB9IC8qICfuoZcnICovXG4uaXNoLWljb24tcGluLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1OCc7IH0gLyogJ+6hmCcgKi9cbi5pc2gtaWNvbi1waW4tb3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODU5JzsgfSAvKiAn7qGZJyAqL1xuLmlzaC1pY29uLXBpbnRlcmVzdC1jaXJjbGVkLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZjBkMic7IH0gLyogJ++DkicgKi9cbi5pc2gtaWNvbi14aW5nLXNxdWFyZWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZjE2OSc7IH0gLyogJ++FqScgKi9cbi5pc2gtaWNvbi1mbGlja3I6YmVmb3JlIHsgY29udGVudDogJ1xcZjE2ZSc7IH0gLyogJ++FricgKi9cbi5pc2gtaWNvbi1iaXRidWNrZXQ6YmVmb3JlIHsgY29udGVudDogJ1xcZjE3MSc7IH0gLyogJ++FsScgKi9cbi5pc2gtaWNvbi1mb3Vyc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxODAnOyB9IC8qICfvhoAnICovXG4uaXNoLWljb24tdHJlbGxvOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxODEnOyB9IC8qICfvhoEnICovXG4uaXNoLWljb24tdmtvbnRha3RlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxODknOyB9IC8qICfvhoknICovXG4uaXNoLWljb24td2VpYm86YmVmb3JlIHsgY29udGVudDogJ1xcZjE4YSc7IH0gLyogJ++GiicgKi9cbi5pc2gtaWNvbi1zdGFja2V4Y2hhbmdlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxOGQnOyB9IC8qICfvho0nICovXG4uaXNoLWljb24tc3R1bWJsZXVwb246YmVmb3JlIHsgY29udGVudDogJ1xcZjFhNCc7IH0gLyogJ++GpCcgKi9cbi5pc2gtaWNvbi1zdGVhbTpiZWZvcmUgeyBjb250ZW50OiAnXFxmMWI2JzsgfSAvKiAn74a2JyAqL1xuLmlzaC1pY29uLXNwb3RpZnk6YmVmb3JlIHsgY29udGVudDogJ1xcZjFiYyc7IH0gLyogJ++GvCcgKi9cbi5pc2gtaWNvbi1kZXZpYW50YXJ0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxYmQnOyB9IC8qICfvhr0nICovXG4uaXNoLWljb24tdmluZTpiZWZvcmUgeyBjb250ZW50OiAnXFxmMWNhJzsgfSAvKiAn74eKJyAqL1xuLmlzaC1pY29uLWNvZGVvcGVuOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxY2InOyB9IC8qICfvh4snICovXG4uaXNoLWljb24tanNmaWRkbGU6YmVmb3JlIHsgY29udGVudDogJ1xcZjFjYyc7IH0gLyogJ++HjCcgKi9cbi5pc2gtaWNvbi1zbGlkZXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxZTcnOyB9IC8qICfvh6cnICovXG4uaXNoLWljb24teWVscDpiZWZvcmUgeyBjb250ZW50OiAnXFxmMWU5JzsgfSAvKiAn74epJyAqL1xuLmlzaC1pY29uLWxhc3RmbTpiZWZvcmUgeyBjb250ZW50OiAnXFxmMjAyJzsgfSAvKiAn74iCJyAqL1xuLmlzaC1pY29uLXRyaXBhZHZpc29yOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYyNjInOyB9IC8qICfviaInICovXG4uaXNoLWljb24tc25hcGNoYXQ6YmVmb3JlIHsgY29udGVudDogJ1xcZjJhYic7IH0gLyogJ++KqycgKi9cbi5pc2gtaWNvbi1zbmFwY2hhdC1naG9zdDpiZWZvcmUgeyBjb250ZW50OiAnXFxmMmFjJzsgfSAvKiAn74qsJyAqLyIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVmFyc1xuXG4jIFBvcnRmb2xpb1xuIyBQb3J0Zm9saW8gLSBTcXVhcmVkXG4jIFBvcnRmb2xpbyAtIFRlbXBsYXRlc1xuIyBQb3J0Zm9saW8gLSBOYXZpZ2F0aW9uXG4jIEFuaW1hdGlvbiAtIE1vdmUgVXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBWYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4kY2FwdGlvbl9jb250YWluZXJfd2lkdGg6IDUwO1xuJGNhcHRpb25faGVpZ2h0OiAzMDtcbiR2ZXJ0aWNhbF9tYXJnaW46IDE1MDtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBQb3J0Zm9saW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pc2gtcGZsby1nYWwge1xuXG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAvKmJveC1zaGFkb3c6IDEwcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTsqL1xuICAgIH1cblxuICAgIC5pc2gtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAuaXNoLWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWNhcHRpb24tY29udGFpbmVyLCAuaXNoLWltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWNhcHRpb24tY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAkY2FwdGlvbl9jb250YWluZXJfd2lkdGggKiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICgjeyRjYXB0aW9uX2NvbnRhaW5lcl93aWR0aH0gKiAxcHgpKTtcblxuICAgICAgICAgICAgLmlzaC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAxMHB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDc1JTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWNhcHRpb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0IDA7XG4gICAgICAgICAgICBsZWZ0OiAkY2FwdGlvbl9oZWlnaHQgKiAxcHg7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRjYXB0aW9uX2hlaWdodCAqIDFweDtcbiAgICAgICAgICAgIGhlaWdodDogJGNhcHRpb25faGVpZ2h0ICogMXB4O1xuXG4gICAgICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRjYXB0aW9uX2hlaWdodCAqIDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkgLmlzaC1pdGVtLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcblxuICAgICAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pc2gtY2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4uaXNoLXBmbG8tZ2FsLmlzaC0xY29sLFxuLmlzaC1wZmxvLWdhbC5pc2gtMmNvbCB7XG5cbiAgICAuaXNoLWl0ZW0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTBweFxuXG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFBvcnRmb2xpbyAtIFNxdWFyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pc2gtcGZsby1nYWwuaXNoLXNxdWFyZSB7XG5cbiAgICAuaXNoLWltZyB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm94LXNoYWRvdzogMTBweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAuMSk7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICAgICAgJi5pc2gtaW1nLXNjYWxlOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pc2gtbm8taW1nIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pc2gtcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQW5pbWF0aW9uIC0gTW92ZSBVcFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1wZmxvLWdhbC5pc2gtc2Nyb2xsLWFuaW0gLmlzaC1pdGVtIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uaXNoLXBmbG8tZ2FsLmlzaC1zY3JvbGwtYW5pbSAuaXNoLWl0ZW0uc2hvd24ge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5pc2gtcGZsby1nYWwuaXNoLXNjcm9sbC1hbmltIC5pc2gtaXRlbS5hbmltYXRlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwcHgpO1xuICAgIGFuaW1hdGlvbjogaXNoTW92ZVVwIDAuNjVzIGVhc2UgZm9yd2FyZHM7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBpc2hNb3ZlVXAge1xuICAgIDAlIHtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBpc2hNb3ZlVXAge1xuICAgIDAlIHtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFBvcnRmb2xpbyAtIFRlbXBsYXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBhZ2UtdGVtcGxhdGUtcG9ydGZvbGlvIHtcbiAgICAuaXNoLWNhcHRpb24tY29udGFpbmVyIHNwYW46bm90KC5pc2gtaDQpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgUG9ydGZvbGlvIC0gTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1wb3J0Zm9saW8tbmF2aWdhdGlvbiB7XG5cbiAgICBhLFxuICAgIC5pc2gtZGlzYWJsZWQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEltYWdlIFdpdGggU2hhZG93XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaXNoLXNoYWRvdy1pbWFnZSB7XG5cbiAgICAuaXNoLWl0ZW0ge1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDEwcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAuaXNoLWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWNhcHRpb24tY29udGFpbmVyLCAuaXNoLWltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1jYXB0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogJGNhcHRpb25fY29udGFpbmVyX3dpZHRoICogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1pbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAoI3skY2FwdGlvbl9jb250YWluZXJfd2lkdGh9ICogMXB4KSk7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMTBweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC42cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGE6aG92ZXIgaW1nIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaXNoLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDEwcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTMzJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWNhcHRpb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdCAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogJGNhcHRpb25faGVpZ2h0ICogMXB4O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkY2FwdGlvbl9oZWlnaHQgKiAxcHg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjYXB0aW9uX2hlaWdodCAqIDFweDtcbiAgICAgICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGNhcHRpb25faGVpZ2h0ICogMXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaXNoLWNhcHRpb25zLXJpZ2h0IHtcblxuICAgICAgICAuaXNoLWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuXG4gICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlzaC1jYXB0aW9uIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFRlYW0gLSBUZW1wbGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5wYWdlLXRlbXBsYXRlLXRlYW0ge1xuICAgIC5zaXRlLWNvbnRlbnQgLmlzaC1yb3cge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzaC1pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgICAuaXNoLWNhcHRpb24ge1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1jYXB0aW9uLXNvY2lhbC1pY29ucyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6ICRjYXB0aW9uX2hlaWdodCAqIDFweDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDAgMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tb247XG4gICAgICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRleigwKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtY2FwdGlvbi1jb250YWluZXIge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtY2FwdGlvbnMtcmlnaHQge1xuXG4gICAgICAgIC5pc2gtaXRlbS1jb250YWluZXIge1xuXG4gICAgICAgICAgICAuaXNoLWNhcHRpb24tc29jaWFsLWljb25zIHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuaXNoLXRlYW0tYXJjaGl2ZS1jb250ZW50IHtcbiAgICAgICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVmFyc1xuXG4jIEJsb2dcbiMgU2luZ2xlIFBvc3QgTmF2aWdhdGlvblxuIyBCbG9nIC0gVGVtcGxhdGVzXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBWYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQmxvZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1ibG9nLW1hc29ucnksXG4uaXNoLWJsb2ctY2xhc3NpYyB7XG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuaXNoLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIC8vcGFkZGluZy1ib3R0b206IDUwcHg7XG5cbiAgICAgICAgLmlzaC1ibG9nLXBvc3QtdGl0bGUge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1ibG9nLXBvc3QtbWVkaWEgKyAuaXNoLWJsb2ctcG9zdC10aXRsZSB7XG4gICAgICAgICAgICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtYmxvZy1wb3N0LWRldGFpbHMge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcblxuICAgICAgICAgICAgLmlzaC1sYWJlbCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaXNoLXJlYWQtbW9yZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1ibG9nLXBvc3QtY29udGVudCB7XG4gICAgICAgICAgICBwOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uaXNoLWJsb2ctY2xhc3NpYyB7XG4gICAgLmlzaC1pdGVtIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3RpY2t5IHtcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgU2luZ2xlIFBvc3QgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1wb3N0LW5hdmlnYXRpb24ge1xuICAgIC5pc2gtc2VwYXJhdG9yIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cblxuICAgIC5uYXYtcHJldmlvdXMgfiAubmF2LW5leHQ6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJy8nO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIH1cblxuICAgIC5uYXYtbGlua3Mge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgICAgZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEsXG4gICAgLmlzaC1kaXNhYmxlZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICB9XG5cbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQmxvZyAtIFRlbXBsYXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBhZ2UtdGVtcGxhdGUtYmxvZyxcbi5wYWdlLXRlbXBsYXRlLWJsb2ctZGV0YWlsIHtcbiAgICAvKi5zaXRlLWNvbnRlbnRcbiAgICB7XG4gICAgICAgIG1hcmdpbi10b3A6IC04MHB4O1xuICAgIH0qL1xufSIsIi5pc2gtc29jaWFsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLW9uO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRleigwKTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG5cbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcImlzaC1pY29uc1wiO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHNwZWFrOiBub25lO1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuM2VtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgLyogb3BhY2l0eTogLjg7ICovXG5cbiAgICAgICAgICAgIC8qIEZvciBzYWZldHkgLSByZXNldCBwYXJlbnQgc3R5bGVzLCB0aGF0IGNhbiBicmVhayBnbHlwaCBjb2RlcyovXG4gICAgICAgICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICAgICAgICAgICAvKiBBbmltYXRpb24gY2VudGVyIGNvbXBlbnNhdGlvbiAtIG1hcmdpbnMgc2hvdWxkIGJlIHN5bW1ldHJpYyAqL1xuICAgICAgICAgICAgLyogcmVtb3ZlIGlmIG5vdCBuZWVkZWQgKi9cbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuMmVtO1xuXG4gICAgICAgICAgICAvKiBGb250IHNtb290aGluZy4gVGhhdCB3YXMgdGFrZW4gZnJvbSBUV0JTICovXG4gICAgICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhOmJlZm9yZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ1xcZTg1NCc7IH0gLy8gRGVmYXVsdCBHbG9iZSBpY29uIG9uIGFueXRoaW5nIGVsc2VcbiAgICBhW2hyZWYqPVwiYmVoYW5jZS5uZXRcIl06YmVmb3JlIHsgICAgICAgICBjb250ZW50OiAnXFxlODI0JzsgfVxuICAgIGFbaHJlZio9XCJiaXRidWNrZXQub3JnXCJdOmJlZm9yZSB7ICAgICAgIGNvbnRlbnQ6ICdcXGYxNzEnOyB9XG4gICAgYVtocmVmKj1cImNvZGVwZW4uaW9cIl06YmVmb3JlIHsgICAgICAgICAgY29udGVudDogJ1xcZjFjYic7IH1cbiAgICBhW2hyZWYqPVwiZGV2aWFudGFydC5jb21cIl06YmVmb3JlIHsgICAgICBjb250ZW50OiAnXFxmMWJkJzsgfVxuICAgIGFbaHJlZio9XCJkaWdnLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4M2QnOyB9XG4gICAgYVtocmVmKj1cImRyaWJiYmxlLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgY29udGVudDogJ1xcZTgzYSc7IH1cbiAgICBhW2hyZWYqPVwiZHJvcGJveC5jb21cIl06YmVmb3JlIHsgICAgICAgICBjb250ZW50OiAnXFxlODA1JzsgfVxuICAgIGFbaHJlZio9XCJmYWNlYm9vay5jb21cIl06YmVmb3JlIHsgICAgICAgIGNvbnRlbnQ6ICdcXGU4MmInOyB9XG4gICAgYVtocmVmKj1cImZsaWNrci5jb21cIl06YmVmb3JlIHsgICAgICAgICAgY29udGVudDogJ1xcZjE2ZSc7IH1cbiAgICBhW2hyZWYqPVwiZm91cnNxdWFyZS5jb21cIl06YmVmb3JlIHsgICAgICBjb250ZW50OiAnXFxmMTgwJzsgfVxuICAgIGFbaHJlZio9XCJwbHVzLmdvb2dsZS5jb21cIl06YmVmb3JlIHsgICAgIGNvbnRlbnQ6ICdcXGU4MjUnOyB9XG4gICAgYVtocmVmKj1cImdpdGh1Yi5jb21cIl06YmVmb3JlIHsgICAgICAgICAgY29udGVudDogJ1xcZTgxMic7IH1cbiAgICBhW2hyZWYqPVwiaW5zdGFncmFtLmNvbVwiXTpiZWZvcmUgeyAgICAgICBjb250ZW50OiAnXFxlODJjJzsgfVxuICAgIGFbaHJlZio9XCJqc2ZpZGRsZS5uZXRcIl06YmVmb3JlIHsgICAgICAgIGNvbnRlbnQ6ICdcXGYxY2MnOyB9XG4gICAgYVtocmVmKj1cImxhc3QuZm1cIl06YmVmb3JlIHsgICAgICAgICAgICAgY29udGVudDogJ1xcZjIwMic7IH1cbiAgICBhW2hyZWYqPVwibGlua2VkaW4uY29tXCJdOmJlZm9yZSB7ICAgICAgICBjb250ZW50OiAnXFxlODM5JzsgfVxuICAgIGFbaHJlZio9XCJtYWlsdG86XCJdOmJlZm9yZSB7ICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MDEnOyB9XG4gICAgYVtocmVmKj1cInBpbnRlcmVzdC5jb21cIl06YmVmb3JlIHsgICAgICAgY29udGVudDogJ1xcZjBkMic7IH1cbiAgICBhW2hyZWYqPVwicmVkZGl0LmNvbVwiXTpiZWZvcmUgeyAgICAgICAgICBjb250ZW50OiAnXFxlODE4JzsgfVxuICAgIGFbaHJlZio9XCJyZW5yZW4uY29tXCJdOmJlZm9yZSB7ICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MTknOyB9XG4gICAgYVtocmVmKj1cInNreXBlLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgICAgY29udGVudDogJ1xcZTgyNic7IH1cbiAgICBhW2hyZWYqPVwic2t5cGU6XCJdOmJlZm9yZSB7ICAgICAgICAgICAgICBjb250ZW50OiAnXFxlODI2JzsgfVxuICAgIGFbaHJlZio9XCJzbGFjay5jb21cIl06YmVmb3JlIHsgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MWYnOyB9XG4gICAgYVtocmVmKj1cInN0YWNrZXhjaGFuZ2UuY29tXCJdOmJlZm9yZSB7ICAgY29udGVudDogJ1xcZjE4ZCc7IH1cbiAgICBhW2hyZWYqPVwic3RhY2tvdmVyZmxvdy5jb21cIl06YmVmb3JlIHsgICBjb250ZW50OiAnXFxlODIxJzsgfVxuICAgIGFbaHJlZio9XCJzbGlkZXNoYXJlLm5ldFwiXTpiZWZvcmUgeyAgICAgIGNvbnRlbnQ6ICdcXGYxZTcnOyB9XG4gICAgYVtocmVmKj1cInNuYXBjaGF0LmNvbVwiXTpiZWZvcmUgeyAgICAgICAgY29udGVudDogJ1xcZjJhYyc7IH1cbiAgICBhW2hyZWYqPVwic291bmRjbG91ZC5jb21cIl06YmVmb3JlIHsgICAgICBjb250ZW50OiAnXFxlODU2JzsgfVxuICAgIGFbaHJlZio9XCJzcG90aWZ5LmNvbVwiXTpiZWZvcmUgeyAgICAgICAgIGNvbnRlbnQ6ICdcXGYxYmMnOyB9XG4gICAgYVtocmVmKj1cInN0ZWFtY29tbXVuaXR5LmNvbVwiXTpiZWZvcmUgeyAgY29udGVudDogJ1xcZjFiNic7IH1cbiAgICBhW2hyZWYqPVwic3R1bWJsZXVwb24uY29tXCJdOmJlZm9yZSB7ICAgICBjb250ZW50OiAnXFxmMWE0JzsgfVxuICAgIGFbaHJlZio9XCJ0ZWw6XCJdOmJlZm9yZSB7ICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MWUnOyB9XG4gICAgYVtocmVmKj1cInRyaXBhZHZpc29yLmNvbVwiXTpiZWZvcmUgeyAgICAgY29udGVudDogJ1xcZjI2Mic7IH1cbiAgICBhW2hyZWYqPVwidHVtYmxyLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgICBjb250ZW50OiAnXFxlODNiJzsgfVxuICAgIGFbaHJlZio9XCJ0d2l0Y2gudHZcIl06YmVmb3JlIHsgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MjInOyB9XG4gICAgYVtocmVmKj1cInR3aXR0ZXIuY29tXCJdOmJlZm9yZSB7ICAgICAgICAgY29udGVudDogJ1xcZTgyNyc7IH1cbiAgICBhW2hyZWYqPVwidmltZW8uY29tXCJdOmJlZm9yZSB7ICAgICAgICAgICBjb250ZW50OiAnXFxlODNjJzsgfVxuICAgIGFbaHJlZio9XCJ2aW5lLmNvXCJdOmJlZm9yZSB7ICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYxY2EnOyB9XG4gICAgYVtocmVmKj1cInZrLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgICAgICAgY29udGVudDogJ1xcZjE4OSc7IH1cbiAgICBhW2hyZWYqPVwid2VpYm8uY29tXCJdOmJlZm9yZSB7ICAgICAgICAgICBjb250ZW50OiAnXFxmMThhJzsgfVxuICAgIGFbaHJlZio9XCJ3aGF0c2FwcDpcIl06YmVmb3JlIHsgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MjAnOyB9XG4gICAgYVtocmVmKj1cIndvcmRwcmVzcy5cIl06YmVmb3JlIHsgICAgICAgICAgY29udGVudDogJ1xcZTgyOCc7IH1cbiAgICBhW2hyZWYqPVwieWVscC5jb21cIl06YmVmb3JlIHsgICAgICAgICAgICBjb250ZW50OiAnXFxmMWU5JzsgfVxuICAgIGFbaHJlZio9XCJ5b3V0dWJlLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MjknOyB9XG4gICAgYVtocmVmKj1cInhpbmcuY29tXCJdOmJlZm9yZSB7ICAgICAgICAgICAgY29udGVudDogJ1xcZTgzNCc7IH1cbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gVEFCTEUgT0YgQ09OVEVOVFM6XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFZhcnNcbiMgMzIwcHhcbiMgNDgwcHhcbiMgNzY4cHhcbiMgMTAyNHB4XG4jIDEyMDBweFxuIyAxNjAwcHhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBWYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4kTkFWSUdBVElPTl9XSURUSDogMzIwcHg7XG4kTkFWX1RSQU5TSVRJT046IGFsbCAwLjVzIGVhc2U7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgMzIwcHggLyAyMGVtXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSB7XG5cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyA0ODBweCAvIDMwZW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgwcHgpIHtcblxuICAgIC5pc2gtd2lkZ2V0LWVsZW1lbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIH1cblxuICAgIC5pc2gtZGVjb3ItY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxNjBweDtcbiAgICB9XG5cbiAgICAuaXNoLW5hdmlnYXRpb24ge1xuICAgICAgICAmLmlzaC1uYXYtb24ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLW5hdmlnYXRpb24ge1xuICAgICAgICB3aWR0aDogNDgwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcblxuICAgICAgICAuaXNoLW5hdi1iZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkTkFWSUdBVElPTl9XSURUSDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtbmF2LWNsb3NlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgICAgIGxlZnQ6IDgwcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg4MGRlZykgdHJhbnNsYXRlWigwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgIGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB0cmFuc2xhdGVaKDApO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVaKDApO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAkTkFWX1RSQU5TSVRJT047XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1uYXYtY29udGFpbmVyLWJnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkTkFWSUdBVElPTl9XSURUSDtcbiAgICAgICAgICAgIGhlaWdodDogMTIwJTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAgICAgLmlzaC1uYXYtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDUwcHggMjBweCAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogODMlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogUE9SVEZPTElPICovXG4gICAgLmlzaC1wZmxvLWdhbC5pc2gtMWNvbCxcbiAgICAuaXNoLXBmbG8tZ2FsLmlzaC0yY29sIHtcblxuICAgICAgICAuaXNoLWl0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTYwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDg3cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4N3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gODdweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWl0ZW0uaXNoLWZlYXR1cmVkLWltYWdlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICB9XG5cbiAgICAvKiBQT1JURk9MSU8gLSBUZW1wbGF0ZXMgKi9cbiAgICAucGFnZS10ZW1wbGF0ZS1wb3J0Zm9saW8ge1xuICAgICAgICAuaXNoLWNhcHRpb24tY29udGFpbmVyIHNwYW46bm90KC5pc2gtaDQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdvcmRQcmVzcyBHYWxsZXJ5XG4gICAgLyogR2FsbGVyeSBDb2x1bW5zICovXG5cbiAgICAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktY29sdW1ucy0xIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMzMuMzMlO1xuICAgIH1cblxuICAgIC5nYWxsZXJ5LWNvbHVtbnMtNCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgLy8gU2VhcmNoIFJlc3VsdHNcbiAgICAuaXNoLXJlc3VsdHMge1xuICAgICAgICAuaXNoLXJlc3VsdCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTE2cHg7XG5cbiAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAuaXNoLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlzaC1yZXN1bHQtbnVtYmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgNjAxcHggLSBPbmx5IGZvciBXb3JkUHJlc3MgYWRtaW4gdG9wIGJhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDFweCkge1xuXG4gICAgLmFkbWluLWJhciB7XG4gICAgICAgIC5pc2gtc3RpY2t5LW9uIHtcbiAgICAgICAgICAgICYuc2l0ZS1oZWFkZXIge1xuICAgICAgICAgICAgICAgIC5pc2gtbG9nby1jb250YWluZXIsXG4gICAgICAgICAgICAgICAgLmlzaC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIDc2OHB4IC8gNDhlbVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuXG4gICAgLmFkbWluLWJhciB7XG4gICAgICAgIC5pc2gtc3RpY2t5LW9uIHtcbiAgICAgICAgICAgICYuc2l0ZS1oZWFkZXIge1xuICAgICAgICAgICAgICAgIC5pc2gtbG9nby1jb250YWluZXIsXG4gICAgICAgICAgICAgICAgLmlzaC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBIMSwgSDIsIEgzLCBINCwgSDUsIEg2LFxuICAgIHAsXG4gICAgdWwsXG4gICAgb2wsXG4gICAgZGwsXG4gICAgdGFibGUsXG4gICAgaHIsXG4gICAgYmxvY2txdW90ZSxcbiAgICBwcmUsXG4gICAgYWRkcmVzcyxcbiAgICAuaXNoLW1haW4tY29udGVudCAudGlsZWQtZ2FsbGVyeSwgLy9pbWFnZSBnYWxsZXJ5IGVsZW1lbnQgYnkgYWN0aXZlIGpldHBhY2tcbiAgICAuaXNoLW1haW4tY29udGVudCAuamV0cGFjay12aWRlby13cmFwcGVyLCAvL3ZpZGVvIGVsZW1lbnQgYnkgYWN0aXZlIGpldHBhY2tcbiAgICAucG9zdC1wYXNzd29yZC1mb3JtLFxuICAgIC5pc2gtdGhlbWUtZWxlbWVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgfVxuXG4gICAgcC5jb21tZW50LXN1YnNjcmlwdGlvbi1mb3JtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJsb2NrcXVvdGUgcCxcbiAgICBmb3JtIHA6bGFzdC1jaGlsZCxcbiAgICBmb3JtIHA6bGFzdC1jaGlsZCBpbnB1dCxcbiAgICBmb3JtLndwY2Y3LWZvcm0gcDpudGgtbGFzdC1jaGlsZCgyKSxcbiAgICBmb3JtLndwY2Y3LWZvcm0gcDpudGgtbGFzdC1jaGlsZCgyKSBpbnB1dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmlzaC1tYWluLWNvbnRlbnQge1xuICAgICAgICAuaXNoLXJvdzpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICpbY2xhc3MqPVwiaXNoLWNvbC1cIl06bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtc2lkZWJhciB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuXG4gICAgLnBhZ2Utd2l0aC1zaWRlYmFyIHtcbiAgICAgICAgLmlzaC1tYWluLWNvbnRlbnQge1xuICAgICAgICAgICAgZmxleC1iYXNpczogNjYuNjY3JTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNjYuNjY3JTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtc2lkZWJhciB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAmLmlzaC1zaWRlYmFyLWxlZnQge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaXNoLXNpZGViYXItcmlnaHQge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLXNpZGViYXIgLmlzaC13aWRnZXQtZWxlbWVudCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtY29udGFpbmVyLWZsdWlkIHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgIH1cblxuICAgIC5pc2gtZGVjb3ItY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAyMTBweDtcbiAgICB9XG5cbiAgICAuaXNoLXN0aWNreS1vbiB7XG4gICAgICAgICYuc2l0ZS1oZWFkZXIge1xuICAgICAgICAgICAgLmlzaC1oZWFkZXIge1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2l0ZS1oZWFkZXIge1xuICAgICAgICAuaXNoLWxvZ28tY29udGFpbmVyLFxuICAgICAgICAuaXNoLW1lbnUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIC5pc2gtbWVudS1kZXNjLFxuICAgICAgICAgICAgLmlzaC10aGVtZS10YWdsaW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWxvZ28tY29udGFpbmVyIHtcbiAgICAgICAgICAgIC5pc2gtdGhlbWUtdGFnbGluZS5pc2gtbm8tbG9nbyB7XG4gICAgICAgICAgICAgICAgLmlzaC10YWdsaW5lLXRleHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzaC1uYXZpZ2F0aW9uIHtcbiAgICAgICAgd2lkdGg6IDU1MHB4O1xuXG4gICAgICAgIC5pc2gtbmF2LWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMDBweCA1MHB4IDEwJSAyMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzaC1mb290ZXIge1xuICAgICAgICAuaXNoLXNlcGFyYXRvciB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtc29jaWFsLWJveCBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogOC4zMzMlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4LjMzMyU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5pc2gtc29jaWFsLWJveC1jb250YWN0IHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZmxleC1iYXNpczogOC4zMzMlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4LjMzMyU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLXJlc3VsdHMge1xuICAgICAgICAuaXNoLXJlc3VsdCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTI2cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtdHh0LWFsaWduLWxlZnQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIC5pc2gtdHh0LWFsaWduLXJpZ2h0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmlzaC10eHQtYWxpZ24tY2VudGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5pc2gtcmVzcC1jZW50ZXIge1xuICAgICAgICAuaXNoLW1haW4tY29udGVudCxcbiAgICAgICAgLmlzaC1zaWRlYmFyIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLXR4dC1hbGlnbi1sZWZ0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLXR4dC1hbGlnbi1yaWdodCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtdHh0LWFsaWduLWNlbnRlciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLXJlc3AtY2VudGVyIHtcbiAgICAgICAgLmlzaC1yZXN1bHQ6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLXJlc3AtY2VudGVyIHtcbiAgICAgICAgdWwsIG9sIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBDT05UQUNUICovXG4gICAgLmlzaC1jb250YWN0LWluZm8tY29udGFpbmVyIHtcbiAgICAgICAgLmlzaC1jb250YWN0LWluZm8tYm94IHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDI1MHB4O1xuXG4gICAgICAgICAgICBwLFxuICAgICAgICAgICAgLnNoYXJlZGFkZHkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogUE9SVEZPTElPICovXG4gICAgLmlzaC1wZmxvLWdhbC5pc2gtc2Nyb2xsLWFuaW0gLmlzaC1pdGVtIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAuaXNoLXBmbG8tZ2FsLmlzaC0yY29sIHtcblxuICAgICAgICAuaXNoLWl0ZW0ge1xuICAgICAgICAgICAgLmlzaC1pdGVtLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHZlcnRpY2FsX21hcmdpbiAqIDFweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikgLmlzaC1pdGVtLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICR2ZXJ0aWNhbF9tYXJnaW4gKiAxcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUyJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MiUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKDQ4JSArIDFweCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYuaXNoLXNjcm9sbC1hbmltIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0xMDBweDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyogUE9SVEZPTElPIC0gTmF2aWdhdGlvbiAqL1xuICAgIC5pc2gtcG9ydGZvbGlvLW5hdmlnYXRpb24ge1xuXG4gICAgICAgIGEsXG4gICAgICAgIC5pc2gtZGlzYWJsZWQge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpc2gtdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1vbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHNwYW46YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXYtbGlua3MgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgaTpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogLTMwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYTpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgLyogQkxPRyAqL1xuICAgIC5pc2gtYmxvZy1tYXNvbnJ5IC5pc2gtaXRlbTpmaXJzdC1jaGlsZCAuaXNoLWJsb2ctcG9zdC1tZWRpYSB7XG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGMoIDAuMTc3ICogKCAxMDAlICsgNDBweCArIDMycHggKSApOyAvLyA1MHB4XG4gICAgICAgIC8vbWFyZ2luLXRvcDogNTBweDtcbiAgICB9XG5cbiAgICAuaXNoLWJsb2ctbWFzb25yeSAuaXNoLWl0ZW06bnRoLWNoaWxkKDJuLTEpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICB9XG5cbiAgICAuaXNoLWJsb2ctbWFzb25yeSAuaXNoLWl0ZW06bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICB9XG5cbiAgICAuaXNoLWJsb2ctY2xhc3NpYyAuaXNoLWl0ZW0sXG4gICAgLmlzaC1ibG9nLWNsYXNzaWMgLmlzaC1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gICAgfVxuXG4gICAgLmlzaC1ibG9nLWNsYXNzaWMgLmlzaC1pdGVtIC5pc2gtYmxvZy1wb3N0LWRldGFpbHMsXG4gICAgLmlzaC1ibG9nLW1hc29ucnkgLmlzaC1pdGVtIC5pc2gtYmxvZy1wb3N0LWRldGFpbHMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgIH1cblxuICAgIC8qIEJMT0cgLSBTaW5nbGUgUG9zdCBOYXZpZ2F0aW9uICovXG4gICAgLmlzaC1wb3N0LW5hdmlnYXRpb24ge1xuICAgICAgICAubmF2LWxpbmtzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLXNlcGFyYXRvcixcbiAgICAgICAgLm5hdi1wcmV2aW91cyB+IC5uYXYtbmV4dDpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEsXG4gICAgICAgIC5pc2gtZGlzYWJsZWQge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA2cHg7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGlzaC11bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgc3BhbjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJE5BVl9UUkFOU0lUSU9OO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLm5hdi1wcmV2aW91cyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgICAgICAubmF2LW5leHQge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hdi1wcmV2aW91cyBhOmhvdmVyIHtcbiAgICAgICAgICAgIGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAtMzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXYtbmV4dCBhOmhvdmVyIHtcbiAgICAgICAgICAgIGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAzMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogQkxPRyAtIFRlbXBsYXRlcyAqL1xuICAgIC5wYWdlLXRlbXBsYXRlLWJsb2cge1xuICAgICAgICAuaXNoLXBhZ2luYXRpb24tY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xMDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIFRFQU0gKi9cbiAgICAuaXNoLXNoYWRvdy1pbWFnZSB7XG5cbiAgICAgICAgLmlzaC1pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4N3B4KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogODdweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXNoLWNhcHRpb25zLXJpZ2h0IHtcbiAgICAgICAgICAgIC5pc2gtaXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDg3cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzaC1jYXB0aW9ucy1yaWdodCB7XG4gICAgICAgICAgICAuaXNoLWl0ZW0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4N3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5pc2gtbm8tbWFyZ2luIHtcbiAgICAgICAgICAgIC5pc2gtaXRlbSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4N3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmlzaC1jYXB0aW9ucy1yaWdodCB7XG4gICAgICAgICAgICAgICAgLmlzaC1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmlzaC1jYXB0aW9ucy1yaWdodCB7XG4gICAgICAgICAgICAgICAgLmlzaC1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5pc2gtdGVhbS1hcmNoaXZlLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gICAgfVxuXG4gICAgLyogVEVBTSAtIFRlbXBsYXRlcyAqL1xuICAgIC5wYWdlLXRlbXBsYXRlLXRlYW0ge1xuICAgICAgICAuc2l0ZS1jb250ZW50IHtcbiAgICAgICAgICAgIC5pc2gtcm93IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC01MHB4O1xuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBNQVAgKi9cbiAgICAjbWFwIHtcbiAgICAgICAgaGVpZ2h0OiA2MDBweDtcbiAgICB9XG5cbiAgICAvKiBDb250ZW50ICovXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIHBhZGRpbmc6IDUwcHg7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdG9wOiAtNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdG9wOiA1MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJlIHtcbiAgICAgICAgcGFkZGluZzogNDBweDtcbiAgICB9XG5cbiAgICAuYWxpZ25jZW50ZXIsXG4gICAgaW1nLmFsaWduY2VudGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICAuYWxpZ25sZWZ0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICAgIC5hbGlnbnJpZ2h0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuXG4gICAgZmlndXJlLmFsaWdubGVmdCxcbiAgICBmaWd1cmUuYWxpZ25yaWdodCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgZmlndXJlLmFsaWducmlnaHQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgZmlndXJlLmFsaWduY2VudGVyLFxuICAgIGZpZ3VyZS5hbGlnbm5vbmUge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gNTBweCBhdXRvO1xuICAgIH1cblxuICAgIGZpZ3VyZS5hbGlnbmNlbnRlciBmaWdjYXB0aW9uLFxuICAgIGZpZ3VyZS5hbGlnbm5vbmUgZmlnY2FwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAuNWVtIDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBmaWd1cmUuYWxpZ25yaWdodCBmaWdjYXB0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMC41ZW0gMDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmlzaC1pbWctYWxpZ24tbGVmdCxcbiAgICBpbWcuYWxpZ25sZWZ0LFxuICAgIGZpZ3VyZS5hbGlnbmxlZnQge1xuICAgICAgICBtYXJnaW46IDAgMS41ZW0gMC41ZW0gMDtcbiAgICB9XG5cbiAgICAuaXNoLWltZy1hbGlnbi1yaWdodCxcbiAgICBpbWcuYWxpZ25yaWdodCxcbiAgICBmaWd1cmUuYWxpZ25yaWdodCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAuNWVtIDEuMmVtO1xuICAgIH1cblxuICAgIC5pc2gtaW1nLWFsaWduLWxlZnQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMS41ZW0gMC41ZW0gMDtcbiAgICB9XG5cbiAgICAuaXNoLWltZy1hbGlnbi1yaWdodCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCAwLjVlbSAxLjJlbTtcbiAgICB9XG5cbiAgICAuaXNoLWltZy1hbGlnbi1jZW50ZXIge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCAwIDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cblxuICAgIC5pc2gtcmVzcC1jZW50ZXIge1xuICAgICAgICAuaXNoLWltZy1hbGlnbi1sZWZ0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxLjVlbSAwLjVlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1pbWctYWxpZ24tcmlnaHQge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMC41ZW0gMS4yZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBHYWxsZXJ5IENvbHVtbnMgKi9cblxuICAgIC5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktY29sdW1ucy02IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDE2LjY2JTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTcgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTQuMjglO1xuICAgIH1cblxuICAgIC5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMi41JTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTEuMTElO1xuICAgIH1cblxuICAgIC5wb3N0LXBhc3N3b3JkLWZvcm0ge1xuICAgICAgICBwYWRkaW5nOiAyLjVyZW0gM3JlbSAzcmVtO1xuICAgIH1cblxuXG4gICAgLmlzaC1jb250ZW50LW92ZXJsYXktc21hbGwgLnNpdGUtY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC01MHB4O1xuICAgIH1cblxuICAgIC5pc2gtY29udGVudC1vdmVybGF5LW1lZGl1bSAuc2l0ZS1jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEwMHB4O1xuICAgIH1cblxuICAgIC5pc2gtY29udGVudC1vdmVybGF5LWxhcmdlIC5zaXRlLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTUwcHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIDEwMjRweCAvIDY0ZW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmlzaC1kZWNvci1jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDI4MHB4O1xuICAgIH1cblxuICAgIC5zaXRlLWhlYWRlciB7XG4gICAgICAgIC5pc2gtaGVhZGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNpdGUtdGl0bGUsIGgxIHtcbiAgICAgICAgICAgIG1hcmdpbjogMTAwcHggMCA0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzaC1ibG9nLW1hc29ucnkgLmlzaC1pdGVtOm50aC1jaGlsZCgybi0xKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgfVxuXG4gICAgLmlzaC1ibG9nLW1hc29ucnkgLmlzaC1pdGVtOm50aC1jaGlsZCgybikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgfVxuXG4gICAgLyogVEVBTSAqL1xuICAgIC5pc2gtdGVhbS1hcmNoaXZlLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLyogTUFQICovXG4gICAgI21hcCB7XG4gICAgICAgIGhlaWdodDogODAwcHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIDEzNjBweCAvIDg1ZW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTM2MHB4KSB7XG4gICAgLmlzaC1kZWNvci1jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDM5MHB4O1xuICAgIH1cblxuICAgIC5pc2gtc3RpY2t5LW9uIHtcbiAgICAgICAgJi5zaXRlLWhlYWRlciB7XG4gICAgICAgICAgICAuaXNoLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDRyZW0gLSAzMnB4KTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pc2gtbG9nby1jb250YWluZXIsXG4gICAgICAgICAgICAuaXNoLW1lbnUtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICB0b3A6IDQwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNpdGUtaGVhZGVyIHtcbiAgICAgICAgLmlzaC1oZWFkZXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtbG9nby1jb250YWluZXIsXG4gICAgICAgIC5pc2gtbWVudS1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAxMDBweDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0ODBweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTtcbiAgICAgICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgLmlzaC12ZXJ0aWNhbCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlzaC1tZW51LWRlc2MsXG4gICAgICAgICAgICAuaXNoLXRoZW1lLXRhZ2xpbmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjAwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgICAgIHRvcDogMzVweDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlzaC1tZW51LWRlc2Mge1xuICAgICAgICAgICAgICAgIHRvcDogMjJweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1sb2dvLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTY2MHB4O1xuXG4gICAgICAgICAgICAuaXNoLXRoZW1lLXRhZ2xpbmUge1xuICAgICAgICAgICAgICAgICYuaXNoLW5vLWxvZ28ge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IC0yZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIC5zaXRlLXRpdGxlLXRleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgICAuaXNoLWljb24tbmF2IGkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zaXRlLXRpdGxlLCBoMSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtY29udGVudC1vdmVybGF5LXNtYWxsIC5zaXRlLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTAwcHg7XG4gICAgfVxuXG4gICAgLmlzaC1jb250ZW50LW92ZXJsYXktbWVkaXVtIC5zaXRlLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTUwcHg7XG4gICAgfVxuXG4gICAgLmlzaC1jb250ZW50LW92ZXJsYXktbGFyZ2UgLnNpdGUtY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yMzBweDtcbiAgICB9XG5cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyAxOTIwcHggLyAxMjBlbVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgICAuaXNoLWRlY29yLWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogNDcwcHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEhFSUdIVFxuIyA4MDBweFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWhlaWdodDogODAwcHgpIHtcbiAgICAuaXNoLW5hdmlnYXRpb24ge1xuICAgICAgICAuaXNoLW5hdi1iZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDE1MCU7XG4gICAgICAgIH1cbiAgICB9XG59Il19 */ 
     64/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJfbm9ybWFsaXplLnNjc3MiLCJfZmxleGJveGdyaWQuc2NzcyIsIl9ib2lsZXJwbGF0ZS5zY3NzIiwiX2xheW91dC5zY3NzIiwic2hvcnRjb2Rlcy1zdHlsZXMvX3Nob3J0Y29kZXMuc2NzcyIsIl9mb250cy5zY3NzIiwiX2lzaC1pY29ucy5zY3NzIiwiX3BvcnRmb2xpby5zY3NzIiwiX2Jsb2cuc2NzcyIsIl9zb2NpYWwtaWNvbnMuc2NzcyIsIl9yZXNwb25zaXZlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0JFOzs7Ozs7Ozs7Ozs7Ozs7OztnRUFtQjhEOztnRUFNQSw0RUM3Q1ksS0FTeEUsdUJBQ0EsMEJBQ0EsNkJBQStCLENBQ2xDLEtBT0csUUFBVSxDQUNiLDJGQXlCRyxhQUFlLENBQ2xCLDRCQVdHLHFCQUNBLHVCQUF5QixDQUM1QixzQkFRRyxhQUNBLFFBQVUsQ0FDYixrQkFTRyxZQUFjLENBQ2pCLEVBVUcsNEJBQThCLENBQ2pDLGlCQVNHLFNBQVcsQ0FDZCxZQVVHLHdCQUEwQixDQUM3QixTQVFHLGdCQUFrQixDQUNyQixJQU9HLGlCQUFtQixDQUN0QixHQVFHLGNBQ0EsZUFBaUIsQ0FDcEIsS0FPRyxnQkFDQSxVQUFZLENBQ2YsTUFPRyxhQUFlLENBQ2xCLFFBUUcsY0FDQSxjQUNBLGtCQUNBLHVCQUF5QixDQUM1QixJQUdHLFVBQVksQ0FDZixJQUdHLGNBQWdCLENBQ25CLElBVUcsUUFBVSxDQUNiLGVBT0csZUFBaUIsQ0FDcEIsT0FVRyxlQUFpQixDQUNwQixHQU9HLHVCQUNBLFFBQVUsQ0FDYixJQU9HLGFBQWUsQ0FDbEIsa0JBVUcsaUNBQ0EsYUFBZSxDQUNsQixzQ0FzQkcsY0FDQSxhQUNBLFFBQVUsQ0FDYixPQU9HLGdCQUFrQixDQUNyQixjQVdHLG1CQUFxQixDQUN4QiwwRUFjRywwQkFDQSxjQUFnQixDQUNuQixzQ0FRRyxjQUFnQixDQUNuQixpREFR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Q0FHRyxpQkFBbUIsQ0FDdEIseUNBR0csaUJBQW1CLENBQ3RCLENBTUwsMkNBQ0kscUJBQ0ksWUFBYyxDQUNqQix5QkFJTyxnQkFBa0IsQ0FGMUIseUNBTVEsbUJBQXFCLENBQ3hCLDRDQUlELGtCQUFvQixDQUN2QiwwQ0FHRyxpQkFBbUIsQ0FDdEIsMEJBSUcsY0FDQSxnQkFBa0IsQ0FDckIsS0FJRyxZQUFjLENBQ2pCLENBTUwsMkNBQ0kscUJBQ0ksWUFBYyxDQUNqQix1Q0FLVywrQkFDQSxhQUNBLGVBQWlCLENBTDdCLDhGQVVZLFNBQ0EsV0FBYSxDQUNoQix5QkFNRCxZQUFjLENBRnRCLGtFQU9RLGVBQ0EsVUFDQSxTQUNBLGtCQUNBLGFBQ0EsV0FDQSxZQUNBLGlCQUFtQixDQWQzQiw4RkFpQlksd0JBQWlCLENBakI3Qix3TUFzQlksa0JBQ0EsV0FDQSxVQUNBLFlBQ0EsVUFDQSxTQUNBLHlCQUEyQixDQTVCdkMsZ0dBZ0NZLFNBQ0Esa0JBQW9CLENBakNoQyxpQ0FzQ1Esa0JBQW9CLENBdEM1QixnRUEwQ2dCLFNBQ0EsZ0JBQWtCLENBM0NsQyxpRkE4Q29CLGNBQ0EsU0FBVyxDQS9DL0IsaURBdURZLFdBQ0Esb0JBQXNCLENBeERsQyx5Q0E2RFEsZ0JBQWtCLENBQ3JCLHlDQUlELGlCQUFtQixDQUN0QiwwQ0FHRyxpQkFBbUIsQ0FDdEIseUNBR0csaUJBQW1CLENBQ3RCLENBT0wsMkNBQ0kscUJBQ0ksWUFBYyxDQUNqQixDQU9MLDJDQUNJLDRCQUVRLFdBQWEsQ0FDaEIsQ0FBQSIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcblRoZW1lIE5hbWU6IFF1c3EgTGl0ZVxuVGhlbWUgVVJJOiBodHRwczovL2lzaHlvYm95LmNvbS90aGVtZXMvcXVzcS1wcm8vXG5BdXRob3I6IElzaFlvQm95LmNvbVxuQXV0aG9yIFVSSTogaHR0cDovL2lzaHlvYm95LmNvbS9cbkRlc2NyaXB0aW9uOiBRdXNxIExpdGUgaXMgYSB1bmlxdWUgY29sb3VyZnVsIHBvcnRmb2xpbyB0aGVtZSwgcGVyZmVjdGx5IHN1aXRhYmxlIGZvciBkZXNpZ25lcnMsIGZyZWVsYW5jZXJzICYgYWxsIGtpbmQgb2YgYXJ0aXN0IHdobyB3YW50IHRvIHNob3cgb2ZmIHRoZWlyIGNyZWF0aXZlIHdvcmsgd2l0aCBzdHlsZS4gSXQgY292ZXJzIGFsbCB0aGUgbmVjZXNzYXJ5IHBhZ2VzIHN1Y2ggYSBwb3J0Zm9saW8gd2Vic2l0ZSBtaWdodCBuZWVkLlxuVmVyc2lvbjogMS4wLjNcbkxpY2Vuc2U6IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYyIG9yIGxhdGVyXG5MaWNlbnNlIFVSSTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0yLjAuaHRtbFxuVGV4dCBEb21haW46IHF1c3EtbGl0ZVxuVGFnczogdHdvLWNvbHVtbnMsIHJpZ2h0LXNpZGViYXIsIGdyaWQtbGF5b3V0LCBjdXN0b20tY29sb3JzLCBjdXN0b20tbWVudSwgZWRpdG9yLXN0eWxlLCBmZWF0dXJlZC1pbWFnZXMsIGZ1bGwtd2lkdGgtdGVtcGxhdGUsIHN0aWNreS1wb3N0LCB0aGVtZS1vcHRpb25zLCB0aHJlYWRlZC1jb21tZW50cywgdHJhbnNsYXRpb24tcmVhZHksIGJsb2csIHBob3RvZ3JhcGh5LCBwb3J0Zm9saW9cblxuVGhpcyB0aGVtZSwgbGlrZSBXb3JkUHJlc3MsIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuXG5Vc2UgaXQgdG8gbWFrZSBzb21ldGhpbmcgY29vbCwgaGF2ZSBmdW4sIGFuZCBzaGFyZSB3aGF0IHlvdSd2ZSBsZWFybmVkIHdpdGggb3RoZXJzLlxuXG5RdXNxIExpdGUgaXMgYmFzZWQgb24gVW5kZXJzY29yZXMgaHR0cDovL3VuZGVyc2NvcmVzLm1lLywgKEMpIDIwMTItMjAxNiBBdXRvbWF0dGljLCBJbmMuXG5VbmRlcnNjb3JlcyBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHUEwgdjIgb3IgbGF0ZXIuXG5cbk5vcm1hbGl6aW5nIHN0eWxlcyBoYXZlIGJlZW4gaGVscGVkIGFsb25nIHRoYW5rcyB0byB0aGUgZmluZSB3b3JrIG9mXG5OaWNvbGFzIEdhbGxhZ2hlciBhbmQgSm9uYXRoYW4gTmVhbCBodHRwOi8vbmVjb2xhcy5naXRodWIuY29tL25vcm1hbGl6ZS5jc3MvXG4qL1xuXG4vKiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gVEFCTEUgT0YgQ09OVEVOVFM6XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE5vcm1hbGl6ZVxuIyBGbGV4Qm94IEdyaWQgU3lzdGVtXG4jIEJvaWxlcnBsYXRlIFN0eWxlc1xuXG4jIE1haW4gTGF5b3V0XG4jIFNob3J0Y29kZXNcbiMgRm9udHNcbiMgSWNvbnNcbiMgQ29sb3JzXG4jIFBvcnRmb2xpb1xuIyBCbG9nXG4jIExpZ2h0Ym94XG4jIEp1c3RpZmllZCBHYWxsZXJ5XG4jIE1lZGlhIFF1ZXJpZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTm9ybWFsaXplXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdub3JtYWxpemUuc2Nzcyc7XG5cblxuLyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBGbGV4Qm94IEdyaWQgU3lzdGVtXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBpbXBvcnQgJ2ZsZXhib3hncmlkLnNjc3MnO1xuXG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQm9pbGVycGxhdGUgU3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdib2lsZXJwbGF0ZS5zY3NzJztcblxuXG4vKiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE1haW4gTGF5b3V0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdsYXlvdXQuc2Nzcyc7XG5cblxuLyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBTaG9ydGNvZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdzaG9ydGNvZGVzLXN0eWxlcy9zaG9ydGNvZGVzJztcblxuXG4vKiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdmb250cy5zY3NzJztcblxuXG4vKiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdpc2gtaWNvbnMuc2Nzcyc7XG5cblxuLyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8vIE1PVkVEIFRPIGNvbG9ycy5waHAgdG8gc3VwcG9ydCBjdXN0b21pemVyIHZhbHVlc1xuXG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgUG9ydGZvbGlvXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdwb3J0Zm9saW8uc2Nzcyc7XG5cblxuLyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBCbG9nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdibG9nLnNjc3MnO1xuXG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQmxvZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnc29jaWFsLWljb25zLnNjc3MnO1xuXG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTWVkaWEgUXVlcmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAncmVzcG9uc2l2ZS5zY3NzJzsiLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAgIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICAgIGJvcmRlcjogMDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICAgIHBhZGRpbmc6IDA7XG59IiwiLmlzaC1jb250YWluZXItZmx1aWQsXG4uaXNoLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4uaXNoLWNvbnRhaW5lci1mbHVpZCB7XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG59XG5cbi5pc2gtcm93IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgLXdlYmtpdC1mbGV4OiAwIDEgYXV0bztcbiAgICAtbXMtZmxleDogMCAxIGF1dG87XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1yaWdodDogLTAuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbn1cblxuLmlzaC1yb3cuaXNoLXJldmVyc2Uge1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG5cbi5pc2gtY29sLmlzaC1yZXZlcnNlIHtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbn1cblxuLmlzaC1jb2wteHMsXG4uaXNoLWNvbC14cy0xLFxuLmlzaC1jb2wteHMtMixcbi5pc2gtY29sLXhzLTMsXG4uaXNoLWNvbC14cy00LFxuLmlzaC1jb2wteHMtNSxcbi5pc2gtY29sLXhzLTYsXG4uaXNoLWNvbC14cy03LFxuLmlzaC1jb2wteHMtOCxcbi5pc2gtY29sLXhzLTksXG4uaXNoLWNvbC14cy0xMCxcbi5pc2gtY29sLXhzLTExLFxuLmlzaC1jb2wteHMtMTIsXG4uaXNoLWNvbC14cy1vZmZzZXQtMCxcbi5pc2gtY29sLXhzLW9mZnNldC0xLFxuLmlzaC1jb2wteHMtb2Zmc2V0LTIsXG4uaXNoLWNvbC14cy1vZmZzZXQtMyxcbi5pc2gtY29sLXhzLW9mZnNldC00LFxuLmlzaC1jb2wteHMtb2Zmc2V0LTUsXG4uaXNoLWNvbC14cy1vZmZzZXQtNixcbi5pc2gtY29sLXhzLW9mZnNldC03LFxuLmlzaC1jb2wteHMtb2Zmc2V0LTgsXG4uaXNoLWNvbC14cy1vZmZzZXQtOSxcbi5pc2gtY29sLXhzLW9mZnNldC0xMCxcbi5pc2gtY29sLXhzLW9mZnNldC0xMSxcbi5pc2gtY29sLXhzLW9mZnNldC0xMiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xuICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87XG4gICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbn1cblxuLmlzaC1jb2wteHMge1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gICAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMDtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMDtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmlzaC1jb2wteHMtMSB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDguMzMzJTtcbiAgICBmbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMyU7XG59XG5cbi5pc2gtY29sLXhzLTIge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMTYuNjY2JTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTYuNjY2JTtcbiAgICBmbGV4LWJhc2lzOiAxNi42NjYlO1xuICAgIG1heC13aWR0aDogMTYuNjY2JTtcbn1cblxuLmlzaC1jb2wteHMtMyB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAyNSU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDI1JTtcbiAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG59XG5cbi5pc2gtY29sLXhzLTQge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMzMuMzMzJTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMzMuMzMzJTtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzJTtcbn1cblxuLmlzaC1jb2wteHMtNSB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA0MS42NjclO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA0MS42NjclO1xuICAgIGZsZXgtYmFzaXM6IDQxLjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjclO1xufVxuXG4uaXNoLWNvbC14cy02IHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDUwJTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNTAlO1xuICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbn1cblxuLmlzaC1jb2wteHMtNyB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1OC4zMzMlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA1OC4zMzMlO1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMlO1xufVxuXG4uaXNoLWNvbC14cy04IHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDY2LjY2NyU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDY2LjY2NyU7XG4gICAgZmxleC1iYXNpczogNjYuNjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NyU7XG59XG5cbi5pc2gtY29sLXhzLTkge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogNzUlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA3NSU7XG4gICAgZmxleC1iYXNpczogNzUlO1xuICAgIG1heC13aWR0aDogNzUlO1xufVxuXG4uaXNoLWNvbC14cy0xMCB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4My4zMzMlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA4My4zMzMlO1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMlO1xufVxuXG4uaXNoLWNvbC14cy0xMSB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA5MS42NjclO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA5MS42NjclO1xuICAgIGZsZXgtYmFzaXM6IDkxLjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjclO1xufVxuXG4uaXNoLWNvbC14cy0xMiB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxMDAlO1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5pc2gtY29sLXhzLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMlO1xufVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NiU7XG59XG5cbi5pc2gtY29sLXhzLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xufVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMyU7XG59XG5cbi5pc2gtY29sLXhzLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY3JTtcbn1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG59XG5cbi5pc2gtY29sLXhzLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzJTtcbn1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjclO1xufVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbn1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzJTtcbn1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY3JTtcbn1cblxuLmlzaC1zdGFydC14cyB7XG4gICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xufVxuXG4uaXNoLWNlbnRlci14cyB7XG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmlzaC1lbmQteHMge1xuICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgLW1zLWZsZXgtcGFjazogZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgdGV4dC1hbGlnbjogZW5kO1xufVxuXG4uaXNoLXRvcC14cyB7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4uaXNoLW1pZGRsZS14cyB7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uaXNoLWJvdHRvbS14cyB7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cblxuLmlzaC1hcm91bmQteHMge1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLmlzaC1iZXR3ZWVuLXhzIHtcbiAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uaXNoLWZpcnN0LXhzIHtcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xuICAgIC13ZWJraXQtb3JkZXI6IC0xO1xuICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcbiAgICBvcmRlcjogLTE7XG59XG5cbi5pc2gtbGFzdC14cyB7XG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcbiAgICAtd2Via2l0LW9yZGVyOiAxO1xuICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xuICAgIG9yZGVyOiAxO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuaXNoLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiA0OXJlbTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbSxcbiAgICAuaXNoLWNvbC1zbS0xLFxuICAgIC5pc2gtY29sLXNtLTIsXG4gICAgLmlzaC1jb2wtc20tMyxcbiAgICAuaXNoLWNvbC1zbS00LFxuICAgIC5pc2gtY29sLXNtLTUsXG4gICAgLmlzaC1jb2wtc20tNixcbiAgICAuaXNoLWNvbC1zbS03LFxuICAgIC5pc2gtY29sLXNtLTgsXG4gICAgLmlzaC1jb2wtc20tOSxcbiAgICAuaXNoLWNvbC1zbS0xMCxcbiAgICAuaXNoLWNvbC1zbS0xMSxcbiAgICAuaXNoLWNvbC1zbS0xMixcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMCxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMSxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMixcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMyxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNCxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNSxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNixcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNyxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtOCxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtOSxcbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMTAsXG4gICAgLmlzaC1jb2wtc20tb2Zmc2V0LTExLFxuICAgIC5pc2gtY29sLXNtLW9mZnNldC0xMiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87XG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20ge1xuICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xuICAgICAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTtcbiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAwO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMDtcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLTEge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDguMzMzJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDguMzMzJTtcbiAgICAgICAgZmxleC1iYXNpczogOC4zMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDguMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS0yIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxNi42NjYlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTYuNjY2JTtcbiAgICAgICAgZmxleC1iYXNpczogMTYuNjY2JTtcbiAgICAgICAgbWF4LXdpZHRoOiAxNi42NjYlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLTMge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDI1JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDI1JTtcbiAgICAgICAgZmxleC1iYXNpczogMjUlO1xuICAgICAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS00IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMzMuMzMzJTtcbiAgICAgICAgZmxleC1iYXNpczogMzMuMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLTUge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDQxLjY2NyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA0MS42NjclO1xuICAgICAgICBmbGV4LWJhc2lzOiA0MS42NjclO1xuICAgICAgICBtYXgtd2lkdGg6IDQxLjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tNiB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogNTAlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNTAlO1xuICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgICAgIG1heC13aWR0aDogNTAlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLTcge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDU4LjMzMyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA1OC4zMzMlO1xuICAgICAgICBmbGV4LWJhc2lzOiA1OC4zMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDU4LjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tOCB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogNjYuNjY3JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDY2LjY2NyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDY2LjY2NyU7XG4gICAgICAgIG1heC13aWR0aDogNjYuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS05IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA3NSU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA3NSU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDc1JTtcbiAgICAgICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tMTAge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDgzLjMzMyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA4My4zMzMlO1xuICAgICAgICBmbGV4LWJhc2lzOiA4My4zMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDgzLjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tMTEge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDkxLjY2NyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA5MS42NjclO1xuICAgICAgICBmbGV4LWJhc2lzOiA5MS42NjclO1xuICAgICAgICBtYXgtd2lkdGg6IDkxLjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tMTIge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxMDAlO1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tb2Zmc2V0LTAge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4LjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tb2Zmc2V0LTIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTYuNjY2JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtMyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tb2Zmc2V0LTQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMzMuMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MS42NjclO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLW9mZnNldC02IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1zbS1vZmZzZXQtNyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLW9mZnNldC04IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDY2LjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtc20tb2Zmc2V0LTkge1xuICAgICAgICBtYXJnaW4tbGVmdDogNzUlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLW9mZnNldC0xMCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLXNtLW9mZnNldC0xMSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA5MS42NjclO1xuICAgIH1cblxuICAgIC5pc2gtc3RhcnQtc20ge1xuICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cblxuICAgIC5pc2gtY2VudGVyLXNtIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmlzaC1lbmQtc20ge1xuICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB0ZXh0LWFsaWduOiBlbmQ7XG4gICAgfVxuXG4gICAgLmlzaC10b3Atc20ge1xuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLmlzaC1taWRkbGUtc20ge1xuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmlzaC1ib3R0b20tc20ge1xuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xuICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgIC5pc2gtYXJvdW5kLXNtIHtcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICAgICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgfVxuXG4gICAgLmlzaC1iZXR3ZWVuLXNtIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG5cbiAgICAuaXNoLWZpcnN0LXNtIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMDtcbiAgICAgICAgLXdlYmtpdC1vcmRlcjogLTE7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgIH1cblxuICAgIC5pc2gtbGFzdC1zbSB7XG4gICAgICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDI7XG4gICAgICAgIC13ZWJraXQtb3JkZXI6IDE7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xuICAgICAgICBvcmRlcjogMTtcbiAgICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5pc2gtY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDY1cmVtO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLFxuICAgIC5pc2gtY29sLW1kLTEsXG4gICAgLmlzaC1jb2wtbWQtMixcbiAgICAuaXNoLWNvbC1tZC0zLFxuICAgIC5pc2gtY29sLW1kLTQsXG4gICAgLmlzaC1jb2wtbWQtNSxcbiAgICAuaXNoLWNvbC1tZC02LFxuICAgIC5pc2gtY29sLW1kLTcsXG4gICAgLmlzaC1jb2wtbWQtOCxcbiAgICAuaXNoLWNvbC1tZC05LFxuICAgIC5pc2gtY29sLW1kLTEwLFxuICAgIC5pc2gtY29sLW1kLTExLFxuICAgIC5pc2gtY29sLW1kLTEyLFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0wLFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0xLFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0yLFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0zLFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC00LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC01LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC02LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC03LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC04LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC05LFxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0xMCxcbiAgICAuaXNoLWNvbC1tZC1vZmZzZXQtMTEsXG4gICAgLmlzaC1jb2wtbWQtb2Zmc2V0LTEyIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMDtcbiAgICAgICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bztcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gICAgICAgIC13ZWJraXQtZmxleC1ncm93OiAxO1xuICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDA7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwO1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtMSB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogOC4zMzMlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogOC4zMzMlO1xuICAgICAgICBmbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgICAgIG1heC13aWR0aDogOC4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLTIge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDE2LjY2NiU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxNi42NjYlO1xuICAgICAgICBmbGV4LWJhc2lzOiAxNi42NjYlO1xuICAgICAgICBtYXgtd2lkdGg6IDE2LjY2NiU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtMyB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMjUlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMjUlO1xuICAgICAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgICAgIG1heC13aWR0aDogMjUlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLTQge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDMzLjMzMyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAzMy4zMzMlO1xuICAgICAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtNSB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogNDEuNjY3JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDQxLjY2NyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDQxLjY2NyU7XG4gICAgICAgIG1heC13aWR0aDogNDEuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC02IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1MCU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA1MCU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtNyB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogNTguMzMzJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDU4LjMzMyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDU4LjMzMyU7XG4gICAgICAgIG1heC13aWR0aDogNTguMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC04IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA2Ni42NjclO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNjYuNjY3JTtcbiAgICAgICAgZmxleC1iYXNpczogNjYuNjY3JTtcbiAgICAgICAgbWF4LXdpZHRoOiA2Ni42NjclO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLTkge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDc1JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDc1JTtcbiAgICAgICAgZmxleC1iYXNpczogNzUlO1xuICAgICAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC0xMCB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogODMuMzMzJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDgzLjMzMyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDgzLjMzMyU7XG4gICAgICAgIG1heC13aWR0aDogODMuMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC0xMSB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogOTEuNjY3JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDkxLjY2NyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDkxLjY2NyU7XG4gICAgICAgIG1heC13aWR0aDogOTEuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC0xMiB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDEwMCU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC1vZmZzZXQtMCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0xIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDguMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC1vZmZzZXQtMiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNi42NjYlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLW9mZnNldC0zIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC1vZmZzZXQtNCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLW9mZnNldC01IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtb2Zmc2V0LTYge1xuICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLW1kLW9mZnNldC03IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDU4LjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtb2Zmc2V0LTgge1xuICAgICAgICBtYXJnaW4tbGVmdDogNjYuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1tZC1vZmZzZXQtOSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtb2Zmc2V0LTEwIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDgzLjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbWQtb2Zmc2V0LTExIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDkxLjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1zdGFydC1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuXG4gICAgLmlzaC1jZW50ZXItbWQge1xuICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuaXNoLWVuZC1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIHRleHQtYWxpZ246IGVuZDtcbiAgICB9XG5cbiAgICAuaXNoLXRvcC1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcbiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICAuaXNoLW1pZGRsZS1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuaXNoLWJvdHRvbS1tZCB7XG4gICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XG4gICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLmlzaC1hcm91bmQtbWQge1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICB9XG5cbiAgICAuaXNoLWJldHdlZW4tbWQge1xuICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgIC5pc2gtZmlyc3QtbWQge1xuICAgICAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xuICAgICAgICAtd2Via2l0LW9yZGVyOiAtMTtcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xO1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgfVxuXG4gICAgLmlzaC1sYXN0LW1kIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcbiAgICAgICAgLXdlYmtpdC1vcmRlcjogMTtcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDE7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLmlzaC1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogNzZyZW07XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGcsXG4gICAgLmlzaC1jb2wtbGctMSxcbiAgICAuaXNoLWNvbC1sZy0yLFxuICAgIC5pc2gtY29sLWxnLTMsXG4gICAgLmlzaC1jb2wtbGctNCxcbiAgICAuaXNoLWNvbC1sZy01LFxuICAgIC5pc2gtY29sLWxnLTYsXG4gICAgLmlzaC1jb2wtbGctNyxcbiAgICAuaXNoLWNvbC1sZy04LFxuICAgIC5pc2gtY29sLWxnLTksXG4gICAgLmlzaC1jb2wtbGctMTAsXG4gICAgLmlzaC1jb2wtbGctMTEsXG4gICAgLmlzaC1jb2wtbGctMTIsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTAsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTEsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTIsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTMsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTQsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTUsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTYsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTcsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTgsXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTksXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTEwLFxuICAgIC5pc2gtY29sLWxnLW9mZnNldC0xMSxcbiAgICAuaXNoLWNvbC1sZy1vZmZzZXQtMTIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xuICAgICAgICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7XG4gICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMDtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDA7XG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy0xIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA4LjMzMyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDguMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiA4LjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctMiB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMTYuNjY2JTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDE2LjY2NiU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDE2LjY2NiU7XG4gICAgICAgIG1heC13aWR0aDogMTYuNjY2JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy0zIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAyNSU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAyNSU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDI1JTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctNCB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMzMuMzMzJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDMzLjMzMyU7XG4gICAgICAgIGZsZXgtYmFzaXM6IDMzLjMzMyU7XG4gICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy01IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA0MS42NjclO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNDEuNjY3JTtcbiAgICAgICAgZmxleC1iYXNpczogNDEuNjY3JTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MS42NjclO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLTYge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDUwJTtcbiAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDUwJTtcbiAgICAgICAgZmxleC1iYXNpczogNTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy03IHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1OC4zMzMlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNTguMzMzJTtcbiAgICAgICAgZmxleC1iYXNpczogNTguMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1OC4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLTgge1xuICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDY2LjY2NyU7XG4gICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA2Ni42NjclO1xuICAgICAgICBmbGV4LWJhc2lzOiA2Ni42NjclO1xuICAgICAgICBtYXgtd2lkdGg6IDY2LjY2NyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctOSB7XG4gICAgICAgIC13ZWJraXQtZmxleC1iYXNpczogNzUlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNzUlO1xuICAgICAgICBmbGV4LWJhc2lzOiA3NSU7XG4gICAgICAgIG1heC13aWR0aDogNzUlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLTEwIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4My4zMzMlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogODMuMzMzJTtcbiAgICAgICAgZmxleC1iYXNpczogODMuMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiA4My4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLTExIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA5MS42NjclO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogOTEuNjY3JTtcbiAgICAgICAgZmxleC1iYXNpczogOTEuNjY3JTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MS42NjclO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLTEyIHtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTAwJTtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLW9mZnNldC0wIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOC4zMzMlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLW9mZnNldC0yIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2LjY2NiU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTMge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjUlO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLW9mZnNldC00IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMzLjMzMyU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTUge1xuICAgICAgICBtYXJnaW4tbGVmdDogNDEuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy1vZmZzZXQtNiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgfVxuXG4gICAgLmlzaC1jb2wtbGctb2Zmc2V0LTcge1xuICAgICAgICBtYXJnaW4tbGVmdDogNTguMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy1vZmZzZXQtOCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjclO1xuICAgIH1cblxuICAgIC5pc2gtY29sLWxnLW9mZnNldC05IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy1vZmZzZXQtMTAge1xuICAgICAgICBtYXJnaW4tbGVmdDogODMuMzMzJTtcbiAgICB9XG5cbiAgICAuaXNoLWNvbC1sZy1vZmZzZXQtMTEge1xuICAgICAgICBtYXJnaW4tbGVmdDogOTEuNjY3JTtcbiAgICB9XG5cbiAgICAuaXNoLXN0YXJ0LWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG5cbiAgICAuaXNoLWNlbnRlci1sZyB7XG4gICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5pc2gtZW5kLWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgdGV4dC1hbGlnbjogZW5kO1xuICAgIH1cblxuICAgIC5pc2gtdG9wLWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIC5pc2gtbWlkZGxlLWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC5pc2gtYm90dG9tLWxnIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcbiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAuaXNoLWFyb3VuZC1sZyB7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIH1cblxuICAgIC5pc2gtYmV0d2Vlbi1sZyB7XG4gICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgLmlzaC1maXJzdC1sZyB7XG4gICAgICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDA7XG4gICAgICAgIC13ZWJraXQtb3JkZXI6IC0xO1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogLTE7XG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG5cbiAgICAuaXNoLWxhc3QtbGcge1xuICAgICAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyO1xuICAgICAgICAtd2Via2l0LW9yZGVyOiAxO1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogMTtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgfVxufSIsIi8qISBIVE1MNSBCb2lsZXJwbGF0ZSB2NS4yLjAgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vaHRtbDVib2lsZXJwbGF0ZS5jb20vICovXG5cbi8qXG4gKiBXaGF0IGZvbGxvd3MgaXMgdGhlIHJlc3VsdCBvZiBtdWNoIHJlc2VhcmNoIG9uIGNyb3NzLWJyb3dzZXIgc3R5bGluZy5cbiAqIENyZWRpdCBsZWZ0IGlubGluZSBhbmQgYmlnIHRoYW5rcyB0byBOaWNvbGFzIEdhbGxhZ2hlciwgSm9uYXRoYW4gTmVhbCxcbiAqIEtyb2MgQ2FtZW4sIGFuZCB0aGUgSDVCUCBkZXYgY29tbXVuaXR5IGFuZCB0ZWFtLlxuICovXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlIHN0eWxlczogb3BpbmlvbmF0ZWQgZGVmYXVsdHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmh0bWwge1xuICAgIGNvbG9yOiAjMjIyO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi8qXG4gKiBSZW1vdmUgdGV4dC1zaGFkb3cgaW4gc2VsZWN0aW9uIGhpZ2hsaWdodDpcbiAqIGh0dHBzOi8vdHdpdHRlci5jb20vbWlrZXRheWxyL3N0YXR1cy8xMjIyODgwNTMwMVxuICpcbiAqIFRoZXNlIHNlbGVjdGlvbiBydWxlIHNldHMgaGF2ZSB0byBiZSBzZXBhcmF0ZS5cbiAqIEN1c3RvbWl6ZSB0aGUgYmFja2dyb3VuZCBjb2xvciB0byBtYXRjaCB5b3VyIGRlc2lnbi5cbiAqL1xuXG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjYjNkNGZjO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2IzZDRmYztcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuLypcbiAqIEEgYmV0dGVyIGxvb2tpbmcgZGVmYXVsdCBob3Jpem9udGFsIHJ1bGVcbiAqL1xuXG5ociB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLypcbiAqIFJlbW92ZSB0aGUgZ2FwIGJldHdlZW4gYXVkaW8sIGNhbnZhcywgaWZyYW1lcyxcbiAqIGltYWdlcywgdmlkZW9zIGFuZCB0aGUgYm90dG9tIG9mIHRoZWlyIGNvbnRhaW5lcnM6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9pc3N1ZXMvNDQwXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5pZnJhbWUsXG5pbWcsXG5zdmcsXG52aWRlbyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLypcbiAqIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IHN0eWxlcy5cbiAqL1xuXG5maWVsZHNldCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKlxuICogQWxsb3cgb25seSB2ZXJ0aWNhbCByZXNpemluZyBvZiB0ZXh0YXJlYXMuXG4gKi9cblxudGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCcm93c2VyIFVwZ3JhZGUgUHJvbXB0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYnJvd3NlcnVwZ3JhZGUge1xuICAgIG1hcmdpbjogMC4yZW0gMDtcbiAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIHBhZGRpbmc6IDAuMmVtIDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBBdXRob3IncyBjdXN0b20gc3R5bGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSGVscGVyIGNsYXNzZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzOlxuICovXG5cbi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLypcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqL1xuXG4udmlzdWFsbHloaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbi8qXG4gKiBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnRcbiAqIHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOlxuICogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzg5NzYzOFxuICovXG5cbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6YWN0aXZlLFxuLnZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTpmb2N1cyB7XG4gICAgY2xpcDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gKi9cblxuLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKlxuICogQ2xlYXJmaXg6IGNvbnRhaW4gZmxvYXRzXG4gKlxuICogRm9yIG1vZGVybiBicm93c2Vyc1xuICogMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbiAqICAgIGBjb250ZW50ZWRpdGFibGVgIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbiAqICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuICogICAgdGhhdCByZWNlaXZlIHRoZSBgY2xlYXJmaXhgIGNsYXNzLlxuICogMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbiAqICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbiAqL1xuXG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLyogMSAqL1xuICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAyICovXG59XG5cbi5jbGVhcmZpeDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFWEFNUExFIE1lZGlhIFF1ZXJpZXMgZm9yIFJlc3BvbnNpdmUgRGVzaWduLlxuICAgVGhlc2UgZXhhbXBsZXMgb3ZlcnJpZGUgdGhlIHByaW1hcnkgKCdtb2JpbGUgZmlyc3QnKSBzdHlsZXMuXG4gICBNb2RpZnkgYXMgY29udGVudCByZXF1aXJlcy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzVlbSkge1xuICAgIC8qIFN0eWxlIGFkanVzdG1lbnRzIGZvciB2aWV3cG9ydHMgdGhhdCBtZWV0IHRoZSBjb25kaXRpb24gKi9cbn1cblxuQG1lZGlhIHByaW50LFxuKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4yNSksXG4obWluLXJlc29sdXRpb246IDEuMjVkcHB4KSxcbihtaW4tcmVzb2x1dGlvbjogMTIwZHBpKSB7XG4gICAgLyogU3R5bGUgYWRqdXN0bWVudHMgZm9yIGhpZ2ggcmVzb2x1dGlvbiBkZXZpY2VzICovXG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcmludCBzdHlsZXMuXG4gICBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbiAgIGh0dHA6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQG1lZGlhIHByaW50IHtcbiAgICAqLFxuICAgICo6YmVmb3JlLFxuICAgICo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgICAgICAvKiBCbGFjayBwcmludHMgZmFzdGVyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5zYW5iZWlqaS5jb20vYXJjaGl2ZXMvOTUzICovXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIGFbaHJlZl06YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgICB9XG5cbiAgICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIERvbid0IHNob3cgbGlua3MgdGhhdCBhcmUgZnJhZ21lbnQgaWRlbnRpZmllcnMsXG4gICAgICogb3IgdXNlIHRoZSBgamF2YXNjcmlwdDpgIHBzZXVkbyBwcm90b2NvbFxuICAgICAqL1xuXG4gICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFByaW50aW5nIFRhYmxlczpcbiAgICAgKiBodHRwOi8vY3NzLWRpc2N1c3MuaW5jdXRpby5jb20vd2lraS9QcmludGluZ19UYWJsZXNcbiAgICAgKi9cblxuICAgIHRoZWFkIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICAgIH1cblxuICAgIHRyLFxuICAgIGltZyB7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgb3JwaGFuczogMztcbiAgICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gICAgfVxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVmFyc1xuIyBNaXhpbnNcbiMgRXh0ZW5kXG4jIEFuaW1hdGlvbnNcbiMgR2VuZXJhbFxuIyBCb2R5XG4jIyBDb250ZW50XG4jIyBDb250YWN0XG4jIyMgUGFnaW5hdGlvbiAmIEluZmluaXRlIFNjcm9sbFxuIyMjIFNpbmdsZSAtIEN1c3RvbSBNZXRhXG4jIyMgU2luZ2xlIC0gTGluayBwYWdlc1xuIyMjIFNpbmdsZSAtIFRhZ3NcbiMjIyBDb2RlICYgUHJlXG4jIyBIZWFkZXJcbiMjIE5hdmlnYXRpb25cbiMjIEZvb3RlclxuIyMgU2VhcmNoIFJlc3VsdHNcbiMjIENvbW1lbnRzXG4jIFRlYW1cbiMgSmV0cGFjayBHYWxsZXJpZXNcbiMgV29yZFByZXNzIEdhbGxlcmllc1xuIyBXaWRnZXRzXG4jIFNpZGViYXJcbiMgTWFwXG4jIFBsdWdpbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBWYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4kQ09OVEVOVF9XSURUSDogOTk2cHg7IC8qIE1haW4gY29udGVudCB3aWR0aCAqL1xuJFRIRU1FX0FOR0xFOiAtMTBkZWc7XG4kVkVSVElDQUxfQU5HTEU6IC05MGRlZztcbiRTVElDS1lfQk9YX1NJWkU6IDgwcHg7XG4kTkFWX1RSQU5TSVRJT046IGFsbCAwLjVzIGVhc2U7XG4kRk9STV9FTEVNRU5UX0hFSUdIVDogNDRweDtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBNaXhpbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtaXhpbiB0aGVtZS1yb3RhdGUoICRhbmdsZSApIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgkYW5nbGUpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1vbiB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbn1cblxuQG1peGluIGlzaC11bmRlcmxpbmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiAnJztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm90dG9tOiAtMnB4O1xuICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbn1cblxuQG1peGluIGlzaC1oYWxmLW9wYWNpdHkge1xuICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgXCI7IC8qIDEgKi9cbiAgICAgICAgZGlzcGxheTogdGFibGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG59XG5cbkBtaXhpbiBzY3JvbGxiYXJzKCRzaXplLCAkZm9yZWdyb3VuZC1jb2xvciwgJGJhY2tncm91bmQtY29sb3I6IG1peCgkZm9yZWdyb3VuZC1jb2xvciwgd2hpdGUsICA1MCUpKSB7XG4gICAgLy8gRm9yIEdvb2dsZSBDaHJvbWVcbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6ICRzaXplICogMztcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZSAqIDM7XG4gICAgfVxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNpemUgKiAxLjQ7XG4gICAgICAgIGJvcmRlcjogJHNpemUgc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICB9XG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlIHtcbiAgICAgICAgLyptYXJnaW4tYm90dG9tOiAxMHB4OyovXG4gICAgfVxuICAgIC8vIEZvciBJbnRlcm5ldCBFeHBsb3JlclxuICAgIGJvZHkge1xuICAgICAgICBzY3JvbGxiYXItZmFjZS1jb2xvcjogJGZvcmVncm91bmQtY29sb3I7XG4gICAgICAgIHNjcm9sbGJhci10cmFjay1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxufVxuXG5AbWl4aW4gYmx1ci1wYWdlKCR2YWwpIHtcbiAgICAvKiBBbnkgYnJvd3NlciB3aGljaCBzdXBwb3J0cyBDU1MzICovXG4gICAgLy9maWx0ZXI6IGJsdXIoJHZhbCk7XG4gICAgLyogRmlyZWZveCAqL1xuICAgIC8vZmlsdGVyOiB1cmwoXCJibHVyLnN2ZyNnYXVzc2lhbl9ibHVyXCIpO1xuICAgIC8qIFdlYmtpdCAqL1xuICAgIC13ZWJraXQtZmlsdGVyOiBibHVyKCR2YWwpO1xuICAgIC8qIE9wZXJhICovXG4gICAgLW8tZmlsdGVyOiBibHVyKCR2YWwpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEV4dGVuZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC12ZXJ0aWNhbC1taWRkbGUge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBBbmltYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGUgYW5pbWF0aW9uIGNvZGUgKi9cbkBrZXlmcmFtZXMgaXNoLWJhY2stdG8tdG9wIHtcbiAgICAwJSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIH1cbiAgICAxMCUge1xuICAgICAgICBtYXJnaW4tbGVmdDogNjBweDtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBHZW5lcmFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4qIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKiBodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9hY2Nlc3NpYmlsaXR5LzIwMTUvMDIvMDkvaGlkaW5nLXRleHQtZm9yLXNjcmVlbi1yZWFkZXJzLXdpdGgtd29yZHByZXNzLWNvcmUvICovXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgd2lkdGg6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBCb2R5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5ib2R5IHtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5IMSwgSDIsIEgzLCBINCwgSDUsIEg2LFxucCxcbnVsLFxub2wsXG5kbCxcbnRhYmxlLFxuaHIsXG5wcmUsXG5ibG9ja3F1b3RlLFxuYWRkcmVzcyxcbi5wb3N0LXBhc3N3b3JkLWZvcm0sXG4uaXNoLXRoZW1lLWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLyogSW5jcmVhc2UgYnkgMTBweCBkdWUgdG8gdGhlIHNoYWRvdyAqL1xudWwgdWwsXG5vbCBvbCxcbmRsIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG50YWJsZSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweDtcbiAgICB9XG59XG5cbnByZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuaHIge1xuICAgIG9wYWNpdHk6IDAuMjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgaGVpZ2h0OiAxcHg7XG59XG5cbmltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuZm9ybSB7XG4gICAgaW5wdXQsXG4gICAgYnV0dG9uLFxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAmLmludmFsaWQge1xuICAgICAgICAgICAgLypib3JkZXItdG9wOiBzb2xpZCAxcHg7Ki9cbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIGhlaWdodDogJEZPUk1fRUxFTUVOVF9IRUlHSFQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cbnNlbGVjdCB7XG4gICAgaGVpZ2h0OiAkRk9STV9FTEVNRU5UX0hFSUdIVDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHBhZGRpbmc6IDEwcHggNTRweCAxMHB4IDEwcHg7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNTAlLCB3aGl0ZSA1MCUpLFxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHdoaXRlIDUwJSwgdHJhbnNwYXJlbnQgNTAlKSxcbiAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMjBweCkgMjFweCxcbiAgICBjYWxjKDEwMCUgLSAxM3B4KSAyMXB4LFxuICAgIDEwMCUgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDdweCA3cHgsXG4gICAgN3B4IDdweCxcbiAgICA0NHB4IDQ0cHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuc2VsZWN0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHdoaXRlIDUwJSwgdHJhbnNwYXJlbnQgNTAlKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB0cmFuc3BhcmVudCA1MCUsIHdoaXRlIDUwJSksXG4gICAgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKHdoaXRlLCAwLjIpLCByZ2JhKHdoaXRlLCAwLjIpKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxM3B4KSAxOHB4LFxuICAgIGNhbGMoMTAwJSAtIDIwcHgpIDE4cHgsXG4gICAgMTAwJSAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogN3B4IDdweCxcbiAgICA3cHggN3B4LFxuICAgIDQ0cHggNDRweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG5tYXJrIHtcbiAgICBwYWRkaW5nOiAycHggNnB4O1xufVxuXG5hIHtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgdHJhbnNpdGlvbjogJE5BVl9UUkFOU0lUSU9OO1xufVxuXG5maWd1cmUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuZmlndXJlLmFsaWduY2VudGVyLFxuZmlndXJlLmFsaWdubm9uZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4jcGFnZSB7XG4gICAgaXNvbGF0aW9uOiBpc29sYXRlOyAvLyBGaXggYSBwcm9ibGVtIHdoZW4gYWRtaW5iYXIgZGlzYXBwZWFycyBvbiBUZWFtIHBhZ2Vcbn1cblxuLmlzaC1ibHVycmVkIHtcbiAgICAjcGFnZSB7XG4gICAgICAgIEBpbmNsdWRlIGJsdXItcGFnZSgzMHB4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDUwMG1zOyAvLyBBbHNvIGNoYW5nZSBpc2hQYWdlRWZmZWN0QW5pbVNwZWVkIGluIG1haW4uanNcbiAgICB9XG5cbiAgICAmLmlzaC1uby1ibHVyIHtcbiAgICAgICAgI3BhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmx1ci1wYWdlKDBweCk7XG4gICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogbm9uZTtcbiAgICAgICAgICAgIC1vLWZpbHRlcjogbm9uZTtcbiAgICAgICAgICAgIGZpbHRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtYmx1cnJlZC1vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgfVxufVxuXG4uaXNoLWNvbnRhaW5lci1mbHVpZCxcbi5pc2gtY29udGFpbmVyLWlubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5pc2gtY29udGFpbmVyLWZsdWlkIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xufVxuXG5oZWFkZXIgLmlzaC1jb250YWluZXItZmx1aWQge1xuICAgIHotaW5kZXg6IGF1dG87XG59XG5cbi5pc2gtY29udGFpbmVyLWlubmVyIHtcbiAgICBtYXgtd2lkdGg6ICRDT05URU5UX1dJRFRIO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbn1cblxuLmlzaC1tYWluLWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbiAgICAucG9zdC1tZXRhLWtleSxcbiAgICAuaXNoLWhpZ2hsaWdodCB7XG4gICAgICAgIG1peC1ibGVuZC1tb2RlOiBzY3JlZW47XG4gICAgfVxuXG4gICAgLmlzaC1yb3c6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qKltjbGFzc149XCJpc2gtY29sLVwiXSwqL1xuICAgICAgICAqW2NsYXNzKj1cImlzaC1jb2wtXCJdOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZWxlY3QgYWxsIGxpbmtzIHdpdGhvdXQgY2xhc3MgYXR0cmlidXRlIG9yIHdpdGggZW1wdHkgY2xhc3MgYXR0cmlidXRlXG4gICAgcDpub3QoW2NsYXNzXSkgPiBhOm5vdChbY2xhc3NdKTpob3ZlcixcbiAgICBwOm5vdChbY2xhc3NdKSA+IGFbY2xhc3M9XCJcIl06aG92ZXIge1xuICAgICAgICBtaXgtYmxlbmQtbW9kZTogc2NyZWVuO1xuICAgIH1cbn1cblxuLmlzaC1yb3csXG4uaXNoLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaXNoLWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAkQ09OVEVOVF9XSURUSDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAxNnB4O1xufVxuXG4uaXNoLWRlY29yLWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDExMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmlzaC1kZWNvci1ib3R0b20sXG4gICAgLmlzaC1kZWNvci10b3Age1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxNDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmlzaC1kZWNvci10b3Age1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAuaXNoLWRlY29yLWJvdHRvbSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICB9XG59XG5cbi5pc2gtdmVydGljYWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgkVkVSVElDQUxfQU5HTEUpO1xufVxuXG4uaXNoLXRoZW1lLXJvdGF0ZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoJFRIRU1FX0FOR0xFKTtcblxuICAgICYuaXNoLWRlY29yLWJvdHRvbSB7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICB9XG5cbiAgICAmLmlzaC1kZWNvci10b3Age1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gICAgfVxufVxuXG4jY29udGVudCAuaXNoLXNvY2lhbC1ib3gge1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG59XG5cbi5pc2gtdW5kZXJsaW5lIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtMnB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogJE5BVl9UUkFOU0lUSU9OO1xuICAgIH1cblxuICAgICYuaXNoLXVuZGVybGluZS12aXNpYmxlOmJlZm9yZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgICY6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgJi5pc2gtdW5kZXJsaW5lLXZpc2libGU6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICB9XG59XG5cbi5pc2gtaW1nLXNjYWxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgIH1cblxuICAgICY6aG92ZXIgaW1nIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KSB0cmFuc2xhdGVaKDApO1xuICAgIH1cbn1cblxuXG4uaXNoLWltZy1hbGlnbi1sZWZ0LFxuaW1nLmFsaWdubGVmdCxcbmZpZ3VyZS5hbGlnbmxlZnQge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmlzaC1pbWctYWxpZ24tcmlnaHQsXG5pbWcuYWxpZ25yaWdodCxcbmZpZ3VyZS5hbGlnbnJpZ2h0IHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5pc2gtaW1nLWFsaWduLWxlZnQsXG4uaXNoLWltZy1hbGlnbi1yaWdodFxue1xuICAgIC5hbGlnbmxlZnQsXG4gICAgLmFsaWducmlnaHQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4uaXNoLWltZy1zaGFkb3cge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8vIEFkZGVkIGZvciBjYXNlcyB3aGVuIGltYWdlIGVudGVyZWQgdG8gY29udGVudCB3aXRoIC5pc2gtbm8tc2NhbGUgY2xhc3MgYW5kIEltYWdlIENhcHRpb25cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vIEFkZGVkIGZvciBjYXNlcyB3aGVuIGltYWdlIGVudGVyZWQgdG8gY29udGVudCB3aXRoIC5pc2gtbm8tc2NhbGVcbiAgICBib3gtc2hhZG93OiAxMHB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cbiAgICBAYXQtcm9vdCAud3AtY2FwdGlvbiA+IGltZyN7Jn0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxufVxuXG4uaXNoLWltZy1hbGlnbi1sZWZ0LFxuLmlzaC1pbWctYWxpZ24tcmlnaHQge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICBmaWd1cmUgJiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICAgIH1cbn1cblxuLmlzaC1yZXNwLWNlbnRlciB7XG4gICAgLmlzaC1tYWluLWNvbnRlbnQsXG4gICAgLmlzaC10eHQtYWxpZ24tbGVmdCxcbiAgICAuaXNoLXR4dC1hbGlnbi1yaWdodCxcbiAgICAuaXNoLXR4dC1hbGlnbi1jZW50ZXIsXG4gICAgLmlzaC1zaWRlYmFyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5pc2gtaW1nLWFsaWduLWxlZnQsXG4gICAgLmlzaC1pbWctYWxpZ24tcmlnaHQge1xuICAgICAgICBtYXJnaW46IDAgYXV0byA0MHB4O1xuICAgIH1cblxuICAgIC5pc2gtbWFpbi1jb250ZW50IHtcbiAgICAgICAgdWwsIG9sIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcmUge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbn1cblxuLmlzaC10eHQtYWxpZ24tbGVmdCxcbi5pc2gtdHh0LWFsaWduLXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uaXNoLXR4dC1hbGlnbi1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmlzaC1hbGlnbi1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLmlzaC1hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ucmVxdWlyZWQtZXJyb3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnVGhpcyBmaWVsZCBtdXN0IGJlIGZpbGxlZCBpbiEnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cbn1cblxuLy8gTG9nbyAmIFRleHRcbi5zaXRlLXRpdGxlLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbn1cblxuLmlzaC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuXG4gICAgc3BhbiB7XG4gICAgICAgIG1hcmdpbjogMCA2cHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBDb250YWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaXNoLWNvbnRhY3QtaW5mby1jb250YWluZXIge1xuXG4gICAgLmlzaC1jb250YWN0LWluZm8tYm94IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAsXG4gICAgICAgIC5zaGFyZWRhZGR5IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLmlzaC1jb250YWN0LWZvcm0tYm94LFxuLmlzaC1jb250YWN0LWZvcm0tYm94IC5jb250YWN0LWZvcm0ge1xuICAgIGxlZ2VuZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZXF1aXJlZC1lcnJvciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgaW5wdXQsXG4gICAgcCBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgdGV4dGFyZWEge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiAycHg7XG5cbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGhlaWdodDogMTUwcHg7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbiAgICBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcblxuICAgICAgICBpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGFjdC1mb3JtLXN1Ym1pc3Npb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLmlzaC1jb250YWN0LWZvcm0tYm94IGRpdiBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLmlzaC1jb250YWN0LWZvcm0tYm94IGgzIHtcbiAgICBtaXgtYmxlbmQtbW9kZTogdW5zZXQ7XG5cbiAgICAuaXNoLWhpZ2hsaWdodCB7XG4gICAgICAgIG1peC1ibGVuZC1tb2RlOiB1bnNldDtcbiAgICB9XG59XG5cbi5pc2gtc29jaWFsLWJveC1jb250YWN0IHtcbiAgICAubWVudS1zb2NpYWwtaWNvbnMtY29udGFpbmVyLFxuICAgIC5tZW51LXNvY2lhbC1saW5rcy1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgfVxufVxuXG4ud3BjZjctZm9ybSBwIC5hamF4LWxvYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuZGl2LndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbnNwYW4ud3BjZjctbm90LXZhbGlkLXRpcCB7XG4gICAgbWFyZ2luLXRvcDogLTE2cHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIEhlYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1uby1jb250ZW50IHtcbiAgICBoZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtNDAwcHg7XG4gICAgfVxufVxuXG4uaXNoLW1lbnUtY29udGFpbmVyIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmlzaC1zdGlja3ktb24ge1xuICAgICYuc2l0ZS1oZWFkZXIge1xuICAgICAgICAuaXNoLWhlYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWxvZ28tY29udGFpbmVyLFxuICAgICAgICAuaXNoLW1lbnUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgIC5pc2gtdGhlbWUtdGFnbGluZSxcbiAgICAgICAgICAgIC5pc2gtbWVudS1kZXNjIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWxvZ28tY29udGFpbmVyIHtcbiAgICAgICAgICAgIC5pc2gtdGhlbWUtdGFnbGluZS5pc2gtbm8tbG9nbyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAgICAgICAgIC5pc2gtaWNvbi1uYXYgaSB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5pc2gtbG9nby1jb250YWluZXIgYSxcbiAgICAuaXNoLW1lbnUtY29udGFpbmVyIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgLmlzaC1sb2dvLWJveCxcbiAgICAgICAgLmlzaC1pY29uLW5hdiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtbG9nby1ib3ggc3BhbixcbiAgICAgICAgLmlzaC1pY29uLW5hdiB7XG4gICAgICAgICAgICB3aWR0aDogJFNUSUNLWV9CT1hfU0laRTtcbiAgICAgICAgICAgIGhlaWdodDogJFNUSUNLWV9CT1hfU0laRTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWxvZ28tYm94IHtcbiAgICAgICAgICAgIC5pc2gtbG9nby1taWRkbGUge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmlzaC12ZXJ0aWNhbC1taWRkbGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pc2gtbG9nbyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAkU1RJQ0tZX0JPWF9TSVpFO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6ICRTVElDS1lfQk9YX1NJWkU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWljb24tbmF2IHtcbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmlzaC12ZXJ0aWNhbC1taWRkbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zaXRlLWhlYWRlciB7XG4gICAgLmlzaC1yb3cge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmlzaC1oZWFkZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDk5O1xuICAgIH1cblxuICAgIC5zaXRlLWJyYW5kaW5nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtbG9nby1jb250YWluZXIsXG4gICAgLmlzaC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgIEBleHRlbmQgLmlzaC12ZXJ0aWNhbC1taWRkbGU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIC5pc2gtdmVydGljYWwge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLW1lbnUtZGVzYyxcbiAgICAgICAgLmlzaC10aGVtZS10YWdsaW5lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDUwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzaC1sb2dvLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiA3MCU7XG5cbiAgICAgICAgLmlzaC1sb2dvIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtbG9nbyxcbiAgICAgICAgLmlzaC10aGVtZS10YWdsaW5lIHtcblxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC10aGVtZS10YWdsaW5lLmlzaC1uby1sb2dvIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAuc2l0ZS10aXRsZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCA1MHB4IDAgMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlzaC10YWdsaW5lLXRleHQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtbWVudS1jb250YWluZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAuaXNoLWljb24tbmF2IHtcbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaXRlLXRpdGxlLCBoMSB7XG4gICAgICAgIG1hcmdpbjogNTBweCAwIDIwcHg7XG4gICAgfVxuXG4gICAgLnNpdGUtc3VidGl0bGUsIGgyIHtcbiAgICAgICAgbWFyZ2luOiA0MHB4IDA7XG4gICAgfVxuXG4gICAgLnNpdGUtdGl0bGUsIGgxLFxuICAgIC5zaXRlLXN1YnRpdGxlLCBoMiB7XG4gICAgICAgIC1tcy13b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICAuaXNoLXBvcnRmb2xpby1uYXZpZ2F0aW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICB9XG5cbiAgICAuc2l0ZS1kZXNjLCAuc2l0ZS1icmFuZGluZyBoMywgLnNpdGUtYnJhbmRpbmcgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmlzaC1iZy1hbmltYXRlICYgLmlzaC1jb250YWluZXItZmx1aWQsXG4gICAgLmlzaC1iZy1hbmltYXRlICYgLmlzaC1kZWNvci1jb250YWluZXIgPiBkaXYge1xuICAgICAgICBhbmltYXRpb246IGFuaW1hdGVCZ0NvbG9yIDMwcyBlYXNlLWluIGluZmluaXRlIGFsdGVybmF0ZTtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIE5hdmlnYXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pc2gtbmF2aWdhdGlvbiB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBAaW5jbHVkZSBzY3JvbGxiYXJzKDRweCwgI2E4YThhOCwgbm9uZSk7XG5cbiAgICAmLmlzaC1uYXYtb24ge1xuICAgICAgICB0cmFuc2l0aW9uOiAkTkFWX1RSQU5TSVRJT047XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbn1cblxuLmlzaC1uYXZpZ2F0aW9uIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogLTEwMCU7XG4gICAgei1pbmRleDogOTk7XG4gICAgdHJhbnNpdGlvbjogJE5BVl9UUkFOU0lUSU9OO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMjAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5pc2gtbmF2LWJnIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiAxNTAlO1xuICAgIH1cblxuICAgIC5pc2gtbmF2LWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB6LWluZGV4OiA5OTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmlzaC1uYXYtY29udGFpbmVyLWJnIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgICAgIC5pc2gtbmF2LWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMTAlO1xuXG4gICAgICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWFpbi1uYXZpZ2F0aW9uIHtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi41O1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5pc2gtYWN0aXZlLWl0ZW0gPiBhID4gc3BhbjpiZWZvcmUsXG4gICAgICAgICAgICAmLmN1cnJlbnQtbWVudS1hbmNlc3RvciA+IGEgPiBzcGFuOmJlZm9yZSxcbiAgICAgICAgICAgICYuY3VycmVudF9wYWdlX2FuY2VzdG9yID4gYSA+IHNwYW46YmVmb3JlLFxuICAgICAgICAgICAgJi5jdXJyZW50LW1lbnUtaXRlbSA+IGEgPiBzcGFuOmJlZm9yZSxcbiAgICAgICAgICAgICYuY3VycmVudF9wYWdlX2l0ZW0gPiBhID4gc3BhbjpiZWZvcmUsXG4gICAgICAgICAgICAmLmlzaC1ob3ZlciA+IGEgPiBzcGFuOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAkTkFWX1RSQU5TSVRJT047XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubWVudS1pdGVtLWhhcy1jaGlsZHJlbixcbiAgICAgICAgICAgICYucGFnZV9pdGVtX2hhc19jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgPiBhOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcuJztcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW46YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBpc2gtdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogOHB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtc2VhcmNoLWZvcm0ge1xuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLXNvY2lhbC1ib3gge1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgIC5tZW51LXNvY2lhbC1jb250YWluZXIsXG4gICAgICAgIC5tZW51LXNvY2lhbC1pY29ucy1jb250YWluZXIsXG4gICAgICAgIC5tZW51LXNvY2lhbC1saW5rcy1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS42NjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIEZvb3RlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1mb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAuaXNoLXNvY2lhbC1ib3gge1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLWxlZ2FscyB7XG5cbiAgICB9XG5cbiAgICAuaXNoLXNlcGFyYXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICB9XG59XG5cbi5pc2gtYmFjay10by10b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGEge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgkVkVSVElDQUxfQU5HTEUpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgYm90dG9tOiAtMjRweDtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGlzaC11bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaXNoLWhvdmVyIHtcbiAgICAgICAgICAgIHNwYW46YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAkTkFWX1RSQU5TSVRJT047XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICAgICAgICAgICAgICAgIC8vQGluY2x1ZGUgdHJhbnNpdGlvbi1vbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAvL0BpbmNsdWRlIHRyYW5zaXRpb24tb247XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCA1MDBtcztcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIFNlYXJjaCBSZXN1bHRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaXNoLXJlc3VsdHMge1xuXG4gICAgLmlzaC1yZXN1bHQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMTZweDtcbiAgICAgICAgbWluLWhlaWdodDogODZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcblxuICAgICAgICBwLFxuICAgICAgICAuaXNoLXRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1yZXN1bHQtbnVtYmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA4NnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA4NnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDg2cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrb2xpdmVncmVlbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDEwcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5vLXJlc3VsdHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5pc2gtcmVzcC1jZW50ZXIgLmlzaC1yZXN1bHQ6YmVmb3JlIHtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDQzcHgpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBDb21tZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI2NvbW1lbnRzIC5jb21tZW50LWNvbnRlbnQgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbn1cblxuLmNvbW1lbnQtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAuY2hpbGRyZW4ge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbn1cblxuLmNvbW1lbnQtbWV0YSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLmNvbW1lbnQtYXV0aG9yLCAuY29tbWVudC1tZXRhZGF0YSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmNvbW1lbnQtYXV0aG9yIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIH1cbn1cblxuLmJ5cG9zdGF1dGhvciAuY29tbWVudC1hdXRob3Ige1xuICAgIHRleHQtZGVjb3JhdGlvbjogaW5pdGlhbDtcbn1cblxuLmNvbW1lbnQtbWV0YWRhdGEge1xuXG4gICAgYSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1vbjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gKiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG5cbi5jb21tZW50LW5hdmlnYXRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgIGEsIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1vbjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzcGFuLmN1cnJlbnQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICB9XG5cbn1cblxuLmNvbW1lbnQtcmVzcG9uZCB7XG4gICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGlucHV0LCB0ZXh0YXJlYSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDIycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLW9uO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIGZvcm0gcFtjbGFzcyo9XCJjb21tZW50LWZvcm0tXCJdIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG59XG5cbi5pc2gtY2FuY2VsLXJlcGx5IHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tb247XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi8vIEpldFBhY2sgQ29tbWVudHMgTGlrZSBmZWF0dXJlXG4uY29tbWVudC1saWtlcy13aWRnZXQge1xuICAgIG1hcmdpbi10b3A6IC0zNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jb21tZW50LXN1YnNjcmlwdGlvbi1mb3JtIGlucHV0IHtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uc2l0ZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5pc2gtc2VwYXJhdG9yIHtcbiAgICBwYWRkaW5nOiAwIDhweDtcbn1cblxuLy8gQ2xlYXJmaXggZm9yIGVudHJ5IGNvbnRlbnQgc28gbGFzdCBmbG9hdGVkIGltYWdlcyBkbyBub3QgYnJlYWsgdGhlIGxheW91dFxuLmVudHJ5LWNvbnRlbnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi5wb3N0LXBhc3N3b3JkLWZvcm0ge1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogJEZPUk1fRUxFTUVOVF9IRUlHSFQ7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogJEZPUk1fRUxFTUVOVF9IRUlHSFQ7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tb247XG4gICAgfVxuXG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIyBQYWdpbmF0aW9uICYgSW5maW5pdGUgU2Nyb2xsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaXNoLXBhZ2luYXRpb24tY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAtMTJ2dztcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIHotaW5kZXg6IDM7XG5cbiAgICAubmF2aWdhdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIH1cblxuICAgIC5uYXYtbGlua3Mge1xuICAgICAgICBAaW5jbHVkZSB0aGVtZS1yb3RhdGUoJFRIRU1FX0FOR0xFKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgfVxuXG4gICAgLm5hdi1uZXh0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgLmlzaC1wYWdlLW51bWJlcnMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5maW5pdGUtc2Nyb2xsICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmlzaC1wYWdpbmF0aW9uLWNvbnRhaW5lcixcbi5pc2gtcG9ydGZvbGlvLW5hdmlnYXRpb24ge1xuICAgIC5uYXYtcHJldmlvdXMsXG4gICAgLm5hdi1uZXh0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbn1cblxuLmlzaC1wYWdlLW51bWJlcnMsXG4jaW5maW5pdGUtaGFuZGxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIHRleHQtaW5kZW50OiAtOTk5ZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tb247XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogLTAuNWVtIDAgMCAtMC41ZW0gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbiNpbmZpbml0ZS1oYW5kbGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHRvcDogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogLTEydncgIWltcG9ydGFudDtcbiAgICB3aWR0aDogODBweCAhaW1wb3J0YW50O1xuICAgIEBpbmNsdWRlIHRoZW1lLXJvdGF0ZSgkVEhFTUVfQU5HTEUpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxlODM1JztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdpc2gtaWNvbnMnO1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLnBhZ2UtdGVtcGxhdGUtaG9tZXBhZ2UtcG9ydGZvbGlvICYgLFxuICAgIC5wb3N0LXR5cGUtYXJjaGl2ZS1qZXRwYWNrLXBvcnRmb2xpbyAmIHtcbiAgICAgICAgYm90dG9tOiAtNHZ3ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5cbi5pbmZpbml0ZS1sb2FkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSAtIDUwcHgpO1xuXG4gICAgLnNwaW5uZXIge1xuICAgICAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIyBTaW5nbGUgLSBDdXN0b20gTWV0YVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBvc3QtbWV0YSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIH1cbn1cblxuLnBvc3QtbWV0YS1rZXkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyMgU2luZ2xlIC0gTGluayBQYWdlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBhZ2UtbGlua3Mge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAmICsgaHIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAmICsgLmlzaC10YWdzIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0yNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIyBTaW5nbGUgLSBUYWdzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaXNoLXRhZ3Mge1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgYSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcjJztcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgbWl4LWJsZW5kLW1vZGU6IHNjcmVlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyMgQ29kZSAmIFByZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xucHJlIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJveC1zaGFkb3c6IDEwcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuaWZyYW1lIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmlmcmFtZTpub3QoLnR3aXR0ZXItdGltZWxpbmUpIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMTBweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vLyBKZXRQYWNrIENvbW1lbnRzIExpa2UgZmVhdHVyZVxuLmNvbW1lbnQtbGlrZXMtd2lkZ2V0IGlmcmFtZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuYmxvY2txdW90ZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nOiAzMHB4O1xuXG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICB0b3A6IDMwcHg7XG4gICAgfVxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFRlYW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pc2gtdGVhbS1hcmNoaXZlLWNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgSmV0cGFjayBHYWxsZXJpZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi50aWxlZC1nYWxsZXJ5Om5vdCgudHlwZS1jaXJjbGUpIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuXG4gICAgLmdhbGxlcnktcm93IHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5pc2gtc2MtZ2FsbGVyeSxcbi50aWxlZC1nYWxsZXJ5Om5vdCgudHlwZS1jaXJjbGUpLFxuLmdhbGxlcnkge1xuXG4gICAgJi5qdXN0aWZpZWQtZ2FsbGVyeSB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAgID4gYSA+IC5jYXB0aW9uLFxuICAgICAgICA+IGRpdiA+IC5jYXB0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgYm94LXNoYWRvdzogMTBweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAycHggIWltcG9ydGFudDtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgLy8gQGluY2x1ZGUgdHJhbnNpdGlvbi1vbjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZSAhaW1wb3J0YW50OyAvLyBOZWNlc3NhcnkgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgTGlnaHRHYWxsZXJ5IHRyYW5zaXRpb25cbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciBpbWcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KSB0cmFuc2xhdGVaKDApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udGlsZWQtZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgYm90dG9tOiAycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpICFpbXBvcnRhbnQ7XG59XG5cbi50aWxlZC1nYWxsZXJ5LnR5cGUtY2lyY2xlIHtcbiAgICAudGlsZWQtZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tb247XG4gICAgfVxuXG4gICAgYTpob3ZlciBpbWcsXG4gICAgYTpmb2N1cyBpbWcge1xuICAgICAgICAtd2Via2l0LWZpbHRlcjogb3BhY2l0eSg2MCUpO1xuICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoNjAlKTtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgV29yZFByZXNzIEdhbGxlcmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmdhbGxlcnktaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBtYXJnaW46IDAgMCAxLjVlbTtcbiAgICBwYWRkaW5nOiAwIDFlbSAwIDA7XG4gICAgd2lkdGg6IDUwJTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy0xIC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTIgLmdhbGxlcnktaXRlbSB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG59XG5cbi5nYWxsZXJ5LWl0ZW0gYSxcbi5nYWxsZXJ5LWl0ZW0gYTpob3Zlcixcbi5nYWxsZXJ5LWl0ZW0gYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uZ2FsbGVyeS1pdGVtIGEgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtZmlsdGVyIDAuMnMgZWFzZS1pbjtcbiAgICB0cmFuc2l0aW9uOiAtd2Via2l0LWZpbHRlciAwLjJzIGVhc2UtaW47XG4gICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuMnMgZWFzZS1pbjtcbiAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4ycyBlYXNlLWluLCAtd2Via2l0LWZpbHRlciAwLjJzIGVhc2UtaW47XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgMTBweCAwIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLndwLWNhcHRpb24tdGV4dCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbml0aWFsO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFdpZGdldHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pc2gtd2lkZ2V0LWVsZW1lbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5pc2gtc2VhcmNoLWZvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBpbnB1dCxcbiAgICBidXR0b24ge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6ICRGT1JNX0VMRU1FTlRfSEVJR0hUO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDQ4cHggMTBweCAyMHB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweDtcbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAkRk9STV9FTEVNRU5UX0hFSUdIVDtcbiAgICAgICAgaGVpZ2h0OiAkRk9STV9FTEVNRU5UX0hFSUdIVDtcbiAgICAgICAgdHJhbnNpdGlvbjogJE5BVl9UUkFOU0lUSU9OO1xuICAgIH1cbn1cblxuLmlzaC1zb2NpYWwtYm94IHtcblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG5cbiAgICAgICAgZmxleC1iYXNpczogMzMuMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuXG4gICAgICAgIC5pc2gtaGlkZS10ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBhLFxuICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLndpZGdldF90YWdfY2xvdWQgLnRhZ2Nsb3VkIC50YWctY2xvdWQtbGluazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcjJztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBTaWRlYmFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ucGFnZS13aXRoLXNpZGViYXIge1xuICAgIC5pc2gtbWFpbi1jb250ZW50IHtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5pc2gtc2lkZWJhciB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5pc2gtc2lkZWJhciB7XG4gICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZDtcblxuICAgIEgxLCBIMiwgSDMsIEg0LCBINSwgSDYsXG4gICAgcCxcbiAgICB1bCxcbiAgICBvbCxcbiAgICBocixcbiAgICBibG9ja3F1b3RlLFxuICAgIC53aWRnZXQtdGl0bGUsXG4gICAgLmlzaC1tYWluLWNvbnRlbnQgLnRpbGVkLWdhbGxlcnksXG4gICAgLmpldHBhY2stdmlkZW8td3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmlzaC13aWRnZXQtZWxlbWVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG5cbiAgICAgICAgLndpZGdldC10aXRsZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsID4gbGkgPiB1bCxcbiAgICAgICAgdWwgPiBsaSA+IHVsID4gbGkgPiB1bCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLndpZGdldF9yZWNlbnRfZW50cmllcyB7XG4gICAgICAgICAgICBsaSBzcGFuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYud2lkZ2V0X3JzcyB7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgICAgICAgICAgIHNwYW4sXG4gICAgICAgICAgICAgICAgY2l0ZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnJzc1N1bW1hcnkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLndpZGdldF9yZWNlbnRfY29tbWVudHMge1xuICAgICAgICAgICAgbGkgYSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsaSAuY29tbWVudC1hdXRob3ItbGluayB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsaSBzcGFuIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaTpsYXN0LWNoaWxkIGEsXG4gICAgICAgIGxpOmxhc3QtY2hpbGQgc3BhbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLndpZGdldF9jYWxlbmRhciB7XG4gICAgICAgICAgICAuY2FsZW5kYXJfd3JhcCB0YWJsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICNuZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI25leHQgYSxcbiAgICAgICAgICAgICAgICAjcHJldiBhIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYud2lkZ2V0X2pldHBhY2tfZGlzcGxheV9wb3N0c193aWRnZXQgaDQ6bm90KC53aWRnZXQtdGl0bGUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLndpZGdldF9nb29nbGVwbHVzX2JhZGdlIGlmcmFtZSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1yZWFkLW1vcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaXNoLWhhbGYtb3BhY2l0eTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtd2lkZ2V0LXNlYXJjaCB7XG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC13aWRnZXQtcmVjZW50LXByb2plY3RzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzMlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgJi5sYW5kc2NhcGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLnBvcnRyYWl0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtd2lkZ2V0LXJlY2VudC10d2VldHMge1xuICAgICAgICAgICAgLnR3ZWV0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxZW0gMDtcblxuICAgICAgICAgICAgICAgIC50d2VldC1kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuXG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaXNoLWhhbGYtb3BhY2l0eTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtd2lkZ2V0LXNvY2lhbCxcbiAgICAgICAgJi53aWRnZXRfd3Bjb21fc29jaWFsX21lZGlhX2ljb25zX3dpZGdldCB7XG4gICAgICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaXNoLWhhbGYtb3BhY2l0eTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi53aWRnZXRfd3Bjb21fc29jaWFsX21lZGlhX2ljb25zX3dpZGdldCB7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE1hcFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBhZ2UtdGVtcGxhdGUtY29udGFjdC1tYXAge1xuXG4gICAgLmlzaC1jb250YWluZXItZmx1aWQge1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgIH1cblxuICAgIGhlYWRlciAuaXNoLWNvbnRhaW5lci1mbHVpZCB7XG4gICAgICAgIHotaW5kZXg6IGF1dG87XG4gICAgfVxuXG4gICAgLmlzaC1kZWNvci1jb250YWluZXIge1xuICAgICAgICAuaXNoLWRlY29yLWJvdHRvbSxcbiAgICAgICAgLmlzaC1kZWNvci10b3Age1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI21hcCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0MDBweDtcbiAgICBtYXJnaW4tdG9wOiAtNDAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTM5MHB4O1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBzcGFuLCBkaXYsIGEge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICB9XG5cbiAgICAuaXNoLW1hcmtlci1pbmZvIHtcbiAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubWFwLW1hcmtlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBQbHVnaW5zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYWRtaW4tYmFyIHtcbiAgICAubGctYmFja2Ryb3AsIC5sZy1vdXRlciB7XG4gICAgICAgIHotaW5kZXg6IDk5OTk5O1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBKZXRwYWNrIC0gc2hhcmVkYWRkeSAtIHNvY2lhbCBzaGFyaW5nIGJ1dHRvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5zaGFyZWRhZGR5IC5zZC1jb250ZW50IHVsLFxuLnNoYXJlZGFkZHkuc2Qtc2hhcmluZy1lbmFibGVkIC5zZC10aXRsZTpiZWZvcmUge1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHggIWltcG9ydGFudDtcbn1cblxuLnNoYXJlZGFkZHkuc2Qtc2hhcmluZy1lbmFibGVkIC5zZC10aXRsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmlzaC1jb250YWN0LWluZm8tYm94IC5zaGFyZWRhZGR5IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gVEFCTEUgT0YgQ09OVEVOVFM6XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFZhcnNcbiMgTWl4aW5zXG4jIEV4dGVuZFxuIyBBbmltYXRpb25zXG4jIEdlbmVyYWxcbiMgU2hvcnRjb2Rlc1xuIyBNZWRpYSBRdWVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE1peGluc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEV4dGVuZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEFuaW1hdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBHZW5lcmFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgU2hvcnRjb2Rlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uaXNoLXNjLWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLyogVEFCUyAqL1xuXG4uaXNoLXNjLXRhYnMge1xuICAgIC5pc2gtdGFicy1tZW51IHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBNZWRpYSBRdWVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG5cbiAgICAuaXNoLXNjLWVsZW1lbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIH1cblxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVmFyc1xuIyBGb250c1xuIyBNZWRpYSBRdWVyeVxuIyMgNzY4cHhcbiMjIDEwMjRweFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFZhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiRzaXplOiAxNjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuYm9keSxcbiNtYXAgKixcbi5pc2gtY29udGFjdC1mb3JtLWJveCAqIGgzLFxuLndpZGdldF93cGNvbV9zb2NpYWxfbWVkaWFfaWNvbnNfd2lkZ2V0IGEge1xuICAgIGZvbnQtZmFtaWx5OiAnVmFyZWxhIFJvdW5kJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMzAgLyAxOCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDEsIC5pc2gtaDEsICNtYXAgaDEge1xuICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICBsaW5lLWhlaWdodDogY2FsYygxMDAgLyA5MCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDIsIC5pc2gtaDIsICNtYXAgaDIsXG4uaXNoLXJlc3VsdCAuaXNoLXJlc3VsdC1udW1iZXIsXG4uc2l0ZS1icmFuZGluZyBoMiBwIHtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoNzAgLyA2MCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDMsIC5pc2gtaDMsICNtYXAgaDMsXG4uaXNoLXNvY2lhbC1ib3gtY29udGFjdCBsaSB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDUwIC8gNDApO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbmg0LCAuaXNoLWg0LCAjbWFwIGg0LFxuLnNpdGUtYnJhbmRpbmcgLnNpdGUtZGVzYyxcbi5zaXRlLWJyYW5kaW5nIGgzLFxuLnNpdGUtYnJhbmRpbmcgcCxcbi5zaXRlLWJyYW5kaW5nLFxuLmlzaC1pY29uLW5hdiBpLFxuLmlzaC1wb3J0Zm9saW8tbmF2aWdhdGlvbixcbi5zaGFyZWRhZGR5LnNkLXNoYXJpbmctZW5hYmxlZCAuc2QtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBsaW5lLWhlaWdodDogY2FsYygzNSAvIDI1KTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5oNSwgLmlzaC1oNSwgI21hcCBoNSxcbi5wb3N0LW1ldGEta2V5LFxuLmlzaC1mb290ZXIgLmlzaC1zb2NpYWwtYm94IHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMzAgLyAyMCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDYsIC5pc2gtaDYsICNtYXAgaDYsXG4uaXNoLXBmbG8tZ2FsLmlzaC0yY29sIC5pc2gtdGl0bGUsXG4uaXNoLW5hdmlnYXRpb24gdWwgdWwsXG4uaXNoLWZvb3RlciAuaXNoLWxlZ2FscyB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDI1IC8gMTYpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbiNtYXAgaDQsICNtYXAgaDUsICNtYXAgaDYge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuI21hcCBwLCAjbWFwIGRpdiwgI21hcCBzcGFuLCAjbWFwIGksICNtYXAgYSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucmVxdWlyZWQtZXJyb3I6YmVmb3JlLFxuLnJlcXVpcmVkLWVycm9yOmFmdGVyLFxuc3Bhbi53cGNmNy1ub3QtdmFsaWQtdGlwLFxuLmlzaC1ibG9nIC5pc2gtYmxvZy1wb3N0LWRldGFpbHMge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnRpbGVkLWdhbGxlcnktY2FwdGlvbixcbi53aWRnZXRfdGFnX2Nsb3VkIC50YWdjbG91ZCAudGFnLWNsb3VkLWxpbmsge1xuICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4ud2lkZ2V0X3JlY2VudF9lbnRyaWVzIHVsIHNwYW4sXG4ud2lkZ2V0X3JzcyB1bCBzcGFuLFxuLmlzaC13aWRnZXQtcmVjZW50LXR3ZWV0cyAudHdlZXQtZGV0YWlscyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5pc2gtbmF2LWNsb3NlIGksXG4uaXNoLWJhY2stdG8tdG9wIGksXG4uaXNoLWNvbnRhY3QtaW5mby1jb250YWluZXIgaSB7XG4gICAgZm9udC1zaXplOiAxMjAlO1xufVxuXG5oZWFkZXIgLmlzaC10YWdsaW5lLXdpZGdldCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmp1c3RpZmllZC1nYWxsZXJ5ID4gYSA+IC5jYXB0aW9uLFxuLmp1c3RpZmllZC1nYWxsZXJ5ID4gZGl2ID4gLmNhcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiAnVmFyZWxhIFJvdW5kJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMzAgLyAxOCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBNZWRpYSBRdWVyeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyA3NjhweCAvIDQ4ZW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBoMSwgLmlzaC1oMSwgI21hcCBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNzBweDtcbiAgICB9XG5cbiAgICBoMiwgLmlzaC1oMiwgI21hcCBoMixcbiAgICAuc2l0ZS1icmFuZGluZyBoMiBwIHtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgIH1cblxuICAgIGgzLCAuaXNoLWgzLCAjbWFwIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAzNXB4O1xuICAgIH1cblxuICAgICNtYXAgaDQge1xuICAgICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgfVxuXG4gICAgI21hcCBoNSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAjbWFwIGg2IHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgICNtYXAgcCwgI21hcCBkaXYsICNtYXAgc3BhbiwgI21hcCBpLCAjbWFwIGEge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyAxMDI0cHggLyA2NGVtXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGgxLCAuaXNoLWgxLCAjbWFwIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiA5MHB4O1xuICAgIH1cblxuICAgIGgyLCAuaXNoLWgyLCAjbWFwIGgyLFxuICAgIC5zaXRlLWJyYW5kaW5nIGgyIHAge1xuICAgICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgfVxuXG4gICAgaDMsIC5pc2gtaDMsICNtYXAgaDMge1xuICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgfVxufSIsIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnaXNoLWljb25zJztcbiAgICBzcmM6IHVybCgnLi4vZm9udC9pc2gtaWNvbnMuZW90PzU4Mzc4NzYyJyk7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnQvaXNoLWljb25zLmVvdD81ODM3ODc2MiNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICB1cmwoJy4uL2ZvbnQvaXNoLWljb25zLndvZmYyPzU4Mzc4NzYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnLi4vZm9udC9pc2gtaWNvbnMud29mZj81ODM3ODc2MicpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnLi4vZm9udC9pc2gtaWNvbnMudHRmPzU4Mzc4NzYyJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgIHVybCgnLi4vZm9udC9pc2gtaWNvbnMuc3ZnPzU4Mzc4NzYyI2lzaC1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKiBDaHJvbWUgaGFjazogU1ZHIGlzIHJlbmRlcmVkIG1vcmUgc21vb3RoIGluIFdpbmRvenplLiAxMDAlIG1hZ2ljLCB1bmNvbW1lbnQgaWYgeW91IG5lZWQgaXQuICovXG4vKiBOb3RlLCB0aGF0IHdpbGwgYnJlYWsgaGludGluZyEgSW4gb3RoZXIgT1MtZXMgZm9udCB3aWxsIGJlIG5vdCBhcyBzaGFycCBhcyBpdCBjb3VsZCBiZSAqL1xuLypcbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCkge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ2lzaC1pY29ucyc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnQvaXNoLWljb25zLnN2Zz81ODM3ODc2MiNpc2gtaWNvbnMnKSBmb3JtYXQoJ3N2ZycpO1xuICB9XG59XG4qL1xuXG5bY2xhc3NePVwiaXNoLWljb24tXCJdOmJlZm9yZSwgW2NsYXNzKj1cIiBpc2gtaWNvbi1cIl06YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogXCJpc2gtaWNvbnNcIjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBzcGVhazogbm9uZTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgd2lkdGg6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC4yZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIG9wYWNpdHk6IC44OyAqL1xuXG4gICAgLyogRm9yIHNhZmV0eSAtIHJlc2V0IHBhcmVudCBzdHlsZXMsIHRoYXQgY2FuIGJyZWFrIGdseXBoIGNvZGVzKi9cbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgIC8qIGZpeCBidXR0b25zIGhlaWdodCwgZm9yIHR3aXR0ZXIgYm9vdHN0cmFwICovXG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcblxuICAgIC8qIEFuaW1hdGlvbiBjZW50ZXIgY29tcGVuc2F0aW9uIC0gbWFyZ2lucyBzaG91bGQgYmUgc3ltbWV0cmljICovXG4gICAgLyogcmVtb3ZlIGlmIG5vdCBuZWVkZWQgKi9cbiAgICBtYXJnaW4tbGVmdDogLjJlbTtcblxuICAgIC8qIHlvdSBjYW4gYmUgbW9yZSBjb21mb3J0YWJsZSB3aXRoIGluY3JlYXNlZCBpY29ucyBzaXplICovXG4gICAgLyogZm9udC1zaXplOiAxMjAlOyAqL1xuXG4gICAgLyogRm9udCBzbW9vdGhpbmcuIFRoYXQgd2FzIHRha2VuIGZyb20gVFdCUyAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgICAvKiBVbmNvbW1lbnQgZm9yIDNEIGVmZmVjdCAqL1xuICAgIC8qIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMyk7ICovXG59XG5cbi5pc2gtaWNvbi1zZWFyY2g6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMCc7IH0gLyogJ+6ggCcgKi9cbi5pc2gtaWNvbi1tYWlsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDEnOyB9IC8qICfuoIEnICovXG4uaXNoLWljb24tbWFpbC1hbHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMic7IH0gLyogJ+6ggicgKi9cbi5pc2gtaWNvbi1oZWFydDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAzJzsgfSAvKiAn7qCDJyAqL1xuLmlzaC1pY29uLWhlYXJ0LWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDQnOyB9IC8qICfuoIQnICovXG4uaXNoLWljb24tZHJvcGJveDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA1JzsgfSAvKiAn7qCFJyAqL1xuLmlzaC1pY29uLWRydXBhbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA2JzsgfSAvKiAn7qCGJyAqL1xuLmlzaC1pY29uLW1lbnU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNyc7IH0gLyogJ+6ghycgKi9cbi5pc2gtaWNvbi1jb2c6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwOCc7IH0gLyogJ+6giCcgKi9cbi5pc2gtaWNvbi1jb2ctYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDknOyB9IC8qICfuoIknICovXG4uaXNoLWljb24td3JlbmNoOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGEnOyB9IC8qICfuoIonICovXG4uaXNoLWljb24tYmFza2V0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGInOyB9IC8qICfuoIsnICovXG4uaXNoLWljb24tb2s6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwYyc7IH0gLyogJ+6gjCcgKi9cbi5pc2gtaWNvbi1jYW5jZWw6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwZCc7IH0gLyogJ+6gjScgKi9cbi5pc2gtaWNvbi1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGUnOyB9IC8qICfuoI4nICovXG4uaXNoLWljb24tbWludXM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwZic7IH0gLyogJ+6gjycgKi9cbi5pc2gtaWNvbi11c2VyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTAnOyB9IC8qICfuoJAnICovXG4uaXNoLWljb24tdXNlci1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTEnOyB9IC8qICfuoJEnICovXG4uaXNoLWljb24tZ2l0aHViLWNpcmNsZWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxMic7IH0gLyogJ+6gkicgKi9cbi5pc2gtaWNvbi1naXRodWItc3F1YXJlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODEzJzsgfSAvKiAn7qCTJyAqL1xuLmlzaC1pY29uLWNvbW1lbnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxNCc7IH0gLyogJ+6glCcgKi9cbi5pc2gtaWNvbi1jb21tZW50LWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTUnOyB9IC8qICfuoJUnICovXG4uaXNoLWljb24tZ2l0aHViLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxNic7IH0gLyogJ+6glicgKi9cbi5pc2gtaWNvbi1saW51eDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE3JzsgfSAvKiAn7qCXJyAqL1xuLmlzaC1pY29uLXJlZGRpdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE4JzsgfSAvKiAn7qCYJyAqL1xuLmlzaC1pY29uLXJlbnJlbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE5JzsgfSAvKiAn7qCZJyAqL1xuLmlzaC1pY29uLWFuZ2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxYSc7IH0gLyogJ+6gmicgKi9cbi5pc2gtaWNvbi1hbmdsZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODFiJzsgfSAvKiAn7qCbJyAqL1xuLmlzaC1pY29uLWFuZ2xlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MWMnOyB9IC8qICfuoJwnICovXG4uaXNoLWljb24tYW5nbGUtZG93bjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODFkJzsgfSAvKiAn7qCdJyAqL1xuLmlzaC1pY29uLXBob25lOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MWUnOyB9IC8qICfuoJ4nICovXG4uaXNoLWljb24tc2xhY2s6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxZic7IH0gLyogJ+6gnycgKi9cbi5pc2gtaWNvbi13aGF0c2FwcDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODIwJzsgfSAvKiAn7qCgJyAqL1xuLmlzaC1pY29uLXN0YWNrb3ZlcmZsb3ctMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODIxJzsgfSAvKiAn7qChJyAqL1xuLmlzaC1pY29uLXR3aXRjaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODIyJzsgfSAvKiAn7qCiJyAqL1xuLmlzaC1pY29uLWhvbWU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyMyc7IH0gLyogJ+6goycgKi9cbi5pc2gtaWNvbi1iZWhhbmNlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjQnOyB9IC8qICfuoKQnICovXG4uaXNoLWljb24tZ3BsdXM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyNSc7IH0gLyogJ+6gpScgKi9cbi5pc2gtaWNvbi1za3lwZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODI2JzsgfSAvKiAn7qCmJyAqL1xuLmlzaC1pY29uLXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyNyc7IH0gLyogJ+6gpycgKi9cbi5pc2gtaWNvbi13b3JkcHJlc3M6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyOCc7IH0gLyogJ+6gqCcgKi9cbi5pc2gtaWNvbi15b3V0dWJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjknOyB9IC8qICfuoKknICovXG4uaXNoLWljb24tcGludGVyZXN0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MmEnOyB9IC8qICfuoKonICovXG4uaXNoLWljb24tZmFjZWJvb2s6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyYic7IH0gLyogJ+6gqycgKi9cbi5pc2gtaWNvbi1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogJ1xcZTgyYyc7IH0gLyogJ+6grCcgKi9cbi5pc2gtaWNvbi1jYW5jZWwtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODJkJzsgfSAvKiAn7qCtJyAqL1xuLmlzaC1pY29uLW9rLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyZSc7IH0gLyogJ+6gricgKi9cbi5pc2gtaWNvbi1wbHVzLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyZic7IH0gLyogJ+6grycgKi9cbi5pc2gtaWNvbi1taW51cy0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzAnOyB9IC8qICfuoLAnICovXG4uaXNoLWljb24tcmlnaHQtb3Blbi0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzEnOyB9IC8qICfuoLEnICovXG4uaXNoLWljb24tbGVmdC1vcGVuLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzMic7IH0gLyogJ+6gsicgKi9cbi5pc2gtaWNvbi13aW5kb3dzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzMnOyB9IC8qICfuoLMnICovXG4uaXNoLWljb24teGluZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODM0JzsgfSAvKiAn7qC0JyAqL1xuLmlzaC1pY29uLWRvd24tc21hbGw6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzNSc7IH0gLyogJ+6gtScgKi9cbi5pc2gtaWNvbi1sZWZ0LXNtYWxsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzYnOyB9IC8qICfuoLYnICovXG4uaXNoLWljb24tcmlnaHQtc21hbGw6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzNyc7IH0gLyogJ+6gtycgKi9cbi5pc2gtaWNvbi11cC1zbWFsbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODM4JzsgfSAvKiAn7qC4JyAqL1xuLmlzaC1pY29uLWxpbmtlZGluOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzknOyB9IC8qICfuoLknICovXG4uaXNoLWljb24tZHJpYmJibGU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzYSc7IH0gLyogJ+6guicgKi9cbi5pc2gtaWNvbi10dW1ibHI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzYic7IH0gLyogJ+6guycgKi9cbi5pc2gtaWNvbi12aW1lby1zcXVhcmVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4M2MnOyB9IC8qICfuoLwnICovXG4uaXNoLWljb24tZGlnZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODNkJzsgfSAvKiAn7qC9JyAqL1xuLmlzaC1pY29uLWNzczM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzZSc7IH0gLyogJ+6gvicgKi9cbi5pc2gtaWNvbi1hcHBsZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODNmJzsgfSAvKiAn7qC/JyAqL1xuLmlzaC1pY29uLWNyZWRpdC1jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDAnOyB9IC8qICfuoYAnICovXG4uaXNoLWljb24taHRtbDU6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0MSc7IH0gLyogJ+6hgScgKi9cbi5pc2gtaWNvbi1zdGFyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDInOyB9IC8qICfuoYInICovXG4uaXNoLWljb24tc3Rhci1lbXB0eTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQzJzsgfSAvKiAn7qGDJyAqL1xuLmlzaC1pY29uLXN0YXItaGFsZi1hbHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0NCc7IH0gLyogJ+6hhCcgKi9cbi5pc2gtaWNvbi1jb2RlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDUnOyB9IC8qICfuoYUnICovXG4uaXNoLWljb24tYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0Nic7IH0gLyogJ+6hhicgKi9cbi5pc2gtaWNvbi1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0Nyc7IH0gLyogJ+6hhycgKi9cbi5pc2gtaWNvbi1hbmdsZS1kb3VibGUtdXA6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0OCc7IH0gLyogJ+6hiCcgKi9cbi5pc2gtaWNvbi1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQ5JzsgfSAvKiAn7qGJJyAqL1xuLmlzaC1pY29uLWNsb3VkLXN1bi1pbnY6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0YSc7IH0gLyogJ+6hiicgKi9cbi5pc2gtaWNvbi1jbG91ZC1pbnY6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0Yic7IH0gLyogJ+6hiycgKi9cbi5pc2gtaWNvbi1zdW4taW52OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NGMnOyB9IC8qICfuoYwnICovXG4uaXNoLWljb24tbGlnaHRidWxiOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NGQnOyB9IC8qICfuoY0nICovXG4uaXNoLWljb24tdW1icmVsbGE6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0ZSc7IH0gLyogJ+6hjicgKi9cbi5pc2gtaWNvbi1pbmZpbml0eTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODRmJzsgfSAvKiAn7qGPJyAqL1xuLmlzaC1pY29uLWhvdXJnbGFzczpiZWZvcmUgeyBjb250ZW50OiAnXFxlODUwJzsgfSAvKiAn7qGQJyAqL1xuLmlzaC1pY29uLWJpY3ljbGU6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1MSc7IH0gLyogJ+6hkScgKi9cbi5pc2gtaWNvbi1hcnQtZ2FsbGVyeTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODUyJzsgfSAvKiAn7qGSJyAqL1xuLmlzaC1pY29uLXdoZWVsY2hhaXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1Myc7IH0gLyogJ+6hkycgKi9cbi5pc2gtaWNvbi1nbG9iZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODU0JzsgfSAvKiAn7qGUJyAqL1xuLmlzaC1pY29uLWxvY2F0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTUnOyB9IC8qICfuoZUnICovXG4uaXNoLWljb24tc291bmRjbG91ZC0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTYnOyB9IC8qICfuoZYnICovXG4uaXNoLWljb24tcGluOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTcnOyB9IC8qICfuoZcnICovXG4uaXNoLWljb24tcGluLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1OCc7IH0gLyogJ+6hmCcgKi9cbi5pc2gtaWNvbi1waW4tb3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODU5JzsgfSAvKiAn7qGZJyAqL1xuLmlzaC1pY29uLXBpbnRlcmVzdC1jaXJjbGVkLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZjBkMic7IH0gLyogJ++DkicgKi9cbi5pc2gtaWNvbi14aW5nLXNxdWFyZWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZjE2OSc7IH0gLyogJ++FqScgKi9cbi5pc2gtaWNvbi1mbGlja3I6YmVmb3JlIHsgY29udGVudDogJ1xcZjE2ZSc7IH0gLyogJ++FricgKi9cbi5pc2gtaWNvbi1iaXRidWNrZXQ6YmVmb3JlIHsgY29udGVudDogJ1xcZjE3MSc7IH0gLyogJ++FsScgKi9cbi5pc2gtaWNvbi1mb3Vyc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxODAnOyB9IC8qICfvhoAnICovXG4uaXNoLWljb24tdHJlbGxvOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxODEnOyB9IC8qICfvhoEnICovXG4uaXNoLWljb24tdmtvbnRha3RlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxODknOyB9IC8qICfvhoknICovXG4uaXNoLWljb24td2VpYm86YmVmb3JlIHsgY29udGVudDogJ1xcZjE4YSc7IH0gLyogJ++GiicgKi9cbi5pc2gtaWNvbi1zdGFja2V4Y2hhbmdlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxOGQnOyB9IC8qICfvho0nICovXG4uaXNoLWljb24tc3R1bWJsZXVwb246YmVmb3JlIHsgY29udGVudDogJ1xcZjFhNCc7IH0gLyogJ++GpCcgKi9cbi5pc2gtaWNvbi1zdGVhbTpiZWZvcmUgeyBjb250ZW50OiAnXFxmMWI2JzsgfSAvKiAn74a2JyAqL1xuLmlzaC1pY29uLXNwb3RpZnk6YmVmb3JlIHsgY29udGVudDogJ1xcZjFiYyc7IH0gLyogJ++GvCcgKi9cbi5pc2gtaWNvbi1kZXZpYW50YXJ0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxYmQnOyB9IC8qICfvhr0nICovXG4uaXNoLWljb24tdmluZTpiZWZvcmUgeyBjb250ZW50OiAnXFxmMWNhJzsgfSAvKiAn74eKJyAqL1xuLmlzaC1pY29uLWNvZGVvcGVuOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxY2InOyB9IC8qICfvh4snICovXG4uaXNoLWljb24tanNmaWRkbGU6YmVmb3JlIHsgY29udGVudDogJ1xcZjFjYyc7IH0gLyogJ++HjCcgKi9cbi5pc2gtaWNvbi1zbGlkZXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxZTcnOyB9IC8qICfvh6cnICovXG4uaXNoLWljb24teWVscDpiZWZvcmUgeyBjb250ZW50OiAnXFxmMWU5JzsgfSAvKiAn74epJyAqL1xuLmlzaC1pY29uLWxhc3RmbTpiZWZvcmUgeyBjb250ZW50OiAnXFxmMjAyJzsgfSAvKiAn74iCJyAqL1xuLmlzaC1pY29uLXRyaXBhZHZpc29yOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYyNjInOyB9IC8qICfviaInICovXG4uaXNoLWljb24tc25hcGNoYXQ6YmVmb3JlIHsgY29udGVudDogJ1xcZjJhYic7IH0gLyogJ++KqycgKi9cbi5pc2gtaWNvbi1zbmFwY2hhdC1naG9zdDpiZWZvcmUgeyBjb250ZW50OiAnXFxmMmFjJzsgfSAvKiAn74qsJyAqLyIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVmFyc1xuXG4jIFBvcnRmb2xpb1xuIyBQb3J0Zm9saW8gLSBTcXVhcmVkXG4jIFBvcnRmb2xpbyAtIFRlbXBsYXRlc1xuIyBQb3J0Zm9saW8gLSBOYXZpZ2F0aW9uXG4jIEFuaW1hdGlvbiAtIE1vdmUgVXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBWYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4kY2FwdGlvbl9jb250YWluZXJfd2lkdGg6IDUwO1xuJGNhcHRpb25faGVpZ2h0OiAzMDtcbiR2ZXJ0aWNhbF9tYXJnaW46IDE1MDtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBQb3J0Zm9saW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pc2gtcGZsby1nYWwge1xuXG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAvKmJveC1zaGFkb3c6IDEwcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTsqL1xuICAgIH1cblxuICAgIC5pc2gtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAuaXNoLWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWNhcHRpb24tY29udGFpbmVyLCAuaXNoLWltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWNhcHRpb24tY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAkY2FwdGlvbl9jb250YWluZXJfd2lkdGggKiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICgjeyRjYXB0aW9uX2NvbnRhaW5lcl93aWR0aH0gKiAxcHgpKTtcblxuICAgICAgICAgICAgLmlzaC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAxMHB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDc1JTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWNhcHRpb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0IDA7XG4gICAgICAgICAgICBsZWZ0OiAkY2FwdGlvbl9oZWlnaHQgKiAxcHg7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRjYXB0aW9uX2hlaWdodCAqIDFweDtcbiAgICAgICAgICAgIGhlaWdodDogJGNhcHRpb25faGVpZ2h0ICogMXB4O1xuXG4gICAgICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRjYXB0aW9uX2hlaWdodCAqIDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkgLmlzaC1pdGVtLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcblxuICAgICAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pc2gtY2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4uaXNoLXBmbG8tZ2FsLmlzaC0xY29sLFxuLmlzaC1wZmxvLWdhbC5pc2gtMmNvbCB7XG5cbiAgICAuaXNoLWl0ZW0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTBweFxuXG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFBvcnRmb2xpbyAtIFNxdWFyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pc2gtcGZsby1nYWwuaXNoLXNxdWFyZSB7XG5cbiAgICAuaXNoLWltZyB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm94LXNoYWRvdzogMTBweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAuMSk7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICAgICAgJi5pc2gtaW1nLXNjYWxlOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pc2gtbm8taW1nIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pc2gtcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQW5pbWF0aW9uIC0gTW92ZSBVcFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1wZmxvLWdhbC5pc2gtc2Nyb2xsLWFuaW0gLmlzaC1pdGVtIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uaXNoLXBmbG8tZ2FsLmlzaC1zY3JvbGwtYW5pbSAuaXNoLWl0ZW0uc2hvd24ge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5pc2gtcGZsby1nYWwuaXNoLXNjcm9sbC1hbmltIC5pc2gtaXRlbS5hbmltYXRlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwcHgpO1xuICAgIGFuaW1hdGlvbjogaXNoTW92ZVVwIDAuNjVzIGVhc2UgZm9yd2FyZHM7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBpc2hNb3ZlVXAge1xuICAgIDAlIHtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBpc2hNb3ZlVXAge1xuICAgIDAlIHtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFBvcnRmb2xpbyAtIFRlbXBsYXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBhZ2UtdGVtcGxhdGUtcG9ydGZvbGlvIHtcbiAgICAuaXNoLWNhcHRpb24tY29udGFpbmVyIHNwYW46bm90KC5pc2gtaDQpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgUG9ydGZvbGlvIC0gTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1wb3J0Zm9saW8tbmF2aWdhdGlvbiB7XG5cbiAgICBhLFxuICAgIC5pc2gtZGlzYWJsZWQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEltYWdlIFdpdGggU2hhZG93XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaXNoLXNoYWRvdy1pbWFnZSB7XG5cbiAgICAuaXNoLWl0ZW0ge1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDEwcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAuaXNoLWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWNhcHRpb24tY29udGFpbmVyLCAuaXNoLWltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1jYXB0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogJGNhcHRpb25fY29udGFpbmVyX3dpZHRoICogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1pbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAoI3skY2FwdGlvbl9jb250YWluZXJfd2lkdGh9ICogMXB4KSk7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMTBweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC42cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGE6aG92ZXIgaW1nIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaXNoLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDEwcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTMzJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWNhcHRpb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdCAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogJGNhcHRpb25faGVpZ2h0ICogMXB4O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkY2FwdGlvbl9oZWlnaHQgKiAxcHg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjYXB0aW9uX2hlaWdodCAqIDFweDtcbiAgICAgICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGNhcHRpb25faGVpZ2h0ICogMXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaXNoLWNhcHRpb25zLXJpZ2h0IHtcblxuICAgICAgICAuaXNoLWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuXG4gICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlzaC1jYXB0aW9uIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFRlYW0gLSBUZW1wbGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5wYWdlLXRlbXBsYXRlLXRlYW0ge1xuICAgIC5zaXRlLWNvbnRlbnQgLmlzaC1yb3cge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzaC1pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgICAuaXNoLWNhcHRpb24ge1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1jYXB0aW9uLXNvY2lhbC1pY29ucyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6ICRjYXB0aW9uX2hlaWdodCAqIDFweDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDAgMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tb247XG4gICAgICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRleigwKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtY2FwdGlvbi1jb250YWluZXIge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtY2FwdGlvbnMtcmlnaHQge1xuXG4gICAgICAgIC5pc2gtaXRlbS1jb250YWluZXIge1xuXG4gICAgICAgICAgICAuaXNoLWNhcHRpb24tc29jaWFsLWljb25zIHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuaXNoLXRlYW0tYXJjaGl2ZS1jb250ZW50IHtcbiAgICAgICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBUQUJMRSBPRiBDT05URU5UUzpcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgVmFyc1xuXG4jIEJsb2dcbiMgU2luZ2xlIFBvc3QgTmF2aWdhdGlvblxuIyBCbG9nIC0gVGVtcGxhdGVzXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBWYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQmxvZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1ibG9nLW1hc29ucnksXG4uaXNoLWJsb2ctY2xhc3NpYyB7XG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuaXNoLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIC8vcGFkZGluZy1ib3R0b206IDUwcHg7XG5cbiAgICAgICAgLmlzaC1ibG9nLXBvc3QtdGl0bGUge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1ibG9nLXBvc3QtbWVkaWEgKyAuaXNoLWJsb2ctcG9zdC10aXRsZSB7XG4gICAgICAgICAgICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtYmxvZy1wb3N0LWRldGFpbHMge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcblxuICAgICAgICAgICAgLmlzaC1sYWJlbCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaXNoLXJlYWQtbW9yZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1ibG9nLXBvc3QtY29udGVudCB7XG4gICAgICAgICAgICBwOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uaXNoLWJsb2ctY2xhc3NpYyB7XG4gICAgLmlzaC1pdGVtIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3RpY2t5IHtcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgU2luZ2xlIFBvc3QgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1wb3N0LW5hdmlnYXRpb24ge1xuICAgIC5pc2gtc2VwYXJhdG9yIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cblxuICAgIC5uYXYtcHJldmlvdXMgfiAubmF2LW5leHQ6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJy8nO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIH1cblxuICAgIC5uYXYtbGlua3Mge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgICAgZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEsXG4gICAgLmlzaC1kaXNhYmxlZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICB9XG5cbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQmxvZyAtIFRlbXBsYXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnBhZ2UtdGVtcGxhdGUtYmxvZyxcbi5wYWdlLXRlbXBsYXRlLWJsb2ctZGV0YWlsIHtcbiAgICAvKi5zaXRlLWNvbnRlbnRcbiAgICB7XG4gICAgICAgIG1hcmdpbi10b3A6IC04MHB4O1xuICAgIH0qL1xufSIsIi5pc2gtc29jaWFsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLW9uO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRleigwKTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG5cbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcImlzaC1pY29uc1wiO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHNwZWFrOiBub25lO1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuM2VtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgLyogb3BhY2l0eTogLjg7ICovXG5cbiAgICAgICAgICAgIC8qIEZvciBzYWZldHkgLSByZXNldCBwYXJlbnQgc3R5bGVzLCB0aGF0IGNhbiBicmVhayBnbHlwaCBjb2RlcyovXG4gICAgICAgICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICAgICAgICAgICAvKiBBbmltYXRpb24gY2VudGVyIGNvbXBlbnNhdGlvbiAtIG1hcmdpbnMgc2hvdWxkIGJlIHN5bW1ldHJpYyAqL1xuICAgICAgICAgICAgLyogcmVtb3ZlIGlmIG5vdCBuZWVkZWQgKi9cbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuMmVtO1xuXG4gICAgICAgICAgICAvKiBGb250IHNtb290aGluZy4gVGhhdCB3YXMgdGFrZW4gZnJvbSBUV0JTICovXG4gICAgICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhOmJlZm9yZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ1xcZTg1NCc7IH0gLy8gRGVmYXVsdCBHbG9iZSBpY29uIG9uIGFueXRoaW5nIGVsc2VcbiAgICBhW2hyZWYqPVwiYmVoYW5jZS5uZXRcIl06YmVmb3JlIHsgICAgICAgICBjb250ZW50OiAnXFxlODI0JzsgfVxuICAgIGFbaHJlZio9XCJiaXRidWNrZXQub3JnXCJdOmJlZm9yZSB7ICAgICAgIGNvbnRlbnQ6ICdcXGYxNzEnOyB9XG4gICAgYVtocmVmKj1cImNvZGVwZW4uaW9cIl06YmVmb3JlIHsgICAgICAgICAgY29udGVudDogJ1xcZjFjYic7IH1cbiAgICBhW2hyZWYqPVwiZGV2aWFudGFydC5jb21cIl06YmVmb3JlIHsgICAgICBjb250ZW50OiAnXFxmMWJkJzsgfVxuICAgIGFbaHJlZio9XCJkaWdnLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4M2QnOyB9XG4gICAgYVtocmVmKj1cImRyaWJiYmxlLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgY29udGVudDogJ1xcZTgzYSc7IH1cbiAgICBhW2hyZWYqPVwiZHJvcGJveC5jb21cIl06YmVmb3JlIHsgICAgICAgICBjb250ZW50OiAnXFxlODA1JzsgfVxuICAgIGFbaHJlZio9XCJmYWNlYm9vay5jb21cIl06YmVmb3JlIHsgICAgICAgIGNvbnRlbnQ6ICdcXGU4MmInOyB9XG4gICAgYVtocmVmKj1cImZsaWNrci5jb21cIl06YmVmb3JlIHsgICAgICAgICAgY29udGVudDogJ1xcZjE2ZSc7IH1cbiAgICBhW2hyZWYqPVwiZm91cnNxdWFyZS5jb21cIl06YmVmb3JlIHsgICAgICBjb250ZW50OiAnXFxmMTgwJzsgfVxuICAgIGFbaHJlZio9XCJwbHVzLmdvb2dsZS5jb21cIl06YmVmb3JlIHsgICAgIGNvbnRlbnQ6ICdcXGU4MjUnOyB9XG4gICAgYVtocmVmKj1cImdpdGh1Yi5jb21cIl06YmVmb3JlIHsgICAgICAgICAgY29udGVudDogJ1xcZTgxMic7IH1cbiAgICBhW2hyZWYqPVwiaW5zdGFncmFtLmNvbVwiXTpiZWZvcmUgeyAgICAgICBjb250ZW50OiAnXFxlODJjJzsgfVxuICAgIGFbaHJlZio9XCJqc2ZpZGRsZS5uZXRcIl06YmVmb3JlIHsgICAgICAgIGNvbnRlbnQ6ICdcXGYxY2MnOyB9XG4gICAgYVtocmVmKj1cImxhc3QuZm1cIl06YmVmb3JlIHsgICAgICAgICAgICAgY29udGVudDogJ1xcZjIwMic7IH1cbiAgICBhW2hyZWYqPVwibGlua2VkaW4uY29tXCJdOmJlZm9yZSB7ICAgICAgICBjb250ZW50OiAnXFxlODM5JzsgfVxuICAgIGFbaHJlZio9XCJtYWlsdG86XCJdOmJlZm9yZSB7ICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MDEnOyB9XG4gICAgYVtocmVmKj1cInBpbnRlcmVzdC5jb21cIl06YmVmb3JlIHsgICAgICAgY29udGVudDogJ1xcZjBkMic7IH1cbiAgICBhW2hyZWYqPVwicmVkZGl0LmNvbVwiXTpiZWZvcmUgeyAgICAgICAgICBjb250ZW50OiAnXFxlODE4JzsgfVxuICAgIGFbaHJlZio9XCJyZW5yZW4uY29tXCJdOmJlZm9yZSB7ICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MTknOyB9XG4gICAgYVtocmVmKj1cInNreXBlLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgICAgY29udGVudDogJ1xcZTgyNic7IH1cbiAgICBhW2hyZWYqPVwic2t5cGU6XCJdOmJlZm9yZSB7ICAgICAgICAgICAgICBjb250ZW50OiAnXFxlODI2JzsgfVxuICAgIGFbaHJlZio9XCJzbGFjay5jb21cIl06YmVmb3JlIHsgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MWYnOyB9XG4gICAgYVtocmVmKj1cInN0YWNrZXhjaGFuZ2UuY29tXCJdOmJlZm9yZSB7ICAgY29udGVudDogJ1xcZjE4ZCc7IH1cbiAgICBhW2hyZWYqPVwic3RhY2tvdmVyZmxvdy5jb21cIl06YmVmb3JlIHsgICBjb250ZW50OiAnXFxlODIxJzsgfVxuICAgIGFbaHJlZio9XCJzbGlkZXNoYXJlLm5ldFwiXTpiZWZvcmUgeyAgICAgIGNvbnRlbnQ6ICdcXGYxZTcnOyB9XG4gICAgYVtocmVmKj1cInNuYXBjaGF0LmNvbVwiXTpiZWZvcmUgeyAgICAgICAgY29udGVudDogJ1xcZjJhYyc7IH1cbiAgICBhW2hyZWYqPVwic291bmRjbG91ZC5jb21cIl06YmVmb3JlIHsgICAgICBjb250ZW50OiAnXFxlODU2JzsgfVxuICAgIGFbaHJlZio9XCJzcG90aWZ5LmNvbVwiXTpiZWZvcmUgeyAgICAgICAgIGNvbnRlbnQ6ICdcXGYxYmMnOyB9XG4gICAgYVtocmVmKj1cInN0ZWFtY29tbXVuaXR5LmNvbVwiXTpiZWZvcmUgeyAgY29udGVudDogJ1xcZjFiNic7IH1cbiAgICBhW2hyZWYqPVwic3R1bWJsZXVwb24uY29tXCJdOmJlZm9yZSB7ICAgICBjb250ZW50OiAnXFxmMWE0JzsgfVxuICAgIGFbaHJlZio9XCJ0ZWw6XCJdOmJlZm9yZSB7ICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MWUnOyB9XG4gICAgYVtocmVmKj1cInRyaXBhZHZpc29yLmNvbVwiXTpiZWZvcmUgeyAgICAgY29udGVudDogJ1xcZjI2Mic7IH1cbiAgICBhW2hyZWYqPVwidHVtYmxyLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgICBjb250ZW50OiAnXFxlODNiJzsgfVxuICAgIGFbaHJlZio9XCJ0d2l0Y2gudHZcIl06YmVmb3JlIHsgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MjInOyB9XG4gICAgYVtocmVmKj1cInR3aXR0ZXIuY29tXCJdOmJlZm9yZSB7ICAgICAgICAgY29udGVudDogJ1xcZTgyNyc7IH1cbiAgICBhW2hyZWYqPVwidmltZW8uY29tXCJdOmJlZm9yZSB7ICAgICAgICAgICBjb250ZW50OiAnXFxlODNjJzsgfVxuICAgIGFbaHJlZio9XCJ2aW5lLmNvXCJdOmJlZm9yZSB7ICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYxY2EnOyB9XG4gICAgYVtocmVmKj1cInZrLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgICAgICAgY29udGVudDogJ1xcZjE4OSc7IH1cbiAgICBhW2hyZWYqPVwid2VpYm8uY29tXCJdOmJlZm9yZSB7ICAgICAgICAgICBjb250ZW50OiAnXFxmMThhJzsgfVxuICAgIGFbaHJlZio9XCJ3aGF0c2FwcDpcIl06YmVmb3JlIHsgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MjAnOyB9XG4gICAgYVtocmVmKj1cIndvcmRwcmVzcy5cIl06YmVmb3JlIHsgICAgICAgICAgY29udGVudDogJ1xcZTgyOCc7IH1cbiAgICBhW2hyZWYqPVwieWVscC5jb21cIl06YmVmb3JlIHsgICAgICAgICAgICBjb250ZW50OiAnXFxmMWU5JzsgfVxuICAgIGFbaHJlZio9XCJ5b3V0dWJlLmNvbVwiXTpiZWZvcmUgeyAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MjknOyB9XG4gICAgYVtocmVmKj1cInhpbmcuY29tXCJdOmJlZm9yZSB7ICAgICAgICAgICAgY29udGVudDogJ1xcZTgzNCc7IH1cbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gVEFCTEUgT0YgQ09OVEVOVFM6XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFZhcnNcbiMgMzIwcHhcbiMgNDgwcHhcbiMgNzY4cHhcbiMgMTAyNHB4XG4jIDEyMDBweFxuIyAxNjAwcHhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBWYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4kTkFWSUdBVElPTl9XSURUSDogMzIwcHg7XG4kTkFWX1RSQU5TSVRJT046IGFsbCAwLjVzIGVhc2U7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgMzIwcHggLyAyMGVtXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSB7XG5cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyA0ODBweCAvIDMwZW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgwcHgpIHtcblxuICAgIC5pc2gtd2lkZ2V0LWVsZW1lbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIH1cblxuICAgIC5pc2gtZGVjb3ItY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxNjBweDtcbiAgICB9XG5cbiAgICAuaXNoLW5hdmlnYXRpb24ge1xuICAgICAgICAmLmlzaC1uYXYtb24ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLW5hdmlnYXRpb24ge1xuICAgICAgICB3aWR0aDogNDgwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcblxuICAgICAgICAuaXNoLW5hdi1iZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkTkFWSUdBVElPTl9XSURUSDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtbmF2LWNsb3NlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgICAgIGxlZnQ6IDgwcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg4MGRlZykgdHJhbnNsYXRlWigwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgIGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB0cmFuc2xhdGVaKDApO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVaKDApO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAkTkFWX1RSQU5TSVRJT047XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1uYXYtY29udGFpbmVyLWJnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkTkFWSUdBVElPTl9XSURUSDtcbiAgICAgICAgICAgIGhlaWdodDogMTIwJTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAgICAgLmlzaC1uYXYtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDUwcHggMjBweCAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogODMlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogUE9SVEZPTElPICovXG4gICAgLmlzaC1wZmxvLWdhbC5pc2gtMWNvbCxcbiAgICAuaXNoLXBmbG8tZ2FsLmlzaC0yY29sIHtcblxuICAgICAgICAuaXNoLWl0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTYwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDg3cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4N3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gODdweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWl0ZW0uaXNoLWZlYXR1cmVkLWltYWdlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICB9XG5cbiAgICAvKiBQT1JURk9MSU8gLSBUZW1wbGF0ZXMgKi9cbiAgICAucGFnZS10ZW1wbGF0ZS1wb3J0Zm9saW8ge1xuICAgICAgICAuaXNoLWNhcHRpb24tY29udGFpbmVyIHNwYW46bm90KC5pc2gtaDQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdvcmRQcmVzcyBHYWxsZXJ5XG4gICAgLyogR2FsbGVyeSBDb2x1bW5zICovXG5cbiAgICAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktY29sdW1ucy0xIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMzMuMzMlO1xuICAgIH1cblxuICAgIC5nYWxsZXJ5LWNvbHVtbnMtNCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgLy8gU2VhcmNoIFJlc3VsdHNcbiAgICAuaXNoLXJlc3VsdHMge1xuICAgICAgICAuaXNoLXJlc3VsdCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTE2cHg7XG5cbiAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAuaXNoLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlzaC1yZXN1bHQtbnVtYmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgNjAxcHggLSBPbmx5IGZvciBXb3JkUHJlc3MgYWRtaW4gdG9wIGJhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDFweCkge1xuXG4gICAgLmFkbWluLWJhciB7XG4gICAgICAgIC5pc2gtc3RpY2t5LW9uIHtcbiAgICAgICAgICAgICYuc2l0ZS1oZWFkZXIge1xuICAgICAgICAgICAgICAgIC5pc2gtbG9nby1jb250YWluZXIsXG4gICAgICAgICAgICAgICAgLmlzaC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIDc2OHB4IC8gNDhlbVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuXG4gICAgLmFkbWluLWJhciB7XG4gICAgICAgIC5pc2gtc3RpY2t5LW9uIHtcbiAgICAgICAgICAgICYuc2l0ZS1oZWFkZXIge1xuICAgICAgICAgICAgICAgIC5pc2gtbG9nby1jb250YWluZXIsXG4gICAgICAgICAgICAgICAgLmlzaC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBIMSwgSDIsIEgzLCBINCwgSDUsIEg2LFxuICAgIHAsXG4gICAgdWwsXG4gICAgb2wsXG4gICAgZGwsXG4gICAgdGFibGUsXG4gICAgaHIsXG4gICAgYmxvY2txdW90ZSxcbiAgICBwcmUsXG4gICAgYWRkcmVzcyxcbiAgICAuaXNoLW1haW4tY29udGVudCAudGlsZWQtZ2FsbGVyeSwgLy9pbWFnZSBnYWxsZXJ5IGVsZW1lbnQgYnkgYWN0aXZlIGpldHBhY2tcbiAgICAuaXNoLW1haW4tY29udGVudCAuamV0cGFjay12aWRlby13cmFwcGVyLCAvL3ZpZGVvIGVsZW1lbnQgYnkgYWN0aXZlIGpldHBhY2tcbiAgICAucG9zdC1wYXNzd29yZC1mb3JtLFxuICAgIC5pc2gtdGhlbWUtZWxlbWVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgfVxuXG4gICAgcC5jb21tZW50LXN1YnNjcmlwdGlvbi1mb3JtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJsb2NrcXVvdGUgcCxcbiAgICBmb3JtIHA6bGFzdC1jaGlsZCxcbiAgICBmb3JtIHA6bGFzdC1jaGlsZCBpbnB1dCxcbiAgICBmb3JtLndwY2Y3LWZvcm0gcDpudGgtbGFzdC1jaGlsZCgyKSxcbiAgICBmb3JtLndwY2Y3LWZvcm0gcDpudGgtbGFzdC1jaGlsZCgyKSBpbnB1dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmlzaC1tYWluLWNvbnRlbnQge1xuICAgICAgICAuaXNoLXJvdzpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICpbY2xhc3MqPVwiaXNoLWNvbC1cIl06bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtc2lkZWJhciB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuXG4gICAgLnBhZ2Utd2l0aC1zaWRlYmFyIHtcbiAgICAgICAgLmlzaC1tYWluLWNvbnRlbnQge1xuICAgICAgICAgICAgZmxleC1iYXNpczogNjYuNjY3JTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNjYuNjY3JTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtc2lkZWJhciB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAmLmlzaC1zaWRlYmFyLWxlZnQge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaXNoLXNpZGViYXItcmlnaHQge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLXNpZGViYXIgLmlzaC13aWRnZXQtZWxlbWVudCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtY29udGFpbmVyLWZsdWlkIHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgIH1cblxuICAgIC5pc2gtZGVjb3ItY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAyMTBweDtcbiAgICB9XG5cbiAgICAuaXNoLXN0aWNreS1vbiB7XG4gICAgICAgICYuc2l0ZS1oZWFkZXIge1xuICAgICAgICAgICAgLmlzaC1oZWFkZXIge1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2l0ZS1oZWFkZXIge1xuICAgICAgICAuaXNoLWxvZ28tY29udGFpbmVyLFxuICAgICAgICAuaXNoLW1lbnUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIC5pc2gtbWVudS1kZXNjLFxuICAgICAgICAgICAgLmlzaC10aGVtZS10YWdsaW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLWxvZ28tY29udGFpbmVyIHtcbiAgICAgICAgICAgIC5pc2gtdGhlbWUtdGFnbGluZS5pc2gtbm8tbG9nbyB7XG4gICAgICAgICAgICAgICAgLmlzaC10YWdsaW5lLXRleHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzaC1uYXZpZ2F0aW9uIHtcbiAgICAgICAgd2lkdGg6IDU1MHB4O1xuXG4gICAgICAgIC5pc2gtbmF2LWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMDBweCA1MHB4IDEwJSAyMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzaC1mb290ZXIge1xuICAgICAgICAuaXNoLXNlcGFyYXRvciB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtc29jaWFsLWJveCBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogOC4zMzMlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4LjMzMyU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5pc2gtc29jaWFsLWJveC1jb250YWN0IHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZmxleC1iYXNpczogOC4zMzMlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4LjMzMyU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLXJlc3VsdHMge1xuICAgICAgICAuaXNoLXJlc3VsdCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTI2cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtdHh0LWFsaWduLWxlZnQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIC5pc2gtdHh0LWFsaWduLXJpZ2h0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmlzaC10eHQtYWxpZ24tY2VudGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5pc2gtcmVzcC1jZW50ZXIge1xuICAgICAgICAuaXNoLW1haW4tY29udGVudCxcbiAgICAgICAgLmlzaC1zaWRlYmFyIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLXR4dC1hbGlnbi1sZWZ0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLXR4dC1hbGlnbi1yaWdodCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtdHh0LWFsaWduLWNlbnRlciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLXJlc3AtY2VudGVyIHtcbiAgICAgICAgLmlzaC1yZXN1bHQ6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXNoLXJlc3AtY2VudGVyIHtcbiAgICAgICAgdWwsIG9sIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBDT05UQUNUICovXG4gICAgLmlzaC1jb250YWN0LWluZm8tY29udGFpbmVyIHtcbiAgICAgICAgLmlzaC1jb250YWN0LWluZm8tYm94IHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDI1MHB4O1xuXG4gICAgICAgICAgICBwLFxuICAgICAgICAgICAgLnNoYXJlZGFkZHkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogUE9SVEZPTElPICovXG4gICAgLmlzaC1wZmxvLWdhbC5pc2gtc2Nyb2xsLWFuaW0gLmlzaC1pdGVtIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAuaXNoLXBmbG8tZ2FsLmlzaC0yY29sIHtcblxuICAgICAgICAuaXNoLWl0ZW0ge1xuICAgICAgICAgICAgLmlzaC1pdGVtLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHZlcnRpY2FsX21hcmdpbiAqIDFweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikgLmlzaC1pdGVtLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICR2ZXJ0aWNhbF9tYXJnaW4gKiAxcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUyJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MiUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKDQ4JSArIDFweCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYuaXNoLXNjcm9sbC1hbmltIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0xMDBweDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyogUE9SVEZPTElPIC0gTmF2aWdhdGlvbiAqL1xuICAgIC5pc2gtcG9ydGZvbGlvLW5hdmlnYXRpb24ge1xuXG4gICAgICAgIGEsXG4gICAgICAgIC5pc2gtZGlzYWJsZWQge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpc2gtdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1vbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHNwYW46YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICROQVZfVFJBTlNJVElPTjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXYtbGlua3MgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgaTpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogLTMwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYTpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgLyogQkxPRyAqL1xuICAgIC5pc2gtYmxvZy1tYXNvbnJ5IC5pc2gtaXRlbTpmaXJzdC1jaGlsZCAuaXNoLWJsb2ctcG9zdC1tZWRpYSB7XG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGMoIDAuMTc3ICogKCAxMDAlICsgNDBweCArIDMycHggKSApOyAvLyA1MHB4XG4gICAgICAgIC8vbWFyZ2luLXRvcDogNTBweDtcbiAgICB9XG5cbiAgICAuaXNoLWJsb2ctbWFzb25yeSAuaXNoLWl0ZW06bnRoLWNoaWxkKDJuLTEpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICB9XG5cbiAgICAuaXNoLWJsb2ctbWFzb25yeSAuaXNoLWl0ZW06bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICB9XG5cbiAgICAuaXNoLWJsb2ctY2xhc3NpYyAuaXNoLWl0ZW0sXG4gICAgLmlzaC1ibG9nLWNsYXNzaWMgLmlzaC1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gICAgfVxuXG4gICAgLmlzaC1ibG9nLWNsYXNzaWMgLmlzaC1pdGVtIC5pc2gtYmxvZy1wb3N0LWRldGFpbHMsXG4gICAgLmlzaC1ibG9nLW1hc29ucnkgLmlzaC1pdGVtIC5pc2gtYmxvZy1wb3N0LWRldGFpbHMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgIH1cblxuICAgIC8qIEJMT0cgLSBTaW5nbGUgUG9zdCBOYXZpZ2F0aW9uICovXG4gICAgLmlzaC1wb3N0LW5hdmlnYXRpb24ge1xuICAgICAgICAubmF2LWxpbmtzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXNoLXNlcGFyYXRvcixcbiAgICAgICAgLm5hdi1wcmV2aW91cyB+IC5uYXYtbmV4dDpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEsXG4gICAgICAgIC5pc2gtZGlzYWJsZWQge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA2cHg7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGlzaC11bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgc3BhbjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJE5BVl9UUkFOU0lUSU9OO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLm5hdi1wcmV2aW91cyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgICAgICAubmF2LW5leHQge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hdi1wcmV2aW91cyBhOmhvdmVyIHtcbiAgICAgICAgICAgIGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAtMzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXYtbmV4dCBhOmhvdmVyIHtcbiAgICAgICAgICAgIGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAzMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogQkxPRyAtIFRlbXBsYXRlcyAqL1xuICAgIC5wYWdlLXRlbXBsYXRlLWJsb2cge1xuICAgICAgICAuaXNoLXBhZ2luYXRpb24tY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xMDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIFRFQU0gKi9cbiAgICAuaXNoLXNoYWRvdy1pbWFnZSB7XG5cbiAgICAgICAgLmlzaC1pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4N3B4KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogODdweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXNoLWNhcHRpb25zLXJpZ2h0IHtcbiAgICAgICAgICAgIC5pc2gtaXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDg3cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzaC1jYXB0aW9ucy1yaWdodCB7XG4gICAgICAgICAgICAuaXNoLWl0ZW0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4N3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5pc2gtbm8tbWFyZ2luIHtcbiAgICAgICAgICAgIC5pc2gtaXRlbSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4N3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmlzaC1jYXB0aW9ucy1yaWdodCB7XG4gICAgICAgICAgICAgICAgLmlzaC1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmlzaC1jYXB0aW9ucy1yaWdodCB7XG4gICAgICAgICAgICAgICAgLmlzaC1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5pc2gtdGVhbS1hcmNoaXZlLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gICAgfVxuXG4gICAgLyogVEVBTSAtIFRlbXBsYXRlcyAqL1xuICAgIC5wYWdlLXRlbXBsYXRlLXRlYW0ge1xuICAgICAgICAuc2l0ZS1jb250ZW50IHtcbiAgICAgICAgICAgIC5pc2gtcm93IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC01MHB4O1xuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBNQVAgKi9cbiAgICAjbWFwIHtcbiAgICAgICAgaGVpZ2h0OiA2MDBweDtcbiAgICB9XG5cbiAgICAvKiBDb250ZW50ICovXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIHBhZGRpbmc6IDUwcHg7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdG9wOiAtNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdG9wOiA1MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJlIHtcbiAgICAgICAgcGFkZGluZzogNDBweDtcbiAgICB9XG5cbiAgICAuYWxpZ25jZW50ZXIsXG4gICAgaW1nLmFsaWduY2VudGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICAuYWxpZ25sZWZ0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICAgIC5hbGlnbnJpZ2h0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuXG4gICAgZmlndXJlLmFsaWdubGVmdCxcbiAgICBmaWd1cmUuYWxpZ25yaWdodCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgZmlndXJlLmFsaWducmlnaHQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgZmlndXJlLmFsaWduY2VudGVyLFxuICAgIGZpZ3VyZS5hbGlnbm5vbmUge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gNTBweCBhdXRvO1xuICAgIH1cblxuICAgIGZpZ3VyZS5hbGlnbmNlbnRlciBmaWdjYXB0aW9uLFxuICAgIGZpZ3VyZS5hbGlnbm5vbmUgZmlnY2FwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAuNWVtIDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBmaWd1cmUuYWxpZ25yaWdodCBmaWdjYXB0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMC41ZW0gMDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmlzaC1pbWctYWxpZ24tbGVmdCxcbiAgICBpbWcuYWxpZ25sZWZ0LFxuICAgIGZpZ3VyZS5hbGlnbmxlZnQge1xuICAgICAgICBtYXJnaW46IDAgMS41ZW0gMC41ZW0gMDtcbiAgICB9XG5cbiAgICAuaXNoLWltZy1hbGlnbi1yaWdodCxcbiAgICBpbWcuYWxpZ25yaWdodCxcbiAgICBmaWd1cmUuYWxpZ25yaWdodCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAuNWVtIDEuMmVtO1xuICAgIH1cblxuICAgIC5pc2gtaW1nLWFsaWduLWxlZnQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMS41ZW0gMC41ZW0gMDtcbiAgICB9XG5cbiAgICAuaXNoLWltZy1hbGlnbi1yaWdodCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCAwLjVlbSAxLjJlbTtcbiAgICB9XG5cbiAgICAuaXNoLWltZy1hbGlnbi1jZW50ZXIge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCAwIDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cblxuICAgIC5pc2gtcmVzcC1jZW50ZXIge1xuICAgICAgICAuaXNoLWltZy1hbGlnbi1sZWZ0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxLjVlbSAwLjVlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1pbWctYWxpZ24tcmlnaHQge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMC41ZW0gMS4yZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBHYWxsZXJ5IENvbHVtbnMgKi9cblxuICAgIC5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktY29sdW1ucy02IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBtYXgtd2lkdGg6IDE2LjY2JTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTcgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTQuMjglO1xuICAgIH1cblxuICAgIC5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMi41JTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1heC13aWR0aDogMTEuMTElO1xuICAgIH1cblxuICAgIC5wb3N0LXBhc3N3b3JkLWZvcm0ge1xuICAgICAgICBwYWRkaW5nOiAyLjVyZW0gM3JlbSAzcmVtO1xuICAgIH1cblxuXG4gICAgLmlzaC1jb250ZW50LW92ZXJsYXktc21hbGwgLnNpdGUtY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC01MHB4O1xuICAgIH1cblxuICAgIC5pc2gtY29udGVudC1vdmVybGF5LW1lZGl1bSAuc2l0ZS1jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEwMHB4O1xuICAgIH1cblxuICAgIC5pc2gtY29udGVudC1vdmVybGF5LWxhcmdlIC5zaXRlLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTUwcHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIDEwMjRweCAvIDY0ZW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmlzaC1kZWNvci1jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDI4MHB4O1xuICAgIH1cblxuICAgIC5zaXRlLWhlYWRlciB7XG4gICAgICAgIC5pc2gtaGVhZGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNpdGUtdGl0bGUsIGgxIHtcbiAgICAgICAgICAgIG1hcmdpbjogMTAwcHggMCA0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlzaC1ibG9nLW1hc29ucnkgLmlzaC1pdGVtOm50aC1jaGlsZCgybi0xKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgfVxuXG4gICAgLmlzaC1ibG9nLW1hc29ucnkgLmlzaC1pdGVtOm50aC1jaGlsZCgybikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgfVxuXG4gICAgLyogVEVBTSAqL1xuICAgIC5pc2gtdGVhbS1hcmNoaXZlLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLyogTUFQICovXG4gICAgI21hcCB7XG4gICAgICAgIGhlaWdodDogODAwcHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIDEzNjBweCAvIDg1ZW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTM2MHB4KSB7XG4gICAgLmlzaC1kZWNvci1jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDM5MHB4O1xuICAgIH1cblxuICAgIC5pc2gtc3RpY2t5LW9uIHtcbiAgICAgICAgJi5zaXRlLWhlYWRlciB7XG4gICAgICAgICAgICAuaXNoLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDRyZW0gLSAzMnB4KTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pc2gtbG9nby1jb250YWluZXIsXG4gICAgICAgICAgICAuaXNoLW1lbnUtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICB0b3A6IDQwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNpdGUtaGVhZGVyIHtcbiAgICAgICAgLmlzaC1oZWFkZXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pc2gtbG9nby1jb250YWluZXIsXG4gICAgICAgIC5pc2gtbWVudS1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAxMDBweDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0ODBweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTtcbiAgICAgICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgLmlzaC12ZXJ0aWNhbCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlzaC1tZW51LWRlc2MsXG4gICAgICAgICAgICAuaXNoLXRoZW1lLXRhZ2xpbmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjAwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgICAgIHRvcDogMzVweDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlzaC1tZW51LWRlc2Mge1xuICAgICAgICAgICAgICAgIHRvcDogMjJweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1sb2dvLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTY2MHB4O1xuXG4gICAgICAgICAgICAuaXNoLXRoZW1lLXRhZ2xpbmUge1xuICAgICAgICAgICAgICAgICYuaXNoLW5vLWxvZ28ge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IC0yZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIC5zaXRlLXRpdGxlLXRleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzaC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgICAuaXNoLWljb24tbmF2IGkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zaXRlLXRpdGxlLCBoMSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pc2gtY29udGVudC1vdmVybGF5LXNtYWxsIC5zaXRlLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTAwcHg7XG4gICAgfVxuXG4gICAgLmlzaC1jb250ZW50LW92ZXJsYXktbWVkaXVtIC5zaXRlLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTUwcHg7XG4gICAgfVxuXG4gICAgLmlzaC1jb250ZW50LW92ZXJsYXktbGFyZ2UgLnNpdGUtY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yMzBweDtcbiAgICB9XG5cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyAxOTIwcHggLyAxMjBlbVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgICAuaXNoLWRlY29yLWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogNDcwcHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEhFSUdIVFxuIyA4MDBweFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWhlaWdodDogODAwcHgpIHtcbiAgICAuaXNoLW5hdmlnYXRpb24ge1xuICAgICAgICAuaXNoLW5hdi1iZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDE1MCU7XG4gICAgICAgIH1cbiAgICB9XG59Il19 */ 
  • qusq-lite/1.0.3/style_unminified.css

    r85403 r85403  
    66Author URI: http://ishyoboy.com/ 
    77Description: Qusq Lite is a unique colourful portfolio theme, perfectly suitable for designers, freelancers & all kind of artist who want to show off their creative work with style. It covers all the necessary pages such a portfolio website might need. 
    8 Version: 1.0.2 
     8Version: 1.0.3 
    99License: GNU General Public License v2 or later 
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    44834483    height: 150%; } } 
    44844484 
    4485 /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsInN0eWxlLnNjc3MiLCJfbm9ybWFsaXplLnNjc3MiLCJfZmxleGJveGdyaWQuc2NzcyIsIl9ib2lsZXJwbGF0ZS5zY3NzIiwiX2xheW91dC5zY3NzIiwic2hvcnRjb2Rlcy1zdHlsZXMvX3Nob3J0Y29kZXMuc2NzcyIsIl9mb250cy5zY3NzIiwiX2lzaC1pY29ucy5zY3NzIiwiX3BvcnRmb2xpby5zY3NzIiwiX2Jsb2cuc2NzcyIsIl9zb2NpYWwtaWNvbnMuc2NzcyIsIl9yZXNwb25zaXZlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW9CRTtBQUVGOzs7Ozs7Ozs7Ozs7Ozs7OztnRUFpQmdFO0FBSWhFOztnRUFFZ0U7QUM3Q2hFLDRFQUE0RTtBQUU1RTs7OztHQUlHO0FBRUg7RUFDSSx3QkFBd0I7RUFBRSxPQUFPO0VBQ2pDLDJCQUEyQjtFQUFFLE9BQU87RUFDcEMsK0JBQStCO0VBQUUsT0FBTyxFQUMzQzs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksVUFBVSxFQUNiOztBQUVEO2dGQUNnRjtBQUVoRjs7Ozs7R0FLRztBQUVIOzs7Ozs7Ozs7Ozs7O0VBYUksZUFBZSxFQUNsQjs7QUFFRDs7O0dBR0c7QUFFSDs7OztFQUlJLHNCQUFzQjtFQUFFLE9BQU87RUFDL0IseUJBQXlCO0VBQUUsT0FBTyxFQUNyQzs7QUFFRDs7O0dBR0c7QUFFSDtFQUNJLGNBQWM7RUFDZCxVQUFVLEVBQ2I7O0FBRUQ7OztHQUdHO0FGcUNIOztFRWpDSSxjQUFjLEVBQ2pCOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0ksOEJBQThCLEVBQ2pDOztBQUVEOzs7R0FHRztBQUVIOztFQUVJLFdBQVcsRUFDZDs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0dBRUc7QUFFSDtFQUNJLDBCQUEwQixFQUM3Qjs7QUFFRDs7R0FFRztBQUVIOztFQUVJLGtCQUFrQixFQUNyQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksbUJBQW1CLEVBQ3RCOztBQUVEOzs7R0FHRztBQUVIO0VBQ0ksZUFBZTtFQUNmLGlCQUFpQixFQUNwQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksaUJBQWlCO0VBQ2pCLFlBQVksRUFDZjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksZUFBZSxFQUNsQjs7QUFFRDs7R0FFRztBQUVIOztFQUVJLGVBQWU7RUFDZixlQUFlO0VBQ2YsbUJBQW1CO0VBQ25CLHlCQUF5QixFQUM1Qjs7QUFFRDtFQUNJLFlBQVksRUFDZjs7QUFFRDtFQUNJLGdCQUFnQixFQUNuQjs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0dBRUc7QUFFSDtFQUNJLFVBQVUsRUFDYjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksaUJBQWlCLEVBQ3BCOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0ksaUJBQWlCLEVBQ3BCOztBQUVEOztHQUVHO0FBRUg7RUFDSSx3QkFBd0I7RUFDeEIsVUFBVSxFQUNiOztBQUVEOztHQUVHO0FBRUg7RUFDSSxlQUFlLEVBQ2xCOztBQUVEOztHQUVHO0FBRUg7Ozs7RUFJSSxrQ0FBa0M7RUFDbEMsZUFBZSxFQUNsQjs7QUFFRDtnRkFDZ0Y7QUFFaEY7OztHQUdHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7RUFLSSxlQUFlO0VBQUUsT0FBTztFQUN4QixjQUFjO0VBQUUsT0FBTztFQUN2QixVQUFVO0VBQUUsT0FBTyxFQUN0Qjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksa0JBQWtCLEVBQ3JCOztBQUVEOzs7OztHQUtHO0FBRUg7O0VBRUkscUJBQXFCLEVBQ3hCOztBQUVEOzs7Ozs7R0FNRztBQUVIOzs7O0VBSUksMkJBQTJCO0VBQUUsT0FBTztFQUNwQyxnQkFBZ0I7RUFBRSxPQUFPLEVBQzVCOztBQUVEOztHQUVHO0FBRUg7O0VBRUksZ0JBQWdCLEVBQ25COztBQUVEOztHQUVHO0FBRUg7O0VBRUksVUFBVTtFQUNWLFdBQVcsRUFDZDs7QUFFRDs7O0dBR0c7QUFFSDtFQUNJLG9CQUFvQixFQUN2Qjs7QUFFRDs7Ozs7O0dBTUc7QUFFSDs7RUFFSSx1QkFBdUI7RUFBRSxPQUFPO0VBQ2hDLFdBQVc7RUFBRSxPQUFPLEVBQ3ZCOztBQUVEOzs7O0dBSUc7QUFFSDs7RUFFSSxhQUFhLEVBQ2hCOztBQUVEOzs7R0FHRztBQUVIO0VBQ0ksOEJBQThCO0VBQUUsT0FBTztFQUN2Qyx3QkFBd0I7RUFBRSxPQUFPLEVBQ3BDOztBQUVEOzs7O0dBSUc7QUFFSDs7RUFFSSx5QkFBeUIsRUFDNUI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLDBCQUEwQjtFQUMxQixjQUFjO0VBQ2QsK0JBQStCLEVBQ2xDOztBQUVEOzs7R0FHRztBQUVIO0VBQ0ksVUFBVTtFQUFFLE9BQU87RUFDbkIsV0FBVztFQUFFLE9BQU8sRUFDdkI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGVBQWUsRUFDbEI7O0FBRUQ7OztHQUdHO0FBRUg7RUFDSSxrQkFBa0IsRUFDckI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztHQUVHO0FBRUg7RUFDSSwwQkFBMEI7RUFDMUIsa0JBQWtCLEVBQ3JCOztBQUVEOztFQUVJLFdBQVcsRUFDZDs7QUR0WEQ7O2dFQUVnRTtBRW5EaEU7O0VBRUksbUJBQW1CO0VBQ25CLGtCQUFrQixFQUNyQjs7QUFFRDtFQUNJLG9CQUFvQjtFQUNwQixtQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSx1QkFBdUI7RUFHdkIscUJBQXFCO0VBQ3JCLGNBQWM7RUFHZCxtQkFBbUI7RUFDbkIsZUFBZTtFQUlmLHdCQUF3QjtFQUN4QixvQkFBb0I7RUFFcEIsb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQixzQkFBc0I7RUFDdEIscUJBQXFCLEVBQ3hCOztBQUVEO0VBSUksZ0NBQWdDO0VBQ2hDLDRCQUE0QixFQUMvQjs7QUFFRDtFQUlJLG1DQUFtQztFQUNuQywrQkFBK0IsRUFDbEM7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBMEJJLHVCQUF1QjtFQUd2QixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLHNCQUFzQjtFQUN0QixxQkFBcUIsRUFDeEI7O0FBRUQ7RUFHSSxxQkFBcUI7RUFDckIsYUFBYTtFQUViLDJCQUEyQjtFQUMzQixjQUFjO0VBQ2QsZ0JBQWdCLEVBQ25COztBQUVEO0VBRUksZ0NBQWdDO0VBQ2hDLG1CQUFtQjtFQUNuQixrQkFBa0IsRUFDckI7O0FBRUQ7RUFFSSxpQ0FBaUM7RUFDakMsb0JBQW9CO0VBQ3BCLG1CQUFtQixFQUN0Qjs7QUFFRDtFQUVJLDZCQUE2QjtFQUM3QixnQkFBZ0I7RUFDaEIsZUFBZSxFQUNsQjs7QUFFRDtFQUVJLGlDQUFpQztFQUNqQyxvQkFBb0I7RUFDcEIsbUJBQW1CLEVBQ3RCOztBQUVEO0VBRUksaUNBQWlDO0VBQ2pDLG9CQUFvQjtFQUNwQixtQkFBbUIsRUFDdEI7O0FBRUQ7RUFFSSw2QkFBNkI7RUFDN0IsZ0JBQWdCO0VBQ2hCLGVBQWUsRUFDbEI7O0FBRUQ7RUFFSSxpQ0FBaUM7RUFDakMsb0JBQW9CO0VBQ3BCLG1CQUFtQixFQUN0Qjs7QUFFRDtFQUVJLGlDQUFpQztFQUNqQyxvQkFBb0I7RUFDcEIsbUJBQW1CLEVBQ3RCOztBQUVEO0VBRUksNkJBQTZCO0VBQzdCLGdCQUFnQjtFQUNoQixlQUFlLEVBQ2xCOztBQUVEO0VBRUksaUNBQWlDO0VBQ2pDLG9CQUFvQjtFQUNwQixtQkFBbUIsRUFDdEI7O0FBRUQ7RUFFSSxpQ0FBaUM7RUFDakMsb0JBQW9CO0VBQ3BCLG1CQUFtQixFQUN0Qjs7QUFFRDtFQUVJLDhCQUE4QjtFQUM5QixpQkFBaUI7RUFDakIsZ0JBQWdCLEVBQ25COztBQUVEO0VBQ0ksZUFBZSxFQUNsQjs7QUFFRDtFQUNJLG9CQUFvQixFQUN2Qjs7QUFFRDtFQUNJLHFCQUFxQixFQUN4Qjs7QUFFRDtFQUNJLGlCQUFpQixFQUNwQjs7QUFFRDtFQUNJLHFCQUFxQixFQUN4Qjs7QUFFRDtFQUNJLHFCQUFxQixFQUN4Qjs7QUFFRDtFQUNJLGlCQUFpQixFQUNwQjs7QUFFRDtFQUNJLHFCQUFxQixFQUN4Qjs7QUFFRDtFQUNJLHFCQUFxQixFQUN4Qjs7QUFFRDtFQUNJLGlCQUFpQixFQUNwQjs7QUFFRDtFQUNJLHFCQUFxQixFQUN4Qjs7QUFFRDtFQUNJLHFCQUFxQixFQUN4Qjs7QUFFRDtFQUdJLHFCQUFxQjtFQUNyQiw0QkFBNEI7RUFDNUIsa0JBQWtCLEVBQ3JCOztBQUVEO0VBR0ksc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixtQkFBbUIsRUFDdEI7O0FBRUQ7RUFHSSxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzFCLGdCQUFnQixFQUNuQjs7QUFFRDtFQUdJLHNCQUFzQjtFQUN0Qix3QkFBd0IsRUFDM0I7O0FBRUQ7RUFHSSx1QkFBdUI7RUFDdkIsb0JBQW9CLEVBQ3ZCOztBQUVEO0VBR0ksb0JBQW9CO0VBQ3BCLHNCQUFzQixFQUN6Qjs7QUFFRDtFQUVJLDBCQUEwQjtFQUMxQiw4QkFBOEIsRUFDakM7O0FBRUQ7RUFHSSx1QkFBdUI7RUFDdkIsK0JBQStCLEVBQ2xDOztBQUVEO0VBR0ksbUJBQW1CO0VBQ25CLFVBQVUsRUFDYjs7QUFFRDtFQUdJLGtCQUFrQjtFQUNsQixTQUFTLEVBQ1o7O0FBRUQ7RUFDSTtJQUNJLGFBQWEsRUFDaEI7RUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUEwQkksdUJBQXVCO0lBR3ZCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2Ysc0JBQXNCO0lBQ3RCLHFCQUFxQixFQUN4QjtFQUVEO0lBR0kscUJBQXFCO0lBQ3JCLGFBQWE7SUFFYiwyQkFBMkI7SUFDM0IsY0FBYztJQUNkLGdCQUFnQixFQUNuQjtFQUVEO0lBRUksZ0NBQWdDO0lBQ2hDLG1CQUFtQjtJQUNuQixrQkFBa0IsRUFDckI7RUFFRDtJQUVJLGlDQUFpQztJQUNqQyxvQkFBb0I7SUFDcEIsbUJBQW1CLEVBQ3RCO0VBRUQ7SUFFSSw2QkFBNkI7SUFDN0IsZ0JBQWdCO0lBQ2hCLGVBQWUsRUFDbEI7RUFFRDtJQUVJLGlDQUFpQztJQUNqQyxvQkFBb0I7SUFDcEIsbUJBQW1CLEVBQ3RCO0VBRUQ7SUFFSSxpQ0FBaUM7SUFDakMsb0JBQW9CO0lBQ3BCLG1CQUFtQixFQUN0QjtFQUVEO0lBRUksNkJBQTZCO0lBQzdCLGdCQUFnQjtJQUNoQixlQUFlLEVBQ2xCO0VBRUQ7SUFFSSxpQ0FBaUM7SUFDakMsb0JBQW9CO0lBQ3BCLG1CQUFtQixFQUN0QjtFQUVEO0lBRUksaUNBQWlDO0lBQ2pDLG9CQUFvQjtJQUNwQixtQkFBbUIsRUFDdEI7RUFFRDtJQUVJLDZCQUE2QjtJQUM3QixnQkFBZ0I7SUFDaEIsZUFBZSxFQUNsQjtFQUVEO0lBRUksaUNBQWlDO0lBQ2pDLG9CQUFvQjtJQUNwQixtQkFBbUIsRUFDdEI7RUFFRDtJQUVJLGlDQUFpQztJQUNqQyxvQkFBb0I7SUFDcEIsbUJBQW1CLEVBQ3RCO0VBRUQ7SUFFSSw4QkFBOEI7SUFDOUIsaUJBQWlCO0lBQ2pCLGdCQUFnQixFQUNuQjtFQUVEO0lBQ0ksZUFBZSxFQUNsQjtFQUVEO0lBQ0ksb0JBQW9CLEVBQ3ZCO0VBRUQ7SUFDSSxxQkFBcUIsRUFDeEI7RUFFRDtJQUNJLGlCQUFpQixFQUNwQjtFQUVEO0lBQ0kscUJBQXFCLEVBQ3hCO0VBRUQ7SUFDSSxxQkFBcUIsRUFDeEI7RUFFRDtJQUNJLGlCQUFpQixFQUNwQjtFQUVEO0lBQ0kscUJBQXFCLEVBQ3hCO0VBRUQ7SUFDSSxxQkFBcUIsRUFDeEI7RUFFRDtJQUNJLGlCQUFpQixFQUNwQjtFQUVEO0lBQ0kscUJBQXFCLEVBQ3hCO0VBRUQ7SUFDSSxxQkFBcUIsRUFDeEI7RUFFRDtJQUdJLHFCQUFxQjtJQUNyQiw0QkFBNEI7SUFDNUIsa0JBQWtCLEVBQ3JCO0VBRUQ7SUFHSSxzQkFBc0I7SUFDdEIsd0JBQXdCO0lBQ3hCLG1CQUFtQixFQUN0QjtFQUVEO0lBR0ksbUJBQW1CO0lBQ25CLDBCQUEwQjtJQUMxQixnQkFBZ0IsRUFDbkI7RUFFRDtJQUdJLHNCQUFzQjtJQUN0Qix3QkFBd0IsRUFDM0I7RUFFRDtJQUdJLHVCQUF1QjtJQUN2QixvQkFBb0IsRUFDdkI7RUFFRDtJQUdJLG9CQUFvQjtJQUNwQixzQkFBc0IsRUFDekI7RUFFRDtJQUVJLDBCQUEwQjtJQUMxQiw4QkFBOEIsRUFDakM7RUFFRDtJQUdJLHVCQUF1QjtJQUN2QiwrQkFBK0IsRUFDbEM7RUFFRDtJQUdJLG1CQUFtQjtJQUNuQixVQUFVLEVBQ2I7RUFFRDtJQUdJLGtCQUFrQjtJQUNsQixTQUFTLEVBQ1osRUFBQTs7QUFHTDtFQUNJO0lBQ0ksYUFBYSxFQUNoQjtFQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTBCSSx1QkFBdUI7SUFHdkIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixzQkFBc0I7SUFDdEIscUJBQXFCLEVBQ3hCO0VBRUQ7SUFHSSxxQkFBcUI7SUFDckIsYUFBYTtJQUViLDJCQUEyQjtJQUMzQixjQUFjO0lBQ2QsZ0JBQWdCLEVBQ25CO0VBRUQ7SUFFSSxnQ0FBZ0M7SUFDaEMsbUJBQW1CO0lBQ25CLGtCQUFrQixFQUNyQjtFQUVEO0lBRUksaUNBQWlDO0lBQ2pDLG9CQUFvQjtJQUNwQixtQkFBbUIsRUFDdEI7RUFFRDtJQUVJLDZCQUE2QjtJQUM3QixnQkFBZ0I7SUFDaEIsZUFBZSxFQUNsQjtFQUVEO0lBRUksaUNBQWlDO0lBQ2pDLG9CQUFvQjtJQUNwQixtQkFBbUIsRUFDdEI7RUFFRDtJQUVJLGlDQUFpQztJQUNqQyxvQkFBb0I7SUFDcEIsbUJBQW1CLEVBQ3RCO0VBRUQ7SUFFSSw2QkFBNkI7SUFDN0IsZ0JBQWdCO0lBQ2hCLGVBQWUsRUFDbEI7RUFFRDtJQUVJLGlDQUFpQztJQUNqQyxvQkFBb0I7SUFDcEIsbUJBQW1CLEVBQ3RCO0VBRUQ7SUFFSSxpQ0FBaUM7SUFDakMsb0JBQW9CO0lBQ3BCLG1CQUFtQixFQUN0QjtFQUVEO0lBRUksNkJBQTZCO0lBQzdCLGdCQUFnQjtJQUNoQixlQUFlLEVBQ2xCO0VBRUQ7SUFFSSxpQ0FBaUM7SUFDakMsb0JBQW9CO0lBQ3BCLG1CQUFtQixFQUN0QjtFQUVEO0lBRUksaUNBQWlDO0lBQ2pDLG9CQUFvQjtJQUNwQixtQkFBbUIsRUFDdEI7RUFFRDtJQUVJLDhCQUE4QjtJQUM5QixpQkFBaUI7SUFDakIsZ0JBQWdCLEVBQ25CO0VBRUQ7SUFDSSxlQUFlLEVBQ2xCO0VBRUQ7SUFDSSxvQkFBb0IsRUFDdkI7RUFFRDtJQUNJLHFCQUFxQixFQUN4QjtFQUVEO0lBQ0ksaUJBQWlCLEVBQ3BCO0VBRUQ7SUFDSSxxQkFBcUIsRUFDeEI7RUFFRDtJQUNJLHFCQUFxQixFQUN4QjtFQUVEO0lBQ0ksaUJBQWlCLEVBQ3BCO0VBRUQ7SUFDSSxxQkFBcUIsRUFDeEI7RUFFRDtJQUNJLHFCQUFxQixFQUN4QjtFQUVEO0lBQ0ksaUJBQWlCLEVBQ3BCO0VBRUQ7SUFDSSxxQkFBcUIsRUFDeEI7RUFFRDtJQUNJLHFCQUFxQixFQUN4QjtFQUVEO0lBR0kscUJBQXFCO0lBQ3JCLDRCQUE0QjtJQUM1QixrQkFBa0IsRUFDckI7RUFFRDtJQUdJLHNCQUFzQjtJQUN0Qix3QkFBd0I7SUFDeEIsbUJBQW1CLEVBQ3RCO0VBRUQ7SUFHSSxtQkFBbUI7SUFDbkIsMEJBQTBCO0lBQzFCLGdCQUFnQixFQUNuQjtFQUVEO0lBR0ksc0JBQXNCO0lBQ3RCLHdCQUF3QixFQUMzQjtFQUVEO0lBR0ksdUJBQXVCO0lBQ3ZCLG9CQUFvQixFQUN2QjtFQUVEO0lBR0ksb0JBQW9CO0lBQ3BCLHNCQUFzQixFQUN6QjtFQUVEO0lBRUksMEJBQTBCO0lBQzFCLDhCQUE4QixFQUNqQztFQUVEO0lBR0ksdUJBQXVCO0lBQ3ZCLCtCQUErQixFQUNsQztFQUVEO0lBR0ksbUJBQW1CO0lBQ25CLFVBQVUsRUFDYjtFQUVEO0lBR0ksa0JBQWtCO0lBQ2xCLFNBQVMsRUFDWixFQUFBOztBQUdMO0VBQ0k7SUFDSSxhQUFhLEVBQ2hCO0VBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBMEJJLHVCQUF1QjtJQUd2QixtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixxQkFBcUIsRUFDeEI7RUFFRDtJQUdJLHFCQUFxQjtJQUNyQixhQUFhO0lBRWIsMkJBQTJCO0lBQzNCLGNBQWM7SUFDZCxnQkFBZ0IsRUFDbkI7RUFFRDtJQUVJLGdDQUFnQztJQUNoQyxtQkFBbUI7SUFDbkIsa0JBQWtCLEVBQ3JCO0VBRUQ7SUFFSSxpQ0FBaUM7SUFDakMsb0JBQW9CO0lBQ3BCLG1CQUFtQixFQUN0QjtFQUVEO0lBRUksNkJBQTZCO0lBQzdCLGdCQUFnQjtJQUNoQixlQUFlLEVBQ2xCO0VBRUQ7SUFFSSxpQ0FBaUM7SUFDakMsb0JBQW9CO0lBQ3BCLG1CQUFtQixFQUN0QjtFQUVEO0lBRUksaUNBQWlDO0lBQ2pDLG9CQUFvQjtJQUNwQixtQkFBbUIsRUFDdEI7RUFFRDtJQUVJLDZCQUE2QjtJQUM3QixnQkFBZ0I7SUFDaEIsZUFBZSxFQUNsQjtFQUVEO0lBRUksaUNBQWlDO0lBQ2pDLG9CQUFvQjtJQUNwQixtQkFBbUIsRUFDdEI7RUFFRDtJQUVJLGlDQUFpQztJQUNqQyxvQkFBb0I7SUFDcEIsbUJBQW1CLEVBQ3RCO0VBRUQ7SUFFSSw2QkFBNkI7SUFDN0IsZ0JBQWdCO0lBQ2hCLGVBQWUsRUFDbEI7RUFFRDtJQUVJLGlDQUFpQztJQUNqQyxvQkFBb0I7SUFDcEIsbUJBQW1CLEVBQ3RCO0VBRUQ7SUFFSSxpQ0FBaUM7SUFDakMsb0JBQW9CO0lBQ3BCLG1CQUFtQixFQUN0QjtFQUVEO0lBRUksOEJBQThCO0lBQzlCLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFDbkI7RUFFRDtJQUNJLGVBQWUsRUFDbEI7RUFFRDtJQUNJLG9CQUFvQixFQUN2QjtFQUVEO0lBQ0kscUJBQXFCLEVBQ3hCO0VBRUQ7SUFDSSxpQkFBaUIsRUFDcEI7RUFFRDtJQUNJLHFCQUFxQixFQUN4QjtFQUVEO0lBQ0kscUJBQXFCLEVBQ3hCO0VBRUQ7SUFDSSxpQkFBaUIsRUFDcEI7RUFFRDtJQUNJLHFCQUFxQixFQUN4QjtFQUVEO0lBQ0kscUJBQXFCLEVBQ3hCO0VBRUQ7SUFDSSxpQkFBaUIsRUFDcEI7RUFFRDtJQUNJLHFCQUFxQixFQUN4QjtFQUVEO0lBQ0kscUJBQXFCLEVBQ3hCO0VBRUQ7SUFHSSxxQkFBcUI7SUFDckIsNEJBQTRCO0lBQzVCLGtCQUFrQixFQUNyQjtFQUVEO0lBR0ksc0JBQXNCO0lBQ3RCLHdCQUF3QjtJQUN4QixtQkFBbUIsRUFDdEI7RUFFRDtJQUdJLG1CQUFtQjtJQUNuQiwwQkFBMEI7SUFDMUIsZ0JBQWdCLEVBQ25CO0VBRUQ7SUFHSSxzQkFBc0I7SUFDdEIsd0JBQXdCLEVBQzNCO0VBRUQ7SUFHSSx1QkFBdUI7SUFDdkIsb0JBQW9CLEVBQ3ZCO0VBRUQ7SUFHSSxvQkFBb0I7SUFDcEIsc0JBQXNCLEVBQ3pCO0VBRUQ7SUFFSSwwQkFBMEI7SUFDMUIsOEJBQThCLEVBQ2pDO0VBRUQ7SUFHSSx1QkFBdUI7SUFDdkIsK0JBQStCLEVBQ2xDO0VBRUQ7SUFHSSxtQkFBbUI7SUFDbkIsVUFBVSxFQUNiO0VBRUQ7SUFHSSxrQkFBa0I7SUFDbEIsU0FBUyxFQUNaLEVBQUE7O0FGaC9CTDs7Z0VBRWdFO0FHMURoRSw2RUFBNkU7QUFFN0U7Ozs7R0FJRztBQUVIOztnRkFFZ0Y7QUFFaEY7RUFDSSxZQUFZO0VBQ1osZUFBZTtFQUNmLGlCQUFpQixFQUNwQjs7QUFFRDs7Ozs7O0dBTUc7QUFFSDtFQUNJLG9CQUFvQjtFQUNwQixrQkFBa0IsRUFDckI7O0FBRUQ7RUFDSSxvQkFBb0I7RUFDcEIsa0JBQWtCLEVBQ3JCOztBQUVEOztHQUVHO0FBRUg7RUFDSSxlQUFlO0VBQ2YsWUFBWTtFQUNaLFVBQVU7RUFDViwyQkFBMkI7RUFDM0IsY0FBYztFQUNkLFdBQVcsRUFDZDs7QUFFRDs7OztHQUlHO0FBRUg7Ozs7OztFQU1JLHVCQUF1QixFQUMxQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksVUFBVTtFQUNWLFVBQVU7RUFDVixXQUFXLEVBQ2Q7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGlCQUFpQixFQUNwQjs7QUFFRDs7Z0ZBRWdGO0FBRWhGO0VBQ0ksZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osaUJBQWlCLEVBQ3BCOztBQUVEOztnRkFFZ0Y7QUFFaEY7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0kseUJBQXlCLEVBQzVCOztBQUVEOzs7R0FHRztBQUVIO0VBQ0ksVUFBVTtFQUNWLG9CQUFVO0VBQ1YsWUFBWTtFQUNaLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsV0FBVztFQUNYLG1CQUFtQjtFQUNuQixXQUFXLEVBQ2Q7O0FBRUQ7Ozs7R0FJRztBQUVIOztFQUVJLFdBQVc7RUFDWCxhQUFhO0VBQ2IsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsWUFBWSxFQUNmOztBQUVEOztHQUVHO0FBRUg7RUFDSSxtQkFBbUIsRUFDdEI7O0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUVIOztFQUVJLGFBQWE7RUFBRSxPQUFPO0VBQ3RCLGVBQWU7RUFBRSxPQUFPLEVBQzNCOztBQUVEO0VBQ0ksWUFBWSxFQUNmOztBQUVEOzs7O2dGQUlnRjtBQUVoRjtFQUNJLDZEQUE2RCxFQUFBOztBQUdqRTtFQUlJLG1EQUFtRCxFQUFBOztBQUd2RDs7OztnRkFJZ0Y7QUFFaEY7RUFDSTs7O0lBR0ksbUNBQW1DO0lBQ25DLHVCQUF1QjtJQUN2QjtpRkFDeUU7SUFDekUsNEJBQTRCO0lBQzVCLDZCQUE2QixFQUNoQztFQUVEOztJQUVJLDJCQUEyQixFQUM5QjtFQUVEO0lBQ0ksNkJBQTRCLEVBQy9CO0VBRUQ7SUFDSSw4QkFBNkIsRUFDaEM7RUFFRDs7O09BR0c7RUFFSDs7SUFFSSxZQUFZLEVBQ2Y7RUFFRDs7SUFFSSx1QkFBdUI7SUFDdkIseUJBQXlCLEVBQzVCO0VBRUQ7OztPQUdHO0VBRUg7SUFDSSw0QkFBNEIsRUFDL0I7RUFFRDs7SUFFSSx5QkFBeUIsRUFDNUI7RUFFRDtJQUNJLDJCQUEyQixFQUM5QjtFQUVEOzs7SUFHSSxXQUFXO0lBQ1gsVUFBVSxFQUNiO0VBRUQ7O0lBRUksd0JBQXdCLEVBQzNCLEVBQUE7O0FIek1MOztnRUFFZ0U7QUloRWhFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dFQTRCZ0U7QUFFaEU7O2dFQUVnRTtBQUN6Qyx3QkFBd0I7QUFPL0M7O2dFQUVnRTtBQTRFaEU7O2dFQUVnRTtBQUNoRTs7OztFQUNJLG9CQUFvQjtFQUNwQixZQUFZO0VBQ1osdUJBQXVCLEVBQzFCOztBQUVEOztnRUFFZ0U7QUFDaEUsd0JBQXdCO0FBQ3hCO0VBQ0k7SUFDSSxrQkFBa0IsRUFBQTtFQUV0QjtJQUNJLGtCQUFrQixFQUFBO0VBRXRCO0lBQ0ksa0JBQWtCLEVBQUEsRUFBQTs7QUFJMUI7O2dFQUVnRTtBQUNoRTtFQUNJLHVCQUF1QixFQUMxQjs7QUFFRCw2R0FBNkc7QUFDN0c7RUFDSSwrQkFBVTtFQUNWLDhCQUE4QjtFQUM5QixZQUFZO0VBQ1osV0FBVztFQUNYLGlCQUFpQjtFQUNqQixVQUFVLEVBQ2I7O0FBRUQ7O2dFQUVnRTtBQUNoRTtFQUNJLG9DQUFvQztFQUNwQyxtQ0FBbUMsRUFDdEM7O0FBRUQ7Ozs7Ozs7Ozs7OztFQVlJLGNBQWM7RUFDZCxvQkFBb0IsRUFDdkI7O0FBRUQsd0NBQXdDO0FBQ3hDOzs7RUFHSSxpQkFBaUIsRUFDcEI7O0FBRUQ7RUFDSSxpQkFBaUIsRUFPcEI7RUFSRDs7SUFLUSxhQUFhO0lBQ2Isa0JBQWtCLEVBQ3JCOztBQUdMO0VBQ0ksb0JBQW9CLEVBQ3ZCOztBQUVEO0VBQ0ksYUFBYTtFQUNiLGFBQWE7RUFDYixZQUFZLEVBQ2Y7O0FBRUQ7RUFDSSxnQkFBZ0I7RUFDaEIsYUFBYSxFQUNoQjs7QUFFRDs7O0VBSVEsY0FBYyxFQU1qQjtFQVZMOzs7SUFPWSwwQkFBMEI7SUFDMUIsaUJBQWlCLEVBQ3BCOztBQVRUO0VBYVEsYUEvTGtCO0VBZ01sQixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLG1CQUFtQixFQUN0Qjs7QUFqQkw7O0VBcUJRLGFBQWEsRUFDaEI7O0FBR0w7RUFDSSxhQTVNc0I7RUE2TXRCLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2IsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw2QkFBNkI7RUFDN0IseUJBQWlCO0tBQWpCLHNCQUFpQjtVQUFqQixpQkFBaUI7RUFFakIsK0tBRWU7RUFDZiw0RUFFTTtFQUNOLDZDQUVVO0VBQ1YsNkJBQTZCLEVBQ2hDOztBQUVEO0VBQ0kseU1BRWU7RUFDZiw0RUFFTTtFQUNOLDZDQUVVO0VBQ1YsNkJBQTZCLEVBQ2hDOztBQUVEO0VBQ0ksaUJBQWlCLEVBQ3BCOztBQUVEO0VBQ0ksc0JBQXNCO0VBQ3RCLDBCQXBQMEIsRUFxUDdCOztBQUVEO0VBQ0ksZ0JBQWdCLEVBQ25COztBQUVEOztFQUVJLFlBQVk7RUFDWixVQUFVLEVBQ2I7O0FBRUQ7RUFDSSxtQkFBbUIsRUFDdEI7O0FBRUQ7RUE5TEkscUNBQXFDO0VBRXJDLGFBQWE7RUFFYixZQUFZO0VBQ1osMkJBQW9CO0VBQ3BCLFdBQVc7RUFDWCxzQkFBZTtFQTBMWCxzQkFBc0IsRUFDekI7O0FBSkw7RUE5TEkscUNBQXFDO0VBRXJDLGFBQWE7RUFFYixZQUFZO0VBRVosV0FBVztFQUNYLHFCQUFlO0VBaU1QLGdCQUFnQjtFQUNoQixhQUFhLEVBQ2hCOztBQVpUO0VBZ0JRLGdCQUFnQjtFQUNoQixRQUFRO0VBQ1IsT0FBTztFQUNQLGVBQWU7RUFDZixZQUFZO0VBQ1osYUFBYTtFQUNiLGFBQWEsRUFDaEI7O0FBR0w7O0VBRUksbUJBQW1CLEVBQ3RCOztBQUVEO0VBQ0ksY0FBYyxFQUNqQjs7QUFFRDtFQUNJLGNBQWMsRUFDakI7O0FBRUQ7RUFDSSxpQkFqVGlCO0VBa1RqQixlQUFlO0VBQ2YsZ0JBQWdCLEVBQ25COztBQUVEO0VBQ0ksWUFBWSxFQXNCZjtFQXZCRDs7O0lBTVEsdUJBQXVCLEVBQzFCO0VBUEw7SUFVUSx5QkFBeUIsRUFNNUI7SUFoQkw7TUFhZ0IsaUJBQWlCLEVBQ3BCO0VBZGI7O0lBcUJRLHVCQUF1QixFQUMxQjs7QUFHTDs7RUFFSSxtQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxpQkFyVmlCO0VBc1ZqQixlQUFlO0VBQ2YsY0FBYyxFQUNqQjs7QUFFRDtFQUNJLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QsWUFBWSxFQXNCZjtFQXpCRDs7SUFPUSxtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLFlBQVksRUFDZjtFQWJMO0lBZ0JRLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIseUNBQTBCO0lBQzFCLGFBQWEsRUFDaEI7RUFwQkw7SUF1QlEsd0NBQXlCLEVBQzVCOztBQUdMO0VBQ0ksc0JBQXNCO0VBQ3RCLDBCQUFpQixFQUNwQjs7QUFFRDtFQUNJLDBCQUFpQixFQVNwQjtFQVZEO0lBSVEseUJBQXlCLEVBQzVCO0VBTEw7SUFRUSx5QkFBeUIsRUFDNUI7O0FBR0w7RUFDSSxpQkFBaUIsRUFDcEI7O0FBRUQ7RUFDSSxzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLHNCQUFzQixFQTBCekI7RUE3QkQ7SUFNUSxZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixVQUFVO0lBQ1YsWUFBWTtJQUNaLFNBQVM7SUFDVCwwQkFsWnNCLEVBbVp6QjtFQWJMO0lBZ0JRLFlBQVk7SUFDWixRQUFRLEVBQ1g7RUFsQkw7SUFxQlEsWUFBWTtJQUNaLFFBQVEsRUFDWDtFQXZCTDtJQTBCUSxTQUFTO0lBQ1QsVUFBVSxFQUNiOztBQUdMO0VBQ0ksaUJBQWlCO0VBQ2pCLHNCQUFzQjtFQUN0QixnQkFBZ0IsRUFXbkI7RUFkRDtJQU1RLGdCQUFnQjtJQUNoQiwwQkE1YXNCO0lBNmF0Qix5QkFBcUIsRUFDeEI7RUFUTDtJQVlRLHFDQUFpQyxFQUNwQzs7QUFJTDs7O0VBR0ksVUFBVSxFQUNiOztBQUVEOzs7RUFHSSxVQUFVLEVBQ2I7O0FBRUQ7Ozs7RUFLUSxVQUFVLEVBQ2I7O0FBR0w7RUFDSSxpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLDJDQUE0QixFQU0vQjtFQUpXO0lBQ0osb0JBQW9CLEVBQ3ZCOztBQUlMOztFQUVJLFlBQVk7RUFDWixlQUFlO0VBQ2Ysb0JBQW9CO0VBQ3BCLGVBQWUsRUFLbEI7RUFWRDs7SUFRUSxxQkFBcUIsRUFDeEI7O0FBR0w7Ozs7O0VBTVEsbUJBQW1CLEVBQ3RCOztBQVBMOztFQVdRLG9CQUFvQixFQUN2Qjs7QUFaTDtFQWdCWSxpQkFBaUIsRUFDcEI7O0FBakJUO0VBcUJRLGlCQUFpQixFQUNwQjs7QUFHTDs7RUFFSSxpQkFBaUIsRUFDcEI7O0FBRUQ7RUFDSSxtQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxZQUFZLEVBQ2Y7O0FBRUQ7RUFDSSxhQUFhLEVBQ2hCOztBQUVEO0VBQ0ksbUJBQW1CLEVBVXRCO0VBWEQ7SUFJUSx5Q0FBeUM7SUFDekMsc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsUUFBUTtJQUNSLG9CQUFvQixFQUN2Qjs7QUFJTDtFQUNJLGdCQUFnQixFQUNuQjs7QUFFRDtFQUNJLGFBQWEsRUFLaEI7RUFORDtJQUlRLGNBQWMsRUFDakI7O0FBR0w7O2dFQUVnRTtBQUNoRTtFQUdRLHNCQUFzQixFQVV6QjtFQWJMO0lBTVksc0JBQXNCLEVBQ3pCO0VBUFQ7O0lBV1ksaUJBQWlCLEVBQ3BCOztBQUtUOztFQUdRLG9CQUFvQixFQUt2QjtFQVJMOztJQU1ZLGNBQWMsRUFDakI7O0FBUFQ7O0VBV1EsbUJBQW1CLEVBQ3RCOztBQVpMOztFQWVRLGNBQWMsRUFDakI7O0FBaEJMOzs7Ozs7OztFQXNCUSxZQUFZO0VBQ1osYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixlQUFlO0VBQ2Ysb0JBQW9CO0VBQ3BCLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsYUFBYTtFQUViLHlCQUF5QjtFQUN6QixpQkFBaUIsRUFDcEI7O0FBakNMOzs7O0VBcUNRLFlBQVksRUFDZjs7QUF0Q0w7O0VBeUNRLGNBQWMsRUFDakI7O0FBMUNMOzs7O0VBOENRLDBCQXhtQnNCLEVBbW5CekI7RUF6REw7Ozs7SUFpRFksMEJBM21Ca0IsRUE0bUJyQjtFQWxEVDs7OztJQXNEZ0Isa0JBQWtCLEVBQ3JCOztBQXZEYjs7RUE0RFEsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsa0JBQWtCLEVBQ3JCOztBQWhFTDs7O0VBbUVRLFVBQVUsRUFDYjs7QUFHTDtFQUNJLG9CQUFvQixFQUN2Qjs7QUFFRDtFQUNJLHNCQUFzQixFQUt6QjtFQU5EO0lBSVEsc0JBQXNCLEVBQ3pCOztBQUdMOztFQUdRLFlBQVksRUFDZjs7QUFKTDtFQU9RLHNCQUF3QjtNQUF4Qix3QkFBd0IsRUFDM0I7O0FBUkw7RUFXUSxpQ0FBb0I7TUFBcEIsb0JBQW9CO0VBQ3BCLG1CQUFtQixFQUN0Qjs7QUFHTDtFQUNJLGNBQWMsRUFDakI7O0FBRUQ7RUFDSSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixrQkFBa0IsRUFDckI7O0FBRUQ7RUFDSSxrQkFBa0IsRUFDckI7O0FBRUQ7O2dFQUVnRTtBQUNoRTtFQUVRLHNCQUFzQixFQUN6Qjs7QUFHTDtFQUNJLHNCQUFzQixFQUN6Qjs7QUFFRDtFQUdZLGdCQUFnQjtFQUNoQixvQ0FBNEI7VUFBNUIsNEJBQTRCO0VBQzVCLGVBQWU7RUFDZixPQUFPO0VBQ1AsUUFBUTtFQUNSLFlBQVk7RUFDWixVQUFVO0VBQ1YsY0FBYyxFQUNqQjs7QUFYVDs7RUFlWSxvQkFBb0I7RUFDcEIsY0FBYztFQUNkLFlBQVk7RUFDWixzQkFBc0IsRUFPekI7RUF6QlQ7Ozs7SUFzQmdCLGNBQWMsRUFDakI7O0FBdkJiO0VBNkJnQixjQUFjLEVBQ2pCOztBQTlCYjtFQW1DWSxhQUFhLEVBS2hCO0VBeENUO0lBc0NnQixZQUFZLEVBQ2Y7O0FBdkNiOztFQThDUSxzQkFBc0IsRUFrQ3pCO0VBaEZMOzs7O0lBa0RZLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsbUJBQW1CLEVBQ3RCO0VBckRUOzs7O0lBeURZLFlBbnZCVTtJQW92QlYsYUFwdkJVO0lBcXZCVixXQUFXLEVBQ2Q7RUE1RFQ7O0lBb0VnQixlQUFlO0lBQ2YsZ0JBL3ZCTTtJQWd3Qk4saUJBaHdCTTtJQWl3Qk4sWUFBWSxFQUNmOztBQVdiO0VBRVEsVUFBVSxFQUNiOztBQUhMO0VBTVEsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixZQUFZO0VBQ1osWUFBWSxFQUNmOztBQVZMO0VBYVEsZ0JBQWdCLEVBS25CO0VBbEJMO0lBZ0JZLGlCQUFpQixFQUNwQjs7QUFqQlQ7O0VBdUJRLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsYUFBYSxFQWNoQjtFQXZDTDs7SUE0Qlksd0JBQWlCLEVBQ3BCO0VBN0JUOzs7O0lBaUNZLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixZQUFZLEVBQ2Y7O0FBdENUO0VBMENRLFdBQVcsRUErQmQ7RUF6RUw7SUE2Q1ksaUJBQWlCO0lBQ2pCLGtCQUFrQixFQUNyQjtFQS9DVDtJQXVEWSxPQUFPO0lBQ1AsV0FBVztJQUNYLGdCQUFnQjtJQUNoQixpQkFBaUIsRUFVcEI7SUFwRVQ7TUE2RGdCLGdCQUFnQjtNQUNoQixvQkFBb0IsRUFDdkI7SUEvRGI7TUFrRWdCLGNBQWMsRUFDakI7RUFuRWI7SUF1RVksc0JBQXNCLEVBQ3pCOztBQXhFVDtFQTRFUSxrQkFBa0IsRUFPckI7RUFuRkw7SUFnRmdCLGFBQWEsRUFDaEI7O0FBakZiO0VBc0ZRLG9CQUFvQixFQUN2Qjs7QUF2Rkw7RUEwRlEsZUFBZSxFQUNsQjs7QUEzRkw7O0VBK0ZRLDBCQUEwQjtFQUMxQixzQkFBc0IsRUFDekI7O0FBakdMO0VBb0dRLGlCQUFpQixFQUNwQjs7QUFyR0w7RUF3R1EsaUJBQWlCLEVBQ3BCOztBQUVEOztFQUVJLHlEQUF5RCxFQUM1RDs7QUFHTDs7Z0VBRWdFO0FBQ2hFO0VBQ0ksV0FBVyxFQU9kO0VBejFCRztJQUNJLFlBQVk7SUFDWixhQUFhLEVBQ2hCO0VBQ0Q7SUFDSSxvQkE4MEI0QjtJQTcwQjVCLHFCQUFvQjtJQUNwQiw4QkFBd0I7SUFDeEIsNkJBQTZCLEVBQ2hDO0VBQ0Q7SUFDSSxpQkF3MEJrQyxFQXYwQnJDO0VBQ0Q7SUFDSSx3QkFBd0IsRUFDM0I7RUFFRDtJQUNJLDhCQWkwQjRCO0lBaDBCNUIsNEJBZzBCa0MsRUEvekJyQztFQTZ6Qkw7SUFLUSwwQkFyNEJzQjtJQXM0QnRCLFNBQVMsRUFDWjs7QUFHTDtFQUNJLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osYUFBYTtFQUNiLE9BQU87RUFDUCxhQUFhO0VBQ2IsWUFBWTtFQUNaLDBCQWo1QjBCO0VBazVCMUIsNEJBQTRCO0VBQzVCLGtDQUFrQyxFQW9JckM7RUE3SUQ7SUFZUSxzQkFBc0IsRUFDekI7RUFiTDtJQWdCUSxjQUFjO0lBQ2QsYUFBYSxFQUNoQjtFQWxCTDtJQXFCUSxtQkFBbUI7SUFDbkIsVUFBVTtJQUNWLFdBQVc7SUFDWCxjQUFjO0lBQ2Qsc0JBQXNCO0lBQ3RCLHNCQUFzQjtJQUN0QixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLG9DQUE0QjtZQUE1Qiw0QkFBNEIsRUFDL0I7RUE5Qkw7SUFpQ1EsWUFBWTtJQUNaLGFBQWE7SUFDYixhQUFhLEVBWWhCO0lBL0NMO01Bc0NZLG1CQUFtQjtNQUNuQixtQkFBbUI7TUFDbkIsYUFBYTtNQUNiLGtCQUFrQjtNQUNsQixZQUFZO01BQ1osYUFBYTtNQUViLGtDQUFrQyxFQUNyQztFQTlDVDtJQW1EWSxpQkFBaUIsRUFDcEI7RUFwRFQ7SUF3RFEsaUJBQWlCO0lBQ2pCLGdCQUFnQixFQWtEbkI7SUEzR0w7TUE0RFksY0FBYyxFQUtqQjtNQWpFVDtRQStEZ0IsbUJBQW1CLEVBQ3RCO0lBaEViO01Bb0VZLGlCQUFpQixFQXNDcEI7TUExR1Q7UUF1RWdCLG1CQUFtQjtRQUNuQixzQkFBc0IsRUFNekI7UUE5RWI7VUEyRW9CLG1CQUFtQjtVQUNuQixzQkFBc0IsRUFDekI7TUE3RWpCOzs7Ozs7UUFzRmdCLFlBQVk7UUFDWixRQUFRO1FBQ1IsMEJBbCtCYyxFQW0rQmpCO01BekZiO1FBOEZvQixhQUFhO1FBQ2IsVUFBVTtRQUNWLFlBQVksRUFDZjtNQWpHakI7UUEzM0JJLG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osU0FBUztRQUNULFlBQVk7UUFDWixVQUFVO1FBQ1YsYUFBYTtRQUNiLDBCQXJCMEI7UUFnL0JkLFlBQVk7UUFDWixXQUFXLEVBQ2Q7RUF4R2I7SUErR1ksaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixhQUFhLEVBQ2hCO0VBbEhUO0lBdUhRLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZUFBZSxFQW1CbEI7SUE1SUw7OztNQThIWSxZQUFZLEVBQ2Y7SUEvSFQ7TUFrSVksaUJBQWlCO01BQ2pCLFlBQVk7TUFDWixtQkFBMEI7VUFBMUIsMEJBQTBCLEVBQzdCO0lBcklUO01Bd0lZLGtCQUFrQjtNQUNsQixpQkFBaUI7TUFDakIsZ0JBQWdCLEVBQ25COztBQUlUOztnRUFFZ0U7QUFDaEU7RUFDSSxtQkFBbUIsRUEyQnRCO0VBNUJEO0lBSVEsc0JBQXNCO0lBQ3RCLG1CQUFtQixFQUN0QjtFQU5MO0lBVVksc0JBQXdCO1FBQXhCLHdCQUF3QjtJQUN4QixtQkFBbUIsRUFDdEI7RUFaVDtJQWVZLG9CQUFvQixFQUN2QjtFQWhCVDtJQXdCUSxzQkFBc0I7SUFDdEIsWUFBWTtJQUNaLGdCQUFnQixFQUNuQjs7QUFHTDtFQUNJLG1CQUFtQixFQTJDdEI7RUE1Q0Q7SUFJUSwwQkFBaUI7SUFDakIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsVUFBVTtJQUNWLGNBQWM7SUFDZCxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLGdCQUFnQixFQXVCbkI7SUFuQ0w7TUFlWSxtQkFBbUI7TUFDbkIsc0JBQXNCLEVBTXpCO01BdEJUO1FBM2lDSSxtQkFBbUI7UUFDbkIsWUFBWTtRQUNaLFNBQVM7UUFDVCxZQUFZO1FBQ1osVUFBVTtRQUNWLGFBQWE7UUFDYiwwQkFyQjBCO1FBOGtDZCxRQUFRLEVBQ1g7SUFyQmI7TUEwQmdCLFlBQVk7TUFDWiwwQkFybENjLEVBc2xDakI7SUE1QmI7TUErQmdCLGtCQUFrQixFQUVyQjtFQWpDYjtJQXNDUSxzQkFBc0I7SUFDdEIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUVsQixzQkFBc0IsRUFDekI7O0FBR0w7O2dFQUVnRTtBQUNoRTtFQUdRLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLG9CQUFvQixFQTRCdkI7RUFsQ0w7O0lBVVksVUFBVSxFQUNiO0VBWFQ7SUFjWSxpQkFBaUIsRUFLcEI7SUFuQlQ7TUFpQmdCLHNCQUFzQixFQUN6QjtFQWxCYjtJQXNCWSxtQkFBbUI7SUFDbkIsT0FBTztJQUNQLFFBQVE7SUFDUixlQUFlO0lBQ2YsWUFBWTtJQUNaLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLDJCQUEyQjtJQUMzQiwyQ0FBNEI7SUFDNUIsWUFBWSxFQUNmOztBQWpDVDtFQXFDUSxZQUFZLEVBQ2Y7O0FBR0w7RUFDSSx1QkFBVSxFQUNiOztBQUVEOztnRUFFZ0U7QUFDaEU7RUFDSSxvQkFBb0IsRUFDdkI7O0FBRUQ7RUFDSSxpQkFBaUI7RUFDakIsZ0JBQWdCLEVBS25CO0VBUEQ7SUFLUSxpQkFBaUIsRUFDcEI7O0FBR0w7RUFDSSxvQkFBb0IsRUFDdkI7O0FBRUQ7RUFDSSxnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQ25COztBQUVEO0VBQ0ksa0JBQWtCLEVBUXJCO0VBVEQ7SUFJUSxZQUFZO0lBQ1osYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixtQkFBbUIsRUFDdEI7O0FBR0w7RUFDSSx5QkFBeUIsRUFDNUI7O0FBRUQ7RUFHUSxhQUFhO0VBeHJDakIsMEJBQTBCLEVBOHJDekI7RUFUTDtJQU9ZLFdBQVcsRUFDZDs7QUFSVDtFQVlRLGtCQUFrQixFQUNyQjs7QUFiTDtFQWdCUSxnQkFBZ0IsRUFDbkI7O0FBR0w7RUFDSSxvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLGdCQUFnQixFQXFCbkI7RUF4QkQ7SUFNUSxzQkFBc0I7SUFDdEIsZUFBZSxFQUNsQjtFQVJMO0lBV1Esc0JBQXNCO0lBQ3RCLGFBQWE7SUFydENqQiwwQkFBMEIsRUEydEN6QjtJQWxCTDtNQWdCWSxXQUFXLEVBQ2Q7RUFqQlQ7SUFxQlEsOEJBQThCLEVBQ2pDOztBQUlMO0VBRVEsY0FBYyxFQUNqQjs7QUFITDtFQU1RLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsZUFBZTtFQUNmLGdCQUFnQjtFQS91Q3BCLDBCQUEwQixFQWl2Q3pCOztBQWRMOztFQWtCUSxzQkFBc0I7RUFDdEIsWUFBWSxFQUNmOztBQXBCTDtFQXVCUSxvQkFBb0IsRUFDdkI7O0FBR0w7RUFDSSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFqd0NiLDBCQUEwQixFQXV3QzdCO0VBVEQ7SUFPUSxXQUFXLEVBQ2Q7O0FBSUw7RUFDSSw2QkFBNkIsRUFDaEM7O0FBRUQ7RUFDSSxpQkFBaUIsRUFDcEI7O0FBRUQ7O2dFQUVnRTtBQUNoRTtFQUNJLG1CQUFtQixFQUN0Qjs7QUFFRDtFQUNJLGVBQWUsRUFDbEI7O0FBR0Q7RUFDSSxZQUFZO0VBQ1osZUFBZTtFQUNmLFlBQVksRUFDZjs7QUFFRDtFQUNJLGNBQWM7RUFDZCxtQkFBbUIsRUF1QnRCO0VBekJEO0lBS1EsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixhQXJ6Q2tCO0lBc3pDbEIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixrQkFBa0IsRUFDckI7RUFYTDtJQWNRLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osYUE5ekNrQjtJQSt6Q2xCLG1CQUFtQjtJQUNuQixlQUFlO0lBdHpDbkIsMEJBQTBCLEVBd3pDekI7RUFwQkw7SUF1QlEsaUJBQWlCLEVBQ3BCOztBQUdMOztnRUFFZ0U7QUFDaEU7RUFDSSxxQkFBcUI7RUFDckIsaUJBQWlCO0VBQ2pCLFdBQVcsRUEwQmQ7RUE3QkQ7SUFNUSxtQkFBbUIsRUFFdEI7RUFSTDtJQXQwQ0ksMEJBQWlCO0lBazFDYiwyQkFBMkI7SUFDM0Isb0NBQTRCO1lBQTVCLDRCQUE0QjtJQUM1QixzQkFBc0IsRUFFekI7RUFoQkw7SUFtQlEsWUFBWSxFQUtmO0lBeEJMO01Bc0JZLGVBQWUsRUFDbEI7RUF2QlQ7SUEyQlEsY0FBYyxFQUNqQjs7QUFHTDs7OztFQUlRLHNCQUFzQixFQUN6Qjs7QUFHTDs7RUFFSSxzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBbDNDdEIsMEJBQTBCLEVBNjNDN0I7RUFwQkQ7O0lBYVEsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixTQUFTO0lBQ1QsVUFBVTtJQUNWLFdBQVc7SUFDWCxxQ0FBcUMsRUFDeEM7O0FBR0w7RUFDSSxnQkFBZ0I7RUFDaEIsVUFBVTtFQUNWLDhCQUE4QjtFQUM5QixtQkFBbUI7RUFDbkIsd0JBQXdCO0VBQ3hCLHlCQUF5QjtFQUN6Qix1QkFBdUI7RUExNEN2QiwwQkFBaUIsRUE2NUNwQjtFQTFCRDtJQVdRLGlCQUFpQjtJQUNqQix5QkFBeUI7SUFDekIsV0FBVztJQUNYLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFDdEI7RUFoQkw7SUFtQlEsaUJBQWlCLEVBQ3BCO0VBcEJMOztJQXdCUSx3QkFBd0IsRUFDM0I7O0FBSUw7RUFDSSxtQkFBbUI7RUFDbkIsdUJBQVMsRUFLWjtFQVBEO0lBS1EscUJBQXFCLEVBQ3hCOztBQUdMOztnRUFFZ0U7QUFDaEU7RUFDSSxpQkFBaUI7RUFDakIsV0FBVyxFQUtkO0VBUEQ7SUFLUSxvQkFBb0IsRUFDdkI7O0FBR0w7RUFDSSxlQUFlLEVBQ2xCOztBQUVEOztnRUFFZ0U7QUFDaEU7RUFDSSxtQkFBbUIsRUFPdEI7RUFSRDtJQUdRLGNBQWMsRUFJakI7SUFQTDtNQUtZLGtCQUFrQixFQUNyQjs7QUFLVDs7Z0VBRWdFO0FBQ2hFO0VBRUksbUJBQW1CLEVBYXRCO0VBZkQ7SUFLUSxrQkFBa0IsRUFTckI7SUFkTDtNQVFZLGFBQWEsRUFDaEI7SUFUVDtNQVlZLHVCQUF1QixFQUMxQjs7QUFLVDs7Z0VBRWdFO0FBQ2hFO0VBQ0ksY0FBYztFQUNkLDJDQUE0QixFQUMvQjs7QUFFRDtFQUNJLGdCQUFnQixFQUNuQjs7QUFFRDtFQUNJLGFBQWE7RUFDYiwyQ0FBNEIsRUFDL0I7O0FBR0Q7RUFDSSxpQkFBaUIsRUFDcEI7O0FBRUQ7RUFDSSxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsY0FBYyxFQXFCakI7RUExQkQ7SUFRUSxhQUFhO0lBQ2IsZUFBZTtJQUNmLGFBQWE7SUFDYixZQUFZO0lBQ1osZUFBZTtJQUNmLG1CQUFtQixFQUN0QjtFQWRMO0lBaUJRLFdBQVcsRUFDZDtFQWxCTDtJQXFCUSxVQUFVLEVBQ2I7RUF0Qkw7SUF3QlEsaUJBQWlCLEVBQ3BCOztBQUlMOztnRUFFZ0U7QUFDaEU7RUFDSSxxQkFBcUIsRUFDeEI7O0FBR0Q7O2dFQUVnRTtBQUNoRTtFQUNJLDZCQUE2QixFQUtoQztFQU5EO0lBSVEsNkJBQTZCLEVBQ2hDOztBQUdMOzs7RUFLUSxrQkFBa0IsRUFPckI7RUFaTDs7Ozs7O0lBU1ksa0JBQWtCLEVBQ3JCOztBQVZUOzs7RUFlUSwyQ0FBNEI7RUFDNUIsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZix1QkFBdUIsRUFhMUI7RUEvQkw7OztJQXNCWSxvQ0FBb0M7SUFDcEMsb0NBQTRCO1lBQTVCLDRCQUE0QjtJQUM1Qix5QkFBcUI7SUFDckIscUJBQXFCLEVBQ3hCO0VBMUJUOzs7SUE2QlkscUNBQWlDLEVBQ3BDOztBQUlUO0VBQ0ksYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixjQUFjO0VBQ2QsbUNBQWtDLEVBQ3JDOztBQUVEO0VBRVEseUJBQXlCLEVBQzVCOztBQUhMO0VBdmtESSwwQkFBMEIsRUE4a0R6Qjs7QUFQTDs7RUFZUSxxQkFBZSxFQUNsQjs7QUFHTDs7Z0VBRWdFO0FBQ2hFO0VBQ0ksc0JBQXNCO0VBQ3RCLGlCQUFpQjtFQUNqQixvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixXQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxZQUFZLEVBQ2Y7O0FBRUQ7RUFDSSxlQUFlLEVBQ2xCOztBQUVEOzs7RUFHSSxpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLGdCQUFnQixFQUNuQjs7QUFFRDtFQUNJLGVBQWU7RUFHZixnQ0FBZ0M7RUFFaEMsb0NBQW9DO0VBQ3BDLDRCQUE0QixFQUMvQjs7QUFFRDtFQUNJLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsb0JBQW9CO0VBQ3BCLGlCQUFpQixFQUNwQjs7QUFFRDtFQUNJLHlCQUF5QixFQUM1Qjs7QUFFRDs7Z0VBRWdFO0FBQ2hFO0VBQ0ksb0JBQW9CLEVBQ3ZCOztBQUVEO0VBQ0ksbUJBQW1CLEVBOEJ0QjtFQS9CRDtJQUlRLGNBQWMsRUFDakI7RUFMTDs7SUFTUSxhQUFhO0lBQ2Isb0JBQW9CO0lBQ3BCLG1CQUFtQixFQUN0QjtFQVpMO0lBZVEsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixhQTFxRGtCO0lBMnFEbEIsNkJBQTZCO0lBQzdCLGtCQUFrQixFQUNyQjtFQXBCTDtJQXVCUSxpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLE9BQU87SUFDUCxTQUFTO0lBQ1QsWUFwckRrQjtJQXFyRGxCLGFBcnJEa0I7SUFzckRsQiwwQkF2ckRzQixFQXdyRHpCOztBQUdMO0VBR1EsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxZQUFZO0VBQ1osb0JBQWdCO01BQWhCLGdCQUFnQjtFQUNoQixxQkFBYztFQUFkLGNBQWMsRUFDakI7O0FBUkw7RUFXUSxvQkFBb0I7RUFFcEIsaUNBQW9CO01BQXBCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtFQUN0QixxQkFBcUIsRUFVeEI7RUEzQkw7SUFvQlksY0FBYyxFQUNqQjtFQXJCVDs7SUF5QlksMEJBcHREa0IsRUFxdERyQjs7QUFJVDtFQUNJLGFBQWEsRUFDaEI7O0FBRUQ7O2dFQUVnRTtBQUNoRTtFQUVRLDhCQUFpQjtNQUFqQixpQkFBaUI7RUFDakIsZ0JBQWdCLEVBQ25COztBQUpMO0VBT1EsOEJBQWlCO01BQWpCLGlCQUFpQjtFQUNqQixnQkFBZ0IsRUFDbkI7O0FBR0w7RUFDSSxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLHNCQUFzQixFQThOekI7RUFqT0Q7Ozs7Ozs7OztJQWNRLGNBQWM7SUFDZCxvQkFBb0IsRUFDdkI7RUFoQkw7SUFtQlEsWUFBWSxFQUNmO0VBcEJMO0lBdUJRLG9CQUFvQixFQXlNdkI7SUFoT0w7TUEwQlksaUJBQWlCLEVBU3BCO01BbkNUO1FBNkJnQixzQkFBc0IsRUFDekI7TUE5QmI7UUFpQ2dCLGNBQWMsRUFDakI7SUFsQ2I7TUFzQ1kseUJBQXlCLEVBQzVCO0lBdkNUOztNQTJDWSxrQkFBa0I7TUFDbEIsaUJBQWlCLEVBQ3BCO0lBN0NUO01BZ0RZLGlCQUFpQixFQVFwQjtNQXhEVDtRQW1EZ0Isc0JBQXNCO1FBQ3RCLG9CQUFvQjtRQUNwQixzQkFBc0I7UUFDdEIsZUFBZSxFQUNsQjtJQXZEYjtNQTREZ0IsWUFBWTtNQUNaLGVBQWU7TUFDZixhQUFhO01BQ2Isb0JBQW9CLEVBQ3ZCO0lBaEViO01BcUVnQixvQkFBb0IsRUFTdkI7TUE5RWI7O1FBeUVvQixZQUFZO1FBQ1osZUFBZTtRQUNmLGFBQWE7UUFDYixvQkFBb0IsRUFDdkI7SUE3RWpCO01BaUZnQixvQkFBb0IsRUFDdkI7SUFsRmI7TUF1RmdCLFlBQVk7TUFDWixpQ0FBaUM7TUFDakMsK0JBQStCLEVBQ2xDO0lBMUZiO01BOEZvQiw0QkFBNEI7TUFDNUIsMkJBQTJCLEVBQzlCO0lBaEdqQjtNQW1Hb0IsV0FBVyxFQUNkO0lBcEdqQjtNQXdHZ0IsYUFBYSxFQUNoQjtJQXpHYjs7TUE4R1ksNEJBQTRCLEVBQy9CO0lBL0dUO01BbUhnQixZQUFZO01BQ1osaUJBQWlCLEVBZXBCO01BbkliOztRQXdIb0IsYUFBYSxFQUNoQjtNQXpIakI7UUE0SG9CLGtCQUFrQixFQUNyQjtNQTdIakI7O1FBaUlvQixzQkFBc0IsRUFDekI7SUFsSWpCO01Bc0lnQixpQkFBaUIsRUFDcEI7SUF2SWI7TUEySVksb0JBQW9CLEVBQ3ZCO0lBNUlUO01BK0lZLGlCQUFpQixFQUNwQjtJQWhKVDtNQW50REksYUFBYSxFQXUyRFI7TUFwSlQ7UUFodERRLFdBQVcsRUFDZDtJQStzREw7TUF3SmdCLGFBQWEsRUFDaEI7SUF6SmI7TUE2Slksc0JBQXNCO01BQ3RCLGlCQUFpQjtNQUNqQixnQkFBZ0IsRUEyQm5CO01BMUxUO1FBa0tnQixXQUFXO1FBQ1gsc0JBQXNCO1FBQ3RCLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osMEJBbDVEYyxFQXE2RGpCO1FBekxiO1VBeUtvQixhQUFhLEVBQ2hCO1FBMUtqQjtVQThLd0IsZ0JBQWdCO1VBQ2hCLGFBQWE7VUFDYixZQUFZLEVBQ2Y7UUFqTHJCO1VBb0x3QixpQkFBaUI7VUFDakIsWUFBWTtVQUNaLGFBQWEsRUFDaEI7SUF2THJCO01BOExnQixlQUFlLEVBU2xCO01Bdk1iO1FBaU1vQixnQkFBZ0IsRUFLbkI7UUF0TWpCO1VBbnRESSxhQUFhLEVBdzVESTtVQXJNckI7WUFodERRLFdBQVcsRUFDZDtJQStzREw7TUEwTWdCLHNCQUFzQjtNQUN0QixvQkFBb0I7TUFDcEIsb0JBQW9CLEVBQ3ZCO0lBN01iO01BbU5nQixtQkFBbUIsRUFDdEI7SUFwTmI7TUFudERJLGFBQWE7TUEyNkRELHNCQUFzQixFQUN6QjtNQXpOYjtRQWh0RFEsV0FBVyxFQUNkO0lBK3NETDtNQTZOZ0IsbUJBQW1CLEVBQ3RCOztBQUtiOztnRUFFZ0U7QUFDaEU7RUFHUSxXQUFXLEVBQ2Q7O0FBSkw7RUFPUSxjQUFjLEVBQ2pCOztBQVJMOztFQWFZLFdBQVcsRUFDZDs7QUFJVDtFQUNJLFlBQVk7RUFDWixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0QixXQUFXLEVBZ0JkO0VBckJEO0lBUVEsVUFBVSxFQUNiO0VBVEw7SUFZUSxvQkFBb0IsRUFFdkI7RUFkTDtJQWtCWSxVQUFVLEVBQ2I7O0FBSVQ7RUFDSSxjQUFjLEVBQ2pCOztBQUVEOztnRUFFZ0U7QUFDaEU7RUFFUSxlQUFlLEVBQ2xCOztBQUdMOztnRUFFZ0U7QUFDaEU7O0VBRUksK0JBQStCLEVBQ2xDOztBQUVEO0VBQ0ksWUFBWTtFQUNaLG9CQUFvQixFQUN2Qjs7QUFFRDtFQUNJLGtCQUFrQixFQUNyQjs7QUp4L0REOztnRUFFZ0U7QUt0RWhFOzs7Ozs7Ozs7O2dFQVVnRTtBQUVoRTs7Z0VBRWdFO0FBRWhFOztnRUFFZ0U7QUFFaEU7O2dFQUVnRTtBQUVoRTs7Z0VBRWdFO0FBRWhFOztnRUFFZ0U7QUFFaEU7O2dFQUVnRTtBQUVoRTtFQUNJLGNBQWM7RUFDZCxvQkFBb0IsRUFDdkI7O0FBRUQsVUFBVTtBQUVWO0VBR1ksOEJBQThCLEVBQ2pDOztBQUtUOztnRUFFZ0U7QUFDaEU7RUFFSTtJQUNJLGNBQWM7SUFDZCxvQkFBb0IsRUFDdkIsRUFBQTs7QUxjTDs7Z0VBRWdFO0FNNUVoRTs7Ozs7Ozs7Z0VBUWdFO0FBRWhFOztnRUFFZ0U7QUFHaEU7O2dFQUVnRTtBQUNoRTs7OztFQUlJLHdDQUF3QztFQUN4QyxnQkFBZ0I7RUFDaEIsMkJBQWlCO0VBQ2pCLG9CQUFvQixFQUN2Qjs7QUFFRDtFQUNJLGdCQUFnQjtFQUNoQiw0QkFBaUI7RUFDakIsb0JBQW9CLEVBQ3ZCOztBQUVEOzs7RUFHSSxnQkFBZ0I7RUFDaEIsMkJBQWlCO0VBQ2pCLG9CQUFvQixFQUN2Qjs7QUFFRDs7RUFFSSxnQkFBZ0I7RUFDaEIsMkJBQWlCO0VBQ2pCLG9CQUFvQixFQUN2Qjs7QUFFRDs7Ozs7Ozs7RUFRSSxnQkFBZ0I7RUFDaEIsMkJBQWlCO0VBQ2pCLG9CQUFvQixFQUN2Qjs7QUFFRDs7O0VBR0ksZ0JBQWdCO0VBQ2hCLDJCQUFpQjtFQUNqQixvQkFBb0IsRUFDdkI7O0FBRUQ7Ozs7RUFJSSxnQkFBZ0I7RUFDaEIsMkJBQWlCO0VBQ2pCLG9CQUFvQixFQUN2Qjs7QUFFRDtFQUNJLGdCQUFnQixFQUNuQjs7QUFFRDtFQUNJLGdCQUFnQixFQUNuQjs7QUFFRDs7OztFQUlJLGdCQUFnQixFQUNuQjs7QUFFRDs7RUFFSSwyQkFBMkIsRUFDOUI7O0FBRUQ7OztFQUdJLGdCQUFnQjtFQUNoQixvQkFBb0IsRUFDdkI7O0FBRUQ7OztFQUdJLGdCQUFnQixFQUNuQjs7QUFFRDtFQUNJLGlCQUFpQixFQUNwQjs7QUFFRDs7RUFFSSx3Q0FBd0M7RUFDeEMsZ0JBQWdCO0VBQ2hCLDJCQUFpQjtFQUNqQixvQkFBb0IsRUFDdkI7O0FBRUQ7O2dFQUVnRTtBQUVoRTs7Z0VBRWdFO0FBQ2hFO0VBQ0k7SUFDSSxnQkFBZ0IsRUFDbkI7RUFFRDs7SUFFSSxnQkFBZ0IsRUFDbkI7RUFFRDtJQUNJLGdCQUFnQixFQUNuQjtFQUVEO0lBQ0ksZ0JBQWdCLEVBQ25CO0VBRUQ7SUFDSSxnQkFBZ0IsRUFDbkI7RUFFRDtJQUNJLGdCQUFnQixFQUNuQjtFQUVEO0lBQ0ksZ0JBQWdCLEVBQ25CLEVBQUE7O0FBR0w7O2dFQUVnRTtBQUNoRTtFQUNJO0lBQ0ksZ0JBQWdCLEVBQ25CO0VBRUQ7O0lBRUksZ0JBQWdCLEVBQ25CO0VBRUQ7SUFDSSxnQkFBZ0IsRUFDbkIsRUFBQTs7QU5qR0w7O2dFQUVnRTtBT2xGaEU7RUFDSSx5QkFBeUI7RUFDekIsMkNBQVE7RUFDUixzVEFJc0Q7RUFDdEQsb0JBQW9CO0VBQ3BCLG1CQUFtQixFQUFBOztBQUV2QixpR0FBaUc7QUFDakcsNEZBQTRGO0FBQzVGOzs7Ozs7O0VBT0U7QVI4Z0dGO0VRM2dHSSx5QkFBeUI7RUFDekIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixZQUFZO0VBRVosc0JBQXNCO0VBQ3RCLHlCQUF5QjtFQUN6QixXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFFbEIsaUVBQWlFO0VBQ2pFLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFFckIsK0NBQStDO0VBQy9DLGlCQUFpQjtFQUVqQixpRUFBaUU7RUFDakUsMEJBQTBCO0VBQzFCLGtCQUFrQjtFQUVsQiwyREFBMkQ7RUFDM0Qsc0JBQXNCO0VBRXRCLDhDQUE4QztFQUM5QyxvQ0FBb0M7RUFDcEMsbUNBQW1DO0VBRW5DLDZCQUE2QjtFQUM3Qix3REFBd0QsRUFDM0Q7O0FBRUQ7RUFBMEIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUMvQztFQUF3QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzdDO0VBQTRCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDakQ7RUFBeUIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUM5QztFQUErQixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ3BEO0VBQTJCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDaEQ7RUFBMEIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUMvQztFQUF3QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzdDO0VBQXVCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDNUM7RUFBMkIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNoRDtFQUEwQixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQy9DO0VBQTBCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDL0M7RUFBc0IsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUMzQztFQUEwQixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQy9DO0VBQXdCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDN0M7RUFBeUIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUM5QztFQUF3QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzdDO0VBQTZCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDbEQ7RUFBa0MsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUN2RDtFQUFrQyxpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ3ZEO0VBQTJCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDaEQ7RUFBaUMsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUN0RDtFQUE0QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ2pEO0VBQXlCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDOUM7RUFBMEIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUMvQztFQUEwQixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQy9DO0VBQThCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDbkQ7RUFBK0IsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNwRDtFQUE0QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ2pEO0VBQThCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDbkQ7RUFBeUIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUM5QztFQUF5QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzlDO0VBQTRCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDakQ7RUFBbUMsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUN4RDtFQUEwQixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQy9DO0VBQXdCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDN0M7RUFBMkIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNoRDtFQUF5QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzlDO0VBQXlCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDOUM7RUFBMkIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNoRDtFQUE2QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ2xEO0VBQTJCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDaEQ7RUFBNkIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNsRDtFQUE0QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ2pEO0VBQTZCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDbEQ7RUFBNEIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNqRDtFQUF3QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzdDO0VBQTBCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDL0M7RUFBMkIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNoRDtFQUFnQyxpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ3JEO0VBQStCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDcEQ7RUFBMkIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNoRDtFQUF3QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzdDO0VBQThCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDbkQ7RUFBOEIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNuRDtFQUErQixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ3BEO0VBQTRCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDakQ7RUFBNEIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNqRDtFQUE0QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ2pEO0VBQTBCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDL0M7RUFBaUMsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUN0RDtFQUF3QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzdDO0VBQXdCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDN0M7RUFBeUIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUM5QztFQUErQixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ3BEO0VBQXlCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDOUM7RUFBd0IsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUM3QztFQUE4QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ25EO0VBQWlDLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDdEQ7RUFBd0IsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUM3QztFQUFxQyxpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzFEO0VBQXNDLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDM0Q7RUFBbUMsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUN4RDtFQUFxQyxpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzFEO0VBQWlDLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDdEQ7RUFBNkIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNsRDtFQUEyQixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ2hEO0VBQTZCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDbEQ7RUFBNEIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNqRDtFQUE0QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ2pEO0VBQTZCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDbEQ7RUFBMkIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNoRDtFQUErQixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ3BEO0VBQThCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDbkQ7RUFBeUIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUM5QztFQUE0QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ2pEO0VBQWdDLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDckQ7RUFBdUIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUM1QztFQUF5QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzlDO0VBQStCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDcEQ7RUFBdUMsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUM1RDtFQUFnQyxpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ3JEO0VBQTBCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDL0M7RUFBNkIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNsRDtFQUE4QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ25EO0VBQTBCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDL0M7RUFBNkIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNsRDtFQUF5QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzlDO0VBQWlDLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDdEQ7RUFBK0IsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNwRDtFQUF5QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzlDO0VBQTJCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDaEQ7RUFBOEIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNuRDtFQUF3QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQzdDO0VBQTRCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDakQ7RUFBNEIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUNqRDtFQUE4QixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ25EO0VBQXdCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDN0M7RUFBMEIsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBQUMvQztFQUErQixpQkFBaUIsRUFBSTs7QUFBQSxTQUFBO0FBQ3BEO0VBQTRCLGlCQUFpQixFQUFJOztBQUFBLFNBQUE7QUFDakQ7RUFBa0MsaUJBQWlCLEVBQUk7O0FBQUEsU0FBQTtBUGxGdkQ7O2dFQUVnRTtBQUloRTs7Z0VBRWdFO0FROUZoRTs7Ozs7Ozs7OztnRUFVZ0U7QUFFaEU7O2dFQUVnRTtBQUtoRTs7Z0VBRWdFO0FBQ2hFO0VBR1EsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsK0NBQStDLEVBQ2xEOztBQVBMO0VBVVEsZUFBZTtFQUNmLFlBQVksRUFvRWY7RUEvRUw7SUFjWSxlQUFlO0lBQ2YsWUFBWTtJQUNaLG1CQUFtQixFQUN0QjtFQWpCVDtJQW9CWSxvQkFBb0I7SUFDcEIsYUFBYTtJQUNiLHVCQUF1QjtJQUN2QixpQkFBaUIsRUFDcEI7RUF4QlQ7SUEyQlksYUFBYTtJQUNiLFlBQStCLEVBQ2xDO0VBN0JUO0lBZ0NZLG1DQUFlLEVBZ0JsQjtJQWhEVDtNQW1DZ0IsZUFBZTtNQUNmLGlCQUFpQjtNQUNqQiwyQ0FBNEI7TUFDNUIsZ0JBQWdCO01BQ2hCLFlBQVksRUFRZjtNQS9DYjtRQTBDb0IsYUFBYTtRQUNiLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsaUJBQWlCLEVBQ3BCO0VBOUNqQjtJQW1EWSxtQkFBbUI7SUFDbkIsVUFBVTtJQUNWLDBCQUFpQjtJQUNqQixnQ0FBZ0M7SUFDaEMsV0FBcUI7SUFDckIsb0NBQTRCO1lBQTVCLDRCQUE0QjtJQUM1QixvQkFBb0I7SUFDcEIsa0JBQTRCO0lBQzVCLGFBQXVCLEVBSzFCO0lBaEVUO01BOERnQixrQkFBNEIsRUFDL0I7RUEvRGI7SUFtRVksZUFBZSxFQVVsQjtJQTdFVDtNQXNFZ0IsZUFBZSxFQUNsQjtJQXZFYjtNQTBFZ0IsV0FBVztNQUNYLGVBQWUsRUFDbEI7O0FBTWI7O0VBSVEscUJBRUgsRUFBQzs7QUFHTjs7Z0VBRWdFO0FBQ2hFO0VBR1EsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQiwyQ0FBNEIsRUEyQy9CO0VBaERMO0lBUVksaUJBQWlCO0lBRWpCLG1DQUFtQztJQUNuQyw2QkFBNkI7SUFDN0IsdUJBQXVCO0lBRXZCLG1CQUFtQjtJQUNuQixPQUFPO0lBQ1AsUUFBUTtJQUNSLFNBQVM7SUFDVCxVQUFVLEVBS2I7SUF2QlQ7TUFxQmdCLHVCQUFnQixFQUNuQjtFQXRCYjtJQTBCWSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGVBQWUsRUFDbEI7RUE3QlQ7SUFpQ2dCLGNBQ0gsRUFBQztFQWxDZDtJQXFDZ0Isa0JBQWtCLEVBQ3JCO0VBdENiO0lBMkNZLFdBQVc7SUFDWCxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFQUNwQjs7QUFJVDs7Z0VBRWdFO0FBQ2hFO0VBQ0ksV0FBVyxFQUNkOztBQUVEO0VBQ0ksV0FBVyxFQUNkOztBQUVEO0VBQ0ksNkJBQXFCO0VBQ3JCLHlDQUF5QyxFQUM1Qzs7QUFXRDtFQUNJLE1BQUU7RUFFRjtJQUVJLHlCQUFxQjtJQUNyQixXQUFXLEVBQUEsRUFBQTs7QUFJbkI7O2dFQUVnRTtBQUNoRTtFQUVRLGNBQWMsRUFDakI7O0FBR0w7O2dFQUVnRTtBQUNoRTs7RUFJUSxzQkFBc0I7RUFDdEIsbUJBQW1CLEVBT3RCO0VBWkw7O0lBUVksY0FBYyxFQUVqQjs7QUFLVDs7Z0VBRWdFO0FBQ2hFO0VBVVEsZUFBZTtFQUNmLFlBQVksRUFzRWY7RUFqRkw7SUFLWSxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLDJDQUE0QixFQUMvQjtFQVJUO0lBY1ksZUFBZTtJQUNmLFlBQVk7SUFDWixtQkFBbUIsRUFDdEI7RUFqQlQ7SUFvQlksb0JBQW9CLEVBQ3ZCO0VBckJUO0lBd0JZLGFBQWE7SUFDYixZQUErQixFQUNsQztFQTFCVDtJQTZCWSxtQ0FBZSxFQStCbEI7SUE1RFQ7TUFnQ2dCLGVBQWU7TUFDZixpQkFBaUI7TUFDakIsMkNBQTRCLEVBTS9CO01BeENiO1FBcUNvQixpQkFBaUI7UUFDakIsMEJBQTBCLEVBQzdCO0lBdkNqQjtNQTJDZ0IsdUJBQWdCLEVBQ25CO0lBNUNiO01BK0NnQixlQUFlO01BQ2YsaUJBQWlCO01BQ2pCLDJDQUE0QjtNQUM1QixnQkFBZ0I7TUFDaEIsWUFBWSxFQVFmO01BM0RiO1FBc0RvQixhQUFhO1FBQ2IsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixrQkFBa0IsRUFDckI7RUExRGpCO0lBK0RZLG1CQUFtQjtJQUNuQixXQUFXO0lBQ1gsMEJBQWlCO0lBQ2pCLGdDQUFnQztJQUNoQyxVQUFVO0lBQ1YsV0FBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLGtCQUE0QjtJQUM1QixhQUF1QixFQVMxQjtJQWhGVDtNQXlFZ0Isa0JBQTRCLEVBQy9CO0lBMUViO01BNkVnQixzQkFBc0IsRUFDekI7O0FBOUViO0VBc0ZZLGVBQWUsRUFXbEI7RUFqR1Q7SUF5RmdCLGVBQWUsRUFDbEI7RUExRmI7SUE2RmdCLFdBQVc7SUFDWCxVQUFVO0lBQ1YsZUFBZSxFQUNsQjs7QUFNYjs7Z0VBRWdFO0FBQ2hFO0VBRVEsb0JBQW9CLEVBS3ZCO0VBUEw7SUFLWSxpQkFBaUIsRUFDcEI7O0FBTlQ7RUFVUSxvQkFBb0IsRUFxQ3ZCO0VBL0NMO0lBYVksYUFBYSxFQUNoQjtFQWRUO0lBaUJZLGdCQUFnQjtJQUNoQixRQUFRO0lBQ1IsWUFBc0I7SUFDdEIsYUFBYTtJQUNiLG9CQUFvQixFQXFCdkI7SUExQ1Q7TUF3QmdCLGVBQWU7TUFDZixtQkFBbUI7TUFDbkIsa0JBQWtCO01BQ2xCLFlBQVk7TUo1VHhCLDBCQUEwQjtNSStUZCxvQ0FBNEI7Y0FBNUIsNEJBQTRCO01BQzVCLHlCQUFxQjtNQUNyQixhQUFhLEVBU2hCO01BekNiO1FBbUNvQixXQUFXLEVBQ2Q7TUFwQ2pCO1FBdUNvQixzQkFBc0IsRUFDekI7RUF4Q2pCO0lBNkNZLHVCQUF1QixFQUMxQjs7QUE5Q1Q7RUFzRGdCLFNBQVM7RUFDVCxXQUFXLEVBQ2Q7O0FBeERiO0VBK0RZLGlCQUFpQixFQUNwQjs7QVIvU1Q7O2dFQUVnRTtBU3BHaEU7Ozs7Ozs7OztnRUFTZ0U7QUFFaEU7O2dFQUVnRTtBQUVoRTs7Z0VBRWdFO0FBQ2hFOztFQUdRLFlBQVk7RUFDWixnQkFBZ0IsRUFDbkI7O0FBTEw7O0VBUVEsZUFBZTtFQUNmLFlBQVksRUE4Q2Y7RUF2REw7O0lBY2dCLHNCQUFzQixFQUN6QjtFQWZiOztJQW1Cb0Isa0JBQWtCLEVBQ3JCO0VBcEJqQjs7SUEwQmdCLGlCQUFpQixFQUNwQjtFQTNCYjs7SUErQlkscUJBQXFCLEVBQ3hCO0VBaENUOztJQW1DWSxvQkFBb0IsRUFhdkI7SUFoRFQ7O01Bc0NnQixhQUFhLEVBQ2hCO0lBdkNiOztNQTBDZ0IsaUJBQWlCLEVBQ3BCO0lBM0NiOztNQThDZ0Isc0JBQXNCLEVBQ3pCO0VBL0NiOztJQW9EZ0IsY0FBYyxFQUNqQjs7QUFLYjtFQUVRLHFCQUFxQixFQUt4QjtFQVBMO0lBS1kscUJBQXFCLEVBQ3hCOztBQUlUO0VBQ0kseUJBQXlCLEVBQzVCOztBQUVEOztnRUFFZ0U7QUFDaEU7RUFFUSxhQUFhLEVBQ2hCOztBQUhMO0VBTVEsYUFBYTtFQUNiLGFBQWE7RUFDYixlQUFlLEVBQ2xCOztBQVRMO0VBWVEsbUJBQW1CLEVBT3RCO0VBbkJMO0lMckJRLGFBQWE7SUFBRSxPQUFPO0lBQ3RCLGVBQWU7SUFBRSxPQUFPLEVBQzNCO0VLbUJMO0lMaEJRLFlBQVksRUFDZjtFS2VMO0lBaUJZLGdCQUFnQixFQUNuQjs7QUFsQlQ7O0VBdUJRLHNCQUFzQjtFQUN0QixtQkFBbUIsRUFPdEI7RUEvQkw7O0lBMkJZLGNBQWMsRUFFakI7O0FBS1Q7O2dFQUVnRTtBQUNoRTs7RUFFSTs7O09BR0csRUFDTjs7QVRoQ0Q7O2dFQUVnRTtBVTFHaEU7RUFDSSxpQkFBaUI7RUFDakIsV0FBVyxFQWlHZDtFQW5HRDtJQUtRLHNCQUFzQixFQUN6QjtFQU5MO0lBU1EsdUJBQXVCO0lBQ3ZCLHNCQUFzQjtJQUN0QixpQkFBaUI7SUFDakIscUJBQXFCO0lOb0N6QiwwQkFBMEI7SU1qQ3RCLG9DQUE0QjtZQUE1Qiw0QkFBNEI7SUFDNUIseUJBQXFCO0lBQ3JCLGFBQWEsRUFrQ2hCO0lBbkRMO01Bb0JZLFdBQVcsRUFDZDtJQXJCVDtNQXdCWSxZQUFZO01BQ1osZUFBZTtNQUVmLHlCQUF5QjtNQUN6QixtQkFBbUI7TUFDbkIsb0JBQW9CO01BQ3BCLFlBQVk7TUFFWixzQkFBc0I7TUFDdEIsc0JBQXNCO01BQ3RCLFdBQVc7TUFDWCxtQkFBbUI7TUFDbkIsbUJBQW1CO01BQ25CLGtCQUFrQjtNQUVsQixpRUFBaUU7TUFDakUscUJBQXFCO01BQ3JCLHFCQUFxQjtNQUVyQixpRUFBaUU7TUFDakUsMEJBQTBCO01BQzFCLGtCQUFrQjtNQUVsQiw4Q0FBOEM7TUFDOUMsb0NBQW9DO01BQ3BDLG1DQUFtQyxFQUN0QztFQWxEVDtJQXFENEMsaUJBQWlCLEVBQUk7RUFyRGpFO0lBc0Q0QyxpQkFBaUIsRUFBSTtFQXREakU7SUF1RDRDLGlCQUFpQixFQUFJO0VBdkRqRTtJQXdENEMsaUJBQWlCLEVBQUk7RUF4RGpFO0lBeUQ0QyxpQkFBaUIsRUFBSTtFQXpEakU7SUEwRDRDLGlCQUFpQixFQUFJO0VBMURqRTtJQTJENEMsaUJBQWlCLEVBQUk7RUEzRGpFO0lBNEQ0QyxpQkFBaUIsRUFBSTtFQTVEakU7SUE2RDRDLGlCQUFpQixFQUFJO0VBN0RqRTtJQThENEMsaUJBQWlCLEVBQUk7RUE5RGpFO0lBK0Q0QyxpQkFBaUIsRUFBSTtFQS9EakU7SUFnRTRDLGlCQUFpQixFQUFJO0VBaEVqRTtJQWlFNEMsaUJBQWlCLEVBQUk7RUFqRWpFO0lBa0U0QyxpQkFBaUIsRUFBSTtFQWxFakU7SUFtRTRDLGlCQUFpQixFQUFJO0VBbkVqRTtJQW9FNEMsaUJBQWlCLEVBQUk7RUFwRWpFO0lBcUU0QyxpQkFBaUIsRUFBSTtFQXJFakU7SUFzRTRDLGlCQUFpQixFQUFJO0VBdEVqRTtJQXVFNEMsaUJBQWlCLEVBQUk7RUF2RWpFO0lBd0U0QyxpQkFBaUIsRUFBSTtFQXhFakU7SUF5RTRDLGlCQUFpQixFQUFJO0VBekVqRTtJQTBFNEMsaUJBQWlCLEVBQUk7RUExRWpFO0lBMkU0QyxpQkFBaUIsRUFBSTtFQTNFakU7SUE0RTRDLGlCQUFpQixFQUFJO0VBNUVqRTtJQTZFNEMsaUJBQWlCLEVBQUk7RUE3RWpFO0lBOEU0QyxpQkFBaUIsRUFBSTtFQTlFakU7SUErRTRDLGlCQUFpQixFQUFJO0VBL0VqRTtJQWdGNEMsaUJBQWlCLEVBQUk7RUFoRmpFO0lBaUY0QyxpQkFBaUIsRUFBSTtFQWpGakU7SUFrRjRDLGlCQUFpQixFQUFJO0VBbEZqRTtJQW1GNEMsaUJBQWlCLEVBQUk7RUFuRmpFO0lBb0Y0QyxpQkFBaUIsRUFBSTtFQXBGakU7SUFxRjRDLGlCQUFpQixFQUFJO0VBckZqRTtJQXNGNEMsaUJBQWlCLEVBQUk7RUF0RmpFO0lBdUY0QyxpQkFBaUIsRUFBSTtFQXZGakU7SUF3RjRDLGlCQUFpQixFQUFJO0VBeEZqRTtJQXlGNEMsaUJBQWlCLEVBQUk7RUF6RmpFO0lBMEY0QyxpQkFBaUIsRUFBSTtFQTFGakU7SUEyRjRDLGlCQUFpQixFQUFJO0VBM0ZqRTtJQTRGNEMsaUJBQWlCLEVBQUk7RUE1RmpFO0lBNkY0QyxpQkFBaUIsRUFBSTtFQTdGakU7SUE4RjRDLGlCQUFpQixFQUFJO0VBOUZqRTtJQStGNEMsaUJBQWlCLEVBQUk7RUEvRmpFO0lBZ0c0QyxpQkFBaUIsRUFBSTtFQWhHakU7SUFpRzRDLGlCQUFpQixFQUFJO0VBakdqRTtJQWtHNEMsaUJBQWlCLEVBQUk7O0FWWWpFOztnRUFFZ0U7QVdoSGhFOzs7Ozs7Ozs7O2dFQVVnRTtBQUVoRTs7Z0VBRWdFO0FBSWhFOztnRUFFZ0U7QUFLaEU7O2dFQUVnRTtBQUNoRTtFQUVJO0lBQ0ksb0JBQW9CLEVBQ3ZCO0VBRUQ7SUFDSSxjQUFjLEVBQ2pCO0VBRUQ7SUFFUSx3QkFBaUIsRUFDcEI7RUFHTDtJQUNJLGFBQWE7SUFDYix5QkFBaUIsRUE0Q3BCO0lBOUNEO01BS1EsbUJBQW1CO01BQ25CLGVBQWU7TUFDZixhQXBDWTtNQXFDWixPQUFPO01BQ1AsUUFBUTtNQUNSLFlBQVk7TUFDWixzQkFBc0IsRUFDekI7SUFaTDtNQWVRLG1CQUFtQjtNQUNuQixVQUFVO01BQ1YsV0FBVztNQUNYLHVDQUFtQztNQUNuQyxzQkFBc0I7TUFDdEIsaUJBQWlCLEVBY3BCO01BbENMO1FBdUJZLHNDQUFrQztRQUNsQywwQkFwRGM7UUFxRGQsc0JBQXNCLEVBQ3pCO01BMUJUO1FBOEJnQix3Q0FBb0M7UUFDcEMsMEJBM0RVLEVBNERiO0lBaENiO01BcUNRLGFBbEVZO01BbUVaLGFBQWE7TUFDYixhQUFhLEVBTWhCO01BN0NMO1FBMENZLDZCQUE2QjtRQUM3QixZQUFZLEVBQ2Y7RUFJVCxlQUFlO0VBQ2Y7O0lBeUJJLG9CQUFvQixFQUN2QjtJQTFCRDs7TUFJUSxrQkFBa0I7TUFDbEIsa0JBQWtCO01BVWxCLHlCQUFXLEVBQ2Q7TUFoQkw7O1FBUVksbUJBQW1CLEVBQ3RCO01BVFQ7O1FBWVksa0JBQWtCLEVBQ3JCO0lBYlQ7O01BbUJRLGNBQWM7TUFDZCxnQkFBZ0I7TUFDaEIscUJBQXFCO01BQ3JCLFlBQVksRUFDZjtFQUtMLDJCQUEyQjtFQUMzQjtJQUVRLHNCQUFzQixFQUN6QjtFQUlMLHFCQUFxQjtFQUVyQjtJQUNJLGVBQWUsRUFDbEI7RUFFRDtJQUNJLGdCQUFnQixFQUNuQjtFQUVEO0lBQ0ksZUFBZSxFQUNsQjtFQUVEO0lBQ0ksa0JBQWtCLEVBQ3JCO0VBRUQ7SUFDSSxlQUFlLEVBQ2xCO0VBR0Q7SUFFUSxlQUFlO0lBQ2Ysb0JBQW9CLEVBV3ZCO0lBZEw7O01BT1ksWUFBWTtNQUNaLFlBQVksRUFDZjtJQVRUO01BWVksc0JBQXNCLEVBQ3pCLEVBQUE7O0FBS2I7O2dFQUVnRTtBQUNoRTtFQUVJOztJQUtnQixVQUFVLEVBQ2IsRUFBQTs7QUFRakI7O2dFQUVnRTtBQUNoRTtFQUVJOztJQUtnQixVQUFVLEVBQ2I7RUFLYjs7Ozs7Ozs7Ozs7Ozs7SUFjSSxjQUFjO0lBQ2Qsb0JBQW9CLEVBQ3ZCO0VBRUQ7SUFDSSxpQkFBaUIsRUFLcEI7SUFORDtNQUlRLG9CQUFvQixFQUN2QjtFQUdMOzs7OztJQUtJLGlCQUFpQixFQUNwQjtFQUVEO0lBSWdCLGlCQUFpQixFQUNwQjtFQUtiO0lBQ0ksaUJBQWlCLEVBQ3BCO0VBRUQ7SUFFUSxpQ0FBb0I7UUFBcEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixzQkFBc0IsRUFDekI7RUFMTDtJQVFRLGlDQUFvQjtRQUFwQixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixzQkFBc0IsRUFXekI7SUF0Qkw7TUFjWSxZQUFZO01BQ1osb0JBQW9CLEVBQ3ZCO0lBaEJUO01BbUJZLGFBQWE7TUFDYixtQkFBbUIsRUFDdEI7RUFyQlQ7SUF5QlEscUJBQXFCLEVBQ3hCO0VBR0w7SUFDSSxtQkFBbUIsRUFDdEI7RUFFRDtJQUNJLGNBQWMsRUFDakI7RUFVRDs7OztJQUtZLGdCQUFnQixFQUNuQjtFQU5UO0lBWWdCLGdCQUFnQixFQUNuQjtFQUtiO0lBQ0ksYUFBYSxFQUtoQjtJQU5EO01BSVEsNkJBQTZCLEVBQ2hDO0VBR0w7SUFFUSxZQUFZLEVBQ2Y7RUFITDtJQU1RLGlCQUFpQjtJQUNqQixnQ0FBbUI7UUFBbkIsbUJBQW1CO0lBQ25CLGtCQUFrQixFQUNyQjtFQUlMO0lBRVEsZ0NBQW1CO1FBQW5CLG1CQUFtQjtJQUNuQixrQkFBa0IsRUFDckI7RUFHTDtJQUVRLGVBQWU7SUFDZixvQkFBb0I7SUFDcEIscUJBQXFCLEVBQ3hCO0VBR0w7SUFDSSxpQkFBaUIsRUFDcEI7RUFFRDtJQUNJLGtCQUFrQixFQUNyQjtFQUVEO0lBQ0ksbUJBQW1CLEVBQ3RCO0VBRUQ7O0lBR1EsaUJBQWlCLEVBQ3BCO0VBSkw7SUFPUSxpQkFBaUIsRUFDcEI7RUFSTDtJQVdRLGtCQUFrQixFQUNyQjtFQVpMO0lBZVEsbUJBQW1CLEVBQ3RCO0VBR0w7SUFFUSxRQUFRLEVBQ1g7RUFHTDtJQUVRLG9CQUFvQixFQUN2QjtFQUdMLGFBQWE7RUFDYjtJQUVRLGtCQUFrQjtJQUNsQixtQkFBbUIsRUFNdEI7SUFUTDs7TUFPWSxrQkFBa0IsRUFDckI7RUFJVCxlQUFlO0VBQ2Y7SUFDSSxXQUFXLEVBQ2Q7RUFFRDtJQUlZLHFCQUErQixFQUNsQztFQUxUO0lBUVksbUJBQTZCLEVBQ2hDO0VBVFQ7SUFZWSxzQkFBc0I7SUFDdEIsbUJBQW1CO0lBQ25CLFVBQVUsRUFDYjtFQWZUO0lBa0JZLHNCQUFzQjtJQUN0QixpQ0FBZ0M7SUFDaEMsVUFBVSxFQUNiO0VBckJUO0lBMEJRLHNCQUFzQixFQUN6QjtFQUlMLDRCQUE0QjtFQUM1Qjs7SUFJUSxzQkFBc0I7SUFDdEIsbUJBQW1CLEVBNEJ0QjtJQWpDTDs7TUFRWSxtQkFBbUI7TUFDbkIsc0JBQXNCLEVBTXpCO01BZlQ7O1FQellBLG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osU0FBUztRQUNULFlBQVk7UUFDWixVQUFVO1FBQ1YsYUFBYTtRQUNiLDBCTzFDMEI7UUEwYlYsVUFBVSxFQUNiO0lBZGI7O01BbUJnQixtQkFBbUI7TUFDbkIsUUFBUTtNUGpheEIsMEJBQTBCLEVPbWFiO0lBdEJiOztNQTJCZ0IsWUFBWTtNQUNaLFFBQVE7TUFDUiwwQkExY1UsRUEyY2I7RUE5QmI7SUFvQ1Esc0JBQXNCLEVBaUJ6QjtJQXJETDtNQXlDb0IsWUFBWSxFQUNmO0lBMUNqQjtNQWlEb0IsV0FBVyxFQUNkO0VBUWpCLFVBQVU7RUFDVjtJQUNJLGtEQUFnQixFQUVuQjtFQUVEO0lBQ0ksb0JBQW9CLEVBQ3ZCO0VBRUQ7SUFDSSxtQkFBbUIsRUFDdEI7RUFFRDs7SUFFSSxzQkFBc0IsRUFDekI7RUFFRDs7SUFFSSxvQkFBb0IsRUFDdkI7RUFFRCxtQ0FBbUM7RUFDbkM7SUFFUSxtQkFBbUIsRUFLdEI7SUFQTDtNQUtZLGdCQUFnQixFQUNuQjtFQU5UOztJQVdRLGNBQWMsRUFDakI7RUFaTDs7SUFnQlEsc0JBQXNCO0lBQ3RCLG1CQUFtQixFQTZCdEI7SUE5Q0w7O01Bb0JZLG1CQUFtQjtNQUNuQixnQkFBZ0I7TUFDaEIsY0FBYyxFQU1qQjtNQTVCVDs7UVA1ZEEsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixTQUFTO1FBQ1QsWUFBWTtRQUNaLFVBQVU7UUFDVixhQUFhO1FBQ2IsMEJPMUMwQjtRQTBoQlYsVUFBVSxFQUNiO0lBM0JiOztNQWdDZ0IsbUJBQW1CO01BQ25CLFFBQVE7TVBqZ0J4QiwwQkFBMEIsRU9tZ0JiO0lBbkNiOztNQXdDZ0IsWUFBWTtNQUNaLFFBQVE7TUFDUiwwQkExaUJVLEVBMmlCYjtFQTNDYjtJQWlEUSxZQUFZLEVBQ2Y7RUFsREw7SUFvRFEsYUFBYSxFQUNoQjtFQXJETDtJQXlEWSxZQUFZLEVBQ2Y7RUExRFQ7SUErRFksV0FBVyxFQUNkO0VBSVQsc0JBQXNCO0VBQ3RCO0lBRVEsbUJBQW1CLEVBQ3RCO0VBR0wsVUFBVTtFQUNWO0lBR1EseUJBQVc7SUFDWCxtQkFBbUIsRUFDdEI7RUFMTDtJQVNZLGtCQUFrQixFQUNyQjtFQVZUO0lBZVksa0JBQWtCLEVBQ3JCO0VBaEJUO0lBcUJZLFlBQVk7SUFDWixtQkFBbUIsRUFDdEI7RUF2QlQ7SUEyQmdCLGVBQWUsRUFDbEI7RUE1QmI7SUFpQ2dCLGVBQWUsRUFDbEI7RUFPYjtJQUNJLGtCQUFrQjtJQUNsQixxQkFBcUIsRUFDeEI7RUFFRCxzQkFBc0I7RUFDdEI7SUFHWSxpQkFBaUI7SUFDakIsa0JBQWtCLEVBS3JCO0lBVFQ7TUFPZ0IsY0FBYyxFQUNqQjtFQVJiO0lBYVEsaUJBQWlCLEVBQ3BCO0VBR0wsU0FBUztFQUNUO0lBQ0ksY0FBYyxFQUNqQjtFQUVELGFBQWE7RUFDYjtJQUNJLGNBQWMsRUFTakI7SUFWRDtNQUlRLFdBQVcsRUFDZDtJQUxMO01BUVEsVUFBVSxFQUNiO0VBR0w7SUFDSSxjQUFjLEVBQ2pCO0VBRUQ7O0lBRUksZUFBZTtJQUNmLGVBQWUsRUFDbEI7RUFDRDtJQUNJLFlBQVksRUFDZjtFQUNEO0lBQ0ksYUFBYSxFQUNoQjtFQUdEOztJQUVJLFlBQVk7SUFDWixVQUFVLEVBQ2I7RUFFRDtJQUNJLGFBQWEsRUFDaEI7RUFFRDs7SUFFSSxZQUFZO0lBQ1oseUJBQXlCLEVBQzVCO0VBRUQ7O0lBRUksb0JBQW9CO0lBQ3BCLG1CQUFtQixFQUN0QjtFQUVEO0lBQ0ksb0JBQW9CO0lBQ3BCLGtCQUFrQixFQUNyQjtFQUVEOzs7SUFHSSx3QkFBd0IsRUFDM0I7RUFFRDs7O0lBR0ksd0JBQXdCLEVBQzNCO0VBRUQ7SUFDSSxZQUFZO0lBQ1osc0JBQXNCO0lBQ3RCLHdCQUF3QixFQUMzQjtFQUVEO0lBQ0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0Qix3QkFBd0IsRUFDM0I7RUFFRDtJQUNJLFlBQVk7SUFDWixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLDRCQUFxQixFQUN4QjtFQUVEO0lBRVEsd0JBQXdCLEVBQzNCO0VBSEw7SUFNUSx3QkFBd0IsRUFDM0I7RUFHTCxxQkFBcUI7RUFFckI7SUFDSSxlQUFlLEVBQ2xCO0VBRUQ7SUFDSSxrQkFBa0IsRUFDckI7RUFFRDtJQUNJLGtCQUFrQixFQUNyQjtFQUVEO0lBQ0ksaUJBQWlCLEVBQ3BCO0VBRUQ7SUFDSSxrQkFBa0IsRUFDckI7RUFFRDtJQUNJLDBCQUEwQixFQUM3QjtFQUdEO0lBQ0ksa0JBQWtCLEVBQ3JCO0VBRUQ7SUFDSSxtQkFBbUIsRUFDdEI7RUFFRDtJQUNJLG1CQUFtQixFQUN0QixFQUFBOztBQUdMOztnRUFFZ0U7QUFDaEU7RUFDSTtJQUNJLGNBQWMsRUFDakI7RUFFRDtJQUVRLGtCQUFrQixFQUNyQjtFQUhMO0lBTVEscUJBQXFCLEVBQ3hCO0VBR0w7SUFDSSxvQkFBb0IsRUFDdkI7RUFFRDtJQUNJLG1CQUFtQixFQUN0QjtFQUVELFVBQVU7RUFDVjtJQUNJLGVBQWU7SUFDZixrQkFBa0IsRUFDckI7RUFFRCxTQUFTO0VBQ1Q7SUFDSSxjQUFjLEVBQ2pCLEVBQUE7O0FBR0w7O2dFQUVnRTtBQUNoRTtFQUNJO0lBQ0ksY0FBYyxFQUNqQjtFQUVEO0lBR1ksZ0NBQVc7SUFDWCxjQUFjO0lBQ2QsaUJBQWlCLEVBQ3BCO0VBTlQ7O0lBVVksVUFBVTtJQUNWLGFBQWEsRUFDaEI7RUFJVDtJQUVRLGNBQWMsRUFDakI7RUFITDs7SUFPUSxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLFVBQVU7SUFDVixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLFlBQVk7SUFDWixhQUFhO0lBQ2IsbUJBQW1CLEVBcUJ0QjtJQW5DTDs7TUFpQlksMEJBQWlCLEVBQ3BCO0lBbEJUOzs7O01Bc0JZLG1CQUFtQjtNQUNuQixZQUFZO01BQ1osV0FBVztNQUNYLGFBQWE7TUFDYixXQUFXO01BQ1gsVUFBVTtNQUNWLDJCQUEyQixFQUM5QjtJQTdCVDs7TUFnQ1ksVUFBVTtNQUNWLG9CQUFvQixFQUN2QjtFQWxDVDtJQXNDUSxvQkFBb0IsRUFhdkI7SUFuREw7TUEwQ2dCLFVBQVU7TUFDVixrQkFBa0IsRUFNckI7TUFqRGI7UUE4Q29CLGVBQWU7UUFDZixXQUFXLEVBQ2Q7RUFoRGpCO0lBdURZLFlBQVk7SUFDWixzQkFBc0IsRUFDekI7RUF6RFQ7SUE2RFEsa0JBQWtCLEVBQ3JCO0VBR0w7SUFDSSxtQkFBbUIsRUFDdEI7RUFFRDtJQUNJLG1CQUFtQixFQUN0QjtFQUVEO0lBQ0ksbUJBQW1CLEVBQ3RCLEVBQUE7O0FBSUw7O2dFQUVnRTtBQUNoRTtFQUNJO0lBQ0ksY0FBYyxFQUNqQixFQUFBOztBQUdMOzs7Z0VBR2dFO0FBQ2hFO0VBQ0k7SUFFUSxhQUFhLEVBQ2hCLEVBQUEiLCJmaWxlIjoic3R5bGVfdW5taW5pZmllZC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKiFcblRoZW1lIE5hbWU6IFF1c3EgTGl0ZVxuVGhlbWUgVVJJOiBodHRwczovL2lzaHlvYm95LmNvbS90aGVtZXMvcXVzcS1wcm8vXG5BdXRob3I6IElzaFlvQm95LmNvbVxuQXV0aG9yIFVSSTogaHR0cDovL2lzaHlvYm95LmNvbS9cbkRlc2NyaXB0aW9uOiBRdXNxIExpdGUgaXMgYSB1bmlxdWUgY29sb3VyZnVsIHBvcnRmb2xpbyB0aGVtZSwgcGVyZmVjdGx5IHN1aXRhYmxlIGZvciBkZXNpZ25lcnMsIGZyZWVsYW5jZXJzICYgYWxsIGtpbmQgb2YgYXJ0aXN0IHdobyB3YW50IHRvIHNob3cgb2ZmIHRoZWlyIGNyZWF0aXZlIHdvcmsgd2l0aCBzdHlsZS4gSXQgY292ZXJzIGFsbCB0aGUgbmVjZXNzYXJ5IHBhZ2VzIHN1Y2ggYSBwb3J0Zm9saW8gd2Vic2l0ZSBtaWdodCBuZWVkLlxuVmVyc2lvbjogMS4wLjJcbkxpY2Vuc2U6IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYyIG9yIGxhdGVyXG5MaWNlbnNlIFVSSTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0yLjAuaHRtbFxuVGV4dCBEb21haW46IHF1c3EtbGl0ZVxuVGFnczogdHdvLWNvbHVtbnMsIHJpZ2h0LXNpZGViYXIsIGdyaWQtbGF5b3V0LCBjdXN0b20tY29sb3JzLCBjdXN0b20tbWVudSwgZWRpdG9yLXN0eWxlLCBmZWF0dXJlZC1pbWFnZXMsIGZ1bGwtd2lkdGgtdGVtcGxhdGUsIHN0aWNreS1wb3N0LCB0aGVtZS1vcHRpb25zLCB0aHJlYWRlZC1jb21tZW50cywgdHJhbnNsYXRpb24tcmVhZHksIGJsb2csIHBob3RvZ3JhcGh5LCBwb3J0Zm9saW9cblxuVGhpcyB0aGVtZSwgbGlrZSBXb3JkUHJlc3MsIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuXG5Vc2UgaXQgdG8gbWFrZSBzb21ldGhpbmcgY29vbCwgaGF2ZSBmdW4sIGFuZCBzaGFyZSB3aGF0IHlvdSd2ZSBsZWFybmVkIHdpdGggb3RoZXJzLlxuXG5RdXNxIExpdGUgaXMgYmFzZWQgb24gVW5kZXJzY29yZXMgaHR0cDovL3VuZGVyc2NvcmVzLm1lLywgKEMpIDIwMTItMjAxNiBBdXRvbWF0dGljLCBJbmMuXG5VbmRlcnNjb3JlcyBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHUEwgdjIgb3IgbGF0ZXIuXG5cbk5vcm1hbGl6aW5nIHN0eWxlcyBoYXZlIGJlZW4gaGVscGVkIGFsb25nIHRoYW5rcyB0byB0aGUgZmluZSB3b3JrIG9mXG5OaWNvbGFzIEdhbGxhZ2hlciBhbmQgSm9uYXRoYW4gTmVhbCBodHRwOi8vbmVjb2xhcy5naXRodWIuY29tL25vcm1hbGl6ZS5jc3MvXG4qL1xuLyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIFRBQkxFIE9GIENPTlRFTlRTOlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBOb3JtYWxpemVcbiMgRmxleEJveCBHcmlkIFN5c3RlbVxuIyBCb2lsZXJwbGF0ZSBTdHlsZXNcblxuIyBNYWluIExheW91dFxuIyBTaG9ydGNvZGVzXG4jIEZvbnRzXG4jIEljb25zXG4jIENvbG9yc1xuIyBQb3J0Zm9saW9cbiMgQmxvZ1xuIyBMaWdodGJveFxuIyBKdXN0aWZpZWQgR2FsbGVyeVxuIyBNZWRpYSBRdWVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE5vcm1hbGl6ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qIS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgRmxleEJveCBHcmlkIFN5c3RlbVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmlzaC1jb250YWluZXItZmx1aWQsXG4uaXNoLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLmlzaC1jb250YWluZXItZmx1aWQge1xuICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07IH1cblxuLmlzaC1yb3cge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcbiAgLXdlYmtpdC1mbGV4OiAwIDEgYXV0bztcbiAgLW1zLWZsZXg6IDAgMSBhdXRvO1xuICBmbGV4OiAwIDEgYXV0bztcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7XG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41cmVtO1xuICBtYXJnaW4tbGVmdDogLTAuNXJlbTsgfVxuXG4uaXNoLXJvdy5pc2gtcmV2ZXJzZSB7XG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG5cbi5pc2gtY29sLmlzaC1yZXZlcnNlIHtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG5cbi5pc2gtY29sLXhzLFxuLmlzaC1jb2wteHMtMSxcbi5pc2gtY29sLXhzLTIsXG4uaXNoLWNvbC14cy0zLFxuLmlzaC1jb2wteHMtNCxcbi5pc2gtY29sLXhzLTUsXG4uaXNoLWNvbC14cy02LFxuLmlzaC1jb2wteHMtNyxcbi5pc2gtY29sLXhzLTgsXG4uaXNoLWNvbC14cy05LFxuLmlzaC1jb2wteHMtMTAsXG4uaXNoLWNvbC14cy0xMSxcbi5pc2gtY29sLXhzLTEyLFxuLmlzaC1jb2wteHMtb2Zmc2V0LTAsXG4uaXNoLWNvbC14cy1vZmZzZXQtMSxcbi5pc2gtY29sLXhzLW9mZnNldC0yLFxuLmlzaC1jb2wteHMtb2Zmc2V0LTMsXG4uaXNoLWNvbC14cy1vZmZzZXQtNCxcbi5pc2gtY29sLXhzLW9mZnNldC01LFxuLmlzaC1jb2wteHMtb2Zmc2V0LTYsXG4uaXNoLWNvbC14cy1vZmZzZXQtNyxcbi5pc2gtY29sLXhzLW9mZnNldC04LFxuLmlzaC1jb2wteHMtb2Zmc2V0LTksXG4uaXNoLWNvbC14cy1vZmZzZXQtMTAsXG4uaXNoLWNvbC14cy1vZmZzZXQtMTEsXG4uaXNoLWNvbC14cy1vZmZzZXQtMTIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1mbGV4OiAwO1xuICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvO1xuICAtbXMtZmxleDogMCAwIGF1dG87XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC41cmVtOyB9XG5cbi5pc2gtY29sLXhzIHtcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICBmbGV4LWdyb3c6IDE7XG4gIC13ZWJraXQtZmxleC1iYXNpczogMDtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDA7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4uaXNoLWNvbC14cy0xIHtcbiAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4LjMzMyU7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA4LjMzMyU7XG4gIGZsZXgtYmFzaXM6IDguMzMzJTtcbiAgbWF4LXdpZHRoOiA4LjMzMyU7IH1cblxuLmlzaC1jb2wteHMtMiB7XG4gIC13ZWJraXQtZmxleC1iYXNpczogMTYuNjY2JTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDE2LjY2NiU7XG4gIGZsZXgtYmFzaXM6IDE2LjY2NiU7XG4gIG1heC13aWR0aDogMTYuNjY2JTsgfVxuXG4uaXNoLWNvbC14cy0zIHtcbiAgLXdlYmtpdC1mbGV4LWJhc2lzOiAyNSU7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAyNSU7XG4gIGZsZXgtYmFzaXM6IDI1JTtcbiAgbWF4LXdpZHRoOiAyNSU7IH1cblxuLmlzaC1jb2wteHMtNCB7XG4gIC13ZWJraXQtZmxleC1iYXNpczogMzMuMzMzJTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDMzLjMzMyU7XG4gIGZsZXgtYmFzaXM6IDMzLjMzMyU7XG4gIG1heC13aWR0aDogMzMuMzMzJTsgfVxuXG4uaXNoLWNvbC14cy01IHtcbiAgLXdlYmtpdC1mbGV4LWJhc2lzOiA0MS42NjclO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNDEuNjY3JTtcbiAgZmxleC1iYXNpczogNDEuNjY3JTtcbiAgbWF4LXdpZHRoOiA0MS42NjclOyB9XG5cbi5pc2gtY29sLXhzLTYge1xuICAtd2Via2l0LWZsZXgtYmFzaXM6IDUwJTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDUwJTtcbiAgZmxleC1iYXNpczogNTAlO1xuICBtYXgtd2lkdGg6IDUwJTsgfVxuXG4uaXNoLWNvbC14cy03IHtcbiAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1OC4zMzMlO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNTguMzMzJTtcbiAgZmxleC1iYXNpczogNTguMzMzJTtcbiAgbWF4LXdpZHRoOiA1OC4zMzMlOyB9XG5cbi5pc2gtY29sLXhzLTgge1xuICAtd2Via2l0LWZsZXgtYmFzaXM6IDY2LjY2NyU7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA2Ni42NjclO1xuICBmbGV4LWJhc2lzOiA2Ni42NjclO1xuICBtYXgtd2lkdGg6IDY2LjY2NyU7IH1cblxuLmlzaC1jb2wteHMtOSB7XG4gIC13ZWJraXQtZmxleC1iYXNpczogNzUlO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNzUlO1xuICBmbGV4LWJhc2lzOiA3NSU7XG4gIG1heC13aWR0aDogNzUlOyB9XG5cbi5pc2gtY29sLXhzLTEwIHtcbiAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4My4zMzMlO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogODMuMzMzJTtcbiAgZmxleC1iYXNpczogODMuMzMzJTtcbiAgbWF4LXdpZHRoOiA4My4zMzMlOyB9XG5cbi5pc2gtY29sLXhzLTExIHtcbiAgLXdlYmtpdC1mbGV4LWJhc2lzOiA5MS42NjclO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogOTEuNjY3JTtcbiAgZmxleC1iYXNpczogOTEuNjY3JTtcbiAgbWF4LXdpZHRoOiA5MS42NjclOyB9XG5cbi5pc2gtY29sLXhzLTEyIHtcbiAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTAwJTtcbiAgZmxleC1iYXNpczogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5pc2gtY29sLXhzLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMlOyB9XG5cbi5pc2gtY29sLXhzLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NiU7IH1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi5pc2gtY29sLXhzLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMyU7IH1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY3JTsgfVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLmlzaC1jb2wteHMtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzJTsgfVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjclOyB9XG5cbi5pc2gtY29sLXhzLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzJTsgfVxuXG4uaXNoLWNvbC14cy1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY3JTsgfVxuXG4uaXNoLXN0YXJ0LXhzIHtcbiAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAtbXMtZmxleC1wYWNrOiBzdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB0ZXh0LWFsaWduOiBzdGFydDsgfVxuXG4uaXNoLWNlbnRlci14cyB7XG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5pc2gtZW5kLXhzIHtcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgdGV4dC1hbGlnbjogZW5kOyB9XG5cbi5pc2gtdG9wLXhzIHtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5pc2gtbWlkZGxlLXhzIHtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5pc2gtYm90dG9tLXhzIHtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIC1tcy1mbGV4LWFsaWduOiBlbmQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4uaXNoLWFyb3VuZC14cyB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi5pc2gtYmV0d2Vlbi14cyB7XG4gIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLmlzaC1maXJzdC14cyB7XG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDA7XG4gIC13ZWJraXQtb3JkZXI6IC0xO1xuICAtbXMtZmxleC1vcmRlcjogLTE7XG4gIG9yZGVyOiAtMTsgfVxuXG4uaXNoLWxhc3QteHMge1xuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyO1xuICAtd2Via2l0LW9yZGVyOiAxO1xuICAtbXMtZmxleC1vcmRlcjogMTtcbiAgb3JkZXI6IDE7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5pc2gtY29udGFpbmVyIHtcbiAgICB3aWR0aDogNDlyZW07IH1cbiAgLmlzaC1jb2wtc20sXG4gIC5pc2gtY29sLXNtLTEsXG4gIC5pc2gtY29sLXNtLTIsXG4gIC5pc2gtY29sLXNtLTMsXG4gIC5pc2gtY29sLXNtLTQsXG4gIC5pc2gtY29sLXNtLTUsXG4gIC5pc2gtY29sLXNtLTYsXG4gIC5pc2gtY29sLXNtLTcsXG4gIC5pc2gtY29sLXNtLTgsXG4gIC5pc2gtY29sLXNtLTksXG4gIC5pc2gtY29sLXNtLTEwLFxuICAuaXNoLWNvbC1zbS0xMSxcbiAgLmlzaC1jb2wtc20tMTIsXG4gIC5pc2gtY29sLXNtLW9mZnNldC0wLFxuICAuaXNoLWNvbC1zbS1vZmZzZXQtMSxcbiAgLmlzaC1jb2wtc20tb2Zmc2V0LTIsXG4gIC5pc2gtY29sLXNtLW9mZnNldC0zLFxuICAuaXNoLWNvbC1zbS1vZmZzZXQtNCxcbiAgLmlzaC1jb2wtc20tb2Zmc2V0LTUsXG4gIC5pc2gtY29sLXNtLW9mZnNldC02LFxuICAuaXNoLWNvbC1zbS1vZmZzZXQtNyxcbiAgLmlzaC1jb2wtc20tb2Zmc2V0LTgsXG4gIC5pc2gtY29sLXNtLW9mZnNldC05LFxuICAuaXNoLWNvbC1zbS1vZmZzZXQtMTAsXG4gIC5pc2gtY29sLXNtLW9mZnNldC0xMSxcbiAgLmlzaC1jb2wtc20tb2Zmc2V0LTEyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bztcbiAgICAtbXMtZmxleDogMCAwIGF1dG87XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtOyB9XG4gIC5pc2gtY29sLXNtIHtcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xuICAgIC13ZWJraXQtZmxleC1ncm93OiAxO1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDA7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDA7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmlzaC1jb2wtc20tMSB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDguMzMzJTtcbiAgICBmbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMyU7IH1cbiAgLmlzaC1jb2wtc20tMiB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxNi42NjYlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxNi42NjYlO1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NiU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjYlOyB9XG4gIC5pc2gtY29sLXNtLTMge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMjUlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAyNSU7XG4gICAgZmxleC1iYXNpczogMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5pc2gtY29sLXNtLTQge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMzMuMzMzJTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMzMuMzMzJTtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzJTsgfVxuICAuaXNoLWNvbC1zbS01IHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDQxLjY2NyU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDQxLjY2NyU7XG4gICAgZmxleC1iYXNpczogNDEuNjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NyU7IH1cbiAgLmlzaC1jb2wtc20tNiB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1MCU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDUwJTtcbiAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLmlzaC1jb2wtc20tNyB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1OC4zMzMlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA1OC4zMzMlO1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMlOyB9XG4gIC5pc2gtY29sLXNtLTgge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogNjYuNjY3JTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNjYuNjY3JTtcbiAgICBmbGV4LWJhc2lzOiA2Ni42NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY3JTsgfVxuICAuaXNoLWNvbC1zbS05IHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDc1JTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNzUlO1xuICAgIGZsZXgtYmFzaXM6IDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAuaXNoLWNvbC1zbS0xMCB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4My4zMzMlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA4My4zMzMlO1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMlOyB9XG4gIC5pc2gtY29sLXNtLTExIHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDkxLjY2NyU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDkxLjY2NyU7XG4gICAgZmxleC1iYXNpczogOTEuNjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NyU7IH1cbiAgLmlzaC1jb2wtc20tMTIge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMTAwJTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTAwJTtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAuaXNoLWNvbC1zbS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmlzaC1jb2wtc20tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMyU7IH1cbiAgLmlzaC1jb2wtc20tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjYlOyB9XG4gIC5pc2gtY29sLXNtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5pc2gtY29sLXNtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzJTsgfVxuICAuaXNoLWNvbC1zbS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NyU7IH1cbiAgLmlzaC1jb2wtc20tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLmlzaC1jb2wtc20tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMlOyB9XG4gIC5pc2gtY29sLXNtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY3JTsgfVxuICAuaXNoLWNvbC1zbS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAuaXNoLWNvbC1zbS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMlOyB9XG4gIC5pc2gtY29sLXNtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NyU7IH1cbiAgLmlzaC1zdGFydC1zbSB7XG4gICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtYWxpZ246IHN0YXJ0OyB9XG4gIC5pc2gtY2VudGVyLXNtIHtcbiAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5pc2gtZW5kLXNtIHtcbiAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHRleHQtYWxpZ246IGVuZDsgfVxuICAuaXNoLXRvcC1zbSB7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC5pc2gtbWlkZGxlLXNtIHtcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmlzaC1ib3R0b20tc20ge1xuICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLmlzaC1hcm91bmQtc20ge1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuICAuaXNoLWJldHdlZW4tc20ge1xuICAgIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLmlzaC1maXJzdC1zbSB7XG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMDtcbiAgICAtd2Via2l0LW9yZGVyOiAtMTtcbiAgICAtbXMtZmxleC1vcmRlcjogLTE7XG4gICAgb3JkZXI6IC0xOyB9XG4gIC5pc2gtbGFzdC1zbSB7XG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcbiAgICAtd2Via2l0LW9yZGVyOiAxO1xuICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xuICAgIG9yZGVyOiAxOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5pc2gtY29udGFpbmVyIHtcbiAgICB3aWR0aDogNjVyZW07IH1cbiAgLmlzaC1jb2wtbWQsXG4gIC5pc2gtY29sLW1kLTEsXG4gIC5pc2gtY29sLW1kLTIsXG4gIC5pc2gtY29sLW1kLTMsXG4gIC5pc2gtY29sLW1kLTQsXG4gIC5pc2gtY29sLW1kLTUsXG4gIC5pc2gtY29sLW1kLTYsXG4gIC5pc2gtY29sLW1kLTcsXG4gIC5pc2gtY29sLW1kLTgsXG4gIC5pc2gtY29sLW1kLTksXG4gIC5pc2gtY29sLW1kLTEwLFxuICAuaXNoLWNvbC1tZC0xMSxcbiAgLmlzaC1jb2wtbWQtMTIsXG4gIC5pc2gtY29sLW1kLW9mZnNldC0wLFxuICAuaXNoLWNvbC1tZC1vZmZzZXQtMSxcbiAgLmlzaC1jb2wtbWQtb2Zmc2V0LTIsXG4gIC5pc2gtY29sLW1kLW9mZnNldC0zLFxuICAuaXNoLWNvbC1tZC1vZmZzZXQtNCxcbiAgLmlzaC1jb2wtbWQtb2Zmc2V0LTUsXG4gIC5pc2gtY29sLW1kLW9mZnNldC02LFxuICAuaXNoLWNvbC1tZC1vZmZzZXQtNyxcbiAgLmlzaC1jb2wtbWQtb2Zmc2V0LTgsXG4gIC5pc2gtY29sLW1kLW9mZnNldC05LFxuICAuaXNoLWNvbC1tZC1vZmZzZXQtMTAsXG4gIC5pc2gtY29sLW1kLW9mZnNldC0xMSxcbiAgLmlzaC1jb2wtbWQtb2Zmc2V0LTEyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bztcbiAgICAtbXMtZmxleDogMCAwIGF1dG87XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtOyB9XG4gIC5pc2gtY29sLW1kIHtcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xuICAgIC13ZWJraXQtZmxleC1ncm93OiAxO1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDA7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDA7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmlzaC1jb2wtbWQtMSB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDguMzMzJTtcbiAgICBmbGV4LWJhc2lzOiA4LjMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMyU7IH1cbiAgLmlzaC1jb2wtbWQtMiB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxNi42NjYlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxNi42NjYlO1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NiU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjYlOyB9XG4gIC5pc2gtY29sLW1kLTMge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMjUlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAyNSU7XG4gICAgZmxleC1iYXNpczogMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5pc2gtY29sLW1kLTQge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMzMuMzMzJTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMzMuMzMzJTtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzJTsgfVxuICAuaXNoLWNvbC1tZC01IHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDQxLjY2NyU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDQxLjY2NyU7XG4gICAgZmxleC1iYXNpczogNDEuNjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NyU7IH1cbiAgLmlzaC1jb2wtbWQtNiB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1MCU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDUwJTtcbiAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLmlzaC1jb2wtbWQtNyB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA1OC4zMzMlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA1OC4zMzMlO1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMlOyB9XG4gIC5pc2gtY29sLW1kLTgge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogNjYuNjY3JTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNjYuNjY3JTtcbiAgICBmbGV4LWJhc2lzOiA2Ni42NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY3JTsgfVxuICAuaXNoLWNvbC1tZC05IHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDc1JTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogNzUlO1xuICAgIGZsZXgtYmFzaXM6IDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAuaXNoLWNvbC1tZC0xMCB7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiA4My4zMzMlO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiA4My4zMzMlO1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMlOyB9XG4gIC5pc2gtY29sLW1kLTExIHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDkxLjY2NyU7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDkxLjY2NyU7XG4gICAgZmxleC1iYXNpczogOTEuNjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NyU7IH1cbiAgLmlzaC1jb2wtbWQtMTIge1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogMTAwJTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTAwJTtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAuaXNoLWNvbC1tZC1vZmZzZ