Difference between revisions of "Template:BOKU-Vienna/js/wiki"

Line 846: Line 846:
 
     $(function () {
 
     $(function () {
 
         $('[data-toggle="tooltip"]').tooltip()
 
         $('[data-toggle="tooltip"]').tooltip()
     })
+
     });
 +
 
 +
    // Instantiate the Bootstrap carousel
 +
    $('#theCarousel').carousel({
 +
        interval: false
 +
    });
 +
 
 +
// for every slide in carousel, copy the next slide's item in the slide.
 +
// Do the same for the next, next item.
 +
    $('#theCarousel .item').each(function(){
 +
        var next = $(this).next();
 +
        if (!next.length) {
 +
            next = $(this).siblings(':first');
 +
        }
 +
        next.children(':first-child').clone().appendTo($(this));
 +
 
 +
        if (next.next().length>0) {
 +
            next.next().children(':first-child').clone().appendTo($(this));
 +
        } else {
 +
            $(this).siblings(':first').children(':first-child').clone().appendTo($(this));
 +
        }
 +
    });
  
 
});
 
});
Line 8,707: Line 8,728:
 
});
 
});
 
$(function(){$(".scroll").click(function(){$("html,body").animate({scrollTop:$("#top").offset().top},"1000");return false})});
 
$(function(){$(".scroll").click(function(){$("html,body").animate({scrollTop:$("#top").offset().top},"1000");return false})});
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwb3BwZXIubWluLmpzIiwiYm9vdHN0cmFwLm1pbi5qcyIsImQzLm1pbi5qcyIsImVra28tbGlnaHRib3guanMiLCJmb290ZXItaGVhZGVyLXRlbXBsYXRlLmpzIiwiaW1hZ2UtZ2FsbGVyeS5qcyIsImluZGV4LmpzIiwibGFuZGluZy5qcyIsIm1vZGVsLmpzIiwibmF2bGluZS5qcyIsInNjcm9sbHNlbnNpdGl2ZS5qcyIsInNtb290aHNjcm9sbGJhci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNOQTtBQUNBO0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDNXBCQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNwSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMvalBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQy9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJ3aWtpLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuIENvcHlyaWdodCAoQykgRmVkZXJpY28gWml2b2xvIDIwMThcclxuIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAobGljZW5zZSB0ZXJtcyBhcmUgYXQgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuXHJcbiAqLyhmdW5jdGlvbihlLHQpeydvYmplY3QnPT10eXBlb2YgZXhwb3J0cyYmJ3VuZGVmaW5lZCchPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOidmdW5jdGlvbic9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOmUuUG9wcGVyPXQoKX0pKHRoaXMsZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZSYmJ1tvYmplY3QgRnVuY3Rpb25dJz09PXt9LnRvU3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24gdChlLHQpe2lmKDEhPT1lLm5vZGVUeXBlKXJldHVybltdO3ZhciBvPWdldENvbXB1dGVkU3R5bGUoZSxudWxsKTtyZXR1cm4gdD9vW3RdOm99ZnVuY3Rpb24gbyhlKXtyZXR1cm4nSFRNTCc9PT1lLm5vZGVOYW1lP2U6ZS5wYXJlbnROb2RlfHxlLmhvc3R9ZnVuY3Rpb24gbihlKXtpZighZSlyZXR1cm4gZG9jdW1lbnQuYm9keTtzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZSdIVE1MJzpjYXNlJ0JPRFknOnJldHVybiBlLm93bmVyRG9jdW1lbnQuYm9keTtjYXNlJyNkb2N1bWVudCc6cmV0dXJuIGUuYm9keTt9dmFyIGk9dChlKSxyPWkub3ZlcmZsb3cscD1pLm92ZXJmbG93WCxzPWkub3ZlcmZsb3dZO3JldHVybiAvKGF1dG98c2Nyb2xsfG92ZXJsYXkpLy50ZXN0KHIrcytwKT9lOm4obyhlKSl9ZnVuY3Rpb24gcihlKXtyZXR1cm4gMTE9PT1lP3JlOjEwPT09ZT9wZTpyZXx8cGV9ZnVuY3Rpb24gcChlKXtpZighZSlyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Zvcih2YXIgbz1yKDEwKT9kb2N1bWVudC5ib2R5Om51bGwsbj1lLm9mZnNldFBhcmVudDtuPT09byYmZS5uZXh0RWxlbWVudFNpYmxpbmc7KW49KGU9ZS5uZXh0RWxlbWVudFNpYmxpbmcpLm9mZnNldFBhcmVudDt2YXIgaT1uJiZuLm5vZGVOYW1lO3JldHVybiBpJiYnQk9EWSchPT1pJiYnSFRNTCchPT1pPy0xIT09WydURCcsJ1RBQkxFJ10uaW5kZXhPZihuLm5vZGVOYW1lKSYmJ3N0YXRpYyc9PT10KG4sJ3Bvc2l0aW9uJyk/cChuKTpuOmU/ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gcyhlKXt2YXIgdD1lLm5vZGVOYW1lO3JldHVybidCT0RZJyE9PXQmJignSFRNTCc9PT10fHxwKGUuZmlyc3RFbGVtZW50Q2hpbGQpPT09ZSl9ZnVuY3Rpb24gZChlKXtyZXR1cm4gbnVsbD09PWUucGFyZW50Tm9kZT9lOmQoZS5wYXJlbnROb2RlKX1mdW5jdGlvbiBhKGUsdCl7aWYoIWV8fCFlLm5vZGVUeXBlfHwhdHx8IXQubm9kZVR5cGUpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDt2YXIgbz1lLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HLG49bz9lOnQsaT1vP3Q6ZSxyPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ci5zZXRTdGFydChuLDApLHIuc2V0RW5kKGksMCk7dmFyIGw9ci5jb21tb25BbmNlc3RvckNvbnRhaW5lcjtpZihlIT09bCYmdCE9PWx8fG4uY29udGFpbnMoaSkpcmV0dXJuIHMobCk/bDpwKGwpO3ZhciBmPWQoZSk7cmV0dXJuIGYuaG9zdD9hKGYuaG9zdCx0KTphKGUsZCh0KS5ob3N0KX1mdW5jdGlvbiBsKGUpe3ZhciB0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTondG9wJyxvPSd0b3AnPT09dD8nc2Nyb2xsVG9wJzonc2Nyb2xsTGVmdCcsbj1lLm5vZGVOYW1lO2lmKCdCT0RZJz09PW58fCdIVE1MJz09PW4pe3ZhciBpPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQscj1lLm93bmVyRG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudHx8aTtyZXR1cm4gcltvXX1yZXR1cm4gZVtvXX1mdW5jdGlvbiBmKGUsdCl7dmFyIG89Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxuPWwodCwndG9wJyksaT1sKHQsJ2xlZnQnKSxyPW8/LTE6MTtyZXR1cm4gZS50b3ArPW4qcixlLmJvdHRvbSs9bipyLGUubGVmdCs9aSpyLGUucmlnaHQrPWkqcixlfWZ1bmN0aW9uIG0oZSx0KXt2YXIgbz0neCc9PT10PydMZWZ0JzonVG9wJyxuPSdMZWZ0Jz09bz8nUmlnaHQnOidCb3R0b20nO3JldHVybiBwYXJzZUZsb2F0KGVbJ2JvcmRlcicrbysnV2lkdGgnXSwxMCkrcGFyc2VGbG9hdChlWydib3JkZXInK24rJ1dpZHRoJ10sMTApfWZ1bmN0aW9uIGgoZSx0LG8sbil7cmV0dXJuIEoodFsnb2Zmc2V0JytlXSx0WydzY3JvbGwnK2VdLG9bJ2NsaWVudCcrZV0sb1snb2Zmc2V0JytlXSxvWydzY3JvbGwnK2VdLHIoMTApP3BhcnNlSW50KG9bJ29mZnNldCcrZV0pK3BhcnNlSW50KG5bJ21hcmdpbicrKCdIZWlnaHQnPT09ZT8nVG9wJzonTGVmdCcpXSkrcGFyc2VJbnQoblsnbWFyZ2luJysoJ0hlaWdodCc9PT1lPydCb3R0b20nOidSaWdodCcpXSk6MCl9ZnVuY3Rpb24gYyhlKXt2YXIgdD1lLmJvZHksbz1lLmRvY3VtZW50RWxlbWVudCxuPXIoMTApJiZnZXRDb21wdXRlZFN0eWxlKG8pO3JldHVybntoZWlnaHQ6aCgnSGVpZ2h0Jyx0LG8sbiksd2lkdGg6aCgnV2lkdGgnLHQsbyxuKX19ZnVuY3Rpb24gZyhlKXtyZXR1cm4gbGUoe30sZSx7cmlnaHQ6ZS5sZWZ0K2Uud2lkdGgsYm90dG9tOmUudG9wK2UuaGVpZ2h0fSl9ZnVuY3Rpb24gdShlKXt2YXIgbz17fTt0cnl7aWYocigxMCkpe289ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgbj1sKGUsJ3RvcCcpLGk9bChlLCdsZWZ0Jyk7by50b3ArPW4sby5sZWZ0Kz1pLG8uYm90dG9tKz1uLG8ucmlnaHQrPWl9ZWxzZSBvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y2F0Y2godCl7fXZhciBwPXtsZWZ0Om8ubGVmdCx0b3A6by50b3Asd2lkdGg6by5yaWdodC1vLmxlZnQsaGVpZ2h0Om8uYm90dG9tLW8udG9wfSxzPSdIVE1MJz09PWUubm9kZU5hbWU/YyhlLm93bmVyRG9jdW1lbnQpOnt9LGQ9cy53aWR0aHx8ZS5jbGllbnRXaWR0aHx8cC5yaWdodC1wLmxlZnQsYT1zLmhlaWdodHx8ZS5jbGllbnRIZWlnaHR8fHAuYm90dG9tLXAudG9wLGY9ZS5vZmZzZXRXaWR0aC1kLGg9ZS5vZmZzZXRIZWlnaHQtYTtpZihmfHxoKXt2YXIgdT10KGUpO2YtPW0odSwneCcpLGgtPW0odSwneScpLHAud2lkdGgtPWYscC5oZWlnaHQtPWh9cmV0dXJuIGcocCl9ZnVuY3Rpb24gYihlLG8pe3ZhciBpPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0scD1yKDEwKSxzPSdIVE1MJz09PW8ubm9kZU5hbWUsZD11KGUpLGE9dShvKSxsPW4oZSksbT10KG8pLGg9cGFyc2VGbG9hdChtLmJvcmRlclRvcFdpZHRoLDEwKSxjPXBhcnNlRmxvYXQobS5ib3JkZXJMZWZ0V2lkdGgsMTApO2kmJnMmJihhLnRvcD1KKGEudG9wLDApLGEubGVmdD1KKGEubGVmdCwwKSk7dmFyIGI9Zyh7dG9wOmQudG9wLWEudG9wLWgsbGVmdDpkLmxlZnQtYS5sZWZ0LWMsd2lkdGg6ZC53aWR0aCxoZWlnaHQ6ZC5oZWlnaHR9KTtpZihiLm1hcmdpblRvcD0wLGIubWFyZ2luTGVmdD0wLCFwJiZzKXt2YXIgeT1wYXJzZUZsb2F0KG0ubWFyZ2luVG9wLDEwKSx3PXBhcnNlRmxvYXQobS5tYXJnaW5MZWZ0LDEwKTtiLnRvcC09aC15LGIuYm90dG9tLT1oLXksYi5sZWZ0LT1jLXcsYi5yaWdodC09Yy13LGIubWFyZ2luVG9wPXksYi5tYXJnaW5MZWZ0PXd9cmV0dXJuKHAmJiFpP28uY29udGFpbnMobCk6bz09PWwmJidCT0RZJyE9PWwubm9kZU5hbWUpJiYoYj1mKGIsbykpLGJ9ZnVuY3Rpb24geShlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG89ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPWIoZSxvKSxpPUooby5jbGllbnRXaWR0aCx3aW5kb3cuaW5uZXJXaWR0aHx8MCkscj1KKG8uY2xpZW50SGVpZ2h0LHdpbmRvdy5pbm5lckhlaWdodHx8MCkscD10PzA6bChvKSxzPXQ/MDpsKG8sJ2xlZnQnKSxkPXt0b3A6cC1uLnRvcCtuLm1hcmdpblRvcCxsZWZ0OnMtbi5sZWZ0K24ubWFyZ2luTGVmdCx3aWR0aDppLGhlaWdodDpyfTtyZXR1cm4gZyhkKX1mdW5jdGlvbiB3KGUpe3ZhciBuPWUubm9kZU5hbWU7cmV0dXJuJ0JPRFknPT09bnx8J0hUTUwnPT09bj8hMTonZml4ZWQnPT09dChlLCdwb3NpdGlvbicpfHx3KG8oZSkpfWZ1bmN0aW9uIEUoZSl7aWYoIWV8fCFlLnBhcmVudEVsZW1lbnR8fHIoKSlyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Zvcih2YXIgbz1lLnBhcmVudEVsZW1lbnQ7byYmJ25vbmUnPT09dChvLCd0cmFuc2Zvcm0nKTspbz1vLnBhcmVudEVsZW1lbnQ7cmV0dXJuIG98fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiB2KGUsdCxpLHIpe3ZhciBwPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzRdJiZhcmd1bWVudHNbNF0scz17dG9wOjAsbGVmdDowfSxkPXA/RShlKTphKGUsdCk7aWYoJ3ZpZXdwb3J0Jz09PXIpcz15KGQscCk7ZWxzZXt2YXIgbDsnc2Nyb2xsUGFyZW50Jz09PXI/KGw9bihvKHQpKSwnQk9EWSc9PT1sLm5vZGVOYW1lJiYobD1lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSk6J3dpbmRvdyc9PT1yP2w9ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDpsPXI7dmFyIGY9YihsLGQscCk7aWYoJ0hUTUwnPT09bC5ub2RlTmFtZSYmIXcoZCkpe3ZhciBtPWMoZS5vd25lckRvY3VtZW50KSxoPW0uaGVpZ2h0LGc9bS53aWR0aDtzLnRvcCs9Zi50b3AtZi5tYXJnaW5Ub3Ascy5ib3R0b209aCtmLnRvcCxzLmxlZnQrPWYubGVmdC1mLm1hcmdpbkxlZnQscy5yaWdodD1nK2YubGVmdH1lbHNlIHM9Zn1pPWl8fDA7dmFyIHU9J251bWJlcic9PXR5cGVvZiBpO3JldHVybiBzLmxlZnQrPXU/aTppLmxlZnR8fDAscy50b3ArPXU/aTppLnRvcHx8MCxzLnJpZ2h0LT11P2k6aS5yaWdodHx8MCxzLmJvdHRvbS09dT9pOmkuYm90dG9tfHwwLHN9ZnVuY3Rpb24geChlKXt2YXIgdD1lLndpZHRoLG89ZS5oZWlnaHQ7cmV0dXJuIHQqb31mdW5jdGlvbiBPKGUsdCxvLG4saSl7dmFyIHI9NTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0/YXJndW1lbnRzWzVdOjA7aWYoLTE9PT1lLmluZGV4T2YoJ2F1dG8nKSlyZXR1cm4gZTt2YXIgcD12KG8sbixyLGkpLHM9e3RvcDp7d2lkdGg6cC53aWR0aCxoZWlnaHQ6dC50b3AtcC50b3B9LHJpZ2h0Ont3aWR0aDpwLnJpZ2h0LXQucmlnaHQsaGVpZ2h0OnAuaGVpZ2h0fSxib3R0b206e3dpZHRoOnAud2lkdGgsaGVpZ2h0OnAuYm90dG9tLXQuYm90dG9tfSxsZWZ0Ont3aWR0aDp0LmxlZnQtcC5sZWZ0LGhlaWdodDpwLmhlaWdodH19LGQ9T2JqZWN0LmtleXMocykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBsZSh7a2V5OmV9LHNbZV0se2FyZWE6eChzW2VdKX0pfSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiB0LmFyZWEtZS5hcmVhfSksYT1kLmZpbHRlcihmdW5jdGlvbihlKXt2YXIgdD1lLndpZHRoLG49ZS5oZWlnaHQ7cmV0dXJuIHQ+PW8uY2xpZW50V2lkdGgmJm4+PW8uY2xpZW50SGVpZ2h0fSksbD0wPGEubGVuZ3RoP2FbMF0ua2V5OmRbMF0ua2V5LGY9ZS5zcGxpdCgnLScpWzFdO3JldHVybiBsKyhmPyctJytmOicnKX1mdW5jdGlvbiBMKGUsdCxvKXt2YXIgbj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbCxpPW4/RSh0KTphKHQsbyk7cmV0dXJuIGIobyxpLG4pfWZ1bmN0aW9uIFMoZSl7dmFyIHQ9Z2V0Q29tcHV0ZWRTdHlsZShlKSxvPXBhcnNlRmxvYXQodC5tYXJnaW5Ub3ApK3BhcnNlRmxvYXQodC5tYXJnaW5Cb3R0b20pLG49cGFyc2VGbG9hdCh0Lm1hcmdpbkxlZnQpK3BhcnNlRmxvYXQodC5tYXJnaW5SaWdodCksaT17d2lkdGg6ZS5vZmZzZXRXaWR0aCtuLGhlaWdodDplLm9mZnNldEhlaWdodCtvfTtyZXR1cm4gaX1mdW5jdGlvbiBUKGUpe3ZhciB0PXtsZWZ0OidyaWdodCcscmlnaHQ6J2xlZnQnLGJvdHRvbTondG9wJyx0b3A6J2JvdHRvbSd9O3JldHVybiBlLnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSl9ZnVuY3Rpb24gRChlLHQsbyl7bz1vLnNwbGl0KCctJylbMF07dmFyIG49UyhlKSxpPXt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodH0scj0tMSE9PVsncmlnaHQnLCdsZWZ0J10uaW5kZXhPZihvKSxwPXI/J3RvcCc6J2xlZnQnLHM9cj8nbGVmdCc6J3RvcCcsZD1yPydoZWlnaHQnOid3aWR0aCcsYT1yPyd3aWR0aCc6J2hlaWdodCc7cmV0dXJuIGlbcF09dFtwXSt0W2RdLzItbltkXS8yLGlbc109bz09PXM/dFtzXS1uW2FdOnRbVChzKV0saX1mdW5jdGlvbiBDKGUsdCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maW5kP2UuZmluZCh0KTplLmZpbHRlcih0KVswXX1mdW5jdGlvbiBOKGUsdCxvKXtpZihBcnJheS5wcm90b3R5cGUuZmluZEluZGV4KXJldHVybiBlLmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XT09PW99KTt2YXIgbj1DKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF09PT1vfSk7cmV0dXJuIGUuaW5kZXhPZihuKX1mdW5jdGlvbiBQKHQsbyxuKXt2YXIgaT12b2lkIDA9PT1uP3Q6dC5zbGljZSgwLE4odCwnbmFtZScsbikpO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24odCl7dFsnZnVuY3Rpb24nXSYmY29uc29sZS53YXJuKCdgbW9kaWZpZXIuZnVuY3Rpb25gIGlzIGRlcHJlY2F0ZWQsIHVzZSBgbW9kaWZpZXIuZm5gIScpO3ZhciBuPXRbJ2Z1bmN0aW9uJ118fHQuZm47dC5lbmFibGVkJiZlKG4pJiYoby5vZmZzZXRzLnBvcHBlcj1nKG8ub2Zmc2V0cy5wb3BwZXIpLG8ub2Zmc2V0cy5yZWZlcmVuY2U9ZyhvLm9mZnNldHMucmVmZXJlbmNlKSxvPW4obyx0KSl9KSxvfWZ1bmN0aW9uIGsoKXtpZighdGhpcy5zdGF0ZS5pc0Rlc3Ryb3llZCl7dmFyIGU9e2luc3RhbmNlOnRoaXMsc3R5bGVzOnt9LGFycm93U3R5bGVzOnt9LGF0dHJpYnV0ZXM6e30sZmxpcHBlZDohMSxvZmZzZXRzOnt9fTtlLm9mZnNldHMucmVmZXJlbmNlPUwodGhpcy5zdGF0ZSx0aGlzLnBvcHBlcix0aGlzLnJlZmVyZW5jZSx0aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZCksZS5wbGFjZW1lbnQ9Tyh0aGlzLm9wdGlvbnMucGxhY2VtZW50LGUub2Zmc2V0cy5yZWZlcmVuY2UsdGhpcy5wb3BwZXIsdGhpcy5yZWZlcmVuY2UsdGhpcy5vcHRpb25zLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50LHRoaXMub3B0aW9ucy5tb2RpZmllcnMuZmxpcC5wYWRkaW5nKSxlLm9yaWdpbmFsUGxhY2VtZW50PWUucGxhY2VtZW50LGUucG9zaXRpb25GaXhlZD10aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZCxlLm9mZnNldHMucG9wcGVyPUQodGhpcy5wb3BwZXIsZS5vZmZzZXRzLnJlZmVyZW5jZSxlLnBsYWNlbWVudCksZS5vZmZzZXRzLnBvcHBlci5wb3NpdGlvbj10aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZD8nZml4ZWQnOidhYnNvbHV0ZScsZT1QKHRoaXMubW9kaWZpZXJzLGUpLHRoaXMuc3RhdGUuaXNDcmVhdGVkP3RoaXMub3B0aW9ucy5vblVwZGF0ZShlKToodGhpcy5zdGF0ZS5pc0NyZWF0ZWQ9ITAsdGhpcy5vcHRpb25zLm9uQ3JlYXRlKGUpKX19ZnVuY3Rpb24gVyhlLHQpe3JldHVybiBlLnNvbWUoZnVuY3Rpb24oZSl7dmFyIG89ZS5uYW1lLG49ZS5lbmFibGVkO3JldHVybiBuJiZvPT09dH0pfWZ1bmN0aW9uIEgoZSl7Zm9yKHZhciB0PVshMSwnbXMnLCdXZWJraXQnLCdNb3onLCdPJ10sbz1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLHI9aT8nJytpK286ZTtpZigndW5kZWZpbmVkJyE9dHlwZW9mIGRvY3VtZW50LmJvZHkuc3R5bGVbcl0pcmV0dXJuIHJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQigpe3JldHVybiB0aGlzLnN0YXRlLmlzRGVzdHJveWVkPSEwLFcodGhpcy5tb2RpZmllcnMsJ2FwcGx5U3R5bGUnKSYmKHRoaXMucG9wcGVyLnJlbW92ZUF0dHJpYnV0ZSgneC1wbGFjZW1lbnQnKSx0aGlzLnBvcHBlci5zdHlsZS5wb3NpdGlvbj0nJyx0aGlzLnBvcHBlci5zdHlsZS50b3A9JycsdGhpcy5wb3BwZXIuc3R5bGUubGVmdD0nJyx0aGlzLnBvcHBlci5zdHlsZS5yaWdodD0nJyx0aGlzLnBvcHBlci5zdHlsZS5ib3R0b209JycsdGhpcy5wb3BwZXIuc3R5bGUud2lsbENoYW5nZT0nJyx0aGlzLnBvcHBlci5zdHlsZVtIKCd0cmFuc2Zvcm0nKV09JycpLHRoaXMuZGlzYWJsZUV2ZW50TGlzdGVuZXJzKCksdGhpcy5vcHRpb25zLnJlbW92ZU9uRGVzdHJveSYmdGhpcy5wb3BwZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBvcHBlciksdGhpc31mdW5jdGlvbiBBKGUpe3ZhciB0PWUub3duZXJEb2N1bWVudDtyZXR1cm4gdD90LmRlZmF1bHRWaWV3OndpbmRvd31mdW5jdGlvbiBNKGUsdCxvLGkpe3ZhciByPSdCT0RZJz09PWUubm9kZU5hbWUscD1yP2Uub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldzplO3AuYWRkRXZlbnRMaXN0ZW5lcih0LG8se3Bhc3NpdmU6ITB9KSxyfHxNKG4ocC5wYXJlbnROb2RlKSx0LG8saSksaS5wdXNoKHApfWZ1bmN0aW9uIEYoZSx0LG8saSl7by51cGRhdGVCb3VuZD1pLEEoZSkuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJyxvLnVwZGF0ZUJvdW5kLHtwYXNzaXZlOiEwfSk7dmFyIHI9bihlKTtyZXR1cm4gTShyLCdzY3JvbGwnLG8udXBkYXRlQm91bmQsby5zY3JvbGxQYXJlbnRzKSxvLnNjcm9sbEVsZW1lbnQ9cixvLmV2ZW50c0VuYWJsZWQ9ITAsb31mdW5jdGlvbiBJKCl7dGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkfHwodGhpcy5zdGF0ZT1GKHRoaXMucmVmZXJlbmNlLHRoaXMub3B0aW9ucyx0aGlzLnN0YXRlLHRoaXMuc2NoZWR1bGVVcGRhdGUpKX1mdW5jdGlvbiBSKGUsdCl7cmV0dXJuIEEoZSkucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJyx0LnVwZGF0ZUJvdW5kKSx0LnNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsdC51cGRhdGVCb3VuZCl9KSx0LnVwZGF0ZUJvdW5kPW51bGwsdC5zY3JvbGxQYXJlbnRzPVtdLHQuc2Nyb2xsRWxlbWVudD1udWxsLHQuZXZlbnRzRW5hYmxlZD0hMSx0fWZ1bmN0aW9uIFUoKXt0aGlzLnN0YXRlLmV2ZW50c0VuYWJsZWQmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnNjaGVkdWxlVXBkYXRlKSx0aGlzLnN0YXRlPVIodGhpcy5yZWZlcmVuY2UsdGhpcy5zdGF0ZSkpfWZ1bmN0aW9uIFkoZSl7cmV0dXJuJychPT1lJiYhaXNOYU4ocGFyc2VGbG9hdChlKSkmJmlzRmluaXRlKGUpfWZ1bmN0aW9uIGooZSx0KXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBuPScnOy0xIT09Wyd3aWR0aCcsJ2hlaWdodCcsJ3RvcCcsJ3JpZ2h0JywnYm90dG9tJywnbGVmdCddLmluZGV4T2YobykmJlkodFtvXSkmJihuPSdweCcpLGUuc3R5bGVbb109dFtvXStufSl9ZnVuY3Rpb24gSyhlLHQpe09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIG49dFtvXTshMT09PW4/ZS5yZW1vdmVBdHRyaWJ1dGUobyk6ZS5zZXRBdHRyaWJ1dGUobyx0W29dKX0pfWZ1bmN0aW9uIHEoZSx0LG8pe3ZhciBuPUMoZSxmdW5jdGlvbihlKXt2YXIgbz1lLm5hbWU7cmV0dXJuIG89PT10fSksaT0hIW4mJmUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09byYmZS5lbmFibGVkJiZlLm9yZGVyPG4ub3JkZXJ9KTtpZighaSl7dmFyIHI9J2AnK3QrJ2AnO2NvbnNvbGUud2FybignYCcrbysnYCcrJyBtb2RpZmllciBpcyByZXF1aXJlZCBieSAnK3IrJyBtb2RpZmllciBpbiBvcmRlciB0byB3b3JrLCBiZSBzdXJlIHRvIGluY2x1ZGUgaXQgYmVmb3JlICcrcisnIScpfXJldHVybiBpfWZ1bmN0aW9uIEcoZSl7cmV0dXJuJ2VuZCc9PT1lPydzdGFydCc6J3N0YXJ0Jz09PWU/J2VuZCc6ZX1mdW5jdGlvbiBWKGUpe3ZhciB0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbz1tZS5pbmRleE9mKGUpLG49bWUuc2xpY2UobysxKS5jb25jYXQobWUuc2xpY2UoMCxvKSk7cmV0dXJuIHQ/bi5yZXZlcnNlKCk6bn1mdW5jdGlvbiB6KGUsdCxvLG4pe3ZhciBpPWUubWF0Y2goLygoPzpcXC18XFwrKT9cXGQqXFwuP1xcZCopKC4qKS8pLHI9K2lbMV0scD1pWzJdO2lmKCFyKXJldHVybiBlO2lmKDA9PT1wLmluZGV4T2YoJyUnKSl7dmFyIHM7c3dpdGNoKHApe2Nhc2UnJXAnOnM9bzticmVhaztjYXNlJyUnOmNhc2UnJXInOmRlZmF1bHQ6cz1uO312YXIgZD1nKHMpO3JldHVybiBkW3RdLzEwMCpyfWlmKCd2aCc9PT1wfHwndncnPT09cCl7dmFyIGE7cmV0dXJuIGE9J3ZoJz09PXA/Sihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LHdpbmRvdy5pbm5lckhlaWdodHx8MCk6Sihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsd2luZG93LmlubmVyV2lkdGh8fDApLGEvMTAwKnJ9cmV0dXJuIHJ9ZnVuY3Rpb24gXyhlLHQsbyxuKXt2YXIgaT1bMCwwXSxyPS0xIT09WydyaWdodCcsJ2xlZnQnXS5pbmRleE9mKG4pLHA9ZS5zcGxpdCgvKFxcK3xcXC0pLykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0oKX0pLHM9cC5pbmRleE9mKEMocCxmdW5jdGlvbihlKXtyZXR1cm4tMSE9PWUuc2VhcmNoKC8sfFxccy8pfSkpO3Bbc10mJi0xPT09cFtzXS5pbmRleE9mKCcsJykmJmNvbnNvbGUud2FybignT2Zmc2V0cyBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2UocykgYXJlIGRlcHJlY2F0ZWQsIHVzZSBhIGNvbW1hICgsKSBpbnN0ZWFkLicpO3ZhciBkPS9cXHMqLFxccyp8XFxzKy8sYT0tMT09PXM/W3BdOltwLnNsaWNlKDAscykuY29uY2F0KFtwW3NdLnNwbGl0KGQpWzBdXSksW3Bbc10uc3BsaXQoZClbMV1dLmNvbmNhdChwLnNsaWNlKHMrMSkpXTtyZXR1cm4gYT1hLm1hcChmdW5jdGlvbihlLG4pe3ZhciBpPSgxPT09bj8hcjpyKT8naGVpZ2h0Jzond2lkdGgnLHA9ITE7cmV0dXJuIGUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuJyc9PT1lW2UubGVuZ3RoLTFdJiYtMSE9PVsnKycsJy0nXS5pbmRleE9mKHQpPyhlW2UubGVuZ3RoLTFdPXQscD0hMCxlKTpwPyhlW2UubGVuZ3RoLTFdKz10LHA9ITEsZSk6ZS5jb25jYXQodCl9LFtdKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHooZSxpLHQsbyl9KX0pLGEuZm9yRWFjaChmdW5jdGlvbihlLHQpe2UuZm9yRWFjaChmdW5jdGlvbihvLG4pe1kobykmJihpW3RdKz1vKignLSc9PT1lW24tMV0/LTE6MSkpfSl9KSxpfWZ1bmN0aW9uIFgoZSx0KXt2YXIgbyxuPXQub2Zmc2V0LGk9ZS5wbGFjZW1lbnQscj1lLm9mZnNldHMscD1yLnBvcHBlcixzPXIucmVmZXJlbmNlLGQ9aS5zcGxpdCgnLScpWzBdO3JldHVybiBvPVkoK24pP1srbiwwXTpfKG4scCxzLGQpLCdsZWZ0Jz09PWQ/KHAudG9wKz1vWzBdLHAubGVmdC09b1sxXSk6J3JpZ2h0Jz09PWQ/KHAudG9wKz1vWzBdLHAubGVmdCs9b1sxXSk6J3RvcCc9PT1kPyhwLmxlZnQrPW9bMF0scC50b3AtPW9bMV0pOidib3R0b20nPT09ZCYmKHAubGVmdCs9b1swXSxwLnRvcCs9b1sxXSksZS5wb3BwZXI9cCxlfWZvcih2YXIgUT1NYXRoLm1pbixaPU1hdGgucm91bmQsJD1NYXRoLmZsb29yLEo9TWF0aC5tYXgsZWU9J3VuZGVmaW5lZCchPXR5cGVvZiB3aW5kb3cmJid1bmRlZmluZWQnIT10eXBlb2YgZG9jdW1lbnQsdGU9WydFZGdlJywnVHJpZGVudCcsJ0ZpcmVmb3gnXSxvZT0wLG5lPTA7bmU8dGUubGVuZ3RoO25lKz0xKWlmKGVlJiYwPD1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YodGVbbmVdKSl7b2U9MTticmVha312YXIgaT1lZSYmd2luZG93LlByb21pc2UsaWU9aT9mdW5jdGlvbihlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCx3aW5kb3cuUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3Q9ITEsZSgpfSkpfX06ZnVuY3Rpb24oZSl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dHx8KHQ9ITAsc2V0VGltZW91dChmdW5jdGlvbigpe3Q9ITEsZSgpfSxvZSkpfX0scmU9ZWUmJiEhKHdpbmRvdy5NU0lucHV0TWV0aG9kQ29udGV4dCYmZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSxwZT1lZSYmL01TSUUgMTAvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksc2U9ZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKX0sZGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBvLG49MDtuPHQubGVuZ3RoO24rKylvPXRbbl0sby5lbnVtZXJhYmxlPW8uZW51bWVyYWJsZXx8ITEsby5jb25maWd1cmFibGU9ITAsJ3ZhbHVlJ2luIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxvLmtleSxvKX1yZXR1cm4gZnVuY3Rpb24odCxvLG4pe3JldHVybiBvJiZlKHQucHJvdG90eXBlLG8pLG4mJmUodCxuKSx0fX0oKSxhZT1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpvLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1vLGV9LGxlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKylmb3IodmFyIG4gaW4gdD1hcmd1bWVudHNbb10sdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGV9LGZlPVsnYXV0by1zdGFydCcsJ2F1dG8nLCdhdXRvLWVuZCcsJ3RvcC1zdGFydCcsJ3RvcCcsJ3RvcC1lbmQnLCdyaWdodC1zdGFydCcsJ3JpZ2h0JywncmlnaHQtZW5kJywnYm90dG9tLWVuZCcsJ2JvdHRvbScsJ2JvdHRvbS1zdGFydCcsJ2xlZnQtZW5kJywnbGVmdCcsJ2xlZnQtc3RhcnQnXSxtZT1mZS5zbGljZSgzKSxoZT17RkxJUDonZmxpcCcsQ0xPQ0tXSVNFOidjbG9ja3dpc2UnLENPVU5URVJDTE9DS1dJU0U6J2NvdW50ZXJjbG9ja3dpc2UnfSxjZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQobyxuKXt2YXIgaT10aGlzLHI9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O3NlKHRoaXMsdCksdGhpcy5zY2hlZHVsZVVwZGF0ZT1mdW5jdGlvbigpe3JldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaS51cGRhdGUpfSx0aGlzLnVwZGF0ZT1pZSh0aGlzLnVwZGF0ZS5iaW5kKHRoaXMpKSx0aGlzLm9wdGlvbnM9bGUoe30sdC5EZWZhdWx0cyxyKSx0aGlzLnN0YXRlPXtpc0Rlc3Ryb3llZDohMSxpc0NyZWF0ZWQ6ITEsc2Nyb2xsUGFyZW50czpbXX0sdGhpcy5yZWZlcmVuY2U9byYmby5qcXVlcnk/b1swXTpvLHRoaXMucG9wcGVyPW4mJm4uanF1ZXJ5P25bMF06bix0aGlzLm9wdGlvbnMubW9kaWZpZXJzPXt9LE9iamVjdC5rZXlzKGxlKHt9LHQuRGVmYXVsdHMubW9kaWZpZXJzLHIubW9kaWZpZXJzKSkuZm9yRWFjaChmdW5jdGlvbihlKXtpLm9wdGlvbnMubW9kaWZpZXJzW2VdPWxlKHt9LHQuRGVmYXVsdHMubW9kaWZpZXJzW2VdfHx7fSxyLm1vZGlmaWVycz9yLm1vZGlmaWVyc1tlXTp7fSl9KSx0aGlzLm1vZGlmaWVycz1PYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMubW9kaWZpZXJzKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGxlKHtuYW1lOmV9LGkub3B0aW9ucy5tb2RpZmllcnNbZV0pfSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLm9yZGVyLXQub3JkZXJ9KSx0aGlzLm1vZGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZW5hYmxlZCYmZSh0Lm9uTG9hZCkmJnQub25Mb2FkKGkucmVmZXJlbmNlLGkucG9wcGVyLGkub3B0aW9ucyx0LGkuc3RhdGUpfSksdGhpcy51cGRhdGUoKTt2YXIgcD10aGlzLm9wdGlvbnMuZXZlbnRzRW5hYmxlZDtwJiZ0aGlzLmVuYWJsZUV2ZW50TGlzdGVuZXJzKCksdGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkPXB9cmV0dXJuIGRlKHQsW3trZXk6J3VwZGF0ZScsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gay5jYWxsKHRoaXMpfX0se2tleTonZGVzdHJveScsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQi5jYWxsKHRoaXMpfX0se2tleTonZW5hYmxlRXZlbnRMaXN0ZW5lcnMnLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEkuY2FsbCh0aGlzKX19LHtrZXk6J2Rpc2FibGVFdmVudExpc3RlbmVycycsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVS5jYWxsKHRoaXMpfX1dKSx0fSgpO3JldHVybiBjZS5VdGlscz0oJ3VuZGVmaW5lZCc9PXR5cGVvZiB3aW5kb3c/Z2xvYmFsOndpbmRvdykuUG9wcGVyVXRpbHMsY2UucGxhY2VtZW50cz1mZSxjZS5EZWZhdWx0cz17cGxhY2VtZW50Oidib3R0b20nLHBvc2l0aW9uRml4ZWQ6ITEsZXZlbnRzRW5hYmxlZDohMCxyZW1vdmVPbkRlc3Ryb3k6ITEsb25DcmVhdGU6ZnVuY3Rpb24oKXt9LG9uVXBkYXRlOmZ1bmN0aW9uKCl7fSxtb2RpZmllcnM6e3NoaWZ0OntvcmRlcjoxMDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdD1lLnBsYWNlbWVudCxvPXQuc3BsaXQoJy0nKVswXSxuPXQuc3BsaXQoJy0nKVsxXTtpZihuKXt2YXIgaT1lLm9mZnNldHMscj1pLnJlZmVyZW5jZSxwPWkucG9wcGVyLHM9LTEhPT1bJ2JvdHRvbScsJ3RvcCddLmluZGV4T2YobyksZD1zPydsZWZ0JzondG9wJyxhPXM/J3dpZHRoJzonaGVpZ2h0JyxsPXtzdGFydDphZSh7fSxkLHJbZF0pLGVuZDphZSh7fSxkLHJbZF0rclthXS1wW2FdKX07ZS5vZmZzZXRzLnBvcHBlcj1sZSh7fSxwLGxbbl0pfXJldHVybiBlfX0sb2Zmc2V0OntvcmRlcjoyMDAsZW5hYmxlZDohMCxmbjpYLG9mZnNldDowfSxwcmV2ZW50T3ZlcmZsb3c6e29yZGVyOjMwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsdCl7dmFyIG89dC5ib3VuZGFyaWVzRWxlbWVudHx8cChlLmluc3RhbmNlLnBvcHBlcik7ZS5pbnN0YW5jZS5yZWZlcmVuY2U9PT1vJiYobz1wKG8pKTt2YXIgbj1IKCd0cmFuc2Zvcm0nKSxpPWUuaW5zdGFuY2UucG9wcGVyLnN0eWxlLHI9aS50b3Ascz1pLmxlZnQsZD1pW25dO2kudG9wPScnLGkubGVmdD0nJyxpW25dPScnO3ZhciBhPXYoZS5pbnN0YW5jZS5wb3BwZXIsZS5pbnN0YW5jZS5yZWZlcmVuY2UsdC5wYWRkaW5nLG8sZS5wb3NpdGlvbkZpeGVkKTtpLnRvcD1yLGkubGVmdD1zLGlbbl09ZCx0LmJvdW5kYXJpZXM9YTt2YXIgbD10LnByaW9yaXR5LGY9ZS5vZmZzZXRzLnBvcHBlcixtPXtwcmltYXJ5OmZ1bmN0aW9uKGUpe3ZhciBvPWZbZV07cmV0dXJuIGZbZV08YVtlXSYmIXQuZXNjYXBlV2l0aFJlZmVyZW5jZSYmKG89SihmW2VdLGFbZV0pKSxhZSh7fSxlLG8pfSxzZWNvbmRhcnk6ZnVuY3Rpb24oZSl7dmFyIG89J3JpZ2h0Jz09PWU/J2xlZnQnOid0b3AnLG49ZltvXTtyZXR1cm4gZltlXT5hW2VdJiYhdC5lc2NhcGVXaXRoUmVmZXJlbmNlJiYobj1RKGZbb10sYVtlXS0oJ3JpZ2h0Jz09PWU/Zi53aWR0aDpmLmhlaWdodCkpKSxhZSh7fSxvLG4pfX07cmV0dXJuIGwuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0tMT09PVsnbGVmdCcsJ3RvcCddLmluZGV4T2YoZSk/J3NlY29uZGFyeSc6J3ByaW1hcnknO2Y9bGUoe30sZixtW3RdKGUpKX0pLGUub2Zmc2V0cy5wb3BwZXI9ZixlfSxwcmlvcml0eTpbJ2xlZnQnLCdyaWdodCcsJ3RvcCcsJ2JvdHRvbSddLHBhZGRpbmc6NSxib3VuZGFyaWVzRWxlbWVudDonc2Nyb2xsUGFyZW50J30sa2VlcFRvZ2V0aGVyOntvcmRlcjo0MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdD1lLm9mZnNldHMsbz10LnBvcHBlcixuPXQucmVmZXJlbmNlLGk9ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxyPSQscD0tMSE9PVsndG9wJywnYm90dG9tJ10uaW5kZXhPZihpKSxzPXA/J3JpZ2h0JzonYm90dG9tJyxkPXA/J2xlZnQnOid0b3AnLGE9cD8nd2lkdGgnOidoZWlnaHQnO3JldHVybiBvW3NdPHIobltkXSkmJihlLm9mZnNldHMucG9wcGVyW2RdPXIobltkXSktb1thXSksb1tkXT5yKG5bc10pJiYoZS5vZmZzZXRzLnBvcHBlcltkXT1yKG5bc10pKSxlfX0sYXJyb3c6e29yZGVyOjUwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsbyl7dmFyIG47aWYoIXEoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2Fycm93Jywna2VlcFRvZ2V0aGVyJykpcmV0dXJuIGU7dmFyIGk9by5lbGVtZW50O2lmKCdzdHJpbmcnPT10eXBlb2YgaSl7aWYoaT1lLmluc3RhbmNlLnBvcHBlci5xdWVyeVNlbGVjdG9yKGkpLCFpKXJldHVybiBlO31lbHNlIGlmKCFlLmluc3RhbmNlLnBvcHBlci5jb250YWlucyhpKSlyZXR1cm4gY29uc29sZS53YXJuKCdXQVJOSU5HOiBgYXJyb3cuZWxlbWVudGAgbXVzdCBiZSBjaGlsZCBvZiBpdHMgcG9wcGVyIGVsZW1lbnQhJyksZTt2YXIgcj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdLHA9ZS5vZmZzZXRzLHM9cC5wb3BwZXIsZD1wLnJlZmVyZW5jZSxhPS0xIT09WydsZWZ0JywncmlnaHQnXS5pbmRleE9mKHIpLGw9YT8naGVpZ2h0Jzond2lkdGgnLGY9YT8nVG9wJzonTGVmdCcsbT1mLnRvTG93ZXJDYXNlKCksaD1hPydsZWZ0JzondG9wJyxjPWE/J2JvdHRvbSc6J3JpZ2h0Jyx1PVMoaSlbbF07ZFtjXS11PHNbbV0mJihlLm9mZnNldHMucG9wcGVyW21dLT1zW21dLShkW2NdLXUpKSxkW21dK3U+c1tjXSYmKGUub2Zmc2V0cy5wb3BwZXJbbV0rPWRbbV0rdS1zW2NdKSxlLm9mZnNldHMucG9wcGVyPWcoZS5vZmZzZXRzLnBvcHBlcik7dmFyIGI9ZFttXStkW2xdLzItdS8yLHk9dChlLmluc3RhbmNlLnBvcHBlciksdz1wYXJzZUZsb2F0KHlbJ21hcmdpbicrZl0sMTApLEU9cGFyc2VGbG9hdCh5Wydib3JkZXInK2YrJ1dpZHRoJ10sMTApLHY9Yi1lLm9mZnNldHMucG9wcGVyW21dLXctRTtyZXR1cm4gdj1KKFEoc1tsXS11LHYpLDApLGUuYXJyb3dFbGVtZW50PWksZS5vZmZzZXRzLmFycm93PShuPXt9LGFlKG4sbSxaKHYpKSxhZShuLGgsJycpLG4pLGV9LGVsZW1lbnQ6J1t4LWFycm93XSd9LGZsaXA6e29yZGVyOjYwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsdCl7aWYoVyhlLmluc3RhbmNlLm1vZGlmaWVycywnaW5uZXInKSlyZXR1cm4gZTtpZihlLmZsaXBwZWQmJmUucGxhY2VtZW50PT09ZS5vcmlnaW5hbFBsYWNlbWVudClyZXR1cm4gZTt2YXIgbz12KGUuaW5zdGFuY2UucG9wcGVyLGUuaW5zdGFuY2UucmVmZXJlbmNlLHQucGFkZGluZyx0LmJvdW5kYXJpZXNFbGVtZW50LGUucG9zaXRpb25GaXhlZCksbj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdLGk9VChuKSxyPWUucGxhY2VtZW50LnNwbGl0KCctJylbMV18fCcnLHA9W107c3dpdGNoKHQuYmVoYXZpb3Ipe2Nhc2UgaGUuRkxJUDpwPVtuLGldO2JyZWFrO2Nhc2UgaGUuQ0xPQ0tXSVNFOnA9VihuKTticmVhaztjYXNlIGhlLkNPVU5URVJDTE9DS1dJU0U6cD1WKG4sITApO2JyZWFrO2RlZmF1bHQ6cD10LmJlaGF2aW9yO31yZXR1cm4gcC5mb3JFYWNoKGZ1bmN0aW9uKHMsZCl7aWYobiE9PXN8fHAubGVuZ3RoPT09ZCsxKXJldHVybiBlO249ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxpPVQobik7dmFyIGE9ZS5vZmZzZXRzLnBvcHBlcixsPWUub2Zmc2V0cy5yZWZlcmVuY2UsZj0kLG09J2xlZnQnPT09biYmZihhLnJpZ2h0KT5mKGwubGVmdCl8fCdyaWdodCc9PT1uJiZmKGEubGVmdCk8ZihsLnJpZ2h0KXx8J3RvcCc9PT1uJiZmKGEuYm90dG9tKT5mKGwudG9wKXx8J2JvdHRvbSc9PT1uJiZmKGEudG9wKTxmKGwuYm90dG9tKSxoPWYoYS5sZWZ0KTxmKG8ubGVmdCksYz1mKGEucmlnaHQpPmYoby5yaWdodCksZz1mKGEudG9wKTxmKG8udG9wKSx1PWYoYS5ib3R0b20pPmYoby5ib3R0b20pLGI9J2xlZnQnPT09biYmaHx8J3JpZ2h0Jz09PW4mJmN8fCd0b3AnPT09biYmZ3x8J2JvdHRvbSc9PT1uJiZ1LHk9LTEhPT1bJ3RvcCcsJ2JvdHRvbSddLmluZGV4T2Yobiksdz0hIXQuZmxpcFZhcmlhdGlvbnMmJih5JiYnc3RhcnQnPT09ciYmaHx8eSYmJ2VuZCc9PT1yJiZjfHwheSYmJ3N0YXJ0Jz09PXImJmd8fCF5JiYnZW5kJz09PXImJnUpOyhtfHxifHx3KSYmKGUuZmxpcHBlZD0hMCwobXx8YikmJihuPXBbZCsxXSksdyYmKHI9RyhyKSksZS5wbGFjZW1lbnQ9bisocj8nLScrcjonJyksZS5vZmZzZXRzLnBvcHBlcj1sZSh7fSxlLm9mZnNldHMucG9wcGVyLEQoZS5pbnN0YW5jZS5wb3BwZXIsZS5vZmZzZXRzLnJlZmVyZW5jZSxlLnBsYWNlbWVudCkpLGU9UChlLmluc3RhbmNlLm1vZGlmaWVycyxlLCdmbGlwJykpfSksZX0sYmVoYXZpb3I6J2ZsaXAnLHBhZGRpbmc6NSxib3VuZGFyaWVzRWxlbWVudDondmlld3BvcnQnfSxpbm5lcjp7b3JkZXI6NzAwLGVuYWJsZWQ6ITEsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wbGFjZW1lbnQsbz10LnNwbGl0KCctJylbMF0sbj1lLm9mZnNldHMsaT1uLnBvcHBlcixyPW4ucmVmZXJlbmNlLHA9LTEhPT1bJ2xlZnQnLCdyaWdodCddLmluZGV4T2Yobykscz0tMT09PVsndG9wJywnbGVmdCddLmluZGV4T2Yobyk7cmV0dXJuIGlbcD8nbGVmdCc6J3RvcCddPXJbb10tKHM/aVtwPyd3aWR0aCc6J2hlaWdodCddOjApLGUucGxhY2VtZW50PVQodCksZS5vZmZzZXRzLnBvcHBlcj1nKGkpLGV9fSxoaWRlOntvcmRlcjo4MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXtpZighcShlLmluc3RhbmNlLm1vZGlmaWVycywnaGlkZScsJ3ByZXZlbnRPdmVyZmxvdycpKXJldHVybiBlO3ZhciB0PWUub2Zmc2V0cy5yZWZlcmVuY2Usbz1DKGUuaW5zdGFuY2UubW9kaWZpZXJzLGZ1bmN0aW9uKGUpe3JldHVybidwcmV2ZW50T3ZlcmZsb3cnPT09ZS5uYW1lfSkuYm91bmRhcmllcztpZih0LmJvdHRvbTxvLnRvcHx8dC5sZWZ0Pm8ucmlnaHR8fHQudG9wPm8uYm90dG9tfHx0LnJpZ2h0PG8ubGVmdCl7aWYoITA9PT1lLmhpZGUpcmV0dXJuIGU7ZS5oaWRlPSEwLGUuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddPScnfWVsc2V7aWYoITE9PT1lLmhpZGUpcmV0dXJuIGU7ZS5oaWRlPSExLGUuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddPSExfXJldHVybiBlfX0sY29tcHV0ZVN0eWxlOntvcmRlcjo4NTAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe3ZhciBvPXQueCxuPXQueSxpPWUub2Zmc2V0cy5wb3BwZXIscj1DKGUuaW5zdGFuY2UubW9kaWZpZXJzLGZ1bmN0aW9uKGUpe3JldHVybidhcHBseVN0eWxlJz09PWUubmFtZX0pLmdwdUFjY2VsZXJhdGlvbjt2b2lkIDAhPT1yJiZjb25zb2xlLndhcm4oJ1dBUk5JTkc6IGBncHVBY2NlbGVyYXRpb25gIG9wdGlvbiBtb3ZlZCB0byBgY29tcHV0ZVN0eWxlYCBtb2RpZmllciBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiBQb3BwZXIuanMhJyk7dmFyIHMsZCxhPXZvaWQgMD09PXI/dC5ncHVBY2NlbGVyYXRpb246cixsPXAoZS5pbnN0YW5jZS5wb3BwZXIpLGY9dShsKSxtPXtwb3NpdGlvbjppLnBvc2l0aW9ufSxoPXtsZWZ0OiQoaS5sZWZ0KSx0b3A6WihpLnRvcCksYm90dG9tOlooaS5ib3R0b20pLHJpZ2h0OiQoaS5yaWdodCl9LGM9J2JvdHRvbSc9PT1vPyd0b3AnOidib3R0b20nLGc9J3JpZ2h0Jz09PW4/J2xlZnQnOidyaWdodCcsYj1IKCd0cmFuc2Zvcm0nKTtpZihkPSdib3R0b20nPT1jPydIVE1MJz09PWwubm9kZU5hbWU/LWwuY2xpZW50SGVpZ2h0K2guYm90dG9tOi1mLmhlaWdodCtoLmJvdHRvbTpoLnRvcCxzPSdyaWdodCc9PWc/J0hUTUwnPT09bC5ub2RlTmFtZT8tbC5jbGllbnRXaWR0aCtoLnJpZ2h0Oi1mLndpZHRoK2gucmlnaHQ6aC5sZWZ0LGEmJmIpbVtiXT0ndHJhbnNsYXRlM2QoJytzKydweCwgJytkKydweCwgMCknLG1bY109MCxtW2ddPTAsbS53aWxsQ2hhbmdlPSd0cmFuc2Zvcm0nO2Vsc2V7dmFyIHk9J2JvdHRvbSc9PWM/LTE6MSx3PSdyaWdodCc9PWc/LTE6MTttW2NdPWQqeSxtW2ddPXMqdyxtLndpbGxDaGFuZ2U9YysnLCAnK2d9dmFyIEU9e1wieC1wbGFjZW1lbnRcIjplLnBsYWNlbWVudH07cmV0dXJuIGUuYXR0cmlidXRlcz1sZSh7fSxFLGUuYXR0cmlidXRlcyksZS5zdHlsZXM9bGUoe30sbSxlLnN0eWxlcyksZS5hcnJvd1N0eWxlcz1sZSh7fSxlLm9mZnNldHMuYXJyb3csZS5hcnJvd1N0eWxlcyksZX0sZ3B1QWNjZWxlcmF0aW9uOiEwLHg6J2JvdHRvbScseToncmlnaHQnfSxhcHBseVN0eWxlOntvcmRlcjo5MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXtyZXR1cm4gaihlLmluc3RhbmNlLnBvcHBlcixlLnN0eWxlcyksSyhlLmluc3RhbmNlLnBvcHBlcixlLmF0dHJpYnV0ZXMpLGUuYXJyb3dFbGVtZW50JiZPYmplY3Qua2V5cyhlLmFycm93U3R5bGVzKS5sZW5ndGgmJmooZS5hcnJvd0VsZW1lbnQsZS5hcnJvd1N0eWxlcyksZX0sb25Mb2FkOmZ1bmN0aW9uKGUsdCxvLG4saSl7dmFyIHI9TChpLHQsZSxvLnBvc2l0aW9uRml4ZWQpLHA9TyhvLnBsYWNlbWVudCxyLHQsZSxvLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50LG8ubW9kaWZpZXJzLmZsaXAucGFkZGluZyk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCd4LXBsYWNlbWVudCcscCksaih0LHtwb3NpdGlvbjpvLnBvc2l0aW9uRml4ZWQ/J2ZpeGVkJzonYWJzb2x1dGUnfSksb30sZ3B1QWNjZWxlcmF0aW9uOnZvaWQgMH19fSxjZX0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wb3BwZXIubWluLmpzLm1hcCIsIi8qIVxuICAqIEJvb3RzdHJhcCB2NC4xLjAgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXG4gICogQ29weXJpZ2h0IDIwMTEtMjAxOCBUaGUgQm9vdHN0cmFwIEF1dGhvcnMgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ncmFwaHMvY29udHJpYnV0b3JzKVxuICAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4gICovXG4hZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9lKGV4cG9ydHMscmVxdWlyZShcImpxdWVyeVwiKSxyZXF1aXJlKFwicG9wcGVyLmpzXCIpKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtcImV4cG9ydHNcIixcImpxdWVyeVwiLFwicG9wcGVyLmpzXCJdLGUpOmUodC5ib290c3RyYXA9e30sdC5qUXVlcnksdC5Qb3BwZXIpfSh0aGlzLGZ1bmN0aW9uKHQsZSxjKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkua2V5LGkpfX1mdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gZSYmaSh0LnByb3RvdHlwZSxlKSxuJiZpKHQsbiksdH1mdW5jdGlvbiBoKHIpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBzPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30sZT1PYmplY3Qua2V5cyhzKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYoZT1lLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLHQpLmVudW1lcmFibGV9KSkpLGUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZSxuLGk7ZT1yLGk9c1tuPXRdLG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT1pfSl9cmV0dXJuIHJ9ZT1lJiZlLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFwiKT9lLmRlZmF1bHQ6ZSxjPWMmJmMuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0XCIpP2MuZGVmYXVsdDpjO3ZhciByLG4scyxhLGwsdSxmLGQsXyxnLG0scCx2LEUseSxULEMsSSxBLEQsYixTLHcsTixPLGssUCxMLGosUixILFcsTSx4LFUsSyxGLFYsUSxCLFksRyxxLHosWCxKLFosJCx0dCxldCxudCxpdCxydCxzdCxvdCxhdCxsdCxodCxjdCx1dCxmdCxkdCxfdCxndCxtdCxwdCx2dCxFdCx5dCxUdCxDdCxJdCxBdCxEdCxidCxTdCx3dCxOdCxPdCxrdCxQdCxMdCxqdCxSdCxIdCxXdCxNdCx4dCxVdCxLdCxGdCxWdCxRdCxCdCxZdCxHdCxxdCx6dCxYdCxKdCxadCwkdCx0ZSxlZSxuZSxpZSxyZSxzZSxvZSxhZSxsZSxoZSxjZSx1ZSxmZSxkZSxfZSxnZSxtZSxwZSx2ZSxFZSx5ZSxUZSxDZSxJZSxBZSxEZSxiZSxTZSx3ZSxOZSxPZSxrZSxQZSxMZSxqZSxSZSxIZSxXZSxNZSx4ZSxVZSxLZSxGZSxWZSxRZSxCZSxZZSxHZSxxZSx6ZSxYZSxKZSxaZSwkZSx0bixlbixubixybixzbixvbixhbixsbixobixjbix1bixmbixkbixfbixnbixtbixwbix2bixFbix5bixUbixDbj1mdW5jdGlvbihpKXt2YXIgZT1cInRyYW5zaXRpb25lbmRcIjtmdW5jdGlvbiB0KHQpe3ZhciBlPXRoaXMsbj0hMTtyZXR1cm4gaSh0aGlzKS5vbmUobC5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe249ITB9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bnx8bC50cmlnZ2VyVHJhbnNpdGlvbkVuZChlKX0sdCksdGhpc312YXIgbD17VFJBTlNJVElPTl9FTkQ6XCJic1RyYW5zaXRpb25FbmRcIixnZXRVSUQ6ZnVuY3Rpb24odCl7Zm9yKDt0Kz1+figxZTYqTWF0aC5yYW5kb20oKSksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCk7KTtyZXR1cm4gdH0sZ2V0U2VsZWN0b3JGcm9tRWxlbWVudDpmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZShcImRhdGEtdGFyZ2V0XCIpO2UmJlwiI1wiIT09ZXx8KGU9dC5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpfHxcIlwiKTt0cnl7cmV0dXJuIDA8aShkb2N1bWVudCkuZmluZChlKS5sZW5ndGg/ZTpudWxsfWNhdGNoKHQpe3JldHVybiBudWxsfX0sZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQ6ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIDA7dmFyIGU9aSh0KS5jc3MoXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIpO3JldHVybiBwYXJzZUZsb2F0KGUpPyhlPWUuc3BsaXQoXCIsXCIpWzBdLDFlMypwYXJzZUZsb2F0KGUpKTowfSxyZWZsb3c6ZnVuY3Rpb24odCl7cmV0dXJuIHQub2Zmc2V0SGVpZ2h0fSx0cmlnZ2VyVHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0KXtpKHQpLnRyaWdnZXIoZSl9LHN1cHBvcnRzVHJhbnNpdGlvbkVuZDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKGUpfSxpc0VsZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuKHRbMF18fHQpLm5vZGVUeXBlfSx0eXBlQ2hlY2tDb25maWc6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSBpbiBuKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpKXt2YXIgcj1uW2ldLHM9ZVtpXSxvPXMmJmwuaXNFbGVtZW50KHMpP1wiZWxlbWVudFwiOihhPXMse30udG9TdHJpbmcuY2FsbChhKS5tYXRjaCgvXFxzKFthLXpdKykvaSlbMV0udG9Mb3dlckNhc2UoKSk7aWYoIW5ldyBSZWdFeHAocikudGVzdChvKSl0aHJvdyBuZXcgRXJyb3IodC50b1VwcGVyQ2FzZSgpKyc6IE9wdGlvbiBcIicraSsnXCIgcHJvdmlkZWQgdHlwZSBcIicrbysnXCIgYnV0IGV4cGVjdGVkIHR5cGUgXCInK3IrJ1wiLicpfXZhciBhfX07cmV0dXJuIGkuZm4uZW11bGF0ZVRyYW5zaXRpb25FbmQ9dCxpLmV2ZW50LnNwZWNpYWxbbC5UUkFOU0lUSU9OX0VORF09e2JpbmRUeXBlOmUsZGVsZWdhdGVUeXBlOmUsaGFuZGxlOmZ1bmN0aW9uKHQpe2lmKGkodC50YXJnZXQpLmlzKHRoaXMpKXJldHVybiB0LmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LGx9KGUpLEluPShuPVwiYWxlcnRcIixhPVwiLlwiKyhzPVwiYnMuYWxlcnRcIiksbD0ocj1lKS5mbltuXSx1PXtDTE9TRTpcImNsb3NlXCIrYSxDTE9TRUQ6XCJjbG9zZWRcIithLENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIithK1wiLmRhdGEtYXBpXCJ9LGY9XCJhbGVydFwiLGQ9XCJmYWRlXCIsXz1cInNob3dcIixnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0KXt0aGlzLl9lbGVtZW50PXR9dmFyIHQ9aS5wcm90b3R5cGU7cmV0dXJuIHQuY2xvc2U9ZnVuY3Rpb24odCl7dD10fHx0aGlzLl9lbGVtZW50O3ZhciBlPXRoaXMuX2dldFJvb3RFbGVtZW50KHQpO3RoaXMuX3RyaWdnZXJDbG9zZUV2ZW50KGUpLmlzRGVmYXVsdFByZXZlbnRlZCgpfHx0aGlzLl9yZW1vdmVFbGVtZW50KGUpfSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtyLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxzKSx0aGlzLl9lbGVtZW50PW51bGx9LHQuX2dldFJvb3RFbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCksbj0hMTtyZXR1cm4gZSYmKG49cihlKVswXSksbnx8KG49cih0KS5jbG9zZXN0KFwiLlwiK2YpWzBdKSxufSx0Ll90cmlnZ2VyQ2xvc2VFdmVudD1mdW5jdGlvbih0KXt2YXIgZT1yLkV2ZW50KHUuQ0xPU0UpO3JldHVybiByKHQpLnRyaWdnZXIoZSksZX0sdC5fcmVtb3ZlRWxlbWVudD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKHIoZSkucmVtb3ZlQ2xhc3MoXykscihlKS5oYXNDbGFzcyhkKSl7dmFyIHQ9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQoZSk7cihlKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24odCl7cmV0dXJuIG4uX2Rlc3Ryb3lFbGVtZW50KGUsdCl9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZCh0KX1lbHNlIHRoaXMuX2Rlc3Ryb3lFbGVtZW50KGUpfSx0Ll9kZXN0cm95RWxlbWVudD1mdW5jdGlvbih0KXtyKHQpLmRldGFjaCgpLnRyaWdnZXIodS5DTE9TRUQpLnJlbW92ZSgpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXIodGhpcyksZT10LmRhdGEocyk7ZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKHMsZSkpLFwiY2xvc2VcIj09PW4mJmVbbl0odGhpcyl9KX0saS5faGFuZGxlRGlzbWlzcz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dCYmdC5wcmV2ZW50RGVmYXVsdCgpLGUuY2xvc2UodGhpcyl9fSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fV0pLGl9KCkscihkb2N1bWVudCkub24odS5DTElDS19EQVRBX0FQSSwnW2RhdGEtZGlzbWlzcz1cImFsZXJ0XCJdJyxnLl9oYW5kbGVEaXNtaXNzKG5ldyBnKSksci5mbltuXT1nLl9qUXVlcnlJbnRlcmZhY2Usci5mbltuXS5Db25zdHJ1Y3Rvcj1nLHIuZm5bbl0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiByLmZuW25dPWwsZy5falF1ZXJ5SW50ZXJmYWNlfSxnKSxBbj0ocD1cImJ1dHRvblwiLEU9XCIuXCIrKHY9XCJicy5idXR0b25cIikseT1cIi5kYXRhLWFwaVwiLFQ9KG09ZSkuZm5bcF0sQz1cImFjdGl2ZVwiLEk9XCJidG5cIixEPSdbZGF0YS10b2dnbGVePVwiYnV0dG9uXCJdJyxiPSdbZGF0YS10b2dnbGU9XCJidXR0b25zXCJdJyxTPVwiaW5wdXRcIix3PVwiLmFjdGl2ZVwiLE49XCIuYnRuXCIsTz17Q0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK0UreSxGT0NVU19CTFVSX0RBVEFfQVBJOihBPVwiZm9jdXNcIikrRSt5K1wiIGJsdXJcIitFK3l9LGs9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1uLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24oKXt2YXIgdD0hMCxlPSEwLG49bSh0aGlzLl9lbGVtZW50KS5jbG9zZXN0KGIpWzBdO2lmKG4pe3ZhciBpPW0odGhpcy5fZWxlbWVudCkuZmluZChTKVswXTtpZihpKXtpZihcInJhZGlvXCI9PT1pLnR5cGUpaWYoaS5jaGVja2VkJiZtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpKXQ9ITE7ZWxzZXt2YXIgcj1tKG4pLmZpbmQodylbMF07ciYmbShyKS5yZW1vdmVDbGFzcyhDKX1pZih0KXtpZihpLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxuLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxpLmNsYXNzTGlzdC5jb250YWlucyhcImRpc2FibGVkXCIpfHxuLmNsYXNzTGlzdC5jb250YWlucyhcImRpc2FibGVkXCIpKXJldHVybjtpLmNoZWNrZWQ9IW0odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoQyksbShpKS50cmlnZ2VyKFwiY2hhbmdlXCIpfWkuZm9jdXMoKSxlPSExfX1lJiZ0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtcHJlc3NlZFwiLCFtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpKSx0JiZtKHRoaXMuX2VsZW1lbnQpLnRvZ2dsZUNsYXNzKEMpfSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXttLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCx2KSx0aGlzLl9lbGVtZW50PW51bGx9LG4uX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bSh0aGlzKS5kYXRhKHYpO3R8fCh0PW5ldyBuKHRoaXMpLG0odGhpcykuZGF0YSh2LHQpKSxcInRvZ2dsZVwiPT09ZSYmdFtlXSgpfSl9LG8obixudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19XSksbn0oKSxtKGRvY3VtZW50KS5vbihPLkNMSUNLX0RBVEFfQVBJLEQsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBlPXQudGFyZ2V0O20oZSkuaGFzQ2xhc3MoSSl8fChlPW0oZSkuY2xvc2VzdChOKSksay5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobShlKSxcInRvZ2dsZVwiKX0pLm9uKE8uRk9DVVNfQkxVUl9EQVRBX0FQSSxELGZ1bmN0aW9uKHQpe3ZhciBlPW0odC50YXJnZXQpLmNsb3Nlc3QoTilbMF07bShlKS50b2dnbGVDbGFzcyhBLC9eZm9jdXMoaW4pPyQvLnRlc3QodC50eXBlKSl9KSxtLmZuW3BdPWsuX2pRdWVyeUludGVyZmFjZSxtLmZuW3BdLkNvbnN0cnVjdG9yPWssbS5mbltwXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG0uZm5bcF09VCxrLl9qUXVlcnlJbnRlcmZhY2V9LGspLERuPShMPVwiY2Fyb3VzZWxcIixSPVwiLlwiKyhqPVwiYnMuY2Fyb3VzZWxcIiksSD1cIi5kYXRhLWFwaVwiLFc9KFA9ZSkuZm5bTF0sTT17aW50ZXJ2YWw6NWUzLGtleWJvYXJkOiEwLHNsaWRlOiExLHBhdXNlOlwiaG92ZXJcIix3cmFwOiEwfSx4PXtpbnRlcnZhbDpcIihudW1iZXJ8Ym9vbGVhbilcIixrZXlib2FyZDpcImJvb2xlYW5cIixzbGlkZTpcIihib29sZWFufHN0cmluZylcIixwYXVzZTpcIihzdHJpbmd8Ym9vbGVhbilcIix3cmFwOlwiYm9vbGVhblwifSxVPVwibmV4dFwiLEs9XCJwcmV2XCIsRj1cImxlZnRcIixWPVwicmlnaHRcIixRPXtTTElERTpcInNsaWRlXCIrUixTTElEOlwic2xpZFwiK1IsS0VZRE9XTjpcImtleWRvd25cIitSLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIrUixNT1VTRUxFQVZFOlwibW91c2VsZWF2ZVwiK1IsVE9VQ0hFTkQ6XCJ0b3VjaGVuZFwiK1IsTE9BRF9EQVRBX0FQSTpcImxvYWRcIitSK0gsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK1IrSH0sQj1cImNhcm91c2VsXCIsWT1cImFjdGl2ZVwiLEc9XCJzbGlkZVwiLHE9XCJjYXJvdXNlbC1pdGVtLXJpZ2h0XCIsej1cImNhcm91c2VsLWl0ZW0tbGVmdFwiLFg9XCJjYXJvdXNlbC1pdGVtLW5leHRcIixKPVwiY2Fyb3VzZWwtaXRlbS1wcmV2XCIsWj17QUNUSVZFOlwiLmFjdGl2ZVwiLEFDVElWRV9JVEVNOlwiLmFjdGl2ZS5jYXJvdXNlbC1pdGVtXCIsSVRFTTpcIi5jYXJvdXNlbC1pdGVtXCIsTkVYVF9QUkVWOlwiLmNhcm91c2VsLWl0ZW0tbmV4dCwgLmNhcm91c2VsLWl0ZW0tcHJldlwiLElORElDQVRPUlM6XCIuY2Fyb3VzZWwtaW5kaWNhdG9yc1wiLERBVEFfU0xJREU6XCJbZGF0YS1zbGlkZV0sIFtkYXRhLXNsaWRlLXRvXVwiLERBVEFfUklERTonW2RhdGEtcmlkZT1cImNhcm91c2VsXCJdJ30sJD1mdW5jdGlvbigpe2Z1bmN0aW9uIHModCxlKXt0aGlzLl9pdGVtcz1udWxsLHRoaXMuX2ludGVydmFsPW51bGwsdGhpcy5fYWN0aXZlRWxlbWVudD1udWxsLHRoaXMuX2lzUGF1c2VkPSExLHRoaXMuX2lzU2xpZGluZz0hMSx0aGlzLnRvdWNoVGltZW91dD1udWxsLHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fZWxlbWVudD1QKHQpWzBdLHRoaXMuX2luZGljYXRvcnNFbGVtZW50PVAodGhpcy5fZWxlbWVudCkuZmluZChaLklORElDQVRPUlMpWzBdLHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJzKCl9dmFyIHQ9cy5wcm90b3R5cGU7cmV0dXJuIHQubmV4dD1mdW5jdGlvbigpe3RoaXMuX2lzU2xpZGluZ3x8dGhpcy5fc2xpZGUoVSl9LHQubmV4dFdoZW5WaXNpYmxlPWZ1bmN0aW9uKCl7IWRvY3VtZW50LmhpZGRlbiYmUCh0aGlzLl9lbGVtZW50KS5pcyhcIjp2aXNpYmxlXCIpJiZcImhpZGRlblwiIT09UCh0aGlzLl9lbGVtZW50KS5jc3MoXCJ2aXNpYmlsaXR5XCIpJiZ0aGlzLm5leHQoKX0sdC5wcmV2PWZ1bmN0aW9uKCl7dGhpcy5faXNTbGlkaW5nfHx0aGlzLl9zbGlkZShLKX0sdC5wYXVzZT1mdW5jdGlvbih0KXt0fHwodGhpcy5faXNQYXVzZWQ9ITApLFAodGhpcy5fZWxlbWVudCkuZmluZChaLk5FWFRfUFJFVilbMF0mJihDbi50cmlnZ2VyVHJhbnNpdGlvbkVuZCh0aGlzLl9lbGVtZW50KSx0aGlzLmN5Y2xlKCEwKSksY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbH0sdC5jeWNsZT1mdW5jdGlvbih0KXt0fHwodGhpcy5faXNQYXVzZWQ9ITEpLHRoaXMuX2ludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbCksdGhpcy5fY29uZmlnLmludGVydmFsJiYhdGhpcy5faXNQYXVzZWQmJih0aGlzLl9pbnRlcnZhbD1zZXRJbnRlcnZhbCgoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP3RoaXMubmV4dFdoZW5WaXNpYmxlOnRoaXMubmV4dCkuYmluZCh0aGlzKSx0aGlzLl9jb25maWcuaW50ZXJ2YWwpKX0sdC50bz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2FjdGl2ZUVsZW1lbnQ9UCh0aGlzLl9lbGVtZW50KS5maW5kKFouQUNUSVZFX0lURU0pWzBdO3ZhciBuPXRoaXMuX2dldEl0ZW1JbmRleCh0aGlzLl9hY3RpdmVFbGVtZW50KTtpZighKHQ+dGhpcy5faXRlbXMubGVuZ3RoLTF8fHQ8MCkpaWYodGhpcy5faXNTbGlkaW5nKVAodGhpcy5fZWxlbWVudCkub25lKFEuU0xJRCxmdW5jdGlvbigpe3JldHVybiBlLnRvKHQpfSk7ZWxzZXtpZihuPT09dClyZXR1cm4gdGhpcy5wYXVzZSgpLHZvaWQgdGhpcy5jeWNsZSgpO3ZhciBpPW48dD9VOks7dGhpcy5fc2xpZGUoaSx0aGlzLl9pdGVtc1t0XSl9fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtQKHRoaXMuX2VsZW1lbnQpLm9mZihSKSxQLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxqKSx0aGlzLl9pdGVtcz1udWxsLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9pbnRlcnZhbD1udWxsLHRoaXMuX2lzUGF1c2VkPW51bGwsdGhpcy5faXNTbGlkaW5nPW51bGwsdGhpcy5fYWN0aXZlRWxlbWVudD1udWxsLHRoaXMuX2luZGljYXRvcnNFbGVtZW50PW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1oKHt9LE0sdCksQ24udHlwZUNoZWNrQ29uZmlnKEwsdCx4KSx0fSx0Ll9hZGRFdmVudExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fY29uZmlnLmtleWJvYXJkJiZQKHRoaXMuX2VsZW1lbnQpLm9uKFEuS0VZRE9XTixmdW5jdGlvbih0KXtyZXR1cm4gZS5fa2V5ZG93bih0KX0pLFwiaG92ZXJcIj09PXRoaXMuX2NvbmZpZy5wYXVzZSYmKFAodGhpcy5fZWxlbWVudCkub24oUS5NT1VTRUVOVEVSLGZ1bmN0aW9uKHQpe3JldHVybiBlLnBhdXNlKHQpfSkub24oUS5NT1VTRUxFQVZFLGZ1bmN0aW9uKHQpe3JldHVybiBlLmN5Y2xlKHQpfSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmUCh0aGlzLl9lbGVtZW50KS5vbihRLlRPVUNIRU5ELGZ1bmN0aW9uKCl7ZS5wYXVzZSgpLGUudG91Y2hUaW1lb3V0JiZjbGVhclRpbWVvdXQoZS50b3VjaFRpbWVvdXQpLGUudG91Y2hUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24odCl7cmV0dXJuIGUuY3ljbGUodCl9LDUwMCtlLl9jb25maWcuaW50ZXJ2YWwpfSkpfSx0Ll9rZXlkb3duPWZ1bmN0aW9uKHQpe2lmKCEvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpKXN3aXRjaCh0LndoaWNoKXtjYXNlIDM3OnQucHJldmVudERlZmF1bHQoKSx0aGlzLnByZXYoKTticmVhaztjYXNlIDM5OnQucHJldmVudERlZmF1bHQoKSx0aGlzLm5leHQoKX19LHQuX2dldEl0ZW1JbmRleD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXRlbXM9UC5tYWtlQXJyYXkoUCh0KS5wYXJlbnQoKS5maW5kKFouSVRFTSkpLHRoaXMuX2l0ZW1zLmluZGV4T2YodCl9LHQuX2dldEl0ZW1CeURpcmVjdGlvbj1mdW5jdGlvbih0LGUpe3ZhciBuPXQ9PT1VLGk9dD09PUsscj10aGlzLl9nZXRJdGVtSW5kZXgoZSkscz10aGlzLl9pdGVtcy5sZW5ndGgtMTtpZigoaSYmMD09PXJ8fG4mJnI9PT1zKSYmIXRoaXMuX2NvbmZpZy53cmFwKXJldHVybiBlO3ZhciBvPShyKyh0PT09Sz8tMToxKSkldGhpcy5faXRlbXMubGVuZ3RoO3JldHVybi0xPT09bz90aGlzLl9pdGVtc1t0aGlzLl9pdGVtcy5sZW5ndGgtMV06dGhpcy5faXRlbXNbb119LHQuX3RyaWdnZXJTbGlkZUV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fZ2V0SXRlbUluZGV4KHQpLGk9dGhpcy5fZ2V0SXRlbUluZGV4KFAodGhpcy5fZWxlbWVudCkuZmluZChaLkFDVElWRV9JVEVNKVswXSkscj1QLkV2ZW50KFEuU0xJREUse3JlbGF0ZWRUYXJnZXQ6dCxkaXJlY3Rpb246ZSxmcm9tOmksdG86bn0pO3JldHVybiBQKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIocikscn0sdC5fc2V0QWN0aXZlSW5kaWNhdG9yRWxlbWVudD1mdW5jdGlvbih0KXtpZih0aGlzLl9pbmRpY2F0b3JzRWxlbWVudCl7UCh0aGlzLl9pbmRpY2F0b3JzRWxlbWVudCkuZmluZChaLkFDVElWRSkucmVtb3ZlQ2xhc3MoWSk7dmFyIGU9dGhpcy5faW5kaWNhdG9yc0VsZW1lbnQuY2hpbGRyZW5bdGhpcy5fZ2V0SXRlbUluZGV4KHQpXTtlJiZQKGUpLmFkZENsYXNzKFkpfX0sdC5fc2xpZGU9ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIscz10aGlzLG89UCh0aGlzLl9lbGVtZW50KS5maW5kKFouQUNUSVZFX0lURU0pWzBdLGE9dGhpcy5fZ2V0SXRlbUluZGV4KG8pLGw9ZXx8byYmdGhpcy5fZ2V0SXRlbUJ5RGlyZWN0aW9uKHQsbyksaD10aGlzLl9nZXRJdGVtSW5kZXgobCksYz1Cb29sZWFuKHRoaXMuX2ludGVydmFsKTtpZih0PT09VT8obj16LGk9WCxyPUYpOihuPXEsaT1KLHI9ViksbCYmUChsKS5oYXNDbGFzcyhZKSl0aGlzLl9pc1NsaWRpbmc9ITE7ZWxzZSBpZighdGhpcy5fdHJpZ2dlclNsaWRlRXZlbnQobCxyKS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmbyYmbCl7dGhpcy5faXNTbGlkaW5nPSEwLGMmJnRoaXMucGF1c2UoKSx0aGlzLl9zZXRBY3RpdmVJbmRpY2F0b3JFbGVtZW50KGwpO3ZhciB1PVAuRXZlbnQoUS5TTElELHtyZWxhdGVkVGFyZ2V0OmwsZGlyZWN0aW9uOnIsZnJvbTphLHRvOmh9KTtpZihQKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEcpKXtQKGwpLmFkZENsYXNzKGkpLENuLnJlZmxvdyhsKSxQKG8pLmFkZENsYXNzKG4pLFAobCkuYWRkQ2xhc3Mobik7dmFyIGY9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQobyk7UChvKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXtQKGwpLnJlbW92ZUNsYXNzKG4rXCIgXCIraSkuYWRkQ2xhc3MoWSksUChvKS5yZW1vdmVDbGFzcyhZK1wiIFwiK2krXCIgXCIrbikscy5faXNTbGlkaW5nPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gUChzLl9lbGVtZW50KS50cmlnZ2VyKHUpfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGYpfWVsc2UgUChvKS5yZW1vdmVDbGFzcyhZKSxQKGwpLmFkZENsYXNzKFkpLHRoaXMuX2lzU2xpZGluZz0hMSxQKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIodSk7YyYmdGhpcy5jeWNsZSgpfX0scy5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1QKHRoaXMpLmRhdGEoaiksZT1oKHt9LE0sUCh0aGlzKS5kYXRhKCkpO1wib2JqZWN0XCI9PXR5cGVvZiBpJiYoZT1oKHt9LGUsaSkpO3ZhciBuPVwic3RyaW5nXCI9PXR5cGVvZiBpP2k6ZS5zbGlkZTtpZih0fHwodD1uZXcgcyh0aGlzLGUpLFAodGhpcykuZGF0YShqLHQpKSxcIm51bWJlclwiPT10eXBlb2YgaSl0LnRvKGkpO2Vsc2UgaWYoXCJzdHJpbmdcIj09dHlwZW9mIG4pe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W25dKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrbisnXCInKTt0W25dKCl9ZWxzZSBlLmludGVydmFsJiYodC5wYXVzZSgpLHQuY3ljbGUoKSl9KX0scy5fZGF0YUFwaUNsaWNrSGFuZGxlcj1mdW5jdGlvbih0KXt2YXIgZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMpO2lmKGUpe3ZhciBuPVAoZSlbMF07aWYobiYmUChuKS5oYXNDbGFzcyhCKSl7dmFyIGk9aCh7fSxQKG4pLmRhdGEoKSxQKHRoaXMpLmRhdGEoKSkscj10aGlzLmdldEF0dHJpYnV0ZShcImRhdGEtc2xpZGUtdG9cIik7ciYmKGkuaW50ZXJ2YWw9ITEpLHMuX2pRdWVyeUludGVyZmFjZS5jYWxsKFAobiksaSksciYmUChuKS5kYXRhKGopLnRvKHIpLHQucHJldmVudERlZmF1bHQoKX19fSxvKHMsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBNfX1dKSxzfSgpLFAoZG9jdW1lbnQpLm9uKFEuQ0xJQ0tfREFUQV9BUEksWi5EQVRBX1NMSURFLCQuX2RhdGFBcGlDbGlja0hhbmRsZXIpLFAod2luZG93KS5vbihRLkxPQURfREFUQV9BUEksZnVuY3Rpb24oKXtQKFouREFUQV9SSURFKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9UCh0aGlzKTskLl9qUXVlcnlJbnRlcmZhY2UuY2FsbCh0LHQuZGF0YSgpKX0pfSksUC5mbltMXT0kLl9qUXVlcnlJbnRlcmZhY2UsUC5mbltMXS5Db25zdHJ1Y3Rvcj0kLFAuZm5bTF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBQLmZuW0xdPVcsJC5falF1ZXJ5SW50ZXJmYWNlfSwkKSxibj0oZXQ9XCJjb2xsYXBzZVwiLGl0PVwiLlwiKyhudD1cImJzLmNvbGxhcHNlXCIpLHJ0PSh0dD1lKS5mbltldF0sc3Q9e3RvZ2dsZTohMCxwYXJlbnQ6XCJcIn0sb3Q9e3RvZ2dsZTpcImJvb2xlYW5cIixwYXJlbnQ6XCIoc3RyaW5nfGVsZW1lbnQpXCJ9LGF0PXtTSE9XOlwic2hvd1wiK2l0LFNIT1dOOlwic2hvd25cIitpdCxISURFOlwiaGlkZVwiK2l0LEhJRERFTjpcImhpZGRlblwiK2l0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitpdCtcIi5kYXRhLWFwaVwifSxsdD1cInNob3dcIixodD1cImNvbGxhcHNlXCIsY3Q9XCJjb2xsYXBzaW5nXCIsdXQ9XCJjb2xsYXBzZWRcIixmdD1cIndpZHRoXCIsZHQ9XCJoZWlnaHRcIixfdD17QUNUSVZFUzpcIi5zaG93LCAuY29sbGFwc2luZ1wiLERBVEFfVE9HR0xFOidbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSd9LGd0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0LGUpe3RoaXMuX2lzVHJhbnNpdGlvbmluZz0hMSx0aGlzLl9lbGVtZW50PXQsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl90cmlnZ2VyQXJyYXk9dHQubWFrZUFycmF5KHR0KCdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtocmVmPVwiIycrdC5pZCsnXCJdLFtkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdW2RhdGEtdGFyZ2V0PVwiIycrdC5pZCsnXCJdJykpO2Zvcih2YXIgbj10dChfdC5EQVRBX1RPR0dMRSksaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgcj1uW2ldLHM9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudChyKTtudWxsIT09cyYmMDx0dChzKS5maWx0ZXIodCkubGVuZ3RoJiYodGhpcy5fc2VsZWN0b3I9cyx0aGlzLl90cmlnZ2VyQXJyYXkucHVzaChyKSl9dGhpcy5fcGFyZW50PXRoaXMuX2NvbmZpZy5wYXJlbnQ/dGhpcy5fZ2V0UGFyZW50KCk6bnVsbCx0aGlzLl9jb25maWcucGFyZW50fHx0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy5fZWxlbWVudCx0aGlzLl90cmlnZ2VyQXJyYXkpLHRoaXMuX2NvbmZpZy50b2dnbGUmJnRoaXMudG9nZ2xlKCl9dmFyIHQ9YS5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKCl7dHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobHQpP3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSx0LnNob3c9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpcztpZighdGhpcy5faXNUcmFuc2l0aW9uaW5nJiYhdHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobHQpJiYodGhpcy5fcGFyZW50JiYwPT09KHQ9dHQubWFrZUFycmF5KHR0KHRoaXMuX3BhcmVudCkuZmluZChfdC5BQ1RJVkVTKS5maWx0ZXIoJ1tkYXRhLXBhcmVudD1cIicrdGhpcy5fY29uZmlnLnBhcmVudCsnXCJdJykpKS5sZW5ndGgmJih0PW51bGwpLCEodCYmKGU9dHQodCkubm90KHRoaXMuX3NlbGVjdG9yKS5kYXRhKG50KSkmJmUuX2lzVHJhbnNpdGlvbmluZykpKXt2YXIgaT10dC5FdmVudChhdC5TSE9XKTtpZih0dCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKGkpLCFpLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt0JiYoYS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwodHQodCkubm90KHRoaXMuX3NlbGVjdG9yKSxcImhpZGVcIiksZXx8dHQodCkuZGF0YShudCxudWxsKSk7dmFyIHI9dGhpcy5fZ2V0RGltZW5zaW9uKCk7dHQodGhpcy5fZWxlbWVudCkucmVtb3ZlQ2xhc3MoaHQpLmFkZENsYXNzKGN0KSwodGhpcy5fZWxlbWVudC5zdHlsZVtyXT0wKTx0aGlzLl90cmlnZ2VyQXJyYXkubGVuZ3RoJiZ0dCh0aGlzLl90cmlnZ2VyQXJyYXkpLnJlbW92ZUNsYXNzKHV0KS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCEwKSx0aGlzLnNldFRyYW5zaXRpb25pbmcoITApO3ZhciBzPVwic2Nyb2xsXCIrKHJbMF0udG9VcHBlckNhc2UoKStyLnNsaWNlKDEpKSxvPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3R0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe3R0KG4uX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGN0KS5hZGRDbGFzcyhodCkuYWRkQ2xhc3MobHQpLG4uX2VsZW1lbnQuc3R5bGVbcl09XCJcIixuLnNldFRyYW5zaXRpb25pbmcoITEpLHR0KG4uX2VsZW1lbnQpLnRyaWdnZXIoYXQuU0hPV04pfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQobyksdGhpcy5fZWxlbWVudC5zdHlsZVtyXT10aGlzLl9lbGVtZW50W3NdK1wicHhcIn19fSx0LmhpZGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJnR0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGx0KSl7dmFyIGU9dHQuRXZlbnQoYXQuSElERSk7aWYodHQodGhpcy5fZWxlbWVudCkudHJpZ2dlcihlKSwhZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIG49dGhpcy5fZ2V0RGltZW5zaW9uKCk7aWYodGhpcy5fZWxlbWVudC5zdHlsZVtuXT10aGlzLl9lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW25dK1wicHhcIixDbi5yZWZsb3codGhpcy5fZWxlbWVudCksdHQodGhpcy5fZWxlbWVudCkuYWRkQ2xhc3MoY3QpLnJlbW92ZUNsYXNzKGh0KS5yZW1vdmVDbGFzcyhsdCksMDx0aGlzLl90cmlnZ2VyQXJyYXkubGVuZ3RoKWZvcih2YXIgaT0wO2k8dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aDtpKyspe3ZhciByPXRoaXMuX3RyaWdnZXJBcnJheVtpXSxzPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQocik7aWYobnVsbCE9PXMpdHQocykuaGFzQ2xhc3MobHQpfHx0dChyKS5hZGRDbGFzcyh1dCkuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMSl9dGhpcy5zZXRUcmFuc2l0aW9uaW5nKCEwKTt0aGlzLl9lbGVtZW50LnN0eWxlW25dPVwiXCI7dmFyIG89Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7dHQodGhpcy5fZWxlbWVudCkub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKCl7dC5zZXRUcmFuc2l0aW9uaW5nKCExKSx0dCh0Ll9lbGVtZW50KS5yZW1vdmVDbGFzcyhjdCkuYWRkQ2xhc3MoaHQpLnRyaWdnZXIoYXQuSElEREVOKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKG8pfX19LHQuc2V0VHJhbnNpdGlvbmluZz1mdW5jdGlvbih0KXt0aGlzLl9pc1RyYW5zaXRpb25pbmc9dH0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7dHQucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LG50KSx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fdHJpZ2dlckFycmF5PW51bGwsdGhpcy5faXNUcmFuc2l0aW9uaW5nPW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4odD1oKHt9LHN0LHQpKS50b2dnbGU9Qm9vbGVhbih0LnRvZ2dsZSksQ24udHlwZUNoZWNrQ29uZmlnKGV0LHQsb3QpLHR9LHQuX2dldERpbWVuc2lvbj1mdW5jdGlvbigpe3JldHVybiB0dCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhmdCk/ZnQ6ZHR9LHQuX2dldFBhcmVudD1mdW5jdGlvbigpe3ZhciBuPXRoaXMsdD1udWxsO0NuLmlzRWxlbWVudCh0aGlzLl9jb25maWcucGFyZW50KT8odD10aGlzLl9jb25maWcucGFyZW50LFwidW5kZWZpbmVkXCIhPXR5cGVvZiB0aGlzLl9jb25maWcucGFyZW50LmpxdWVyeSYmKHQ9dGhpcy5fY29uZmlnLnBhcmVudFswXSkpOnQ9dHQodGhpcy5fY29uZmlnLnBhcmVudClbMF07dmFyIGU9J1tkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdW2RhdGEtcGFyZW50PVwiJyt0aGlzLl9jb25maWcucGFyZW50KydcIl0nO3JldHVybiB0dCh0KS5maW5kKGUpLmVhY2goZnVuY3Rpb24odCxlKXtuLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MoYS5fZ2V0VGFyZ2V0RnJvbUVsZW1lbnQoZSksW2VdKX0pLHR9LHQuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbih0LGUpe2lmKHQpe3ZhciBuPXR0KHQpLmhhc0NsYXNzKGx0KTswPGUubGVuZ3RoJiZ0dChlKS50b2dnbGVDbGFzcyh1dCwhbikuYXR0cihcImFyaWEtZXhwYW5kZWRcIixuKX19LGEuX2dldFRhcmdldEZyb21FbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCk7cmV0dXJuIGU/dHQoZSlbMF06bnVsbH0sYS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10dCh0aGlzKSxlPXQuZGF0YShudCksbj1oKHt9LHN0LHQuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBpJiZpKTtpZighZSYmbi50b2dnbGUmJi9zaG93fGhpZGUvLnRlc3QoaSkmJihuLnRvZ2dsZT0hMSksZXx8KGU9bmV3IGEodGhpcyxuKSx0LmRhdGEobnQsZSkpLFwic3RyaW5nXCI9PXR5cGVvZiBpKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgZVtpXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2krJ1wiJyk7ZVtpXSgpfX0pfSxvKGEsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBzdH19XSksYX0oKSx0dChkb2N1bWVudCkub24oYXQuQ0xJQ0tfREFUQV9BUEksX3QuREFUQV9UT0dHTEUsZnVuY3Rpb24odCl7XCJBXCI9PT10LmN1cnJlbnRUYXJnZXQudGFnTmFtZSYmdC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPXR0KHRoaXMpLGU9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzKTt0dChlKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dHQodGhpcyksZT10LmRhdGEobnQpP1widG9nZ2xlXCI6bi5kYXRhKCk7Z3QuX2pRdWVyeUludGVyZmFjZS5jYWxsKHQsZSl9KX0pLHR0LmZuW2V0XT1ndC5falF1ZXJ5SW50ZXJmYWNlLHR0LmZuW2V0XS5Db25zdHJ1Y3Rvcj1ndCx0dC5mbltldF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB0dC5mbltldF09cnQsZ3QuX2pRdWVyeUludGVyZmFjZX0sZ3QpLFNuPShwdD1cImRyb3Bkb3duXCIsRXQ9XCIuXCIrKHZ0PVwiYnMuZHJvcGRvd25cIikseXQ9XCIuZGF0YS1hcGlcIixUdD0obXQ9ZSkuZm5bcHRdLEN0PW5ldyBSZWdFeHAoXCIzOHw0MHwyN1wiKSxJdD17SElERTpcImhpZGVcIitFdCxISURERU46XCJoaWRkZW5cIitFdCxTSE9XOlwic2hvd1wiK0V0LFNIT1dOOlwic2hvd25cIitFdCxDTElDSzpcImNsaWNrXCIrRXQsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK0V0K3l0LEtFWURPV05fREFUQV9BUEk6XCJrZXlkb3duXCIrRXQreXQsS0VZVVBfREFUQV9BUEk6XCJrZXl1cFwiK0V0K3l0fSxBdD1cImRpc2FibGVkXCIsRHQ9XCJzaG93XCIsYnQ9XCJkcm9wdXBcIixTdD1cImRyb3ByaWdodFwiLHd0PVwiZHJvcGxlZnRcIixOdD1cImRyb3Bkb3duLW1lbnUtcmlnaHRcIixPdD1cInBvc2l0aW9uLXN0YXRpY1wiLGt0PSdbZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXScsUHQ9XCIuZHJvcGRvd24gZm9ybVwiLEx0PVwiLmRyb3Bkb3duLW1lbnVcIixqdD1cIi5uYXZiYXItbmF2XCIsUnQ9XCIuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpub3QoLmRpc2FibGVkKTpub3QoOmRpc2FibGVkKVwiLEh0PVwidG9wLXN0YXJ0XCIsV3Q9XCJ0b3AtZW5kXCIsTXQ9XCJib3R0b20tc3RhcnRcIix4dD1cImJvdHRvbS1lbmRcIixVdD1cInJpZ2h0LXN0YXJ0XCIsS3Q9XCJsZWZ0LXN0YXJ0XCIsRnQ9e29mZnNldDowLGZsaXA6ITAsYm91bmRhcnk6XCJzY3JvbGxQYXJlbnRcIixyZWZlcmVuY2U6XCJ0b2dnbGVcIixkaXNwbGF5OlwiZHluYW1pY1wifSxWdD17b2Zmc2V0OlwiKG51bWJlcnxzdHJpbmd8ZnVuY3Rpb24pXCIsZmxpcDpcImJvb2xlYW5cIixib3VuZGFyeTpcIihzdHJpbmd8ZWxlbWVudClcIixyZWZlcmVuY2U6XCIoc3RyaW5nfGVsZW1lbnQpXCIsZGlzcGxheTpcInN0cmluZ1wifSxRdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGwodCxlKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9tZW51PXRoaXMuX2dldE1lbnVFbGVtZW50KCksdGhpcy5faW5OYXZiYXI9dGhpcy5fZGV0ZWN0TmF2YmFyKCksdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKX12YXIgdD1sLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24oKXtpZighdGhpcy5fZWxlbWVudC5kaXNhYmxlZCYmIW10KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEF0KSl7dmFyIHQ9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCksZT1tdCh0aGlzLl9tZW51KS5oYXNDbGFzcyhEdCk7aWYobC5fY2xlYXJNZW51cygpLCFlKXt2YXIgbj17cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fSxpPW10LkV2ZW50KEl0LlNIT1csbik7aWYobXQodCkudHJpZ2dlcihpKSwhaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7aWYoIXRoaXMuX2luTmF2YmFyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwIGRyb3Bkb3duIHJlcXVpcmUgUG9wcGVyLmpzIChodHRwczovL3BvcHBlci5qcy5vcmcpXCIpO3ZhciByPXRoaXMuX2VsZW1lbnQ7XCJwYXJlbnRcIj09PXRoaXMuX2NvbmZpZy5yZWZlcmVuY2U/cj10OkNuLmlzRWxlbWVudCh0aGlzLl9jb25maWcucmVmZXJlbmNlKSYmKHI9dGhpcy5fY29uZmlnLnJlZmVyZW5jZSxcInVuZGVmaW5lZFwiIT10eXBlb2YgdGhpcy5fY29uZmlnLnJlZmVyZW5jZS5qcXVlcnkmJihyPXRoaXMuX2NvbmZpZy5yZWZlcmVuY2VbMF0pKSxcInNjcm9sbFBhcmVudFwiIT09dGhpcy5fY29uZmlnLmJvdW5kYXJ5JiZtdCh0KS5hZGRDbGFzcyhPdCksdGhpcy5fcG9wcGVyPW5ldyBjKHIsdGhpcy5fbWVudSx0aGlzLl9nZXRQb3BwZXJDb25maWcoKSl9XCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmMD09PW10KHQpLmNsb3Nlc3QoanQpLmxlbmd0aCYmbXQoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vbihcIm1vdXNlb3ZlclwiLG51bGwsbXQubm9vcCksdGhpcy5fZWxlbWVudC5mb2N1cygpLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCEwKSxtdCh0aGlzLl9tZW51KS50b2dnbGVDbGFzcyhEdCksbXQodCkudG9nZ2xlQ2xhc3MoRHQpLnRyaWdnZXIobXQuRXZlbnQoSXQuU0hPV04sbikpfX19fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXttdC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsdnQpLG10KHRoaXMuX2VsZW1lbnQpLm9mZihFdCksdGhpcy5fZWxlbWVudD1udWxsLCh0aGlzLl9tZW51PW51bGwpIT09dGhpcy5fcG9wcGVyJiYodGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9wb3BwZXI9bnVsbCl9LHQudXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5faW5OYXZiYXI9dGhpcy5fZGV0ZWN0TmF2YmFyKCksbnVsbCE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLnNjaGVkdWxlVXBkYXRlKCl9LHQuX2FkZEV2ZW50TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczttdCh0aGlzLl9lbGVtZW50KS5vbihJdC5DTElDSyxmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxlLnRvZ2dsZSgpfSl9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1oKHt9LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdCxtdCh0aGlzLl9lbGVtZW50KS5kYXRhKCksdCksQ24udHlwZUNoZWNrQ29uZmlnKHB0LHQsdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0VHlwZSksdH0sdC5fZ2V0TWVudUVsZW1lbnQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fbWVudSl7dmFyIHQ9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7dGhpcy5fbWVudT1tdCh0KS5maW5kKEx0KVswXX1yZXR1cm4gdGhpcy5fbWVudX0sdC5fZ2V0UGxhY2VtZW50PWZ1bmN0aW9uKCl7dmFyIHQ9bXQodGhpcy5fZWxlbWVudCkucGFyZW50KCksZT1NdDtyZXR1cm4gdC5oYXNDbGFzcyhidCk/KGU9SHQsbXQodGhpcy5fbWVudSkuaGFzQ2xhc3MoTnQpJiYoZT1XdCkpOnQuaGFzQ2xhc3MoU3QpP2U9VXQ6dC5oYXNDbGFzcyh3dCk/ZT1LdDptdCh0aGlzLl9tZW51KS5oYXNDbGFzcyhOdCkmJihlPXh0KSxlfSx0Ll9kZXRlY3ROYXZiYXI9ZnVuY3Rpb24oKXtyZXR1cm4gMDxtdCh0aGlzLl9lbGVtZW50KS5jbG9zZXN0KFwiLm5hdmJhclwiKS5sZW5ndGh9LHQuX2dldFBvcHBlckNvbmZpZz1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD17fTtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLl9jb25maWcub2Zmc2V0P3QuZm49ZnVuY3Rpb24odCl7cmV0dXJuIHQub2Zmc2V0cz1oKHt9LHQub2Zmc2V0cyxlLl9jb25maWcub2Zmc2V0KHQub2Zmc2V0cyl8fHt9KSx0fTp0Lm9mZnNldD10aGlzLl9jb25maWcub2Zmc2V0O3ZhciBuPXtwbGFjZW1lbnQ6dGhpcy5fZ2V0UGxhY2VtZW50KCksbW9kaWZpZXJzOntvZmZzZXQ6dCxmbGlwOntlbmFibGVkOnRoaXMuX2NvbmZpZy5mbGlwfSxwcmV2ZW50T3ZlcmZsb3c6e2JvdW5kYXJpZXNFbGVtZW50OnRoaXMuX2NvbmZpZy5ib3VuZGFyeX19fTtyZXR1cm5cInN0YXRpY1wiPT09dGhpcy5fY29uZmlnLmRpc3BsYXkmJihuLm1vZGlmaWVycy5hcHBseVN0eWxlPXtlbmFibGVkOiExfSksbn0sbC5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1tdCh0aGlzKS5kYXRhKHZ0KTtpZih0fHwodD1uZXcgbCh0aGlzLFwib2JqZWN0XCI9PXR5cGVvZiBlP2U6bnVsbCksbXQodGhpcykuZGF0YSh2dCx0KSksXCJzdHJpbmdcIj09dHlwZW9mIGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W2VdKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrZSsnXCInKTt0W2VdKCl9fSl9LGwuX2NsZWFyTWVudXM9ZnVuY3Rpb24odCl7aWYoIXR8fDMhPT10LndoaWNoJiYoXCJrZXl1cFwiIT09dC50eXBlfHw5PT09dC53aGljaCkpZm9yKHZhciBlPW10Lm1ha2VBcnJheShtdChrdCkpLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQoZVtuXSkscj1tdChlW25dKS5kYXRhKHZ0KSxzPXtyZWxhdGVkVGFyZ2V0OmVbbl19O2lmKHIpe3ZhciBvPXIuX21lbnU7aWYobXQoaSkuaGFzQ2xhc3MoRHQpJiYhKHQmJihcImNsaWNrXCI9PT10LnR5cGUmJi9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QodC50YXJnZXQudGFnTmFtZSl8fFwia2V5dXBcIj09PXQudHlwZSYmOT09PXQud2hpY2gpJiZtdC5jb250YWlucyhpLHQudGFyZ2V0KSkpe3ZhciBhPW10LkV2ZW50KEl0LkhJREUscyk7bXQoaSkudHJpZ2dlcihhKSxhLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwoXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmbXQoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vZmYoXCJtb3VzZW92ZXJcIixudWxsLG10Lm5vb3ApLGVbbl0uc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLFwiZmFsc2VcIiksbXQobykucmVtb3ZlQ2xhc3MoRHQpLG10KGkpLnJlbW92ZUNsYXNzKER0KS50cmlnZ2VyKG10LkV2ZW50KEl0LkhJRERFTixzKSkpfX19fSxsLl9nZXRQYXJlbnRGcm9tRWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZSxuPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCk7cmV0dXJuIG4mJihlPW10KG4pWzBdKSxlfHx0LnBhcmVudE5vZGV9LGwuX2RhdGFBcGlLZXlkb3duSGFuZGxlcj1mdW5jdGlvbih0KXtpZigoL2lucHV0fHRleHRhcmVhL2kudGVzdCh0LnRhcmdldC50YWdOYW1lKT8hKDMyPT09dC53aGljaHx8MjchPT10LndoaWNoJiYoNDAhPT10LndoaWNoJiYzOCE9PXQud2hpY2h8fG10KHQudGFyZ2V0KS5jbG9zZXN0KEx0KS5sZW5ndGgpKTpDdC50ZXN0KHQud2hpY2gpKSYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLCF0aGlzLmRpc2FibGVkJiYhbXQodGhpcykuaGFzQ2xhc3MoQXQpKSl7dmFyIGU9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcyksbj1tdChlKS5oYXNDbGFzcyhEdCk7aWYoKG58fDI3PT09dC53aGljaCYmMzI9PT10LndoaWNoKSYmKCFufHwyNyE9PXQud2hpY2gmJjMyIT09dC53aGljaCkpe3ZhciBpPW10KGUpLmZpbmQoUnQpLmdldCgpO2lmKDAhPT1pLmxlbmd0aCl7dmFyIHI9aS5pbmRleE9mKHQudGFyZ2V0KTszOD09PXQud2hpY2gmJjA8ciYmci0tLDQwPT09dC53aGljaCYmcjxpLmxlbmd0aC0xJiZyKysscjwwJiYocj0wKSxpW3JdLmZvY3VzKCl9fWVsc2V7aWYoMjc9PT10LndoaWNoKXt2YXIgcz1tdChlKS5maW5kKGt0KVswXTttdChzKS50cmlnZ2VyKFwiZm9jdXNcIil9bXQodGhpcykudHJpZ2dlcihcImNsaWNrXCIpfX19LG8obCxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ0fX0se2tleTpcIkRlZmF1bHRUeXBlXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZ0fX1dKSxsfSgpLG10KGRvY3VtZW50KS5vbihJdC5LRVlET1dOX0RBVEFfQVBJLGt0LFF0Ll9kYXRhQXBpS2V5ZG93bkhhbmRsZXIpLm9uKEl0LktFWURPV05fREFUQV9BUEksTHQsUXQuX2RhdGFBcGlLZXlkb3duSGFuZGxlcikub24oSXQuQ0xJQ0tfREFUQV9BUEkrXCIgXCIrSXQuS0VZVVBfREFUQV9BUEksUXQuX2NsZWFyTWVudXMpLm9uKEl0LkNMSUNLX0RBVEFfQVBJLGt0LGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLFF0Ll9qUXVlcnlJbnRlcmZhY2UuY2FsbChtdCh0aGlzKSxcInRvZ2dsZVwiKX0pLm9uKEl0LkNMSUNLX0RBVEFfQVBJLFB0LGZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9KSxtdC5mbltwdF09UXQuX2pRdWVyeUludGVyZmFjZSxtdC5mbltwdF0uQ29uc3RydWN0b3I9UXQsbXQuZm5bcHRdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbXQuZm5bcHRdPVR0LFF0Ll9qUXVlcnlJbnRlcmZhY2V9LFF0KSx3bj0oWXQ9XCJtb2RhbFwiLHF0PVwiLlwiKyhHdD1cImJzLm1vZGFsXCIpLHp0PShCdD1lKS5mbltZdF0sWHQ9e2JhY2tkcm9wOiEwLGtleWJvYXJkOiEwLGZvY3VzOiEwLHNob3c6ITB9LEp0PXtiYWNrZHJvcDpcIihib29sZWFufHN0cmluZylcIixrZXlib2FyZDpcImJvb2xlYW5cIixmb2N1czpcImJvb2xlYW5cIixzaG93OlwiYm9vbGVhblwifSxadD17SElERTpcImhpZGVcIitxdCxISURERU46XCJoaWRkZW5cIitxdCxTSE9XOlwic2hvd1wiK3F0LFNIT1dOOlwic2hvd25cIitxdCxGT0NVU0lOOlwiZm9jdXNpblwiK3F0LFJFU0laRTpcInJlc2l6ZVwiK3F0LENMSUNLX0RJU01JU1M6XCJjbGljay5kaXNtaXNzXCIrcXQsS0VZRE9XTl9ESVNNSVNTOlwia2V5ZG93bi5kaXNtaXNzXCIrcXQsTU9VU0VVUF9ESVNNSVNTOlwibW91c2V1cC5kaXNtaXNzXCIrcXQsTU9VU0VET1dOX0RJU01JU1M6XCJtb3VzZWRvd24uZGlzbWlzc1wiK3F0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitxdCtcIi5kYXRhLWFwaVwifSwkdD1cIm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlXCIsdGU9XCJtb2RhbC1iYWNrZHJvcFwiLGVlPVwibW9kYWwtb3BlblwiLG5lPVwiZmFkZVwiLGllPVwic2hvd1wiLHJlPXtESUFMT0c6XCIubW9kYWwtZGlhbG9nXCIsREFUQV9UT0dHTEU6J1tkYXRhLXRvZ2dsZT1cIm1vZGFsXCJdJyxEQVRBX0RJU01JU1M6J1tkYXRhLWRpc21pc3M9XCJtb2RhbFwiXScsRklYRURfQ09OVEVOVDpcIi5maXhlZC10b3AsIC5maXhlZC1ib3R0b20sIC5pcy1maXhlZCwgLnN0aWNreS10b3BcIixTVElDS1lfQ09OVEVOVDpcIi5zdGlja3ktdG9wXCIsTkFWQkFSX1RPR0dMRVI6XCIubmF2YmFyLXRvZ2dsZXJcIn0sc2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQsZSl7dGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9lbGVtZW50PXQsdGhpcy5fZGlhbG9nPUJ0KHQpLmZpbmQocmUuRElBTE9HKVswXSx0aGlzLl9iYWNrZHJvcD1udWxsLHRoaXMuX2lzU2hvd249ITEsdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmc9ITEsdGhpcy5faWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLl9zY3JvbGxiYXJXaWR0aD0wfXZhciB0PXIucHJvdG90eXBlO3JldHVybiB0LnRvZ2dsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3codCl9LHQuc2hvdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJiF0aGlzLl9pc1Nob3duKXtCdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSkmJih0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITApO3ZhciBuPUJ0LkV2ZW50KFp0LlNIT1cse3JlbGF0ZWRUYXJnZXQ6dH0pO0J0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIobiksdGhpcy5faXNTaG93bnx8bi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KHRoaXMuX2lzU2hvd249ITAsdGhpcy5fY2hlY2tTY3JvbGxiYXIoKSx0aGlzLl9zZXRTY3JvbGxiYXIoKSx0aGlzLl9hZGp1c3REaWFsb2coKSxCdChkb2N1bWVudC5ib2R5KS5hZGRDbGFzcyhlZSksdGhpcy5fc2V0RXNjYXBlRXZlbnQoKSx0aGlzLl9zZXRSZXNpemVFdmVudCgpLEJ0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LkNMSUNLX0RJU01JU1MscmUuREFUQV9ESVNNSVNTLGZ1bmN0aW9uKHQpe3JldHVybiBlLmhpZGUodCl9KSxCdCh0aGlzLl9kaWFsb2cpLm9uKFp0Lk1PVVNFRE9XTl9ESVNNSVNTLGZ1bmN0aW9uKCl7QnQoZS5fZWxlbWVudCkub25lKFp0Lk1PVVNFVVBfRElTTUlTUyxmdW5jdGlvbih0KXtCdCh0LnRhcmdldCkuaXMoZS5fZWxlbWVudCkmJihlLl9pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5fc2hvd0JhY2tkcm9wKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3Nob3dFbGVtZW50KHQpfSkpfX0sdC5oaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodCYmdC5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJnRoaXMuX2lzU2hvd24pe3ZhciBuPUJ0LkV2ZW50KFp0LkhJREUpO2lmKEJ0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIobiksdGhpcy5faXNTaG93biYmIW4uaXNEZWZhdWx0UHJldmVudGVkKCkpe3RoaXMuX2lzU2hvd249ITE7dmFyIGk9QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpO2lmKGkmJih0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITApLHRoaXMuX3NldEVzY2FwZUV2ZW50KCksdGhpcy5fc2V0UmVzaXplRXZlbnQoKSxCdChkb2N1bWVudCkub2ZmKFp0LkZPQ1VTSU4pLEJ0KHRoaXMuX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGllKSxCdCh0aGlzLl9lbGVtZW50KS5vZmYoWnQuQ0xJQ0tfRElTTUlTUyksQnQodGhpcy5fZGlhbG9nKS5vZmYoWnQuTU9VU0VET1dOX0RJU01JU1MpLGkpe3ZhciByPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO0J0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbih0KXtyZXR1cm4gZS5faGlkZU1vZGFsKHQpfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQocil9ZWxzZSB0aGlzLl9oaWRlTW9kYWwoKX19fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtCdC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsR3QpLEJ0KHdpbmRvdyxkb2N1bWVudCx0aGlzLl9lbGVtZW50LHRoaXMuX2JhY2tkcm9wKS5vZmYocXQpLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9kaWFsb2c9bnVsbCx0aGlzLl9iYWNrZHJvcD1udWxsLHRoaXMuX2lzU2hvd249bnVsbCx0aGlzLl9pc0JvZHlPdmVyZmxvd2luZz1udWxsLHRoaXMuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9bnVsbCx0aGlzLl9zY3JvbGxiYXJXaWR0aD1udWxsfSx0LmhhbmRsZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX2FkanVzdERpYWxvZygpfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9aCh7fSxYdCx0KSxDbi50eXBlQ2hlY2tDb25maWcoWXQsdCxKdCksdH0sdC5fc2hvd0VsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPUJ0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKG5lKTt0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUmJnRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfHxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheT1cImJsb2NrXCIsdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiKSx0aGlzLl9lbGVtZW50LnNjcm9sbFRvcD0wLG4mJkNuLnJlZmxvdyh0aGlzLl9lbGVtZW50KSxCdCh0aGlzLl9lbGVtZW50KS5hZGRDbGFzcyhpZSksdGhpcy5fY29uZmlnLmZvY3VzJiZ0aGlzLl9lbmZvcmNlRm9jdXMoKTt2YXIgaT1CdC5FdmVudChadC5TSE9XTix7cmVsYXRlZFRhcmdldDp0fSkscj1mdW5jdGlvbigpe2UuX2NvbmZpZy5mb2N1cyYmZS5fZWxlbWVudC5mb2N1cygpLGUuX2lzVHJhbnNpdGlvbmluZz0hMSxCdChlLl9lbGVtZW50KS50cmlnZ2VyKGkpfTtpZihuKXt2YXIgcz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTtCdCh0aGlzLl9kaWFsb2cpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxyKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChzKX1lbHNlIHIoKX0sdC5fZW5mb3JjZUZvY3VzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztCdChkb2N1bWVudCkub2ZmKFp0LkZPQ1VTSU4pLm9uKFp0LkZPQ1VTSU4sZnVuY3Rpb24odCl7ZG9jdW1lbnQhPT10LnRhcmdldCYmZS5fZWxlbWVudCE9PXQudGFyZ2V0JiYwPT09QnQoZS5fZWxlbWVudCkuaGFzKHQudGFyZ2V0KS5sZW5ndGgmJmUuX2VsZW1lbnQuZm9jdXMoKX0pfSx0Ll9zZXRFc2NhcGVFdmVudD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faXNTaG93biYmdGhpcy5fY29uZmlnLmtleWJvYXJkP0J0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LktFWURPV05fRElTTUlTUyxmdW5jdGlvbih0KXsyNz09PXQud2hpY2gmJih0LnByZXZlbnREZWZhdWx0KCksZS5oaWRlKCkpfSk6dGhpcy5faXNTaG93bnx8QnQodGhpcy5fZWxlbWVudCkub2ZmKFp0LktFWURPV05fRElTTUlTUyl9LHQuX3NldFJlc2l6ZUV2ZW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9pc1Nob3duP0J0KHdpbmRvdykub24oWnQuUkVTSVpFLGZ1bmN0aW9uKHQpe3JldHVybiBlLmhhbmRsZVVwZGF0ZSh0KX0pOkJ0KHdpbmRvdykub2ZmKFp0LlJFU0laRSl9LHQuX2hpZGVNb2RhbD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwhMCksdGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLHRoaXMuX3Nob3dCYWNrZHJvcChmdW5jdGlvbigpe0J0KGRvY3VtZW50LmJvZHkpLnJlbW92ZUNsYXNzKGVlKSx0Ll9yZXNldEFkanVzdG1lbnRzKCksdC5fcmVzZXRTY3JvbGxiYXIoKSxCdCh0Ll9lbGVtZW50KS50cmlnZ2VyKFp0LkhJRERFTil9KX0sdC5fcmVtb3ZlQmFja2Ryb3A9ZnVuY3Rpb24oKXt0aGlzLl9iYWNrZHJvcCYmKEJ0KHRoaXMuX2JhY2tkcm9wKS5yZW1vdmUoKSx0aGlzLl9iYWNrZHJvcD1udWxsKX0sdC5fc2hvd0JhY2tkcm9wPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1CdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSk/bmU6XCJcIjtpZih0aGlzLl9pc1Nob3duJiZ0aGlzLl9jb25maWcuYmFja2Ryb3Ape2lmKHRoaXMuX2JhY2tkcm9wPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksdGhpcy5fYmFja2Ryb3AuY2xhc3NOYW1lPXRlLG4mJkJ0KHRoaXMuX2JhY2tkcm9wKS5hZGRDbGFzcyhuKSxCdCh0aGlzLl9iYWNrZHJvcCkuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSksQnQodGhpcy5fZWxlbWVudCkub24oWnQuQ0xJQ0tfRElTTUlTUyxmdW5jdGlvbih0KXtlLl9pZ25vcmVCYWNrZHJvcENsaWNrP2UuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9ITE6dC50YXJnZXQ9PT10LmN1cnJlbnRUYXJnZXQmJihcInN0YXRpY1wiPT09ZS5fY29uZmlnLmJhY2tkcm9wP2UuX2VsZW1lbnQuZm9jdXMoKTplLmhpZGUoKSl9KSxuJiZDbi5yZWZsb3codGhpcy5fYmFja2Ryb3ApLEJ0KHRoaXMuX2JhY2tkcm9wKS5hZGRDbGFzcyhpZSksIXQpcmV0dXJuO2lmKCFuKXJldHVybiB2b2lkIHQoKTt2YXIgaT1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9iYWNrZHJvcCk7QnQodGhpcy5fYmFja2Ryb3ApLm9uZShDbi5UUkFOU0lUSU9OX0VORCx0KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChpKX1lbHNlIGlmKCF0aGlzLl9pc1Nob3duJiZ0aGlzLl9iYWNrZHJvcCl7QnQodGhpcy5fYmFja2Ryb3ApLnJlbW92ZUNsYXNzKGllKTt2YXIgcj1mdW5jdGlvbigpe2UuX3JlbW92ZUJhY2tkcm9wKCksdCYmdCgpfTtpZihCdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSkpe3ZhciBzPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2JhY2tkcm9wKTtCdCh0aGlzLl9iYWNrZHJvcCkub25lKENuLlRSQU5TSVRJT05fRU5ELHIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHMpfWVsc2UgcigpfWVsc2UgdCYmdCgpfSx0Ll9hZGp1c3REaWFsb2c9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9lbGVtZW50LnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OyF0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyYmdCYmKHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQ9dGhpcy5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKSx0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyYmIXQmJih0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodD10aGlzLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSx0Ll9yZXNldEFkanVzdG1lbnRzPWZ1bmN0aW9uKCl7dGhpcy5fZWxlbWVudC5zdHlsZS5wYWRkaW5nTGVmdD1cIlwiLHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ1JpZ2h0PVwiXCJ9LHQuX2NoZWNrU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLl9pc0JvZHlPdmVyZmxvd2luZz10LmxlZnQrdC5yaWdodDx3aW5kb3cuaW5uZXJXaWR0aCx0aGlzLl9zY3JvbGxiYXJXaWR0aD10aGlzLl9nZXRTY3JvbGxiYXJXaWR0aCgpfSx0Ll9zZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO2lmKHRoaXMuX2lzQm9keU92ZXJmbG93aW5nKXtCdChyZS5GSVhFRF9DT05URU5UKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSlbMF0uc3R5bGUucGFkZGluZ1JpZ2h0LGk9QnQoZSkuY3NzKFwicGFkZGluZy1yaWdodFwiKTtCdChlKS5kYXRhKFwicGFkZGluZy1yaWdodFwiLG4pLmNzcyhcInBhZGRpbmctcmlnaHRcIixwYXJzZUZsb2F0KGkpK3IuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KSxCdChyZS5TVElDS1lfQ09OVEVOVCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLm1hcmdpblJpZ2h0LGk9QnQoZSkuY3NzKFwibWFyZ2luLXJpZ2h0XCIpO0J0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIixuKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixwYXJzZUZsb2F0KGkpLXIuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KSxCdChyZS5OQVZCQVJfVE9HR0xFUikuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLm1hcmdpblJpZ2h0LGk9QnQoZSkuY3NzKFwibWFyZ2luLXJpZ2h0XCIpO0J0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIixuKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixwYXJzZUZsb2F0KGkpK3IuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KTt2YXIgdD1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCxlPUJ0KGRvY3VtZW50LmJvZHkpLmNzcyhcInBhZGRpbmctcmlnaHRcIik7QnQoZG9jdW1lbnQuYm9keSkuZGF0YShcInBhZGRpbmctcmlnaHRcIix0KS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIscGFyc2VGbG9hdChlKSt0aGlzLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfX0sdC5fcmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXtCdChyZS5GSVhFRF9DT05URU5UKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSkuZGF0YShcInBhZGRpbmctcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG4mJkJ0KGUpLmNzcyhcInBhZGRpbmctcmlnaHRcIixuKS5yZW1vdmVEYXRhKFwicGFkZGluZy1yaWdodFwiKX0pLEJ0KHJlLlNUSUNLWV9DT05URU5UK1wiLCBcIityZS5OQVZCQVJfVE9HR0xFUikuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG4mJkJ0KGUpLmNzcyhcIm1hcmdpbi1yaWdodFwiLG4pLnJlbW92ZURhdGEoXCJtYXJnaW4tcmlnaHRcIil9KTt2YXIgdD1CdChkb2N1bWVudC5ib2R5KS5kYXRhKFwicGFkZGluZy1yaWdodFwiKTtcInVuZGVmaW5lZFwiIT10eXBlb2YgdCYmQnQoZG9jdW1lbnQuYm9keSkuY3NzKFwicGFkZGluZy1yaWdodFwiLHQpLnJlbW92ZURhdGEoXCJwYWRkaW5nLXJpZ2h0XCIpfSx0Ll9nZXRTY3JvbGxiYXJXaWR0aD1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7dC5jbGFzc05hbWU9JHQsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KTt2YXIgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLXQuY2xpZW50V2lkdGg7cmV0dXJuIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCksZX0sci5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4saSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PUJ0KHRoaXMpLmRhdGEoR3QpLGU9aCh7fSxyLkRlZmF1bHQsQnQodGhpcykuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBuJiZuKTtpZih0fHwodD1uZXcgcih0aGlzLGUpLEJ0KHRoaXMpLmRhdGEoR3QsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXShpKX1lbHNlIGUuc2hvdyYmdC5zaG93KGkpfSl9LG8ocixudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFh0fX1dKSxyfSgpLEJ0KGRvY3VtZW50KS5vbihadC5DTElDS19EQVRBX0FQSSxyZS5EQVRBX1RPR0dMRSxmdW5jdGlvbih0KXt2YXIgZSxuPXRoaXMsaT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMpO2kmJihlPUJ0KGkpWzBdKTt2YXIgcj1CdChlKS5kYXRhKEd0KT9cInRvZ2dsZVwiOmgoe30sQnQoZSkuZGF0YSgpLEJ0KHRoaXMpLmRhdGEoKSk7XCJBXCIhPT10aGlzLnRhZ05hbWUmJlwiQVJFQVwiIT09dGhpcy50YWdOYW1lfHx0LnByZXZlbnREZWZhdWx0KCk7dmFyIHM9QnQoZSkub25lKFp0LlNIT1csZnVuY3Rpb24odCl7dC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8cy5vbmUoWnQuSElEREVOLGZ1bmN0aW9uKCl7QnQobikuaXMoXCI6dmlzaWJsZVwiKSYmbi5mb2N1cygpfSl9KTtzZS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwoQnQoZSkscix0aGlzKX0pLEJ0LmZuW1l0XT1zZS5falF1ZXJ5SW50ZXJmYWNlLEJ0LmZuW1l0XS5Db25zdHJ1Y3Rvcj1zZSxCdC5mbltZdF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBCdC5mbltZdF09enQsc2UuX2pRdWVyeUludGVyZmFjZX0sc2UpLE5uPShhZT1cInRvb2x0aXBcIixoZT1cIi5cIisobGU9XCJicy50b29sdGlwXCIpLGNlPShvZT1lKS5mblthZV0sdWU9XCJicy10b29sdGlwXCIsZmU9bmV3IFJlZ0V4cChcIihefFxcXFxzKVwiK3VlK1wiXFxcXFMrXCIsXCJnXCIpLGdlPXthbmltYXRpb246ITAsdGVtcGxhdGU6JzxkaXYgY2xhc3M9XCJ0b29sdGlwXCIgcm9sZT1cInRvb2x0aXBcIj48ZGl2IGNsYXNzPVwiYXJyb3dcIj48L2Rpdj48ZGl2IGNsYXNzPVwidG9vbHRpcC1pbm5lclwiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjpcImhvdmVyIGZvY3VzXCIsdGl0bGU6XCJcIixkZWxheTowLGh0bWw6IShfZT17QVVUTzpcImF1dG9cIixUT1A6XCJ0b3BcIixSSUdIVDpcInJpZ2h0XCIsQk9UVE9NOlwiYm90dG9tXCIsTEVGVDpcImxlZnRcIn0pLHNlbGVjdG9yOiEoZGU9e2FuaW1hdGlvbjpcImJvb2xlYW5cIix0ZW1wbGF0ZTpcInN0cmluZ1wiLHRpdGxlOlwiKHN0cmluZ3xlbGVtZW50fGZ1bmN0aW9uKVwiLHRyaWdnZXI6XCJzdHJpbmdcIixkZWxheTpcIihudW1iZXJ8b2JqZWN0KVwiLGh0bWw6XCJib29sZWFuXCIsc2VsZWN0b3I6XCIoc3RyaW5nfGJvb2xlYW4pXCIscGxhY2VtZW50OlwiKHN0cmluZ3xmdW5jdGlvbilcIixvZmZzZXQ6XCIobnVtYmVyfHN0cmluZylcIixjb250YWluZXI6XCIoc3RyaW5nfGVsZW1lbnR8Ym9vbGVhbilcIixmYWxsYmFja1BsYWNlbWVudDpcIihzdHJpbmd8YXJyYXkpXCIsYm91bmRhcnk6XCIoc3RyaW5nfGVsZW1lbnQpXCJ9KSxwbGFjZW1lbnQ6XCJ0b3BcIixvZmZzZXQ6MCxjb250YWluZXI6ITEsZmFsbGJhY2tQbGFjZW1lbnQ6XCJmbGlwXCIsYm91bmRhcnk6XCJzY3JvbGxQYXJlbnRcIn0scGU9XCJvdXRcIix2ZT17SElERTpcImhpZGVcIitoZSxISURERU46XCJoaWRkZW5cIitoZSxTSE9XOihtZT1cInNob3dcIikraGUsU0hPV046XCJzaG93blwiK2hlLElOU0VSVEVEOlwiaW5zZXJ0ZWRcIitoZSxDTElDSzpcImNsaWNrXCIraGUsRk9DVVNJTjpcImZvY3VzaW5cIitoZSxGT0NVU09VVDpcImZvY3Vzb3V0XCIraGUsTU9VU0VFTlRFUjpcIm1vdXNlZW50ZXJcIitoZSxNT1VTRUxFQVZFOlwibW91c2VsZWF2ZVwiK2hlfSxFZT1cImZhZGVcIix5ZT1cInNob3dcIixUZT1cIi50b29sdGlwLWlubmVyXCIsQ2U9XCIuYXJyb3dcIixJZT1cImhvdmVyXCIsQWU9XCJmb2N1c1wiLERlPVwiY2xpY2tcIixiZT1cIm1hbnVhbFwiLFNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0LGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBjKXRocm93IG5ldyBUeXBlRXJyb3IoXCJCb290c3RyYXAgdG9vbHRpcHMgcmVxdWlyZSBQb3BwZXIuanMgKGh0dHBzOi8vcG9wcGVyLmpzLm9yZylcIik7dGhpcy5faXNFbmFibGVkPSEwLHRoaXMuX3RpbWVvdXQ9MCx0aGlzLl9ob3ZlclN0YXRlPVwiXCIsdGhpcy5fYWN0aXZlVHJpZ2dlcj17fSx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLmVsZW1lbnQ9dCx0aGlzLmNvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy50aXA9bnVsbCx0aGlzLl9zZXRMaXN0ZW5lcnMoKX12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLl9pc0VuYWJsZWQ9ITB9LHQuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2lzRW5hYmxlZD0hMX0sdC50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5faXNFbmFibGVkPSF0aGlzLl9pc0VuYWJsZWR9LHQudG9nZ2xlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lzRW5hYmxlZClpZih0KXt2YXIgZT10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZLG49b2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKGUpO258fChuPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEoZSxuKSksbi5fYWN0aXZlVHJpZ2dlci5jbGljaz0hbi5fYWN0aXZlVHJpZ2dlci5jbGljayxuLl9pc1dpdGhBY3RpdmVUcmlnZ2VyKCk/bi5fZW50ZXIobnVsbCxuKTpuLl9sZWF2ZShudWxsLG4pfWVsc2V7aWYob2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLmhhc0NsYXNzKHllKSlyZXR1cm4gdm9pZCB0aGlzLl9sZWF2ZShudWxsLHRoaXMpO3RoaXMuX2VudGVyKG51bGwsdGhpcyl9fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCksb2UucmVtb3ZlRGF0YSh0aGlzLmVsZW1lbnQsdGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSksb2UodGhpcy5lbGVtZW50KS5vZmYodGhpcy5jb25zdHJ1Y3Rvci5FVkVOVF9LRVkpLG9lKHRoaXMuZWxlbWVudCkuY2xvc2VzdChcIi5tb2RhbFwiKS5vZmYoXCJoaWRlLmJzLm1vZGFsXCIpLHRoaXMudGlwJiZvZSh0aGlzLnRpcCkucmVtb3ZlKCksdGhpcy5faXNFbmFibGVkPW51bGwsdGhpcy5fdGltZW91dD1udWxsLHRoaXMuX2hvdmVyU3RhdGU9bnVsbCwodGhpcy5fYWN0aXZlVHJpZ2dlcj1udWxsKSE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLmVsZW1lbnQ9bnVsbCx0aGlzLmNvbmZpZz1udWxsLHRoaXMudGlwPW51bGx9LHQuc2hvdz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoXCJub25lXCI9PT1vZSh0aGlzLmVsZW1lbnQpLmNzcyhcImRpc3BsYXlcIikpdGhyb3cgbmV3IEVycm9yKFwiUGxlYXNlIHVzZSBzaG93IG9uIHZpc2libGUgZWxlbWVudHNcIik7dmFyIHQ9b2UuRXZlbnQodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5TSE9XKTtpZih0aGlzLmlzV2l0aENvbnRlbnQoKSYmdGhpcy5faXNFbmFibGVkKXtvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIodCk7dmFyIG49b2UuY29udGFpbnModGhpcy5lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMuZWxlbWVudCk7aWYodC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8IW4pcmV0dXJuO3ZhciBpPXRoaXMuZ2V0VGlwRWxlbWVudCgpLHI9Q24uZ2V0VUlEKHRoaXMuY29uc3RydWN0b3IuTkFNRSk7aS5zZXRBdHRyaWJ1dGUoXCJpZFwiLHIpLHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWRlc2NyaWJlZGJ5XCIsciksdGhpcy5zZXRDb250ZW50KCksdGhpcy5jb25maWcuYW5pbWF0aW9uJiZvZShpKS5hZGRDbGFzcyhFZSk7dmFyIHM9XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5jb25maWcucGxhY2VtZW50P3RoaXMuY29uZmlnLnBsYWNlbWVudC5jYWxsKHRoaXMsaSx0aGlzLmVsZW1lbnQpOnRoaXMuY29uZmlnLnBsYWNlbWVudCxvPXRoaXMuX2dldEF0dGFjaG1lbnQocyk7dGhpcy5hZGRBdHRhY2htZW50Q2xhc3Mobyk7dmFyIGE9ITE9PT10aGlzLmNvbmZpZy5jb250YWluZXI/ZG9jdW1lbnQuYm9keTpvZSh0aGlzLmNvbmZpZy5jb250YWluZXIpO29lKGkpLmRhdGEodGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSx0aGlzKSxvZS5jb250YWlucyh0aGlzLmVsZW1lbnQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdGhpcy50aXApfHxvZShpKS5hcHBlbmRUbyhhKSxvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5JTlNFUlRFRCksdGhpcy5fcG9wcGVyPW5ldyBjKHRoaXMuZWxlbWVudCxpLHtwbGFjZW1lbnQ6byxtb2RpZmllcnM6e29mZnNldDp7b2Zmc2V0OnRoaXMuY29uZmlnLm9mZnNldH0sZmxpcDp7YmVoYXZpb3I6dGhpcy5jb25maWcuZmFsbGJhY2tQbGFjZW1lbnR9LGFycm93OntlbGVtZW50OkNlfSxwcmV2ZW50T3ZlcmZsb3c6e2JvdW5kYXJpZXNFbGVtZW50OnRoaXMuY29uZmlnLmJvdW5kYXJ5fX0sb25DcmVhdGU6ZnVuY3Rpb24odCl7dC5vcmlnaW5hbFBsYWNlbWVudCE9PXQucGxhY2VtZW50JiZlLl9oYW5kbGVQb3BwZXJQbGFjZW1lbnRDaGFuZ2UodCl9LG9uVXBkYXRlOmZ1bmN0aW9uKHQpe2UuX2hhbmRsZVBvcHBlclBsYWNlbWVudENoYW5nZSh0KX19KSxvZShpKS5hZGRDbGFzcyh5ZSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmb2UoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vbihcIm1vdXNlb3ZlclwiLG51bGwsb2Uubm9vcCk7dmFyIGw9ZnVuY3Rpb24oKXtlLmNvbmZpZy5hbmltYXRpb24mJmUuX2ZpeFRyYW5zaXRpb24oKTt2YXIgdD1lLl9ob3ZlclN0YXRlO2UuX2hvdmVyU3RhdGU9bnVsbCxvZShlLmVsZW1lbnQpLnRyaWdnZXIoZS5jb25zdHJ1Y3Rvci5FdmVudC5TSE9XTiksdD09PXBlJiZlLl9sZWF2ZShudWxsLGUpfTtpZihvZSh0aGlzLnRpcCkuaGFzQ2xhc3MoRWUpKXt2YXIgaD1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLnRpcCk7b2UodGhpcy50aXApLm9uZShDbi5UUkFOU0lUSU9OX0VORCxsKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChoKX1lbHNlIGwoKX19LHQuaGlkZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5nZXRUaXBFbGVtZW50KCksaT1vZS5FdmVudCh0aGlzLmNvbnN0cnVjdG9yLkV2ZW50LkhJREUpLHI9ZnVuY3Rpb24oKXtlLl9ob3ZlclN0YXRlIT09bWUmJm4ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pLGUuX2NsZWFuVGlwQ2xhc3MoKSxlLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiKSxvZShlLmVsZW1lbnQpLnRyaWdnZXIoZS5jb25zdHJ1Y3Rvci5FdmVudC5ISURERU4pLG51bGwhPT1lLl9wb3BwZXImJmUuX3BvcHBlci5kZXN0cm95KCksdCYmdCgpfTtpZihvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIoaSksIWkuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKG9lKG4pLnJlbW92ZUNsYXNzKHllKSxcIm9udG91Y2hzdGFydFwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZvZShkb2N1bWVudC5ib2R5KS5jaGlsZHJlbigpLm9mZihcIm1vdXNlb3ZlclwiLG51bGwsb2Uubm9vcCksdGhpcy5fYWN0aXZlVHJpZ2dlcltEZV09ITEsdGhpcy5fYWN0aXZlVHJpZ2dlcltBZV09ITEsdGhpcy5fYWN0aXZlVHJpZ2dlcltJZV09ITEsb2UodGhpcy50aXApLmhhc0NsYXNzKEVlKSl7dmFyIHM9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQobik7b2Uobikub25lKENuLlRSQU5TSVRJT05fRU5ELHIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHMpfWVsc2UgcigpO3RoaXMuX2hvdmVyU3RhdGU9XCJcIn19LHQudXBkYXRlPWZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLnNjaGVkdWxlVXBkYXRlKCl9LHQuaXNXaXRoQ29udGVudD1mdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMuZ2V0VGl0bGUoKSl9LHQuYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe29lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5hZGRDbGFzcyh1ZStcIi1cIit0KX0sdC5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHxvZSh0aGlzLmNvbmZpZy50ZW1wbGF0ZSlbMF0sdGhpcy50aXB9LHQuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciB0PW9lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKTt0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZChUZSksdGhpcy5nZXRUaXRsZSgpKSx0LnJlbW92ZUNsYXNzKEVlK1wiIFwiK3llKX0sdC5zZXRFbGVtZW50Q29udGVudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY29uZmlnLmh0bWw7XCJvYmplY3RcIj09dHlwZW9mIGUmJihlLm5vZGVUeXBlfHxlLmpxdWVyeSk/bj9vZShlKS5wYXJlbnQoKS5pcyh0KXx8dC5lbXB0eSgpLmFwcGVuZChlKTp0LnRleHQob2UoZSkudGV4dCgpKTp0W24/XCJodG1sXCI6XCJ0ZXh0XCJdKGUpfSx0LmdldFRpdGxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIik7cmV0dXJuIHR8fCh0PVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuY29uZmlnLnRpdGxlP3RoaXMuY29uZmlnLnRpdGxlLmNhbGwodGhpcy5lbGVtZW50KTp0aGlzLmNvbmZpZy50aXRsZSksdH0sdC5fZ2V0QXR0YWNobWVudD1mdW5jdGlvbih0KXtyZXR1cm4gX2VbdC50b1VwcGVyQ2FzZSgpXX0sdC5fc2V0TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpczt0aGlzLmNvbmZpZy50cmlnZ2VyLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKFwiY2xpY2tcIj09PXQpb2UoaS5lbGVtZW50KS5vbihpLmNvbnN0cnVjdG9yLkV2ZW50LkNMSUNLLGkuY29uZmlnLnNlbGVjdG9yLGZ1bmN0aW9uKHQpe3JldHVybiBpLnRvZ2dsZSh0KX0pO2Vsc2UgaWYodCE9PWJlKXt2YXIgZT10PT09SWU/aS5jb25zdHJ1Y3Rvci5FdmVudC5NT1VTRUVOVEVSOmkuY29uc3RydWN0b3IuRXZlbnQuRk9DVVNJTixuPXQ9PT1JZT9pLmNvbnN0cnVjdG9yLkV2ZW50Lk1PVVNFTEVBVkU6aS5jb25zdHJ1Y3Rvci5FdmVudC5GT0NVU09VVDtvZShpLmVsZW1lbnQpLm9uKGUsaS5jb25maWcuc2VsZWN0b3IsZnVuY3Rpb24odCl7cmV0dXJuIGkuX2VudGVyKHQpfSkub24obixpLmNvbmZpZy5zZWxlY3RvcixmdW5jdGlvbih0KXtyZXR1cm4gaS5fbGVhdmUodCl9KX1vZShpLmVsZW1lbnQpLmNsb3Nlc3QoXCIubW9kYWxcIikub24oXCJoaWRlLmJzLm1vZGFsXCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5oaWRlKCl9KX0pLHRoaXMuY29uZmlnLnNlbGVjdG9yP3RoaXMuY29uZmlnPWgoe30sdGhpcy5jb25maWcse3RyaWdnZXI6XCJtYW51YWxcIixzZWxlY3RvcjpcIlwifSk6dGhpcy5fZml4VGl0bGUoKX0sdC5fZml4VGl0bGU9ZnVuY3Rpb24oKXt2YXIgdD10eXBlb2YgdGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIik7KHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKXx8XCJzdHJpbmdcIiE9PXQpJiYodGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIix0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidGl0bGVcIil8fFwiXCIpLHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiLFwiXCIpKX0sdC5fZW50ZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZOyhlPWV8fG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuKSl8fChlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobixlKSksdCYmKGUuX2FjdGl2ZVRyaWdnZXJbXCJmb2N1c2luXCI9PT10LnR5cGU/QWU6SWVdPSEwKSxvZShlLmdldFRpcEVsZW1lbnQoKSkuaGFzQ2xhc3MoeWUpfHxlLl9ob3ZlclN0YXRlPT09bWU/ZS5faG92ZXJTdGF0ZT1tZTooY2xlYXJUaW1lb3V0KGUuX3RpbWVvdXQpLGUuX2hvdmVyU3RhdGU9bWUsZS5jb25maWcuZGVsYXkmJmUuY29uZmlnLmRlbGF5LnNob3c/ZS5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5faG92ZXJTdGF0ZT09PW1lJiZlLnNob3coKX0sZS5jb25maWcuZGVsYXkuc2hvdyk6ZS5zaG93KCkpfSx0Ll9sZWF2ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY29uc3RydWN0b3IuREFUQV9LRVk7KGU9ZXx8b2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKG4pKXx8KGU9bmV3IHRoaXMuY29uc3RydWN0b3IodC5jdXJyZW50VGFyZ2V0LHRoaXMuX2dldERlbGVnYXRlQ29uZmlnKCkpLG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuLGUpKSx0JiYoZS5fYWN0aXZlVHJpZ2dlcltcImZvY3Vzb3V0XCI9PT10LnR5cGU/QWU6SWVdPSExKSxlLl9pc1dpdGhBY3RpdmVUcmlnZ2VyKCl8fChjbGVhclRpbWVvdXQoZS5fdGltZW91dCksZS5faG92ZXJTdGF0ZT1wZSxlLmNvbmZpZy5kZWxheSYmZS5jb25maWcuZGVsYXkuaGlkZT9lLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl9ob3ZlclN0YXRlPT09cGUmJmUuaGlkZSgpfSxlLmNvbmZpZy5kZWxheS5oaWRlKTplLmhpZGUoKSl9LHQuX2lzV2l0aEFjdGl2ZVRyaWdnZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fYWN0aXZlVHJpZ2dlcilpZih0aGlzLl9hY3RpdmVUcmlnZ2VyW3RdKXJldHVybiEwO3JldHVybiExfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mKHQ9aCh7fSx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsb2UodGhpcy5lbGVtZW50KS5kYXRhKCksdCkpLmRlbGF5JiYodC5kZWxheT17c2hvdzp0LmRlbGF5LGhpZGU6dC5kZWxheX0pLFwibnVtYmVyXCI9PXR5cGVvZiB0LnRpdGxlJiYodC50aXRsZT10LnRpdGxlLnRvU3RyaW5nKCkpLFwibnVtYmVyXCI9PXR5cGVvZiB0LmNvbnRlbnQmJih0LmNvbnRlbnQ9dC5jb250ZW50LnRvU3RyaW5nKCkpLENuLnR5cGVDaGVja0NvbmZpZyhhZSx0LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpLHR9LHQuX2dldERlbGVnYXRlQ29uZmlnPWZ1bmN0aW9uKCl7dmFyIHQ9e307aWYodGhpcy5jb25maWcpZm9yKHZhciBlIGluIHRoaXMuY29uZmlnKXRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFtlXSE9PXRoaXMuY29uZmlnW2VdJiYodFtlXT10aGlzLmNvbmZpZ1tlXSk7cmV0dXJuIHR9LHQuX2NsZWFuVGlwQ2xhc3M9ZnVuY3Rpb24oKXt2YXIgdD1vZSh0aGlzLmdldFRpcEVsZW1lbnQoKSksZT10LmF0dHIoXCJjbGFzc1wiKS5tYXRjaChmZSk7bnVsbCE9PWUmJjA8ZS5sZW5ndGgmJnQucmVtb3ZlQ2xhc3MoZS5qb2luKFwiXCIpKX0sdC5faGFuZGxlUG9wcGVyUGxhY2VtZW50Q2hhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX2NsZWFuVGlwQ2xhc3MoKSx0aGlzLmFkZEF0dGFjaG1lbnRDbGFzcyh0aGlzLl9nZXRBdHRhY2htZW50KHQucGxhY2VtZW50KSl9LHQuX2ZpeFRyYW5zaXRpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldFRpcEVsZW1lbnQoKSxlPXRoaXMuY29uZmlnLmFuaW1hdGlvbjtudWxsPT09dC5nZXRBdHRyaWJ1dGUoXCJ4LXBsYWNlbWVudFwiKSYmKG9lKHQpLnJlbW92ZUNsYXNzKEVlKSx0aGlzLmNvbmZpZy5hbmltYXRpb249ITEsdGhpcy5oaWRlKCksdGhpcy5zaG93KCksdGhpcy5jb25maWcuYW5pbWF0aW9uPWUpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PW9lKHRoaXMpLmRhdGEobGUpLGU9XCJvYmplY3RcIj09dHlwZW9mIG4mJm47aWYoKHR8fCEvZGlzcG9zZXxoaWRlLy50ZXN0KG4pKSYmKHR8fCh0PW5ldyBpKHRoaXMsZSksb2UodGhpcykuZGF0YShsZSx0KSksXCJzdHJpbmdcIj09dHlwZW9mIG4pKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfX0pfSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBnZX19LHtrZXk6XCJOQU1FXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFlfX0se2tleTpcIkRBVEFfS0VZXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGxlfX0se2tleTpcIkV2ZW50XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZlfX0se2tleTpcIkVWRU5UX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBoZX19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBkZX19XSksaX0oKSxvZS5mblthZV09U2UuX2pRdWVyeUludGVyZmFjZSxvZS5mblthZV0uQ29uc3RydWN0b3I9U2Usb2UuZm5bYWVdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gb2UuZm5bYWVdPWNlLFNlLl9qUXVlcnlJbnRlcmZhY2V9LFNlKSxPbj0oTmU9XCJwb3BvdmVyXCIsa2U9XCIuXCIrKE9lPVwiYnMucG9wb3ZlclwiKSxQZT0od2U9ZSkuZm5bTmVdLExlPVwiYnMtcG9wb3ZlclwiLGplPW5ldyBSZWdFeHAoXCIoXnxcXFxccylcIitMZStcIlxcXFxTK1wiLFwiZ1wiKSxSZT1oKHt9LE5uLkRlZmF1bHQse3BsYWNlbWVudDpcInJpZ2h0XCIsdHJpZ2dlcjpcImNsaWNrXCIsY29udGVudDpcIlwiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPVwicG9wb3ZlclwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+PGgzIGNsYXNzPVwicG9wb3Zlci1oZWFkZXJcIj48L2gzPjxkaXYgY2xhc3M9XCJwb3BvdmVyLWJvZHlcIj48L2Rpdj48L2Rpdj4nfSksSGU9aCh7fSxObi5EZWZhdWx0VHlwZSx7Y29udGVudDpcIihzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbilcIn0pLFdlPVwiZmFkZVwiLHhlPVwiLnBvcG92ZXItaGVhZGVyXCIsVWU9XCIucG9wb3Zlci1ib2R5XCIsS2U9e0hJREU6XCJoaWRlXCIra2UsSElEREVOOlwiaGlkZGVuXCIra2UsU0hPVzooTWU9XCJzaG93XCIpK2tlLFNIT1dOOlwic2hvd25cIitrZSxJTlNFUlRFRDpcImluc2VydGVkXCIra2UsQ0xJQ0s6XCJjbGlja1wiK2tlLEZPQ1VTSU46XCJmb2N1c2luXCIra2UsRk9DVVNPVVQ6XCJmb2N1c291dFwiK2tlLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIra2UsTU9VU0VMRUFWRTpcIm1vdXNlbGVhdmVcIitrZX0sRmU9ZnVuY3Rpb24odCl7dmFyIGUsbjtmdW5jdGlvbiBpKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfW49dCwoZT1pKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSksKGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUpLl9fcHJvdG9fXz1uO3ZhciByPWkucHJvdG90eXBlO3JldHVybiByLmlzV2l0aENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLl9nZXRDb250ZW50KCl9LHIuYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe3dlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5hZGRDbGFzcyhMZStcIi1cIit0KX0sci5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHx3ZSh0aGlzLmNvbmZpZy50ZW1wbGF0ZSlbMF0sdGhpcy50aXB9LHIuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciB0PXdlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKTt0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZCh4ZSksdGhpcy5nZXRUaXRsZSgpKTt2YXIgZT10aGlzLl9nZXRDb250ZW50KCk7XCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKGU9ZS5jYWxsKHRoaXMuZWxlbWVudCkpLHRoaXMuc2V0RWxlbWVudENvbnRlbnQodC5maW5kKFVlKSxlKSx0LnJlbW92ZUNsYXNzKFdlK1wiIFwiK01lKX0sci5fZ2V0Q29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS1jb250ZW50XCIpfHx0aGlzLmNvbmZpZy5jb250ZW50fSxyLl9jbGVhblRpcENsYXNzPWZ1bmN0aW9uKCl7dmFyIHQ9d2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLGU9dC5hdHRyKFwiY2xhc3NcIikubWF0Y2goamUpO251bGwhPT1lJiYwPGUubGVuZ3RoJiZ0LnJlbW92ZUNsYXNzKGUuam9pbihcIlwiKSl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9d2UodGhpcykuZGF0YShPZSksZT1cIm9iamVjdFwiPT10eXBlb2Ygbj9uOm51bGw7aWYoKHR8fCEvZGVzdHJveXxoaWRlLy50ZXN0KG4pKSYmKHR8fCh0PW5ldyBpKHRoaXMsZSksd2UodGhpcykuZGF0YShPZSx0KSksXCJzdHJpbmdcIj09dHlwZW9mIG4pKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfX0pfSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBSZX19LHtrZXk6XCJOQU1FXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5lfX0se2tleTpcIkRBVEFfS0VZXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9lfX0se2tleTpcIkV2ZW50XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEtlfX0se2tleTpcIkVWRU5UX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBrZX19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBIZX19XSksaX0oTm4pLHdlLmZuW05lXT1GZS5falF1ZXJ5SW50ZXJmYWNlLHdlLmZuW05lXS5Db25zdHJ1Y3Rvcj1GZSx3ZS5mbltOZV0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB3ZS5mbltOZV09UGUsRmUuX2pRdWVyeUludGVyZmFjZX0sRmUpLGtuPShRZT1cInNjcm9sbHNweVwiLFllPVwiLlwiKyhCZT1cImJzLnNjcm9sbHNweVwiKSxHZT0oVmU9ZSkuZm5bUWVdLHFlPXtvZmZzZXQ6MTAsbWV0aG9kOlwiYXV0b1wiLHRhcmdldDpcIlwifSx6ZT17b2Zmc2V0OlwibnVtYmVyXCIsbWV0aG9kOlwic3RyaW5nXCIsdGFyZ2V0OlwiKHN0cmluZ3xlbGVtZW50KVwifSxYZT17QUNUSVZBVEU6XCJhY3RpdmF0ZVwiK1llLFNDUk9MTDpcInNjcm9sbFwiK1llLExPQURfREFUQV9BUEk6XCJsb2FkXCIrWWUrXCIuZGF0YS1hcGlcIn0sSmU9XCJkcm9wZG93bi1pdGVtXCIsWmU9XCJhY3RpdmVcIiwkZT17REFUQV9TUFk6J1tkYXRhLXNweT1cInNjcm9sbFwiXScsQUNUSVZFOlwiLmFjdGl2ZVwiLE5BVl9MSVNUX0dST1VQOlwiLm5hdiwgLmxpc3QtZ3JvdXBcIixOQVZfTElOS1M6XCIubmF2LWxpbmtcIixOQVZfSVRFTVM6XCIubmF2LWl0ZW1cIixMSVNUX0lURU1TOlwiLmxpc3QtZ3JvdXAtaXRlbVwiLERST1BET1dOOlwiLmRyb3Bkb3duXCIsRFJPUERPV05fSVRFTVM6XCIuZHJvcGRvd24taXRlbVwiLERST1BET1dOX1RPR0dMRTpcIi5kcm9wZG93bi10b2dnbGVcIn0sdG49XCJvZmZzZXRcIixlbj1cInBvc2l0aW9uXCIsbm49ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQsZSl7dmFyIG49dGhpczt0aGlzLl9lbGVtZW50PXQsdGhpcy5fc2Nyb2xsRWxlbWVudD1cIkJPRFlcIj09PXQudGFnTmFtZT93aW5kb3c6dCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX3NlbGVjdG9yPXRoaXMuX2NvbmZpZy50YXJnZXQrXCIgXCIrJGUuTkFWX0xJTktTK1wiLFwiK3RoaXMuX2NvbmZpZy50YXJnZXQrXCIgXCIrJGUuTElTVF9JVEVNUytcIixcIit0aGlzLl9jb25maWcudGFyZ2V0K1wiIFwiKyRlLkRST1BET1dOX0lURU1TLHRoaXMuX29mZnNldHM9W10sdGhpcy5fdGFyZ2V0cz1bXSx0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLl9zY3JvbGxIZWlnaHQ9MCxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS5vbihYZS5TQ1JPTEwsZnVuY3Rpb24odCl7cmV0dXJuIG4uX3Byb2Nlc3ModCl9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9wcm9jZXNzKCl9dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIHQucmVmcmVzaD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl9zY3JvbGxFbGVtZW50PT09dGhpcy5fc2Nyb2xsRWxlbWVudC53aW5kb3c/dG46ZW4scj1cImF1dG9cIj09PXRoaXMuX2NvbmZpZy5tZXRob2Q/dDp0aGlzLl9jb25maWcubWV0aG9kLHM9cj09PWVuP3RoaXMuX2dldFNjcm9sbFRvcCgpOjA7dGhpcy5fb2Zmc2V0cz1bXSx0aGlzLl90YXJnZXRzPVtdLHRoaXMuX3Njcm9sbEhlaWdodD10aGlzLl9nZXRTY3JvbGxIZWlnaHQoKSxWZS5tYWtlQXJyYXkoVmUodGhpcy5fc2VsZWN0b3IpKS5tYXAoZnVuY3Rpb24odCl7dmFyIGUsbj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO2lmKG4mJihlPVZlKG4pWzBdKSxlKXt2YXIgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGkud2lkdGh8fGkuaGVpZ2h0KXJldHVybltWZShlKVtyXSgpLnRvcCtzLG5dfXJldHVybiBudWxsfSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0WzBdLWVbMF19KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UuX29mZnNldHMucHVzaCh0WzBdKSxlLl90YXJnZXRzLnB1c2godFsxXSl9KX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7VmUucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LEJlKSxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS5vZmYoWWUpLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9zY3JvbGxFbGVtZW50PW51bGwsdGhpcy5fY29uZmlnPW51bGwsdGhpcy5fc2VsZWN0b3I9bnVsbCx0aGlzLl9vZmZzZXRzPW51bGwsdGhpcy5fdGFyZ2V0cz1udWxsLHRoaXMuX2FjdGl2ZVRhcmdldD1udWxsLHRoaXMuX3Njcm9sbEhlaWdodD1udWxsfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mKHQ9aCh7fSxxZSx0KSkudGFyZ2V0KXt2YXIgZT1WZSh0LnRhcmdldCkuYXR0cihcImlkXCIpO2V8fChlPUNuLmdldFVJRChRZSksVmUodC50YXJnZXQpLmF0dHIoXCJpZFwiLGUpKSx0LnRhcmdldD1cIiNcIitlfXJldHVybiBDbi50eXBlQ2hlY2tDb25maWcoUWUsdCx6ZSksdH0sdC5fZ2V0U2Nyb2xsVG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/dGhpcy5fc2Nyb2xsRWxlbWVudC5wYWdlWU9mZnNldDp0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbFRvcH0sdC5fZ2V0U2Nyb2xsSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsSGVpZ2h0fHxNYXRoLm1heChkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KX0sdC5fZ2V0T2Zmc2V0SGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OnRoaXMuX3Njcm9sbEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fSx0Ll9wcm9jZXNzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0U2Nyb2xsVG9wKCkrdGhpcy5fY29uZmlnLm9mZnNldCxlPXRoaXMuX2dldFNjcm9sbEhlaWdodCgpLG49dGhpcy5fY29uZmlnLm9mZnNldCtlLXRoaXMuX2dldE9mZnNldEhlaWdodCgpO2lmKHRoaXMuX3Njcm9sbEhlaWdodCE9PWUmJnRoaXMucmVmcmVzaCgpLG48PXQpe3ZhciBpPXRoaXMuX3RhcmdldHNbdGhpcy5fdGFyZ2V0cy5sZW5ndGgtMV07dGhpcy5fYWN0aXZlVGFyZ2V0IT09aSYmdGhpcy5fYWN0aXZhdGUoaSl9ZWxzZXtpZih0aGlzLl9hY3RpdmVUYXJnZXQmJnQ8dGhpcy5fb2Zmc2V0c1swXSYmMDx0aGlzLl9vZmZzZXRzWzBdKXJldHVybiB0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx2b2lkIHRoaXMuX2NsZWFyKCk7Zm9yKHZhciByPXRoaXMuX29mZnNldHMubGVuZ3RoO3ItLTspe3RoaXMuX2FjdGl2ZVRhcmdldCE9PXRoaXMuX3RhcmdldHNbcl0mJnQ+PXRoaXMuX29mZnNldHNbcl0mJihcInVuZGVmaW5lZFwiPT10eXBlb2YgdGhpcy5fb2Zmc2V0c1tyKzFdfHx0PHRoaXMuX29mZnNldHNbcisxXSkmJnRoaXMuX2FjdGl2YXRlKHRoaXMuX3RhcmdldHNbcl0pfX19LHQuX2FjdGl2YXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2FjdGl2ZVRhcmdldD1lLHRoaXMuX2NsZWFyKCk7dmFyIHQ9dGhpcy5fc2VsZWN0b3Iuc3BsaXQoXCIsXCIpO3Q9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQrJ1tkYXRhLXRhcmdldD1cIicrZSsnXCJdLCcrdCsnW2hyZWY9XCInK2UrJ1wiXSd9KTt2YXIgbj1WZSh0LmpvaW4oXCIsXCIpKTtuLmhhc0NsYXNzKEplKT8obi5jbG9zZXN0KCRlLkRST1BET1dOKS5maW5kKCRlLkRST1BET1dOX1RPR0dMRSkuYWRkQ2xhc3MoWmUpLG4uYWRkQ2xhc3MoWmUpKToobi5hZGRDbGFzcyhaZSksbi5wYXJlbnRzKCRlLk5BVl9MSVNUX0dST1VQKS5wcmV2KCRlLk5BVl9MSU5LUytcIiwgXCIrJGUuTElTVF9JVEVNUykuYWRkQ2xhc3MoWmUpLG4ucGFyZW50cygkZS5OQVZfTElTVF9HUk9VUCkucHJldigkZS5OQVZfSVRFTVMpLmNoaWxkcmVuKCRlLk5BVl9MSU5LUykuYWRkQ2xhc3MoWmUpKSxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS50cmlnZ2VyKFhlLkFDVElWQVRFLHtyZWxhdGVkVGFyZ2V0OmV9KX0sdC5fY2xlYXI9ZnVuY3Rpb24oKXtWZSh0aGlzLl9zZWxlY3RvcikuZmlsdGVyKCRlLkFDVElWRSkucmVtb3ZlQ2xhc3MoWmUpfSxuLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PVZlKHRoaXMpLmRhdGEoQmUpO2lmKHR8fCh0PW5ldyBuKHRoaXMsXCJvYmplY3RcIj09dHlwZW9mIGUmJmUpLFZlKHRoaXMpLmRhdGEoQmUsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtlXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2UrJ1wiJyk7dFtlXSgpfX0pfSxvKG4sbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBxZX19XSksbn0oKSxWZSh3aW5kb3cpLm9uKFhlLkxPQURfREFUQV9BUEksZnVuY3Rpb24oKXtmb3IodmFyIHQ9VmUubWFrZUFycmF5KFZlKCRlLkRBVEFfU1BZKSksZT10Lmxlbmd0aDtlLS07KXt2YXIgbj1WZSh0W2VdKTtubi5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobixuLmRhdGEoKSl9fSksVmUuZm5bUWVdPW5uLl9qUXVlcnlJbnRlcmZhY2UsVmUuZm5bUWVdLkNvbnN0cnVjdG9yPW5uLFZlLmZuW1FlXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIFZlLmZuW1FlXT1HZSxubi5falF1ZXJ5SW50ZXJmYWNlfSxubiksUG49KG9uPVwiLlwiKyhzbj1cImJzLnRhYlwiKSxhbj0ocm49ZSkuZm4udGFiLGxuPXtISURFOlwiaGlkZVwiK29uLEhJRERFTjpcImhpZGRlblwiK29uLFNIT1c6XCJzaG93XCIrb24sU0hPV046XCJzaG93blwiK29uLENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitvbitcIi5kYXRhLWFwaVwifSxobj1cImRyb3Bkb3duLW1lbnVcIixjbj1cImFjdGl2ZVwiLHVuPVwiZGlzYWJsZWRcIixmbj1cImZhZGVcIixkbj1cInNob3dcIixfbj1cIi5kcm9wZG93blwiLGduPVwiLm5hdiwgLmxpc3QtZ3JvdXBcIixtbj1cIi5hY3RpdmVcIixwbj1cIj4gbGkgPiAuYWN0aXZlXCIsdm49J1tkYXRhLXRvZ2dsZT1cInRhYlwiXSwgW2RhdGEtdG9nZ2xlPVwicGlsbFwiXSwgW2RhdGEtdG9nZ2xlPVwibGlzdFwiXScsRW49XCIuZHJvcGRvd24tdG9nZ2xlXCIseW49XCI+IC5kcm9wZG93bi1tZW51IC5hY3RpdmVcIixUbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGkodCl7dGhpcy5fZWxlbWVudD10fXZhciB0PWkucHJvdG90eXBlO3JldHVybiB0LnNob3c9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO2lmKCEodGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmcm4odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoY24pfHxybih0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyh1bikpKXt2YXIgdCxpLGU9cm4odGhpcy5fZWxlbWVudCkuY2xvc2VzdChnbilbMF0scj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO2lmKGUpe3ZhciBzPVwiVUxcIj09PWUubm9kZU5hbWU/cG46bW47aT0oaT1ybi5tYWtlQXJyYXkocm4oZSkuZmluZChzKSkpW2kubGVuZ3RoLTFdfXZhciBvPXJuLkV2ZW50KGxuLkhJREUse3JlbGF0ZWRUYXJnZXQ6dGhpcy5fZWxlbWVudH0pLGE9cm4uRXZlbnQobG4uU0hPVyx7cmVsYXRlZFRhcmdldDppfSk7aWYoaSYmcm4oaSkudHJpZ2dlcihvKSxybih0aGlzLl9lbGVtZW50KS50cmlnZ2VyKGEpLCFhLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhby5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7ciYmKHQ9cm4ocilbMF0pLHRoaXMuX2FjdGl2YXRlKHRoaXMuX2VsZW1lbnQsZSk7dmFyIGw9ZnVuY3Rpb24oKXt2YXIgdD1ybi5FdmVudChsbi5ISURERU4se3JlbGF0ZWRUYXJnZXQ6bi5fZWxlbWVudH0pLGU9cm4uRXZlbnQobG4uU0hPV04se3JlbGF0ZWRUYXJnZXQ6aX0pO3JuKGkpLnRyaWdnZXIodCkscm4obi5fZWxlbWVudCkudHJpZ2dlcihlKX07dD90aGlzLl9hY3RpdmF0ZSh0LHQucGFyZW50Tm9kZSxsKTpsKCl9fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7cm4ucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHNuKSx0aGlzLl9lbGVtZW50PW51bGx9LHQuX2FjdGl2YXRlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLHI9KFwiVUxcIj09PWUubm9kZU5hbWU/cm4oZSkuZmluZChwbik6cm4oZSkuY2hpbGRyZW4obW4pKVswXSxzPW4mJnImJnJuKHIpLmhhc0NsYXNzKGZuKSxvPWZ1bmN0aW9uKCl7cmV0dXJuIGkuX3RyYW5zaXRpb25Db21wbGV0ZSh0LHIsbil9O2lmKHImJnMpe3ZhciBhPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHIpO3JuKHIpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxvKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChhKX1lbHNlIG8oKX0sdC5fdHJhbnNpdGlvbkNvbXBsZXRlPWZ1bmN0aW9uKHQsZSxuKXtpZihlKXtybihlKS5yZW1vdmVDbGFzcyhkbitcIiBcIitjbik7dmFyIGk9cm4oZS5wYXJlbnROb2RlKS5maW5kKHluKVswXTtpJiZybihpKS5yZW1vdmVDbGFzcyhjbiksXCJ0YWJcIj09PWUuZ2V0QXR0cmlidXRlKFwicm9sZVwiKSYmZS5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsITEpfWlmKHJuKHQpLmFkZENsYXNzKGNuKSxcInRhYlwiPT09dC5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpJiZ0LnNldEF0dHJpYnV0ZShcImFyaWEtc2VsZWN0ZWRcIiwhMCksQ24ucmVmbG93KHQpLHJuKHQpLmFkZENsYXNzKGRuKSx0LnBhcmVudE5vZGUmJnJuKHQucGFyZW50Tm9kZSkuaGFzQ2xhc3MoaG4pKXt2YXIgcj1ybih0KS5jbG9zZXN0KF9uKVswXTtyJiZybihyKS5maW5kKEVuKS5hZGRDbGFzcyhjbiksdC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsITApfW4mJm4oKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1ybih0aGlzKSxlPXQuZGF0YShzbik7aWYoZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKHNuLGUpKSxcInN0cmluZ1wiPT10eXBlb2Ygbil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGVbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO2Vbbl0oKX19KX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX1dKSxpfSgpLHJuKGRvY3VtZW50KS5vbihsbi5DTElDS19EQVRBX0FQSSx2bixmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksVG4uX2pRdWVyeUludGVyZmFjZS5jYWxsKHJuKHRoaXMpLFwic2hvd1wiKX0pLHJuLmZuLnRhYj1Ubi5falF1ZXJ5SW50ZXJmYWNlLHJuLmZuLnRhYi5Db25zdHJ1Y3Rvcj1Ubixybi5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBybi5mbi50YWI9YW4sVG4uX2pRdWVyeUludGVyZmFjZX0sVG4pOyFmdW5jdGlvbih0KXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkuIGpRdWVyeSBtdXN0IGJlIGluY2x1ZGVkIGJlZm9yZSBCb290c3RyYXAncyBKYXZhU2NyaXB0LlwiKTt2YXIgZT10LmZuLmpxdWVyeS5zcGxpdChcIiBcIilbMF0uc3BsaXQoXCIuXCIpO2lmKGVbMF08MiYmZVsxXTw5fHwxPT09ZVswXSYmOT09PWVbMV0mJmVbMl08MXx8NDw9ZVswXSl0aHJvdyBuZXcgRXJyb3IoXCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGF0IGxlYXN0IGpRdWVyeSB2MS45LjEgYnV0IGxlc3MgdGhhbiB2NC4wLjBcIil9KGUpLHQuVXRpbD1Dbix0LkFsZXJ0PUluLHQuQnV0dG9uPUFuLHQuQ2Fyb3VzZWw9RG4sdC5Db2xsYXBzZT1ibix0LkRyb3Bkb3duPVNuLHQuTW9kYWw9d24sdC5Qb3BvdmVyPU9uLHQuU2Nyb2xsc3B5PWtuLHQuVGFiPVBuLHQuVG9vbHRpcD1ObixPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym9vdHN0cmFwLm1pbi5qcy5tYXAiLCIvLyBodHRwczovL2QzanMub3JnIFZlcnNpb24gNS41LjAuIENvcHlyaWdodCAyMDE4IE1pa2UgQm9zdG9jay5cbihmdW5jdGlvbih0LG4pe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP24oZXhwb3J0cyk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJleHBvcnRzXCJdLG4pOm4odC5kMz10LmQzfHx7fSl9KSh0aGlzLGZ1bmN0aW9uKHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gdDxuPy0xOnQ+bj8xOnQ+PW4/MDpOYU59ZnVuY3Rpb24gZSh0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4gbih0KGUpLHIpfX0odCkpLHtsZWZ0OmZ1bmN0aW9uKG4sZSxyLGkpe2ZvcihudWxsPT1yJiYocj0wKSxudWxsPT1pJiYoaT1uLmxlbmd0aCk7cjxpOyl7dmFyIG89citpPj4+MTt0KG5bb10sZSk8MD9yPW8rMTppPW99cmV0dXJuIHJ9LHJpZ2h0OmZ1bmN0aW9uKG4sZSxyLGkpe2ZvcihudWxsPT1yJiYocj0wKSxudWxsPT1pJiYoaT1uLmxlbmd0aCk7cjxpOyl7dmFyIG89citpPj4+MTt0KG5bb10sZSk+MD9pPW86cj1vKzF9cmV0dXJuIHJ9fX1mdW5jdGlvbiByKHQsbil7cmV0dXJuW3Qsbl19ZnVuY3Rpb24gaSh0KXtyZXR1cm4gbnVsbD09PXQ/TmFOOit0fWZ1bmN0aW9uIG8odCxuKXt2YXIgZSxyLG89dC5sZW5ndGgsYT0wLHU9LTEsZj0wLGM9MDtpZihudWxsPT1uKWZvcig7Kyt1PG87KWlzTmFOKGU9aSh0W3VdKSl8fChjKz0ocj1lLWYpKihlLShmKz1yLysrYSkpKTtlbHNlIGZvcig7Kyt1PG87KWlzTmFOKGU9aShuKHRbdV0sdSx0KSkpfHwoYys9KHI9ZS1mKSooZS0oZis9ci8rK2EpKSk7aWYoYT4xKXJldHVybiBjLyhhLTEpfWZ1bmN0aW9uIGEodCxuKXt2YXIgZT1vKHQsbik7cmV0dXJuIGU/TWF0aC5zcXJ0KGUpOmV9ZnVuY3Rpb24gdSh0LG4pe3ZhciBlLHIsaSxvPXQubGVuZ3RoLGE9LTE7aWYobnVsbD09bil7Zm9yKDsrK2E8bzspaWYobnVsbCE9KGU9dFthXSkmJmU+PWUpZm9yKHI9aT1lOysrYTxvOyludWxsIT0oZT10W2FdKSYmKHI+ZSYmKHI9ZSksaTxlJiYoaT1lKSl9ZWxzZSBmb3IoOysrYTxvOylpZihudWxsIT0oZT1uKHRbYV0sYSx0KSkmJmU+PWUpZm9yKHI9aT1lOysrYTxvOyludWxsIT0oZT1uKHRbYV0sYSx0KSkmJihyPmUmJihyPWUpLGk8ZSYmKGk9ZSkpO3JldHVybltyLGldfWZ1bmN0aW9uIGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGModCl7cmV0dXJuIHR9ZnVuY3Rpb24gcyh0LG4sZSl7dD0rdCxuPStuLGU9KGk9YXJndW1lbnRzLmxlbmd0aCk8Mj8obj10LHQ9MCwxKTppPDM/MTorZTtmb3IodmFyIHI9LTEsaT0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChuLXQpL2UpKSxvPW5ldyBBcnJheShpKTsrK3I8aTspb1tyXT10K3IqZTtyZXR1cm4gb31mdW5jdGlvbiBsKHQsbixlKXt2YXIgcixpLG8sYSx1PS0xO2lmKG49K24sdD0rdCxlPStlLHQ9PT1uJiZlPjApcmV0dXJuW3RdO2lmKChyPW48dCkmJihpPXQsdD1uLG49aSksMD09PShhPWgodCxuLGUpKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxuPU1hdGguZmxvb3Iobi9hKSxvPW5ldyBBcnJheShpPU1hdGguY2VpbChuLXQrMSkpOysrdTxpOylvW3VdPSh0K3UpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksbj1NYXRoLmNlaWwobiphKSxvPW5ldyBBcnJheShpPU1hdGguY2VpbCh0LW4rMSkpOysrdTxpOylvW3VdPSh0LXUpL2E7cmV0dXJuIHImJm8ucmV2ZXJzZSgpLG99ZnVuY3Rpb24gaCh0LG4sZSl7dmFyIHI9KG4tdCkvTWF0aC5tYXgoMCxlKSxpPU1hdGguZmxvb3IoTWF0aC5sb2cocikvTWF0aC5MTjEwKSxvPXIvTWF0aC5wb3coMTAsaSk7cmV0dXJuIGk+PTA/KG8+PWlzPzEwOm8+PW9zPzU6bz49YXM/MjoxKSpNYXRoLnBvdygxMCxpKTotTWF0aC5wb3coMTAsLWkpLyhvPj1pcz8xMDpvPj1vcz81Om8+PWFzPzI6MSl9ZnVuY3Rpb24gZCh0LG4sZSl7dmFyIHI9TWF0aC5hYnMobi10KS9NYXRoLm1heCgwLGUpLGk9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhyKS9NYXRoLkxOMTApKSxvPXIvaTtyZXR1cm4gbz49aXM/aSo9MTA6bz49b3M/aSo9NTpvPj1hcyYmKGkqPTIpLG48dD8taTppfWZ1bmN0aW9uIHAodCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZyh0Lmxlbmd0aCkvTWF0aC5MTjIpKzF9ZnVuY3Rpb24gdih0LG4sZSl7aWYobnVsbD09ZSYmKGU9aSkscj10Lmxlbmd0aCl7aWYoKG49K24pPD0wfHxyPDIpcmV0dXJuK2UodFswXSwwLHQpO2lmKG4+PTEpcmV0dXJuK2UodFtyLTFdLHItMSx0KTt2YXIgcixvPShyLTEpKm4sYT1NYXRoLmZsb29yKG8pLHU9K2UodFthXSxhLHQpO3JldHVybiB1KygrZSh0W2ErMV0sYSsxLHQpLXUpKihvLWEpfX1mdW5jdGlvbiBnKHQsbil7dmFyIGUscixpPXQubGVuZ3RoLG89LTE7aWYobnVsbD09bil7Zm9yKDsrK288aTspaWYobnVsbCE9KGU9dFtvXSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9dFtvXSkmJmU+ciYmKHI9ZSl9ZWxzZSBmb3IoOysrbzxpOylpZihudWxsIT0oZT1uKHRbb10sbyx0KSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9bih0W29dLG8sdCkpJiZlPnImJihyPWUpO3JldHVybiByfWZ1bmN0aW9uIHkodCl7Zm9yKHZhciBuLGUscixpPXQubGVuZ3RoLG89LTEsYT0wOysrbzxpOylhKz10W29dLmxlbmd0aDtmb3IoZT1uZXcgQXJyYXkoYSk7LS1pPj0wOylmb3Iobj0ocj10W2ldKS5sZW5ndGg7LS1uPj0wOyllWy0tYV09cltuXTtyZXR1cm4gZX1mdW5jdGlvbiBfKHQsbil7dmFyIGUscixpPXQubGVuZ3RoLG89LTE7aWYobnVsbD09bil7Zm9yKDsrK288aTspaWYobnVsbCE9KGU9dFtvXSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9dFtvXSkmJnI+ZSYmKHI9ZSl9ZWxzZSBmb3IoOysrbzxpOylpZihudWxsIT0oZT1uKHRbb10sbyx0KSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9bih0W29dLG8sdCkpJiZyPmUmJihyPWUpO3JldHVybiByfWZ1bmN0aW9uIGIodCl7aWYoIShpPXQubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIG49LTEsZT1fKHQsbSkscj1uZXcgQXJyYXkoZSk7KytuPGU7KWZvcih2YXIgaSxvPS0xLGE9cltuXT1uZXcgQXJyYXkoaSk7KytvPGk7KWFbb109dFtvXVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBtKHQpe3JldHVybiB0Lmxlbmd0aH1mdW5jdGlvbiB4KHQpe3JldHVybiB0fWZ1bmN0aW9uIHcodCl7cmV0dXJuXCJ0cmFuc2xhdGUoXCIrKHQrLjUpK1wiLDApXCJ9ZnVuY3Rpb24gTSh0KXtyZXR1cm5cInRyYW5zbGF0ZSgwLFwiKyh0Ky41KStcIilcIn1mdW5jdGlvbiBBKCl7cmV0dXJuIXRoaXMuX19heGlzfWZ1bmN0aW9uIFQodCxuKXtmdW5jdGlvbiBlKGUpe3ZhciBoPW51bGw9PWk/bi50aWNrcz9uLnRpY2tzLmFwcGx5KG4scik6bi5kb21haW4oKTppLGQ9bnVsbD09bz9uLnRpY2tGb3JtYXQ/bi50aWNrRm9ybWF0LmFwcGx5KG4scik6eDpvLHA9TWF0aC5tYXgoYSwwKStmLHY9bi5yYW5nZSgpLGc9K3ZbMF0rLjUseT0rdlt2Lmxlbmd0aC0xXSsuNSxfPShuLmJhbmR3aWR0aD9mdW5jdGlvbih0KXt2YXIgbj1NYXRoLm1heCgwLHQuYmFuZHdpZHRoKCktMSkvMjtyZXR1cm4gdC5yb3VuZCgpJiYobj1NYXRoLnJvdW5kKG4pKSxmdW5jdGlvbihlKXtyZXR1cm4rdChlKStufX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybit0KG4pfX0pKG4uY29weSgpKSxiPWUuc2VsZWN0aW9uP2Uuc2VsZWN0aW9uKCk6ZSxtPWIuc2VsZWN0QWxsKFwiLmRvbWFpblwiKS5kYXRhKFtudWxsXSksdz1iLnNlbGVjdEFsbChcIi50aWNrXCIpLmRhdGEoaCxuKS5vcmRlcigpLE09dy5leGl0KCksVD13LmVudGVyKCkuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIixcInRpY2tcIiksTj13LnNlbGVjdChcImxpbmVcIiksUz13LnNlbGVjdChcInRleHRcIik7bT1tLm1lcmdlKG0uZW50ZXIoKS5pbnNlcnQoXCJwYXRoXCIsXCIudGlja1wiKS5hdHRyKFwiY2xhc3NcIixcImRvbWFpblwiKS5hdHRyKFwic3Ryb2tlXCIsXCIjMDAwXCIpKSx3PXcubWVyZ2UoVCksTj1OLm1lcmdlKFQuYXBwZW5kKFwibGluZVwiKS5hdHRyKFwic3Ryb2tlXCIsXCIjMDAwXCIpLmF0dHIocytcIjJcIixjKmEpKSxTPVMubWVyZ2UoVC5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJmaWxsXCIsXCIjMDAwXCIpLmF0dHIocyxjKnApLmF0dHIoXCJkeVwiLHQ9PT1mcz9cIjBlbVwiOnQ9PT1zcz9cIjAuNzFlbVwiOlwiMC4zMmVtXCIpKSxlIT09YiYmKG09bS50cmFuc2l0aW9uKGUpLHc9dy50cmFuc2l0aW9uKGUpLE49Ti50cmFuc2l0aW9uKGUpLFM9Uy50cmFuc2l0aW9uKGUpLE09TS50cmFuc2l0aW9uKGUpLmF0dHIoXCJvcGFjaXR5XCIsaHMpLmF0dHIoXCJ0cmFuc2Zvcm1cIixmdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1fKHQpKT9sKHQpOnRoaXMuZ2V0QXR0cmlidXRlKFwidHJhbnNmb3JtXCIpfSksVC5hdHRyKFwib3BhY2l0eVwiLGhzKS5hdHRyKFwidHJhbnNmb3JtXCIsZnVuY3Rpb24odCl7dmFyIG49dGhpcy5wYXJlbnROb2RlLl9fYXhpcztyZXR1cm4gbChuJiZpc0Zpbml0ZShuPW4odCkpP246Xyh0KSl9KSksTS5yZW1vdmUoKSxtLmF0dHIoXCJkXCIsdD09PWxzfHx0PT1jcz9cIk1cIitjKnUrXCIsXCIrZytcIkgwLjVWXCIreStcIkhcIitjKnU6XCJNXCIrZytcIixcIitjKnUrXCJWMC41SFwiK3krXCJWXCIrYyp1KSx3LmF0dHIoXCJvcGFjaXR5XCIsMSkuYXR0cihcInRyYW5zZm9ybVwiLGZ1bmN0aW9uKHQpe3JldHVybiBsKF8odCkpfSksTi5hdHRyKHMrXCIyXCIsYyphKSxTLmF0dHIocyxjKnApLnRleHQoZCksYi5maWx0ZXIoQSkuYXR0cihcImZpbGxcIixcIm5vbmVcIikuYXR0cihcImZvbnQtc2l6ZVwiLDEwKS5hdHRyKFwiZm9udC1mYW1pbHlcIixcInNhbnMtc2VyaWZcIikuYXR0cihcInRleHQtYW5jaG9yXCIsdD09PWNzP1wic3RhcnRcIjp0PT09bHM/XCJlbmRcIjpcIm1pZGRsZVwiKSxiLmVhY2goZnVuY3Rpb24oKXt0aGlzLl9fYXhpcz1ffSl9dmFyIHI9W10saT1udWxsLG89bnVsbCxhPTYsdT02LGY9MyxjPXQ9PT1mc3x8dD09PWxzPy0xOjEscz10PT09bHN8fHQ9PT1jcz9cInhcIjpcInlcIixsPXQ9PT1mc3x8dD09PXNzP3c6TTtyZXR1cm4gZS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGUpOm59LGUudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gcj11cy5jYWxsKGFyZ3VtZW50cyksZX0sZS50aWNrQXJndW1lbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PXQ/W106dXMuY2FsbCh0KSxlKTpyLnNsaWNlKCl9LGUudGlja1ZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT10P251bGw6dXMuY2FsbCh0KSxlKTppJiZpLnNsaWNlKCl9LGUudGlja0Zvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LGUpOm99LGUudGlja1NpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dT0rdCxlKTphfSxlLnRpY2tTaXplSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3QsZSk6YX0sZS50aWNrU2l6ZU91dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LGUpOnV9LGUudGlja1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9K3QsZSk6Zn0sZX1mdW5jdGlvbiBOKCl7Zm9yKHZhciB0LG49MCxlPWFyZ3VtZW50cy5sZW5ndGgscj17fTtuPGU7KytuKXtpZighKHQ9YXJndW1lbnRzW25dK1wiXCIpfHx0IGluIHIpdGhyb3cgbmV3IEVycm9yKFwiaWxsZWdhbCB0eXBlOiBcIit0KTtyW3RdPVtdfXJldHVybiBuZXcgUyhyKX1mdW5jdGlvbiBTKHQpe3RoaXMuXz10fWZ1bmN0aW9uIEUodCxuLGUpe2Zvcih2YXIgcj0wLGk9dC5sZW5ndGg7cjxpOysrcilpZih0W3JdLm5hbWU9PT1uKXt0W3JdPWRzLHQ9dC5zbGljZSgwLHIpLmNvbmNhdCh0LnNsaWNlKHIrMSkpO2JyZWFrfXJldHVybiBudWxsIT1lJiZ0LnB1c2goe25hbWU6bix2YWx1ZTplfSksdH1mdW5jdGlvbiBrKHQpe3ZhciBuPXQrPVwiXCIsZT1uLmluZGV4T2YoXCI6XCIpO3JldHVybiBlPj0wJiZcInhtbG5zXCIhPT0obj10LnNsaWNlKDAsZSkpJiYodD10LnNsaWNlKGUrMSkpLHZzLmhhc093blByb3BlcnR5KG4pP3tzcGFjZTp2c1tuXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIEModCl7dmFyIG49ayh0KTtyZXR1cm4obi5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5vd25lckRvY3VtZW50LGU9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIGU9PT1wcyYmbi5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09cHM/bi5jcmVhdGVFbGVtZW50KHQpOm4uY3JlYXRlRWxlbWVudE5TKGUsdCl9fSkobil9ZnVuY3Rpb24gUCgpe31mdW5jdGlvbiB6KHQpe3JldHVybiBudWxsPT10P1A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiBSKCl7cmV0dXJuW119ZnVuY3Rpb24gTCh0KXtyZXR1cm4gbnVsbD09dD9SOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gRCh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBVKHQsbil7dGhpcy5vd25lckRvY3VtZW50PXQub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST10Lm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PXQsdGhpcy5fX2RhdGFfXz1ufWZ1bmN0aW9uIHEodCxuLGUscixpLG8pe2Zvcih2YXIgYSx1PTAsZj1uLmxlbmd0aCxjPW8ubGVuZ3RoO3U8YzsrK3UpKGE9blt1XSk/KGEuX19kYXRhX189b1t1XSxyW3VdPWEpOmVbdV09bmV3IFUodCxvW3VdKTtmb3IoO3U8ZjsrK3UpKGE9blt1XSkmJihpW3VdPWEpfWZ1bmN0aW9uIE8odCxuLGUscixpLG8sYSl7dmFyIHUsZixjLHM9e30sbD1uLmxlbmd0aCxoPW8ubGVuZ3RoLGQ9bmV3IEFycmF5KGwpO2Zvcih1PTA7dTxsOysrdSkoZj1uW3VdKSYmKGRbdV09Yz1tcythLmNhbGwoZixmLl9fZGF0YV9fLHUsbiksYyBpbiBzP2lbdV09ZjpzW2NdPWYpO2Zvcih1PTA7dTxoOysrdSkoZj1zW2M9bXMrYS5jYWxsKHQsb1t1XSx1LG8pXSk/KHJbdV09ZixmLl9fZGF0YV9fPW9bdV0sc1tjXT1udWxsKTplW3VdPW5ldyBVKHQsb1t1XSk7Zm9yKHU9MDt1PGw7Kyt1KShmPW5bdV0pJiZzW2RbdV1dPT09ZiYmKGlbdV09Zil9ZnVuY3Rpb24gWSh0LG4pe3JldHVybiB0PG4/LTE6dD5uPzE6dD49bj8wOk5hTn1mdW5jdGlvbiBCKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBGKHQsbil7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuKXx8Qih0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShuKX1mdW5jdGlvbiBJKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLyl9ZnVuY3Rpb24gaih0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyBIKHQpfWZ1bmN0aW9uIEgodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPUkodC5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIil9ZnVuY3Rpb24gWCh0LG4pe2Zvcih2YXIgZT1qKHQpLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspZS5hZGQobltyXSl9ZnVuY3Rpb24gRyh0LG4pe2Zvcih2YXIgZT1qKHQpLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspZS5yZW1vdmUobltyXSl9ZnVuY3Rpb24gVigpe3RoaXMudGV4dENvbnRlbnQ9XCJcIn1mdW5jdGlvbiAkKCl7dGhpcy5pbm5lckhUTUw9XCJcIn1mdW5jdGlvbiBXKCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIFooKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBRKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gSigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIEsoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMSksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gdHQoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMCksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gbnQodCxuLGUpe3JldHVybiB0PWV0KHQsbixlKSxmdW5jdGlvbihuKXt2YXIgZT1uLnJlbGF0ZWRUYXJnZXQ7ZSYmKGU9PT10aGlzfHw4JmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykpfHx0LmNhbGwodGhpcyxuKX19ZnVuY3Rpb24gZXQobixlLHIpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgbz10LmV2ZW50O3QuZXZlbnQ9aTt0cnl7bi5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLHIpfWZpbmFsbHl7dC5ldmVudD1vfX19ZnVuY3Rpb24gcnQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5fX29uO2lmKG4pe2Zvcih2YXIgZSxyPTAsaT0tMSxvPW4ubGVuZ3RoO3I8bzsrK3IpZT1uW3JdLHQudHlwZSYmZS50eXBlIT09dC50eXBlfHxlLm5hbWUhPT10Lm5hbWU/blsrK2ldPWU6dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGUudHlwZSxlLmxpc3RlbmVyLGUuY2FwdHVyZSk7KytpP24ubGVuZ3RoPWk6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIGl0KHQsbixlKXt2YXIgcj14cy5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP250OmV0O3JldHVybiBmdW5jdGlvbihpLG8sYSl7dmFyIHUsZj10aGlzLl9fb24sYz1yKG4sbyxhKTtpZihmKWZvcih2YXIgcz0wLGw9Zi5sZW5ndGg7czxsOysrcylpZigodT1mW3NdKS50eXBlPT09dC50eXBlJiZ1Lm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih1LnR5cGUsdS5saXN0ZW5lcix1LmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcih1LnR5cGUsdS5saXN0ZW5lcj1jLHUuY2FwdHVyZT1lKSx2b2lkKHUudmFsdWU9bik7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLGUpLHU9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOm4sbGlzdGVuZXI6YyxjYXB0dXJlOmV9LGY/Zi5wdXNoKHUpOnRoaXMuX19vbj1bdV19fWZ1bmN0aW9uIG90KG4sZSxyLGkpe3ZhciBvPXQuZXZlbnQ7bi5zb3VyY2VFdmVudD10LmV2ZW50LHQuZXZlbnQ9bjt0cnl7cmV0dXJuIGUuYXBwbHkocixpKX1maW5hbGx5e3QuZXZlbnQ9b319ZnVuY3Rpb24gYXQodCxuLGUpe3ZhciByPUIodCksaT1yLkN1c3RvbUV2ZW50O1wiZnVuY3Rpb25cIj09dHlwZW9mIGk/aT1uZXcgaShuLGUpOihpPXIuZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJFdmVudFwiKSxlPyhpLmluaXRFdmVudChuLGUuYnViYmxlcyxlLmNhbmNlbGFibGUpLGkuZGV0YWlsPWUuZGV0YWlsKTppLmluaXRFdmVudChuLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KGkpfWZ1bmN0aW9uIHV0KHQsbil7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1ufWZ1bmN0aW9uIGZ0KCl7cmV0dXJuIG5ldyB1dChbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLHdzKX1mdW5jdGlvbiBjdCh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9uZXcgdXQoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB1dChbW3RdXSx3cyl9ZnVuY3Rpb24gc3QoKXtyZXR1cm4gbmV3IGx0fWZ1bmN0aW9uIGx0KCl7dGhpcy5fPVwiQFwiKygrK01zKS50b1N0cmluZygzNil9ZnVuY3Rpb24gaHQoKXtmb3IodmFyIG4sZT10LmV2ZW50O249ZS5zb3VyY2VFdmVudDspZT1uO3JldHVybiBlfWZ1bmN0aW9uIGR0KHQsbil7dmFyIGU9dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYoZS5jcmVhdGVTVkdQb2ludCl7dmFyIHI9ZS5jcmVhdGVTVkdQb2ludCgpO3JldHVybiByLng9bi5jbGllbnRYLHIueT1uLmNsaWVudFkscj1yLm1hdHJpeFRyYW5zZm9ybSh0LmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSksW3IueCxyLnldfXZhciBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW24uY2xpZW50WC1pLmxlZnQtdC5jbGllbnRMZWZ0LG4uY2xpZW50WS1pLnRvcC10LmNsaWVudFRvcF19ZnVuY3Rpb24gcHQodCl7dmFyIG49aHQoKTtyZXR1cm4gbi5jaGFuZ2VkVG91Y2hlcyYmKG49bi5jaGFuZ2VkVG91Y2hlc1swXSksZHQodCxuKX1mdW5jdGlvbiB2dCh0LG4sZSl7YXJndW1lbnRzLmxlbmd0aDwzJiYoZT1uLG49aHQoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciByLGk9MCxvPW4/bi5sZW5ndGg6MDtpPG87KytpKWlmKChyPW5baV0pLmlkZW50aWZpZXI9PT1lKXJldHVybiBkdCh0LHIpO3JldHVybiBudWxsfWZ1bmN0aW9uIGd0KCl7dC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB5dCgpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIF90KHQpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGU9Y3QodCkub24oXCJkcmFnc3RhcnQuZHJhZ1wiLHl0LCEwKTtcIm9uc2VsZWN0c3RhcnRcImluIG4/ZS5vbihcInNlbGVjdHN0YXJ0LmRyYWdcIix5dCwhMCk6KG4uX19ub3NlbGVjdD1uLnN0eWxlLk1velVzZXJTZWxlY3Qsbi5zdHlsZS5Nb3pVc2VyU2VsZWN0PVwibm9uZVwiKX1mdW5jdGlvbiBidCh0LG4pe3ZhciBlPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9Y3QodCkub24oXCJkcmFnc3RhcnQuZHJhZ1wiLG51bGwpO24mJihyLm9uKFwiY2xpY2suZHJhZ1wiLHl0LCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5vbihcImNsaWNrLmRyYWdcIixudWxsKX0sMCkpLFwib25zZWxlY3RzdGFydFwiaW4gZT9yLm9uKFwic2VsZWN0c3RhcnQuZHJhZ1wiLG51bGwpOihlLnN0eWxlLk1velVzZXJTZWxlY3Q9ZS5fX25vc2VsZWN0LGRlbGV0ZSBlLl9fbm9zZWxlY3QpfWZ1bmN0aW9uIG10KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiB4dCh0LG4sZSxyLGksbyxhLHUsZixjKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1uLHRoaXMuc3ViamVjdD1lLHRoaXMuaWRlbnRpZmllcj1yLHRoaXMuYWN0aXZlPWksdGhpcy54PW8sdGhpcy55PWEsdGhpcy5keD11LHRoaXMuZHk9Zix0aGlzLl89Y31mdW5jdGlvbiB3dCgpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBNdCgpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9ZnVuY3Rpb24gQXQobil7cmV0dXJuIG51bGw9PW4/e3g6dC5ldmVudC54LHk6dC5ldmVudC55fTpufWZ1bmN0aW9uIFR0KCl7cmV0dXJuXCJvbnRvdWNoc3RhcnRcImluIHRoaXN9ZnVuY3Rpb24gTnQodCxuLGUpe3QucHJvdG90eXBlPW4ucHJvdG90eXBlPWUsZS5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIFN0KHQsbil7dmFyIGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSk7Zm9yKHZhciByIGluIG4pZVtyXT1uW3JdO3JldHVybiBlfWZ1bmN0aW9uIEV0KCl7fWZ1bmN0aW9uIGt0KHQpe3ZhciBuO3JldHVybiB0PSh0K1wiXCIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLChuPVNzLmV4ZWModCkpPyhuPXBhcnNlSW50KG5bMV0sMTYpLG5ldyBMdChuPj44JjE1fG4+PjQmMjQwLG4+PjQmMTV8MjQwJm4sKDE1Jm4pPDw0fDE1Jm4sMSkpOihuPUVzLmV4ZWModCkpP0N0KHBhcnNlSW50KG5bMV0sMTYpKToobj1rcy5leGVjKHQpKT9uZXcgTHQoblsxXSxuWzJdLG5bM10sMSk6KG49Q3MuZXhlYyh0KSk/bmV3IEx0KDI1NSpuWzFdLzEwMCwyNTUqblsyXS8xMDAsMjU1Km5bM10vMTAwLDEpOihuPVBzLmV4ZWModCkpP1B0KG5bMV0sblsyXSxuWzNdLG5bNF0pOihuPXpzLmV4ZWModCkpP1B0KDI1NSpuWzFdLzEwMCwyNTUqblsyXS8xMDAsMjU1Km5bM10vMTAwLG5bNF0pOihuPVJzLmV4ZWModCkpP1V0KG5bMV0sblsyXS8xMDAsblszXS8xMDAsMSk6KG49THMuZXhlYyh0KSk/VXQoblsxXSxuWzJdLzEwMCxuWzNdLzEwMCxuWzRdKTpEcy5oYXNPd25Qcm9wZXJ0eSh0KT9DdChEc1t0XSk6XCJ0cmFuc3BhcmVudFwiPT09dD9uZXcgTHQoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBDdCh0KXtyZXR1cm4gbmV3IEx0KHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCwxKX1mdW5jdGlvbiBQdCh0LG4sZSxyKXtyZXR1cm4gcjw9MCYmKHQ9bj1lPU5hTiksbmV3IEx0KHQsbixlLHIpfWZ1bmN0aW9uIHp0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgRXR8fCh0PWt0KHQpKSx0Pyh0PXQucmdiKCksbmV3IEx0KHQucix0LmcsdC5iLHQub3BhY2l0eSkpOm5ldyBMdH1mdW5jdGlvbiBSdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/enQodCk6bmV3IEx0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBMdCh0LG4sZSxyKXt0aGlzLnI9K3QsdGhpcy5nPStuLHRoaXMuYj0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gRHQodCl7cmV0dXJuKCh0PU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodCl8fDApKSk8MTY/XCIwXCI6XCJcIikrdC50b1N0cmluZygxNil9ZnVuY3Rpb24gVXQodCxuLGUscil7cmV0dXJuIHI8PTA/dD1uPWU9TmFOOmU8PTB8fGU+PTE/dD1uPU5hTjpuPD0wJiYodD1OYU4pLG5ldyBPdCh0LG4sZSxyKX1mdW5jdGlvbiBxdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIE90KXJldHVybiBuZXcgT3QodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgRXR8fCh0PWt0KHQpKSwhdClyZXR1cm4gbmV3IE90O2lmKHQgaW5zdGFuY2VvZiBPdClyZXR1cm4gdDt2YXIgbj0odD10LnJnYigpKS5yLzI1NSxlPXQuZy8yNTUscj10LmIvMjU1LGk9TWF0aC5taW4obixlLHIpLG89TWF0aC5tYXgobixlLHIpLGE9TmFOLHU9by1pLGY9KG8raSkvMjtyZXR1cm4gdT8oYT1uPT09bz8oZS1yKS91KzYqKGU8cik6ZT09PW8/KHItbikvdSsyOihuLWUpL3UrNCx1Lz1mPC41P28raToyLW8taSxhKj02MCk6dT1mPjAmJmY8MT8wOmEsbmV3IE90KGEsdSxmLHQub3BhY2l0eSl9KHQpOm5ldyBPdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gT3QodCxuLGUscil7dGhpcy5oPSt0LHRoaXMucz0rbix0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIFl0KHQsbixlKXtyZXR1cm4gMjU1Kih0PDYwP24rKGUtbikqdC82MDp0PDE4MD9lOnQ8MjQwP24rKGUtbikqKDI0MC10KS82MDpuKX1mdW5jdGlvbiBCdCh0KXtpZih0IGluc3RhbmNlb2YgSXQpcmV0dXJuIG5ldyBJdCh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBXdCl7aWYoaXNOYU4odC5oKSlyZXR1cm4gbmV3IEl0KHQubCwwLDAsdC5vcGFjaXR5KTt2YXIgbj10LmgqVXM7cmV0dXJuIG5ldyBJdCh0LmwsTWF0aC5jb3MobikqdC5jLE1hdGguc2luKG4pKnQuYyx0Lm9wYWNpdHkpfXQgaW5zdGFuY2VvZiBMdHx8KHQ9enQodCkpO3ZhciBlLHIsaT1HdCh0LnIpLG89R3QodC5nKSxhPUd0KHQuYiksdT1qdCgoLjIyMjUwNDUqaSsuNzE2ODc4NipvKy4wNjA2MTY5KmEpL1lzKTtyZXR1cm4gaT09PW8mJm89PT1hP2U9cj11OihlPWp0KCguNDM2MDc0NyppKy4zODUwNjQ5Km8rLjE0MzA4MDQqYSkvT3MpLHI9anQoKC4wMTM5MzIyKmkrLjA5NzEwNDUqbysuNzE0MTczMyphKS9CcykpLG5ldyBJdCgxMTYqdS0xNiw1MDAqKGUtdSksMjAwKih1LXIpLHQub3BhY2l0eSl9ZnVuY3Rpb24gRnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0J0KHQpOm5ldyBJdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gSXQodCxuLGUscil7dGhpcy5sPSt0LHRoaXMuYT0rbix0aGlzLmI9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIGp0KHQpe3JldHVybiB0PkhzP01hdGgucG93KHQsMS8zKTp0L2pzK0ZzfWZ1bmN0aW9uIEh0KHQpe3JldHVybiB0PklzP3QqdCp0OmpzKih0LUZzKX1mdW5jdGlvbiBYdCh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIEd0KHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIFZ0KHQpe2lmKHQgaW5zdGFuY2VvZiBXdClyZXR1cm4gbmV3IFd0KHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIEl0fHwodD1CdCh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IFd0KE5hTiwwLHQubCx0Lm9wYWNpdHkpO3ZhciBuPU1hdGguYXRhbjIodC5iLHQuYSkqcXM7cmV0dXJuIG5ldyBXdChuPDA/biszNjA6bixNYXRoLnNxcnQodC5hKnQuYSt0LmIqdC5iKSx0LmwsdC5vcGFjaXR5KX1mdW5jdGlvbiAkdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/VnQodCk6bmV3IFd0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBXdCh0LG4sZSxyKXt0aGlzLmg9K3QsdGhpcy5jPStuLHRoaXMubD0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gWnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2Z1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBRdClyZXR1cm4gbmV3IFF0KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7dCBpbnN0YW5jZW9mIEx0fHwodD16dCh0KSk7dmFyIG49dC5yLzI1NSxlPXQuZy8yNTUscj10LmIvMjU1LGk9KFpzKnIrJHMqbi1XcyplKS8oWnMrJHMtV3MpLG89ci1pLGE9KFZzKihlLWkpLVhzKm8pL0dzLHU9TWF0aC5zcXJ0KGEqYStvKm8pLyhWcyppKigxLWkpKSxmPXU/TWF0aC5hdGFuMihhLG8pKnFzLTEyMDpOYU47cmV0dXJuIG5ldyBRdChmPDA/ZiszNjA6Zix1LGksdC5vcGFjaXR5KX0odCk6bmV3IFF0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBRdCh0LG4sZSxyKXt0aGlzLmg9K3QsdGhpcy5zPStuLHRoaXMubD0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gSnQodCxuLGUscixpKXt2YXIgbz10KnQsYT1vKnQ7cmV0dXJuKCgxLTMqdCszKm8tYSkqbisoNC02Km8rMyphKSplKygxKzMqdCszKm8tMyphKSpyK2EqaSkvNn1mdW5jdGlvbiBLdCh0KXt2YXIgbj10Lmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1lPD0wP2U9MDplPj0xPyhlPTEsbi0xKTpNYXRoLmZsb29yKGUqbiksaT10W3JdLG89dFtyKzFdLGE9cj4wP3Rbci0xXToyKmktbyx1PXI8bi0xP3RbcisyXToyKm8taTtyZXR1cm4gSnQoKGUtci9uKSpuLGEsaSxvLHUpfX1mdW5jdGlvbiB0bih0KXt2YXIgbj10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9TWF0aC5mbG9vcigoKGUlPTEpPDA/KytlOmUpKm4pLGk9dFsocituLTEpJW5dLG89dFtyJW5dLGE9dFsocisxKSVuXSx1PXRbKHIrMiklbl07cmV0dXJuIEp0KChlLXIvbikqbixpLG8sYSx1KX19ZnVuY3Rpb24gbm4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGVuKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0K2Uqbn19ZnVuY3Rpb24gcm4odCxuKXt2YXIgZT1uLXQ7cmV0dXJuIGU/ZW4odCxlPjE4MHx8ZTwtMTgwP2UtMzYwKk1hdGgucm91bmQoZS8zNjApOmUpOm5uKGlzTmFOKHQpP246dCl9ZnVuY3Rpb24gb24odCl7cmV0dXJuIDE9PSh0PSt0KT9hbjpmdW5jdGlvbihuLGUpe3JldHVybiBlLW4/ZnVuY3Rpb24odCxuLGUpe3JldHVybiB0PU1hdGgucG93KHQsZSksbj1NYXRoLnBvdyhuLGUpLXQsZT0xL2UsZnVuY3Rpb24ocil7cmV0dXJuIE1hdGgucG93KHQrcipuLGUpfX0obixlLHQpOm5uKGlzTmFOKG4pP2U6bil9fWZ1bmN0aW9uIGFuKHQsbil7dmFyIGU9bi10O3JldHVybiBlP2VuKHQsZSk6bm4oaXNOYU4odCk/bjp0KX1mdW5jdGlvbiB1bih0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGUscixpPW4ubGVuZ3RoLG89bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpLHU9bmV3IEFycmF5KGkpO2ZvcihlPTA7ZTxpOysrZSlyPVJ0KG5bZV0pLG9bZV09ci5yfHwwLGFbZV09ci5nfHwwLHVbZV09ci5ifHwwO3JldHVybiBvPXQobyksYT10KGEpLHU9dCh1KSxyLm9wYWNpdHk9MSxmdW5jdGlvbih0KXtyZXR1cm4gci5yPW8odCksci5nPWEodCksci5iPXUodCkscitcIlwifX19ZnVuY3Rpb24gZm4odCxuKXt2YXIgZSxyPW4/bi5sZW5ndGg6MCxpPXQ/TWF0aC5taW4ocix0Lmxlbmd0aCk6MCxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShyKTtmb3IoZT0wO2U8aTsrK2Upb1tlXT1kbih0W2VdLG5bZV0pO2Zvcig7ZTxyOysrZSlhW2VdPW5bZV07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTxpOysrZSlhW2VdPW9bZV0odCk7cmV0dXJuIGF9fWZ1bmN0aW9uIGNuKHQsbil7dmFyIGU9bmV3IERhdGU7cmV0dXJuIHQ9K3Qsbi09dCxmdW5jdGlvbihyKXtyZXR1cm4gZS5zZXRUaW1lKHQrbipyKSxlfX1mdW5jdGlvbiBzbih0LG4pe3JldHVybiB0PSt0LG4tPXQsZnVuY3Rpb24oZSl7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBsbih0LG4pe3ZhciBlLHI9e30saT17fTtudWxsIT09dCYmXCJvYmplY3RcIj09dHlwZW9mIHR8fCh0PXt9KSxudWxsIT09biYmXCJvYmplY3RcIj09dHlwZW9mIG58fChuPXt9KTtmb3IoZSBpbiBuKWUgaW4gdD9yW2VdPWRuKHRbZV0sbltlXSk6aVtlXT1uW2VdO3JldHVybiBmdW5jdGlvbih0KXtmb3IoZSBpbiByKWlbZV09cltlXSh0KTtyZXR1cm4gaX19ZnVuY3Rpb24gaG4odCxuKXt2YXIgZSxyLGksbz1hbC5sYXN0SW5kZXg9dWwubGFzdEluZGV4PTAsYT0tMSx1PVtdLGY9W107Zm9yKHQrPVwiXCIsbis9XCJcIjsoZT1hbC5leGVjKHQpKSYmKHI9dWwuZXhlYyhuKSk7KShpPXIuaW5kZXgpPm8mJihpPW4uc2xpY2UobyxpKSx1W2FdP3VbYV0rPWk6dVsrK2FdPWkpLChlPWVbMF0pPT09KHI9clswXSk/dVthXT91W2FdKz1yOnVbKythXT1yOih1WysrYV09bnVsbCxmLnB1c2goe2k6YSx4OnNuKGUscil9KSksbz11bC5sYXN0SW5kZXg7cmV0dXJuIG88bi5sZW5ndGgmJihpPW4uc2xpY2UobyksdVthXT91W2FdKz1pOnVbKythXT1pKSx1Lmxlbmd0aDwyP2ZbMF0/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0KG4pK1wiXCJ9fShmWzBdLngpOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0obik6KG49Zi5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9MDtyPG47KytyKXVbKGU9ZltyXSkuaV09ZS54KHQpO3JldHVybiB1LmpvaW4oXCJcIil9KX1mdW5jdGlvbiBkbih0LG4pe3ZhciBlLHI9dHlwZW9mIG47cmV0dXJuIG51bGw9PW58fFwiYm9vbGVhblwiPT09cj9ubihuKTooXCJudW1iZXJcIj09PXI/c246XCJzdHJpbmdcIj09PXI/KGU9a3QobikpPyhuPWUscmwpOmhuOm4gaW5zdGFuY2VvZiBrdD9ybDpuIGluc3RhbmNlb2YgRGF0ZT9jbjpBcnJheS5pc0FycmF5KG4pP2ZuOlwiZnVuY3Rpb25cIiE9dHlwZW9mIG4udmFsdWVPZiYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbi50b1N0cmluZ3x8aXNOYU4obik/bG46c24pKHQsbil9ZnVuY3Rpb24gcG4odCxuKXtyZXR1cm4gdD0rdCxuLT10LGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnJvdW5kKHQrbiplKX19ZnVuY3Rpb24gdm4odCxuLGUscixpLG8pe3ZhciBhLHUsZjtyZXR1cm4oYT1NYXRoLnNxcnQodCp0K24qbikpJiYodC89YSxuLz1hKSwoZj10KmUrbipyKSYmKGUtPXQqZixyLT1uKmYpLCh1PU1hdGguc3FydChlKmUrcipyKSkmJihlLz11LHIvPXUsZi89dSksdCpyPG4qZSYmKHQ9LXQsbj0tbixmPS1mLGE9LWEpLHt0cmFuc2xhdGVYOmksdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKG4sdCkqZmwsc2tld1g6TWF0aC5hdGFuKGYpKmZsLHNjYWxlWDphLHNjYWxlWTp1fX1mdW5jdGlvbiBnbih0LG4sZSxyKXtmdW5jdGlvbiBpKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpK1wiIFwiOlwiXCJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHU9W10sZj1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSxmdW5jdGlvbih0LHIsaSxvLGEsdSl7aWYodCE9PWl8fHIhPT1vKXt2YXIgZj1hLnB1c2goXCJ0cmFuc2xhdGUoXCIsbnVsbCxuLG51bGwsZSk7dS5wdXNoKHtpOmYtNCx4OnNuKHQsaSl9LHtpOmYtMix4OnNuKHIsbyl9KX1lbHNlKGl8fG8pJiZhLnB1c2goXCJ0cmFuc2xhdGUoXCIraStuK28rZSl9KG8udHJhbnNsYXRlWCxvLnRyYW5zbGF0ZVksYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSx1LGYpLGZ1bmN0aW9uKHQsbixlLG8pe3QhPT1uPyh0LW4+MTgwP24rPTM2MDpuLXQ+MTgwJiYodCs9MzYwKSxvLnB1c2goe2k6ZS5wdXNoKGkoZSkrXCJyb3RhdGUoXCIsbnVsbCxyKS0yLHg6c24odCxuKX0pKTpuJiZlLnB1c2goaShlKStcInJvdGF0ZShcIituK3IpfShvLnJvdGF0ZSxhLnJvdGF0ZSx1LGYpLGZ1bmN0aW9uKHQsbixlLG8pe3QhPT1uP28ucHVzaCh7aTplLnB1c2goaShlKStcInNrZXdYKFwiLG51bGwsciktMix4OnNuKHQsbil9KTpuJiZlLnB1c2goaShlKStcInNrZXdYKFwiK24rcil9KG8uc2tld1gsYS5za2V3WCx1LGYpLGZ1bmN0aW9uKHQsbixlLHIsbyxhKXtpZih0IT09ZXx8biE9PXIpe3ZhciB1PW8ucHVzaChpKG8pK1wic2NhbGUoXCIsbnVsbCxcIixcIixudWxsLFwiKVwiKTthLnB1c2goe2k6dS00LHg6c24odCxlKX0se2k6dS0yLHg6c24obixyKX0pfWVsc2UgMT09PWUmJjE9PT1yfHxvLnB1c2goaShvKStcInNjYWxlKFwiK2UrXCIsXCIrcitcIilcIil9KG8uc2NhbGVYLG8uc2NhbGVZLGEuc2NhbGVYLGEuc2NhbGVZLHUsZiksbz1hPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9LTEscj1mLmxlbmd0aDsrK2U8cjspdVsobj1mW2VdKS5pXT1uLngodCk7cmV0dXJuIHUuam9pbihcIlwiKX19fWZ1bmN0aW9uIHluKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSkrMS90KS8yfWZ1bmN0aW9uIF9uKHQsbil7dmFyIGUscixpPXRbMF0sbz10WzFdLGE9dFsyXSx1PW5bMF0sZj1uWzFdLGM9blsyXSxzPXUtaSxsPWYtbyxoPXMqcytsKmw7aWYoaDx2bClyPU1hdGgubG9nKGMvYSkvaGwsZT1mdW5jdGlvbih0KXtyZXR1cm5baSt0KnMsbyt0KmwsYSpNYXRoLmV4cChobCp0KnIpXX07ZWxzZXt2YXIgZD1NYXRoLnNxcnQoaCkscD0oYypjLWEqYStwbCpoKS8oMiphKmRsKmQpLHY9KGMqYy1hKmEtcGwqaCkvKDIqYypkbCpkKSxnPU1hdGgubG9nKE1hdGguc3FydChwKnArMSktcCkseT1NYXRoLmxvZyhNYXRoLnNxcnQodip2KzEpLXYpO3I9KHktZykvaGwsZT1mdW5jdGlvbih0KXt2YXIgbj10KnIsZT15bihnKSx1PWEvKGRsKmQpKihlKmZ1bmN0aW9uKHQpe3JldHVybigodD1NYXRoLmV4cCgyKnQpKS0xKS8odCsxKX0oaGwqbitnKS1mdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0oZykpO3JldHVybltpK3UqcyxvK3UqbCxhKmUveW4oaGwqbitnKV19fXJldHVybiBlLmR1cmF0aW9uPTFlMypyLGV9ZnVuY3Rpb24gYm4odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dCgobj1xdChuKSkuaCwoZT1xdChlKSkuaCksaT1hbihuLnMsZS5zKSxvPWFuKG4ubCxlLmwpLGE9YW4obi5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuLmg9cih0KSxuLnM9aSh0KSxuLmw9byh0KSxuLm9wYWNpdHk9YSh0KSxuK1wiXCJ9fX1mdW5jdGlvbiBtbih0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj10KChuPSR0KG4pKS5oLChlPSR0KGUpKS5oKSxpPWFuKG4uYyxlLmMpLG89YW4obi5sLGUubCksYT1hbihuLm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4uaD1yKHQpLG4uYz1pKHQpLG4ubD1vKHQpLG4ub3BhY2l0eT1hKHQpLG4rXCJcIn19fWZ1bmN0aW9uIHhuKHQpe3JldHVybiBmdW5jdGlvbiBuKGUpe2Z1bmN0aW9uIHIobixyKXt2YXIgaT10KChuPVp0KG4pKS5oLChyPVp0KHIpKS5oKSxvPWFuKG4ucyxyLnMpLGE9YW4obi5sLHIubCksdT1hbihuLm9wYWNpdHksci5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4uaD1pKHQpLG4ucz1vKHQpLG4ubD1hKE1hdGgucG93KHQsZSkpLG4ub3BhY2l0eT11KHQpLG4rXCJcIn19cmV0dXJuIGU9K2Usci5nYW1tYT1uLHJ9KDEpfWZ1bmN0aW9uIHduKCl7cmV0dXJuIFNsfHwoQ2woTW4pLFNsPWtsLm5vdygpK0VsKX1mdW5jdGlvbiBNbigpe1NsPTB9ZnVuY3Rpb24gQW4oKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfWZ1bmN0aW9uIFRuKHQsbixlKXt2YXIgcj1uZXcgQW47cmV0dXJuIHIucmVzdGFydCh0LG4sZSkscn1mdW5jdGlvbiBObigpe3duKCksKyt3bDtmb3IodmFyIHQsbj1ubDtuOykodD1TbC1uLl90aW1lKT49MCYmbi5fY2FsbC5jYWxsKG51bGwsdCksbj1uLl9uZXh0Oy0td2x9ZnVuY3Rpb24gU24oKXtTbD0oTmw9a2wubm93KCkpK0VsLHdsPU1sPTA7dHJ5e05uKCl9ZmluYWxseXt3bD0wLGZ1bmN0aW9uKCl7dmFyIHQsbixlPW5sLHI9MS8wO2Zvcig7ZTspZS5fY2FsbD8ocj5lLl90aW1lJiYocj1lLl90aW1lKSx0PWUsZT1lLl9uZXh0KToobj1lLl9uZXh0LGUuX25leHQ9bnVsbCxlPXQ/dC5fbmV4dD1uOm5sPW4pO2VsPXQsa24ocil9KCksU2w9MH19ZnVuY3Rpb24gRW4oKXt2YXIgdD1rbC5ub3coKSxuPXQtTmw7bj5UbCYmKEVsLT1uLE5sPXQpfWZ1bmN0aW9uIGtuKHQpe2lmKCF3bCl7TWwmJihNbD1jbGVhclRpbWVvdXQoTWwpKTt0LVNsPjI0Pyh0PDEvMCYmKE1sPXNldFRpbWVvdXQoU24sdC1rbC5ub3coKS1FbCkpLEFsJiYoQWw9Y2xlYXJJbnRlcnZhbChBbCkpKTooQWx8fChObD1rbC5ub3coKSxBbD1zZXRJbnRlcnZhbChFbixUbCkpLHdsPTEsQ2woU24pKX19ZnVuY3Rpb24gQ24odCxuLGUpe3ZhciByPW5ldyBBbjtyZXR1cm4gbj1udWxsPT1uPzA6K24sci5yZXN0YXJ0KGZ1bmN0aW9uKGUpe3Iuc3RvcCgpLHQoZStuKX0sbixlKSxyfWZ1bmN0aW9uIFBuKHQsbixlLHIsaSxvKXt2YXIgYT10Ll9fdHJhbnNpdGlvbjtpZihhKXtpZihlIGluIGEpcmV0dXJufWVsc2UgdC5fX3RyYW5zaXRpb249e307KGZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKGYpe3ZhciBjLHMsbCxoO2lmKGUuc3RhdGUhPT1MbClyZXR1cm4gbygpO2ZvcihjIGluIHUpaWYoKGg9dVtjXSkubmFtZT09PWUubmFtZSl7aWYoaC5zdGF0ZT09PVVsKXJldHVybiBDbihyKTtoLnN0YXRlPT09cWw/KGguc3RhdGU9WWwsaC50aW1lci5zdG9wKCksaC5vbi5jYWxsKFwiaW50ZXJydXB0XCIsdCx0Ll9fZGF0YV9fLGguaW5kZXgsaC5ncm91cCksZGVsZXRlIHVbY10pOitjPG4mJihoLnN0YXRlPVlsLGgudGltZXIuc3RvcCgpLGRlbGV0ZSB1W2NdKX1pZihDbihmdW5jdGlvbigpe2Uuc3RhdGU9PT1VbCYmKGUuc3RhdGU9cWwsZS50aW1lci5yZXN0YXJ0KGksZS5kZWxheSxlLnRpbWUpLGkoZikpfSksZS5zdGF0ZT1EbCxlLm9uLmNhbGwoXCJzdGFydFwiLHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLGUuc3RhdGU9PT1EbCl7Zm9yKGUuc3RhdGU9VWwsYT1uZXcgQXJyYXkobD1lLnR3ZWVuLmxlbmd0aCksYz0wLHM9LTE7YzxsOysrYykoaD1lLnR3ZWVuW2NdLnZhbHVlLmNhbGwodCx0Ll9fZGF0YV9fLGUuaW5kZXgsZS5ncm91cCkpJiYoYVsrK3NdPWgpO2EubGVuZ3RoPXMrMX19ZnVuY3Rpb24gaShuKXtmb3IodmFyIHI9bjxlLmR1cmF0aW9uP2UuZWFzZS5jYWxsKG51bGwsbi9lLmR1cmF0aW9uKTooZS50aW1lci5yZXN0YXJ0KG8pLGUuc3RhdGU9T2wsMSksaT0tMSx1PWEubGVuZ3RoOysraTx1OylhW2ldLmNhbGwobnVsbCxyKTtlLnN0YXRlPT09T2wmJihlLm9uLmNhbGwoXCJlbmRcIix0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxvKCkpfWZ1bmN0aW9uIG8oKXtlLnN0YXRlPVlsLGUudGltZXIuc3RvcCgpLGRlbGV0ZSB1W25dO2Zvcih2YXIgciBpbiB1KXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259dmFyIGEsdT10Ll9fdHJhbnNpdGlvbjt1W25dPWUsZS50aW1lcj1UbihmdW5jdGlvbih0KXtlLnN0YXRlPUxsLGUudGltZXIucmVzdGFydChyLGUuZGVsYXksZS50aW1lKSxlLmRlbGF5PD10JiZyKHQtZS5kZWxheSl9LDAsZS50aW1lKX0pKHQsZSx7bmFtZTpuLGluZGV4OnIsZ3JvdXA6aSxvbjpQbCx0d2Vlbjp6bCx0aW1lOm8udGltZSxkZWxheTpvLmRlbGF5LGR1cmF0aW9uOm8uZHVyYXRpb24sZWFzZTpvLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTpSbH0pfWZ1bmN0aW9uIHpuKHQsbil7dmFyIGU9TG4odCxuKTtpZihlLnN0YXRlPlJsKXRocm93IG5ldyBFcnJvcihcInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBSbih0LG4pe3ZhciBlPUxuKHQsbik7aWYoZS5zdGF0ZT5EbCl0aHJvdyBuZXcgRXJyb3IoXCJ0b28gbGF0ZTsgYWxyZWFkeSBzdGFydGVkXCIpO3JldHVybiBlfWZ1bmN0aW9uIExuKHQsbil7dmFyIGU9dC5fX3RyYW5zaXRpb247aWYoIWV8fCEoZT1lW25dKSl0aHJvdyBuZXcgRXJyb3IoXCJ0cmFuc2l0aW9uIG5vdCBmb3VuZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBEbih0LG4pe3ZhciBlLHIsaSxvPXQuX190cmFuc2l0aW9uLGE9ITA7aWYobyl7bj1udWxsPT1uP251bGw6bitcIlwiO2ZvcihpIGluIG8pKGU9b1tpXSkubmFtZT09PW4/KHI9ZS5zdGF0ZT5EbCYmZS5zdGF0ZTxPbCxlLnN0YXRlPVlsLGUudGltZXIuc3RvcCgpLHImJmUub24uY2FsbChcImludGVycnVwdFwiLHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLGRlbGV0ZSBvW2ldKTphPSExO2EmJmRlbGV0ZSB0Ll9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gVW4odCxuLGUpe3ZhciByPXQuX2lkO3JldHVybiB0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1Sbih0aGlzLHIpOyh0LnZhbHVlfHwodC52YWx1ZT17fSkpW25dPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksZnVuY3Rpb24odCl7cmV0dXJuIExuKHQscikudmFsdWVbbl19fWZ1bmN0aW9uIHFuKHQsbil7dmFyIGU7cmV0dXJuKFwibnVtYmVyXCI9PXR5cGVvZiBuP3NuOm4gaW5zdGFuY2VvZiBrdD9ybDooZT1rdChuKSk/KG49ZSxybCk6aG4pKHQsbil9ZnVuY3Rpb24gT24odCxuLGUscil7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1uLHRoaXMuX25hbWU9ZSx0aGlzLl9pZD1yfWZ1bmN0aW9uIFluKHQpe3JldHVybiBmdCgpLnRyYW5zaXRpb24odCl9ZnVuY3Rpb24gQm4oKXtyZXR1cm4rK0ZsfWZ1bmN0aW9uIEZuKHQpe3JldHVybigodCo9Mik8PTE/dCp0Oi0tdCooMi10KSsxKS8yfWZ1bmN0aW9uIEluKHQpe3JldHVybigodCo9Mik8PTE/dCp0KnQ6KHQtPTIpKnQqdCsyKS8yfWZ1bmN0aW9uIGpuKHQpe3JldHVybigxLU1hdGguY29zKEdsKnQpKS8yfWZ1bmN0aW9uIEhuKHQpe3JldHVybigodCo9Mik8PTE/TWF0aC5wb3coMiwxMCp0LTEwKToyLU1hdGgucG93KDIsMTAtMTAqdCkpLzJ9ZnVuY3Rpb24gWG4odCl7cmV0dXJuKCh0Kj0yKTw9MT8xLU1hdGguc3FydCgxLXQqdCk6TWF0aC5zcXJ0KDEtKHQtPTIpKnQpKzEpLzJ9ZnVuY3Rpb24gR24odCl7cmV0dXJuKHQ9K3QpPCRsP3JoKnQqdDp0PFpsP3JoKih0LT1XbCkqdCtRbDp0PEtsP3JoKih0LT1KbCkqdCt0aDpyaCoodC09bmgpKnQrZWh9ZnVuY3Rpb24gVm4odCxuKXtmb3IodmFyIGU7IShlPXQuX190cmFuc2l0aW9uKXx8IShlPWVbbl0pOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm4gbGgudGltZT13bigpLGxoO3JldHVybiBlfWZ1bmN0aW9uICRuKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBXbigpe3QuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gWm4oKXt0LmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBRbih0KXtyZXR1cm57dHlwZTp0fX1mdW5jdGlvbiBKbigpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBLbigpe3ZhciB0PXRoaXMub3duZXJTVkdFbGVtZW50fHx0aGlzO3JldHVybltbMCwwXSxbdC53aWR0aC5iYXNlVmFsLnZhbHVlLHQuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXX1mdW5jdGlvbiB0ZSh0KXtmb3IoOyF0Ll9fYnJ1c2g7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdC5fX2JydXNofWZ1bmN0aW9uIG5lKHQpe3JldHVybiB0WzBdWzBdPT09dFsxXVswXXx8dFswXVsxXT09PXRbMV1bMV19ZnVuY3Rpb24gZWUobil7ZnVuY3Rpb24gZSh0KXt2YXIgZT10LnByb3BlcnR5KFwiX19icnVzaFwiLHUpLnNlbGVjdEFsbChcIi5vdmVybGF5XCIpLmRhdGEoW1FuKFwib3ZlcmxheVwiKV0pO2UuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJjbGFzc1wiLFwib3ZlcmxheVwiKS5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKS5hdHRyKFwiY3Vyc29yXCIsbWgub3ZlcmxheSkubWVyZ2UoZSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PXRlKHRoaXMpLmV4dGVudDtjdCh0aGlzKS5hdHRyKFwieFwiLHRbMF1bMF0pLmF0dHIoXCJ5XCIsdFswXVsxXSkuYXR0cihcIndpZHRoXCIsdFsxXVswXS10WzBdWzBdKS5hdHRyKFwiaGVpZ2h0XCIsdFsxXVsxXS10WzBdWzFdKX0pLHQuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKS5kYXRhKFtRbihcInNlbGVjdGlvblwiKV0pLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIixcInNlbGVjdGlvblwiKS5hdHRyKFwiY3Vyc29yXCIsbWguc2VsZWN0aW9uKS5hdHRyKFwiZmlsbFwiLFwiIzc3N1wiKS5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsLjMpLmF0dHIoXCJzdHJva2VcIixcIiNmZmZcIikuYXR0cihcInNoYXBlLXJlbmRlcmluZ1wiLFwiY3Jpc3BFZGdlc1wiKTt2YXIgaT10LnNlbGVjdEFsbChcIi5oYW5kbGVcIikuZGF0YShuLmhhbmRsZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pO2kuZXhpdCgpLnJlbW92ZSgpLGkuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJjbGFzc1wiLGZ1bmN0aW9uKHQpe3JldHVyblwiaGFuZGxlIGhhbmRsZS0tXCIrdC50eXBlfSkuYXR0cihcImN1cnNvclwiLGZ1bmN0aW9uKHQpe3JldHVybiBtaFt0LnR5cGVdfSksdC5lYWNoKHIpLmF0dHIoXCJmaWxsXCIsXCJub25lXCIpLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLFwiYWxsXCIpLnN0eWxlKFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yXCIsXCJyZ2JhKDAsMCwwLDApXCIpLm9uKFwibW91c2Vkb3duLmJydXNoIHRvdWNoc3RhcnQuYnJ1c2hcIixhKX1mdW5jdGlvbiByKCl7dmFyIHQ9Y3QodGhpcyksbj10ZSh0aGlzKS5zZWxlY3Rpb247bj8odC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uXCIpLnN0eWxlKFwiZGlzcGxheVwiLG51bGwpLmF0dHIoXCJ4XCIsblswXVswXSkuYXR0cihcInlcIixuWzBdWzFdKS5hdHRyKFwid2lkdGhcIixuWzFdWzBdLW5bMF1bMF0pLmF0dHIoXCJoZWlnaHRcIixuWzFdWzFdLW5bMF1bMV0pLHQuc2VsZWN0QWxsKFwiLmhhbmRsZVwiKS5zdHlsZShcImRpc3BsYXlcIixudWxsKS5hdHRyKFwieFwiLGZ1bmN0aW9uKHQpe3JldHVyblwiZVwiPT09dC50eXBlW3QudHlwZS5sZW5ndGgtMV0/blsxXVswXS1oLzI6blswXVswXS1oLzJ9KS5hdHRyKFwieVwiLGZ1bmN0aW9uKHQpe3JldHVyblwic1wiPT09dC50eXBlWzBdP25bMV1bMV0taC8yOm5bMF1bMV0taC8yfSkuYXR0cihcIndpZHRoXCIsZnVuY3Rpb24odCl7cmV0dXJuXCJuXCI9PT10LnR5cGV8fFwic1wiPT09dC50eXBlP25bMV1bMF0tblswXVswXStoOmh9KS5hdHRyKFwiaGVpZ2h0XCIsZnVuY3Rpb24odCl7cmV0dXJuXCJlXCI9PT10LnR5cGV8fFwid1wiPT09dC50eXBlP25bMV1bMV0tblswXVsxXStoOmh9KSk6dC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uLC5oYW5kbGVcIikuc3R5bGUoXCJkaXNwbGF5XCIsXCJub25lXCIpLmF0dHIoXCJ4XCIsbnVsbCkuYXR0cihcInlcIixudWxsKS5hdHRyKFwid2lkdGhcIixudWxsKS5hdHRyKFwiaGVpZ2h0XCIsbnVsbCl9ZnVuY3Rpb24gaSh0LG4pe3JldHVybiB0Ll9fYnJ1c2guZW1pdHRlcnx8bmV3IG8odCxuKX1mdW5jdGlvbiBvKHQsbil7dGhpcy50aGF0PXQsdGhpcy5hcmdzPW4sdGhpcy5zdGF0ZT10Ll9fYnJ1c2gsdGhpcy5hY3RpdmU9MH1mdW5jdGlvbiBhKCl7ZnVuY3Rpb24gZSgpe3ZhciB0PXB0KHcpOyFMfHxtfHx4fHwoTWF0aC5hYnModFswXS1VWzBdKT5NYXRoLmFicyh0WzFdLVVbMV0pP3g9ITA6bT0hMCksVT10LGI9ITAsWm4oKSxvKCl9ZnVuY3Rpb24gbygpe3ZhciB0O3N3aXRjaCh5PVVbMF0tRFswXSxfPVVbMV0tRFsxXSxBKXtjYXNlIHBoOmNhc2UgZGg6VCYmKHk9TWF0aC5tYXgoQy11LE1hdGgubWluKHotZCx5KSksYz11K3kscD1kK3kpLE4mJihfPU1hdGgubWF4KFAtbCxNYXRoLm1pbihSLXYsXykpLGg9bCtfLGc9ditfKTticmVhaztjYXNlIHZoOlQ8MD8oeT1NYXRoLm1heChDLXUsTWF0aC5taW4oei11LHkpKSxjPXUreSxwPWQpOlQ+MCYmKHk9TWF0aC5tYXgoQy1kLE1hdGgubWluKHotZCx5KSksYz11LHA9ZCt5KSxOPDA/KF89TWF0aC5tYXgoUC1sLE1hdGgubWluKFItbCxfKSksaD1sK18sZz12KTpOPjAmJihfPU1hdGgubWF4KFAtdixNYXRoLm1pbihSLXYsXykpLGg9bCxnPXYrXyk7YnJlYWs7Y2FzZSBnaDpUJiYoYz1NYXRoLm1heChDLE1hdGgubWluKHosdS15KlQpKSxwPU1hdGgubWF4KEMsTWF0aC5taW4oeixkK3kqVCkpKSxOJiYoaD1NYXRoLm1heChQLE1hdGgubWluKFIsbC1fKk4pKSxnPU1hdGgubWF4KFAsTWF0aC5taW4oUix2K18qTikpKX1wPGMmJihUKj0tMSx0PXUsdT1kLGQ9dCx0PWMsYz1wLHA9dCxNIGluIHhoJiZZLmF0dHIoXCJjdXJzb3JcIixtaFtNPXhoW01dXSkpLGc8aCYmKE4qPS0xLHQ9bCxsPXYsdj10LHQ9aCxoPWcsZz10LE0gaW4gd2gmJlkuYXR0cihcImN1cnNvclwiLG1oW009d2hbTV1dKSksUy5zZWxlY3Rpb24mJihrPVMuc2VsZWN0aW9uKSxtJiYoYz1rWzBdWzBdLHA9a1sxXVswXSkseCYmKGg9a1swXVsxXSxnPWtbMV1bMV0pLGtbMF1bMF09PT1jJiZrWzBdWzFdPT09aCYma1sxXVswXT09PXAmJmtbMV1bMV09PT1nfHwoUy5zZWxlY3Rpb249W1tjLGhdLFtwLGddXSxyLmNhbGwodykscS5icnVzaCgpKX1mdW5jdGlvbiBhKCl7aWYoV24oKSx0LmV2ZW50LnRvdWNoZXMpe2lmKHQuZXZlbnQudG91Y2hlcy5sZW5ndGgpcmV0dXJuO2YmJmNsZWFyVGltZW91dChmKSxmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmPW51bGx9LDUwMCksTy5vbihcInRvdWNobW92ZS5icnVzaCB0b3VjaGVuZC5icnVzaCB0b3VjaGNhbmNlbC5icnVzaFwiLG51bGwpfWVsc2UgYnQodC5ldmVudC52aWV3LGIpLEIub24oXCJrZXlkb3duLmJydXNoIGtleXVwLmJydXNoIG1vdXNlbW92ZS5icnVzaCBtb3VzZXVwLmJydXNoXCIsbnVsbCk7Ty5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKSxZLmF0dHIoXCJjdXJzb3JcIixtaC5vdmVybGF5KSxTLnNlbGVjdGlvbiYmKGs9Uy5zZWxlY3Rpb24pLG5lKGspJiYoUy5zZWxlY3Rpb249bnVsbCxyLmNhbGwodykpLHEuZW5kKCl9aWYodC5ldmVudC50b3VjaGVzKXtpZih0LmV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aDx0LmV2ZW50LnRvdWNoZXMubGVuZ3RoKXJldHVybiBabigpfWVsc2UgaWYoZilyZXR1cm47aWYocy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB1LGMsbCxoLGQscCx2LGcseSxfLGIsbSx4LHc9dGhpcyxNPXQuZXZlbnQudGFyZ2V0Ll9fZGF0YV9fLnR5cGUsQT1cInNlbGVjdGlvblwiPT09KHQuZXZlbnQubWV0YUtleT9NPVwib3ZlcmxheVwiOk0pP2RoOnQuZXZlbnQuYWx0S2V5P2doOnZoLFQ9bj09PV9oP251bGw6TWhbTV0sTj1uPT09eWg/bnVsbDpBaFtNXSxTPXRlKHcpLEU9Uy5leHRlbnQsaz1TLnNlbGVjdGlvbixDPUVbMF1bMF0sUD1FWzBdWzFdLHo9RVsxXVswXSxSPUVbMV1bMV0sTD1UJiZOJiZ0LmV2ZW50LnNoaWZ0S2V5LEQ9cHQodyksVT1ELHE9aSh3LGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKTtcIm92ZXJsYXlcIj09PU0/Uy5zZWxlY3Rpb249az1bW3U9bj09PV9oP0M6RFswXSxsPW49PT15aD9QOkRbMV1dLFtkPW49PT1faD96OnUsdj1uPT09eWg/UjpsXV06KHU9a1swXVswXSxsPWtbMF1bMV0sZD1rWzFdWzBdLHY9a1sxXVsxXSksYz11LGg9bCxwPWQsZz12O3ZhciBPPWN0KHcpLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLFwibm9uZVwiKSxZPU8uc2VsZWN0QWxsKFwiLm92ZXJsYXlcIikuYXR0cihcImN1cnNvclwiLG1oW01dKTtpZih0LmV2ZW50LnRvdWNoZXMpTy5vbihcInRvdWNobW92ZS5icnVzaFwiLGUsITApLm9uKFwidG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2hcIixhLCEwKTtlbHNle3ZhciBCPWN0KHQuZXZlbnQudmlldykub24oXCJrZXlkb3duLmJydXNoXCIsZnVuY3Rpb24oKXtzd2l0Y2godC5ldmVudC5rZXlDb2RlKXtjYXNlIDE2Okw9VCYmTjticmVhaztjYXNlIDE4OkE9PT12aCYmKFQmJihkPXAteSpULHU9Yyt5KlQpLE4mJih2PWctXypOLGw9aCtfKk4pLEE9Z2gsbygpKTticmVhaztjYXNlIDMyOkEhPT12aCYmQSE9PWdofHwoVDwwP2Q9cC15OlQ+MCYmKHU9Yy15KSxOPDA/dj1nLV86Tj4wJiYobD1oLV8pLEE9cGgsWS5hdHRyKFwiY3Vyc29yXCIsbWguc2VsZWN0aW9uKSxvKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufVpuKCl9LCEwKS5vbihcImtleXVwLmJydXNoXCIsZnVuY3Rpb24oKXtzd2l0Y2godC5ldmVudC5rZXlDb2RlKXtjYXNlIDE2OkwmJihtPXg9TD0hMSxvKCkpO2JyZWFrO2Nhc2UgMTg6QT09PWdoJiYoVDwwP2Q9cDpUPjAmJih1PWMpLE48MD92PWc6Tj4wJiYobD1oKSxBPXZoLG8oKSk7YnJlYWs7Y2FzZSAzMjpBPT09cGgmJih0LmV2ZW50LmFsdEtleT8oVCYmKGQ9cC15KlQsdT1jK3kqVCksTiYmKHY9Zy1fKk4sbD1oK18qTiksQT1naCk6KFQ8MD9kPXA6VD4wJiYodT1jKSxOPDA/dj1nOk4+MCYmKGw9aCksQT12aCksWS5hdHRyKFwiY3Vyc29yXCIsbWhbTV0pLG8oKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59Wm4oKX0sITApLm9uKFwibW91c2Vtb3ZlLmJydXNoXCIsZSwhMCkub24oXCJtb3VzZXVwLmJydXNoXCIsYSwhMCk7X3QodC5ldmVudC52aWV3KX1XbigpLERuKHcpLHIuY2FsbCh3KSxxLnN0YXJ0KCl9fWZ1bmN0aW9uIHUoKXt2YXIgdD10aGlzLl9fYnJ1c2h8fHtzZWxlY3Rpb246bnVsbH07cmV0dXJuIHQuZXh0ZW50PWMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHQuZGltPW4sdH12YXIgZixjPUtuLHM9Sm4sbD1OKGUsXCJzdGFydFwiLFwiYnJ1c2hcIixcImVuZFwiKSxoPTY7cmV0dXJuIGUubW92ZT1mdW5jdGlvbih0LGUpe3Quc2VsZWN0aW9uP3Qub24oXCJzdGFydC5icnVzaFwiLGZ1bmN0aW9uKCl7aSh0aGlzLGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKS5zdGFydCgpfSkub24oXCJpbnRlcnJ1cHQuYnJ1c2ggZW5kLmJydXNoXCIsZnVuY3Rpb24oKXtpKHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pLnR3ZWVuKFwiYnJ1c2hcIixmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7YS5zZWxlY3Rpb249MT09PXQmJm5lKGMpP251bGw6cyh0KSxyLmNhbGwobyksdS5icnVzaCgpfXZhciBvPXRoaXMsYT1vLl9fYnJ1c2gsdT1pKG8sYXJndW1lbnRzKSxmPWEuc2VsZWN0aW9uLGM9bi5pbnB1dChcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsYS5leHRlbnQpLHM9ZG4oZixjKTtyZXR1cm4gZiYmYz90OnQoMSl9KTp0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMsbz10aGlzLl9fYnJ1c2gsYT1uLmlucHV0KFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLHQpOmUsby5leHRlbnQpLHU9aSh0aGlzLHQpLmJlZm9yZXN0YXJ0KCk7RG4odGhpcyksby5zZWxlY3Rpb249bnVsbD09YXx8bmUoYSk/bnVsbDphLHIuY2FsbCh0aGlzKSx1LnN0YXJ0KCkuYnJ1c2goKS5lbmQoKX0pfSxvLnByb3RvdHlwZT17YmVmb3Jlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMuc3RhdGUuZW1pdHRlcj10aGlzLHRoaXMuc3RhcnRpbmc9ITApLHRoaXN9LHN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRpbmcmJih0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdChcInN0YXJ0XCIpKSx0aGlzfSxicnVzaDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVtaXQoXCJicnVzaFwiKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsdGhpcy5lbWl0KFwiZW5kXCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKHQpe290KG5ldyBmdW5jdGlvbih0LG4sZSl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9bix0aGlzLnNlbGVjdGlvbj1lfShlLHQsbi5vdXRwdXQodGhpcy5zdGF0ZS5zZWxlY3Rpb24pKSxsLmFwcGx5LGwsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sZS5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OiRuKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxlKTpjfSxlLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6JG4oISF0KSxlKTpzfSxlLmhhbmRsZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9K3QsZSk6aH0sZS5vbj1mdW5jdGlvbigpe3ZhciB0PWwub24uYXBwbHkobCxhcmd1bWVudHMpO3JldHVybiB0PT09bD9lOnR9LGV9ZnVuY3Rpb24gcmUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGllKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89XCJcIn1mdW5jdGlvbiBvZSgpe3JldHVybiBuZXcgaWV9ZnVuY3Rpb24gYWUodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIHVlKHQpe3JldHVybiB0LnRhcmdldH1mdW5jdGlvbiBmZSh0KXtyZXR1cm4gdC5yYWRpdXN9ZnVuY3Rpb24gY2UodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiBzZSh0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiBsZSgpe31mdW5jdGlvbiBoZSh0LG4pe3ZhciBlPW5ldyBsZTtpZih0IGluc3RhbmNlb2YgbGUpdC5lYWNoKGZ1bmN0aW9uKHQsbil7ZS5zZXQobix0KX0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIHIsaT0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PW4pZm9yKDsrK2k8bzspZS5zZXQoaSx0W2ldKTtlbHNlIGZvcig7KytpPG87KWUuc2V0KG4ocj10W2ldLGksdCkscil9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KWUuc2V0KGEsdFthXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZGUoKXtyZXR1cm57fX1mdW5jdGlvbiBwZSh0LG4sZSl7dFtuXT1lfWZ1bmN0aW9uIHZlKCl7cmV0dXJuIGhlKCl9ZnVuY3Rpb24gZ2UodCxuLGUpe3Quc2V0KG4sZSl9ZnVuY3Rpb24geWUoKXt9ZnVuY3Rpb24gX2UodCxuKXt2YXIgZT1uZXcgeWU7aWYodCBpbnN0YW5jZW9mIHllKXQuZWFjaChmdW5jdGlvbih0KXtlLmFkZCh0KX0pO2Vsc2UgaWYodCl7dmFyIHI9LTEsaT10Lmxlbmd0aDtpZihudWxsPT1uKWZvcig7KytyPGk7KWUuYWRkKHRbcl0pO2Vsc2UgZm9yKDsrK3I8aTspZS5hZGQobih0W3JdLHIsdCkpfXJldHVybiBlfWZ1bmN0aW9uIGJlKHQsbil7cmV0dXJuIHQtbn1mdW5jdGlvbiBtZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24geGUodCxuKXtmb3IodmFyIGUscj0tMSxpPW4ubGVuZ3RoOysrcjxpOylpZihlPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPW5bMF0scj1uWzFdLGk9LTEsbz0wLGE9dC5sZW5ndGgsdT1hLTE7bzxhO3U9bysrKXt2YXIgZj10W29dLGM9ZlswXSxzPWZbMV0sbD10W3VdLGg9bFswXSxkPWxbMV07aWYoZnVuY3Rpb24odCxuLGUpe3ZhciByO3JldHVybiBmdW5jdGlvbih0LG4sZSl7cmV0dXJuKG5bMF0tdFswXSkqKGVbMV0tdFsxXSk9PShlWzBdLXRbMF0pKihuWzFdLXRbMV0pfSh0LG4sZSkmJmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gdDw9biYmbjw9ZXx8ZTw9biYmbjw9dH0odFtyPSsodFswXT09PW5bMF0pXSxlW3JdLG5bcl0pfShmLGwsbikpcmV0dXJuIDA7cz5yIT1kPnImJmU8KGgtYykqKHItcykvKGQtcykrYyYmKGk9LWkpfXJldHVybiBpfSh0LG5bcl0pKXJldHVybiBlO3JldHVybiAwfWZ1bmN0aW9uIHdlKCl7fWZ1bmN0aW9uIE1lKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZT1hKHQpO2lmKEFycmF5LmlzQXJyYXkoZSkpZT1lLnNsaWNlKCkuc29ydChiZSk7ZWxzZXt2YXIgcj11KHQpLGk9clswXSxvPXJbMV07ZT1kKGksbyxlKSxlPXMoTWF0aC5mbG9vcihpL2UpKmUsTWF0aC5mbG9vcihvL2UpKmUsZSl9cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuKHQsZSl9KX1mdW5jdGlvbiBuKHQsbil7dmFyIHI9W10sYT1bXTtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe2Z1bmN0aW9uIGEodCl7dmFyIG4saSxvPVt0WzBdWzBdK3UsdFswXVsxXStmXSxhPVt0WzFdWzBdK3UsdFsxXVsxXStmXSxjPWUobykscz1lKGEpOyhuPXBbY10pPyhpPWRbc10pPyhkZWxldGUgcFtuLmVuZF0sZGVsZXRlIGRbaS5zdGFydF0sbj09PWk/KG4ucmluZy5wdXNoKGEpLHIobi5yaW5nKSk6ZFtuLnN0YXJ0XT1wW2kuZW5kXT17c3RhcnQ6bi5zdGFydCxlbmQ6aS5lbmQscmluZzpuLnJpbmcuY29uY2F0KGkucmluZyl9KTooZGVsZXRlIHBbbi5lbmRdLG4ucmluZy5wdXNoKGEpLHBbbi5lbmQ9c109bik6KG49ZFtzXSk/KGk9cFtjXSk/KGRlbGV0ZSBkW24uc3RhcnRdLGRlbGV0ZSBwW2kuZW5kXSxuPT09aT8obi5yaW5nLnB1c2goYSkscihuLnJpbmcpKTpkW2kuc3RhcnRdPXBbbi5lbmRdPXtzdGFydDppLnN0YXJ0LGVuZDpuLmVuZCxyaW5nOmkucmluZy5jb25jYXQobi5yaW5nKX0pOihkZWxldGUgZFtuLnN0YXJ0XSxuLnJpbmcudW5zaGlmdChvKSxkW24uc3RhcnQ9Y109bik6ZFtjXT1wW3NdPXtzdGFydDpjLGVuZDpzLHJpbmc6W28sYV19fXZhciB1LGYsYyxzLGwsaCxkPW5ldyBBcnJheSxwPW5ldyBBcnJheTt1PWY9LTEscz10WzBdPj1uLHFoW3M8PDFdLmZvckVhY2goYSk7Zm9yKDsrK3U8aS0xOyljPXMscz10W3UrMV0+PW4scWhbY3xzPDwxXS5mb3JFYWNoKGEpO3FoW3M8PDBdLmZvckVhY2goYSk7Zm9yKDsrK2Y8by0xOyl7Zm9yKHU9LTEscz10W2YqaStpXT49bixsPXRbZippXT49bixxaFtzPDwxfGw8PDJdLmZvckVhY2goYSk7Kyt1PGktMTspYz1zLHM9dFtmKmkraSt1KzFdPj1uLGg9bCxsPXRbZippK3UrMV0+PW4scWhbY3xzPDwxfGw8PDJ8aDw8M10uZm9yRWFjaChhKTtxaFtzfGw8PDNdLmZvckVhY2goYSl9dT0tMSxsPXRbZippXT49bixxaFtsPDwyXS5mb3JFYWNoKGEpO2Zvcig7Kyt1PGktMTspaD1sLGw9dFtmKmkrdSsxXT49bixxaFtsPDwyfGg8PDNdLmZvckVhY2goYSk7cWhbbDw8M10uZm9yRWFjaChhKX0odCxuLGZ1bmN0aW9uKGUpe2YoZSx0LG4pLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbj0wLGU9dC5sZW5ndGgscj10W2UtMV1bMV0qdFswXVswXS10W2UtMV1bMF0qdFswXVsxXTsrK248ZTspcis9dFtuLTFdWzFdKnRbbl1bMF0tdFtuLTFdWzBdKnRbbl1bMV07cmV0dXJuIHJ9KGUpPjA/ci5wdXNoKFtlXSk6YS5wdXNoKGUpfSksYS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlPTAsaT1yLmxlbmd0aDtlPGk7KytlKWlmKC0xIT09eGUoKG49cltlXSlbMF0sdCkpcmV0dXJuIHZvaWQgbi5wdXNoKHQpfSkse3R5cGU6XCJNdWx0aVBvbHlnb25cIix2YWx1ZTpuLGNvb3JkaW5hdGVzOnJ9fWZ1bmN0aW9uIGUodCl7cmV0dXJuIDIqdFswXSt0WzFdKihpKzEpKjR9ZnVuY3Rpb24gcih0LG4sZSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLGE9dFswXSx1PXRbMV0sZj0wfGEsYz0wfHUscz1uW2MqaStmXTthPjAmJmE8aSYmZj09PWEmJihyPW5bYyppK2YtMV0sdFswXT1hKyhlLXIpLyhzLXIpLS41KSx1PjAmJnU8byYmYz09PXUmJihyPW5bKGMtMSkqaStmXSx0WzFdPXUrKGUtcikvKHMtciktLjUpfSl9dmFyIGk9MSxvPTEsYT1wLGY9cjtyZXR1cm4gdC5jb250b3VyPW4sdC5zaXplPWZ1bmN0aW9uKG4pe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybltpLG9dO3ZhciBlPU1hdGguY2VpbChuWzBdKSxyPU1hdGguY2VpbChuWzFdKTtpZighKGU+MCYmcj4wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHNpemVcIik7cmV0dXJuIGk9ZSxvPXIsdH0sdC50aHJlc2hvbGRzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpBcnJheS5pc0FycmF5KG4pP21lKFVoLmNhbGwobikpOm1lKG4pLHQpOmF9LHQuc21vb3RoPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPW4/cjp3ZSx0KTpmPT09cn0sdH1mdW5jdGlvbiBBZSh0LG4sZSl7Zm9yKHZhciByPXQud2lkdGgsaT10LmhlaWdodCxvPTErKGU8PDEpLGE9MDthPGk7KythKWZvcih2YXIgdT0wLGY9MDt1PHIrZTsrK3UpdTxyJiYoZis9dC5kYXRhW3UrYSpyXSksdT49ZSYmKHU+PW8mJihmLT10LmRhdGFbdS1vK2Eqcl0pLG4uZGF0YVt1LWUrYSpyXT1mL01hdGgubWluKHUrMSxyLTErby11LG8pKX1mdW5jdGlvbiBUZSh0LG4sZSl7Zm9yKHZhciByPXQud2lkdGgsaT10LmhlaWdodCxvPTErKGU8PDEpLGE9MDthPHI7KythKWZvcih2YXIgdT0wLGY9MDt1PGkrZTsrK3UpdTxpJiYoZis9dC5kYXRhW2ErdSpyXSksdT49ZSYmKHU+PW8mJihmLT10LmRhdGFbYSsodS1vKSpyXSksbi5kYXRhW2ErKHUtZSkqcl09Zi9NYXRoLm1pbih1KzEsaS0xK28tdSxvKSl9ZnVuY3Rpb24gTmUodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gU2UodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gRWUodCl7cmV0dXJuIG5ldyBGdW5jdGlvbihcImRcIixcInJldHVybiB7XCIrdC5tYXAoZnVuY3Rpb24odCxuKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkrXCI6IGRbXCIrbitcIl1cIn0pLmpvaW4oXCIsXCIpK1wifVwiKX1mdW5jdGlvbiBrZSh0KXtmdW5jdGlvbiBuKHQsbil7ZnVuY3Rpb24gZSgpe2lmKGMpcmV0dXJuIFloO2lmKHMpcmV0dXJuIHM9ITEsT2g7dmFyIG4sZSxyPXU7aWYodC5jaGFyQ29kZUF0KHIpPT09Qmgpe2Zvcig7dSsrPGEmJnQuY2hhckNvZGVBdCh1KSE9PUJofHx0LmNoYXJDb2RlQXQoKyt1KT09PUJoOyk7cmV0dXJuKG49dSk+PWE/Yz0hMDooZT10LmNoYXJDb2RlQXQodSsrKSk9PT1GaD9zPSEwOmU9PT1JaCYmKHM9ITAsdC5jaGFyQ29kZUF0KHUpPT09RmgmJisrdSksdC5zbGljZShyKzEsbi0xKS5yZXBsYWNlKC9cIlwiL2csJ1wiJyl9Zm9yKDt1PGE7KXtpZigoZT10LmNoYXJDb2RlQXQobj11KyspKT09PUZoKXM9ITA7ZWxzZSBpZihlPT09SWgpcz0hMCx0LmNoYXJDb2RlQXQodSk9PT1GaCYmKyt1O2Vsc2UgaWYoZSE9PW8pY29udGludWU7cmV0dXJuIHQuc2xpY2UocixuKX1yZXR1cm4gYz0hMCx0LnNsaWNlKHIsYSl9dmFyIHIsaT1bXSxhPXQubGVuZ3RoLHU9MCxmPTAsYz1hPD0wLHM9ITE7Zm9yKHQuY2hhckNvZGVBdChhLTEpPT09RmgmJi0tYSx0LmNoYXJDb2RlQXQoYS0xKT09PUloJiYtLWE7KHI9ZSgpKSE9PVloOyl7Zm9yKHZhciBsPVtdO3IhPT1PaCYmciE9PVloOylsLnB1c2gocikscj1lKCk7biYmbnVsbD09KGw9bihsLGYrKykpfHxpLnB1c2gobCl9cmV0dXJuIGl9ZnVuY3Rpb24gZShuKXtyZXR1cm4gbi5tYXAocikuam9pbih0KX1mdW5jdGlvbiByKHQpe3JldHVybiBudWxsPT10P1wiXCI6aS50ZXN0KHQrPVwiXCIpPydcIicrdC5yZXBsYWNlKC9cIi9nLCdcIlwiJykrJ1wiJzp0fXZhciBpPW5ldyBSZWdFeHAoJ1tcIicrdCtcIlxcblxccl1cIiksbz10LmNoYXJDb2RlQXQoMCk7cmV0dXJue3BhcnNlOmZ1bmN0aW9uKHQsZSl7dmFyIHIsaSxvPW4odCxmdW5jdGlvbih0LG4pe2lmKHIpcmV0dXJuIHIodCxuLTEpO2k9dCxyPWU/ZnVuY3Rpb24odCxuKXt2YXIgZT1FZSh0KTtyZXR1cm4gZnVuY3Rpb24ocixpKXtyZXR1cm4gbihlKHIpLGksdCl9fSh0LGUpOkVlKHQpfSk7cmV0dXJuIG8uY29sdW1ucz1pfHxbXSxvfSxwYXJzZVJvd3M6bixmb3JtYXQ6ZnVuY3Rpb24obixlKXtyZXR1cm4gbnVsbD09ZSYmKGU9ZnVuY3Rpb24odCl7dmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxlPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7Zm9yKHZhciByIGluIHQpciBpbiBufHxlLnB1c2gobltyXT1yKX0pLGV9KG4pKSxbZS5tYXAocikuam9pbih0KV0uY29uY2F0KG4ubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcihuW3RdKX0pLmpvaW4odCl9KSkuam9pbihcIlxcblwiKX0sZm9ybWF0Um93czpmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZSkuam9pbihcIlxcblwiKX19fWZ1bmN0aW9uIENlKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cytcIiBcIit0LnN0YXR1c1RleHQpO3JldHVybiB0LmJsb2IoKX1mdW5jdGlvbiBQZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5hcnJheUJ1ZmZlcigpfWZ1bmN0aW9uIHplKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cytcIiBcIit0LnN0YXR1c1RleHQpO3JldHVybiB0LnRleHQoKX1mdW5jdGlvbiBSZSh0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oemUpfWZ1bmN0aW9uIExlKHQpe3JldHVybiBmdW5jdGlvbihuLGUscil7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYocj1lLGU9dm9pZCAwKSxSZShuLGUpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIHQobixyKX0pfX1mdW5jdGlvbiBEZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5qc29uKCl9ZnVuY3Rpb24gVWUodCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIFJlKG4sZSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKG4sdCl9KX19ZnVuY3Rpb24gcWUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIE9lKCl7cmV0dXJuIDFlLTYqKE1hdGgucmFuZG9tKCktLjUpfWZ1bmN0aW9uIFllKHQsbixlLHIpe2lmKGlzTmFOKG4pfHxpc05hTihlKSlyZXR1cm4gdDt2YXIgaSxvLGEsdSxmLGMscyxsLGgsZD10Ll9yb290LHA9e2RhdGE6cn0sdj10Ll94MCxnPXQuX3kwLHk9dC5feDEsXz10Ll95MTtpZighZClyZXR1cm4gdC5fcm9vdD1wLHQ7Zm9yKDtkLmxlbmd0aDspaWYoKGM9bj49KG89KHYreSkvMikpP3Y9bzp5PW8sKHM9ZT49KGE9KGcrXykvMikpP2c9YTpfPWEsaT1kLCEoZD1kW2w9czw8MXxjXSkpcmV0dXJuIGlbbF09cCx0O2lmKHU9K3QuX3guY2FsbChudWxsLGQuZGF0YSksZj0rdC5feS5jYWxsKG51bGwsZC5kYXRhKSxuPT09dSYmZT09PWYpcmV0dXJuIHAubmV4dD1kLGk/aVtsXT1wOnQuX3Jvb3Q9cCx0O2Rve2k9aT9pW2xdPW5ldyBBcnJheSg0KTp0Ll9yb290PW5ldyBBcnJheSg0KSwoYz1uPj0obz0odit5KS8yKSk/dj1vOnk9bywocz1lPj0oYT0oZytfKS8yKSk/Zz1hOl89YX13aGlsZSgobD1zPDwxfGMpPT0oaD0oZj49YSk8PDF8dT49bykpO3JldHVybiBpW2hdPWQsaVtsXT1wLHR9ZnVuY3Rpb24gQmUodCxuLGUscixpKXt0aGlzLm5vZGU9dCx0aGlzLngwPW4sdGhpcy55MD1lLHRoaXMueDE9cix0aGlzLnkxPWl9ZnVuY3Rpb24gRmUodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gSWUodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gamUodCxuLGUpe3ZhciByPW5ldyBIZShudWxsPT1uP0ZlOm4sbnVsbD09ZT9JZTplLE5hTixOYU4sTmFOLE5hTik7cmV0dXJuIG51bGw9PXQ/cjpyLmFkZEFsbCh0KX1mdW5jdGlvbiBIZSh0LG4sZSxyLGksbyl7dGhpcy5feD10LHRoaXMuX3k9bix0aGlzLl94MD1lLHRoaXMuX3kwPXIsdGhpcy5feDE9aSx0aGlzLl95MT1vLHRoaXMuX3Jvb3Q9dm9pZCAwfWZ1bmN0aW9uIFhlKHQpe2Zvcih2YXIgbj17ZGF0YTp0LmRhdGF9LGU9bjt0PXQubmV4dDspZT1lLm5leHQ9e2RhdGE6dC5kYXRhfTtyZXR1cm4gbn1mdW5jdGlvbiBHZSh0KXtyZXR1cm4gdC54K3Qudnh9ZnVuY3Rpb24gVmUodCl7cmV0dXJuIHQueSt0LnZ5fWZ1bmN0aW9uICRlKHQpe3JldHVybiB0LmluZGV4fWZ1bmN0aW9uIFdlKHQsbil7dmFyIGU9dC5nZXQobik7aWYoIWUpdGhyb3cgbmV3IEVycm9yKFwibWlzc2luZzogXCIrbik7cmV0dXJuIGV9ZnVuY3Rpb24gWmUodCl7cmV0dXJuIHQueH1mdW5jdGlvbiBRZSh0KXtyZXR1cm4gdC55fWZ1bmN0aW9uIEplKHQsbil7aWYoKGU9KHQ9bj90LnRvRXhwb25lbnRpYWwobi0xKTp0LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZihcImVcIikpPDApcmV0dXJuIG51bGw7dmFyIGUscj10LnNsaWNlKDAsZSk7cmV0dXJuW3IubGVuZ3RoPjE/clswXStyLnNsaWNlKDIpOnIsK3Quc2xpY2UoZSsxKV19ZnVuY3Rpb24gS2UodCl7cmV0dXJuKHQ9SmUoTWF0aC5hYnModCkpKT90WzFdOk5hTn1mdW5jdGlvbiB0cih0KXtyZXR1cm4gbmV3IG5yKHQpfWZ1bmN0aW9uIG5yKHQpe2lmKCEobj11ZC5leGVjKHQpKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGZvcm1hdDogXCIrdCk7dmFyIG47dGhpcy5maWxsPW5bMV18fFwiIFwiLHRoaXMuYWxpZ249blsyXXx8XCI+XCIsdGhpcy5zaWduPW5bM118fFwiLVwiLHRoaXMuc3ltYm9sPW5bNF18fFwiXCIsdGhpcy56ZXJvPSEhbls1XSx0aGlzLndpZHRoPW5bNl0mJituWzZdLHRoaXMuY29tbWE9ISFuWzddLHRoaXMucHJlY2lzaW9uPW5bOF0mJituWzhdLnNsaWNlKDEpLHRoaXMudHJpbT0hIW5bOV0sdGhpcy50eXBlPW5bMTBdfHxcIlwifWZ1bmN0aW9uIGVyKHQsbil7dmFyIGU9SmUodCxuKTtpZighZSlyZXR1cm4gdCtcIlwiO3ZhciByPWVbMF0saT1lWzFdO3JldHVybiBpPDA/XCIwLlwiK25ldyBBcnJheSgtaSkuam9pbihcIjBcIikrcjpyLmxlbmd0aD5pKzE/ci5zbGljZSgwLGkrMSkrXCIuXCIrci5zbGljZShpKzEpOnIrbmV3IEFycmF5KGktci5sZW5ndGgrMikuam9pbihcIjBcIil9ZnVuY3Rpb24gcnIodCl7cmV0dXJuIHR9ZnVuY3Rpb24gaXIodCl7ZnVuY3Rpb24gbih0KXtmdW5jdGlvbiBuKHQpe3ZhciBuLHIsYSxzPXkseD1fO2lmKFwiY1wiPT09Zyl4PWIodCkreCx0PVwiXCI7ZWxzZXt2YXIgdz0odD0rdCk8MDtpZih0PWIoTWF0aC5hYnModCkscCksdiYmKHQ9ZnVuY3Rpb24odCl7dDpmb3IodmFyIG4sZT10Lmxlbmd0aCxyPTEsaT0tMTtyPGU7KytyKXN3aXRjaCh0W3JdKXtjYXNlXCIuXCI6aT1uPXI7YnJlYWs7Y2FzZVwiMFwiOjA9PT1pJiYoaT1yKSxuPXI7YnJlYWs7ZGVmYXVsdDppZihpPjApe2lmKCErdFtyXSlicmVhayB0O2k9MH19cmV0dXJuIGk+MD90LnNsaWNlKDAsaSkrdC5zbGljZShuKzEpOnR9KHQpKSx3JiYwPT0rdCYmKHc9ITEpLHM9KHc/XCIoXCI9PT1jP2M6XCItXCI6XCItXCI9PT1jfHxcIihcIj09PWM/XCJcIjpjKStzLHg9KFwic1wiPT09Zz9sZFs4K2ZkLzNdOlwiXCIpK3grKHcmJlwiKFwiPT09Yz9cIilcIjpcIlwiKSxtKWZvcihuPS0xLHI9dC5sZW5ndGg7KytuPHI7KWlmKDQ4PihhPXQuY2hhckNvZGVBdChuKSl8fGE+NTcpe3g9KDQ2PT09YT9pK3Quc2xpY2UobisxKTp0LnNsaWNlKG4pKSt4LHQ9dC5zbGljZSgwLG4pO2JyZWFrfX1kJiYhbCYmKHQ9ZSh0LDEvMCkpO3ZhciBNPXMubGVuZ3RoK3QubGVuZ3RoK3gubGVuZ3RoLEE9TTxoP25ldyBBcnJheShoLU0rMSkuam9pbih1KTpcIlwiO3N3aXRjaChkJiZsJiYodD1lKEErdCxBLmxlbmd0aD9oLXgubGVuZ3RoOjEvMCksQT1cIlwiKSxmKXtjYXNlXCI8XCI6dD1zK3QreCtBO2JyZWFrO2Nhc2VcIj1cIjp0PXMrQSt0K3g7YnJlYWs7Y2FzZVwiXlwiOnQ9QS5zbGljZSgwLE09QS5sZW5ndGg+PjEpK3MrdCt4K0Euc2xpY2UoTSk7YnJlYWs7ZGVmYXVsdDp0PUErcyt0K3h9cmV0dXJuIG8odCl9dmFyIHU9KHQ9dHIodCkpLmZpbGwsZj10LmFsaWduLGM9dC5zaWduLHM9dC5zeW1ib2wsbD10Lnplcm8saD10LndpZHRoLGQ9dC5jb21tYSxwPXQucHJlY2lzaW9uLHY9dC50cmltLGc9dC50eXBlO1wiblwiPT09Zz8oZD0hMCxnPVwiZ1wiKTpzZFtnXXx8KG51bGw9PXAmJihwPTEyKSx2PSEwLGc9XCJnXCIpLChsfHxcIjBcIj09PXUmJlwiPVwiPT09ZikmJihsPSEwLHU9XCIwXCIsZj1cIj1cIik7dmFyIHk9XCIkXCI9PT1zP3JbMF06XCIjXCI9PT1zJiYvW2JveFhdLy50ZXN0KGcpP1wiMFwiK2cudG9Mb3dlckNhc2UoKTpcIlwiLF89XCIkXCI9PT1zP3JbMV06L1slcF0vLnRlc3QoZyk/YTpcIlwiLGI9c2RbZ10sbT0vW2RlZmdwcnMlXS8udGVzdChnKTtyZXR1cm4gcD1udWxsPT1wPzY6L1tncHJzXS8udGVzdChnKT9NYXRoLm1heCgxLE1hdGgubWluKDIxLHApKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLHApKSxuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQrXCJcIn0sbn12YXIgZT10Lmdyb3VwaW5nJiZ0LnRob3VzYW5kcz9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbihlLHIpe2Zvcih2YXIgaT1lLmxlbmd0aCxvPVtdLGE9MCx1PXRbMF0sZj0wO2k+MCYmdT4wJiYoZit1KzE+ciYmKHU9TWF0aC5tYXgoMSxyLWYpKSxvLnB1c2goZS5zdWJzdHJpbmcoaS09dSxpK3UpKSwhKChmKz11KzEpPnIpKTspdT10W2E9KGErMSkldC5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKG4pfX0odC5ncm91cGluZyx0LnRob3VzYW5kcyk6cnIscj10LmN1cnJlbmN5LGk9dC5kZWNpbWFsLG89dC5udW1lcmFscz9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG4ucmVwbGFjZSgvWzAtOV0vZyxmdW5jdGlvbihuKXtyZXR1cm4gdFsrbl19KX19KHQubnVtZXJhbHMpOnJyLGE9dC5wZXJjZW50fHxcIiVcIjtyZXR1cm57Zm9ybWF0Om4sZm9ybWF0UHJlZml4OmZ1bmN0aW9uKHQsZSl7dmFyIHI9bigodD10cih0KSx0LnR5cGU9XCJmXCIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoS2UoZSkvMykpKSxvPU1hdGgucG93KDEwLC1pKSxhPWxkWzgraS8zXTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIobyp0KSthfX19fWZ1bmN0aW9uIG9yKG4pe3JldHVybiBjZD1pcihuKSx0LmZvcm1hdD1jZC5mb3JtYXQsdC5mb3JtYXRQcmVmaXg9Y2QuZm9ybWF0UHJlZml4LGNkfWZ1bmN0aW9uIGFyKHQpe3JldHVybiBNYXRoLm1heCgwLC1LZShNYXRoLmFicyh0KSkpfWZ1bmN0aW9uIHVyKHQsbil7cmV0dXJuIE1hdGgubWF4KDAsMypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoS2UobikvMykpKS1LZShNYXRoLmFicyh0KSkpfWZ1bmN0aW9uIGZyKHQsbil7cmV0dXJuIHQ9TWF0aC5hYnModCksbj1NYXRoLmFicyhuKS10LE1hdGgubWF4KDAsS2UobiktS2UodCkpKzF9ZnVuY3Rpb24gY3IoKXtyZXR1cm4gbmV3IHNyfWZ1bmN0aW9uIHNyKCl7dGhpcy5yZXNldCgpfWZ1bmN0aW9uIGxyKHQsbixlKXt2YXIgcj10LnM9bitlLGk9ci1uLG89ci1pO3QudD1uLW8rKGUtaSl9ZnVuY3Rpb24gaHIodCl7cmV0dXJuIHQ+MT8wOnQ8LTE/R2Q6TWF0aC5hY29zKHQpfWZ1bmN0aW9uIGRyKHQpe3JldHVybiB0PjE/VmQ6dDwtMT8tVmQ6TWF0aC5hc2luKHQpfWZ1bmN0aW9uIHByKHQpe3JldHVybih0PWFwKHQvMikpKnR9ZnVuY3Rpb24gdnIoKXt9ZnVuY3Rpb24gZ3IodCxuKXt0JiZscC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpJiZscFt0LnR5cGVdKHQsbil9ZnVuY3Rpb24geXIodCxuLGUpe3ZhciByLGk9LTEsbz10Lmxlbmd0aC1lO2ZvcihuLmxpbmVTdGFydCgpOysraTxvOylyPXRbaV0sbi5wb2ludChyWzBdLHJbMV0sclsyXSk7bi5saW5lRW5kKCl9ZnVuY3Rpb24gX3IodCxuKXt2YXIgZT0tMSxyPXQubGVuZ3RoO2ZvcihuLnBvbHlnb25TdGFydCgpOysrZTxyOyl5cih0W2VdLG4sMSk7bi5wb2x5Z29uRW5kKCl9ZnVuY3Rpb24gYnIodCxuKXt0JiZzcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP3NwW3QudHlwZV0odCxuKTpncih0LG4pfWZ1bmN0aW9uIG1yKCl7cHAucG9pbnQ9d3J9ZnVuY3Rpb24geHIoKXtNcihoZCxkZCl9ZnVuY3Rpb24gd3IodCxuKXtwcC5wb2ludD1NcixoZD10LGRkPW4scGQ9dCo9UWQsdmQ9bnAobj0obio9UWQpLzIrJGQpLGdkPWFwKG4pfWZ1bmN0aW9uIE1yKHQsbil7bj0obio9UWQpLzIrJGQ7dmFyIGU9KHQqPVFkKS1wZCxyPWU+PTA/MTotMSxpPXIqZSxvPW5wKG4pLGE9YXAobiksdT1nZCphLGY9dmQqbyt1Km5wKGkpLGM9dSpyKmFwKGkpO2hwLmFkZCh0cChjLGYpKSxwZD10LHZkPW8sZ2Q9YX1mdW5jdGlvbiBBcih0KXtyZXR1cm5bdHAodFsxXSx0WzBdKSxkcih0WzJdKV19ZnVuY3Rpb24gVHIodCl7dmFyIG49dFswXSxlPXRbMV0scj1ucChlKTtyZXR1cm5bcipucChuKSxyKmFwKG4pLGFwKGUpXX1mdW5jdGlvbiBOcih0LG4pe3JldHVybiB0WzBdKm5bMF0rdFsxXSpuWzFdK3RbMl0qblsyXX1mdW5jdGlvbiBTcih0LG4pe3JldHVyblt0WzFdKm5bMl0tdFsyXSpuWzFdLHRbMl0qblswXS10WzBdKm5bMl0sdFswXSpuWzFdLXRbMV0qblswXV19ZnVuY3Rpb24gRXIodCxuKXt0WzBdKz1uWzBdLHRbMV0rPW5bMV0sdFsyXSs9blsyXX1mdW5jdGlvbiBrcih0LG4pe3JldHVyblt0WzBdKm4sdFsxXSpuLHRbMl0qbl19ZnVuY3Rpb24gQ3IodCl7dmFyIG49ZnAodFswXSp0WzBdK3RbMV0qdFsxXSt0WzJdKnRbMl0pO3RbMF0vPW4sdFsxXS89bix0WzJdLz1ufWZ1bmN0aW9uIFByKHQsbil7VGQucHVzaChOZD1beWQ9dCxiZD10XSksbjxfZCYmKF9kPW4pLG4+bWQmJihtZD1uKX1mdW5jdGlvbiB6cih0LG4pe3ZhciBlPVRyKFt0KlFkLG4qUWRdKTtpZihBZCl7dmFyIHI9U3IoQWQsZSksaT1TcihbclsxXSwtclswXSwwXSxyKTtDcihpKSxpPUFyKGkpO3ZhciBvLGE9dC14ZCx1PWE+MD8xOi0xLGY9aVswXSpaZCp1LGM9SmQoYSk+MTgwO2NeKHUqeGQ8ZiYmZjx1KnQpPyhvPWlbMV0qWmQpPm1kJiYobWQ9byk6KGY9KGYrMzYwKSUzNjAtMTgwLGNeKHUqeGQ8ZiYmZjx1KnQpPyhvPS1pWzFdKlpkKTxfZCYmKF9kPW8pOihuPF9kJiYoX2Q9biksbj5tZCYmKG1kPW4pKSksYz90PHhkP09yKHlkLHQpPk9yKHlkLGJkKSYmKGJkPXQpOk9yKHQsYmQpPk9yKHlkLGJkKSYmKHlkPXQpOmJkPj15ZD8odDx5ZCYmKHlkPXQpLHQ+YmQmJihiZD10KSk6dD54ZD9Pcih5ZCx0KT5Pcih5ZCxiZCkmJihiZD10KTpPcih0LGJkKT5Pcih5ZCxiZCkmJih5ZD10KX1lbHNlIFRkLnB1c2goTmQ9W3lkPXQsYmQ9dF0pO248X2QmJihfZD1uKSxuPm1kJiYobWQ9biksQWQ9ZSx4ZD10fWZ1bmN0aW9uIFJyKCl7Z3AucG9pbnQ9enJ9ZnVuY3Rpb24gTHIoKXtOZFswXT15ZCxOZFsxXT1iZCxncC5wb2ludD1QcixBZD1udWxsfWZ1bmN0aW9uIERyKHQsbil7aWYoQWQpe3ZhciBlPXQteGQ7dnAuYWRkKEpkKGUpPjE4MD9lKyhlPjA/MzYwOi0zNjApOmUpfWVsc2Ugd2Q9dCxNZD1uO3BwLnBvaW50KHQsbiksenIodCxuKX1mdW5jdGlvbiBVcigpe3BwLmxpbmVTdGFydCgpfWZ1bmN0aW9uIHFyKCl7RHIod2QsTWQpLHBwLmxpbmVFbmQoKSxKZCh2cCk+SGQmJih5ZD0tKGJkPTE4MCkpLE5kWzBdPXlkLE5kWzFdPWJkLEFkPW51bGx9ZnVuY3Rpb24gT3IodCxuKXtyZXR1cm4obi09dCk8MD9uKzM2MDpufWZ1bmN0aW9uIFlyKHQsbil7cmV0dXJuIHRbMF0tblswXX1mdW5jdGlvbiBCcih0LG4pe3JldHVybiB0WzBdPD10WzFdP3RbMF08PW4mJm48PXRbMV06bjx0WzBdfHx0WzFdPG59ZnVuY3Rpb24gRnIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCk7SXIoZSpucCh0KSxlKmFwKHQpLGFwKG4pKX1mdW5jdGlvbiBJcih0LG4sZSl7a2QrPSh0LWtkKS8rK1NkLENkKz0obi1DZCkvU2QsUGQrPShlLVBkKS9TZH1mdW5jdGlvbiBqcigpe3lwLnBvaW50PUhyfWZ1bmN0aW9uIEhyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpO0JkPWUqbnAodCksRmQ9ZSphcCh0KSxJZD1hcChuKSx5cC5wb2ludD1YcixJcihCZCxGZCxJZCl9ZnVuY3Rpb24gWHIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCkscj1lKm5wKHQpLGk9ZSphcCh0KSxvPWFwKG4pLGE9dHAoZnAoKGE9RmQqby1JZCppKSphKyhhPUlkKnItQmQqbykqYSsoYT1CZCppLUZkKnIpKmEpLEJkKnIrRmQqaStJZCpvKTtFZCs9YSx6ZCs9YSooQmQrKEJkPXIpKSxSZCs9YSooRmQrKEZkPWkpKSxMZCs9YSooSWQrKElkPW8pKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gR3IoKXt5cC5wb2ludD1Gcn1mdW5jdGlvbiBWcigpe3lwLnBvaW50PVdyfWZ1bmN0aW9uICRyKCl7WnIoT2QsWWQpLHlwLnBvaW50PUZyfWZ1bmN0aW9uIFdyKHQsbil7T2Q9dCxZZD1uLHQqPVFkLG4qPVFkLHlwLnBvaW50PVpyO3ZhciBlPW5wKG4pO0JkPWUqbnAodCksRmQ9ZSphcCh0KSxJZD1hcChuKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gWnIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCkscj1lKm5wKHQpLGk9ZSphcCh0KSxvPWFwKG4pLGE9RmQqby1JZCppLHU9SWQqci1CZCpvLGY9QmQqaS1GZCpyLGM9ZnAoYSphK3UqdStmKmYpLHM9ZHIoYyksbD1jJiYtcy9jO0RkKz1sKmEsVWQrPWwqdSxxZCs9bCpmLEVkKz1zLHpkKz1zKihCZCsoQmQ9cikpLFJkKz1zKihGZCsoRmQ9aSkpLExkKz1zKihJZCsoSWQ9bykpLElyKEJkLEZkLElkKX1mdW5jdGlvbiBRcih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gSnIodCxuKXtmdW5jdGlvbiBlKGUscil7cmV0dXJuIGU9dChlLHIpLG4oZVswXSxlWzFdKX1yZXR1cm4gdC5pbnZlcnQmJm4uaW52ZXJ0JiYoZS5pbnZlcnQ9ZnVuY3Rpb24oZSxyKXtyZXR1cm4oZT1uLmludmVydChlLHIpKSYmdC5pbnZlcnQoZVswXSxlWzFdKX0pLGV9ZnVuY3Rpb24gS3IodCxuKXtyZXR1cm5bdD5HZD90LVdkOnQ8LUdkP3QrV2Q6dCxuXX1mdW5jdGlvbiB0aSh0LG4sZSl7cmV0dXJuKHQlPVdkKT9ufHxlP0pyKGVpKHQpLHJpKG4sZSkpOmVpKHQpOm58fGU/cmkobixlKTpLcn1mdW5jdGlvbiBuaSh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXtyZXR1cm4gbis9dCxbbj5HZD9uLVdkOm48LUdkP24rV2Q6bixlXX19ZnVuY3Rpb24gZWkodCl7dmFyIG49bmkodCk7cmV0dXJuIG4uaW52ZXJ0PW5pKC10KSxufWZ1bmN0aW9uIHJpKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPW5wKG4pLHU9bnAodCkqZSxmPWFwKHQpKmUsYz1hcChuKSxzPWMqcit1Kmk7cmV0dXJuW3RwKGYqby1zKmEsdSpyLWMqaSksZHIocypvK2YqYSldfXZhciByPW5wKHQpLGk9YXAodCksbz1ucChuKSxhPWFwKG4pO3JldHVybiBlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW5wKG4pLHU9bnAodCkqZSxmPWFwKHQpKmUsYz1hcChuKSxzPWMqby1mKmE7cmV0dXJuW3RwKGYqbytjKmEsdSpyK3MqaSksZHIocypyLXUqaSldfSxlfWZ1bmN0aW9uIGlpKHQpe2Z1bmN0aW9uIG4obil7cmV0dXJuIG49dChuWzBdKlFkLG5bMV0qUWQpLG5bMF0qPVpkLG5bMV0qPVpkLG59cmV0dXJuIHQ9dGkodFswXSpRZCx0WzFdKlFkLHQubGVuZ3RoPjI/dFsyXSpRZDowKSxuLmludmVydD1mdW5jdGlvbihuKXtyZXR1cm4gbj10LmludmVydChuWzBdKlFkLG5bMV0qUWQpLG5bMF0qPVpkLG5bMV0qPVpkLG59LG59ZnVuY3Rpb24gb2kodCxuLGUscixpLG8pe2lmKGUpe3ZhciBhPW5wKG4pLHU9YXAobiksZj1yKmU7bnVsbD09aT8oaT1uK3IqV2Qsbz1uLWYvMik6KGk9YWkoYSxpKSxvPWFpKGEsbyksKHI+MD9pPG86aT5vKSYmKGkrPXIqV2QpKTtmb3IodmFyIGMscz1pO3I+MD9zPm86czxvO3MtPWYpYz1BcihbYSwtdSpucChzKSwtdSphcChzKV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gYWkodCxuKXsobj1UcihuKSlbMF0tPXQsQ3Iobik7dmFyIGU9aHIoLW5bMV0pO3JldHVybigoLW5bMl08MD8tZTplKStXZC1IZCklV2R9ZnVuY3Rpb24gdWkoKXt2YXIgdCxuPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihuLGUpe3QucHVzaChbbixlXSl9LGxpbmVTdGFydDpmdW5jdGlvbigpe24ucHVzaCh0PVtdKX0sbGluZUVuZDp2cixyZWpvaW46ZnVuY3Rpb24oKXtuLmxlbmd0aD4xJiZuLnB1c2gobi5wb3AoKS5jb25jYXQobi5zaGlmdCgpKSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBlPW47cmV0dXJuIG49W10sdD1udWxsLGV9fX1mdW5jdGlvbiBmaSh0LG4pe3JldHVybiBKZCh0WzBdLW5bMF0pPEhkJiZKZCh0WzFdLW5bMV0pPEhkfWZ1bmN0aW9uIGNpKHQsbixlLHIpe3RoaXMueD10LHRoaXMuej1uLHRoaXMubz1lLHRoaXMuZT1yLHRoaXMudj0hMSx0aGlzLm49dGhpcy5wPW51bGx9ZnVuY3Rpb24gc2kodCxuLGUscixpKXt2YXIgbyxhLHU9W10sZj1bXTtpZih0LmZvckVhY2goZnVuY3Rpb24odCl7aWYoISgobj10Lmxlbmd0aC0xKTw9MCkpe3ZhciBuLGUscj10WzBdLGE9dFtuXTtpZihmaShyLGEpKXtmb3IoaS5saW5lU3RhcnQoKSxvPTA7bzxuOysrbylpLnBvaW50KChyPXRbb10pWzBdLHJbMV0pO2kubGluZUVuZCgpfWVsc2UgdS5wdXNoKGU9bmV3IGNpKHIsdCxudWxsLCEwKSksZi5wdXNoKGUubz1uZXcgY2kocixudWxsLGUsITEpKSx1LnB1c2goZT1uZXcgY2koYSx0LG51bGwsITEpKSxmLnB1c2goZS5vPW5ldyBjaShhLG51bGwsZSwhMCkpfX0pLHUubGVuZ3RoKXtmb3IoZi5zb3J0KG4pLGxpKHUpLGxpKGYpLG89MCxhPWYubGVuZ3RoO288YTsrK28pZltvXS5lPWU9IWU7Zm9yKHZhciBjLHMsbD11WzBdOzspe2Zvcih2YXIgaD1sLGQ9ITA7aC52OylpZigoaD1oLm4pPT09bClyZXR1cm47Yz1oLnosaS5saW5lU3RhcnQoKTtkb3tpZihoLnY9aC5vLnY9ITAsaC5lKXtpZihkKWZvcihvPTAsYT1jLmxlbmd0aDtvPGE7KytvKWkucG9pbnQoKHM9Y1tvXSlbMF0sc1sxXSk7ZWxzZSByKGgueCxoLm4ueCwxLGkpO2g9aC5ufWVsc2V7aWYoZClmb3IoYz1oLnAueixvPWMubGVuZ3RoLTE7bz49MDstLW8paS5wb2ludCgocz1jW29dKVswXSxzWzFdKTtlbHNlIHIoaC54LGgucC54LC0xLGkpO2g9aC5wfWM9KGg9aC5vKS56LGQ9IWR9d2hpbGUoIWgudik7aS5saW5lRW5kKCl9fX1mdW5jdGlvbiBsaSh0KXtpZihuPXQubGVuZ3RoKXtmb3IodmFyIG4sZSxyPTAsaT10WzBdOysrcjxuOylpLm49ZT10W3JdLGUucD1pLGk9ZTtpLm49ZT10WzBdLGUucD1pfX1mdW5jdGlvbiBoaSh0LG4pe3ZhciBlPW5bMF0scj1uWzFdLGk9YXAociksbz1bYXAoZSksLW5wKGUpLDBdLGE9MCx1PTA7a3AucmVzZXQoKSwxPT09aT9yPVZkK0hkOi0xPT09aSYmKHI9LVZkLUhkKTtmb3IodmFyIGY9MCxjPXQubGVuZ3RoO2Y8YzsrK2YpaWYobD0ocz10W2ZdKS5sZW5ndGgpZm9yKHZhciBzLGwsaD1zW2wtMV0sZD1oWzBdLHA9aFsxXS8yKyRkLHY9YXAocCksZz1ucChwKSx5PTA7eTxsOysreSxkPWIsdj14LGc9dyxoPV8pe3ZhciBfPXNbeV0sYj1fWzBdLG09X1sxXS8yKyRkLHg9YXAobSksdz1ucChtKSxNPWItZCxBPU0+PTA/MTotMSxUPUEqTSxOPVQ+R2QsUz12Kng7aWYoa3AuYWRkKHRwKFMqQSphcChUKSxnKncrUypucChUKSkpLGErPU4/TStBKldkOk0sTl5kPj1lXmI+PWUpe3ZhciBFPVNyKFRyKGgpLFRyKF8pKTtDcihFKTt2YXIgaz1TcihvLEUpO0NyKGspO3ZhciBDPShOXk0+PTA/LTE6MSkqZHIoa1syXSk7KHI+Q3x8cj09PUMmJihFWzBdfHxFWzFdKSkmJih1Kz1OXk0+PTA/MTotMSl9fXJldHVybihhPC1IZHx8YTxIZCYma3A8LUhkKV4xJnV9ZnVuY3Rpb24gZGkodCxuLGUscil7cmV0dXJuIGZ1bmN0aW9uKGkpe2Z1bmN0aW9uIG8obixlKXt0KG4sZSkmJmkucG9pbnQobixlKX1mdW5jdGlvbiBhKHQsbil7di5wb2ludCh0LG4pfWZ1bmN0aW9uIHUoKXttLnBvaW50PWEsdi5saW5lU3RhcnQoKX1mdW5jdGlvbiBmKCl7bS5wb2ludD1vLHYubGluZUVuZCgpfWZ1bmN0aW9uIGModCxuKXtwLnB1c2goW3Qsbl0pLF8ucG9pbnQodCxuKX1mdW5jdGlvbiBzKCl7Xy5saW5lU3RhcnQoKSxwPVtdfWZ1bmN0aW9uIGwoKXtjKHBbMF1bMF0scFswXVsxXSksXy5saW5lRW5kKCk7dmFyIHQsbixlLHIsbz1fLmNsZWFuKCksYT1nLnJlc3VsdCgpLHU9YS5sZW5ndGg7aWYocC5wb3AoKSxoLnB1c2gocCkscD1udWxsLHUpaWYoMSZvKXtpZihlPWFbMF0sKG49ZS5sZW5ndGgtMSk+MCl7Zm9yKGJ8fChpLnBvbHlnb25TdGFydCgpLGI9ITApLGkubGluZVN0YXJ0KCksdD0wO3Q8bjsrK3QpaS5wb2ludCgocj1lW3RdKVswXSxyWzFdKTtpLmxpbmVFbmQoKX19ZWxzZSB1PjEmJjImbyYmYS5wdXNoKGEucG9wKCkuY29uY2F0KGEuc2hpZnQoKSkpLGQucHVzaChhLmZpbHRlcihwaSkpfXZhciBoLGQscCx2PW4oaSksZz11aSgpLF89bihnKSxiPSExLG09e3BvaW50Om8sbGluZVN0YXJ0OnUsbGluZUVuZDpmLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe20ucG9pbnQ9YyxtLmxpbmVTdGFydD1zLG0ubGluZUVuZD1sLGQ9W10saD1bXX0scG9seWdvbkVuZDpmdW5jdGlvbigpe20ucG9pbnQ9byxtLmxpbmVTdGFydD11LG0ubGluZUVuZD1mLGQ9eShkKTt2YXIgdD1oaShoLHIpO2QubGVuZ3RoPyhifHwoaS5wb2x5Z29uU3RhcnQoKSxiPSEwKSxzaShkLHZpLHQsZSxpKSk6dCYmKGJ8fChpLnBvbHlnb25TdGFydCgpLGI9ITApLGkubGluZVN0YXJ0KCksZShudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSksYiYmKGkucG9seWdvbkVuZCgpLGI9ITEpLGQ9aD1udWxsfSxzcGhlcmU6ZnVuY3Rpb24oKXtpLnBvbHlnb25TdGFydCgpLGkubGluZVN0YXJ0KCksZShudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSxpLnBvbHlnb25FbmQoKX19O3JldHVybiBtfX1mdW5jdGlvbiBwaSh0KXtyZXR1cm4gdC5sZW5ndGg+MX1mdW5jdGlvbiB2aSh0LG4pe3JldHVybigodD10LngpWzBdPDA/dFsxXS1WZC1IZDpWZC10WzFdKS0oKG49bi54KVswXTwwP25bMV0tVmQtSGQ6VmQtblsxXSl9ZnVuY3Rpb24gZ2kodCl7ZnVuY3Rpb24gbih0LG4pe3JldHVybiBucCh0KSpucChuKT5pfWZ1bmN0aW9uIGUodCxuLGUpe3ZhciByPVsxLDAsMF0sbz1TcihUcih0KSxUcihuKSksYT1OcihvLG8pLHU9b1swXSxmPWEtdSp1O2lmKCFmKXJldHVybiFlJiZ0O3ZhciBjPWkqYS9mLHM9LWkqdS9mLGw9U3IocixvKSxoPWtyKHIsYyk7RXIoaCxrcihvLHMpKTt2YXIgZD1sLHA9TnIoaCxkKSx2PU5yKGQsZCksZz1wKnAtdiooTnIoaCxoKS0xKTtpZighKGc8MCkpe3ZhciB5PWZwKGcpLF89a3IoZCwoLXAteSkvdik7aWYoRXIoXyxoKSxfPUFyKF8pLCFlKXJldHVybiBfO3ZhciBiLG09dFswXSx4PW5bMF0sdz10WzFdLE09blsxXTt4PG0mJihiPW0sbT14LHg9Yik7dmFyIEE9eC1tLFQ9SmQoQS1HZCk8SGQ7aWYoIVQmJk08dyYmKGI9dyx3PU0sTT1iKSxUfHxBPEhkP1Q/dytNPjBeX1sxXTwoSmQoX1swXS1tKTxIZD93Ok0pOnc8PV9bMV0mJl9bMV08PU06QT5HZF4obTw9X1swXSYmX1swXTw9eCkpe3ZhciBOPWtyKGQsKC1wK3kpL3YpO3JldHVybiBFcihOLGgpLFtfLEFyKE4pXX19fWZ1bmN0aW9uIHIobixlKXt2YXIgcj1hP3Q6R2QtdCxpPTA7cmV0dXJuIG48LXI/aXw9MTpuPnImJihpfD0yKSxlPC1yP2l8PTQ6ZT5yJiYoaXw9OCksaX12YXIgaT1ucCh0KSxvPTYqUWQsYT1pPjAsdT1KZChpKT5IZDtyZXR1cm4gZGkobixmdW5jdGlvbih0KXt2YXIgaSxvLGYsYyxzO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtjPWY9ITEscz0xfSxwb2ludDpmdW5jdGlvbihsLGgpe3ZhciBkLHA9W2wsaF0sdj1uKGwsaCksZz1hP3Y/MDpyKGwsaCk6dj9yKGwrKGw8MD9HZDotR2QpLGgpOjA7aWYoIWkmJihjPWY9dikmJnQubGluZVN0YXJ0KCksdiE9PWYmJighKGQ9ZShpLHApKXx8ZmkoaSxkKXx8ZmkocCxkKSkmJihwWzBdKz1IZCxwWzFdKz1IZCx2PW4ocFswXSxwWzFdKSksdiE9PWYpcz0wLHY/KHQubGluZVN0YXJ0KCksZD1lKHAsaSksdC5wb2ludChkWzBdLGRbMV0pKTooZD1lKGkscCksdC5wb2ludChkWzBdLGRbMV0pLHQubGluZUVuZCgpKSxpPWQ7ZWxzZSBpZih1JiZpJiZhXnYpe3ZhciB5O2cmb3x8ISh5PWUocCxpLCEwKSl8fChzPTAsYT8odC5saW5lU3RhcnQoKSx0LnBvaW50KHlbMF1bMF0seVswXVsxXSksdC5wb2ludCh5WzFdWzBdLHlbMV1bMV0pLHQubGluZUVuZCgpKToodC5wb2ludCh5WzFdWzBdLHlbMV1bMV0pLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh5WzBdWzBdLHlbMF1bMV0pKSl9IXZ8fGkmJmZpKGkscCl8fHQucG9pbnQocFswXSxwWzFdKSxpPXAsZj12LG89Z30sbGluZUVuZDpmdW5jdGlvbigpe2YmJnQubGluZUVuZCgpLGk9bnVsbH0sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gc3woYyYmZik8PDF9fX0sZnVuY3Rpb24obixlLHIsaSl7b2koaSx0LG8scixuLGUpfSxhP1swLC10XTpbLUdkLHQtR2RdKX1mdW5jdGlvbiB5aSh0LG4sZSxyKXtmdW5jdGlvbiBpKGksbyl7cmV0dXJuIHQ8PWkmJmk8PWUmJm48PW8mJm88PXJ9ZnVuY3Rpb24gbyhpLG8sdSxjKXt2YXIgcz0wLGw9MDtpZihudWxsPT1pfHwocz1hKGksdSkpIT09KGw9YShvLHUpKXx8ZihpLG8pPDBedT4wKWRve2MucG9pbnQoMD09PXN8fDM9PT1zP3Q6ZSxzPjE/cjpuKX13aGlsZSgocz0ocyt1KzQpJTQpIT09bCk7ZWxzZSBjLnBvaW50KG9bMF0sb1sxXSl9ZnVuY3Rpb24gYShyLGkpe3JldHVybiBKZChyWzBdLXQpPEhkP2k+MD8wOjM6SmQoclswXS1lKTxIZD9pPjA/MjoxOkpkKHJbMV0tbik8SGQ/aT4wPzE6MDppPjA/MzoyfWZ1bmN0aW9uIHUodCxuKXtyZXR1cm4gZih0Lngsbi54KX1mdW5jdGlvbiBmKHQsbil7dmFyIGU9YSh0LDEpLHI9YShuLDEpO3JldHVybiBlIT09cj9lLXI6MD09PWU/blsxXS10WzFdOjE9PT1lP3RbMF0tblswXToyPT09ZT90WzFdLW5bMV06blswXS10WzBdfXJldHVybiBmdW5jdGlvbihhKXtmdW5jdGlvbiBmKHQsbil7aSh0LG4pJiZ3LnBvaW50KHQsbil9ZnVuY3Rpb24gYyhvLGEpe3ZhciB1PWkobyxhKTtpZihsJiZoLnB1c2goW28sYV0pLG0pZD1vLHA9YSx2PXUsbT0hMSx1JiYody5saW5lU3RhcnQoKSx3LnBvaW50KG8sYSkpO2Vsc2UgaWYodSYmYil3LnBvaW50KG8sYSk7ZWxzZXt2YXIgZj1bZz1NYXRoLm1heCh6cCxNYXRoLm1pbihQcCxnKSksXz1NYXRoLm1heCh6cCxNYXRoLm1pbihQcCxfKSldLGM9W289TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsbykpLGE9TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsYSkpXTshZnVuY3Rpb24odCxuLGUscixpLG8pe3ZhciBhLHU9dFswXSxmPXRbMV0sYz0wLHM9MSxsPW5bMF0tdSxoPW5bMV0tZjtpZihhPWUtdSxsfHwhKGE+MCkpe2lmKGEvPWwsbDwwKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9ZWxzZSBpZihsPjApe2lmKGE+cylyZXR1cm47YT5jJiYoYz1hKX1pZihhPWktdSxsfHwhKGE8MCkpe2lmKGEvPWwsbDwwKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihsPjApe2lmKGE8YylyZXR1cm47YTxzJiYocz1hKX1pZihhPXItZixofHwhKGE+MCkpe2lmKGEvPWgsaDwwKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9ZWxzZSBpZihoPjApe2lmKGE+cylyZXR1cm47YT5jJiYoYz1hKX1pZihhPW8tZixofHwhKGE8MCkpe2lmKGEvPWgsaDwwKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihoPjApe2lmKGE8YylyZXR1cm47YTxzJiYocz1hKX1yZXR1cm4gYz4wJiYodFswXT11K2MqbCx0WzFdPWYrYypoKSxzPDEmJihuWzBdPXUrcypsLG5bMV09ZitzKmgpLCEwfX19fX0oZixjLHQsbixlLHIpP3UmJih3LmxpbmVTdGFydCgpLHcucG9pbnQobyxhKSx4PSExKTooYnx8KHcubGluZVN0YXJ0KCksdy5wb2ludChmWzBdLGZbMV0pKSx3LnBvaW50KGNbMF0sY1sxXSksdXx8dy5saW5lRW5kKCkseD0hMSl9Zz1vLF89YSxiPXV9dmFyIHMsbCxoLGQscCx2LGcsXyxiLG0seCx3PWEsTT11aSgpLEE9e3BvaW50OmYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7QS5wb2ludD1jLGwmJmwucHVzaChoPVtdKSxtPSEwLGI9ITEsZz1fPU5hTn0sbGluZUVuZDpmdW5jdGlvbigpe3MmJihjKGQscCksdiYmYiYmTS5yZWpvaW4oKSxzLnB1c2goTS5yZXN1bHQoKSkpLEEucG9pbnQ9ZixiJiZ3LmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dz1NLHM9W10sbD1bXSx4PSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIG49ZnVuY3Rpb24oKXtmb3IodmFyIG49MCxlPTAsaT1sLmxlbmd0aDtlPGk7KytlKWZvcih2YXIgbyxhLHU9bFtlXSxmPTEsYz11Lmxlbmd0aCxzPXVbMF0saD1zWzBdLGQ9c1sxXTtmPGM7KytmKW89aCxhPWQsaD0ocz11W2ZdKVswXSxkPXNbMV0sYTw9cj9kPnImJihoLW8pKihyLWEpPihkLWEpKih0LW8pJiYrK246ZDw9ciYmKGgtbykqKHItYSk8KGQtYSkqKHQtbykmJi0tbjtyZXR1cm4gbn0oKSxlPXgmJm4saT0ocz15KHMpKS5sZW5ndGg7KGV8fGkpJiYoYS5wb2x5Z29uU3RhcnQoKSxlJiYoYS5saW5lU3RhcnQoKSxvKG51bGwsbnVsbCwxLGEpLGEubGluZUVuZCgpKSxpJiZzaShzLHUsbixvLGEpLGEucG9seWdvbkVuZCgpKSx3PWEscz1sPWg9bnVsbH19O3JldHVybiBBfX1mdW5jdGlvbiBfaSgpe0xwLnBvaW50PUxwLmxpbmVFbmQ9dnJ9ZnVuY3Rpb24gYmkodCxuKXtfcD10Kj1RZCxicD1hcChuKj1RZCksbXA9bnAobiksTHAucG9pbnQ9bWl9ZnVuY3Rpb24gbWkodCxuKXt0Kj1RZDt2YXIgZT1hcChuKj1RZCkscj1ucChuKSxpPUpkKHQtX3ApLG89bnAoaSksYT1yKmFwKGkpLHU9bXAqZS1icCpyKm8sZj1icCplK21wKnIqbztScC5hZGQodHAoZnAoYSphK3UqdSksZikpLF9wPXQsYnA9ZSxtcD1yfWZ1bmN0aW9uIHhpKHQpe3JldHVybiBScC5yZXNldCgpLGJyKHQsTHApLCtScH1mdW5jdGlvbiB3aSh0LG4pe3JldHVybiBEcFswXT10LERwWzFdPW4seGkoVXApfWZ1bmN0aW9uIE1pKHQsbil7cmV0dXJuISghdHx8IU9wLmhhc093blByb3BlcnR5KHQudHlwZSkpJiZPcFt0LnR5cGVdKHQsbil9ZnVuY3Rpb24gQWkodCxuKXtyZXR1cm4gMD09PXdpKHQsbil9ZnVuY3Rpb24gVGkodCxuKXt2YXIgZT13aSh0WzBdLHRbMV0pO3JldHVybiB3aSh0WzBdLG4pK3dpKG4sdFsxXSk8PWUrSGR9ZnVuY3Rpb24gTmkodCxuKXtyZXR1cm4hIWhpKHQubWFwKFNpKSxFaShuKSl9ZnVuY3Rpb24gU2kodCl7cmV0dXJuKHQ9dC5tYXAoRWkpKS5wb3AoKSx0fWZ1bmN0aW9uIEVpKHQpe3JldHVyblt0WzBdKlFkLHRbMV0qUWRdfWZ1bmN0aW9uIGtpKHQsbixlKXt2YXIgcj1zKHQsbi1IZCxlKS5jb25jYXQobik7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByLm1hcChmdW5jdGlvbihuKXtyZXR1cm5bdCxuXX0pfX1mdW5jdGlvbiBDaSh0LG4sZSl7dmFyIHI9cyh0LG4tSGQsZSkuY29uY2F0KG4pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5tYXAoZnVuY3Rpb24obil7cmV0dXJuW24sdF19KX19ZnVuY3Rpb24gUGkoKXtmdW5jdGlvbiB0KCl7cmV0dXJue3R5cGU6XCJNdWx0aUxpbmVTdHJpbmdcIixjb29yZGluYXRlczpuKCl9fWZ1bmN0aW9uIG4oKXtyZXR1cm4gcyhlcChvL3kpKnksaSx5KS5tYXAoZCkuY29uY2F0KHMoZXAoYy9fKSpfLGYsXykubWFwKHApKS5jb25jYXQocyhlcChyL3YpKnYsZSx2KS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIEpkKHQleSk+SGR9KS5tYXAobCkpLmNvbmNhdChzKGVwKHUvZykqZyxhLGcpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gSmQodCVfKT5IZH0pLm1hcChoKSl9dmFyIGUscixpLG8sYSx1LGYsYyxsLGgsZCxwLHY9MTAsZz12LHk9OTAsXz0zNjAsYj0yLjU7cmV0dXJuIHQubGluZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLm1hcChmdW5jdGlvbih0KXtyZXR1cm57dHlwZTpcIkxpbmVTdHJpbmdcIixjb29yZGluYXRlczp0fX0pfSx0Lm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZTpcIlBvbHlnb25cIixjb29yZGluYXRlczpbZChvKS5jb25jYXQocChmKS5zbGljZSgxKSxkKGkpLnJldmVyc2UoKS5zbGljZSgxKSxwKGMpLnJldmVyc2UoKS5zbGljZSgxKSldfX0sdC5leHRlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5leHRlbnRNYWpvcihuKS5leHRlbnRNaW5vcihuKTp0LmV4dGVudE1pbm9yKCl9LHQuZXh0ZW50TWFqb3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K25bMF1bMF0saT0rblsxXVswXSxjPStuWzBdWzFdLGY9K25bMV1bMV0sbz5pJiYobj1vLG89aSxpPW4pLGM+ZiYmKG49YyxjPWYsZj1uKSx0LnByZWNpc2lvbihiKSk6W1tvLGNdLFtpLGZdXX0sdC5leHRlbnRNaW5vcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rblswXVswXSxlPStuWzFdWzBdLHU9K25bMF1bMV0sYT0rblsxXVsxXSxyPmUmJihuPXIscj1lLGU9biksdT5hJiYobj11LHU9YSxhPW4pLHQucHJlY2lzaW9uKGIpKTpbW3IsdV0sW2UsYV1dfSx0LnN0ZXA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5zdGVwTWFqb3Iobikuc3RlcE1pbm9yKG4pOnQuc3RlcE1pbm9yKCl9LHQuc3RlcE1ham9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PStuWzBdLF89K25bMV0sdCk6W3ksX119LHQuc3RlcE1pbm9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PStuWzBdLGc9K25bMV0sdCk6W3YsZ119LHQucHJlY2lzaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPStuLGw9a2kodSxhLDkwKSxoPUNpKHIsZSxiKSxkPWtpKGMsZiw5MCkscD1DaShvLGksYiksdCk6Yn0sdC5leHRlbnRNYWpvcihbWy0xODAsLTkwK0hkXSxbMTgwLDkwLUhkXV0pLmV4dGVudE1pbm9yKFtbLTE4MCwtODAtSGRdLFsxODAsODArSGRdXSl9ZnVuY3Rpb24gemkodCl7cmV0dXJuIHR9ZnVuY3Rpb24gUmkoKXtGcC5wb2ludD1MaX1mdW5jdGlvbiBMaSh0LG4pe0ZwLnBvaW50PURpLHhwPU1wPXQsd3A9QXA9bn1mdW5jdGlvbiBEaSh0LG4pe0JwLmFkZChBcCp0LU1wKm4pLE1wPXQsQXA9bn1mdW5jdGlvbiBVaSgpe0RpKHhwLHdwKX1mdW5jdGlvbiBxaSh0LG4pe1ZwKz10LCRwKz1uLCsrV3B9ZnVuY3Rpb24gT2koKXtldi5wb2ludD1ZaX1mdW5jdGlvbiBZaSh0LG4pe2V2LnBvaW50PUJpLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gQmkodCxuKXt2YXIgZT10LVNwLHI9bi1FcCxpPWZwKGUqZStyKnIpO1pwKz1pKihTcCt0KS8yLFFwKz1pKihFcCtuKS8yLEpwKz1pLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gRmkoKXtldi5wb2ludD1xaX1mdW5jdGlvbiBJaSgpe2V2LnBvaW50PUhpfWZ1bmN0aW9uIGppKCl7WGkoVHAsTnApfWZ1bmN0aW9uIEhpKHQsbil7ZXYucG9pbnQ9WGkscWkoVHA9U3A9dCxOcD1FcD1uKX1mdW5jdGlvbiBYaSh0LG4pe3ZhciBlPXQtU3Ascj1uLUVwLGk9ZnAoZSplK3Iqcik7WnArPWkqKFNwK3QpLzIsUXArPWkqKEVwK24pLzIsSnArPWksS3ArPShpPUVwKnQtU3AqbikqKFNwK3QpLHR2Kz1pKihFcCtuKSxudis9MyppLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gR2kodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIFZpKHQsbil7Y3YucG9pbnQ9JGksaXY9YXY9dCxvdj11dj1ufWZ1bmN0aW9uICRpKHQsbil7YXYtPXQsdXYtPW4sZnYuYWRkKGZwKGF2KmF2K3V2KnV2KSksYXY9dCx1dj1ufWZ1bmN0aW9uIFdpKCl7dGhpcy5fc3RyaW5nPVtdfWZ1bmN0aW9uIFppKHQpe3JldHVyblwibTAsXCIrdCtcImFcIit0K1wiLFwiK3QrXCIgMCAxLDEgMCxcIistMip0K1wiYVwiK3QrXCIsXCIrdCtcIiAwIDEsMSAwLFwiKzIqdCtcInpcIn1mdW5jdGlvbiBRaSh0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9bmV3IEppO2Zvcih2YXIgciBpbiB0KWVbcl09dFtyXTtyZXR1cm4gZS5zdHJlYW09bixlfX1mdW5jdGlvbiBKaSgpe31mdW5jdGlvbiBLaSh0LG4sZSl7dmFyIHI9dC5jbGlwRXh0ZW50JiZ0LmNsaXBFeHRlbnQoKTtyZXR1cm4gdC5zY2FsZSgxNTApLnRyYW5zbGF0ZShbMCwwXSksbnVsbCE9ciYmdC5jbGlwRXh0ZW50KG51bGwpLGJyKGUsdC5zdHJlYW0oR3ApKSxuKEdwLnJlc3VsdCgpKSxudWxsIT1yJiZ0LmNsaXBFeHRlbnQociksdH1mdW5jdGlvbiB0byh0LG4sZSl7cmV0dXJuIEtpKHQsZnVuY3Rpb24oZSl7dmFyIHI9blsxXVswXS1uWzBdWzBdLGk9blsxXVsxXS1uWzBdWzFdLG89TWF0aC5taW4oci8oZVsxXVswXS1lWzBdWzBdKSxpLyhlWzFdWzFdLWVbMF1bMV0pKSxhPStuWzBdWzBdKyhyLW8qKGVbMV1bMF0rZVswXVswXSkpLzIsdT0rblswXVsxXSsoaS1vKihlWzFdWzFdK2VbMF1bMV0pKS8yO3Quc2NhbGUoMTUwKm8pLnRyYW5zbGF0ZShbYSx1XSl9LGUpfWZ1bmN0aW9uIG5vKHQsbixlKXtyZXR1cm4gdG8odCxbWzAsMF0sbl0sZSl9ZnVuY3Rpb24gZW8odCxuLGUpe3JldHVybiBLaSh0LGZ1bmN0aW9uKGUpe3ZhciByPStuLGk9ci8oZVsxXVswXS1lWzBdWzBdKSxvPShyLWkqKGVbMV1bMF0rZVswXVswXSkpLzIsYT0taSplWzBdWzFdO3Quc2NhbGUoMTUwKmkpLnRyYW5zbGF0ZShbbyxhXSl9LGUpfWZ1bmN0aW9uIHJvKHQsbixlKXtyZXR1cm4gS2kodCxmdW5jdGlvbihlKXt2YXIgcj0rbixpPXIvKGVbMV1bMV0tZVswXVsxXSksbz0taSplWzBdWzBdLGE9KHItaSooZVsxXVsxXStlWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCppKS50cmFuc2xhdGUoW28sYV0pfSxlKX1mdW5jdGlvbiBpbyh0LG4pe3JldHVybituP2Z1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZShyLGksbyxhLHUsZixjLHMsbCxoLGQscCx2LGcpe3ZhciB5PWMtcixfPXMtaSxiPXkqeStfKl87aWYoYj40Km4mJnYtLSl7dmFyIG09YStoLHg9dStkLHc9ZitwLE09ZnAobSptK3gqeCt3KncpLEE9ZHIody89TSksVD1KZChKZCh3KS0xKTxIZHx8SmQoby1sKTxIZD8obytsKS8yOnRwKHgsbSksTj10KFQsQSksUz1OWzBdLEU9TlsxXSxrPVMtcixDPUUtaSxQPV8qay15KkM7KFAqUC9iPm58fEpkKCh5KmsrXypDKS9iLS41KT4uM3x8YSpoK3UqZCtmKnA8bHYpJiYoZShyLGksbyxhLHUsZixTLEUsVCxtLz1NLHgvPU0sdyx2LGcpLGcucG9pbnQoUyxFKSxlKFMsRSxULG0seCx3LGMscyxsLGgsZCxwLHYsZykpfX1yZXR1cm4gZnVuY3Rpb24obil7ZnVuY3Rpb24gcihlLHIpe2U9dChlLHIpLG4ucG9pbnQoZVswXSxlWzFdKX1mdW5jdGlvbiBpKCl7eT1OYU4sdy5wb2ludD1vLG4ubGluZVN0YXJ0KCl9ZnVuY3Rpb24gbyhyLGkpe3ZhciBvPVRyKFtyLGldKSxhPXQocixpKTtlKHksXyxnLGIsbSx4LHk9YVswXSxfPWFbMV0sZz1yLGI9b1swXSxtPW9bMV0seD1vWzJdLHN2LG4pLG4ucG9pbnQoeSxfKX1mdW5jdGlvbiBhKCl7dy5wb2ludD1yLG4ubGluZUVuZCgpfWZ1bmN0aW9uIHUoKXtpKCksdy5wb2ludD1mLHcubGluZUVuZD1jfWZ1bmN0aW9uIGYodCxuKXtvKHM9dCxuKSxsPXksaD1fLGQ9YixwPW0sdj14LHcucG9pbnQ9b31mdW5jdGlvbiBjKCl7ZSh5LF8sZyxiLG0seCxsLGgscyxkLHAsdixzdixuKSx3LmxpbmVFbmQ9YSxhKCl9dmFyIHMsbCxoLGQscCx2LGcseSxfLGIsbSx4LHc9e3BvaW50OnIsbGluZVN0YXJ0OmksbGluZUVuZDphLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe24ucG9seWdvblN0YXJ0KCksdy5saW5lU3RhcnQ9dX0scG9seWdvbkVuZDpmdW5jdGlvbigpe24ucG9seWdvbkVuZCgpLHcubGluZVN0YXJ0PWl9fTtyZXR1cm4gd319KHQsbik6ZnVuY3Rpb24odCl7cmV0dXJuIFFpKHtwb2ludDpmdW5jdGlvbihuLGUpe249dChuLGUpLHRoaXMuc3RyZWFtLnBvaW50KG5bMF0sblsxXSl9fSl9KHQpfWZ1bmN0aW9uIG9vKHQsbixlLHIpe2Z1bmN0aW9uIGkodCxyKXtyZXR1cm5bdSp0LWYqcituLGUtZip0LXUqcl19dmFyIG89bnAociksYT1hcChyKSx1PW8qdCxmPWEqdCxjPW8vdCxzPWEvdCxsPShhKmUtbypuKS90LGg9KGEqbitvKmUpL3Q7cmV0dXJuIGkuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW2MqdC1zKm4rbCxoLXMqdC1jKm5dfSxpfWZ1bmN0aW9uIGFvKHQpe3JldHVybiB1byhmdW5jdGlvbigpe3JldHVybiB0fSkoKX1mdW5jdGlvbiB1byh0KXtmdW5jdGlvbiBuKHQpe3JldHVybiBsKHRbMF0qUWQsdFsxXSpRZCl9ZnVuY3Rpb24gZSgpe3ZhciB0PW9vKHAsMCwwLHcpLmFwcGx5KG51bGwsaSh5LF8pKSxuPSh3P29vOmZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuW24rdCpyLGUtdCppXX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24ocixpKXtyZXR1cm5bKHItbikvdCwoZS1pKS90XX0scn0pKHAsdi10WzBdLGctdFsxXSx3KTtyZXR1cm4gbz10aShiLG0seCkscz1KcihpLG4pLGw9SnIobyxzKSxjPWlvKHMsUykscigpfWZ1bmN0aW9uIHIoKXtyZXR1cm4gaD1kPW51bGwsbn12YXIgaSxvLGEsdSxmLGMscyxsLGgsZCxwPTE1MCx2PTQ4MCxnPTI1MCx5PTAsXz0wLGI9MCxtPTAseD0wLHc9MCxNPW51bGwsQT1DcCxUPW51bGwsTj16aSxTPS41O3JldHVybiBuLnN0cmVhbT1mdW5jdGlvbih0KXtyZXR1cm4gaCYmZD09PXQ/aDpoPWh2KGZ1bmN0aW9uKHQpe3JldHVybiBRaSh7cG9pbnQ6ZnVuY3Rpb24obixlKXt2YXIgcj10KG4sZSk7cmV0dXJuIHRoaXMuc3RyZWFtLnBvaW50KHJbMF0sclsxXSl9fSl9KG8pKEEoYyhOKGQ9dCkpKSkpfSxuLnByZWNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9dCxNPXZvaWQgMCxyKCkpOkF9LG4ucG9zdGNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE49dCxUPWE9dT1mPW51bGwscigpKTpOfSxuLmNsaXBBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oQT0rdD9naShNPXQqUWQpOihNPW51bGwsQ3ApLHIoKSk6TSpaZH0sbi5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhOPW51bGw9PXQ/KFQ9YT11PWY9bnVsbCx6aSk6eWkoVD0rdFswXVswXSxhPSt0WzBdWzFdLHU9K3RbMV1bMF0sZj0rdFsxXVsxXSkscigpKTpudWxsPT1UP251bGw6W1tULGFdLFt1LGZdXX0sbi5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0rdCxlKCkpOnB9LG4udHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PSt0WzBdLGc9K3RbMV0sZSgpKTpbdixnXX0sbi5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9dFswXSUzNjAqUWQsXz10WzFdJTM2MCpRZCxlKCkpOlt5KlpkLF8qWmRdfSxuLnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj10WzBdJTM2MCpRZCxtPXRbMV0lMzYwKlFkLHg9dC5sZW5ndGg+Mj90WzJdJTM2MCpRZDowLGUoKSk6W2IqWmQsbSpaZCx4KlpkXX0sbi5hbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz10JTM2MCpRZCxlKCkpOncqWmR9LG4ucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPWlvKHMsUz10KnQpLHIoKSk6ZnAoUyl9LG4uZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRvKG4sdCxlKX0sbi5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5vKG4sdCxlKX0sbi5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBlbyhuLHQsZSl9LG4uZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJvKG4sdCxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gaT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuLmludmVydD1pLmludmVydCYmZnVuY3Rpb24odCl7cmV0dXJuKHQ9bC5pbnZlcnQodFswXSx0WzFdKSkmJlt0WzBdKlpkLHRbMV0qWmRdfSxlKCl9fWZ1bmN0aW9uIGZvKHQpe3ZhciBuPTAsZT1HZC8zLHI9dW8odCksaT1yKG4sZSk7cmV0dXJuIGkucGFyYWxsZWxzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Iobj10WzBdKlFkLGU9dFsxXSpRZCk6W24qWmQsZSpaZF19LGl9ZnVuY3Rpb24gY28odCxuKXtmdW5jdGlvbiBlKHQsbil7dmFyIGU9ZnAoby0yKmkqYXAobikpL2k7cmV0dXJuW2UqYXAodCo9aSksYS1lKm5wKHQpXX12YXIgcj1hcCh0KSxpPShyK2FwKG4pKS8yO2lmKEpkKGkpPEhkKXJldHVybiBmdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQsbil7cmV0dXJuW3QqZSxhcChuKS9lXX12YXIgZT1ucCh0KTtyZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdC9lLGRyKG4qZSldfSxufSh0KTt2YXIgbz0xK3IqKDIqaS1yKSxhPWZwKG8pL2k7cmV0dXJuIGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGU9YS1uO3JldHVyblt0cCh0LEpkKGUpKS9pKnVwKGUpLGRyKChvLSh0KnQrZSplKSppKmkpLygyKmkpKV19LGV9ZnVuY3Rpb24gc28oKXtyZXR1cm4gZm8oY28pLnNjYWxlKDE1NS40MjQpLmNlbnRlcihbMCwzMy42NDQyXSl9ZnVuY3Rpb24gbG8oKXtyZXR1cm4gc28oKS5wYXJhbGxlbHMoWzI5LjUsNDUuNV0pLnNjYWxlKDEwNzApLnRyYW5zbGF0ZShbNDgwLDI1MF0pLnJvdGF0ZShbOTYsMF0pLmNlbnRlcihbLS42LDM4LjddKX1mdW5jdGlvbiBobyh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj1ucChuKSxpPW5wKGUpLG89dChyKmkpO3JldHVybltvKmkqYXAobiksbyphcChlKV19fWZ1bmN0aW9uIHBvKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPWZwKG4qbitlKmUpLGk9dChyKSxvPWFwKGkpLGE9bnAoaSk7cmV0dXJuW3RwKG4qbyxyKmEpLGRyKHImJmUqby9yKV19fWZ1bmN0aW9uIHZvKHQsbil7cmV0dXJuW3QsaXAoY3AoKFZkK24pLzIpKV19ZnVuY3Rpb24gZ28odCl7ZnVuY3Rpb24gbigpe3ZhciBuPUdkKnUoKSxhPW8oaWkoby5yb3RhdGUoKSkuaW52ZXJ0KFswLDBdKSk7cmV0dXJuIGMobnVsbD09cz9bW2FbMF0tbixhWzFdLW5dLFthWzBdK24sYVsxXStuXV06dD09PXZvP1tbTWF0aC5tYXgoYVswXS1uLHMpLGVdLFtNYXRoLm1pbihhWzBdK24sciksaV1dOltbcyxNYXRoLm1heChhWzFdLW4sZSldLFtyLE1hdGgubWluKGFbMV0rbixpKV1dKX12YXIgZSxyLGksbz1hbyh0KSxhPW8uY2VudGVyLHU9by5zY2FsZSxmPW8udHJhbnNsYXRlLGM9by5jbGlwRXh0ZW50LHM9bnVsbDtyZXR1cm4gby5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odSh0KSxuKCkpOnUoKX0sby50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGYodCksbigpKTpmKCl9LG8uY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhKHQpLG4oKSk6YSgpfSxvLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/cz1lPXI9aT1udWxsOihzPSt0WzBdWzBdLGU9K3RbMF1bMV0scj0rdFsxXVswXSxpPSt0WzFdWzFdKSxuKCkpOm51bGw9PXM/bnVsbDpbW3MsZV0sW3IsaV1dfSxuKCl9ZnVuY3Rpb24geW8odCl7cmV0dXJuIGNwKChWZCt0KS8yKX1mdW5jdGlvbiBfbyh0LG4pe2Z1bmN0aW9uIGUodCxuKXtvPjA/bjwtVmQrSGQmJihuPS1WZCtIZCk6bj5WZC1IZCYmKG49VmQtSGQpO3ZhciBlPW8vb3AoeW8obiksaSk7cmV0dXJuW2UqYXAoaSp0KSxvLWUqbnAoaSp0KV19dmFyIHI9bnAodCksaT10PT09bj9hcCh0KTppcChyL25wKG4pKS9pcCh5byhuKS95byh0KSksbz1yKm9wKHlvKHQpLGkpL2k7cmV0dXJuIGk/KGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGU9by1uLHI9dXAoaSkqZnAodCp0K2UqZSk7cmV0dXJuW3RwKHQsSmQoZSkpL2kqdXAoZSksMipLZChvcChvL3IsMS9pKSktVmRdfSxlKTp2b31mdW5jdGlvbiBibyh0LG4pe3JldHVyblt0LG5dfWZ1bmN0aW9uIG1vKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPW8tbixyPWkqdDtyZXR1cm5bZSphcChyKSxvLWUqbnAocildfXZhciByPW5wKHQpLGk9dD09PW4/YXAodCk6KHItbnAobikpLyhuLXQpLG89ci9pK3Q7cmV0dXJuIEpkKGkpPEhkP2JvOihlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW8tbjtyZXR1cm5bdHAodCxKZChlKSkvaSp1cChlKSxvLXVwKGkpKmZwKHQqdCtlKmUpXX0sZSl9ZnVuY3Rpb24geG8odCxuKXt2YXIgZT1ucChuKSxyPW5wKHQpKmU7cmV0dXJuW2UqYXAodCkvcixhcChuKS9yXX1mdW5jdGlvbiB3byh0LG4sZSxyKXtyZXR1cm4gMT09PXQmJjE9PT1uJiYwPT09ZSYmMD09PXI/emk6UWkoe3BvaW50OmZ1bmN0aW9uKGksbyl7dGhpcy5zdHJlYW0ucG9pbnQoaSp0K2UsbypuK3IpfX0pfWZ1bmN0aW9uIE1vKHQsbil7dmFyIGU9bipuLHI9ZSplO3JldHVyblt0KiguODcwNy0uMTMxOTc5KmUrcioociooLjAwMzk3MSplLS4wMDE1MjkqciktLjAxMzc5MSkpLG4qKDEuMDA3MjI2K2UqKC4wMTUwODUrciooLjAyODg3NCplLS4wNDQ0NzUtLjAwNTkxNipyKSkpXX1mdW5jdGlvbiBBbyh0LG4pe3JldHVybltucChuKSphcCh0KSxhcChuKV19ZnVuY3Rpb24gVG8odCxuKXt2YXIgZT1ucChuKSxyPTErbnAodCkqZTtyZXR1cm5bZSphcCh0KS9yLGFwKG4pL3JdfWZ1bmN0aW9uIE5vKHQsbil7cmV0dXJuW2lwKGNwKChWZCtuKS8yKSksLXRdfWZ1bmN0aW9uIFNvKHQsbil7cmV0dXJuIHQucGFyZW50PT09bi5wYXJlbnQ/MToyfWZ1bmN0aW9uIEVvKHQsbil7cmV0dXJuIHQrbi54fWZ1bmN0aW9uIGtvKHQsbil7cmV0dXJuIE1hdGgubWF4KHQsbi55KX1mdW5jdGlvbiBDbyh0KXt2YXIgbj0wLGU9dC5jaGlsZHJlbixyPWUmJmUubGVuZ3RoO2lmKHIpZm9yKDstLXI+PTA7KW4rPWVbcl0udmFsdWU7ZWxzZSBuPTE7dC52YWx1ZT1ufWZ1bmN0aW9uIFBvKHQsbil7dmFyIGUscixpLG8sYSx1PW5ldyBEbyh0KSxmPSt0LnZhbHVlJiYodS52YWx1ZT10LnZhbHVlKSxjPVt1XTtmb3IobnVsbD09biYmKG49em8pO2U9Yy5wb3AoKTspaWYoZiYmKGUudmFsdWU9K2UuZGF0YS52YWx1ZSksKGk9bihlLmRhdGEpKSYmKGE9aS5sZW5ndGgpKWZvcihlLmNoaWxkcmVuPW5ldyBBcnJheShhKSxvPWEtMTtvPj0wOy0tbyljLnB1c2gocj1lLmNoaWxkcmVuW29dPW5ldyBEbyhpW29dKSksci5wYXJlbnQ9ZSxyLmRlcHRoPWUuZGVwdGgrMTtyZXR1cm4gdS5lYWNoQmVmb3JlKExvKX1mdW5jdGlvbiB6byh0KXtyZXR1cm4gdC5jaGlsZHJlbn1mdW5jdGlvbiBSbyh0KXt0LmRhdGE9dC5kYXRhLmRhdGF9ZnVuY3Rpb24gTG8odCl7dmFyIG49MDtkb3t0LmhlaWdodD1ufXdoaWxlKCh0PXQucGFyZW50KSYmdC5oZWlnaHQ8KytuKX1mdW5jdGlvbiBEbyh0KXt0aGlzLmRhdGE9dCx0aGlzLmRlcHRoPXRoaXMuaGVpZ2h0PTAsdGhpcy5wYXJlbnQ9bnVsbH1mdW5jdGlvbiBVbyh0KXtmb3IodmFyIG4sZSxyPTAsaT0odD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPXQubGVuZ3RoO3I7KWU9TWF0aC5yYW5kb20oKSpyLS18MCxuPXRbcl0sdFtyXT10W2VdLHRbZV09bjtyZXR1cm4gdH0odnYuY2FsbCh0KSkpLmxlbmd0aCxvPVtdO3I8aTspbj10W3JdLGUmJk9vKGUsbik/KytyOihlPWZ1bmN0aW9uKHQpe3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm57eDp0LngseTp0Lnkscjp0LnJ9fSh0WzBdKTtjYXNlIDI6cmV0dXJuIEJvKHRbMF0sdFsxXSk7Y2FzZSAzOnJldHVybiBGbyh0WzBdLHRbMV0sdFsyXSl9fShvPWZ1bmN0aW9uKHQsbil7dmFyIGUscjtpZihZbyhuLHQpKXJldHVybltuXTtmb3IoZT0wO2U8dC5sZW5ndGg7KytlKWlmKHFvKG4sdFtlXSkmJllvKEJvKHRbZV0sbiksdCkpcmV0dXJuW3RbZV0sbl07Zm9yKGU9MDtlPHQubGVuZ3RoLTE7KytlKWZvcihyPWUrMTtyPHQubGVuZ3RoOysrcilpZihxbyhCbyh0W2VdLHRbcl0pLG4pJiZxbyhCbyh0W2VdLG4pLHRbcl0pJiZxbyhCbyh0W3JdLG4pLHRbZV0pJiZZbyhGbyh0W2VdLHRbcl0sbiksdCkpcmV0dXJuW3RbZV0sdFtyXSxuXTt0aHJvdyBuZXcgRXJyb3J9KG8sbikpLHI9MCk7cmV0dXJuIGV9ZnVuY3Rpb24gcW8odCxuKXt2YXIgZT10LnItbi5yLHI9bi54LXQueCxpPW4ueS10Lnk7cmV0dXJuIGU8MHx8ZSplPHIqcitpKml9ZnVuY3Rpb24gT28odCxuKXt2YXIgZT10LnItbi5yKzFlLTYscj1uLngtdC54LGk9bi55LXQueTtyZXR1cm4gZT4wJiZlKmU+cipyK2kqaX1mdW5jdGlvbiBZbyh0LG4pe2Zvcih2YXIgZT0wO2U8bi5sZW5ndGg7KytlKWlmKCFPbyh0LG5bZV0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEJvKHQsbil7dmFyIGU9dC54LHI9dC55LGk9dC5yLG89bi54LGE9bi55LHU9bi5yLGY9by1lLGM9YS1yLHM9dS1pLGw9TWF0aC5zcXJ0KGYqZitjKmMpO3JldHVybnt4OihlK28rZi9sKnMpLzIseToocithK2MvbCpzKS8yLHI6KGwraSt1KS8yfX1mdW5jdGlvbiBGbyh0LG4sZSl7dmFyIHI9dC54LGk9dC55LG89dC5yLGE9bi54LHU9bi55LGY9bi5yLGM9ZS54LHM9ZS55LGw9ZS5yLGg9ci1hLGQ9ci1jLHA9aS11LHY9aS1zLGc9Zi1vLHk9bC1vLF89cipyK2kqaS1vKm8sYj1fLWEqYS11KnUrZipmLG09Xy1jKmMtcypzK2wqbCx4PWQqcC1oKnYsdz0ocCptLXYqYikvKDIqeCktcixNPSh2KmctcCp5KS94LEE9KGQqYi1oKm0pLygyKngpLWksVD0oaCp5LWQqZykveCxOPU0qTStUKlQtMSxTPTIqKG8rdypNK0EqVCksRT13KncrQSpBLW8qbyxrPS0oTj8oUytNYXRoLnNxcnQoUypTLTQqTipFKSkvKDIqTik6RS9TKTtyZXR1cm57eDpyK3crTSprLHk6aStBK1QqayxyOmt9fWZ1bmN0aW9uIElvKHQsbixlKXt2YXIgcixpLG8sYSx1PXQueC1uLngsZj10Lnktbi55LGM9dSp1K2YqZjtjPyhpPW4ucitlLnIsaSo9aSxhPXQucitlLnIsaT4oYSo9YSk/KHI9KGMrYS1pKS8oMipjKSxvPU1hdGguc3FydChNYXRoLm1heCgwLGEvYy1yKnIpKSxlLng9dC54LXIqdS1vKmYsZS55PXQueS1yKmYrbyp1KToocj0oYytpLWEpLygyKmMpLG89TWF0aC5zcXJ0KE1hdGgubWF4KDAsaS9jLXIqcikpLGUueD1uLngrcip1LW8qZixlLnk9bi55K3IqZitvKnUpKTooZS54PW4ueCtlLnIsZS55PW4ueSl9ZnVuY3Rpb24gam8odCxuKXt2YXIgZT10LnIrbi5yLTFlLTYscj1uLngtdC54LGk9bi55LXQueTtyZXR1cm4gZT4wJiZlKmU+cipyK2kqaX1mdW5jdGlvbiBIbyh0KXt2YXIgbj10Ll8sZT10Lm5leHQuXyxyPW4ucitlLnIsaT0obi54KmUucitlLngqbi5yKS9yLG89KG4ueSplLnIrZS55Km4ucikvcjtyZXR1cm4gaSppK28qb31mdW5jdGlvbiBYbyh0KXt0aGlzLl89dCx0aGlzLm5leHQ9bnVsbCx0aGlzLnByZXZpb3VzPW51bGx9ZnVuY3Rpb24gR28odCl7aWYoIShpPXQubGVuZ3RoKSlyZXR1cm4gMDt2YXIgbixlLHIsaSxvLGEsdSxmLGMscyxsO2lmKG49dFswXSxuLng9MCxuLnk9MCwhKGk+MSkpcmV0dXJuIG4ucjtpZihlPXRbMV0sbi54PS1lLnIsZS54PW4ucixlLnk9MCwhKGk+MikpcmV0dXJuIG4ucitlLnI7SW8oZSxuLHI9dFsyXSksbj1uZXcgWG8obiksZT1uZXcgWG8oZSkscj1uZXcgWG8ociksbi5uZXh0PXIucHJldmlvdXM9ZSxlLm5leHQ9bi5wcmV2aW91cz1yLHIubmV4dD1lLnByZXZpb3VzPW47dDpmb3IodT0zO3U8aTsrK3Upe0lvKG4uXyxlLl8scj10W3VdKSxyPW5ldyBYbyhyKSxmPWUubmV4dCxjPW4ucHJldmlvdXMscz1lLl8ucixsPW4uXy5yO2Rve2lmKHM8PWwpe2lmKGpvKGYuXyxyLl8pKXtlPWYsbi5uZXh0PWUsZS5wcmV2aW91cz1uLC0tdTtjb250aW51ZSB0fXMrPWYuXy5yLGY9Zi5uZXh0fWVsc2V7aWYoam8oYy5fLHIuXykpeyhuPWMpLm5leHQ9ZSxlLnByZXZpb3VzPW4sLS11O2NvbnRpbnVlIHR9bCs9Yy5fLnIsYz1jLnByZXZpb3VzfX13aGlsZShmIT09Yy5uZXh0KTtmb3Ioci5wcmV2aW91cz1uLHIubmV4dD1lLG4ubmV4dD1lLnByZXZpb3VzPWU9cixvPUhvKG4pOyhyPXIubmV4dCkhPT1lOykoYT1IbyhyKSk8byYmKG49cixvPWEpO2U9bi5uZXh0fWZvcihuPVtlLl9dLHI9ZTsocj1yLm5leHQpIT09ZTspbi5wdXNoKHIuXyk7Zm9yKHI9VW8obiksdT0wO3U8aTsrK3Upbj10W3VdLG4ueC09ci54LG4ueS09ci55O3JldHVybiByLnJ9ZnVuY3Rpb24gVm8odCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHR9ZnVuY3Rpb24gJG8oKXtyZXR1cm4gMH1mdW5jdGlvbiBXbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gWm8odCl7cmV0dXJuIE1hdGguc3FydCh0LnZhbHVlKX1mdW5jdGlvbiBRbyh0KXtyZXR1cm4gZnVuY3Rpb24obil7bi5jaGlsZHJlbnx8KG4ucj1NYXRoLm1heCgwLCt0KG4pfHwwKSl9fWZ1bmN0aW9uIEpvKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKHI9ZS5jaGlsZHJlbil7dmFyIHIsaSxvLGE9ci5sZW5ndGgsdT10KGUpKm58fDA7aWYodSlmb3IoaT0wO2k8YTsrK2kpcltpXS5yKz11O2lmKG89R28ociksdSlmb3IoaT0wO2k8YTsrK2kpcltpXS5yLT11O2Uucj1vK3V9fX1mdW5jdGlvbiBLbyh0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9bi5wYXJlbnQ7bi5yKj10LGUmJihuLng9ZS54K3Qqbi54LG4ueT1lLnkrdCpuLnkpfX1mdW5jdGlvbiB0YSh0KXt0LngwPU1hdGgucm91bmQodC54MCksdC55MD1NYXRoLnJvdW5kKHQueTApLHQueDE9TWF0aC5yb3VuZCh0LngxKSx0LnkxPU1hdGgucm91bmQodC55MSl9ZnVuY3Rpb24gbmEodCxuLGUscixpKXtmb3IodmFyIG8sYT10LmNoaWxkcmVuLHU9LTEsZj1hLmxlbmd0aCxjPXQudmFsdWUmJihyLW4pL3QudmFsdWU7Kyt1PGY7KShvPWFbdV0pLnkwPWUsby55MT1pLG8ueDA9bixvLngxPW4rPW8udmFsdWUqY31mdW5jdGlvbiBlYSh0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiByYSh0KXtyZXR1cm4gdC5wYXJlbnRJZH1mdW5jdGlvbiBpYSh0LG4pe3JldHVybiB0LnBhcmVudD09PW4ucGFyZW50PzE6Mn1mdW5jdGlvbiBvYSh0KXt2YXIgbj10LmNoaWxkcmVuO3JldHVybiBuP25bMF06dC50fWZ1bmN0aW9uIGFhKHQpe3ZhciBuPXQuY2hpbGRyZW47cmV0dXJuIG4/bltuLmxlbmd0aC0xXTp0LnR9ZnVuY3Rpb24gdWEodCxuLGUpe3ZhciByPWUvKG4uaS10LmkpO24uYy09cixuLnMrPWUsdC5jKz1yLG4ueis9ZSxuLm0rPWV9ZnVuY3Rpb24gZmEodCxuLGUpe3JldHVybiB0LmEucGFyZW50PT09bi5wYXJlbnQ/dC5hOmV9ZnVuY3Rpb24gY2EodCxuKXt0aGlzLl89dCx0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLkE9bnVsbCx0aGlzLmE9dGhpcyx0aGlzLno9MCx0aGlzLm09MCx0aGlzLmM9MCx0aGlzLnM9MCx0aGlzLnQ9bnVsbCx0aGlzLmk9bn1mdW5jdGlvbiBzYSh0LG4sZSxyLGkpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4sdT0tMSxmPWEubGVuZ3RoLGM9dC52YWx1ZSYmKGktZSkvdC52YWx1ZTsrK3U8ZjspKG89YVt1XSkueDA9bixvLngxPXIsby55MD1lLG8ueTE9ZSs9by52YWx1ZSpjfWZ1bmN0aW9uIGxhKHQsbixlLHIsaSxvKXtmb3IodmFyIGEsdSxmLGMscyxsLGgsZCxwLHYsZyx5PVtdLF89bi5jaGlsZHJlbixiPTAsbT0wLHg9Xy5sZW5ndGgsdz1uLnZhbHVlO2I8eDspe2Y9aS1lLGM9by1yO2Rve3M9X1ttKytdLnZhbHVlfXdoaWxlKCFzJiZtPHgpO2ZvcihsPWg9cyxnPXMqcyoodj1NYXRoLm1heChjL2YsZi9jKS8odyp0KSkscD1NYXRoLm1heChoL2csZy9sKTttPHg7KyttKXtpZihzKz11PV9bbV0udmFsdWUsdTxsJiYobD11KSx1PmgmJihoPXUpLGc9cypzKnYsKGQ9TWF0aC5tYXgoaC9nLGcvbCkpPnApe3MtPXU7YnJlYWt9cD1kfXkucHVzaChhPXt2YWx1ZTpzLGRpY2U6ZjxjLGNoaWxkcmVuOl8uc2xpY2UoYixtKX0pLGEuZGljZT9uYShhLGUscixpLHc/cis9YypzL3c6byk6c2EoYSxlLHIsdz9lKz1mKnMvdzppLG8pLHctPXMsYj1tfXJldHVybiB5fWZ1bmN0aW9uIGhhKHQsbixlKXtyZXR1cm4oblswXS10WzBdKSooZVsxXS10WzFdKS0oblsxXS10WzFdKSooZVswXS10WzBdKX1mdW5jdGlvbiBkYSh0LG4pe3JldHVybiB0WzBdLW5bMF18fHRbMV0tblsxXX1mdW5jdGlvbiBwYSh0KXtmb3IodmFyIG49dC5sZW5ndGgsZT1bMCwxXSxyPTIsaT0yO2k8bjsrK2kpe2Zvcig7cj4xJiZoYSh0W2Vbci0yXV0sdFtlW3ItMV1dLHRbaV0pPD0wOyktLXI7ZVtyKytdPWl9cmV0dXJuIGUuc2xpY2UoMCxyKX1mdW5jdGlvbiB2YSgpe3JldHVybiBNYXRoLnJhbmRvbSgpfWZ1bmN0aW9uIGdhKHQpe2Z1bmN0aW9uIG4obil7dmFyIG89bitcIlwiLGE9ZS5nZXQobyk7aWYoIWEpe2lmKGkhPT1QdilyZXR1cm4gaTtlLnNldChvLGE9ci5wdXNoKG4pKX1yZXR1cm4gdFsoYS0xKSV0Lmxlbmd0aF19dmFyIGU9aGUoKSxyPVtdLGk9UHY7cmV0dXJuIHQ9bnVsbD09dD9bXTpDdi5jYWxsKHQpLG4uZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByLnNsaWNlKCk7cj1bXSxlPWhlKCk7Zm9yKHZhciBpLG8sYT0tMSx1PXQubGVuZ3RoOysrYTx1OyllLmhhcyhvPShpPXRbYV0pK1wiXCIpfHxlLnNldChvLHIucHVzaChpKSk7cmV0dXJuIG59LG4ucmFuZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9Q3YuY2FsbChlKSxuKTp0LnNsaWNlKCl9LG4udW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LG4pOml9LG4uY29weT1mdW5jdGlvbigpe3JldHVybiBnYSgpLmRvbWFpbihyKS5yYW5nZSh0KS51bmtub3duKGkpfSxufWZ1bmN0aW9uIHlhKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PWkoKS5sZW5ndGgscj1hWzFdPGFbMF0saD1hW3ItMF0sZD1hWzEtcl07bj0oZC1oKS9NYXRoLm1heCgxLHQtZisyKmMpLHUmJihuPU1hdGguZmxvb3IobikpLGgrPShkLWgtbioodC1mKSkqbCxlPW4qKDEtZiksdSYmKGg9TWF0aC5yb3VuZChoKSxlPU1hdGgucm91bmQoZSkpO3ZhciBwPXModCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBoK24qdH0pO3JldHVybiBvKHI/cC5yZXZlcnNlKCk6cCl9dmFyIG4sZSxyPWdhKCkudW5rbm93bih2b2lkIDApLGk9ci5kb21haW4sbz1yLnJhbmdlLGE9WzAsMV0sdT0hMSxmPTAsYz0wLGw9LjU7cmV0dXJuIGRlbGV0ZSByLnVua25vd24sci5kb21haW49ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkobiksdCgpKTppKCl9LHIucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9WytuWzBdLCtuWzFdXSx0KCkpOmEuc2xpY2UoKX0sci5yYW5nZVJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhPVsrblswXSwrblsxXV0sdT0hMCx0KCl9LHIuYmFuZHdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LHIuc3RlcD1mdW5jdGlvbigpe3JldHVybiBufSxyLnJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSEhbix0KCkpOnV9LHIucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1jPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpmfSxyLnBhZGRpbmdJbm5lcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1NYXRoLm1heCgwLE1hdGgubWluKDEsbikpLHQoKSk6Zn0sci5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmN9LHIuYWxpZ249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmx9LHIuY29weT1mdW5jdGlvbigpe3JldHVybiB5YSgpLmRvbWFpbihpKCkpLnJhbmdlKGEpLnJvdW5kKHUpLnBhZGRpbmdJbm5lcihmKS5wYWRkaW5nT3V0ZXIoYykuYWxpZ24obCl9LHQoKX1mdW5jdGlvbiBfYSh0KXt2YXIgbj10LmNvcHk7cmV0dXJuIHQucGFkZGluZz10LnBhZGRpbmdPdXRlcixkZWxldGUgdC5wYWRkaW5nSW5uZXIsZGVsZXRlIHQucGFkZGluZ091dGVyLHQuY29weT1mdW5jdGlvbigpe3JldHVybiBfYShuKCkpfSx0fWZ1bmN0aW9uIGJhKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBtYSh0KXtyZXR1cm4rdH1mdW5jdGlvbiB4YSh0LG4pe3JldHVybihuLT10PSt0KT9mdW5jdGlvbihlKXtyZXR1cm4oZS10KS9ufTpiYShuKX1mdW5jdGlvbiB3YSh0LG4sZSxyKXt2YXIgaT10WzBdLG89dFsxXSxhPW5bMF0sdT1uWzFdO3JldHVybiBvPGk/KGk9ZShvLGkpLGE9cih1LGEpKTooaT1lKGksbyksYT1yKGEsdSkpLGZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX1mdW5jdGlvbiBNYSh0LG4sZSxyKXt2YXIgaT1NYXRoLm1pbih0Lmxlbmd0aCxuLmxlbmd0aCktMSxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShpKSx1PS0xO2Zvcih0W2ldPHRbMF0mJih0PXQuc2xpY2UoKS5yZXZlcnNlKCksbj1uLnNsaWNlKCkucmV2ZXJzZSgpKTsrK3U8aTspb1t1XT1lKHRbdV0sdFt1KzFdKSxhW3VdPXIoblt1XSxuW3UrMV0pO3JldHVybiBmdW5jdGlvbihuKXt2YXIgZT1LYyh0LG4sMSxpKS0xO3JldHVybiBhW2VdKG9bZV0obikpfX1mdW5jdGlvbiBBYSh0LG4pe3JldHVybiBuLmRvbWFpbih0LmRvbWFpbigpKS5yYW5nZSh0LnJhbmdlKCkpLmludGVycG9sYXRlKHQuaW50ZXJwb2xhdGUoKSkuY2xhbXAodC5jbGFtcCgpKX1mdW5jdGlvbiBUYSh0LG4pe2Z1bmN0aW9uIGUoKXtyZXR1cm4gaT1NYXRoLm1pbih1Lmxlbmd0aCxmLmxlbmd0aCk+Mj9NYTp3YSxvPWE9bnVsbCxyfWZ1bmN0aW9uIHIobil7cmV0dXJuKG98fChvPWkodSxmLHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dChuPStuLGU9K2UpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdDw9bj8wOnQ+PWU/MTpyKHQpfX19KHQpOnQsYykpKSgrbil9dmFyIGksbyxhLHU9enYsZj16dixjPWRuLHM9ITE7cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybihhfHwoYT1pKGYsdSx4YSxzP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQobj0rbixlPStlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8PTA/bjp0Pj0xP2U6cih0KX19fShuKTpuKSkpKCt0KX0sci5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9a3YuY2FsbCh0LG1hKSxlKCkpOnUuc2xpY2UoKX0sci5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1Ddi5jYWxsKHQpLGUoKSk6Zi5zbGljZSgpfSxyLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGY9Q3YuY2FsbCh0KSxjPXBuLGUoKX0sci5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0hIXQsZSgpKTpzfSxyLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQsZSgpKTpjfSxlKCl9ZnVuY3Rpb24gTmEobil7dmFyIGU9bi5kb21haW47cmV0dXJuIG4udGlja3M9ZnVuY3Rpb24odCl7dmFyIG49ZSgpO3JldHVybiBsKG5bMF0sbltuLmxlbmd0aC0xXSxudWxsPT10PzEwOnQpfSxuLnRpY2tGb3JtYXQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gZnVuY3Rpb24obixlLHIpe3ZhciBpLG89blswXSxhPW5bbi5sZW5ndGgtMV0sdT1kKG8sYSxudWxsPT1lPzEwOmUpO3N3aXRjaCgocj10cihudWxsPT1yP1wiLGZcIjpyKSkudHlwZSl7Y2FzZVwic1wiOnZhciBmPU1hdGgubWF4KE1hdGguYWJzKG8pLE1hdGguYWJzKGEpKTtyZXR1cm4gbnVsbCE9ci5wcmVjaXNpb258fGlzTmFOKGk9dXIodSxmKSl8fChyLnByZWNpc2lvbj1pKSx0LmZvcm1hdFByZWZpeChyLGYpO2Nhc2VcIlwiOmNhc2VcImVcIjpjYXNlXCJnXCI6Y2FzZVwicFwiOmNhc2VcInJcIjpudWxsIT1yLnByZWNpc2lvbnx8aXNOYU4oaT1mcih1LE1hdGgubWF4KE1hdGguYWJzKG8pLE1hdGguYWJzKGEpKSkpfHwoci5wcmVjaXNpb249aS0oXCJlXCI9PT1yLnR5cGUpKTticmVhaztjYXNlXCJmXCI6Y2FzZVwiJVwiOm51bGwhPXIucHJlY2lzaW9ufHxpc05hTihpPWFyKHUpKXx8KHIucHJlY2lzaW9uPWktMiooXCIlXCI9PT1yLnR5cGUpKX1yZXR1cm4gdC5mb3JtYXQocil9KGUoKSxuLHIpfSxuLm5pY2U9ZnVuY3Rpb24odCl7bnVsbD09dCYmKHQ9MTApO3ZhciByLGk9ZSgpLG89MCxhPWkubGVuZ3RoLTEsdT1pW29dLGY9aVthXTtyZXR1cm4gZjx1JiYocj11LHU9ZixmPXIscj1vLG89YSxhPXIpLChyPWgodSxmLHQpKT4wP3I9aCh1PU1hdGguZmxvb3IodS9yKSpyLGY9TWF0aC5jZWlsKGYvcikqcix0KTpyPDAmJihyPWgodT1NYXRoLmNlaWwodSpyKS9yLGY9TWF0aC5mbG9vcihmKnIpL3IsdCkpLHI+MD8oaVtvXT1NYXRoLmZsb29yKHUvcikqcixpW2FdPU1hdGguY2VpbChmL3IpKnIsZShpKSk6cjwwJiYoaVtvXT1NYXRoLmNlaWwodSpyKS9yLGlbYV09TWF0aC5mbG9vcihmKnIpL3IsZShpKSksbn0sbn1mdW5jdGlvbiBTYSgpe3ZhciB0PVRhKHhhLHNuKTtyZXR1cm4gdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKHQsU2EoKSl9LE5hKHQpfWZ1bmN0aW9uIEVhKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4rdH12YXIgbj1bMCwxXTtyZXR1cm4gdC5pbnZlcnQ9dCx0LmRvbWFpbj10LnJhbmdlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWt2LmNhbGwoZSxtYSksdCk6bi5zbGljZSgpfSx0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gRWEoKS5kb21haW4obil9LE5hKHQpfWZ1bmN0aW9uIGthKHQsbil7dmFyIGUscj0wLGk9KHQ9dC5zbGljZSgpKS5sZW5ndGgtMSxvPXRbcl0sYT10W2ldO3JldHVybiBhPG8mJihlPXIscj1pLGk9ZSxlPW8sbz1hLGE9ZSksdFtyXT1uLmZsb29yKG8pLHRbaV09bi5jZWlsKGEpLHR9ZnVuY3Rpb24gQ2EodCxuKXtyZXR1cm4obj1NYXRoLmxvZyhuL3QpKT9mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZS90KS9ufTpiYShuKX1mdW5jdGlvbiBQYSh0LG4pe3JldHVybiB0PDA/ZnVuY3Rpb24oZSl7cmV0dXJuLU1hdGgucG93KC1uLGUpKk1hdGgucG93KC10LDEtZSl9OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnBvdyhuLGUpKk1hdGgucG93KHQsMS1lKX19ZnVuY3Rpb24gemEodCl7cmV0dXJuIGlzRmluaXRlKHQpPysoXCIxZVwiK3QpOnQ8MD8wOnR9ZnVuY3Rpb24gUmEodCl7cmV0dXJuIDEwPT09dD96YTp0PT09TWF0aC5FP01hdGguZXhwOmZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnBvdyh0LG4pfX1mdW5jdGlvbiBMYSh0KXtyZXR1cm4gdD09PU1hdGguRT9NYXRoLmxvZzoxMD09PXQmJk1hdGgubG9nMTB8fDI9PT10JiZNYXRoLmxvZzJ8fCh0PU1hdGgubG9nKHQpLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLmxvZyhuKS90fSl9ZnVuY3Rpb24gRGEodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybi10KC1uKX19ZnVuY3Rpb24gVWEoKXtmdW5jdGlvbiBuKCl7cmV0dXJuIG89TGEoaSksYT1SYShpKSxyKClbMF08MCYmKG89RGEobyksYT1EYShhKSksZX12YXIgZT1UYShDYSxQYSkuZG9tYWluKFsxLDEwXSkscj1lLmRvbWFpbixpPTEwLG89TGEoMTApLGE9UmEoMTApO3JldHVybiBlLmJhc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3QsbigpKTppfSxlLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocih0KSxuKCkpOnIoKX0sZS50aWNrcz1mdW5jdGlvbih0KXt2YXIgbixlPXIoKSx1PWVbMF0sZj1lW2UubGVuZ3RoLTFdOyhuPWY8dSkmJihkPXUsdT1mLGY9ZCk7dmFyIGMscyxoLGQ9byh1KSxwPW8oZiksdj1udWxsPT10PzEwOit0LGc9W107aWYoIShpJTEpJiZwLWQ8dil7aWYoZD1NYXRoLnJvdW5kKGQpLTEscD1NYXRoLnJvdW5kKHApKzEsdT4wKXtmb3IoO2Q8cDsrK2QpZm9yKHM9MSxjPWEoZCk7czxpOysrcylpZighKChoPWMqcyk8dSkpe2lmKGg+ZilicmVhaztnLnB1c2goaCl9fWVsc2UgZm9yKDtkPHA7KytkKWZvcihzPWktMSxjPWEoZCk7cz49MTstLXMpaWYoISgoaD1jKnMpPHUpKXtpZihoPmYpYnJlYWs7Zy5wdXNoKGgpfX1lbHNlIGc9bChkLHAsTWF0aC5taW4ocC1kLHYpKS5tYXAoYSk7cmV0dXJuIG4/Zy5yZXZlcnNlKCk6Z30sZS50aWNrRm9ybWF0PWZ1bmN0aW9uKG4scil7aWYobnVsbD09ciYmKHI9MTA9PT1pP1wiLjBlXCI6XCIsXCIpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJihyPXQuZm9ybWF0KHIpKSxuPT09MS8wKXJldHVybiByO251bGw9PW4mJihuPTEwKTt2YXIgdT1NYXRoLm1heCgxLGkqbi9lLnRpY2tzKCkubGVuZ3RoKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dC9hKE1hdGgucm91bmQobyh0KSkpO3JldHVybiBuKmk8aS0uNSYmKG4qPWkpLG48PXU/cih0KTpcIlwifX0sZS5uaWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHIoa2EocigpLHtmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4gYShNYXRoLmZsb29yKG8odCkpKX0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4gYShNYXRoLmNlaWwobyh0KSkpfX0pKX0sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKGUsVWEoKS5iYXNlKGkpKX0sZX1mdW5jdGlvbiBxYSh0LG4pe3JldHVybiB0PDA/LU1hdGgucG93KC10LG4pOk1hdGgucG93KHQsbil9ZnVuY3Rpb24gT2EoKXt2YXIgdD0xLG49VGEoZnVuY3Rpb24obixlKXtyZXR1cm4oZT1xYShlLHQpLShuPXFhKG4sdCkpKT9mdW5jdGlvbihyKXtyZXR1cm4ocWEocix0KS1uKS9lfTpiYShlKX0sZnVuY3Rpb24obixlKXtyZXR1cm4gZT1xYShlLHQpLShuPXFhKG4sdCkpLGZ1bmN0aW9uKHIpe3JldHVybiBxYShuK2UqciwxL3QpfX0pLGU9bi5kb21haW47cmV0dXJuIG4uZXhwb25lbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K24sZShlKCkpKTp0fSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQWEobixPYSgpLmV4cG9uZW50KHQpKX0sTmEobil9ZnVuY3Rpb24gWWEoKXtmdW5jdGlvbiB0KCl7dmFyIHQ9MCxuPU1hdGgubWF4KDEsaS5sZW5ndGgpO2ZvcihvPW5ldyBBcnJheShuLTEpOysrdDxuOylvW3QtMV09dihyLHQvbik7cmV0dXJuIGV9ZnVuY3Rpb24gZSh0KXtpZighaXNOYU4odD0rdCkpcmV0dXJuIGlbS2Mobyx0KV19dmFyIHI9W10saT1bXSxvPVtdO3JldHVybiBlLmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgbj1pLmluZGV4T2YodCk7cmV0dXJuIG48MD9bTmFOLE5hTl06W24+MD9vW24tMV06clswXSxuPG8ubGVuZ3RoP29bbl06cltyLmxlbmd0aC0xXV19LGUuZG9tYWluPWZ1bmN0aW9uKGUpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByLnNsaWNlKCk7cj1bXTtmb3IodmFyIGksbz0wLGE9ZS5sZW5ndGg7bzxhOysrbyludWxsPT0oaT1lW29dKXx8aXNOYU4oaT0raSl8fHIucHVzaChpKTtyZXR1cm4gci5zb3J0KG4pLHQoKX0sZS5yYW5nZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1Ddi5jYWxsKG4pLHQoKSk6aS5zbGljZSgpfSxlLnF1YW50aWxlcz1mdW5jdGlvbigpe3JldHVybiBvLnNsaWNlKCl9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBZYSgpLmRvbWFpbihyKS5yYW5nZShpKX0sZX1mdW5jdGlvbiBCYSgpe2Z1bmN0aW9uIHQodCl7aWYodDw9dClyZXR1cm4gYVtLYyhvLHQsMCxpKV19ZnVuY3Rpb24gbigpe3ZhciBuPS0xO2ZvcihvPW5ldyBBcnJheShpKTsrK248aTspb1tuXT0oKG4rMSkqci0obi1pKSplKS8oaSsxKTtyZXR1cm4gdH12YXIgZT0wLHI9MSxpPTEsbz1bLjVdLGE9WzAsMV07cmV0dXJuIHQuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0sbigpKTpbZSxyXX0sdC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0oYT1Ddi5jYWxsKHQpKS5sZW5ndGgtMSxuKCkpOmEuc2xpY2UoKX0sdC5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIG49YS5pbmRleE9mKHQpO3JldHVybiBuPDA/W05hTixOYU5dOm48MT9bZSxvWzBdXTpuPj1pP1tvW2ktMV0scl06W29bbi0xXSxvW25dXX0sdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEJhKCkuZG9tYWluKFtlLHJdKS5yYW5nZShhKX0sTmEodCl9ZnVuY3Rpb24gRmEoKXtmdW5jdGlvbiB0KHQpe2lmKHQ8PXQpcmV0dXJuIGVbS2Mobix0LDAscildfXZhciBuPVsuNV0sZT1bMCwxXSxyPTE7cmV0dXJuIHQuZG9tYWluPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPUN2LmNhbGwoaSkscj1NYXRoLm1pbihuLmxlbmd0aCxlLmxlbmd0aC0xKSx0KTpuLnNsaWNlKCl9LHQucmFuZ2U9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Q3YuY2FsbChpKSxyPU1hdGgubWluKG4ubGVuZ3RoLGUubGVuZ3RoLTEpLHQpOmUuc2xpY2UoKX0sdC5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIHI9ZS5pbmRleE9mKHQpO3JldHVybltuW3ItMV0sbltyXV19LHQuY29weT1mdW5jdGlvbigpe3JldHVybiBGYSgpLmRvbWFpbihuKS5yYW5nZShlKX0sdH1mdW5jdGlvbiBJYSh0LG4sZSxyKXtmdW5jdGlvbiBpKG4pe3JldHVybiB0KG49bmV3IERhdGUoK24pKSxufXJldHVybiBpLmZsb29yPWksaS5jZWlsPWZ1bmN0aW9uKGUpe3JldHVybiB0KGU9bmV3IERhdGUoZS0xKSksbihlLDEpLHQoZSksZX0saS5yb3VuZD1mdW5jdGlvbih0KXt2YXIgbj1pKHQpLGU9aS5jZWlsKHQpO3JldHVybiB0LW48ZS10P246ZX0saS5vZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0PW5ldyBEYXRlKCt0KSxudWxsPT1lPzE6TWF0aC5mbG9vcihlKSksdH0saS5yYW5nZT1mdW5jdGlvbihlLHIsbyl7dmFyIGEsdT1bXTtpZihlPWkuY2VpbChlKSxvPW51bGw9PW8/MTpNYXRoLmZsb29yKG8pLCEoZTxyJiZvPjApKXJldHVybiB1O2Rve3UucHVzaChhPW5ldyBEYXRlKCtlKSksbihlLG8pLHQoZSl9d2hpbGUoYTxlJiZlPHIpO3JldHVybiB1fSxpLmZpbHRlcj1mdW5jdGlvbihlKXtyZXR1cm4gSWEoZnVuY3Rpb24obil7aWYobj49bilmb3IoO3QobiksIWUobik7KW4uc2V0VGltZShuLTEpfSxmdW5jdGlvbih0LHIpe2lmKHQ+PXQpaWYocjwwKWZvcig7KytyPD0wOylmb3IoO24odCwtMSksIWUodCk7KTtlbHNlIGZvcig7LS1yPj0wOylmb3IoO24odCwxKSwhZSh0KTspO30pfSxlJiYoaS5jb3VudD1mdW5jdGlvbihuLHIpe3JldHVybiBSdi5zZXRUaW1lKCtuKSxMdi5zZXRUaW1lKCtyKSx0KFJ2KSx0KEx2KSxNYXRoLmZsb29yKGUoUnYsTHYpKX0saS5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2kuZmlsdGVyKHI/ZnVuY3Rpb24obil7cmV0dXJuIHIobikldD09MH06ZnVuY3Rpb24obil7cmV0dXJuIGkuY291bnQoMCxuKSV0PT0wfSk6aTpudWxsfSksaX1mdW5jdGlvbiBqYSh0KXtyZXR1cm4gSWEoZnVuY3Rpb24obil7bi5zZXREYXRlKG4uZ2V0RGF0ZSgpLShuLmdldERheSgpKzctdCklNyksbi5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldERhdGUodC5nZXREYXRlKCkrNypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10LShuLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSpxdikvT3Z9KX1mdW5jdGlvbiBIYSh0KXtyZXR1cm4gSWEoZnVuY3Rpb24obil7bi5zZXRVVENEYXRlKG4uZ2V0VVRDRGF0ZSgpLShuLmdldFVUQ0RheSgpKzctdCklNyksbi5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9Pdn0pfWZ1bmN0aW9uIFhhKHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIG49bmV3IERhdGUoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpO3JldHVybiBuLnNldEZ1bGxZZWFyKHQueSksbn1yZXR1cm4gbmV3IERhdGUodC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKX1mdW5jdGlvbiBHYSh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBuPW5ldyBEYXRlKERhdGUuVVRDKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSk7cmV0dXJuIG4uc2V0VVRDRnVsbFllYXIodC55KSxufXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKX1mdW5jdGlvbiBWYSh0KXtyZXR1cm57eTp0LG06MCxkOjEsSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiAkYSh0KXtmdW5jdGlvbiBuKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByLGksbyxhPVtdLHU9LTEsZj0wLGM9dC5sZW5ndGg7Zm9yKGUgaW5zdGFuY2VvZiBEYXRlfHwoZT1uZXcgRGF0ZSgrZSkpOysrdTxjOykzNz09PXQuY2hhckNvZGVBdCh1KSYmKGEucHVzaCh0LnNsaWNlKGYsdSkpLG51bGwhPShpPVVnW3I9dC5jaGFyQXQoKyt1KV0pP3I9dC5jaGFyQXQoKyt1KTppPVwiZVwiPT09cj9cIiBcIjpcIjBcIiwobz1uW3JdKSYmKHI9byhlLGkpKSxhLnB1c2gociksZj11KzEpO3JldHVybiBhLnB1c2godC5zbGljZShmLHUpKSxhLmpvaW4oXCJcIil9fWZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGksbyxhPVZhKDE5MDApO2lmKHIoYSx0LGUrPVwiXCIsMCkhPWUubGVuZ3RoKXJldHVybiBudWxsO2lmKFwiUVwiaW4gYSlyZXR1cm4gbmV3IERhdGUoYS5RKTtpZihcInBcImluIGEmJihhLkg9YS5IJTEyKzEyKmEucCksXCJWXCJpbiBhKXtpZihhLlY8MXx8YS5WPjUzKXJldHVybiBudWxsO1wid1wiaW4gYXx8KGEudz0xKSxcIlpcImluIGE/KGk9KG89KGk9R2EoVmEoYS55KSkpLmdldFVUQ0RheSgpKT40fHwwPT09bz9fZy5jZWlsKGkpOl9nKGkpLGk9dmcub2Zmc2V0KGksNyooYS5WLTEpKSxhLnk9aS5nZXRVVENGdWxsWWVhcigpLGEubT1pLmdldFVUQ01vbnRoKCksYS5kPWkuZ2V0VVRDRGF0ZSgpKyhhLncrNiklNyk6KGk9KG89KGk9bihWYShhLnkpKSkuZ2V0RGF5KCkpPjR8fDA9PT1vPyR2LmNlaWwoaSk6JHYoaSksaT1Ydi5vZmZzZXQoaSw3KihhLlYtMSkpLGEueT1pLmdldEZ1bGxZZWFyKCksYS5tPWkuZ2V0TW9udGgoKSxhLmQ9aS5nZXREYXRlKCkrKGEudys2KSU3KX1lbHNlKFwiV1wiaW4gYXx8XCJVXCJpbiBhKSYmKFwid1wiaW4gYXx8KGEudz1cInVcImluIGE/YS51JTc6XCJXXCJpbiBhPzE6MCksbz1cIlpcImluIGE/R2EoVmEoYS55KSkuZ2V0VVRDRGF5KCk6bihWYShhLnkpKS5nZXREYXkoKSxhLm09MCxhLmQ9XCJXXCJpbiBhPyhhLncrNiklNys3KmEuVy0obys1KSU3OmEudys3KmEuVS0obys2KSU3KTtyZXR1cm5cIlpcImluIGE/KGEuSCs9YS5aLzEwMHwwLGEuTSs9YS5aJTEwMCxHYShhKSk6bihhKX19ZnVuY3Rpb24gcih0LG4sZSxyKXtmb3IodmFyIGksbyxhPTAsdT1uLmxlbmd0aCxmPWUubGVuZ3RoO2E8dTspe2lmKHI+PWYpcmV0dXJuLTE7aWYoMzc9PT0oaT1uLmNoYXJDb2RlQXQoYSsrKSkpe2lmKGk9bi5jaGFyQXQoYSsrKSwhKG89QVtpIGluIFVnP24uY2hhckF0KGErKyk6aV0pfHwocj1vKHQsZSxyKSk8MClyZXR1cm4tMX1lbHNlIGlmKGkhPWUuY2hhckNvZGVBdChyKyspKXJldHVybi0xfXJldHVybiByfXZhciBpPXQuZGF0ZVRpbWUsbz10LmRhdGUsYT10LnRpbWUsdT10LnBlcmlvZHMsZj10LmRheXMsYz10LnNob3J0RGF5cyxzPXQubW9udGhzLGw9dC5zaG9ydE1vbnRocyxoPVFhKHUpLGQ9SmEodSkscD1RYShmKSx2PUphKGYpLGc9UWEoYykseT1KYShjKSxfPVFhKHMpLGI9SmEocyksbT1RYShsKSx4PUphKGwpLHc9e2E6ZnVuY3Rpb24odCl7cmV0dXJuIGNbdC5nZXREYXkoKV19LEE6ZnVuY3Rpb24odCl7cmV0dXJuIGZbdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24odCl7cmV0dXJuIGxbdC5nZXRNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gc1t0LmdldE1vbnRoKCldfSxjOm51bGwsZDpfdSxlOl91LGY6TXUsSDpidSxJOm11LGo6eHUsTDp3dSxtOkF1LE06VHUscDpmdW5jdGlvbih0KXtyZXR1cm4gdVsrKHQuZ2V0SG91cnMoKT49MTIpXX0sUTpLdSxzOnRmLFM6TnUsdTpTdSxVOkV1LFY6a3UsdzpDdSxXOlB1LHg6bnVsbCxYOm51bGwseTp6dSxZOlJ1LFo6THUsXCIlXCI6SnV9LE09e2E6ZnVuY3Rpb24odCl7cmV0dXJuIGNbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24odCl7cmV0dXJuIGZbdC5nZXRVVENEYXkoKV19LGI6ZnVuY3Rpb24odCl7cmV0dXJuIGxbdC5nZXRVVENNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpEdSxlOkR1LGY6QnUsSDpVdSxJOnF1LGo6T3UsTDpZdSxtOkZ1LE06SXUscDpmdW5jdGlvbih0KXtyZXR1cm4gdVsrKHQuZ2V0VVRDSG91cnMoKT49MTIpXX0sUTpLdSxzOnRmLFM6anUsdTpIdSxVOlh1LFY6R3UsdzpWdSxXOiR1LHg6bnVsbCxYOm51bGwseTpXdSxZOlp1LFo6UXUsXCIlXCI6SnV9LEE9e2E6ZnVuY3Rpb24odCxuLGUpe3ZhciByPWcuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC53PXlbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sQTpmdW5jdGlvbih0LG4sZSl7dmFyIHI9cC5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0Lnc9dltyWzBdLnRvTG93ZXJDYXNlKCldLGUrclswXS5sZW5ndGgpOi0xfSxiOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1tLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQubT14W3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24odCxuLGUpe3ZhciByPV8uZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5tPWJbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sYzpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHIodCxpLG4sZSl9LGQ6ZnUsZTpmdSxmOnB1LEg6c3UsSTpzdSxqOmN1LEw6ZHUsbTp1dSxNOmx1LHA6ZnVuY3Rpb24odCxuLGUpe3ZhciByPWguZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5wPWRbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sUTpndSxzOnl1LFM6aHUsdTp0dSxVOm51LFY6ZXUsdzpLYSxXOnJ1LHg6ZnVuY3Rpb24odCxuLGUpe3JldHVybiByKHQsbyxuLGUpfSxYOmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gcih0LGEsbixlKX0seTpvdSxZOml1LFo6YXUsXCIlXCI6dnV9O3JldHVybiB3Lng9bihvLHcpLHcuWD1uKGEsdyksdy5jPW4oaSx3KSxNLng9bihvLE0pLE0uWD1uKGEsTSksTS5jPW4oaSxNKSx7Zm9ybWF0OmZ1bmN0aW9uKHQpe3ZhciBlPW4odCs9XCJcIix3KTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgbj1lKHQrPVwiXCIsWGEpO3JldHVybiBuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LG59LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1uKHQrPVwiXCIsTSk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjUGFyc2U6ZnVuY3Rpb24odCl7dmFyIG49ZSh0LEdhKTtyZXR1cm4gbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxufX19ZnVuY3Rpb24gV2EodCxuLGUpe3ZhciByPXQ8MD9cIi1cIjpcIlwiLGk9KHI/LXQ6dCkrXCJcIixvPWkubGVuZ3RoO3JldHVybiByKyhvPGU/bmV3IEFycmF5KGUtbysxKS5qb2luKG4pK2k6aSl9ZnVuY3Rpb24gWmEodCl7cmV0dXJuIHQucmVwbGFjZShZZyxcIlxcXFwkJlwiKX1mdW5jdGlvbiBRYSh0KXtyZXR1cm4gbmV3IFJlZ0V4cChcIl4oPzpcIit0Lm1hcChaYSkuam9pbihcInxcIikrXCIpXCIsXCJpXCIpfWZ1bmN0aW9uIEphKHQpe2Zvcih2YXIgbj17fSxlPS0xLHI9dC5sZW5ndGg7KytlPHI7KW5bdFtlXS50b0xvd2VyQ2FzZSgpXT1lO3JldHVybiBufWZ1bmN0aW9uIEthKHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj8odC53PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHR1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj8odC51PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG51KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5VPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGV1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5WPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHJ1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5XPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGl1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzQpKTtyZXR1cm4gcj8odC55PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG91KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC55PStyWzBdKygrclswXT42OD8xOTAwOjJlMyksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYXUodCxuLGUpe3ZhciByPS9eKFopfChbKy1dXFxkXFxkKSg/Ojo/KFxcZFxcZCkpPy8uZXhlYyhuLnNsaWNlKGUsZSs2KSk7cmV0dXJuIHI/KHQuWj1yWzFdPzA6LShyWzJdKyhyWzNdfHxcIjAwXCIpKSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB1dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQubT1yWzBdLTEsZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZnUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0LmQ9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gY3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMykpO3JldHVybiByPyh0Lm09MCx0LmQ9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gc3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lkg9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lk09K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gaHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0LlM9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMykpO3JldHVybiByPyh0Lkw9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gcHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrNikpO3JldHVybiByPyh0Lkw9TWF0aC5mbG9vcihyWzBdLzFlMyksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdnUodCxuLGUpe3ZhciByPU9nLmV4ZWMobi5zbGljZShlLGUrMSkpO3JldHVybiByP2UrclswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gZ3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQuUT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB5dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5RPTFlMyorclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBfdSh0LG4pe3JldHVybiBXYSh0LmdldERhdGUoKSxuLDIpfWZ1bmN0aW9uIGJ1KHQsbil7cmV0dXJuIFdhKHQuZ2V0SG91cnMoKSxuLDIpfWZ1bmN0aW9uIG11KHQsbil7cmV0dXJuIFdhKHQuZ2V0SG91cnMoKSUxMnx8MTIsbiwyKX1mdW5jdGlvbiB4dSh0LG4pe3JldHVybiBXYSgxK1h2LmNvdW50KGNnKHQpLHQpLG4sMyl9ZnVuY3Rpb24gd3UodCxuKXtyZXR1cm4gV2EodC5nZXRNaWxsaXNlY29uZHMoKSxuLDMpfWZ1bmN0aW9uIE11KHQsbil7cmV0dXJuIHd1KHQsbikrXCIwMDBcIn1mdW5jdGlvbiBBdSh0LG4pe3JldHVybiBXYSh0LmdldE1vbnRoKCkrMSxuLDIpfWZ1bmN0aW9uIFR1KHQsbil7cmV0dXJuIFdhKHQuZ2V0TWludXRlcygpLG4sMil9ZnVuY3Rpb24gTnUodCxuKXtyZXR1cm4gV2EodC5nZXRTZWNvbmRzKCksbiwyKX1mdW5jdGlvbiBTdSh0KXt2YXIgbj10LmdldERheSgpO3JldHVybiAwPT09bj83Om59ZnVuY3Rpb24gRXUodCxuKXtyZXR1cm4gV2EoVnYuY291bnQoY2codCksdCksbiwyKX1mdW5jdGlvbiBrdSh0LG4pe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIHQ9ZT49NHx8MD09PWU/UXYodCk6UXYuY2VpbCh0KSxXYShRdi5jb3VudChjZyh0KSx0KSsoND09PWNnKHQpLmdldERheSgpKSxuLDIpfWZ1bmN0aW9uIEN1KHQpe3JldHVybiB0LmdldERheSgpfWZ1bmN0aW9uIFB1KHQsbil7cmV0dXJuIFdhKCR2LmNvdW50KGNnKHQpLHQpLG4sMil9ZnVuY3Rpb24genUodCxuKXtyZXR1cm4gV2EodC5nZXRGdWxsWWVhcigpJTEwMCxuLDIpfWZ1bmN0aW9uIFJ1KHQsbil7cmV0dXJuIFdhKHQuZ2V0RnVsbFllYXIoKSUxZTQsbiw0KX1mdW5jdGlvbiBMdSh0KXt2YXIgbj10LmdldFRpbWV6b25lT2Zmc2V0KCk7cmV0dXJuKG4+MD9cIi1cIjoobio9LTEsXCIrXCIpKStXYShuLzYwfDAsXCIwXCIsMikrV2EobiU2MCxcIjBcIiwyKX1mdW5jdGlvbiBEdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0RhdGUoKSxuLDIpfWZ1bmN0aW9uIFV1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDSG91cnMoKSxuLDIpfWZ1bmN0aW9uIHF1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDSG91cnMoKSUxMnx8MTIsbiwyKX1mdW5jdGlvbiBPdSh0LG4pe3JldHVybiBXYSgxK3ZnLmNvdW50KFJnKHQpLHQpLG4sMyl9ZnVuY3Rpb24gWXUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENNaWxsaXNlY29uZHMoKSxuLDMpfWZ1bmN0aW9uIEJ1KHQsbil7cmV0dXJuIFl1KHQsbikrXCIwMDBcIn1mdW5jdGlvbiBGdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ01vbnRoKCkrMSxuLDIpfWZ1bmN0aW9uIEl1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDTWludXRlcygpLG4sMil9ZnVuY3Rpb24ganUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENTZWNvbmRzKCksbiwyKX1mdW5jdGlvbiBIdSh0KXt2YXIgbj10LmdldFVUQ0RheSgpO3JldHVybiAwPT09bj83Om59ZnVuY3Rpb24gWHUodCxuKXtyZXR1cm4gV2EoeWcuY291bnQoUmcodCksdCksbiwyKX1mdW5jdGlvbiBHdSh0LG4pe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIHQ9ZT49NHx8MD09PWU/eGcodCk6eGcuY2VpbCh0KSxXYSh4Zy5jb3VudChSZyh0KSx0KSsoND09PVJnKHQpLmdldFVUQ0RheSgpKSxuLDIpfWZ1bmN0aW9uIFZ1KHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uICR1KHQsbil7cmV0dXJuIFdhKF9nLmNvdW50KFJnKHQpLHQpLG4sMil9ZnVuY3Rpb24gV3UodCxuKXtyZXR1cm4gV2EodC5nZXRVVENGdWxsWWVhcigpJTEwMCxuLDIpfWZ1bmN0aW9uIFp1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDRnVsbFllYXIoKSUxZTQsbiw0KX1mdW5jdGlvbiBRdSgpe3JldHVyblwiKzAwMDBcIn1mdW5jdGlvbiBKdSgpe3JldHVyblwiJVwifWZ1bmN0aW9uIEt1KHQpe3JldHVybit0fWZ1bmN0aW9uIHRmKHQpe3JldHVybiBNYXRoLmZsb29yKCt0LzFlMyl9ZnVuY3Rpb24gbmYobil7cmV0dXJuIExnPSRhKG4pLHQudGltZUZvcm1hdD1MZy5mb3JtYXQsdC50aW1lUGFyc2U9TGcucGFyc2UsdC51dGNGb3JtYXQ9TGcudXRjRm9ybWF0LHQudXRjUGFyc2U9TGcudXRjUGFyc2UsTGd9ZnVuY3Rpb24gZWYodCl7cmV0dXJuIG5ldyBEYXRlKHQpfWZ1bmN0aW9uIHJmKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZT8rdDorbmV3IERhdGUoK3QpfWZ1bmN0aW9uIG9mKHQsbixyLGksbyxhLHUsZixjKXtmdW5jdGlvbiBzKGUpe3JldHVybih1KGUpPGU/ZzphKGUpPGU/eTpvKGUpPGU/XzppKGUpPGU/YjpuKGUpPGU/cihlKTxlP206eDp0KGUpPGU/dzpNKShlKX1mdW5jdGlvbiBsKG4scixpLG8pe2lmKG51bGw9PW4mJihuPTEwKSxcIm51bWJlclwiPT10eXBlb2Ygbil7dmFyIGE9TWF0aC5hYnMoaS1yKS9uLHU9ZShmdW5jdGlvbih0KXtyZXR1cm4gdFsyXX0pLnJpZ2h0KEEsYSk7dT09PUEubGVuZ3RoPyhvPWQoci9XZyxpL1dnLG4pLG49dCk6dT8obz0odT1BW2EvQVt1LTFdWzJdPEFbdV1bMl0vYT91LTE6dV0pWzFdLG49dVswXSk6KG89TWF0aC5tYXgoZChyLGksbiksMSksbj1mKX1yZXR1cm4gbnVsbD09bz9uOm4uZXZlcnkobyl9dmFyIGg9VGEoeGEsc24pLHA9aC5pbnZlcnQsdj1oLmRvbWFpbixnPWMoXCIuJUxcIikseT1jKFwiOiVTXCIpLF89YyhcIiVJOiVNXCIpLGI9YyhcIiVJICVwXCIpLG09YyhcIiVhICVkXCIpLHg9YyhcIiViICVkXCIpLHc9YyhcIiVCXCIpLE09YyhcIiVZXCIpLEE9W1t1LDEsamddLFt1LDUsNSpqZ10sW3UsMTUsMTUqamddLFt1LDMwLDMwKmpnXSxbYSwxLEhnXSxbYSw1LDUqSGddLFthLDE1LDE1KkhnXSxbYSwzMCwzMCpIZ10sW28sMSxYZ10sW28sMywzKlhnXSxbbyw2LDYqWGddLFtvLDEyLDEyKlhnXSxbaSwxLEdnXSxbaSwyLDIqR2ddLFtyLDEsVmddLFtuLDEsJGddLFtuLDMsMyokZ10sW3QsMSxXZ11dO3JldHVybiBoLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IERhdGUocCh0KSl9LGguZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Yoa3YuY2FsbCh0LHJmKSk6digpLm1hcChlZil9LGgudGlja3M9ZnVuY3Rpb24odCxuKXt2YXIgZSxyPXYoKSxpPXJbMF0sbz1yW3IubGVuZ3RoLTFdLGE9bzxpO3JldHVybiBhJiYoZT1pLGk9byxvPWUpLGU9bCh0LGksbyxuKSxlPWU/ZS5yYW5nZShpLG8rMSk6W10sYT9lLnJldmVyc2UoKTplfSxoLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbD09bj9zOmMobil9LGgubmljZT1mdW5jdGlvbih0LG4pe3ZhciBlPXYoKTtyZXR1cm4odD1sKHQsZVswXSxlW2UubGVuZ3RoLTFdLG4pKT92KGthKGUsdCkpOmh9LGguY29weT1mdW5jdGlvbigpe3JldHVybiBBYShoLG9mKHQsbixyLGksbyxhLHUsZixjKSl9LGh9ZnVuY3Rpb24gYWYodCl7ZnVuY3Rpb24gbihuKXt2YXIgcj0obi1lKSppO3JldHVybiB0KG8/TWF0aC5tYXgoMCxNYXRoLm1pbigxLHIpKTpyKX12YXIgZT0wLHI9MSxpPTEsbz0hMTtyZXR1cm4gbi5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0scj0rdFsxXSxpPWU9PT1yPzA6MS8oci1lKSxuKTpbZSxyXX0sbi5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0hIXQsbik6b30sbi5pbnRlcnBvbGF0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxuKTp0fSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gYWYodCkuZG9tYWluKFtlLHJdKS5jbGFtcChvKX0sTmEobil9ZnVuY3Rpb24gdWYodCl7ZnVuY3Rpb24gbihuKXt2YXIgZT0uNSsoKG49K24pLXIpKihuPHI/bzphKTtyZXR1cm4gdCh1P01hdGgubWF4KDAsTWF0aC5taW4oMSxlKSk6ZSl9dmFyIGU9MCxyPS41LGk9MSxvPTEsYT0xLHU9ITE7cmV0dXJuIG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0saT0rdFsyXSxvPWU9PT1yPzA6LjUvKHItZSksYT1yPT09aT8wOi41LyhpLXIpLG4pOltlLHIsaV19LG4uY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ISF0LG4pOnV9LG4uaW50ZXJwb2xhdG9yPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbik6dH0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHVmKHQpLmRvbWFpbihbZSxyLGldKS5jbGFtcCh1KX0sTmEobil9ZnVuY3Rpb24gZmYodCl7Zm9yKHZhciBuPXQubGVuZ3RoLzZ8MCxlPW5ldyBBcnJheShuKSxyPTA7cjxuOyllW3JdPVwiI1wiK3Quc2xpY2UoNipyLDYqKytyKTtyZXR1cm4gZX1mdW5jdGlvbiBjZih0KXtyZXR1cm4gaWwodFt0Lmxlbmd0aC0xXSl9ZnVuY3Rpb24gc2YodCl7dmFyIG49dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0W01hdGgubWF4KDAsTWF0aC5taW4obi0xLE1hdGguZmxvb3IoZSpuKSkpXX19ZnVuY3Rpb24gbGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGhmKHQpe3JldHVybiB0Pj0xP1RfOnQ8PS0xPy1UXzpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gZGYodCl7cmV0dXJuIHQuaW5uZXJSYWRpdXN9ZnVuY3Rpb24gcGYodCl7cmV0dXJuIHQub3V0ZXJSYWRpdXN9ZnVuY3Rpb24gdmYodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiBnZih0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiB5Zih0KXtyZXR1cm4gdCYmdC5wYWRBbmdsZX1mdW5jdGlvbiBfZih0LG4sZSxyLGksbyxhKXt2YXIgdT10LWUsZj1uLXIsYz0oYT9vOi1vKS93Xyh1KnUrZipmKSxzPWMqZixsPS1jKnUsaD10K3MsZD1uK2wscD1lK3Msdj1yK2wsZz0oaCtwKS8yLHk9KGQrdikvMixfPXAtaCxiPXYtZCxtPV8qXytiKmIseD1pLW8sdz1oKnYtcCpkLE09KGI8MD8tMToxKSp3XyhiXygwLHgqeCptLXcqdykpLEE9KHcqYi1fKk0pL20sVD0oLXcqXy1iKk0pL20sTj0odypiK18qTSkvbSxTPSgtdypfK2IqTSkvbSxFPUEtZyxrPVQteSxDPU4tZyxQPVMteTtyZXR1cm4gRSpFK2sqaz5DKkMrUCpQJiYoQT1OLFQ9Uykse2N4OkEsY3k6VCx4MDE6LXMseTAxOi1sLHgxMTpBKihpL3gtMSkseTExOlQqKGkveC0xKX19ZnVuY3Rpb24gYmYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIG1mKHQpe3JldHVybiBuZXcgYmYodCl9ZnVuY3Rpb24geGYodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gd2YodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gTWYoKXtmdW5jdGlvbiB0KHQpe3ZhciB1LGYsYyxzPXQubGVuZ3RoLGw9ITE7Zm9yKG51bGw9PWkmJihhPW8oYz1vZSgpKSksdT0wO3U8PXM7Kyt1KSEodTxzJiZyKGY9dFt1XSx1LHQpKT09PWwmJigobD0hbCk/YS5saW5lU3RhcnQoKTphLmxpbmVFbmQoKSksbCYmYS5wb2ludCgrbihmLHUsdCksK2UoZix1LHQpKTtpZihjKXJldHVybiBhPW51bGwsYytcIlwifHxudWxsfXZhciBuPXhmLGU9d2Yscj1sZighMCksaT1udWxsLG89bWYsYT1udWxsO3JldHVybiB0Lng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LmRlZmluZWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCEhbiksdCk6cn0sdC5jdXJ2ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1uLG51bGwhPWkmJihhPW8oaSkpLHQpOm99LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj9pPWE9bnVsbDphPW8oaT1uKSx0KTppfSx0fWZ1bmN0aW9uIEFmKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbixzLGwsaCxkLHA9dC5sZW5ndGgsdj0hMSxnPW5ldyBBcnJheShwKSx5PW5ldyBBcnJheShwKTtmb3IobnVsbD09dSYmKGM9ZihkPW9lKCkpKSxuPTA7bjw9cDsrK24pe2lmKCEobjxwJiZhKGg9dFtuXSxuLHQpKT09PXYpaWYodj0hdilzPW4sYy5hcmVhU3RhcnQoKSxjLmxpbmVTdGFydCgpO2Vsc2V7Zm9yKGMubGluZUVuZCgpLGMubGluZVN0YXJ0KCksbD1uLTE7bD49czstLWwpYy5wb2ludChnW2xdLHlbbF0pO2MubGluZUVuZCgpLGMuYXJlYUVuZCgpfXYmJihnW25dPStlKGgsbix0KSx5W25dPStpKGgsbix0KSxjLnBvaW50KHI/K3IoaCxuLHQpOmdbbl0sbz8rbyhoLG4sdCk6eVtuXSkpfWlmKGQpcmV0dXJuIGM9bnVsbCxkK1wiXCJ8fG51bGx9ZnVuY3Rpb24gbigpe3JldHVybiBNZigpLmRlZmluZWQoYSkuY3VydmUoZikuY29udGV4dCh1KX12YXIgZT14ZixyPW51bGwsaT1sZigwKSxvPXdmLGE9bGYoITApLHU9bnVsbCxmPW1mLGM9bnVsbDtyZXR1cm4gdC54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbikscj1udWxsLHQpOmV9LHQueDA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LngxPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/bnVsbDpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOnJ9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLG89bnVsbCx0KTppfSx0LnkwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6aX0sdC55MT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LmxpbmVYMD10LmxpbmVZMD1mdW5jdGlvbigpe3JldHVybiBuKCkueChlKS55KGkpfSx0LmxpbmVZMT1mdW5jdGlvbigpe3JldHVybiBuKCkueChlKS55KG8pfSx0LmxpbmVYMT1mdW5jdGlvbigpe3JldHVybiBuKCkueChyKS55KGkpfSx0LmRlZmluZWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCEhbiksdCk6YX0sdC5jdXJ2ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1uLG51bGwhPXUmJihjPWYodSkpLHQpOmZ9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj91PWM9bnVsbDpjPWYodT1uKSx0KTp1fSx0fWZ1bmN0aW9uIFRmKHQsbil7cmV0dXJuIG48dD8tMTpuPnQ/MTpuPj10PzA6TmFOfWZ1bmN0aW9uIE5mKHQpe3JldHVybiB0fWZ1bmN0aW9uIFNmKHQpe3RoaXMuX2N1cnZlPXR9ZnVuY3Rpb24gRWYodCl7ZnVuY3Rpb24gbihuKXtyZXR1cm4gbmV3IFNmKHQobikpfXJldHVybiBuLl9jdXJ2ZT10LG59ZnVuY3Rpb24ga2YodCl7dmFyIG49dC5jdXJ2ZTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oRWYodCkpOm4oKS5fY3VydmV9LHR9ZnVuY3Rpb24gQ2YoKXtyZXR1cm4ga2YoTWYoKS5jdXJ2ZShTXykpfWZ1bmN0aW9uIFBmKCl7dmFyIHQ9QWYoKS5jdXJ2ZShTXyksbj10LmN1cnZlLGU9dC5saW5lWDAscj10LmxpbmVYMSxpPXQubGluZVkwLG89dC5saW5lWTE7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5zdGFydEFuZ2xlPXQueDAsZGVsZXRlIHQueDAsdC5lbmRBbmdsZT10LngxLGRlbGV0ZSB0LngxLHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuaW5uZXJSYWRpdXM9dC55MCxkZWxldGUgdC55MCx0Lm91dGVyUmFkaXVzPXQueTEsZGVsZXRlIHQueTEsdC5saW5lU3RhcnRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBrZihlKCkpfSxkZWxldGUgdC5saW5lWDAsdC5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4ga2YocigpKX0sZGVsZXRlIHQubGluZVgxLHQubGluZUlubmVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIGtmKGkoKSl9LGRlbGV0ZSB0LmxpbmVZMCx0LmxpbmVPdXRlclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBrZihvKCkpfSxkZWxldGUgdC5saW5lWTEsdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKEVmKHQpKTpuKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIHpmKHQsbil7cmV0dXJuWyhuPStuKSpNYXRoLmNvcyh0LT1NYXRoLlBJLzIpLG4qTWF0aC5zaW4odCldfWZ1bmN0aW9uIFJmKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBMZih0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gRGYodCl7ZnVuY3Rpb24gbigpe3ZhciBuLHU9RV8uY2FsbChhcmd1bWVudHMpLGY9ZS5hcHBseSh0aGlzLHUpLGM9ci5hcHBseSh0aGlzLHUpO2lmKGF8fChhPW49b2UoKSksdChhLCtpLmFwcGx5KHRoaXMsKHVbMF09Zix1KSksK28uYXBwbHkodGhpcyx1KSwraS5hcHBseSh0aGlzLCh1WzBdPWMsdSkpLCtvLmFwcGx5KHRoaXMsdSkpLG4pcmV0dXJuIGE9bnVsbCxuK1wiXCJ8fG51bGx9dmFyIGU9UmYscj1MZixpPXhmLG89d2YsYT1udWxsO3JldHVybiBuLnNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG4pOmV9LG4udGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sbi54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpsZigrdCksbik6aX0sbi55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpsZigrdCksbik6b30sbi5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW51bGw9PXQ/bnVsbDp0LG4pOmF9LG59ZnVuY3Rpb24gVWYodCxuLGUscixpKXt0Lm1vdmVUbyhuLGUpLHQuYmV6aWVyQ3VydmVUbyhuPShuK3IpLzIsZSxuLGkscixpKX1mdW5jdGlvbiBxZih0LG4sZSxyLGkpe3QubW92ZVRvKG4sZSksdC5iZXppZXJDdXJ2ZVRvKG4sZT0oZStpKS8yLHIsZSxyLGkpfWZ1bmN0aW9uIE9mKHQsbixlLHIsaSl7dmFyIG89emYobixlKSxhPXpmKG4sZT0oZStpKS8yKSx1PXpmKHIsZSksZj16ZihyLGkpO3QubW92ZVRvKG9bMF0sb1sxXSksdC5iZXppZXJDdXJ2ZVRvKGFbMF0sYVsxXSx1WzBdLHVbMV0sZlswXSxmWzFdKX1mdW5jdGlvbiBZZigpe31mdW5jdGlvbiBCZih0LG4sZSl7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKCgyKnQuX3gwK3QuX3gxKS8zLCgyKnQuX3kwK3QuX3kxKS8zLCh0Ll94MCsyKnQuX3gxKS8zLCh0Ll95MCsyKnQuX3kxKS8zLCh0Ll94MCs0KnQuX3gxK24pLzYsKHQuX3kwKzQqdC5feTErZSkvNil9ZnVuY3Rpb24gRmYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIElmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBqZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gSGYodCxuKXt0aGlzLl9iYXNpcz1uZXcgRmYodCksdGhpcy5fYmV0YT1ufWZ1bmN0aW9uIFhmKHQsbixlKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1uKSx0Ll95Mit0Ll9rKih0Ll95MS1lKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gR2YodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1uKS82fWZ1bmN0aW9uIFZmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtbikvNn1mdW5jdGlvbiAkZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLW4pLzZ9ZnVuY3Rpb24gV2YodCxuLGUpe3ZhciByPXQuX3gxLGk9dC5feTEsbz10Ll94MixhPXQuX3kyO2lmKHQuX2wwMV9hPk1fKXt2YXIgdT0yKnQuX2wwMV8yYSszKnQuX2wwMV9hKnQuX2wxMl9hK3QuX2wxMl8yYSxmPTMqdC5fbDAxX2EqKHQuX2wwMV9hK3QuX2wxMl9hKTtyPShyKnUtdC5feDAqdC5fbDEyXzJhK3QuX3gyKnQuX2wwMV8yYSkvZixpPShpKnUtdC5feTAqdC5fbDEyXzJhK3QuX3kyKnQuX2wwMV8yYSkvZn1pZih0Ll9sMjNfYT5NXyl7dmFyIGM9Mip0Ll9sMjNfMmErMyp0Ll9sMjNfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEscz0zKnQuX2wyM19hKih0Ll9sMjNfYSt0Ll9sMTJfYSk7bz0obypjK3QuX3gxKnQuX2wyM18yYS1uKnQuX2wxMl8yYSkvcyxhPShhKmMrdC5feTEqdC5fbDIzXzJhLWUqdC5fbDEyXzJhKS9zfXQuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhyLGksbyxhLHQuX3gyLHQuX3kyKX1mdW5jdGlvbiBaZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1ufWZ1bmN0aW9uIFFmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPW59ZnVuY3Rpb24gSmYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9bn1mdW5jdGlvbiBLZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gdGModCl7cmV0dXJuIHQ8MD8tMToxfWZ1bmN0aW9uIG5jKHQsbixlKXt2YXIgcj10Ll94MS10Ll94MCxpPW4tdC5feDEsbz0odC5feTEtdC5feTApLyhyfHxpPDAmJi0wKSxhPShlLXQuX3kxKS8oaXx8cjwwJiYtMCksdT0obyppK2EqcikvKHIraSk7cmV0dXJuKHRjKG8pK3RjKGEpKSpNYXRoLm1pbihNYXRoLmFicyhvKSxNYXRoLmFicyhhKSwuNSpNYXRoLmFicyh1KSl8fDB9ZnVuY3Rpb24gZWModCxuKXt2YXIgZT10Ll94MS10Ll94MDtyZXR1cm4gZT8oMyoodC5feTEtdC5feTApL2UtbikvMjpufWZ1bmN0aW9uIHJjKHQsbixlKXt2YXIgcj10Ll94MCxpPXQuX3kwLG89dC5feDEsYT10Ll95MSx1PShvLXIpLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHIrdSxpK3UqbixvLXUsYS11KmUsbyxhKX1mdW5jdGlvbiBpYyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gb2ModCl7dGhpcy5fY29udGV4dD1uZXcgYWModCl9ZnVuY3Rpb24gYWModCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHVjKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBmYyh0KXt2YXIgbixlLHI9dC5sZW5ndGgtMSxpPW5ldyBBcnJheShyKSxvPW5ldyBBcnJheShyKSxhPW5ldyBBcnJheShyKTtmb3IoaVswXT0wLG9bMF09MixhWzBdPXRbMF0rMip0WzFdLG49MTtuPHItMTsrK24paVtuXT0xLG9bbl09NCxhW25dPTQqdFtuXSsyKnRbbisxXTtmb3IoaVtyLTFdPTIsb1tyLTFdPTcsYVtyLTFdPTgqdFtyLTFdK3Rbcl0sbj0xO248cjsrK24pZT1pW25dL29bbi0xXSxvW25dLT1lLGFbbl0tPWUqYVtuLTFdO2ZvcihpW3ItMV09YVtyLTFdL29bci0xXSxuPXItMjtuPj0wOy0tbilpW25dPShhW25dLWlbbisxXSkvb1tuXTtmb3Iob1tyLTFdPSh0W3JdK2lbci0xXSkvMixuPTA7bjxyLTE7KytuKW9bbl09Mip0W24rMV0taVtuKzFdO3JldHVybltpLG9dfWZ1bmN0aW9uIGNjKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX3Q9bn1mdW5jdGlvbiBzYyh0LG4pe2lmKChpPXQubGVuZ3RoKT4xKWZvcih2YXIgZSxyLGksbz0xLGE9dFtuWzBdXSx1PWEubGVuZ3RoO288aTsrK28pZm9yKHI9YSxhPXRbbltvXV0sZT0wO2U8dTsrK2UpYVtlXVsxXSs9YVtlXVswXT1pc05hTihyW2VdWzFdKT9yW2VdWzBdOnJbZV1bMV19ZnVuY3Rpb24gbGModCl7Zm9yKHZhciBuPXQubGVuZ3RoLGU9bmV3IEFycmF5KG4pOy0tbj49MDspZVtuXT1uO3JldHVybiBlfWZ1bmN0aW9uIGhjKHQsbil7cmV0dXJuIHRbbl19ZnVuY3Rpb24gZGModCl7dmFyIG49dC5tYXAocGMpO3JldHVybiBsYyh0KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5bdF0tbltlXX0pfWZ1bmN0aW9uIHBjKHQpe2Zvcih2YXIgbixlPTAscj0tMSxpPXQubGVuZ3RoOysrcjxpOykobj0rdFtyXVsxXSkmJihlKz1uKTtyZXR1cm4gZX1mdW5jdGlvbiB2Yyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gZ2ModCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24geWModCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gX2MoKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBiYyh0KXt0LlU9dC5DPXQuTD10LlI9dC5QPXQuTj1udWxsfWZ1bmN0aW9uIG1jKHQsbil7dmFyIGU9bixyPW4uUixpPWUuVTtpP2kuTD09PWU/aS5MPXI6aS5SPXI6dC5fPXIsci5VPWksZS5VPXIsZS5SPXIuTCxlLlImJihlLlIuVT1lKSxyLkw9ZX1mdW5jdGlvbiB4Yyh0LG4pe3ZhciBlPW4scj1uLkwsaT1lLlU7aT9pLkw9PT1lP2kuTD1yOmkuUj1yOnQuXz1yLHIuVT1pLGUuVT1yLGUuTD1yLlIsZS5MJiYoZS5MLlU9ZSksci5SPWV9ZnVuY3Rpb24gd2ModCl7Zm9yKDt0Lkw7KXQ9dC5MO3JldHVybiB0fWZ1bmN0aW9uIE1jKHQsbixlLHIpe3ZhciBpPVtudWxsLG51bGxdLG89cmIucHVzaChpKS0xO3JldHVybiBpLmxlZnQ9dCxpLnJpZ2h0PW4sZSYmVGMoaSx0LG4sZSksciYmVGMoaSxuLHQsciksbmJbdC5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksbmJbbi5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksaX1mdW5jdGlvbiBBYyh0LG4sZSl7dmFyIHI9W24sZV07cmV0dXJuIHIubGVmdD10LHJ9ZnVuY3Rpb24gVGModCxuLGUscil7dFswXXx8dFsxXT90LmxlZnQ9PT1lP3RbMV09cjp0WzBdPXI6KHRbMF09cix0LmxlZnQ9bix0LnJpZ2h0PWUpfWZ1bmN0aW9uIE5jKHQsbixlLHIsaSl7dmFyIG8sYT10WzBdLHU9dFsxXSxmPWFbMF0sYz1hWzFdLHM9MCxsPTEsaD11WzBdLWYsZD11WzFdLWM7aWYobz1uLWYsaHx8IShvPjApKXtpZihvLz1oLGg8MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWVsc2UgaWYoaD4wKXtpZihvPmwpcmV0dXJuO28+cyYmKHM9byl9aWYobz1yLWYsaHx8IShvPDApKXtpZihvLz1oLGg8MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWVsc2UgaWYoaD4wKXtpZihvPHMpcmV0dXJuO288bCYmKGw9byl9aWYobz1lLWMsZHx8IShvPjApKXtpZihvLz1kLGQ8MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWVsc2UgaWYoZD4wKXtpZihvPmwpcmV0dXJuO28+cyYmKHM9byl9aWYobz1pLWMsZHx8IShvPDApKXtpZihvLz1kLGQ8MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWVsc2UgaWYoZD4wKXtpZihvPHMpcmV0dXJuO288bCYmKGw9byl9cmV0dXJuIShzPjB8fGw8MSl8fChzPjAmJih0WzBdPVtmK3MqaCxjK3MqZF0pLGw8MSYmKHRbMV09W2YrbCpoLGMrbCpkXSksITApfX19fX1mdW5jdGlvbiBTYyh0LG4sZSxyLGkpe3ZhciBvPXRbMV07aWYobylyZXR1cm4hMDt2YXIgYSx1LGY9dFswXSxjPXQubGVmdCxzPXQucmlnaHQsbD1jWzBdLGg9Y1sxXSxkPXNbMF0scD1zWzFdLHY9KGwrZCkvMixnPShoK3ApLzI7aWYocD09PWgpe2lmKHY8bnx8dj49cilyZXR1cm47aWYobD5kKXtpZihmKXtpZihmWzFdPj1pKXJldHVybn1lbHNlIGY9W3YsZV07bz1bdixpXX1lbHNle2lmKGYpe2lmKGZbMV08ZSlyZXR1cm59ZWxzZSBmPVt2LGldO289W3YsZV19fWVsc2UgaWYoYT0obC1kKS8ocC1oKSx1PWctYSp2LGE8LTF8fGE+MSlpZihsPmQpe2lmKGYpe2lmKGZbMV0+PWkpcmV0dXJufWVsc2UgZj1bKGUtdSkvYSxlXTtvPVsoaS11KS9hLGldfWVsc2V7aWYoZil7aWYoZlsxXTxlKXJldHVybn1lbHNlIGY9WyhpLXUpL2EsaV07bz1bKGUtdSkvYSxlXX1lbHNlIGlmKGg8cCl7aWYoZil7aWYoZlswXT49cilyZXR1cm59ZWxzZSBmPVtuLGEqbit1XTtvPVtyLGEqcit1XX1lbHNle2lmKGYpe2lmKGZbMF08bilyZXR1cm59ZWxzZSBmPVtyLGEqcit1XTtvPVtuLGEqbit1XX1yZXR1cm4gdFswXT1mLHRbMV09bywhMH1mdW5jdGlvbiBFYyh0LG4pe3ZhciBlPXQuc2l0ZSxyPW4ubGVmdCxpPW4ucmlnaHQ7cmV0dXJuIGU9PT1pJiYoaT1yLHI9ZSksaT9NYXRoLmF0YW4yKGlbMV0tclsxXSxpWzBdLXJbMF0pOihlPT09cj8ocj1uWzFdLGk9blswXSk6KHI9blswXSxpPW5bMV0pLE1hdGguYXRhbjIoclswXS1pWzBdLGlbMV0tclsxXSkpfWZ1bmN0aW9uIGtjKHQsbil7cmV0dXJuIG5bKyhuLmxlZnQhPT10LnNpdGUpXX1mdW5jdGlvbiBDYyh0LG4pe3JldHVybiBuWysobi5sZWZ0PT09dC5zaXRlKV19ZnVuY3Rpb24gUGModCl7dmFyIG49dC5QLGU9dC5OO2lmKG4mJmUpe3ZhciByPW4uc2l0ZSxpPXQuc2l0ZSxvPWUuc2l0ZTtpZihyIT09byl7dmFyIGE9aVswXSx1PWlbMV0sZj1yWzBdLWEsYz1yWzFdLXUscz1vWzBdLWEsbD1vWzFdLXUsaD0yKihmKmwtYypzKTtpZighKGg+PS11Yikpe3ZhciBkPWYqZitjKmMscD1zKnMrbCpsLHY9KGwqZC1jKnApL2gsZz0oZipwLXMqZCkvaCx5PWliLnBvcCgpfHxuZXcgZnVuY3Rpb24oKXtiYyh0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9O3kuYXJjPXQseS5zaXRlPWkseS54PXYrYSx5Lnk9KHkuY3k9Zyt1KStNYXRoLnNxcnQodip2K2cqZyksdC5jaXJjbGU9eTtmb3IodmFyIF89bnVsbCxiPWViLl87YjspaWYoeS55PGIueXx8eS55PT09Yi55JiZ5Lng8PWIueCl7aWYoIWIuTCl7Xz1iLlA7YnJlYWt9Yj1iLkx9ZWxzZXtpZighYi5SKXtfPWI7YnJlYWt9Yj1iLlJ9ZWIuaW5zZXJ0KF8seSksX3x8KEtfPXkpfX19fWZ1bmN0aW9uIHpjKHQpe3ZhciBuPXQuY2lyY2xlO24mJihuLlB8fChLXz1uLk4pLGViLnJlbW92ZShuKSxpYi5wdXNoKG4pLGJjKG4pLHQuY2lyY2xlPW51bGwpfWZ1bmN0aW9uIFJjKHQpe3ZhciBuPW9iLnBvcCgpfHxuZXcgZnVuY3Rpb24oKXtiYyh0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9O3JldHVybiBuLnNpdGU9dCxufWZ1bmN0aW9uIExjKHQpe3pjKHQpLHRiLnJlbW92ZSh0KSxvYi5wdXNoKHQpLGJjKHQpfWZ1bmN0aW9uIERjKHQpe3ZhciBuPXQuY2lyY2xlLGU9bi54LHI9bi5jeSxpPVtlLHJdLG89dC5QLGE9dC5OLHU9W3RdO0xjKHQpO2Zvcih2YXIgZj1vO2YuY2lyY2xlJiZNYXRoLmFicyhlLWYuY2lyY2xlLngpPGFiJiZNYXRoLmFicyhyLWYuY2lyY2xlLmN5KTxhYjspbz1mLlAsdS51bnNoaWZ0KGYpLExjKGYpLGY9bzt1LnVuc2hpZnQoZiksemMoZik7Zm9yKHZhciBjPWE7Yy5jaXJjbGUmJk1hdGguYWJzKGUtYy5jaXJjbGUueCk8YWImJk1hdGguYWJzKHItYy5jaXJjbGUuY3kpPGFiOylhPWMuTix1LnB1c2goYyksTGMoYyksYz1hO3UucHVzaChjKSx6YyhjKTt2YXIgcyxsPXUubGVuZ3RoO2ZvcihzPTE7czxsOysrcyljPXVbc10sZj11W3MtMV0sVGMoYy5lZGdlLGYuc2l0ZSxjLnNpdGUsaSk7Zj11WzBdLChjPXVbbC0xXSkuZWRnZT1NYyhmLnNpdGUsYy5zaXRlLG51bGwsaSksUGMoZiksUGMoYyl9ZnVuY3Rpb24gVWModCl7Zm9yKHZhciBuLGUscixpLG89dFswXSxhPXRbMV0sdT10Yi5fO3U7KWlmKChyPXFjKHUsYSktbyk+YWIpdT11Lkw7ZWxzZXtpZighKChpPW8tZnVuY3Rpb24odCxuKXt2YXIgZT10Lk47aWYoZSlyZXR1cm4gcWMoZSxuKTt2YXIgcj10LnNpdGU7cmV0dXJuIHJbMV09PT1uP3JbMF06MS8wfSh1LGEpKT5hYikpe3I+LWFiPyhuPXUuUCxlPXUpOmk+LWFiPyhuPXUsZT11Lk4pOm49ZT11O2JyZWFrfWlmKCF1LlIpe249dTticmVha311PXUuUn0oZnVuY3Rpb24odCl7bmJbdC5pbmRleF09e3NpdGU6dCxoYWxmZWRnZXM6W119fSkodCk7dmFyIGY9UmModCk7aWYodGIuaW5zZXJ0KG4sZiksbnx8ZSl7aWYobj09PWUpcmV0dXJuIHpjKG4pLGU9UmMobi5zaXRlKSx0Yi5pbnNlcnQoZixlKSxmLmVkZ2U9ZS5lZGdlPU1jKG4uc2l0ZSxmLnNpdGUpLFBjKG4pLHZvaWQgUGMoZSk7aWYoZSl7emMobiksemMoZSk7dmFyIGM9bi5zaXRlLHM9Y1swXSxsPWNbMV0saD10WzBdLXMsZD10WzFdLWwscD1lLnNpdGUsdj1wWzBdLXMsZz1wWzFdLWwseT0yKihoKmctZCp2KSxfPWgqaCtkKmQsYj12KnYrZypnLG09WyhnKl8tZCpiKS95K3MsKGgqYi12Kl8pL3krbF07VGMoZS5lZGdlLGMscCxtKSxmLmVkZ2U9TWMoYyx0LG51bGwsbSksZS5lZGdlPU1jKHQscCxudWxsLG0pLFBjKG4pLFBjKGUpfWVsc2UgZi5lZGdlPU1jKG4uc2l0ZSxmLnNpdGUpfX1mdW5jdGlvbiBxYyh0LG4pe3ZhciBlPXQuc2l0ZSxyPWVbMF0saT1lWzFdLG89aS1uO2lmKCFvKXJldHVybiByO3ZhciBhPXQuUDtpZighYSlyZXR1cm4tMS8wO3ZhciB1PShlPWEuc2l0ZSlbMF0sZj1lWzFdLGM9Zi1uO2lmKCFjKXJldHVybiB1O3ZhciBzPXUtcixsPTEvby0xL2MsaD1zL2M7cmV0dXJuIGw/KC1oK01hdGguc3FydChoKmgtMipsKihzKnMvKC0yKmMpLWYrYy8yK2ktby8yKSkpL2wrcjoocit1KS8yfWZ1bmN0aW9uIE9jKHQsbixlKXtyZXR1cm4odFswXS1lWzBdKSooblsxXS10WzFdKS0odFswXS1uWzBdKSooZVsxXS10WzFdKX1mdW5jdGlvbiBZYyh0LG4pe3JldHVybiBuWzFdLXRbMV18fG5bMF0tdFswXX1mdW5jdGlvbiBCYyh0LG4pe3ZhciBlLHIsaSxvPXQuc29ydChZYykucG9wKCk7Zm9yKHJiPVtdLG5iPW5ldyBBcnJheSh0Lmxlbmd0aCksdGI9bmV3IF9jLGViPW5ldyBfYzs7KWlmKGk9S18sbyYmKCFpfHxvWzFdPGkueXx8b1sxXT09PWkueSYmb1swXTxpLngpKW9bMF09PT1lJiZvWzFdPT09cnx8KFVjKG8pLGU9b1swXSxyPW9bMV0pLG89dC5wb3AoKTtlbHNle2lmKCFpKWJyZWFrO0RjKGkuYXJjKX1pZihmdW5jdGlvbigpe2Zvcih2YXIgdCxuLGUscixpPTAsbz1uYi5sZW5ndGg7aTxvOysraSlpZigodD1uYltpXSkmJihyPShuPXQuaGFsZmVkZ2VzKS5sZW5ndGgpKXt2YXIgYT1uZXcgQXJyYXkociksdT1uZXcgQXJyYXkocik7Zm9yKGU9MDtlPHI7KytlKWFbZV09ZSx1W2VdPUVjKHQscmJbbltlXV0pO2ZvcihhLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gdVtuXS11W3RdfSksZT0wO2U8cjsrK2UpdVtlXT1uW2FbZV1dO2ZvcihlPTA7ZTxyOysrZSluW2VdPXVbZV19fSgpLG4pe3ZhciBhPStuWzBdWzBdLHU9K25bMF1bMV0sZj0rblsxXVswXSxjPStuWzFdWzFdOyhmdW5jdGlvbih0LG4sZSxyKXtmb3IodmFyIGksbz1yYi5sZW5ndGg7by0tOylTYyhpPXJiW29dLHQsbixlLHIpJiZOYyhpLHQsbixlLHIpJiYoTWF0aC5hYnMoaVswXVswXS1pWzFdWzBdKT5hYnx8TWF0aC5hYnMoaVswXVsxXS1pWzFdWzFdKT5hYil8fGRlbGV0ZSByYltvXX0pKGEsdSxmLGMpLGZ1bmN0aW9uKHQsbixlLHIpe3ZhciBpLG8sYSx1LGYsYyxzLGwsaCxkLHAsdixnPW5iLmxlbmd0aCx5PSEwO2ZvcihpPTA7aTxnOysraSlpZihvPW5iW2ldKXtmb3IoYT1vLnNpdGUsdT0oZj1vLmhhbGZlZGdlcykubGVuZ3RoO3UtLTspcmJbZlt1XV18fGYuc3BsaWNlKHUsMSk7Zm9yKHU9MCxjPWYubGVuZ3RoO3U8YzspcD0oZD1DYyhvLHJiW2ZbdV1dKSlbMF0sdj1kWzFdLGw9KHM9a2MobyxyYltmWysrdSVjXV0pKVswXSxoPXNbMV0sKE1hdGguYWJzKHAtbCk+YWJ8fE1hdGguYWJzKHYtaCk+YWIpJiYoZi5zcGxpY2UodSwwLHJiLnB1c2goQWMoYSxkLE1hdGguYWJzKHAtdCk8YWImJnItdj5hYj9bdCxNYXRoLmFicyhsLXQpPGFiP2g6cl06TWF0aC5hYnModi1yKTxhYiYmZS1wPmFiP1tNYXRoLmFicyhoLXIpPGFiP2w6ZSxyXTpNYXRoLmFicyhwLWUpPGFiJiZ2LW4+YWI/W2UsTWF0aC5hYnMobC1lKTxhYj9oOm5dOk1hdGguYWJzKHYtbik8YWImJnAtdD5hYj9bTWF0aC5hYnMoaC1uKTxhYj9sOnQsbl06bnVsbCkpLTEpLCsrYyk7YyYmKHk9ITEpfWlmKHkpe3ZhciBfLGIsbSx4PTEvMDtmb3IoaT0wLHk9bnVsbDtpPGc7KytpKShvPW5iW2ldKSYmKG09KF89KGE9by5zaXRlKVswXS10KSpfKyhiPWFbMV0tbikqYik8eCYmKHg9bSx5PW8pO2lmKHkpe3ZhciB3PVt0LG5dLE09W3Qscl0sQT1bZSxyXSxUPVtlLG5dO3kuaGFsZmVkZ2VzLnB1c2gocmIucHVzaChBYyhhPXkuc2l0ZSx3LE0pKS0xLHJiLnB1c2goQWMoYSxNLEEpKS0xLHJiLnB1c2goQWMoYSxBLFQpKS0xLHJiLnB1c2goQWMoYSxULHcpKS0xKX19Zm9yKGk9MDtpPGc7KytpKShvPW5iW2ldKSYmKG8uaGFsZmVkZ2VzLmxlbmd0aHx8ZGVsZXRlIG5iW2ldKX0oYSx1LGYsYyl9dGhpcy5lZGdlcz1yYix0aGlzLmNlbGxzPW5iLHRiPWViPXJiPW5iPW51bGx9ZnVuY3Rpb24gRmModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEljKHQsbixlKXt0aGlzLms9dCx0aGlzLng9bix0aGlzLnk9ZX1mdW5jdGlvbiBqYyh0KXtyZXR1cm4gdC5fX3pvb218fGZifWZ1bmN0aW9uIEhjKCl7dC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBYYygpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIEdjKCl7cmV0dXJuIXQuZXZlbnQuYnV0dG9ufWZ1bmN0aW9uIFZjKCl7dmFyIHQsbixlPXRoaXM7cmV0dXJuIGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50Pyh0PShlPWUub3duZXJTVkdFbGVtZW50fHxlKS53aWR0aC5iYXNlVmFsLnZhbHVlLG49ZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSk6KHQ9ZS5jbGllbnRXaWR0aCxuPWUuY2xpZW50SGVpZ2h0KSxbWzAsMF0sW3Qsbl1dfWZ1bmN0aW9uICRjKCl7cmV0dXJuIHRoaXMuX196b29tfHxmYn1mdW5jdGlvbiBXYygpe3JldHVybi10LmV2ZW50LmRlbHRhWSoodC5ldmVudC5kZWx0YU1vZGU/MTIwOjEpLzUwMH1mdW5jdGlvbiBaYygpe3JldHVyblwib250b3VjaHN0YXJ0XCJpbiB0aGlzfWZ1bmN0aW9uIFFjKHQsbixlKXt2YXIgcj10LmludmVydFgoblswXVswXSktZVswXVswXSxpPXQuaW52ZXJ0WChuWzFdWzBdKS1lWzFdWzBdLG89dC5pbnZlcnRZKG5bMF1bMV0pLWVbMF1bMV0sYT10LmludmVydFkoblsxXVsxXSktZVsxXVsxXTtyZXR1cm4gdC50cmFuc2xhdGUoaT5yPyhyK2kpLzI6TWF0aC5taW4oMCxyKXx8TWF0aC5tYXgoMCxpKSxhPm8/KG8rYSkvMjpNYXRoLm1pbigwLG8pfHxNYXRoLm1heCgwLGEpKX12YXIgSmM9ZShuKSxLYz1KYy5yaWdodCx0cz1KYy5sZWZ0LG5zPUFycmF5LnByb3RvdHlwZSxlcz1ucy5zbGljZSxycz1ucy5tYXAsaXM9TWF0aC5zcXJ0KDUwKSxvcz1NYXRoLnNxcnQoMTApLGFzPU1hdGguc3FydCgyKSx1cz1BcnJheS5wcm90b3R5cGUuc2xpY2UsZnM9MSxjcz0yLHNzPTMsbHM9NCxocz0xZS02LGRzPXt2YWx1ZTpmdW5jdGlvbigpe319O1MucHJvdG90eXBlPU4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpTLG9uOmZ1bmN0aW9uKHQsbil7dmFyIGUscj10aGlzLl8saT1mdW5jdGlvbih0LG4pe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPVwiXCIscj10LmluZGV4T2YoXCIuXCIpO2lmKHI+PTAmJihlPXQuc2xpY2UocisxKSx0PXQuc2xpY2UoMCxyKSksdCYmIW4uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6ZX19KX0odCtcIlwiLHIpLG89LTEsYT1pLmxlbmd0aDt7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1uJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgY2FsbGJhY2s6IFwiK24pO2Zvcig7KytvPGE7KWlmKGU9KHQ9aVtvXSkudHlwZSlyW2VdPUUocltlXSx0Lm5hbWUsbik7ZWxzZSBpZihudWxsPT1uKWZvcihlIGluIHIpcltlXT1FKHJbZV0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChlPSh0PWlbb10pLnR5cGUpJiYoZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZSxyPTAsaT10Lmxlbmd0aDtyPGk7KytyKWlmKChlPXRbcl0pLm5hbWU9PT1uKXJldHVybiBlLnZhbHVlfShyW2VdLHQubmFtZSkpKXJldHVybiBlfX0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LG49dGhpcy5fO2Zvcih2YXIgZSBpbiBuKXRbZV09bltlXS5zbGljZSgpO3JldHVybiBuZXcgUyh0KX0sY2FsbDpmdW5jdGlvbih0LG4pe2lmKChlPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIGUscixpPW5ldyBBcnJheShlKSxvPTA7bzxlOysrbylpW29dPWFyZ3VtZW50c1tvKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIit0KTtmb3Iobz0wLGU9KHI9dGhpcy5fW3RdKS5sZW5ndGg7bzxlOysrbylyW29dLnZhbHVlLmFwcGx5KG4saSl9LGFwcGx5OmZ1bmN0aW9uKHQsbixlKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIrdCk7Zm9yKHZhciByPXRoaXMuX1t0XSxpPTAsbz1yLmxlbmd0aDtpPG87KytpKXJbaV0udmFsdWUuYXBwbHkobixlKX19O3ZhciBwcz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIix2cz17c3ZnOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIix4aHRtbDpwcyx4bGluazpcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIix4bWw6XCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCJ9LGdzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXModCl9fTtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQpe3ZhciB5cz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7aWYoIXlzLm1hdGNoZXMpe3ZhciBfcz15cy53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHlzLm1zTWF0Y2hlc1NlbGVjdG9yfHx5cy5tb3pNYXRjaGVzU2VsZWN0b3J8fHlzLm9NYXRjaGVzU2VsZWN0b3I7Z3M9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIF9zLmNhbGwodGhpcyx0KX19fX12YXIgYnM9Z3M7VS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlUsYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCxuKX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IodCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHQpfX07dmFyIG1zPVwiJFwiO0gucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsdGhpcy5fbmFtZXMuam9pbihcIiBcIikpKX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX25hbWVzLmluZGV4T2YodCk7bj49MCYmKHRoaXMuX25hbWVzLnNwbGljZShuLDEpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKFwiY2xhc3NcIix0aGlzLl9uYW1lcy5qb2luKFwiIFwiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciB4cz17fTtpZih0LmV2ZW50PW51bGwsXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50KXtcIm9ubW91c2VlbnRlclwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHwoeHM9e21vdXNlZW50ZXI6XCJtb3VzZW92ZXJcIixtb3VzZWxlYXZlOlwibW91c2VvdXRcIn0pfXZhciB3cz1bbnVsbF07dXQucHJvdG90eXBlPWZ0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6dXQsc2VsZWN0OmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXoodCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYSx1PW5baV0sZj11Lmxlbmd0aCxjPXJbaV09bmV3IEFycmF5KGYpLHM9MDtzPGY7KytzKShvPXVbc10pJiYoYT10LmNhbGwobyxvLl9fZGF0YV9fLHMsdSkpJiYoXCJfX2RhdGFfX1wiaW4gbyYmKGEuX19kYXRhX189by5fX2RhdGFfXyksY1tzXT1hKTtyZXR1cm4gbmV3IHV0KHIsdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1MKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1bXSxpPVtdLG89MDtvPGU7KytvKWZvcih2YXIgYSx1PW5bb10sZj11Lmxlbmd0aCxjPTA7YzxmOysrYykoYT11W2NdKSYmKHIucHVzaCh0LmNhbGwoYSxhLl9fZGF0YV9fLGMsdSkpLGkucHVzaChhKSk7cmV0dXJuIG5ldyB1dChyLGkpfSxmaWx0ZXI6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9YnModCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYT1uW2ldLHU9YS5sZW5ndGgsZj1yW2ldPVtdLGM9MDtjPHU7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmYucHVzaChvKTtyZXR1cm4gbmV3IHV0KHIsdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24odCxuKXtpZighdClyZXR1cm4gZD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGM9LTEsdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe2RbKytjXT10fSksZDt2YXIgZT1uP086cSxyPXRoaXMuX3BhcmVudHMsaT10aGlzLl9ncm91cHM7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSh0KSk7Zm9yKHZhciBvPWkubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHU9bmV3IEFycmF5KG8pLGY9bmV3IEFycmF5KG8pLGM9MDtjPG87KytjKXt2YXIgcz1yW2NdLGw9aVtjXSxoPWwubGVuZ3RoLGQ9dC5jYWxsKHMscyYmcy5fX2RhdGFfXyxjLHIpLHA9ZC5sZW5ndGgsdj11W2NdPW5ldyBBcnJheShwKSxnPWFbY109bmV3IEFycmF5KHApO2UocyxsLHYsZyxmW2NdPW5ldyBBcnJheShoKSxkLG4pO2Zvcih2YXIgeSxfLGI9MCxtPTA7YjxwOysrYilpZih5PXZbYl0pe2ZvcihiPj1tJiYobT1iKzEpOyEoXz1nW21dKSYmKyttPHA7KTt5Ll9uZXh0PV98fG51bGx9fXJldHVybiBhPW5ldyB1dChhLHIpLGEuX2VudGVyPXUsYS5fZXhpdD1mLGF9LGVudGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB1dCh0aGlzLl9lbnRlcnx8dGhpcy5fZ3JvdXBzLm1hcChEKSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbigpe3JldHVybiBuZXcgdXQodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChEKSx0aGlzLl9wYXJlbnRzKX0sbWVyZ2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPXQuX2dyb3VwcyxyPW4ubGVuZ3RoLGk9ZS5sZW5ndGgsbz1NYXRoLm1pbihyLGkpLGE9bmV3IEFycmF5KHIpLHU9MDt1PG87Kyt1KWZvcih2YXIgZixjPW5bdV0scz1lW3VdLGw9Yy5sZW5ndGgsaD1hW3VdPW5ldyBBcnJheShsKSxkPTA7ZDxsOysrZCkoZj1jW2RdfHxzW2RdKSYmKGhbZF09Zik7Zm9yKDt1PHI7Kyt1KWFbdV09blt1XTtyZXR1cm4gbmV3IHV0KGEsdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxuPS0xLGU9dC5sZW5ndGg7KytuPGU7KWZvcih2YXIgcixpPXRbbl0sbz1pLmxlbmd0aC0xLGE9aVtvXTstLW8+PTA7KShyPWlbb10pJiYoYSYmYSE9PXIubmV4dFNpYmxpbmcmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocixhKSxhPXIpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4obixlKXtyZXR1cm4gbiYmZT90KG4uX19kYXRhX18sZS5fX2RhdGFfXyk6IW4tIWV9dHx8KHQ9WSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxyPWUubGVuZ3RoLGk9bmV3IEFycmF5KHIpLG89MDtvPHI7KytvKXtmb3IodmFyIGEsdT1lW29dLGY9dS5sZW5ndGgsYz1pW29dPW5ldyBBcnJheShmKSxzPTA7czxmOysrcykoYT11W3NdKSYmKGNbc109YSk7Yy5zb3J0KG4pfXJldHVybiBuZXcgdXQoaSx0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyx0LmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfSxub2RlczpmdW5jdGlvbigpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksbj0tMTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dFsrK25dPXRoaXN9KSx0fSxub2RlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxuPTAsZT10Lmxlbmd0aDtuPGU7KytuKWZvcih2YXIgcj10W25dLGk9MCxvPXIubGVuZ3RoO2k8bzsrK2kpe3ZhciBhPXJbaV07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeysrdH0pLHR9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT0wLHI9bi5sZW5ndGg7ZTxyOysrZSlmb3IodmFyIGksbz1uW2VdLGE9MCx1PW8ubGVuZ3RoO2E8dTsrK2EpKGk9b1thXSkmJnQuY2FsbChpLGkuX19kYXRhX18sYSxvKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbih0LG4pe3ZhciBlPWsodCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgcj10aGlzLm5vZGUoKTtyZXR1cm4gZS5sb2NhbD9yLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCk6ci5nZXRBdHRyaWJ1dGUoZSl9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09bj9lLmxvY2FsP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX06XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9lLmxvY2FsP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZT90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZSl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19OmUubG9jYWw/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19KShlLG4pKX0sc3R5bGU6ZnVuY3Rpb24odCxuLGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1uP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbixlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1yP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LHIsZSl9fTpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4sZSl9fSkodCxuLG51bGw9PWU/XCJcIjplKSk6Rih0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19OlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09ZX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1ufX0pKHQsbikpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uKHQsbil7dmFyIGU9SSh0K1wiXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciByPWoodGhpcy5ub2RlKCkpLGk9LTEsbz1lLmxlbmd0aDsrK2k8bzspaWYoIXIuY29udGFpbnMoZVtpXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpeyhuLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9YOkcpKHRoaXMsdCl9fTpuP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe1godGhpcyx0KX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe0codGhpcyx0KX19KShlLG4pKX0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9WOihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09bj9cIlwiOm59fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fSkodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10PyQ6KFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09bj9cIlwiOm59fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX0pKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChXKX0sbG93ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKFopfSxhcHBlbmQ6ZnVuY3Rpb24odCl7dmFyIG49XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkModCk7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSl9LGluc2VydDpmdW5jdGlvbih0LG4pe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpDKHQpLHI9bnVsbD09bj9ROlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjp6KG4pO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KX0scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChKKX0sY2xvbmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/dHQ6Syl9LGRhdHVtOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoXCJfX2RhdGFfX1wiLHQpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBuPVwiXCIsZT10LmluZGV4T2YoXCIuXCIpO3JldHVybiBlPj0wJiYobj10LnNsaWNlKGUrMSksdD10LnNsaWNlKDAsZSkpLHt0eXBlOnQsbmFtZTpufX0pfSh0K1wiXCIpLGE9by5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtmb3IodT1uP2l0OnJ0LG51bGw9PWUmJihlPSExKSxyPTA7cjxhOysrcil0aGlzLmVhY2godShvW3JdLG4sZSkpO3JldHVybiB0aGlzfXZhciB1PXRoaXMubm9kZSgpLl9fb247aWYodSlmb3IodmFyIGYsYz0wLHM9dS5sZW5ndGg7YzxzOysrYylmb3Iocj0wLGY9dVtjXTtyPGE7KytyKWlmKChpPW9bcl0pLnR5cGU9PT1mLnR5cGUmJmkubmFtZT09PWYubmFtZSlyZXR1cm4gZi52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5lYWNoKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGF0KHRoaXMsdCxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhdCh0aGlzLHQsbil9fSkodCxuKSl9fTt2YXIgTXM9MDtsdC5wcm90b3R5cGU9c3QucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpsdCxnZXQ6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMuXzshKG4gaW4gdCk7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdFtuXX0sc2V0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbdGhpcy5fXT1ufSxyZW1vdmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuXyBpbiB0JiZkZWxldGUgdFt0aGlzLl9dfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fSx4dC5wcm90b3R5cGUub249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl8ub24uYXBwbHkodGhpcy5fLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT10aGlzLl8/dGhpczp0fTt2YXIgQXM9XCJcXFxccyooWystXT9cXFxcZCspXFxcXHMqXCIsVHM9XCJcXFxccyooWystXT9cXFxcZCpcXFxcLj9cXFxcZCsoPzpbZUVdWystXT9cXFxcZCspPylcXFxccypcIixOcz1cIlxcXFxzKihbKy1dP1xcXFxkKlxcXFwuP1xcXFxkKyg/OltlRV1bKy1dP1xcXFxkKyk/KSVcXFxccypcIixTcz0vXiMoWzAtOWEtZl17M30pJC8sRXM9L14jKFswLTlhLWZdezZ9KSQvLGtzPW5ldyBSZWdFeHAoXCJecmdiXFxcXChcIitbQXMsQXMsQXNdK1wiXFxcXCkkXCIpLENzPW5ldyBSZWdFeHAoXCJecmdiXFxcXChcIitbTnMsTnMsTnNdK1wiXFxcXCkkXCIpLFBzPW5ldyBSZWdFeHAoXCJecmdiYVxcXFwoXCIrW0FzLEFzLEFzLFRzXStcIlxcXFwpJFwiKSx6cz1uZXcgUmVnRXhwKFwiXnJnYmFcXFxcKFwiK1tOcyxOcyxOcyxUc10rXCJcXFxcKSRcIiksUnM9bmV3IFJlZ0V4cChcIl5oc2xcXFxcKFwiK1tUcyxOcyxOc10rXCJcXFxcKSRcIiksTHM9bmV3IFJlZ0V4cChcIl5oc2xhXFxcXChcIitbVHMsTnMsTnMsVHNdK1wiXFxcXCkkXCIpLERzPXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O050KEV0LGt0LHtkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmhleCgpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpK1wiXCJ9fSksTnQoTHQsUnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBMdCh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgTHQodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIDA8PXRoaXMuciYmdGhpcy5yPD0yNTUmJjA8PXRoaXMuZyYmdGhpcy5nPD0yNTUmJjA8PXRoaXMuYiYmdGhpcy5iPD0yNTUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6ZnVuY3Rpb24oKXtyZXR1cm5cIiNcIitEdCh0aGlzLnIpK0R0KHRoaXMuZykrRHQodGhpcy5iKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpP1wicmdiKFwiOlwicmdiYShcIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrXCIsIFwiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpK1wiLCBcIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoMT09PXQ/XCIpXCI6XCIsIFwiK3QrXCIpXCIpfX0pKSxOdChPdCxxdCxTdChFdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8xLy43Ok1hdGgucG93KDEvLjcsdCksbmV3IE90KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IE90KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxuPWlzTmFOKHQpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLGU9dGhpcy5sLHI9ZSsoZTwuNT9lOjEtZSkqbixpPTIqZS1yO3JldHVybiBuZXcgTHQoWXQodD49MjQwP3QtMjQwOnQrMTIwLGksciksWXQodCxpLHIpLFl0KHQ8MTIwP3QrMjQwOnQtMTIwLGksciksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9fSkpO3ZhciBVcz1NYXRoLlBJLzE4MCxxcz0xODAvTWF0aC5QSSxPcz0uOTY0MjIsWXM9MSxCcz0uODI1MjEsRnM9NC8yOSxJcz02LzI5LGpzPTMqSXMqSXMsSHM9SXMqSXMqSXM7TnQoSXQsRnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSXQodGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBJdCh0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmwrMTYpLzExNixuPWlzTmFOKHRoaXMuYSk/dDp0K3RoaXMuYS81MDAsZT1pc05hTih0aGlzLmIpP3Q6dC10aGlzLmIvMjAwO3JldHVybiBuPU9zKkh0KG4pLHQ9WXMqSHQodCksZT1CcypIdChlKSxuZXcgTHQoWHQoMy4xMzM4NTYxKm4tMS42MTY4NjY3KnQtLjQ5MDYxNDYqZSksWHQoLS45Nzg3Njg0Km4rMS45MTYxNDE1KnQrLjAzMzQ1NCplKSxYdCguMDcxOTQ1MypuLS4yMjg5OTE0KnQrMS40MDUyNDI3KmUpLHRoaXMub3BhY2l0eSl9fSkpLE50KFd0LCR0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFd0KHRoaXMuaCx0aGlzLmMsdGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV3QodGhpcy5oLHRoaXMuYyx0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gQnQodGhpcykucmdiKCl9fSkpO3ZhciBYcz0tLjI5MjI3LEdzPS0uOTA2NDksVnM9MS45NzI5NCwkcz1WcypHcyxXcz0xLjc4Mjc3KlZzLFpzPTEuNzgyNzcqWHMtIC0uMTQ4NjEqR3M7TnQoUXQsWnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBRdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyBRdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqVXMsbj0rdGhpcy5sLGU9aXNOYU4odGhpcy5zKT8wOnRoaXMucypuKigxLW4pLHI9TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KTtyZXR1cm4gbmV3IEx0KDI1NSoobitlKigtLjE0ODYxKnIrMS43ODI3NyppKSksMjU1KihuK2UqKFhzKnIrR3MqaSkpLDI1NSoobitlKihWcypyKSksdGhpcy5vcGFjaXR5KX19KSk7dmFyIFFzLEpzLEtzLHRsLG5sLGVsLHJsPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPXIoKHQ9UnQodCkpLnIsKG49UnQobikpLnIpLGk9cih0Lmcsbi5nKSxvPXIodC5iLG4uYiksYT1hbih0Lm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQucj1lKG4pLHQuZz1pKG4pLHQuYj1vKG4pLHQub3BhY2l0eT1hKG4pLHQrXCJcIn19dmFyIHI9b24obik7cmV0dXJuIGUuZ2FtbWE9dCxlfSgxKSxpbD11bihLdCksb2w9dW4odG4pLGFsPS9bLStdPyg/OlxcZCtcXC4/XFxkKnxcXC4/XFxkKykoPzpbZUVdWy0rXT9cXGQrKT8vZyx1bD1uZXcgUmVnRXhwKGFsLnNvdXJjZSxcImdcIiksZmw9MTgwL01hdGguUEksY2w9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX0sc2w9Z24oZnVuY3Rpb24odCl7cmV0dXJuXCJub25lXCI9PT10P2NsOihRc3x8KFFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJESVZcIiksSnM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEtzPWRvY3VtZW50LmRlZmF1bHRWaWV3KSxRcy5zdHlsZS50cmFuc2Zvcm09dCx0PUtzLmdldENvbXB1dGVkU3R5bGUoSnMuYXBwZW5kQ2hpbGQoUXMpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoXCJ0cmFuc2Zvcm1cIiksSnMucmVtb3ZlQ2hpbGQoUXMpLHQ9dC5zbGljZSg3LC0xKS5zcGxpdChcIixcIiksdm4oK3RbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0sXCJweCwgXCIsXCJweClcIixcImRlZylcIiksbGw9Z24oZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/Y2w6KHRsfHwodGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImdcIikpLHRsLnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLHQpLCh0PXRsLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpPyh0PXQubWF0cml4LHZuKHQuYSx0LmIsdC5jLHQuZCx0LmUsdC5mKSk6Y2wpfSxcIiwgXCIsXCIpXCIsXCIpXCIpLGhsPU1hdGguU1FSVDIsZGw9MixwbD00LHZsPTFlLTEyLGdsPWJuKHJuKSx5bD1ibihhbiksX2w9bW4ocm4pLGJsPW1uKGFuKSxtbD14bihybikseGw9eG4oYW4pLHdsPTAsTWw9MCxBbD0wLFRsPTFlMyxObD0wLFNsPTAsRWw9MCxrbD1cIm9iamVjdFwiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLENsPVwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07QW4ucHJvdG90eXBlPVRuLnByb3RvdHlwZT17Y29uc3RydWN0b3I6QW4scmVzdGFydDpmdW5jdGlvbih0LG4sZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb25cIik7ZT0obnVsbD09ZT93bigpOitlKSsobnVsbD09bj8wOituKSx0aGlzLl9uZXh0fHxlbD09PXRoaXN8fChlbD9lbC5fbmV4dD10aGlzOm5sPXRoaXMsZWw9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9ZSxrbigpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCxrbigpKX19O3ZhciBQbD1OKFwic3RhcnRcIixcImVuZFwiLFwiaW50ZXJydXB0XCIpLHpsPVtdLFJsPTAsTGw9MSxEbD0yLFVsPTMscWw9NCxPbD01LFlsPTYsQmw9ZnQucHJvdG90eXBlLmNvbnN0cnVjdG9yLEZsPTAsSWw9ZnQucHJvdG90eXBlO09uLnByb3RvdHlwZT1Zbi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk9uLHNlbGVjdDpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9uYW1lLGU9dGhpcy5faWQ7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9eih0KSk7Zm9yKHZhciByPXRoaXMuX2dyb3VwcyxpPXIubGVuZ3RoLG89bmV3IEFycmF5KGkpLGE9MDthPGk7KythKWZvcih2YXIgdSxmLGM9clthXSxzPWMubGVuZ3RoLGw9b1thXT1uZXcgQXJyYXkocyksaD0wO2g8czsrK2gpKHU9Y1toXSkmJihmPXQuY2FsbCh1LHUuX19kYXRhX18saCxjKSkmJihcIl9fZGF0YV9fXCJpbiB1JiYoZi5fX2RhdGFfXz11Ll9fZGF0YV9fKSxsW2hdPWYsUG4obFtoXSxuLGUsaCxsLExuKHUsZSkpKTtyZXR1cm4gbmV3IE9uKG8sdGhpcy5fcGFyZW50cyxuLGUpfSxzZWxlY3RBbGw6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5fbmFtZSxlPXRoaXMuX2lkO1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PUwodCkpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPVtdLGE9W10sdT0wO3U8aTsrK3UpZm9yKHZhciBmLGM9clt1XSxzPWMubGVuZ3RoLGw9MDtsPHM7KytsKWlmKGY9Y1tsXSl7Zm9yKHZhciBoLGQ9dC5jYWxsKGYsZi5fX2RhdGFfXyxsLGMpLHA9TG4oZixlKSx2PTAsZz1kLmxlbmd0aDt2PGc7Kyt2KShoPWRbdl0pJiZQbihoLG4sZSx2LGQscCk7by5wdXNoKGQpLGEucHVzaChmKX1yZXR1cm4gbmV3IE9uKG8sYSxuLGUpfSxmaWx0ZXI6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9YnModCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYT1uW2ldLHU9YS5sZW5ndGgsZj1yW2ldPVtdLGM9MDtjPHU7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmYucHVzaChvKTtyZXR1cm4gbmV3IE9uKHIsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVuY3Rpb24odCl7aWYodC5faWQhPT10aGlzLl9pZCl0aHJvdyBuZXcgRXJyb3I7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPXQuX2dyb3VwcyxyPW4ubGVuZ3RoLGk9ZS5sZW5ndGgsbz1NYXRoLm1pbihyLGkpLGE9bmV3IEFycmF5KHIpLHU9MDt1PG87Kyt1KWZvcih2YXIgZixjPW5bdV0scz1lW3VdLGw9Yy5sZW5ndGgsaD1hW3VdPW5ldyBBcnJheShsKSxkPTA7ZDxsOysrZCkoZj1jW2RdfHxzW2RdKSYmKGhbZF09Zik7Zm9yKDt1PHI7Kyt1KWFbdV09blt1XTtyZXR1cm4gbmV3IE9uKGEsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCbCh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxuPXRoaXMuX2lkLGU9Qm4oKSxyPXRoaXMuX2dyb3VwcyxpPXIubGVuZ3RoLG89MDtvPGk7KytvKWZvcih2YXIgYSx1PXJbb10sZj11Lmxlbmd0aCxjPTA7YzxmOysrYylpZihhPXVbY10pe3ZhciBzPUxuKGEsbik7UG4oYSx0LGUsYyx1LHt0aW1lOnMudGltZStzLmRlbGF5K3MuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjpzLmR1cmF0aW9uLGVhc2U6cy5lYXNlfSl9cmV0dXJuIG5ldyBPbihyLHRoaXMuX3BhcmVudHMsdCxlKX0sY2FsbDpJbC5jYWxsLG5vZGVzOklsLm5vZGVzLG5vZGU6SWwubm9kZSxzaXplOklsLnNpemUsZW1wdHk6SWwuZW1wdHksZWFjaDpJbC5lYWNoLG9uOmZ1bmN0aW9uKHQsbil7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9Mbih0aGlzLm5vZGUoKSxlKS5vbi5vbih0KTp0aGlzLmVhY2goZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbz1mdW5jdGlvbih0KXtyZXR1cm4odCtcIlwiKS50cmltKCkuc3BsaXQoL158XFxzKy8pLmV2ZXJ5KGZ1bmN0aW9uKHQpe3ZhciBuPXQuaW5kZXhPZihcIi5cIik7cmV0dXJuIG4+PTAmJih0PXQuc2xpY2UoMCxuKSksIXR8fFwic3RhcnRcIj09PXR9KX0obik/em46Um47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLHQpLHU9YS5vbjt1IT09ciYmKGk9KHI9dSkuY29weSgpKS5vbihuLGUpLGEub249aX19KGUsdCxuKSl9LGF0dHI6ZnVuY3Rpb24odCxuKXt2YXIgZT1rKHQpLHI9XCJ0cmFuc2Zvcm1cIj09PWU/bGw6cW47cmV0dXJuIHRoaXMuYXR0clR3ZWVuKHQsXCJmdW5jdGlvblwiPT10eXBlb2Ygbj8oZS5sb2NhbD9mdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLHU9ZSh0aGlzKTtpZihudWxsIT11KXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKSk9PT11P251bGw6YT09PXImJnU9PT1pP286bz1uKHI9YSxpPXUpO3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEsdT1lKHRoaXMpO2lmKG51bGwhPXUpcmV0dXJuKGE9dGhpcy5nZXRBdHRyaWJ1dGUodCkpPT09dT9udWxsOmE9PT1yJiZ1PT09aT9vOm89bihyPWEsaT11KTt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19KShlLHIsVW4odGhpcyxcImF0dHIuXCIrdCxuKSk6bnVsbD09bj8oZS5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19KShlKTooZS5sb2NhbD9mdW5jdGlvbih0LG4sZSl7dmFyIHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX06ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89dGhpcy5nZXRBdHRyaWJ1dGUodCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX0pKGUscixuK1wiXCIpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uKHQsbil7dmFyIGU9XCJhdHRyLlwiK3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihlPXRoaXMudHdlZW4oZSkpJiZlLl92YWx1ZTtpZihudWxsPT1uKXJldHVybiB0aGlzLnR3ZWVuKGUsbnVsbCk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7dmFyIHI9ayh0KTtyZXR1cm4gdGhpcy50d2VlbihlLChyLmxvY2FsP2Z1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlPXRoaXMscj1uLmFwcGx5KGUsYXJndW1lbnRzKTtyZXR1cm4gciYmZnVuY3Rpb24obil7ZS5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwscihuKSl9fXJldHVybiBlLl92YWx1ZT1uLGV9OmZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlPXRoaXMscj1uLmFwcGx5KGUsYXJndW1lbnRzKTtyZXR1cm4gciYmZnVuY3Rpb24obil7ZS5zZXRBdHRyaWJ1dGUodCxyKG4pKX19cmV0dXJuIGUuX3ZhbHVlPW4sZX0pKHIsbikpfSxzdHlsZTpmdW5jdGlvbih0LG4sZSl7dmFyIHI9XCJ0cmFuc2Zvcm1cIj09KHQrPVwiXCIpP3NsOnFuO3JldHVybiBudWxsPT1uP3RoaXMuc3R5bGVUd2Vlbih0LGZ1bmN0aW9uKHQsbil7dmFyIGUscixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUYodGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLEYodGhpcyx0KSk7cmV0dXJuIG89PT1hP251bGw6bz09PWUmJmE9PT1yP2k6aT1uKGU9byxyPWEpfX0odCxyKSkub24oXCJlbmQuc3R5bGUuXCIrdCxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX0odCkpOnRoaXMuc3R5bGVUd2Vlbih0LFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1GKHRoaXMsdCksdT1lKHRoaXMpO3JldHVybiBudWxsPT11JiYodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSx1PUYodGhpcyx0KSksYT09PXU/bnVsbDphPT09ciYmdT09PWk/bzpvPW4ocj1hLGk9dSl9fSh0LHIsVW4odGhpcyxcInN0eWxlLlwiK3QsbikpOmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUYodGhpcyx0KTtyZXR1cm4gbz09PWU/bnVsbDpvPT09cj9pOmk9bihyPW8sZSl9fSh0LHIsbitcIlwiKSxlKX0sc3R5bGVUd2VlbjpmdW5jdGlvbih0LG4sZSl7dmFyIHI9XCJzdHlsZS5cIisodCs9XCJcIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihyPXRoaXMudHdlZW4ocikpJiZyLl92YWx1ZTtpZihudWxsPT1uKXJldHVybiB0aGlzLnR3ZWVuKHIsbnVsbCk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4ocixmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcigpe3ZhciByPXRoaXMsaT1uLmFwcGx5KHIsYXJndW1lbnRzKTtyZXR1cm4gaSYmZnVuY3Rpb24obil7ci5zdHlsZS5zZXRQcm9wZXJ0eSh0LGkobiksZSl9fXJldHVybiByLl92YWx1ZT1uLHJ9KHQsbixudWxsPT1lP1wiXCI6ZSkpfSx0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnR3ZWVuKFwidGV4dFwiLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dCh0aGlzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PW4/XCJcIjpufX0oVW4odGhpcyxcInRleHRcIix0KSk6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX0obnVsbD09dD9cIlwiOnQrXCJcIikpfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbihcImVuZC5yZW1vdmVcIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBlIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtlIT09dClyZXR1cm47biYmbi5yZW1vdmVDaGlsZCh0aGlzKX19KHRoaXMuX2lkKSl9LHR3ZWVuOmZ1bmN0aW9uKHQsbil7dmFyIGU9dGhpcy5faWQ7aWYodCs9XCJcIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgcixpPUxuKHRoaXMubm9kZSgpLGUpLnR3ZWVuLG89MCxhPWkubGVuZ3RoO288YTsrK28paWYoKHI9aVtvXSkubmFtZT09PXQpcmV0dXJuIHIudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0LG4pe3ZhciBlLHI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9Um4odGhpcyx0KSxvPWkudHdlZW47aWYobyE9PWUpZm9yKHZhciBhPTAsdT0ocj1lPW8pLmxlbmd0aDthPHU7KythKWlmKHJbYV0ubmFtZT09PW4peyhyPXIuc2xpY2UoKSkuc3BsaWNlKGEsMSk7YnJlYWt9aS50d2Vlbj1yfX06ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89Um4odGhpcyx0KSxhPW8udHdlZW47aWYoYSE9PXIpe2k9KHI9YSkuc2xpY2UoKTtmb3IodmFyIHU9e25hbWU6bix2YWx1ZTplfSxmPTAsYz1pLmxlbmd0aDtmPGM7KytmKWlmKGlbZl0ubmFtZT09PW4pe2lbZl09dTticmVha31mPT09YyYmaS5wdXNoKHUpfW8udHdlZW49aX19KShlLHQsbikpfSxkZWxheTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt6bih0aGlzLHQpLmRlbGF5PStuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIG49K24sZnVuY3Rpb24oKXt6bih0aGlzLHQpLmRlbGF5PW59fSkobix0KSk6TG4odGhpcy5ub2RlKCksbikuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2YgdD9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe1JuKHRoaXMsdCkuZHVyYXRpb249K24uYXBwbHkodGhpcyxhcmd1bWVudHMpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gbj0rbixmdW5jdGlvbigpe1JuKHRoaXMsdCkuZHVyYXRpb249bn19KShuLHQpKTpMbih0aGlzLm5vZGUoKSxuKS5kdXJhdGlvbn0sZWFzZTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24odCxuKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtSbih0aGlzLHQpLmVhc2U9bn19KG4sdCkpOkxuKHRoaXMubm9kZSgpLG4pLmVhc2V9fTt2YXIgamw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBNYXRoLnBvdyh0LG4pfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxIbD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIDEtTWF0aC5wb3coMS10LG4pfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxYbD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuKCh0Kj0yKTw9MT9NYXRoLnBvdyh0LG4pOjItTWF0aC5wb3coMi10LG4pKS8yfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxHbD1NYXRoLlBJLFZsPUdsLzIsJGw9NC8xMSxXbD02LzExLFpsPTgvMTEsUWw9Ljc1LEpsPTkvMTEsS2w9MTAvMTEsdGg9LjkzNzUsbmg9MjEvMjIsZWg9NjMvNjQscmg9MS8kbC8kbCxpaD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQqdCooKG4rMSkqdC1uKX1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLG9oPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4tLXQqdCooKG4rMSkqdCtuKSsxfXJldHVybiBuPStuLGUub3ZlcnNob290PXQsZX0oMS43MDE1OCksYWg9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybigodCo9Mik8MT90KnQqKChuKzEpKnQtbik6KHQtPTIpKnQqKChuKzEpKnQrbikrMikvMn1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLHVoPTIqTWF0aC5QSSxmaD1mdW5jdGlvbiB0KG4sZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gbipNYXRoLnBvdygyLDEwKi0tdCkqTWF0aC5zaW4oKGktdCkvZSl9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLGNoPWZ1bmN0aW9uIHQobixlKXtmdW5jdGlvbiByKHQpe3JldHVybiAxLW4qTWF0aC5wb3coMiwtMTAqKHQ9K3QpKSpNYXRoLnNpbigodCtpKS9lKX12YXIgaT1NYXRoLmFzaW4oMS8obj1NYXRoLm1heCgxLG4pKSkqKGUvPXVoKTtyZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24obil7cmV0dXJuIHQobixlKnVoKX0sci5wZXJpb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHQobixlKX0scn0oMSwuMyksc2g9ZnVuY3Rpb24gdChuLGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuKCh0PTIqdC0xKTwwP24qTWF0aC5wb3coMiwxMCp0KSpNYXRoLnNpbigoaS10KS9lKToyLW4qTWF0aC5wb3coMiwtMTAqdCkqTWF0aC5zaW4oKGkrdCkvZSkpLzJ9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLGxoPXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpJbn07ZnQucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7RG4odGhpcyx0KX0pfSxmdC5wcm90b3R5cGUudHJhbnNpdGlvbj1mdW5jdGlvbih0KXt2YXIgbixlO3QgaW5zdGFuY2VvZiBPbj8obj10Ll9pZCx0PXQuX25hbWUpOihuPUJuKCksKGU9bGgpLnRpbWU9d24oKSx0PW51bGw9PXQ/bnVsbDp0K1wiXCIpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPTA7bzxpOysrbylmb3IodmFyIGEsdT1yW29dLGY9dS5sZW5ndGgsYz0wO2M8ZjsrK2MpKGE9dVtjXSkmJlBuKGEsdCxuLGMsdSxlfHxWbihhLG4pKTtyZXR1cm4gbmV3IE9uKHIsdGhpcy5fcGFyZW50cyx0LG4pfTt2YXIgaGg9W251bGxdLGRoPXtuYW1lOlwiZHJhZ1wifSxwaD17bmFtZTpcInNwYWNlXCJ9LHZoPXtuYW1lOlwiaGFuZGxlXCJ9LGdoPXtuYW1lOlwiY2VudGVyXCJ9LHloPXtuYW1lOlwieFwiLGhhbmRsZXM6W1wiZVwiLFwid1wiXS5tYXAoUW4pLGlucHV0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQmJltbdFswXSxuWzBdWzFdXSxbdFsxXSxuWzFdWzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMF0sdFsxXVswXV19fSxfaD17bmFtZTpcInlcIixoYW5kbGVzOltcIm5cIixcInNcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0LG4pe3JldHVybiB0JiZbW25bMF1bMF0sdFswXV0sW25bMV1bMF0sdFsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlt0WzBdWzFdLHRbMV1bMV1dfX0sYmg9e25hbWU6XCJ4eVwiLGhhbmRsZXM6W1wiblwiLFwiZVwiLFwic1wiLFwid1wiLFwibndcIixcIm5lXCIsXCJzZVwiLFwic3dcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdH0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sbWg9e292ZXJsYXk6XCJjcm9zc2hhaXJcIixzZWxlY3Rpb246XCJtb3ZlXCIsbjpcIm5zLXJlc2l6ZVwiLGU6XCJldy1yZXNpemVcIixzOlwibnMtcmVzaXplXCIsdzpcImV3LXJlc2l6ZVwiLG53OlwibndzZS1yZXNpemVcIixuZTpcIm5lc3ctcmVzaXplXCIsc2U6XCJud3NlLXJlc2l6ZVwiLHN3OlwibmVzdy1yZXNpemVcIn0seGg9e2U6XCJ3XCIsdzpcImVcIixudzpcIm5lXCIsbmU6XCJud1wiLHNlOlwic3dcIixzdzpcInNlXCJ9LHdoPXtuOlwic1wiLHM6XCJuXCIsbnc6XCJzd1wiLG5lOlwic2VcIixzZTpcIm5lXCIsc3c6XCJud1wifSxNaD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46bnVsbCxlOjEsczpudWxsLHc6LTEsbnc6LTEsbmU6MSxzZToxLHN3Oi0xfSxBaD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46LTEsZTpudWxsLHM6MSx3Om51bGwsbnc6LTEsbmU6LTEsc2U6MSxzdzoxfSxUaD1NYXRoLmNvcyxOaD1NYXRoLnNpbixTaD1NYXRoLlBJLEVoPVNoLzIsa2g9MipTaCxDaD1NYXRoLm1heCxQaD1BcnJheS5wcm90b3R5cGUuc2xpY2Usemg9TWF0aC5QSSxSaD0yKnpoLExoPVJoLTFlLTY7aWUucHJvdG90eXBlPW9lLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aWUsbW92ZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fKz1cIk1cIisodGhpcy5feDA9dGhpcy5feDE9K3QpK1wiLFwiKyh0aGlzLl95MD10aGlzLl95MT0rbil9LGNsb3NlUGF0aDpmdW5jdGlvbigpe251bGwhPT10aGlzLl94MSYmKHRoaXMuX3gxPXRoaXMuX3gwLHRoaXMuX3kxPXRoaXMuX3kwLHRoaXMuXys9XCJaXCIpfSxsaW5lVG86ZnVuY3Rpb24odCxuKXt0aGlzLl8rPVwiTFwiKyh0aGlzLl94MT0rdCkrXCIsXCIrKHRoaXMuX3kxPStuKX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyKXt0aGlzLl8rPVwiUVwiKyArdCtcIixcIisgK24rXCIsXCIrKHRoaXMuX3gxPStlKStcIixcIisodGhpcy5feTE9K3IpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsbixlLHIsaSxvKXt0aGlzLl8rPVwiQ1wiKyArdCtcIixcIisgK24rXCIsXCIrICtlK1wiLFwiKyArcitcIixcIisodGhpcy5feDE9K2kpK1wiLFwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKHQsbixlLHIsaSl7dD0rdCxuPStuLGU9K2Uscj0rcixpPStpO3ZhciBvPXRoaXMuX3gxLGE9dGhpcy5feTEsdT1lLXQsZj1yLW4sYz1vLXQscz1hLW4sbD1jKmMrcypzO2lmKGk8MCl0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiK2kpO2lmKG51bGw9PT10aGlzLl94MSl0aGlzLl8rPVwiTVwiKyh0aGlzLl94MT10KStcIixcIisodGhpcy5feTE9bik7ZWxzZSBpZihsPjFlLTYpaWYoTWF0aC5hYnMocyp1LWYqYyk+MWUtNiYmaSl7dmFyIGg9ZS1vLGQ9ci1hLHA9dSp1K2YqZix2PWgqaCtkKmQsZz1NYXRoLnNxcnQocCkseT1NYXRoLnNxcnQobCksXz1pKk1hdGgudGFuKCh6aC1NYXRoLmFjb3MoKHArbC12KS8oMipnKnkpKSkvMiksYj1fL3ksbT1fL2c7TWF0aC5hYnMoYi0xKT4xZS02JiYodGhpcy5fKz1cIkxcIisodCtiKmMpK1wiLFwiKyhuK2IqcykpLHRoaXMuXys9XCJBXCIraStcIixcIitpK1wiLDAsMCxcIisgKyhzKmg+YypkKStcIixcIisodGhpcy5feDE9dCttKnUpK1wiLFwiKyh0aGlzLl95MT1uK20qZil9ZWxzZSB0aGlzLl8rPVwiTFwiKyh0aGlzLl94MT10KStcIixcIisodGhpcy5feTE9bik7ZWxzZTt9LGFyYzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dD0rdCxuPStuO3ZhciBhPShlPStlKSpNYXRoLmNvcyhyKSx1PWUqTWF0aC5zaW4ociksZj10K2EsYz1uK3Uscz0xXm8sbD1vP3ItaTppLXI7aWYoZTwwKXRocm93IG5ldyBFcnJvcihcIm5lZ2F0aXZlIHJhZGl1czogXCIrZSk7bnVsbD09PXRoaXMuX3gxP3RoaXMuXys9XCJNXCIrZitcIixcIitjOihNYXRoLmFicyh0aGlzLl94MS1mKT4xZS02fHxNYXRoLmFicyh0aGlzLl95MS1jKT4xZS02KSYmKHRoaXMuXys9XCJMXCIrZitcIixcIitjKSxlJiYobDwwJiYobD1sJVJoK1JoKSxsPkxoP3RoaXMuXys9XCJBXCIrZStcIixcIitlK1wiLDAsMSxcIitzK1wiLFwiKyh0LWEpK1wiLFwiKyhuLXUpK1wiQVwiK2UrXCIsXCIrZStcIiwwLDEsXCIrcytcIixcIisodGhpcy5feDE9ZikrXCIsXCIrKHRoaXMuX3kxPWMpOmw+MWUtNiYmKHRoaXMuXys9XCJBXCIrZStcIixcIitlK1wiLDAsXCIrICsobD49emgpK1wiLFwiK3MrXCIsXCIrKHRoaXMuX3gxPXQrZSpNYXRoLmNvcyhpKSkrXCIsXCIrKHRoaXMuX3kxPW4rZSpNYXRoLnNpbihpKSkpKX0scmVjdDpmdW5jdGlvbih0LG4sZSxyKXt0aGlzLl8rPVwiTVwiKyh0aGlzLl94MD10aGlzLl94MT0rdCkrXCIsXCIrKHRoaXMuX3kwPXRoaXMuX3kxPStuKStcImhcIisgK2UrXCJ2XCIrICtyK1wiaFwiKy1lK1wiWlwifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTtsZS5wcm90b3R5cGU9aGUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpsZSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuXCIkXCIrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbXCIkXCIrdF19LHNldDpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzW1wiJFwiK3RdPW4sdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBuPVwiJFwiK3Q7cmV0dXJuIG4gaW4gdGhpcyYmZGVsZXRlIHRoaXNbbl19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpXCIkXCI9PT10WzBdJiZkZWxldGUgdGhpc1t0XX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmdC5wdXNoKG4uc2xpY2UoMSkpO3JldHVybiB0fSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQucHVzaCh0aGlzW25dKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmdC5wdXNoKHtrZXk6bi5zbGljZSgxKSx2YWx1ZTp0aGlzW25dfSk7cmV0dXJuIHR9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmKyt0O3JldHVybiB0fSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKWlmKFwiJFwiPT09dFswXSlyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQodGhpc1tuXSxuLnNsaWNlKDEpLHRoaXMpfX07dmFyIERoPWhlLnByb3RvdHlwZTt5ZS5wcm90b3R5cGU9X2UucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp5ZSxoYXM6RGguaGFzLGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdCs9XCJcIix0aGlzW1wiJFwiK3RdPXQsdGhpc30scmVtb3ZlOkRoLnJlbW92ZSxjbGVhcjpEaC5jbGVhcix2YWx1ZXM6RGgua2V5cyxzaXplOkRoLnNpemUsZW1wdHk6RGguZW1wdHksZWFjaDpEaC5lYWNofTt2YXIgVWg9QXJyYXkucHJvdG90eXBlLnNsaWNlLHFoPVtbXSxbW1sxLDEuNV0sWy41LDFdXV0sW1tbMS41LDFdLFsxLDEuNV1dXSxbW1sxLjUsMV0sWy41LDFdXV0sW1tbMSwuNV0sWzEuNSwxXV1dLFtbWzEsMS41XSxbLjUsMV1dLFtbMSwuNV0sWzEuNSwxXV1dLFtbWzEsLjVdLFsxLDEuNV1dXSxbW1sxLC41XSxbLjUsMV1dXSxbW1suNSwxXSxbMSwuNV1dXSxbW1sxLDEuNV0sWzEsLjVdXV0sW1tbLjUsMV0sWzEsLjVdXSxbWzEuNSwxXSxbMSwxLjVdXV0sW1tbMS41LDFdLFsxLC41XV1dLFtbWy41LDFdLFsxLjUsMV1dXSxbW1sxLDEuNV0sWzEuNSwxXV1dLFtbWy41LDFdLFsxLDEuNV1dXSxbXV0sT2g9e30sWWg9e30sQmg9MzQsRmg9MTAsSWg9MTMsamg9a2UoXCIsXCIpLEhoPWpoLnBhcnNlLFhoPWpoLnBhcnNlUm93cyxHaD1qaC5mb3JtYXQsVmg9amguZm9ybWF0Um93cywkaD1rZShcIlxcdFwiKSxXaD0kaC5wYXJzZSxaaD0kaC5wYXJzZVJvd3MsUWg9JGguZm9ybWF0LEpoPSRoLmZvcm1hdFJvd3MsS2g9TGUoSGgpLHRkPUxlKFdoKSxuZD1VZShcImFwcGxpY2F0aW9uL3htbFwiKSxlZD1VZShcInRleHQvaHRtbFwiKSxyZD1VZShcImltYWdlL3N2Zyt4bWxcIiksaWQ9amUucHJvdG90eXBlPUhlLnByb3RvdHlwZTtpZC5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQsbixlPW5ldyBIZSh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLHI9dGhpcy5fcm9vdDtpZighcilyZXR1cm4gZTtpZighci5sZW5ndGgpcmV0dXJuIGUuX3Jvb3Q9WGUociksZTtmb3IodD1be3NvdXJjZTpyLHRhcmdldDplLl9yb290PW5ldyBBcnJheSg0KX1dO3I9dC5wb3AoKTspZm9yKHZhciBpPTA7aTw0OysraSkobj1yLnNvdXJjZVtpXSkmJihuLmxlbmd0aD90LnB1c2goe3NvdXJjZTpuLHRhcmdldDpyLnRhcmdldFtpXT1uZXcgQXJyYXkoNCl9KTpyLnRhcmdldFtpXT1YZShuKSk7cmV0dXJuIGV9LGlkLmFkZD1mdW5jdGlvbih0KXt2YXIgbj0rdGhpcy5feC5jYWxsKG51bGwsdCksZT0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIFllKHRoaXMuY292ZXIobixlKSxuLGUsdCl9LGlkLmFkZEFsbD1mdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvPXQubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHU9bmV3IEFycmF5KG8pLGY9MS8wLGM9MS8wLHM9LTEvMCxsPS0xLzA7Zm9yKGU9MDtlPG87KytlKWlzTmFOKHI9K3RoaXMuX3guY2FsbChudWxsLG49dFtlXSkpfHxpc05hTihpPSt0aGlzLl95LmNhbGwobnVsbCxuKSl8fChhW2VdPXIsdVtlXT1pLHI8ZiYmKGY9cikscj5zJiYocz1yKSxpPGMmJihjPWkpLGk+bCYmKGw9aSkpO2ZvcihzPGYmJihmPXRoaXMuX3gwLHM9dGhpcy5feDEpLGw8YyYmKGM9dGhpcy5feTAsbD10aGlzLl95MSksdGhpcy5jb3ZlcihmLGMpLmNvdmVyKHMsbCksZT0wO2U8bzsrK2UpWWUodGhpcyxhW2VdLHVbZV0sdFtlXSk7cmV0dXJuIHRoaXN9LGlkLmNvdmVyPWZ1bmN0aW9uKHQsbil7aWYoaXNOYU4odD0rdCl8fGlzTmFOKG49K24pKXJldHVybiB0aGlzO3ZhciBlPXRoaXMuX3gwLHI9dGhpcy5feTAsaT10aGlzLl94MSxvPXRoaXMuX3kxO2lmKGlzTmFOKGUpKWk9KGU9TWF0aC5mbG9vcih0KSkrMSxvPShyPU1hdGguZmxvb3IobikpKzE7ZWxzZXtpZighKGU+dHx8dD5pfHxyPm58fG4+bykpcmV0dXJuIHRoaXM7dmFyIGEsdSxmPWktZSxjPXRoaXMuX3Jvb3Q7c3dpdGNoKHU9KG48KHIrbykvMik8PDF8dDwoZStpKS8yKXtjYXNlIDA6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGk9ZStmLG89citmLHQ+aXx8bj5vKTticmVhaztjYXNlIDE6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGU9aS1mLG89citmLGU+dHx8bj5vKTticmVhaztjYXNlIDI6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGk9ZStmLHI9by1mLHQ+aXx8cj5uKTticmVhaztjYXNlIDM6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGU9aS1mLHI9by1mLGU+dHx8cj5uKX10aGlzLl9yb290JiZ0aGlzLl9yb290Lmxlbmd0aCYmKHRoaXMuX3Jvb3Q9Yyl9cmV0dXJuIHRoaXMuX3gwPWUsdGhpcy5feTA9cix0aGlzLl94MT1pLHRoaXMuX3kxPW8sdGhpc30saWQuZGF0YT1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKG4pe2lmKCFuLmxlbmd0aClkb3t0LnB1c2gobi5kYXRhKX13aGlsZShuPW4ubmV4dCl9KSx0fSxpZC5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LGlkLmZpbmQ9ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbyxhLHUsZixjLHM9dGhpcy5feDAsbD10aGlzLl95MCxoPXRoaXMuX3gxLGQ9dGhpcy5feTEscD1bXSx2PXRoaXMuX3Jvb3Q7Zm9yKHYmJnAucHVzaChuZXcgQmUodixzLGwsaCxkKSksbnVsbD09ZT9lPTEvMDoocz10LWUsbD1uLWUsaD10K2UsZD1uK2UsZSo9ZSk7Zj1wLnBvcCgpOylpZighKCEodj1mLm5vZGUpfHwoaT1mLngwKT5ofHwobz1mLnkwKT5kfHwoYT1mLngxKTxzfHwodT1mLnkxKTxsKSlpZih2Lmxlbmd0aCl7dmFyIGc9KGkrYSkvMix5PShvK3UpLzI7cC5wdXNoKG5ldyBCZSh2WzNdLGcseSxhLHUpLG5ldyBCZSh2WzJdLGkseSxnLHUpLG5ldyBCZSh2WzFdLGcsbyxhLHkpLG5ldyBCZSh2WzBdLGksbyxnLHkpKSwoYz0obj49eSk8PDF8dD49ZykmJihmPXBbcC5sZW5ndGgtMV0scFtwLmxlbmd0aC0xXT1wW3AubGVuZ3RoLTEtY10scFtwLmxlbmd0aC0xLWNdPWYpfWVsc2V7dmFyIF89dC0rdGhpcy5feC5jYWxsKG51bGwsdi5kYXRhKSxiPW4tK3RoaXMuX3kuY2FsbChudWxsLHYuZGF0YSksbT1fKl8rYipiO2lmKG08ZSl7dmFyIHg9TWF0aC5zcXJ0KGU9bSk7cz10LXgsbD1uLXgsaD10K3gsZD1uK3gscj12LmRhdGF9fXJldHVybiByfSxpZC5yZW1vdmU9ZnVuY3Rpb24odCl7aWYoaXNOYU4obz0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihhPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIG4sZSxyLGksbyxhLHUsZixjLHMsbCxoLGQ9dGhpcy5fcm9vdCxwPXRoaXMuX3gwLHY9dGhpcy5feTAsZz10aGlzLl94MSx5PXRoaXMuX3kxO2lmKCFkKXJldHVybiB0aGlzO2lmKGQubGVuZ3RoKWZvcig7Oyl7aWYoKGM9bz49KHU9KHArZykvMikpP3A9dTpnPXUsKHM9YT49KGY9KHYreSkvMikpP3Y9Zjp5PWYsbj1kLCEoZD1kW2w9czw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIWQubGVuZ3RoKWJyZWFrOyhuW2wrMSYzXXx8bltsKzImM118fG5bbCszJjNdKSYmKGU9bixoPWwpfWZvcig7ZC5kYXRhIT09dDspaWYocj1kLCEoZD1kLm5leHQpKXJldHVybiB0aGlzO3JldHVybihpPWQubmV4dCkmJmRlbGV0ZSBkLm5leHQscj8oaT9yLm5leHQ9aTpkZWxldGUgci5uZXh0LHRoaXMpOm4/KGk/bltsXT1pOmRlbGV0ZSBuW2xdLChkPW5bMF18fG5bMV18fG5bMl18fG5bM10pJiZkPT09KG5bM118fG5bMl18fG5bMV18fG5bMF0pJiYhZC5sZW5ndGgmJihlP2VbaF09ZDp0aGlzLl9yb290PWQpLHRoaXMpOih0aGlzLl9yb290PWksdGhpcyl9LGlkLnJlbW92ZUFsbD1mdW5jdGlvbih0KXtmb3IodmFyIG49MCxlPXQubGVuZ3RoO248ZTsrK24pdGhpcy5yZW1vdmUodFtuXSk7cmV0dXJuIHRoaXN9LGlkLnJvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdH0saWQuc2l6ZT1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoZnVuY3Rpb24obil7aWYoIW4ubGVuZ3RoKWRveysrdH13aGlsZShuPW4ubmV4dCl9KSx0fSxpZC52aXNpdD1mdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvLGEsdT1bXSxmPXRoaXMuX3Jvb3Q7Zm9yKGYmJnUucHVzaChuZXcgQmUoZix0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO249dS5wb3AoKTspaWYoIXQoZj1uLm5vZGUscj1uLngwLGk9bi55MCxvPW4ueDEsYT1uLnkxKSYmZi5sZW5ndGgpe3ZhciBjPShyK28pLzIscz0oaSthKS8yOyhlPWZbM10pJiZ1LnB1c2gobmV3IEJlKGUsYyxzLG8sYSkpLChlPWZbMl0pJiZ1LnB1c2gobmV3IEJlKGUscixzLGMsYSkpLChlPWZbMV0pJiZ1LnB1c2gobmV3IEJlKGUsYyxpLG8scykpLChlPWZbMF0pJiZ1LnB1c2gobmV3IEJlKGUscixpLGMscykpfXJldHVybiB0aGlzfSxpZC52aXNpdEFmdGVyPWZ1bmN0aW9uKHQpe3ZhciBuLGU9W10scj1bXTtmb3IodGhpcy5fcm9vdCYmZS5wdXNoKG5ldyBCZSh0aGlzLl9yb290LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7bj1lLnBvcCgpOyl7dmFyIGk9bi5ub2RlO2lmKGkubGVuZ3RoKXt2YXIgbyxhPW4ueDAsdT1uLnkwLGY9bi54MSxjPW4ueTEscz0oYStmKS8yLGw9KHUrYykvMjsobz1pWzBdKSYmZS5wdXNoKG5ldyBCZShvLGEsdSxzLGwpKSwobz1pWzFdKSYmZS5wdXNoKG5ldyBCZShvLHMsdSxmLGwpKSwobz1pWzJdKSYmZS5wdXNoKG5ldyBCZShvLGEsbCxzLGMpKSwobz1pWzNdKSYmZS5wdXNoKG5ldyBCZShvLHMsbCxmLGMpKX1yLnB1c2gobil9Zm9yKDtuPXIucG9wKCk7KXQobi5ub2RlLG4ueDAsbi55MCxuLngxLG4ueTEpO3JldHVybiB0aGlzfSxpZC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl94PXQsdGhpcyk6dGhpcy5feH0saWQueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feT10LHRoaXMpOnRoaXMuX3l9O3ZhciBvZD0xMCxhZD1NYXRoLlBJKigzLU1hdGguc3FydCg1KSksdWQ9L14oPzooLik/KFs8Pj1eXSkpPyhbK1xcLVxcKCBdKT8oWyQjXSk/KDApPyhcXGQrKT8oLCk/KFxcLlxcZCspPyh+KT8oW2EteiVdKT8kL2k7dHIucHJvdG90eXBlPW5yLnByb3RvdHlwZSxuci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/XCIwXCI6XCJcIikrKG51bGw9PXRoaXMud2lkdGg/XCJcIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hP1wiLFwiOlwiXCIpKyhudWxsPT10aGlzLnByZWNpc2lvbj9cIlwiOlwiLlwiK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/XCJ+XCI6XCJcIikrdGhpcy50eXBlfTt2YXIgZmQsY2Qsc2Q9e1wiJVwiOmZ1bmN0aW9uKHQsbil7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKG4pfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0K1wiXCJ9LGQ6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTApfSxlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQudG9FeHBvbmVudGlhbChuKX0sZjpmdW5jdGlvbih0LG4pe3JldHVybiB0LnRvRml4ZWQobil9LGc6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50b1ByZWNpc2lvbihuKX0sbzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZyg4KX0scDpmdW5jdGlvbih0LG4pe3JldHVybiBlcigxMDAqdCxuKX0scjplcixzOmZ1bmN0aW9uKHQsbil7dmFyIGU9SmUodCxuKTtpZighZSlyZXR1cm4gdCtcIlwiO3ZhciByPWVbMF0saT1lWzFdLG89aS0oZmQ9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoaS8zKSkpKSsxLGE9ci5sZW5ndGg7cmV0dXJuIG89PT1hP3I6bz5hP3IrbmV3IEFycmF5KG8tYSsxKS5qb2luKFwiMFwiKTpvPjA/ci5zbGljZSgwLG8pK1wiLlwiK3Iuc2xpY2Uobyk6XCIwLlwiK25ldyBBcnJheSgxLW8pLmpvaW4oXCIwXCIpK0plKHQsTWF0aC5tYXgoMCxuK28tMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19LGxkPVtcInlcIixcInpcIixcImFcIixcImZcIixcInBcIixcIm5cIixcIsK1XCIsXCJtXCIsXCJcIixcImtcIixcIk1cIixcIkdcIixcIlRcIixcIlBcIixcIkVcIixcIlpcIixcIllcIl07b3Ioe2RlY2ltYWw6XCIuXCIsdGhvdXNhbmRzOlwiLFwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbXCIkXCIsXCJcIl19KSxzci5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnNyLHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5zPXRoaXMudD0wfSxhZGQ6ZnVuY3Rpb24odCl7bHIoamQsdCx0aGlzLnQpLGxyKHRoaXMsamQucyx0aGlzLnMpLHRoaXMucz90aGlzLnQrPWpkLnQ6dGhpcy5zPWpkLnR9LHZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zfX07dmFyIGhkLGRkLHBkLHZkLGdkLHlkLF9kLGJkLG1kLHhkLHdkLE1kLEFkLFRkLE5kLFNkLEVkLGtkLENkLFBkLHpkLFJkLExkLERkLFVkLHFkLE9kLFlkLEJkLEZkLElkLGpkPW5ldyBzcixIZD0xZS02LFhkPTFlLTEyLEdkPU1hdGguUEksVmQ9R2QvMiwkZD1HZC80LFdkPTIqR2QsWmQ9MTgwL0dkLFFkPUdkLzE4MCxKZD1NYXRoLmFicyxLZD1NYXRoLmF0YW4sdHA9TWF0aC5hdGFuMixucD1NYXRoLmNvcyxlcD1NYXRoLmNlaWwscnA9TWF0aC5leHAsaXA9TWF0aC5sb2csb3A9TWF0aC5wb3csYXA9TWF0aC5zaW4sdXA9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9LGZwPU1hdGguc3FydCxjcD1NYXRoLnRhbixzcD17RmVhdHVyZTpmdW5jdGlvbih0LG4pe2dyKHQuZ2VvbWV0cnksbil9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZmVhdHVyZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylncihlW3JdLmdlb21ldHJ5LG4pfX0sbHA9e1NwaGVyZTpmdW5jdGlvbih0LG4pe24uc3BoZXJlKCl9LFBvaW50OmZ1bmN0aW9uKHQsbil7dD10LmNvb3JkaW5hdGVzLG4ucG9pbnQodFswXSx0WzFdLHRbMl0pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOyl0PWVbcl0sbi5wb2ludCh0WzBdLHRbMV0sdFsyXSl9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXt5cih0LmNvb3JkaW5hdGVzLG4sMCl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspeXIoZVtyXSxuLDApfSxQb2x5Z29uOmZ1bmN0aW9uKHQsbil7X3IodC5jb29yZGluYXRlcyxuKX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylfcihlW3JdLG4pfSxHZW9tZXRyeUNvbGxlY3Rpb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5nZW9tZXRyaWVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspZ3IoZVtyXSxuKX19LGhwPWNyKCksZHA9Y3IoKSxwcD17cG9pbnQ6dnIsbGluZVN0YXJ0OnZyLGxpbmVFbmQ6dnIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7aHAucmVzZXQoKSxwcC5saW5lU3RhcnQ9bXIscHAubGluZUVuZD14cn0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciB0PStocDtkcC5hZGQodDwwP1dkK3Q6dCksdGhpcy5saW5lU3RhcnQ9dGhpcy5saW5lRW5kPXRoaXMucG9pbnQ9dnJ9LHNwaGVyZTpmdW5jdGlvbigpe2RwLmFkZChXZCl9fSx2cD1jcigpLGdwPXtwb2ludDpQcixsaW5lU3RhcnQ6UnIsbGluZUVuZDpMcixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtncC5wb2ludD1EcixncC5saW5lU3RhcnQ9VXIsZ3AubGluZUVuZD1xcix2cC5yZXNldCgpLHBwLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7cHAucG9seWdvbkVuZCgpLGdwLnBvaW50PVByLGdwLmxpbmVTdGFydD1ScixncC5saW5lRW5kPUxyLGhwPDA/KHlkPS0oYmQ9MTgwKSxfZD0tKG1kPTkwKSk6dnA+SGQ/bWQ9OTA6dnA8LUhkJiYoX2Q9LTkwKSxOZFswXT15ZCxOZFsxXT1iZH19LHlwPXtzcGhlcmU6dnIscG9pbnQ6RnIsbGluZVN0YXJ0OmpyLGxpbmVFbmQ6R3IscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7eXAubGluZVN0YXJ0PVZyLHlwLmxpbmVFbmQ9JHJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt5cC5saW5lU3RhcnQ9anIseXAubGluZUVuZD1Hcn19O0tyLmludmVydD1Lcjt2YXIgX3AsYnAsbXAseHAsd3AsTXAsQXAsVHAsTnAsU3AsRXAsa3A9Y3IoKSxDcD1kaShmdW5jdGlvbigpe3JldHVybiEwfSxmdW5jdGlvbih0KXt2YXIgbixlPU5hTixyPU5hTixpPU5hTjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxuPTF9LHBvaW50OmZ1bmN0aW9uKG8sYSl7dmFyIHU9bz4wP0dkOi1HZCxmPUpkKG8tZSk7SmQoZi1HZCk8SGQ/KHQucG9pbnQoZSxyPShyK2EpLzI+MD9WZDotVmQpLHQucG9pbnQoaSxyKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQodSxyKSx0LnBvaW50KG8sciksbj0wKTppIT09dSYmZj49R2QmJihKZChlLWkpPEhkJiYoZS09aSpIZCksSmQoby11KTxIZCYmKG8tPXUqSGQpLHI9ZnVuY3Rpb24odCxuLGUscil7dmFyIGksbyxhPWFwKHQtZSk7cmV0dXJuIEpkKGEpPkhkP0tkKChhcChuKSoobz1ucChyKSkqYXAoZSktYXAocikqKGk9bnAobikpKmFwKHQpKS8oaSpvKmEpKToobityKS8yfShlLHIsbyxhKSx0LnBvaW50KGksciksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHUsciksbj0wKSx0LnBvaW50KGU9byxyPWEpLGk9dX0sbGluZUVuZDpmdW5jdGlvbigpe3QubGluZUVuZCgpLGU9cj1OYU59LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIDItbn19fSxmdW5jdGlvbih0LG4sZSxyKXt2YXIgaTtpZihudWxsPT10KWk9ZSpWZCxyLnBvaW50KC1HZCxpKSxyLnBvaW50KDAsaSksci5wb2ludChHZCxpKSxyLnBvaW50KEdkLDApLHIucG9pbnQoR2QsLWkpLHIucG9pbnQoMCwtaSksci5wb2ludCgtR2QsLWkpLHIucG9pbnQoLUdkLDApLHIucG9pbnQoLUdkLGkpO2Vsc2UgaWYoSmQodFswXS1uWzBdKT5IZCl7dmFyIG89dFswXTxuWzBdP0dkOi1HZDtpPWUqby8yLHIucG9pbnQoLW8saSksci5wb2ludCgwLGkpLHIucG9pbnQobyxpKX1lbHNlIHIucG9pbnQoblswXSxuWzFdKX0sWy1HZCwtVmRdKSxQcD0xZTksenA9LVBwLFJwPWNyKCksTHA9e3NwaGVyZTp2cixwb2ludDp2cixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtMcC5wb2ludD1iaSxMcC5saW5lRW5kPV9pfSxsaW5lRW5kOnZyLHBvbHlnb25TdGFydDp2cixwb2x5Z29uRW5kOnZyfSxEcD1bbnVsbCxudWxsXSxVcD17dHlwZTpcIkxpbmVTdHJpbmdcIixjb29yZGluYXRlczpEcH0scXA9e0ZlYXR1cmU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gTWkodC5nZW9tZXRyeSxuKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5mZWF0dXJlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE1pKGVbcl0uZ2VvbWV0cnksbikpcmV0dXJuITA7cmV0dXJuITF9fSxPcD17U3BoZXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LFBvaW50OmZ1bmN0aW9uKHQsbil7cmV0dXJuIEFpKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKEFpKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXtyZXR1cm4gVGkodC5jb29yZGluYXRlcyxuKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihUaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfSxQb2x5Z29uOmZ1bmN0aW9uKHQsbil7cmV0dXJuIE5pKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspaWYoTmkoZVtyXSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZ2VvbWV0cmllcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE1pKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9fSxZcD1jcigpLEJwPWNyKCksRnA9e3BvaW50OnZyLGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe0ZwLmxpbmVTdGFydD1SaSxGcC5saW5lRW5kPVVpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7RnAubGluZVN0YXJ0PUZwLmxpbmVFbmQ9RnAucG9pbnQ9dnIsWXAuYWRkKEpkKEJwKSksQnAucmVzZXQoKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9WXAvMjtyZXR1cm4gWXAucmVzZXQoKSx0fX0sSXA9MS8wLGpwPUlwLEhwPS1JcCxYcD1IcCxHcD17cG9pbnQ6ZnVuY3Rpb24odCxuKXt0PElwJiYoSXA9dCksdD5IcCYmKEhwPXQpLG48anAmJihqcD1uKSxuPlhwJiYoWHA9bil9LGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDp2cixwb2x5Z29uRW5kOnZyLHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVtbSXAsanBdLFtIcCxYcF1dO3JldHVybiBIcD1YcD0tKGpwPUlwPTEvMCksdH19LFZwPTAsJHA9MCxXcD0wLFpwPTAsUXA9MCxKcD0wLEtwPTAsdHY9MCxudj0wLGV2PXtwb2ludDpxaSxsaW5lU3RhcnQ6T2ksbGluZUVuZDpGaSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtldi5saW5lU3RhcnQ9SWksZXYubGluZUVuZD1qaX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2V2LnBvaW50PXFpLGV2LmxpbmVTdGFydD1PaSxldi5saW5lRW5kPUZpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1udj9bS3AvbnYsdHYvbnZdOkpwP1tacC9KcCxRcC9KcF06V3A/W1ZwL1dwLCRwL1dwXTpbTmFOLE5hTl07cmV0dXJuIFZwPSRwPVdwPVpwPVFwPUpwPUtwPXR2PW52PTAsdH19O0dpLnByb3RvdHlwZT17X3JhZGl1czo0LjUscG9pbnRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JhZGl1cz10LHRoaXN9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MD09PXRoaXMuX2xpbmUmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fcG9pbnQ9TmFOfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbiksdGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTticmVhaztkZWZhdWx0OnRoaXMuX2NvbnRleHQubW92ZVRvKHQrdGhpcy5fcmFkaXVzLG4pLHRoaXMuX2NvbnRleHQuYXJjKHQsbix0aGlzLl9yYWRpdXMsMCxXZCl9fSxyZXN1bHQ6dnJ9O3ZhciBydixpdixvdixhdix1dixmdj1jcigpLGN2PXtwb2ludDp2cixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtjdi5wb2ludD1WaX0sbGluZUVuZDpmdW5jdGlvbigpe3J2JiYkaShpdixvdiksY3YucG9pbnQ9dnJ9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3J2PSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7cnY9bnVsbH0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9K2Z2O3JldHVybiBmdi5yZXNldCgpLHR9fTtXaS5wcm90b3R5cGU9e19yYWRpdXM6NC41LF9jaXJjbGU6WmkoNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4odD0rdCkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9dCx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fc3RyaW5nLnB1c2goXCJaXCIpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9zdHJpbmcucHVzaChcIk1cIix0LFwiLFwiLG4pLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3N0cmluZy5wdXNoKFwiTFwiLHQsXCIsXCIsbik7YnJlYWs7ZGVmYXVsdDpudWxsPT10aGlzLl9jaXJjbGUmJih0aGlzLl9jaXJjbGU9WmkodGhpcy5fcmFkaXVzKSksdGhpcy5fc3RyaW5nLnB1c2goXCJNXCIsdCxcIixcIixuLHRoaXMuX2NpcmNsZSl9fSxyZXN1bHQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9zdHJpbmcubGVuZ3RoKXt2YXIgdD10aGlzLl9zdHJpbmcuam9pbihcIlwiKTtyZXR1cm4gdGhpcy5fc3RyaW5nPVtdLHR9cmV0dXJuIG51bGx9fSxKaS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkppLHBvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5zdHJlYW0ucG9pbnQodCxuKX0sc3BoZXJlOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25FbmQoKX19O3ZhciBzdj0xNixsdj1ucCgzMCpRZCksaHY9UWkoe3BvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5zdHJlYW0ucG9pbnQodCpRZCxuKlFkKX19KSxkdj1obyhmdW5jdGlvbih0KXtyZXR1cm4gZnAoMi8oMSt0KSl9KTtkdi5pbnZlcnQ9cG8oZnVuY3Rpb24odCl7cmV0dXJuIDIqZHIodC8yKX0pO3ZhciBwdj1obyhmdW5jdGlvbih0KXtyZXR1cm4odD1ocih0KSkmJnQvYXAodCl9KTtwdi5pbnZlcnQ9cG8oZnVuY3Rpb24odCl7cmV0dXJuIHR9KSx2by5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdCwyKktkKHJwKG4pKS1WZF19LGJvLmludmVydD1ibyx4by5pbnZlcnQ9cG8oS2QpLE1vLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlLHI9bixpPTI1O2Rve3ZhciBvPXIqcixhPW8qbztyLT1lPShyKigxLjAwNzIyNitvKiguMDE1MDg1K2EqKC4wMjg4NzQqby0uMDQ0NDc1LS4wMDU5MTYqYSkpKS1uKS8oMS4wMDcyMjYrbyooLjA0NTI1NSthKiguMjU5ODY2Km8tLjMxMTMyNS0uMDA1OTE2KjExKmEpKSl9d2hpbGUoSmQoZSk+SGQmJi0taT4wKTtyZXR1cm5bdC8oLjg3MDcrKG89cipyKSoobyoobypvKm8qKC4wMDM5NzEtLjAwMTUyOSpvKS0uMDEzNzkxKS0uMTMxOTc5KSkscl19LEFvLmludmVydD1wbyhkciksVG8uaW52ZXJ0PXBvKGZ1bmN0aW9uKHQpe3JldHVybiAyKktkKHQpfSksTm8uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuWy1uLDIqS2QocnAodCkpLVZkXX0sRG8ucHJvdG90eXBlPVBvLnByb3RvdHlwZT17Y29uc3RydWN0b3I6RG8sY291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoQ28pfSxlYWNoOmZ1bmN0aW9uKHQpe3ZhciBuLGUscixpLG89dGhpcyxhPVtvXTtkb3tmb3Iobj1hLnJldmVyc2UoKSxhPVtdO289bi5wb3AoKTspaWYodChvKSxlPW8uY2hpbGRyZW4pZm9yKHI9MCxpPWUubGVuZ3RoO3I8aTsrK3IpYS5wdXNoKGVbcl0pfXdoaWxlKGEubGVuZ3RoKTtyZXR1cm4gdGhpc30sZWFjaEFmdGVyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHIsaT10aGlzLG89W2ldLGE9W107aT1vLnBvcCgpOylpZihhLnB1c2goaSksbj1pLmNoaWxkcmVuKWZvcihlPTAscj1uLmxlbmd0aDtlPHI7KytlKW8ucHVzaChuW2VdKTtmb3IoO2k9YS5wb3AoKTspdChpKTtyZXR1cm4gdGhpc30sZWFjaEJlZm9yZTpmdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPXRoaXMsaT1bcl07cj1pLnBvcCgpOylpZih0KHIpLG49ci5jaGlsZHJlbilmb3IoZT1uLmxlbmd0aC0xO2U+PTA7LS1lKWkucHVzaChuW2VdKTtyZXR1cm4gdGhpc30sc3VtOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2hBZnRlcihmdW5jdGlvbihuKXtmb3IodmFyIGU9K3Qobi5kYXRhKXx8MCxyPW4uY2hpbGRyZW4saT1yJiZyLmxlbmd0aDstLWk+PTA7KWUrPXJbaV0udmFsdWU7bi52YWx1ZT1lfSl9LHNvcnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaEJlZm9yZShmdW5jdGlvbihuKXtuLmNoaWxkcmVuJiZuLmNoaWxkcmVuLnNvcnQodCl9KX0scGF0aDpmdW5jdGlvbih0KXtmb3IodmFyIG49dGhpcyxlPWZ1bmN0aW9uKHQsbil7aWYodD09PW4pcmV0dXJuIHQ7dmFyIGU9dC5hbmNlc3RvcnMoKSxyPW4uYW5jZXN0b3JzKCksaT1udWxsO2Zvcih0PWUucG9wKCksbj1yLnBvcCgpO3Q9PT1uOylpPXQsdD1lLnBvcCgpLG49ci5wb3AoKTtyZXR1cm4gaX0obix0KSxyPVtuXTtuIT09ZTspbj1uLnBhcmVudCxyLnB1c2gobik7Zm9yKHZhciBpPXIubGVuZ3RoO3QhPT1lOylyLnNwbGljZShpLDAsdCksdD10LnBhcmVudDtyZXR1cm4gcn0sYW5jZXN0b3JzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsbj1bdF07dD10LnBhcmVudDspbi5wdXNoKHQpO3JldHVybiBufSxkZXNjZW5kYW50czpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24obil7dC5wdXNoKG4pfSksdH0sbGVhdmVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaEJlZm9yZShmdW5jdGlvbihuKXtuLmNoaWxkcmVufHx0LnB1c2gobil9KSx0fSxsaW5rczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1bXTtyZXR1cm4gdC5lYWNoKGZ1bmN0aW9uKGUpe2UhPT10JiZuLnB1c2goe3NvdXJjZTplLnBhcmVudCx0YXJnZXQ6ZX0pfSksbn0sY29weTpmdW5jdGlvbigpe3JldHVybiBQbyh0aGlzKS5lYWNoQmVmb3JlKFJvKX19O3ZhciB2dj1BcnJheS5wcm90b3R5cGUuc2xpY2UsZ3Y9XCIkXCIseXY9e2RlcHRoOi0xfSxfdj17fTtjYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShEby5wcm90b3R5cGUpO3ZhciBidj0oMStNYXRoLnNxcnQoNSkpLzIsbXY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSxyLGksbyl7bGEobix0LGUscixpLG8pfXJldHVybiBlLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiB0KChuPStuKT4xP246MSl9LGV9KGJ2KSx4dj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlLHIsaSxvKXtpZigoYT10Ll9zcXVhcmlmeSkmJmEucmF0aW89PT1uKWZvcih2YXIgYSx1LGYsYyxzLGw9LTEsaD1hLmxlbmd0aCxkPXQudmFsdWU7KytsPGg7KXtmb3IoZj0odT1hW2xdKS5jaGlsZHJlbixjPXUudmFsdWU9MCxzPWYubGVuZ3RoO2M8czsrK2MpdS52YWx1ZSs9ZltjXS52YWx1ZTt1LmRpY2U/bmEodSxlLHIsaSxyKz0oby1yKSp1LnZhbHVlL2QpOnNhKHUsZSxyLGUrPShpLWUpKnUudmFsdWUvZCxvKSxkLT11LnZhbHVlfWVsc2UgdC5fc3F1YXJpZnk9YT1sYShuLHQsZSxyLGksbyksYS5yYXRpbz1ufXJldHVybiBlLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiB0KChuPStuKT4xP246MSl9LGV9KGJ2KSx3dj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlKXtyZXR1cm4gdD1udWxsPT10PzA6K3QsZT1udWxsPT1lPzE6K2UsMT09PWFyZ3VtZW50cy5sZW5ndGg/KGU9dCx0PTApOmUtPXQsZnVuY3Rpb24oKXtyZXR1cm4gbigpKmUrdH19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLE12PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LGUpe3ZhciByLGk7cmV0dXJuIHQ9bnVsbD09dD8wOit0LGU9bnVsbD09ZT8xOitlLGZ1bmN0aW9uKCl7dmFyIG87aWYobnVsbCE9cilvPXIscj1udWxsO2Vsc2UgZG97cj0yKm4oKS0xLG89MipuKCktMSxpPXIqcitvKm99d2hpbGUoIWl8fGk+MSk7cmV0dXJuIHQrZSpvKk1hdGguc3FydCgtMipNYXRoLmxvZyhpKS9pKX19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLEF2PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSgpe3ZhciB0PU12LnNvdXJjZShuKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZXhwKHQoKSl9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxUdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAscj0wO3I8dDsrK3IpZSs9bigpO3JldHVybiBlfX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksTnY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3ZhciBlPVR2LnNvdXJjZShuKSh0KTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSgpL3R9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxTdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuLU1hdGgubG9nKDEtbigpKS90fX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksRXY9QXJyYXkucHJvdG90eXBlLGt2PUV2Lm1hcCxDdj1Fdi5zbGljZSxQdj17bmFtZTpcImltcGxpY2l0XCJ9LHp2PVswLDFdLFJ2PW5ldyBEYXRlLEx2PW5ldyBEYXRlLER2PUlhKGZ1bmN0aW9uKCl7fSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi10fSk7RHYuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9JYShmdW5jdGlvbihuKXtuLnNldFRpbWUoTWF0aC5mbG9vcihuL3QpKnQpfSxmdW5jdGlvbihuLGUpe24uc2V0VGltZSgrbitlKnQpfSxmdW5jdGlvbihuLGUpe3JldHVybihlLW4pL3R9KTpEdjpudWxsfTt2YXIgVXY9RHYucmFuZ2UscXY9NmU0LE92PTYwNDhlNSxZdj1JYShmdW5jdGlvbih0KXt0LnNldFRpbWUoMWUzKk1hdGguZmxvb3IodC8xZTMpKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3QrMWUzKm4pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzFlM30sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDU2Vjb25kcygpfSksQnY9WXYucmFuZ2UsRnY9SWEoZnVuY3Rpb24odCl7dC5zZXRUaW1lKE1hdGguZmxvb3IodC9xdikqcXYpfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKnF2KX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9xdn0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSksSXY9RnYucmFuZ2UsanY9SWEoZnVuY3Rpb24odCl7dmFyIG49dC5nZXRUaW1lem9uZU9mZnNldCgpKnF2JTM2ZTU7bjwwJiYobis9MzZlNSksdC5zZXRUaW1lKDM2ZTUqTWF0aC5mbG9vcigoK3QtbikvMzZlNSkrbil9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0KzM2ZTUqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvMzZlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pLEh2PWp2LnJhbmdlLFh2PUlhKGZ1bmN0aW9uKHQpe3Quc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQtKG4uZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnF2KS84NjRlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpLTF9KSxHdj1Ydi5yYW5nZSxWdj1qYSgwKSwkdj1qYSgxKSxXdj1qYSgyKSxadj1qYSgzKSxRdj1qYSg0KSxKdj1qYSg1KSxLdj1qYSg2KSx0Zz1Wdi5yYW5nZSxuZz0kdi5yYW5nZSxlZz1Xdi5yYW5nZSxyZz1adi5yYW5nZSxpZz1Rdi5yYW5nZSxvZz1Kdi5yYW5nZSxhZz1Ldi5yYW5nZSx1Zz1JYShmdW5jdGlvbih0KXt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldE1vbnRoKHQuZ2V0TW9udGgoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXRNb250aCgpLXQuZ2V0TW9udGgoKSsxMioobi5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKSl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSxmZz11Zy5yYW5nZSxjZz1JYShmdW5jdGlvbih0KXt0LnNldE1vbnRoKDAsMSksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0pO2NnLmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/SWEoZnVuY3Rpb24obil7bi5zZXRGdWxsWWVhcihNYXRoLmZsb29yKG4uZ2V0RnVsbFllYXIoKS90KSp0KSxuLnNldE1vbnRoKDAsMSksbi5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24obixlKXtuLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKStlKnQpfSk6bnVsbH07dmFyIHNnPWNnLnJhbmdlLGxnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDU2Vjb25kcygwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKnF2KX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9xdn0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTWludXRlcygpfSksaGc9bGcucmFuZ2UsZGc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENNaW51dGVzKDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3QrMzZlNSpuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS8zNmU1fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENIb3VycygpfSkscGc9ZGcucmFuZ2Usdmc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvODY0ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSksZ2c9dmcucmFuZ2UseWc9SGEoMCksX2c9SGEoMSksYmc9SGEoMiksbWc9SGEoMykseGc9SGEoNCksd2c9SGEoNSksTWc9SGEoNiksQWc9eWcucmFuZ2UsVGc9X2cucmFuZ2UsTmc9YmcucmFuZ2UsU2c9bWcucmFuZ2UsRWc9eGcucmFuZ2Usa2c9d2cucmFuZ2UsQ2c9TWcucmFuZ2UsUGc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENEYXRlKDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENNb250aCh0LmdldFVUQ01vbnRoKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0VVRDTW9udGgoKS10LmdldFVUQ01vbnRoKCkrMTIqKG4uZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCkpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNb250aCgpfSksemc9UGcucmFuZ2UsUmc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCl9KTtSZy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP0lhKGZ1bmN0aW9uKG4pe24uc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcihuLmdldFVUQ0Z1bGxZZWFyKCkvdCkqdCksbi5zZXRVVENNb250aCgwLDEpLG4uc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKG4sZSl7bi5zZXRVVENGdWxsWWVhcihuLmdldFVUQ0Z1bGxZZWFyKCkrZSp0KX0pOm51bGx9O3ZhciBMZyxEZz1SZy5yYW5nZSxVZz17XCItXCI6XCJcIixfOlwiIFwiLDA6XCIwXCJ9LHFnPS9eXFxzKlxcZCsvLE9nPS9eJS8sWWc9L1tcXFxcXiQqKz98W1xcXSgpLnt9XS9nO25mKHtkYXRlVGltZTpcIiV4LCAlWFwiLGRhdGU6XCIlLW0vJS1kLyVZXCIsdGltZTpcIiUtSTolTTolUyAlcFwiLHBlcmlvZHM6W1wiQU1cIixcIlBNXCJdLGRheXM6W1wiU3VuZGF5XCIsXCJNb25kYXlcIixcIlR1ZXNkYXlcIixcIldlZG5lc2RheVwiLFwiVGh1cnNkYXlcIixcIkZyaWRheVwiLFwiU2F0dXJkYXlcIl0sc2hvcnREYXlzOltcIlN1blwiLFwiTW9uXCIsXCJUdWVcIixcIldlZFwiLFwiVGh1XCIsXCJGcmlcIixcIlNhdFwiXSxtb250aHM6W1wiSmFudWFyeVwiLFwiRmVicnVhcnlcIixcIk1hcmNoXCIsXCJBcHJpbFwiLFwiTWF5XCIsXCJKdW5lXCIsXCJKdWx5XCIsXCJBdWd1c3RcIixcIlNlcHRlbWJlclwiLFwiT2N0b2JlclwiLFwiTm92ZW1iZXJcIixcIkRlY2VtYmVyXCJdLHNob3J0TW9udGhzOltcIkphblwiLFwiRmViXCIsXCJNYXJcIixcIkFwclwiLFwiTWF5XCIsXCJKdW5cIixcIkp1bFwiLFwiQXVnXCIsXCJTZXBcIixcIk9jdFwiLFwiTm92XCIsXCJEZWNcIl19KTt2YXIgQmc9XCIlWS0lbS0lZFQlSDolTTolUy4lTFpcIixGZz1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZz9mdW5jdGlvbih0KXtyZXR1cm4gdC50b0lTT1N0cmluZygpfTp0LnV0Y0Zvcm1hdChCZyksSWc9K25ldyBEYXRlKFwiMjAwMC0wMS0wMVQwMDowMDowMC4wMDBaXCIpP2Z1bmN0aW9uKHQpe3ZhciBuPW5ldyBEYXRlKHQpO3JldHVybiBpc05hTihuKT9udWxsOm59OnQudXRjUGFyc2UoQmcpLGpnPTFlMyxIZz02MCpqZyxYZz02MCpIZyxHZz0yNCpYZyxWZz03KkdnLCRnPTMwKkdnLFdnPTM2NSpHZyxaZz1mZihcIjFmNzdiNGZmN2YwZTJjYTAyY2Q2MjcyODk0NjdiZDhjNTY0YmUzNzdjMjdmN2Y3ZmJjYmQyMjE3YmVjZlwiKSxRZz1mZihcIjdmYzk3ZmJlYWVkNGZkYzA4NmZmZmY5OTM4NmNiMGYwMDI3ZmJmNWIxNzY2NjY2NlwiKSxKZz1mZihcIjFiOWU3N2Q5NWYwMjc1NzBiM2U3Mjk4YTY2YTYxZWU2YWIwMmE2NzYxZDY2NjY2NlwiKSxLZz1mZihcImE2Y2VlMzFmNzhiNGIyZGY4YTMzYTAyY2ZiOWE5OWUzMWExY2ZkYmY2ZmZmN2YwMGNhYjJkNjZhM2Q5YWZmZmY5OWIxNTkyOFwiKSx0eT1mZihcImZiYjRhZWIzY2RlM2NjZWJjNWRlY2JlNGZlZDlhNmZmZmZjY2U1ZDhiZGZkZGFlY2YyZjJmMlwiKSxueT1mZihcImIzZTJjZGZkY2RhY2NiZDVlOGY0Y2FlNGU2ZjVjOWZmZjJhZWYxZTJjY2NjY2NjY1wiKSxleT1mZihcImU0MWExYzM3N2ViODRkYWY0YTk4NGVhM2ZmN2YwMGZmZmYzM2E2NTYyOGY3ODFiZjk5OTk5OVwiKSxyeT1mZihcIjY2YzJhNWZjOGQ2MjhkYTBjYmU3OGFjM2E2ZDg1NGZmZDkyZmU1YzQ5NGIzYjNiM1wiKSxpeT1mZihcIjhkZDNjN2ZmZmZiM2JlYmFkYWZiODA3MjgwYjFkM2ZkYjQ2MmIzZGU2OWZjY2RlNWQ5ZDlkOWJjODBiZGNjZWJjNWZmZWQ2ZlwiKSxveT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZDhiMzY1ZjVmNWY1NWFiNGFjXCIsXCJhNjYxMWFkZmMyN2Q4MGNkYzEwMTg1NzFcIixcImE2NjExYWRmYzI3ZGY1ZjVmNTgwY2RjMTAxODU3MVwiLFwiOGM1MTBhZDhiMzY1ZjZlOGMzYzdlYWU1NWFiNGFjMDE2NjVlXCIsXCI4YzUxMGFkOGIzNjVmNmU4YzNmNWY1ZjVjN2VhZTU1YWI0YWMwMTY2NWVcIixcIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZVwiLFwiOGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzZjVmNWY1YzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlXCIsXCI1NDMwMDU4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUwMDNjMzBcIixcIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMFwiKS5tYXAoZmYpLGF5PWNmKG95KSx1eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiYWY4ZGMzZjdmN2Y3N2ZiZjdiXCIsXCI3YjMyOTRjMmE1Y2ZhNmRiYTAwMDg4MzdcIixcIjdiMzI5NGMyYTVjZmY3ZjdmN2E2ZGJhMDAwODgzN1wiLFwiNzYyYTgzYWY4ZGMzZTdkNGU4ZDlmMGQzN2ZiZjdiMWI3ODM3XCIsXCI3NjJhODNhZjhkYzNlN2Q0ZThmN2Y3ZjdkOWYwZDM3ZmJmN2IxYjc4MzdcIixcIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzN1wiLFwiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZjdmN2Y3ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3XCIsXCI0MDAwNGI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzcwMDQ0MWJcIixcIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYlwiKS5tYXAoZmYpLGZ5PWNmKHV5KSxjeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTlhM2M5ZjdmN2Y3YTFkNzZhXCIsXCJkMDFjOGJmMWI2ZGFiOGUxODY0ZGFjMjZcIixcImQwMWM4YmYxYjZkYWY3ZjdmN2I4ZTE4NjRkYWMyNlwiLFwiYzUxYjdkZTlhM2M5ZmRlMGVmZTZmNWQwYTFkNzZhNGQ5MjIxXCIsXCJjNTFiN2RlOWEzYzlmZGUwZWZmN2Y3ZjdlNmY1ZDBhMWQ3NmE0ZDkyMjFcIixcImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMVwiLFwiYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZjdmN2Y3ZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxXCIsXCI4ZTAxNTJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjEyNzY0MTlcIixcIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOVwiKS5tYXAoZmYpLHN5PWNmKGN5KSxseT1uZXcgQXJyYXkoMykuY29uY2F0KFwiOTk4ZWMzZjdmN2Y3ZjFhMzQwXCIsXCI1ZTNjOTliMmFiZDJmZGI4NjNlNjYxMDFcIixcIjVlM2M5OWIyYWJkMmY3ZjdmN2ZkYjg2M2U2NjEwMVwiLFwiNTQyNzg4OTk4ZWMzZDhkYWViZmVlMGI2ZjFhMzQwYjM1ODA2XCIsXCI1NDI3ODg5OThlYzNkOGRhZWJmN2Y3ZjdmZWUwYjZmMWEzNDBiMzU4MDZcIixcIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNlwiLFwiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZjdmN2Y3ZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2XCIsXCIyZDAwNGI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDY3ZjNiMDhcIixcIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOFwiKS5tYXAoZmYpLGh5PWNmKGx5KSxkeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWY4YTYyZjdmN2Y3NjdhOWNmXCIsXCJjYTAwMjBmNGE1ODI5MmM1ZGUwNTcxYjBcIixcImNhMDAyMGY0YTU4MmY3ZjdmNzkyYzVkZTA1NzFiMFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZDFlNWYwNjdhOWNmMjE2NmFjXCIsXCJiMjE4MmJlZjhhNjJmZGRiYzdmN2Y3ZjdkMWU1ZjA2N2E5Y2YyMTY2YWNcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhY1wiLFwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZjdmN2Y3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWMwNTMwNjFcIixcIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MVwiKS5tYXAoZmYpLHB5PWNmKGR5KSx2eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWY4YTYyZmZmZmZmOTk5OTk5XCIsXCJjYTAwMjBmNGE1ODJiYWJhYmE0MDQwNDBcIixcImNhMDAyMGY0YTU4MmZmZmZmZmJhYmFiYTQwNDA0MFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZTBlMGUwOTk5OTk5NGQ0ZDRkXCIsXCJiMjE4MmJlZjhhNjJmZGRiYzdmZmZmZmZlMGUwZTA5OTk5OTk0ZDRkNGRcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZFwiLFwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZmZmZmZmZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGQxYTFhMWFcIixcIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYVwiKS5tYXAoZmYpLGd5PWNmKHZ5KSx5eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTFiZmRiXCIsXCJkNzE5MWNmZGFlNjFhYmQ5ZTkyYzdiYjZcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZDllOTJjN2JiNlwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDkwZTBmM2Y4OTFiZmRiNDU3NWI0XCIsXCJkNzMwMjdmYzhkNTlmZWUwOTBmZmZmYmZlMGYzZjg5MWJmZGI0NTc1YjRcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNFwiLFwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZmZmZmJmZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0XCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQzMTM2OTVcIixcImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NVwiKS5tYXAoZmYpLF95PWNmKHl5KSxieT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTFjZjYwXCIsXCJkNzE5MWNmZGFlNjFhNmQ5NmExYTk2NDFcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmE2ZDk2YTFhOTY0MVwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDhiZDllZjhiOTFjZjYwMWE5ODUwXCIsXCJkNzMwMjdmYzhkNTlmZWUwOGJmZmZmYmZkOWVmOGI5MWNmNjAxYTk4NTBcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MFwiLFwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwXCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTAwMDY4MzdcIixcImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzN1wiKS5tYXAoZmYpLG15PWNmKGJ5KSx4eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTlkNTk0XCIsXCJkNzE5MWNmZGFlNjFhYmRkYTQyYjgzYmFcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZGRhNDJiODNiYVwiLFwiZDUzZTRmZmM4ZDU5ZmVlMDhiZTZmNTk4OTlkNTk0MzI4OGJkXCIsXCJkNTNlNGZmYzhkNTlmZWUwOGJmZmZmYmZlNmY1OTg5OWQ1OTQzMjg4YmRcIixcImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZFwiLFwiZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkXCIsXCI5ZTAxNDJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmQ1ZTRmYTJcIixcIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMlwiKS5tYXAoZmYpLHd5PWNmKHh5KSxNeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTVmNWY5OTlkOGM5MmNhMjVmXCIsXCJlZGY4ZmJiMmUyZTI2NmMyYTQyMzhiNDVcIixcImVkZjhmYmIyZTJlMjY2YzJhNDJjYTI1ZjAwNmQyY1wiLFwiZWRmOGZiY2NlY2U2OTlkOGM5NjZjMmE0MmNhMjVmMDA2ZDJjXCIsXCJlZGY4ZmJjY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDU4MjRcIixcImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNFwiLFwiZjdmY2ZkZTVmNWY5Y2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA2ZDJjMDA0NDFiXCIpLm1hcChmZiksQXk9Y2YoTXkpLFR5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlMGVjZjQ5ZWJjZGE4ODU2YTdcIixcImVkZjhmYmIzY2RlMzhjOTZjNjg4NDE5ZFwiLFwiZWRmOGZiYjNjZGUzOGM5NmM2ODg1NmE3ODEwZjdjXCIsXCJlZGY4ZmJiZmQzZTY5ZWJjZGE4Yzk2YzY4ODU2YTc4MTBmN2NcIixcImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YlwiLFwiZjdmY2ZkZTBlY2Y0YmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkNmUwMTZiXCIsXCJmN2ZjZmRlMGVjZjRiZmQzZTY5ZWJjZGE4Yzk2YzY4YzZiYjE4ODQxOWQ4MTBmN2M0ZDAwNGJcIikubWFwKGZmKSxOeT1jZihUeSksU3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImUwZjNkYmE4ZGRiNTQzYTJjYVwiLFwiZjBmOWU4YmFlNGJjN2JjY2M0MmI4Y2JlXCIsXCJmMGY5ZThiYWU0YmM3YmNjYzQ0M2EyY2EwODY4YWNcIixcImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDQzYTJjYTA4NjhhY1wiLFwiZjBmOWU4Y2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllXCIsXCJmN2ZjZjBlMGYzZGJjY2ViYzVhOGRkYjU3YmNjYzQ0ZWIzZDMyYjhjYmUwODU4OWVcIixcImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NjhhYzA4NDA4MVwiKS5tYXAoZmYpLEV5PWNmKFN5KSxreT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmVlOGM4ZmRiYjg0ZTM0YTMzXCIsXCJmZWYwZDlmZGNjOGFmYzhkNTlkNzMwMWZcIixcImZlZjBkOWZkY2M4YWZjOGQ1OWUzNGEzM2IzMDAwMFwiLFwiZmVmMGQ5ZmRkNDllZmRiYjg0ZmM4ZDU5ZTM0YTMzYjMwMDAwXCIsXCJmZWYwZDlmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWY5OTAwMDBcIixcImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMFwiLFwiZmZmN2VjZmVlOGM4ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmYjMwMDAwN2YwMDAwXCIpLm1hcChmZiksQ3k9Y2Yoa3kpLFB5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlY2UyZjBhNmJkZGIxYzkwOTlcIixcImY2ZWZmN2JkYzllMTY3YTljZjAyODE4YVwiLFwiZjZlZmY3YmRjOWUxNjdhOWNmMWM5MDk5MDE2YzU5XCIsXCJmNmVmZjdkMGQxZTZhNmJkZGI2N2E5Y2YxYzkwOTkwMTZjNTlcIixcImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MFwiLFwiZmZmN2ZiZWNlMmYwZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2NDUwXCIsXCJmZmY3ZmJlY2UyZjBkMGQxZTZhNmJkZGI2N2E5Y2YzNjkwYzAwMjgxOGEwMTZjNTkwMTQ2MzZcIikubWFwKGZmKSx6eT1jZihQeSksUnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVjZTdmMmE2YmRkYjJiOGNiZVwiLFwiZjFlZWY2YmRjOWUxNzRhOWNmMDU3MGIwXCIsXCJmMWVlZjZiZGM5ZTE3NGE5Y2YyYjhjYmUwNDVhOGRcIixcImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjJiOGNiZTA0NWE4ZFwiLFwiZjFlZWY2ZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiXCIsXCJmZmY3ZmJlY2U3ZjJkMGQxZTZhNmJkZGI3NGE5Y2YzNjkwYzAwNTcwYjAwMzRlN2JcIixcImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDA0NWE4ZDAyMzg1OFwiKS5tYXAoZmYpLEx5PWNmKFJ5KSxEeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTdlMWVmYzk5NGM3ZGQxYzc3XCIsXCJmMWVlZjZkN2I1ZDhkZjY1YjBjZTEyNTZcIixcImYxZWVmNmQ3YjVkOGRmNjViMGRkMWM3Nzk4MDA0M1wiLFwiZjFlZWY2ZDRiOWRhYzk5NGM3ZGY2NWIwZGQxYzc3OTgwMDQzXCIsXCJmMWVlZjZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5MTAwM2ZcIixcImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZlwiLFwiZjdmNGY5ZTdlMWVmZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTgwMDQzNjcwMDFmXCIpLm1hcChmZiksVXk9Y2YoRHkpLHF5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZGUwZGRmYTlmYjVjNTFiOGFcIixcImZlZWJlMmZiYjRiOWY3NjhhMWFlMDE3ZVwiLFwiZmVlYmUyZmJiNGI5Zjc2OGExYzUxYjhhN2EwMTc3XCIsXCJmZWViZTJmY2M1YzBmYTlmYjVmNzY4YTFjNTFiOGE3YTAxNzdcIixcImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3N1wiLFwiZmZmN2YzZmRlMGRkZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3XCIsXCJmZmY3ZjNmZGUwZGRmY2M1YzBmYTlmYjVmNzY4YTFkZDM0OTdhZTAxN2U3YTAxNzc0OTAwNmFcIikubWFwKGZmKSxPeT1jZihxeSksWXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVkZjhiMTdmY2RiYjJjN2ZiOFwiLFwiZmZmZmNjYTFkYWI0NDFiNmM0MjI1ZWE4XCIsXCJmZmZmY2NhMWRhYjQ0MWI2YzQyYzdmYjgyNTM0OTRcIixcImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDJjN2ZiODI1MzQ5NFwiLFwiZmZmZmNjYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0XCIsXCJmZmZmZDllZGY4YjFjN2U5YjQ3ZmNkYmI0MWI2YzQxZDkxYzAyMjVlYTgwYzJjODRcIixcImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODI1MzQ5NDA4MWQ1OFwiKS5tYXAoZmYpLEJ5PWNmKFl5KSxGeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZjdmY2I5YWRkZDhlMzFhMzU0XCIsXCJmZmZmY2NjMmU2OTk3OGM2NzkyMzg0NDNcIixcImZmZmZjY2MyZTY5OTc4YzY3OTMxYTM1NDAwNjgzN1wiLFwiZmZmZmNjZDlmMGEzYWRkZDhlNzhjNjc5MzFhMzU0MDA2ODM3XCIsXCJmZmZmY2NkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDVhMzJcIixcImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMlwiLFwiZmZmZmU1ZjdmY2I5ZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA2ODM3MDA0NTI5XCIpLm1hcChmZiksSXk9Y2YoRnkpLGp5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZmY3YmNmZWM0NGZkOTVmMGVcIixcImZmZmZkNGZlZDk4ZWZlOTkyOWNjNGMwMlwiLFwiZmZmZmQ0ZmVkOThlZmU5OTI5ZDk1ZjBlOTkzNDA0XCIsXCJmZmZmZDRmZWUzOTFmZWM0NGZmZTk5MjlkOTVmMGU5OTM0MDRcIixcImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNFwiLFwiZmZmZmU1ZmZmN2JjZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOGMyZDA0XCIsXCJmZmZmZTVmZmY3YmNmZWUzOTFmZWM0NGZmZTk5MjllYzcwMTRjYzRjMDI5OTM0MDQ2NjI1MDZcIikubWFwKGZmKSxIeT1jZihqeSksWHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZmZWRhMGZlYjI0Y2YwM2IyMFwiLFwiZmZmZmIyZmVjYzVjZmQ4ZDNjZTMxYTFjXCIsXCJmZmZmYjJmZWNjNWNmZDhkM2NmMDNiMjBiZDAwMjZcIixcImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2YwM2IyMGJkMDAyNlwiLFwiZmZmZmIyZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2XCIsXCJmZmZmY2NmZmVkYTBmZWQ5NzZmZWIyNGNmZDhkM2NmYzRlMmFlMzFhMWNiMTAwMjZcIixcImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2JkMDAyNjgwMDAyNlwiKS5tYXAoZmYpLEd5PWNmKFh5KSxWeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZGVlYmY3OWVjYWUxMzE4MmJkXCIsXCJlZmYzZmZiZGQ3ZTc2YmFlZDYyMTcxYjVcIixcImVmZjNmZmJkZDdlNzZiYWVkNjMxODJiZDA4NTE5Y1wiLFwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2MzE4MmJkMDg1MTljXCIsXCJlZmYzZmZjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODQ1OTRcIixcImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NFwiLFwiZjdmYmZmZGVlYmY3YzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg1MTljMDgzMDZiXCIpLm1hcChmZiksJHk9Y2YoVnkpLFd5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlNWY1ZTBhMWQ5OWIzMWEzNTRcIixcImVkZjhlOWJhZTRiMzc0YzQ3NjIzOGI0NVwiLFwiZWRmOGU5YmFlNGIzNzRjNDc2MzFhMzU0MDA2ZDJjXCIsXCJlZGY4ZTljN2U5YzBhMWQ5OWI3NGM0NzYzMWEzNTQwMDZkMmNcIixcImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMlwiLFwiZjdmY2Y1ZTVmNWUwYzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA1YTMyXCIsXCJmN2ZjZjVlNWY1ZTBjN2U5YzBhMWQ5OWI3NGM0NzY0MWFiNWQyMzhiNDUwMDZkMmMwMDQ0MWJcIikubWFwKGZmKSxaeT1jZihXeSksUXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImYwZjBmMGJkYmRiZDYzNjM2M1wiLFwiZjdmN2Y3Y2NjY2NjOTY5Njk2NTI1MjUyXCIsXCJmN2Y3ZjdjY2NjY2M5Njk2OTY2MzYzNjMyNTI1MjVcIixcImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjYzNjM2MzI1MjUyNVwiLFwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1XCIsXCJmZmZmZmZmMGYwZjBkOWQ5ZDliZGJkYmQ5Njk2OTY3MzczNzM1MjUyNTIyNTI1MjVcIixcImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNTAwMDAwMFwiKS5tYXAoZmYpLEp5PWNmKFF5KSxLeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWZlZGY1YmNiZGRjNzU2YmIxXCIsXCJmMmYwZjdjYmM5ZTI5ZTlhYzg2YTUxYTNcIixcImYyZjBmN2NiYzllMjllOWFjODc1NmJiMTU0Mjc4ZlwiLFwiZjJmMGY3ZGFkYWViYmNiZGRjOWU5YWM4NzU2YmIxNTQyNzhmXCIsXCJmMmYwZjdkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM0YTE0ODZcIixcImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NlwiLFwiZmNmYmZkZWZlZGY1ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNTQyNzhmM2YwMDdkXCIpLm1hcChmZiksdF89Y2YoS3kpLG5fPW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZWUwZDJmYzkyNzJkZTJkMjZcIixcImZlZTVkOWZjYWU5MWZiNmE0YWNiMTgxZFwiLFwiZmVlNWQ5ZmNhZTkxZmI2YTRhZGUyZDI2YTUwZjE1XCIsXCJmZWU1ZDlmY2JiYTFmYzkyNzJmYjZhNGFkZTJkMjZhNTBmMTVcIixcImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZFwiLFwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkOTkwMDBkXCIsXCJmZmY1ZjBmZWUwZDJmY2JiYTFmYzkyNzJmYjZhNGFlZjNiMmNjYjE4MWRhNTBmMTU2NzAwMGRcIikubWFwKGZmKSxlXz1jZihuXykscl89bmV3IEFycmF5KDMpLmNvbmNhdChcImZlZTZjZWZkYWU2YmU2NTUwZFwiLFwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZDk0NzAxXCIsXCJmZWVkZGVmZGJlODVmZDhkM2NlNjU1MGRhNjM2MDNcIixcImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2U2NTUwZGE2MzYwM1wiLFwiZmVlZGRlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0XCIsXCJmZmY1ZWJmZWU2Y2VmZGQwYTJmZGFlNmJmZDhkM2NmMTY5MTNkOTQ4MDE4YzJkMDRcIixcImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMWE2MzYwMzdmMjcwNFwiKS5tYXAoZmYpLGlfPWNmKHJfKSxvXz14bChadCgzMDAsLjUsMCksWnQoLTI0MCwuNSwxKSksYV89eGwoWnQoLTEwMCwuNzUsLjM1KSxadCg4MCwxLjUsLjgpKSx1Xz14bChadCgyNjAsLjc1LC4zNSksWnQoODAsMS41LC44KSksZl89WnQoKSxjXz1SdCgpLHNfPU1hdGguUEkvMyxsXz0yKk1hdGguUEkvMyxoXz1zZihmZihcIjQ0MDE1NDQ0MDI1NjQ1MDQ1NzQ1MDU1OTQ2MDc1YTQ2MDg1YzQ2MGE1ZDQ2MGI1ZTQ3MGQ2MDQ3MGU2MTQ3MTA2MzQ3MTE2NDQ3MTM2NTQ4MTQ2NzQ4MTY2ODQ4MTc2OTQ4MTg2YTQ4MWE2YzQ4MWI2ZDQ4MWM2ZTQ4MWQ2ZjQ4MWY3MDQ4MjA3MTQ4MjE3MzQ4MjM3NDQ4MjQ3NTQ4MjU3NjQ4MjY3NzQ4Mjg3ODQ4Mjk3OTQ3MmE3YTQ3MmM3YTQ3MmQ3YjQ3MmU3YzQ3MmY3ZDQ2MzA3ZTQ2MzI3ZTQ2MzM3ZjQ2MzQ4MDQ1MzU4MTQ1Mzc4MTQ1Mzg4MjQ0Mzk4MzQ0M2E4MzQ0M2I4NDQzM2Q4NDQzM2U4NTQyM2Y4NTQyNDA4NjQyNDE4NjQxNDI4NzQxNDQ4NzQwNDU4ODQwNDY4ODNmNDc4ODNmNDg4OTNlNDk4OTNlNGE4OTNlNGM4YTNkNGQ4YTNkNGU4YTNjNGY4YTNjNTA4YjNiNTE4YjNiNTI4YjNhNTM4YjNhNTQ4YzM5NTU4YzM5NTY4YzM4NTg4YzM4NTk4YzM3NWE4YzM3NWI4ZDM2NWM4ZDM2NWQ4ZDM1NWU4ZDM1NWY4ZDM0NjA4ZDM0NjE4ZDMzNjI4ZDMzNjM4ZDMyNjQ4ZTMyNjU4ZTMxNjY4ZTMxNjc4ZTMxNjg4ZTMwNjk4ZTMwNmE4ZTJmNmI4ZTJmNmM4ZTJlNmQ4ZTJlNmU4ZTJlNmY4ZTJkNzA4ZTJkNzE4ZTJjNzE4ZTJjNzI4ZTJjNzM4ZTJiNzQ4ZTJiNzU4ZTJhNzY4ZTJhNzc4ZTJhNzg4ZTI5Nzk4ZTI5N2E4ZTI5N2I4ZTI4N2M4ZTI4N2Q4ZTI3N2U4ZTI3N2Y4ZTI3ODA4ZTI2ODE4ZTI2ODI4ZTI2ODI4ZTI1ODM4ZTI1ODQ4ZTI1ODU4ZTI0ODY4ZTI0ODc4ZTIzODg4ZTIzODk4ZTIzOGE4ZDIyOGI4ZDIyOGM4ZDIyOGQ4ZDIxOGU4ZDIxOGY4ZDIxOTA4ZDIxOTE4YzIwOTI4YzIwOTI4YzIwOTM4YzFmOTQ4YzFmOTU4YjFmOTY4YjFmOTc4YjFmOTg4YjFmOTk4YTFmOWE4YTFlOWI4YTFlOWM4OTFlOWQ4OTFmOWU4OTFmOWY4ODFmYTA4ODFmYTE4ODFmYTE4NzFmYTI4NzIwYTM4NjIwYTQ4NjIxYTU4NTIxYTY4NTIyYTc4NTIyYTg4NDIzYTk4MzI0YWE4MzI1YWI4MjI1YWM4MjI2YWQ4MTI3YWQ4MTI4YWU4MDI5YWY3ZjJhYjA3ZjJjYjE3ZTJkYjI3ZDJlYjM3YzJmYjQ3YzMxYjU3YjMyYjY3YTM0YjY3OTM1Yjc3OTM3Yjg3ODM4Yjk3NzNhYmE3NjNiYmI3NTNkYmM3NDNmYmM3MzQwYmQ3MjQyYmU3MTQ0YmY3MDQ2YzA2ZjQ4YzE2ZTRhYzE2ZDRjYzI2YzRlYzM2YjUwYzQ2YTUyYzU2OTU0YzU2ODU2YzY2NzU4Yzc2NTVhYzg2NDVjYzg2MzVlYzk2MjYwY2E2MDYzY2I1ZjY1Y2I1ZTY3Y2M1YzY5Y2Q1YjZjY2Q1YTZlY2U1ODcwY2Y1NzczZDA1Njc1ZDA1NDc3ZDE1MzdhZDE1MTdjZDI1MDdmZDM0ZTgxZDM0ZDg0ZDQ0Yjg2ZDU0OTg5ZDU0ODhiZDY0NjhlZDY0NTkwZDc0MzkzZDc0MTk1ZDg0MDk4ZDgzZTliZDkzYzlkZDkzYmEwZGEzOWEyZGEzN2E1ZGIzNmE4ZGIzNGFhZGMzMmFkZGMzMGIwZGQyZmIyZGQyZGI1ZGUyYmI4ZGUyOWJhZGUyOGJkZGYyNmMwZGYyNWMyZGYyM2M1ZTAyMWM4ZTAyMGNhZTExZmNkZTExZGQwZTExY2QyZTIxYmQ1ZTIxYWQ4ZTIxOWRhZTMxOWRkZTMxOGRmZTMxOGUyZTQxOGU1ZTQxOWU3ZTQxOWVhZTUxYWVjZTUxYmVmZTUxY2YxZTUxZGY0ZTYxZWY2ZTYyMGY4ZTYyMWZiZTcyM2ZkZTcyNVwiKSksZF89c2YoZmYoXCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMDkwMjAyMGIwMjAyMGQwMzAzMGYwMzAzMTIwNDA0MTQwNTA0MTYwNjA1MTgwNjA1MWEwNzA2MWMwODA3MWUwOTA3MjAwYTA4MjIwYjA5MjQwYzA5MjYwZDBhMjkwZTBiMmIxMDBiMmQxMTBjMmYxMjBkMzExMzBkMzQxNDBlMzYxNTBlMzgxNjBmM2IxODBmM2QxOTEwM2YxYTEwNDIxYzEwNDQxZDExNDcxZTExNDkyMDExNGIyMTExNGUyMjExNTAyNDEyNTMyNTEyNTUyNzEyNTgyOTExNWEyYTExNWMyYzExNWYyZDExNjEyZjExNjMzMTExNjUzMzEwNjczNDEwNjkzNjEwNmIzODEwNmMzOTBmNmUzYjBmNzAzZDBmNzEzZjBmNzI0MDBmNzQ0MjBmNzU0NDBmNzY0NTEwNzc0NzEwNzg0OTEwNzg0YTEwNzk0YzExN2E0ZTExN2I0ZjEyN2I1MTEyN2M1MjEzN2M1NDEzN2Q1NjE0N2Q1NzE1N2U1OTE1N2U1YTE2N2U1YzE2N2Y1ZDE3N2Y1ZjE4N2Y2MDE4ODA2MjE5ODA2NDFhODA2NTFhODA2NzFiODA2ODFjODE2YTFjODE2YjFkODE2ZDFkODE2ZTFlODE3MDFmODE3MjFmODE3MzIwODE3NTIxODE3NjIxODE3ODIyODE3OTIyODI3YjIzODI3YzIzODI3ZTI0ODI4MDI1ODI4MTI1ODE4MzI2ODE4NDI2ODE4NjI3ODE4ODI3ODE4OTI4ODE4YjI5ODE4YzI5ODE4ZTJhODE5MDJhODE5MTJiODE5MzJiODA5NDJjODA5NjJjODA5ODJkODA5OTJkODA5YjJlN2Y5YzJlN2Y5ZTJmN2ZhMDJmN2ZhMTMwN2VhMzMwN2VhNTMxN2VhNjMxN2RhODMyN2RhYTMzN2RhYjMzN2NhZDM0N2NhZTM0N2JiMDM1N2JiMjM1N2JiMzM2N2FiNTM2N2FiNzM3NzliODM3NzliYTM4NzhiYzM5NzhiZDM5NzdiZjNhNzdjMDNhNzZjMjNiNzVjNDNjNzVjNTNjNzRjNzNkNzNjODNlNzNjYTNlNzJjYzNmNzFjZDQwNzFjZjQwNzBkMDQxNmZkMjQyNmZkMzQzNmVkNTQ0NmRkNjQ1NmNkODQ1NmNkOTQ2NmJkYjQ3NmFkYzQ4NjlkZTQ5NjhkZjRhNjhlMDRjNjdlMjRkNjZlMzRlNjVlNDRmNjRlNTUwNjRlNzUyNjNlODUzNjJlOTU0NjJlYTU2NjFlYjU3NjBlYzU4NjBlZDVhNWZlZTViNWVlZjVkNWVmMDVmNWVmMTYwNWRmMjYyNWRmMjY0NWNmMzY1NWNmNDY3NWNmNDY5NWNmNTZiNWNmNjZjNWNmNjZlNWNmNzcwNWNmNzcyNWNmODc0NWNmODc2NWNmOTc4NWRmOTc5NWRmOTdiNWRmYTdkNWVmYTdmNWVmYTgxNWZmYjgzNWZmYjg1NjBmYjg3NjFmYzg5NjFmYzhhNjJmYzhjNjNmYzhlNjRmYzkwNjVmZDkyNjZmZDk0NjdmZDk2NjhmZDk4NjlmZDlhNmFmZDliNmJmZTlkNmNmZTlmNmRmZWExNmVmZWEzNmZmZWE1NzFmZWE3NzJmZWE5NzNmZWFhNzRmZWFjNzZmZWFlNzdmZWIwNzhmZWIyN2FmZWI0N2JmZWI2N2NmZWI3N2VmZWI5N2ZmZWJiODFmZWJkODJmZWJmODRmZWMxODVmZWMyODdmZWM0ODhmZWM2OGFmZWM4OGNmZWNhOGRmZWNjOGZmZWNkOTBmZWNmOTJmZWQxOTRmZWQzOTVmZWQ1OTdmZWQ3OTlmZWQ4OWFmZGRhOWNmZGRjOWVmZGRlYTBmZGUwYTFmZGUyYTNmZGUzYTVmZGU1YTdmZGU3YTlmZGU5YWFmZGViYWNmY2VjYWVmY2VlYjBmY2YwYjJmY2YyYjRmY2Y0YjZmY2Y2YjhmY2Y3YjlmY2Y5YmJmY2ZiYmRmY2ZkYmZcIikpLHBfPXNmKGZmKFwiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTBhMDIwMjBjMDIwMjBlMDMwMjEwMDQwMzEyMDQwMzE0MDUwNDE3MDYwNDE5MDcwNTFiMDgwNTFkMDkwNjFmMGEwNzIyMGIwNzI0MGMwODI2MGQwODI5MGUwOTJiMTAwOTJkMTEwYTMwMTIwYTMyMTQwYjM0MTUwYjM3MTYwYjM5MTgwYzNjMTkwYzNlMWIwYzQxMWMwYzQzMWUwYzQ1MWYwYzQ4MjEwYzRhMjMwYzRjMjQwYzRmMjYwYzUxMjgwYjUzMjkwYjU1MmIwYjU3MmQwYjU5MmYwYTViMzEwYTVjMzIwYTVlMzQwYTVmMzYwOTYxMzgwOTYyMzkwOTYzM2IwOTY0M2QwOTY1M2UwOTY2NDAwYTY3NDIwYTY4NDQwYTY4NDUwYTY5NDcwYjZhNDkwYjZhNGEwYzZiNGMwYzZiNGQwZDZjNGYwZDZjNTEwZTZjNTIwZTZkNTQwZjZkNTUwZjZkNTcxMDZlNTkxMDZlNWExMTZlNWMxMjZlNWQxMjZlNWYxMzZlNjExMzZlNjIxNDZlNjQxNTZlNjUxNTZlNjcxNjZlNjkxNjZlNmExNzZlNmMxODZlNmQxODZlNmYxOTZlNzExOTZlNzIxYTZlNzQxYTZlNzUxYjZlNzcxYzZkNzgxYzZkN2ExZDZkN2MxZDZkN2QxZTZkN2YxZTZjODAxZjZjODIyMDZjODQyMDZiODUyMTZiODcyMTZiODgyMjZhOGEyMjZhOGMyMzY5OGQyMzY5OGYyNDY5OTAyNTY4OTIyNTY4OTMyNjY3OTUyNjY3OTcyNzY2OTgyNzY2OWEyODY1OWIyOTY0OWQyOTY0OWYyYTYzYTAyYTYzYTIyYjYyYTMyYzYxYTUyYzYwYTYyZDYwYTgyZTVmYTkyZTVlYWIyZjVlYWQzMDVkYWUzMDVjYjAzMTViYjEzMjVhYjMzMjVhYjQzMzU5YjYzNDU4YjczNTU3YjkzNTU2YmEzNjU1YmMzNzU0YmQzODUzYmYzOTUyYzAzYTUxYzEzYTUwYzMzYjRmYzQzYzRlYzYzZDRkYzczZTRjYzgzZjRiY2E0MDRhY2I0MTQ5Y2M0MjQ4Y2U0MzQ3Y2Y0NDQ2ZDA0NTQ1ZDI0NjQ0ZDM0NzQzZDQ0ODQyZDU0YTQxZDc0YjNmZDg0YzNlZDk0ZDNkZGE0ZTNjZGI1MDNiZGQ1MTNhZGU1MjM4ZGY1MzM3ZTA1NTM2ZTE1NjM1ZTI1NzM0ZTM1OTMzZTQ1YTMxZTU1YzMwZTY1ZDJmZTc1ZTJlZTg2MDJkZTk2MTJiZWE2MzJhZWI2NDI5ZWI2NjI4ZWM2NzI2ZWQ2OTI1ZWU2YTI0ZWY2YzIzZWY2ZTIxZjA2ZjIwZjE3MTFmZjE3MzFkZjI3NDFjZjM3NjFiZjM3ODE5ZjQ3OTE4ZjU3YjE3ZjU3ZDE1ZjY3ZTE0ZjY4MDEzZjc4MjEyZjc4NDEwZjg4NTBmZjg4NzBlZjg4OTBjZjk4YjBiZjk4YzBhZjk4ZTA5ZmE5MDA4ZmE5MjA3ZmE5NDA3ZmI5NjA2ZmI5NzA2ZmI5OTA2ZmI5YjA2ZmI5ZDA3ZmM5ZjA3ZmNhMTA4ZmNhMzA5ZmNhNTBhZmNhNjBjZmNhODBkZmNhYTBmZmNhYzExZmNhZTEyZmNiMDE0ZmNiMjE2ZmNiNDE4ZmJiNjFhZmJiODFkZmJiYTFmZmJiYzIxZmJiZTIzZmFjMDI2ZmFjMjI4ZmFjNDJhZmFjNjJkZjljNzJmZjljOTMyZjljYjM1ZjhjZDM3ZjhjZjNhZjdkMTNkZjdkMzQwZjZkNTQzZjZkNzQ2ZjVkOTQ5ZjVkYjRjZjRkZDRmZjRkZjUzZjRlMTU2ZjNlMzVhZjNlNTVkZjJlNjYxZjJlODY1ZjJlYTY5ZjFlYzZkZjFlZDcxZjFlZjc1ZjFmMTc5ZjJmMjdkZjJmNDgyZjNmNTg2ZjNmNjhhZjRmODhlZjVmOTkyZjZmYTk2ZjhmYjlhZjlmYzlkZmFmZGExZmNmZmE0XCIpKSx2Xz1zZihmZihcIjBkMDg4NzEwMDc4ODEzMDc4OTE2MDc4YTE5MDY4YzFiMDY4ZDFkMDY4ZTIwMDY4ZjIyMDY5MDI0MDY5MTI2MDU5MTI4MDU5MjJhMDU5MzJjMDU5NDJlMDU5NTJmMDU5NjMxMDU5NzMzMDU5NzM1MDQ5ODM3MDQ5OTM4MDQ5YTNhMDQ5YTNjMDQ5YjNlMDQ5YzNmMDQ5YzQxMDQ5ZDQzMDM5ZTQ0MDM5ZTQ2MDM5ZjQ4MDM5ZjQ5MDNhMDRiMDNhMTRjMDJhMTRlMDJhMjUwMDJhMjUxMDJhMzUzMDJhMzU1MDJhNDU2MDFhNDU4MDFhNDU5MDFhNTViMDFhNTVjMDFhNjVlMDFhNjYwMDFhNjYxMDBhNzYzMDBhNzY0MDBhNzY2MDBhNzY3MDBhODY5MDBhODZhMDBhODZjMDBhODZlMDBhODZmMDBhODcxMDBhODcyMDFhODc0MDFhODc1MDFhODc3MDFhODc4MDFhODdhMDJhODdiMDJhODdkMDNhODdlMDNhODgwMDRhODgxMDRhNzgzMDVhNzg0MDVhNzg2MDZhNjg3MDdhNjg4MDhhNjhhMDlhNThiMGFhNThkMGJhNThlMGNhNDhmMGRhNDkxMGVhMzkyMGZhMzk0MTBhMjk1MTFhMTk2MTNhMTk4MTRhMDk5MTU5ZjlhMTY5ZjljMTc5ZTlkMTg5ZDllMTk5ZGEwMWE5Y2ExMWI5YmEyMWQ5YWEzMWU5YWE1MWY5OWE2MjA5OGE3MjE5N2E4MjI5NmFhMjM5NWFiMjQ5NGFjMjY5NGFkMjc5M2FlMjg5MmIwMjk5MWIxMmE5MGIyMmI4ZmIzMmM4ZWI0MmU4ZGI1MmY4Y2I2MzA4YmI3MzE4YWI4MzI4OWJhMzM4OGJiMzQ4OGJjMzU4N2JkMzc4NmJlMzg4NWJmMzk4NGMwM2E4M2MxM2I4MmMyM2M4MWMzM2Q4MGM0M2U3ZmM1NDA3ZWM2NDE3ZGM3NDI3Y2M4NDM3YmM5NDQ3YWNhNDU3YWNiNDY3OWNjNDc3OGNjNDk3N2NkNGE3NmNlNGI3NWNmNGM3NGQwNGQ3M2QxNGU3MmQyNGY3MWQzNTE3MWQ0NTI3MGQ1NTM2ZmQ1NTQ2ZWQ2NTU2ZGQ3NTY2Y2Q4NTc2YmQ5NTg2YWRhNWE2YWRhNWI2OWRiNWM2OGRjNWQ2N2RkNWU2NmRlNWY2NWRlNjE2NGRmNjI2M2UwNjM2M2UxNjQ2MmUyNjU2MWUyNjY2MGUzNjg1ZmU0Njk1ZWU1NmE1ZGU1NmI1ZGU2NmM1Y2U3NmU1YmU3NmY1YWU4NzA1OWU5NzE1OGU5NzI1N2VhNzQ1N2ViNzU1NmViNzY1NWVjNzc1NGVkNzk1M2VkN2E1MmVlN2I1MWVmN2M1MWVmN2U1MGYwN2Y0ZmYwODA0ZWYxODE0ZGYxODM0Y2YyODQ0YmYzODU0YmYzODc0YWY0ODg0OWY0ODk0OGY1OGI0N2Y1OGM0NmY2OGQ0NWY2OGY0NGY3OTA0NGY3OTE0M2Y3OTM0MmY4OTQ0MWY4OTU0MGY5OTczZmY5OTgzZWY5OWEzZWZhOWIzZGZhOWMzY2ZhOWUzYmZiOWYzYWZiYTEzOWZiYTIzOGZjYTMzOGZjYTUzN2ZjYTYzNmZjYTgzNWZjYTkzNGZkYWIzM2ZkYWMzM2ZkYWUzMmZkYWYzMWZkYjEzMGZkYjIyZmZkYjQyZmZkYjUyZWZlYjcyZGZlYjgyY2ZlYmEyY2ZlYmIyYmZlYmQyYWZlYmUyYWZlYzAyOWZkYzIyOWZkYzMyOGZkYzUyN2ZkYzYyN2ZkYzgyN2ZkY2EyNmZkY2IyNmZjY2QyNWZjY2UyNWZjZDAyNWZjZDIyNWZiZDMyNGZiZDUyNGZiZDcyNGZhZDgyNGZhZGEyNGY5ZGMyNGY5ZGQyNWY4ZGYyNWY4ZTEyNWY3ZTIyNWY3ZTQyNWY2ZTYyNmY2ZTgyNmY1ZTkyNmY1ZWIyN2Y0ZWQyN2YzZWUyN2YzZjAyN2YyZjIyN2YxZjQyNmYxZjUyNWYwZjcyNGYwZjkyMVwiKSksZ189TWF0aC5hYnMseV89TWF0aC5hdGFuMixfXz1NYXRoLmNvcyxiXz1NYXRoLm1heCxtXz1NYXRoLm1pbix4Xz1NYXRoLnNpbix3Xz1NYXRoLnNxcnQsTV89MWUtMTIsQV89TWF0aC5QSSxUXz1BXy8yLE5fPTIqQV87YmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OnRoaXMuX2NvbnRleHQubGluZVRvKHQsbil9fX07dmFyIFNfPUVmKG1mKTtTZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFTdGFydCgpfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYUVuZCgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLl9jdXJ2ZS5wb2ludChuKk1hdGguc2luKHQpLG4qLU1hdGguY29zKHQpKX19O3ZhciBFXz1BcnJheS5wcm90b3R5cGUuc2xpY2Usa189e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi9BXyk7dC5tb3ZlVG8oZSwwKSx0LmFyYygwLDAsZSwwLE5fKX19LENfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4vNSkvMjt0Lm1vdmVUbygtMyplLC1lKSx0LmxpbmVUbygtZSwtZSksdC5saW5lVG8oLWUsLTMqZSksdC5saW5lVG8oZSwtMyplKSx0LmxpbmVUbyhlLC1lKSx0LmxpbmVUbygzKmUsLWUpLHQubGluZVRvKDMqZSxlKSx0LmxpbmVUbyhlLGUpLHQubGluZVRvKGUsMyplKSx0LmxpbmVUbygtZSwzKmUpLHQubGluZVRvKC1lLGUpLHQubGluZVRvKC0zKmUsZSksdC5jbG9zZVBhdGgoKX19LFBfPU1hdGguc3FydCgxLzMpLHpfPTIqUF8sUl89e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi96Xykscj1lKlBfO3QubW92ZVRvKDAsLWUpLHQubGluZVRvKHIsMCksdC5saW5lVG8oMCxlKSx0LmxpbmVUbygtciwwKSx0LmNsb3NlUGF0aCgpfX0sTF89TWF0aC5zaW4oQV8vMTApL01hdGguc2luKDcqQV8vMTApLERfPU1hdGguc2luKE5fLzEwKSpMXyxVXz0tTWF0aC5jb3MoTl8vMTApKkxfLHFfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KC44OTA4MTMwOTE1MjkyODUyKm4pLHI9RF8qZSxpPVVfKmU7dC5tb3ZlVG8oMCwtZSksdC5saW5lVG8ocixpKTtmb3IodmFyIG89MTtvPDU7KytvKXt2YXIgYT1OXypvLzUsdT1NYXRoLmNvcyhhKSxmPU1hdGguc2luKGEpO3QubGluZVRvKGYqZSwtdSplKSx0LmxpbmVUbyh1KnItZippLGYqcit1KmkpfXQuY2xvc2VQYXRoKCl9fSxPXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydChuKSxyPS1lLzI7dC5yZWN0KHIscixlLGUpfX0sWV89TWF0aC5zcXJ0KDMpLEJfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9LU1hdGguc3FydChuLygzKllfKSk7dC5tb3ZlVG8oMCwyKmUpLHQubGluZVRvKC1ZXyplLC1lKSx0LmxpbmVUbyhZXyplLC1lKSx0LmNsb3NlUGF0aCgpfX0sRl89TWF0aC5zcXJ0KDMpLzIsSV89MS9NYXRoLnNxcnQoMTIpLGpfPTMqKElfLzIrMSksSF89e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi9qXykscj1lLzIsaT1lKklfLG89cixhPWUqSV8rZSx1PS1vLGY9YTt0Lm1vdmVUbyhyLGkpLHQubGluZVRvKG8sYSksdC5saW5lVG8odSxmKSx0LmxpbmVUbygtLjUqci1GXyppLEZfKnIrLS41KmkpLHQubGluZVRvKC0uNSpvLUZfKmEsRl8qbystLjUqYSksdC5saW5lVG8oLS41KnUtRl8qZixGXyp1Ky0uNSpmKSx0LmxpbmVUbygtLjUqcitGXyppLC0uNSppLUZfKnIpLHQubGluZVRvKC0uNSpvK0ZfKmEsLS41KmEtRl8qbyksdC5saW5lVG8oLS41KnUrRl8qZiwtLjUqZi1GXyp1KSx0LmNsb3NlUGF0aCgpfX0sWF89W2tfLENfLFJfLE9fLHFfLEJfLEhfXTtGZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAzOkJmKHRoaXMsdGhpcy5feDEsdGhpcy5feTEpO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2NvbnRleHQubGluZVRvKCg1KnRoaXMuX3gwK3RoaXMuX3gxKS82LCg1KnRoaXMuX3kwK3RoaXMuX3kxKS82KTtkZWZhdWx0OkJmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPW59fSxJZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCl9fSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gyPXQsdGhpcy5feTI9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94Mz10LHRoaXMuX3kzPW47YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDQ9dCx0aGlzLl95ND1uLHRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsKHRoaXMuX3kwKzQqdGhpcy5feTErbikvNik7YnJlYWs7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0samYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7dmFyIGU9KHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNixyPSh0aGlzLl95MCs0KnRoaXMuX3kxK24pLzY7dGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhlLHIpOnRoaXMuX2NvbnRleHQubW92ZVRvKGUscik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0sSGYucHJvdG90eXBlPXtsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W10sdGhpcy5fYmFzaXMubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LG49dGhpcy5feSxlPXQubGVuZ3RoLTE7aWYoZT4wKWZvcih2YXIgcixpPXRbMF0sbz1uWzBdLGE9dFtlXS1pLHU9bltlXS1vLGY9LTE7KytmPD1lOylyPWYvZSx0aGlzLl9iYXNpcy5wb2ludCh0aGlzLl9iZXRhKnRbZl0rKDEtdGhpcy5fYmV0YSkqKGkrciphKSx0aGlzLl9iZXRhKm5bZl0rKDEtdGhpcy5fYmV0YSkqKG8rcip1KSk7dGhpcy5feD10aGlzLl95PW51bGwsdGhpcy5fYmFzaXMubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtuKX19O3ZhciBHXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIDE9PT1uP25ldyBGZih0KTpuZXcgSGYodCxuKX1yZXR1cm4gZS5iZXRhPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oLjg1KTtHZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6WGYodGhpcyx0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPXQsdGhpcy5feTE9bjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgVl89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgR2YodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7VmYucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PW4pO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9bjticmVhaztkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgJF89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgVmYodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7JGYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6WGYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBXXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyAkZih0LG4pfXJldHVybiBlLnRlbnNpb249ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSgwKTtaZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mil9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe2lmKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7dmFyIGU9dGhpcy5feDItdCxyPXRoaXMuX3kyLW47dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhlKmUrcipyLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFpfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgWmYodCxuKTpuZXcgR2YodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtRZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsbil7aWYodD0rdCxuPStuLHRoaXMuX3BvaW50KXt2YXIgZT10aGlzLl94Mi10LHI9dGhpcy5feTItbjt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KGUqZStyKnIsdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PW4pO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9bjticmVhaztkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFFfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgUWYodCxuKTpuZXcgVmYodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtKZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtpZih0PSt0LG49K24sdGhpcy5fcG9pbnQpe3ZhciBlPXRoaXMuX3gyLXQscj10aGlzLl95Mi1uO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3coZSplK3Iqcix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6V2YodGhpcyx0LG4pfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgSl89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuP25ldyBKZih0LG4pOm5ldyAkZih0LDApfXJldHVybiBlLmFscGhhPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oLjUpO0tmLnByb3RvdHlwZT17YXJlYVN0YXJ0OllmLGFyZWFFbmQ6WWYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxwb2ludDpmdW5jdGlvbih0LG4pe3Q9K3Qsbj0rbix0aGlzLl9wb2ludD90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOih0aGlzLl9wb2ludD0xLHRoaXMuX2NvbnRleHQubW92ZVRvKHQsbikpfX0saWMucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOnJjKHRoaXMsdGhpcy5fdDAsZWModGhpcyx0aGlzLl90MCkpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt2YXIgZT1OYU47aWYodD0rdCxuPStuLHQhPT10aGlzLl94MXx8biE9PXRoaXMuX3kxKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHJjKHRoaXMsZWModGhpcyxlPW5jKHRoaXMsdCxuKSksZSk7YnJlYWs7ZGVmYXVsdDpyYyh0aGlzLHRoaXMuX3QwLGU9bmModGhpcyx0LG4pKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPW4sdGhpcy5fdDA9ZX19fSwob2MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaWMucHJvdG90eXBlKSkucG9pbnQ9ZnVuY3Rpb24odCxuKXtpYy5wcm90b3R5cGUucG9pbnQuY2FsbCh0aGlzLG4sdCl9LGFjLnByb3RvdHlwZT17bW92ZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fY29udGV4dC5tb3ZlVG8obix0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0sbGluZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fY29udGV4dC5saW5lVG8obix0KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG4sdCxyLGUsbyxpKX19LHVjLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsbj10aGlzLl95LGU9dC5sZW5ndGg7aWYoZSlpZih0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRbMF0sblswXSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odFswXSxuWzBdKSwyPT09ZSl0aGlzLl9jb250ZXh0LmxpbmVUbyh0WzFdLG5bMV0pO2Vsc2UgZm9yKHZhciByPWZjKHQpLGk9ZmMobiksbz0wLGE9MTthPGU7KytvLCsrYSl0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oclswXVtvXSxpWzBdW29dLHJbMV1bb10saVsxXVtvXSx0W2FdLG5bYV0pOyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PWUpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lLHRoaXMuX3g9dGhpcy5feT1udWxsfSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtuKX19LGNjLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiYyPT09dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDppZih0aGlzLl90PD0wKXRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsbiksdGhpcy5fY29udGV4dC5saW5lVG8odCxuKTtlbHNle3ZhciBlPXRoaXMuX3gqKDEtdGhpcy5fdCkrdCp0aGlzLl90O3RoaXMuX2NvbnRleHQubGluZVRvKGUsdGhpcy5feSksdGhpcy5fY29udGV4dC5saW5lVG8oZSxuKX19dGhpcy5feD10LHRoaXMuX3k9bn19LF9jLnByb3RvdHlwZT17Y29uc3RydWN0b3I6X2MsaW5zZXJ0OmZ1bmN0aW9uKHQsbil7dmFyIGUscixpO2lmKHQpe2lmKG4uUD10LG4uTj10Lk4sdC5OJiYodC5OLlA9biksdC5OPW4sdC5SKXtmb3IodD10LlI7dC5MOyl0PXQuTDt0Lkw9bn1lbHNlIHQuUj1uO2U9dH1lbHNlIHRoaXMuXz8odD13Yyh0aGlzLl8pLG4uUD1udWxsLG4uTj10LHQuUD10Lkw9bixlPXQpOihuLlA9bi5OPW51bGwsdGhpcy5fPW4sZT1udWxsKTtmb3Iobi5MPW4uUj1udWxsLG4uVT1lLG4uQz0hMCx0PW47ZSYmZS5DOyllPT09KHI9ZS5VKS5MPyhpPXIuUikmJmkuQz8oZS5DPWkuQz0hMSxyLkM9ITAsdD1yKToodD09PWUuUiYmKG1jKHRoaXMsZSksZT0odD1lKS5VKSxlLkM9ITEsci5DPSEwLHhjKHRoaXMscikpOihpPXIuTCkmJmkuQz8oZS5DPWkuQz0hMSxyLkM9ITAsdD1yKToodD09PWUuTCYmKHhjKHRoaXMsZSksZT0odD1lKS5VKSxlLkM9ITEsci5DPSEwLG1jKHRoaXMscikpLGU9dC5VO3RoaXMuXy5DPSExfSxyZW1vdmU6ZnVuY3Rpb24odCl7dC5OJiYodC5OLlA9dC5QKSx0LlAmJih0LlAuTj10Lk4pLHQuTj10LlA9bnVsbDt2YXIgbixlLHIsaT10LlUsbz10LkwsYT10LlI7aWYoZT1vP2E/d2MoYSk6bzphLGk/aS5MPT09dD9pLkw9ZTppLlI9ZTp0aGlzLl89ZSxvJiZhPyhyPWUuQyxlLkM9dC5DLGUuTD1vLG8uVT1lLGUhPT1hPyhpPWUuVSxlLlU9dC5VLHQ9ZS5SLGkuTD10LGUuUj1hLGEuVT1lKTooZS5VPWksaT1lLHQ9ZS5SKSk6KHI9dC5DLHQ9ZSksdCYmKHQuVT1pKSwhcilpZih0JiZ0LkMpdC5DPSExO2Vsc2V7ZG97aWYodD09PXRoaXMuXylicmVhaztpZih0PT09aS5MKXtpZigobj1pLlIpLkMmJihuLkM9ITEsaS5DPSEwLG1jKHRoaXMsaSksbj1pLlIpLG4uTCYmbi5MLkN8fG4uUiYmbi5SLkMpe24uUiYmbi5SLkN8fChuLkwuQz0hMSxuLkM9ITAseGModGhpcyxuKSxuPWkuUiksbi5DPWkuQyxpLkM9bi5SLkM9ITEsbWModGhpcyxpKSx0PXRoaXMuXzticmVha319ZWxzZSBpZigobj1pLkwpLkMmJihuLkM9ITEsaS5DPSEwLHhjKHRoaXMsaSksbj1pLkwpLG4uTCYmbi5MLkN8fG4uUiYmbi5SLkMpe24uTCYmbi5MLkN8fChuLlIuQz0hMSxuLkM9ITAsbWModGhpcyxuKSxuPWkuTCksbi5DPWkuQyxpLkM9bi5MLkM9ITEseGModGhpcyxpKSx0PXRoaXMuXzticmVha31uLkM9ITAsdD1pLGk9aS5VfXdoaWxlKCF0LkMpO3QmJih0LkM9ITEpfX19O3ZhciBLXyx0YixuYixlYixyYixpYj1bXSxvYj1bXSxhYj0xZS02LHViPTFlLTEyO0JjLnByb3RvdHlwZT17Y29uc3RydWN0b3I6QmMscG9seWdvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLm1hcChmdW5jdGlvbihuKXt2YXIgZT1uLmhhbGZlZGdlcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGtjKG4sdFtlXSl9KTtyZXR1cm4gZS5kYXRhPW4uc2l0ZS5kYXRhLGV9KX0sdHJpYW5nbGVzOmZ1bmN0aW9uKCl7dmFyIHQ9W10sbj10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLmZvckVhY2goZnVuY3Rpb24oZSxyKXtpZihvPShpPWUuaGFsZmVkZ2VzKS5sZW5ndGgpZm9yKHZhciBpLG8sYSx1PWUuc2l0ZSxmPS0xLGM9bltpW28tMV1dLHM9Yy5sZWZ0PT09dT9jLnJpZ2h0OmMubGVmdDsrK2Y8bzspYT1zLHM9KGM9bltpW2ZdXSkubGVmdD09PXU/Yy5yaWdodDpjLmxlZnQsYSYmcyYmcjxhLmluZGV4JiZyPHMuaW5kZXgmJk9jKHUsYSxzKTwwJiZ0LnB1c2goW3UuZGF0YSxhLmRhdGEscy5kYXRhXSl9KSx0fSxsaW5rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZ2VzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5yaWdodH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm57c291cmNlOnQubGVmdC5kYXRhLHRhcmdldDp0LnJpZ2h0LmRhdGF9fSl9LGZpbmQ6ZnVuY3Rpb24odCxuLGUpe2Zvcih2YXIgcixpLG89dGhpcyxhPW8uX2ZvdW5kfHwwLHU9by5jZWxscy5sZW5ndGg7IShpPW8uY2VsbHNbYV0pOylpZigrK2E+PXUpcmV0dXJuIG51bGw7dmFyIGY9dC1pLnNpdGVbMF0sYz1uLWkuc2l0ZVsxXSxzPWYqZitjKmM7ZG97aT1vLmNlbGxzW3I9YV0sYT1udWxsLGkuaGFsZmVkZ2VzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHI9by5lZGdlc1tlXSx1PXIubGVmdDtpZih1IT09aS5zaXRlJiZ1fHwodT1yLnJpZ2h0KSl7dmFyIGY9dC11WzBdLGM9bi11WzFdLGw9ZipmK2MqYztsPHMmJihzPWwsYT11LmluZGV4KX19KX13aGlsZShudWxsIT09YSk7cmV0dXJuIG8uX2ZvdW5kPXIsbnVsbD09ZXx8czw9ZSplP2kuc2l0ZTpudWxsfX0sSWMucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpJYyxzY2FsZTpmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQ/dGhpczpuZXcgSWModGhpcy5rKnQsdGhpcy54LHRoaXMueSl9LHRyYW5zbGF0ZTpmdW5jdGlvbih0LG4pe3JldHVybiAwPT09dCYwPT09bj90aGlzOm5ldyBJYyh0aGlzLmssdGhpcy54K3RoaXMuayp0LHRoaXMueSt0aGlzLmsqbil9LGFwcGx5OmZ1bmN0aW9uKHQpe3JldHVyblt0WzBdKnRoaXMuayt0aGlzLngsdFsxXSp0aGlzLmsrdGhpcy55XX0sYXBwbHlYOmZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMuayt0aGlzLnh9LGFwcGx5WTpmdW5jdGlvbih0KXtyZXR1cm4gdCp0aGlzLmsrdGhpcy55fSxpbnZlcnQ6ZnVuY3Rpb24odCl7cmV0dXJuWyh0WzBdLXRoaXMueCkvdGhpcy5rLCh0WzFdLXRoaXMueSkvdGhpcy5rXX0saW52ZXJ0WDpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLngpL3RoaXMua30saW52ZXJ0WTpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLnkpL3RoaXMua30scmVzY2FsZVg6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weSgpLmRvbWFpbih0LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WCx0aGlzKS5tYXAodC5pbnZlcnQsdCkpfSxyZXNjYWxlWTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KCkuZG9tYWluKHQucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRZLHRoaXMpLm1hcCh0LmludmVydCx0KSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0cmFuc2xhdGUoXCIrdGhpcy54K1wiLFwiK3RoaXMueStcIikgc2NhbGUoXCIrdGhpcy5rK1wiKVwifX07dmFyIGZiPW5ldyBJYygxLDAsMCk7amMucHJvdG90eXBlPUljLnByb3RvdHlwZSx0LnZlcnNpb249XCI1LjUuMFwiLHQuYmlzZWN0PUtjLHQuYmlzZWN0UmlnaHQ9S2MsdC5iaXNlY3RMZWZ0PXRzLHQuYXNjZW5kaW5nPW4sdC5iaXNlY3Rvcj1lLHQuY3Jvc3M9ZnVuY3Rpb24odCxuLGUpe3ZhciBpLG8sYSx1LGY9dC5sZW5ndGgsYz1uLmxlbmd0aCxzPW5ldyBBcnJheShmKmMpO2ZvcihudWxsPT1lJiYoZT1yKSxpPWE9MDtpPGY7KytpKWZvcih1PXRbaV0sbz0wO288YzsrK28sKythKXNbYV09ZSh1LG5bb10pO3JldHVybiBzfSx0LmRlc2NlbmRpbmc9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbjx0Py0xOm4+dD8xOm4+PXQ/MDpOYU59LHQuZGV2aWF0aW9uPWEsdC5leHRlbnQ9dSx0Lmhpc3RvZ3JhbT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGksbyxhPXQubGVuZ3RoLHU9bmV3IEFycmF5KGEpO2ZvcihpPTA7aTxhOysraSl1W2ldPW4odFtpXSxpLHQpO3ZhciBmPWUodSksYz1mWzBdLGw9ZlsxXSxoPXIodSxjLGwpO0FycmF5LmlzQXJyYXkoaCl8fChoPWQoYyxsLGgpLGg9cyhNYXRoLmNlaWwoYy9oKSpoLE1hdGguZmxvb3IobC9oKSpoLGgpKTtmb3IodmFyIHA9aC5sZW5ndGg7aFswXTw9YzspaC5zaGlmdCgpLC0tcDtmb3IoO2hbcC0xXT5sOyloLnBvcCgpLC0tcDt2YXIgdixnPW5ldyBBcnJheShwKzEpO2ZvcihpPTA7aTw9cDsrK2kpKHY9Z1tpXT1bXSkueDA9aT4wP2hbaS0xXTpjLHYueDE9aTxwP2hbaV06bDtmb3IoaT0wO2k8YTsrK2kpYzw9KG89dVtpXSkmJm88PWwmJmdbS2MoaCxvLDAscCldLnB1c2godFtpXSk7cmV0dXJuIGd9dmFyIG49YyxlPXUscj1wO3JldHVybiB0LnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpmKGUpLHQpOm59LHQuZG9tYWluPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpmKFtuWzBdLG5bMV1dKSx0KTplfSx0LnRocmVzaG9sZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOkFycmF5LmlzQXJyYXkobik/Zihlcy5jYWxsKG4pKTpmKG4pLHQpOnJ9LHR9LHQudGhyZXNob2xkRnJlZWRtYW5EaWFjb25pcz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9cnMuY2FsbCh0LGkpLnNvcnQobiksTWF0aC5jZWlsKChyLWUpLygyKih2KHQsLjc1KS12KHQsLjI1KSkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdC50aHJlc2hvbGRTY290dD1mdW5jdGlvbih0LG4sZSl7cmV0dXJuIE1hdGguY2VpbCgoZS1uKS8oMy41KmEodCkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdC50aHJlc2hvbGRTdHVyZ2VzPXAsdC5tYXg9Zyx0Lm1lYW49ZnVuY3Rpb24odCxuKXt2YXIgZSxyPXQubGVuZ3RoLG89cixhPS0xLHU9MDtpZihudWxsPT1uKWZvcig7KythPHI7KWlzTmFOKGU9aSh0W2FdKSk/LS1vOnUrPWU7ZWxzZSBmb3IoOysrYTxyOylpc05hTihlPWkobih0W2FdLGEsdCkpKT8tLW86dSs9ZTtpZihvKXJldHVybiB1L299LHQubWVkaWFuPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbz10Lmxlbmd0aCxhPS0xLHU9W107aWYobnVsbD09ZSlmb3IoOysrYTxvOylpc05hTihyPWkodFthXSkpfHx1LnB1c2gocik7ZWxzZSBmb3IoOysrYTxvOylpc05hTihyPWkoZSh0W2FdLGEsdCkpKXx8dS5wdXNoKHIpO3JldHVybiB2KHUuc29ydChuKSwuNSl9LHQubWVyZ2U9eSx0Lm1pbj1fLHQucGFpcnM9ZnVuY3Rpb24odCxuKXtudWxsPT1uJiYobj1yKTtmb3IodmFyIGU9MCxpPXQubGVuZ3RoLTEsbz10WzBdLGE9bmV3IEFycmF5KGk8MD8wOmkpO2U8aTspYVtlXT1uKG8sbz10WysrZV0pO3JldHVybiBhfSx0LnBlcm11dGU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSk7ZS0tOylyW2VdPXRbbltlXV07cmV0dXJuIHJ9LHQucXVhbnRpbGU9dix0LnJhbmdlPXMsdC5zY2FuPWZ1bmN0aW9uKHQsZSl7aWYocj10Lmxlbmd0aCl7dmFyIHIsaSxvPTAsYT0wLHU9dFthXTtmb3IobnVsbD09ZSYmKGU9bik7KytvPHI7KShlKGk9dFtvXSx1KTwwfHwwIT09ZSh1LHUpKSYmKHU9aSxhPW8pO3JldHVybiAwPT09ZSh1LHUpP2E6dm9pZCAwfX0sdC5zaHVmZmxlPWZ1bmN0aW9uKHQsbixlKXtmb3IodmFyIHIsaSxvPShudWxsPT1lP3QubGVuZ3RoOmUpLShuPW51bGw9PW4/MDorbik7bzspaT1NYXRoLnJhbmRvbSgpKm8tLXwwLHI9dFtvK25dLHRbbytuXT10W2krbl0sdFtpK25dPXI7cmV0dXJuIHR9LHQuc3VtPWZ1bmN0aW9uKHQsbil7dmFyIGUscj10Lmxlbmd0aCxpPS0xLG89MDtpZihudWxsPT1uKWZvcig7KytpPHI7KShlPSt0W2ldKSYmKG8rPWUpO2Vsc2UgZm9yKDsrK2k8cjspKGU9K24odFtpXSxpLHQpKSYmKG8rPWUpO3JldHVybiBvfSx0LnRpY2tzPWwsdC50aWNrSW5jcmVtZW50PWgsdC50aWNrU3RlcD1kLHQudHJhbnNwb3NlPWIsdC52YXJpYW5jZT1vLHQuemlwPWZ1bmN0aW9uKCl7cmV0dXJuIGIoYXJndW1lbnRzKX0sdC5heGlzVG9wPWZ1bmN0aW9uKHQpe3JldHVybiBUKGZzLHQpfSx0LmF4aXNSaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gVChjcyx0KX0sdC5heGlzQm90dG9tPWZ1bmN0aW9uKHQpe3JldHVybiBUKHNzLHQpfSx0LmF4aXNMZWZ0PWZ1bmN0aW9uKHQpe3JldHVybiBUKGxzLHQpfSx0LmJydXNoPWZ1bmN0aW9uKCl7cmV0dXJuIGVlKGJoKX0sdC5icnVzaFg9ZnVuY3Rpb24oKXtyZXR1cm4gZWUoeWgpfSx0LmJydXNoWT1mdW5jdGlvbigpe3JldHVybiBlZShfaCl9LHQuYnJ1c2hTZWxlY3Rpb249ZnVuY3Rpb24odCl7dmFyIG49dC5fX2JydXNoO3JldHVybiBuP24uZGltLm91dHB1dChuLnNlbGVjdGlvbik6bnVsbH0sdC5jaG9yZD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG8sYSx1LGYsYyxsLGg9dC5sZW5ndGgsZD1bXSxwPXMoaCksdj1bXSxnPVtdLHk9Zy5ncm91cHM9bmV3IEFycmF5KGgpLF89bmV3IEFycmF5KGgqaCk7Zm9yKG89MCxjPS0xOysrYzxoOyl7Zm9yKGE9MCxsPS0xOysrbDxoOylhKz10W2NdW2xdO2QucHVzaChhKSx2LnB1c2gocyhoKSksbys9YX1mb3IoZSYmcC5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUoZFt0XSxkW25dKX0pLHImJnYuZm9yRWFjaChmdW5jdGlvbihuLGUpe24uc29ydChmdW5jdGlvbihuLGkpe3JldHVybiByKHRbZV1bbl0sdFtlXVtpXSl9KX0pLGY9KG89Q2goMCxraC1uKmgpL28pP246a2gvaCxhPTAsYz0tMTsrK2M8aDspe2Zvcih1PWEsbD0tMTsrK2w8aDspe3ZhciBiPXBbY10sbT12W2JdW2xdLHg9dFtiXVttXSx3PWEsTT1hKz14Km87X1ttKmgrYl09e2luZGV4OmIsc3ViaW5kZXg6bSxzdGFydEFuZ2xlOncsZW5kQW5nbGU6TSx2YWx1ZTp4fX15W2JdPXtpbmRleDpiLHN0YXJ0QW5nbGU6dSxlbmRBbmdsZTphLHZhbHVlOmRbYl19LGErPWZ9Zm9yKGM9LTE7KytjPGg7KWZvcihsPWMtMTsrK2w8aDspe3ZhciBBPV9bbCpoK2NdLFQ9X1tjKmgrbF07KEEudmFsdWV8fFQudmFsdWUpJiZnLnB1c2goQS52YWx1ZTxULnZhbHVlP3tzb3VyY2U6VCx0YXJnZXQ6QX06e3NvdXJjZTpBLHRhcmdldDpUfSl9cmV0dXJuIGk/Zy5zb3J0KGkpOmd9dmFyIG49MCxlPW51bGwscj1udWxsLGk9bnVsbDtyZXR1cm4gdC5wYWRBbmdsZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1DaCgwLGUpLHQpOm59LHQuc29ydEdyb3Vwcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQuc29ydFN1Ymdyb3Vwcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLHQpOnJ9LHQuc29ydENob3Jkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj9pPW51bGw6KGk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIHQobi5zb3VyY2UudmFsdWUrbi50YXJnZXQudmFsdWUsZS5zb3VyY2UudmFsdWUrZS50YXJnZXQudmFsdWUpfX0obikpLl89bix0KTppJiZpLl99LHR9LHQucmliYm9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0LHU9UGguY2FsbChhcmd1bWVudHMpLGY9bi5hcHBseSh0aGlzLHUpLGM9ZS5hcHBseSh0aGlzLHUpLHM9K3IuYXBwbHkodGhpcywodVswXT1mLHUpKSxsPWkuYXBwbHkodGhpcyx1KS1FaCxoPW8uYXBwbHkodGhpcyx1KS1FaCxkPXMqVGgobCkscD1zKk5oKGwpLHY9K3IuYXBwbHkodGhpcywodVswXT1jLHUpKSxnPWkuYXBwbHkodGhpcyx1KS1FaCx5PW8uYXBwbHkodGhpcyx1KS1FaDtpZihhfHwoYT10PW9lKCkpLGEubW92ZVRvKGQscCksYS5hcmMoMCwwLHMsbCxoKSxsPT09ZyYmaD09PXl8fChhLnF1YWRyYXRpY0N1cnZlVG8oMCwwLHYqVGgoZyksdipOaChnKSksYS5hcmMoMCwwLHYsZyx5KSksYS5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCxkLHApLGEuY2xvc2VQYXRoKCksdClyZXR1cm4gYT1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1hZSxlPXVlLHI9ZmUsaT1jZSxvPXNlLGE9bnVsbDtyZXR1cm4gdC5yYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnJlKCtuKSx0KTpyfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnJlKCtuKSx0KTppfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpyZSgrbiksdCk6b30sdC5zb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ZSx0KTpufSx0LnRhcmdldD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1udWxsPT1uP251bGw6bix0KTphfSx0fSx0Lm5lc3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KG4saSxhLHUpe2lmKGk+PW8ubGVuZ3RoKXJldHVybiBudWxsIT1lJiZuLnNvcnQoZSksbnVsbCE9cj9yKG4pOm47Zm9yKHZhciBmLGMscyxsPS0xLGg9bi5sZW5ndGgsZD1vW2krK10scD1oZSgpLHY9YSgpOysrbDxoOykocz1wLmdldChmPWQoYz1uW2xdKStcIlwiKSk/cy5wdXNoKGMpOnAuc2V0KGYsW2NdKTtyZXR1cm4gcC5lYWNoKGZ1bmN0aW9uKG4sZSl7dSh2LGUsdChuLGksYSx1KSl9KSx2fWZ1bmN0aW9uIG4odCxlKXtpZigrK2U+by5sZW5ndGgpcmV0dXJuIHQ7dmFyIGksdT1hW2UtMV07cmV0dXJuIG51bGwhPXImJmU+PW8ubGVuZ3RoP2k9dC5lbnRyaWVzKCk6KGk9W10sdC5lYWNoKGZ1bmN0aW9uKHQscil7aS5wdXNoKHtrZXk6cix2YWx1ZXM6bih0LGUpfSl9KSksbnVsbCE9dT9pLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gdSh0LmtleSxuLmtleSl9KTppfXZhciBlLHIsaSxvPVtdLGE9W107cmV0dXJuIGk9e29iamVjdDpmdW5jdGlvbihuKXtyZXR1cm4gdChuLDAsZGUscGUpfSxtYXA6ZnVuY3Rpb24obil7cmV0dXJuIHQobiwwLHZlLGdlKX0sZW50cmllczpmdW5jdGlvbihlKXtyZXR1cm4gbih0KGUsMCx2ZSxnZSksMCl9LGtleTpmdW5jdGlvbih0KXtyZXR1cm4gby5wdXNoKHQpLGl9LHNvcnRLZXlzOmZ1bmN0aW9uKHQpe3JldHVybiBhW28ubGVuZ3RoLTFdPXQsaX0sc29ydFZhbHVlczpmdW5jdGlvbih0KXtyZXR1cm4gZT10LGl9LHJvbGx1cDpmdW5jdGlvbih0KXtyZXR1cm4gcj10LGl9fX0sdC5zZXQ9X2UsdC5tYXA9aGUsdC5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2Zvcih2YXIgZSBpbiB0KW4ucHVzaChlKTtyZXR1cm4gbn0sdC52YWx1ZXM9ZnVuY3Rpb24odCl7dmFyIG49W107Zm9yKHZhciBlIGluIHQpbi5wdXNoKHRbZV0pO3JldHVybiBufSx0LmVudHJpZXM9ZnVuY3Rpb24odCl7dmFyIG49W107Zm9yKHZhciBlIGluIHQpbi5wdXNoKHtrZXk6ZSx2YWx1ZTp0W2VdfSk7cmV0dXJuIG59LHQuY29sb3I9a3QsdC5yZ2I9UnQsdC5oc2w9cXQsdC5sYWI9RnQsdC5oY2w9JHQsdC5sY2g9ZnVuY3Rpb24odCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1Z0KHQpOm5ldyBXdChlLG4sdCxudWxsPT1yPzE6cil9LHQuZ3JheT1mdW5jdGlvbih0LG4pe3JldHVybiBuZXcgSXQodCwwLDAsbnVsbD09bj8xOm4pfSx0LmN1YmVoZWxpeD1adCx0LmNvbnRvdXJzPU1lLHQuY29udG91ckRlbnNpdHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlPW5ldyBGbG9hdDMyQXJyYXkodip5KSxyPW5ldyBGbG9hdDMyQXJyYXkodip5KTt0LmZvckVhY2goZnVuY3Rpb24odCxuLHIpe3ZhciBpPWEodCxuLHIpK3A+Pmgsbz11KHQsbixyKStwPj5oO2k+PTAmJmk8diYmbz49MCYmbzx5JiYrK2VbaStvKnZdfSksQWUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LGw+PmgpLFRlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSxsPj5oKSxBZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0sbD4+aCksVGUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LGw+PmgpLEFlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSxsPj5oKSxUZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0sbD4+aCk7dmFyIGk9XyhlKTtpZighQXJyYXkuaXNBcnJheShpKSl7dmFyIG89ZyhlKTtpPWQoMCxvLGkpLChpPXMoMCxNYXRoLmZsb29yKG8vaSkqaSxpKSkuc2hpZnQoKX1yZXR1cm4gTWUoKS50aHJlc2hvbGRzKGkpLnNpemUoW3YseV0pKGUpLm1hcChuKX1mdW5jdGlvbiBuKHQpe3JldHVybiB0LnZhbHVlKj1NYXRoLnBvdygyLC0yKmgpLHQuY29vcmRpbmF0ZXMuZm9yRWFjaChlKSx0fWZ1bmN0aW9uIGUodCl7dC5mb3JFYWNoKHIpfWZ1bmN0aW9uIHIodCl7dC5mb3JFYWNoKGkpfWZ1bmN0aW9uIGkodCl7dFswXT10WzBdKk1hdGgucG93KDIsaCktcCx0WzFdPXRbMV0qTWF0aC5wb3coMixoKS1wfWZ1bmN0aW9uIG8oKXtyZXR1cm4gcD0zKmwsdj1mKzIqcD4+aCx5PWMrMipwPj5oLHR9dmFyIGE9TmUsdT1TZSxmPTk2MCxjPTUwMCxsPTIwLGg9MixwPTMqbCx2PWYrMipwPj5oLHk9YysyKnA+PmgsXz1tZSgyMCk7cmV0dXJuIHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bWUoK24pLHQpOmF9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bWUoK24pLHQpOnV9LHQuc2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bZixjXTt2YXIgbj1NYXRoLmNlaWwodFswXSksZT1NYXRoLmNlaWwodFsxXSk7aWYoIShuPj0wfHxuPj0wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHNpemVcIik7cmV0dXJuIGY9bixjPWUsbygpfSx0LmNlbGxTaXplPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiAxPDxoO2lmKCEoKHQ9K3QpPj0xKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGNlbGwgc2l6ZVwiKTtyZXR1cm4gaD1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4yKSxvKCl9LHQudGhyZXNob2xkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246QXJyYXkuaXNBcnJheShuKT9tZShVaC5jYWxsKG4pKTptZShuKSx0KTpffSx0LmJhbmR3aWR0aD1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gTWF0aC5zcXJ0KGwqKGwrMSkpO2lmKCEoKHQ9K3QpPj0wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGJhbmR3aWR0aFwiKTtyZXR1cm4gbD1NYXRoLnJvdW5kKChNYXRoLnNxcnQoNCp0KnQrMSktMSkvMiksbygpfSx0fSx0LmRpc3BhdGNoPU4sdC5kcmFnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0Lm9uKFwibW91c2Vkb3duLmRyYWdcIixlKS5maWx0ZXIoZykub24oXCJ0b3VjaHN0YXJ0LmRyYWdcIixvKS5vbihcInRvdWNobW92ZS5kcmFnXCIsYSkub24oXCJ0b3VjaGVuZC5kcmFnIHRvdWNoY2FuY2VsLmRyYWdcIix1KS5zdHlsZShcInRvdWNoLWFjdGlvblwiLFwibm9uZVwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKX1mdW5jdGlvbiBlKCl7aWYoIWgmJmQuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbj1mKFwibW91c2VcIixwLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxwdCx0aGlzLGFyZ3VtZW50cyk7biYmKGN0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuZHJhZ1wiLHIsITApLm9uKFwibW91c2V1cC5kcmFnXCIsaSwhMCksX3QodC5ldmVudC52aWV3KSxndCgpLGw9ITEsYz10LmV2ZW50LmNsaWVudFgscz10LmV2ZW50LmNsaWVudFksbihcInN0YXJ0XCIpKX19ZnVuY3Rpb24gcigpe2lmKHl0KCksIWwpe3ZhciBuPXQuZXZlbnQuY2xpZW50WC1jLGU9dC5ldmVudC5jbGllbnRZLXM7bD1uKm4rZSplPm19eS5tb3VzZShcImRyYWdcIil9ZnVuY3Rpb24gaSgpe2N0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuZHJhZyBtb3VzZXVwLmRyYWdcIixudWxsKSxidCh0LmV2ZW50LnZpZXcsbCkseXQoKSx5Lm1vdXNlKFwiZW5kXCIpfWZ1bmN0aW9uIG8oKXtpZihkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIG4sZSxyPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsaT1wLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvPXIubGVuZ3RoO2ZvcihuPTA7bjxvOysrbikoZT1mKHJbbl0uaWRlbnRpZmllcixpLHZ0LHRoaXMsYXJndW1lbnRzKSkmJihndCgpLGUoXCJzdGFydFwiKSl9fWZ1bmN0aW9uIGEoKXt2YXIgbixlLHI9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxpPXIubGVuZ3RoO2ZvcihuPTA7bjxpOysrbikoZT15W3Jbbl0uaWRlbnRpZmllcl0pJiYoeXQoKSxlKFwiZHJhZ1wiKSl9ZnVuY3Rpb24gdSgpe3ZhciBuLGUscj10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGk9ci5sZW5ndGg7Zm9yKGgmJmNsZWFyVGltZW91dChoKSxoPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtoPW51bGx9LDUwMCksbj0wO248aTsrK24pKGU9eVtyW25dLmlkZW50aWZpZXJdKSYmKGd0KCksZShcImVuZFwiKSl9ZnVuY3Rpb24gZihlLHIsaSxvLGEpe3ZhciB1LGYsYyxzPWkocixlKSxsPV8uY29weSgpO2lmKG90KG5ldyB4dChuLFwiYmVmb3Jlc3RhcnRcIix1LGUsYixzWzBdLHNbMV0sMCwwLGwpLGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPSh0LmV2ZW50LnN1YmplY3Q9dT12LmFwcGx5KG8sYSkpJiYoZj11Lngtc1swXXx8MCxjPXUueS1zWzFdfHwwLCEwKX0pKXJldHVybiBmdW5jdGlvbiB0KGgpe3ZhciBkLHA9cztzd2l0Y2goaCl7Y2FzZVwic3RhcnRcIjp5W2VdPXQsZD1iKys7YnJlYWs7Y2FzZVwiZW5kXCI6ZGVsZXRlIHlbZV0sLS1iO2Nhc2VcImRyYWdcIjpzPWkocixlKSxkPWJ9b3QobmV3IHh0KG4saCx1LGUsZCxzWzBdK2Ysc1sxXStjLHNbMF0tcFswXSxzWzFdLXBbMV0sbCksbC5hcHBseSxsLFtoLG8sYV0pfX12YXIgYyxzLGwsaCxkPXd0LHA9TXQsdj1BdCxnPVR0LHk9e30sXz1OKFwic3RhcnRcIixcImRyYWdcIixcImVuZFwiKSxiPTAsbT0wO3JldHVybiBuLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQoISF0KSxuKTpkfSxuLmNvbnRhaW5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQodCksbik6cH0sbi5zdWJqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDptdCh0KSxuKTp2fSxuLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQoISF0KSxuKTpnfSxuLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Xy5vbi5hcHBseShfLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1fP246dH0sbi5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhtPSh0PSt0KSp0LG4pOk1hdGguc3FydChtKX0sbn0sdC5kcmFnRGlzYWJsZT1fdCx0LmRyYWdFbmFibGU9YnQsdC5kc3ZGb3JtYXQ9a2UsdC5jc3ZQYXJzZT1IaCx0LmNzdlBhcnNlUm93cz1YaCx0LmNzdkZvcm1hdD1HaCx0LmNzdkZvcm1hdFJvd3M9VmgsdC50c3ZQYXJzZT1XaCx0LnRzdlBhcnNlUm93cz1aaCx0LnRzdkZvcm1hdD1RaCx0LnRzdkZvcm1hdFJvd3M9SmgsdC5lYXNlTGluZWFyPWZ1bmN0aW9uKHQpe3JldHVybit0fSx0LmVhc2VRdWFkPUZuLHQuZWFzZVF1YWRJbj1mdW5jdGlvbih0KXtyZXR1cm4gdCp0fSx0LmVhc2VRdWFkT3V0PWZ1bmN0aW9uKHQpe3JldHVybiB0KigyLXQpfSx0LmVhc2VRdWFkSW5PdXQ9Rm4sdC5lYXNlQ3ViaWM9SW4sdC5lYXNlQ3ViaWNJbj1mdW5jdGlvbih0KXtyZXR1cm4gdCp0KnR9LHQuZWFzZUN1YmljT3V0PWZ1bmN0aW9uKHQpe3JldHVybi0tdCp0KnQrMX0sdC5lYXNlQ3ViaWNJbk91dD1Jbix0LmVhc2VQb2x5PVhsLHQuZWFzZVBvbHlJbj1qbCx0LmVhc2VQb2x5T3V0PUhsLHQuZWFzZVBvbHlJbk91dD1YbCx0LmVhc2VTaW49am4sdC5lYXNlU2luSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5jb3ModCpWbCl9LHQuZWFzZVNpbk91dD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zaW4odCpWbCl9LHQuZWFzZVNpbkluT3V0PWpuLHQuZWFzZUV4cD1Ibix0LmVhc2VFeHBJbj1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3coMiwxMCp0LTEwKX0sdC5lYXNlRXhwT3V0PWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGgucG93KDIsLTEwKnQpfSx0LmVhc2VFeHBJbk91dD1Ibix0LmVhc2VDaXJjbGU9WG4sdC5lYXNlQ2lyY2xlSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtdCp0KX0sdC5lYXNlQ2lyY2xlT3V0PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoMS0gLS10KnQpfSx0LmVhc2VDaXJjbGVJbk91dD1Ybix0LmVhc2VCb3VuY2U9R24sdC5lYXNlQm91bmNlSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtR24oMS10KX0sdC5lYXNlQm91bmNlT3V0PUduLHQuZWFzZUJvdW5jZUluT3V0PWZ1bmN0aW9uKHQpe3JldHVybigodCo9Mik8PTE/MS1HbigxLXQpOkduKHQtMSkrMSkvMn0sdC5lYXNlQmFjaz1haCx0LmVhc2VCYWNrSW49aWgsdC5lYXNlQmFja091dD1vaCx0LmVhc2VCYWNrSW5PdXQ9YWgsdC5lYXNlRWxhc3RpYz1jaCx0LmVhc2VFbGFzdGljSW49ZmgsdC5lYXNlRWxhc3RpY091dD1jaCx0LmVhc2VFbGFzdGljSW5PdXQ9c2gsdC5ibG9iPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGZldGNoKHQsbikudGhlbihDZSl9LHQuYnVmZmVyPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGZldGNoKHQsbikudGhlbihQZSl9LHQuZHN2PWZ1bmN0aW9uKHQsbixlLHIpezM9PT1hcmd1bWVudHMubGVuZ3RoJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYocj1lLGU9dm9pZCAwKTt2YXIgaT1rZSh0KTtyZXR1cm4gUmUobixlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBpLnBhcnNlKHQscil9KX0sdC5jc3Y9S2gsdC50c3Y9dGQsdC5pbWFnZT1mdW5jdGlvbih0LG4pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLHIpe3ZhciBpPW5ldyBJbWFnZTtmb3IodmFyIG8gaW4gbilpW29dPW5bb107aS5vbmVycm9yPXIsaS5vbmxvYWQ9ZnVuY3Rpb24oKXtlKGkpfSxpLnNyYz10fSl9LHQuanNvbj1mdW5jdGlvbih0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oRGUpfSx0LnRleHQ9UmUsdC54bWw9bmQsdC5odG1sPWVkLHQuc3ZnPXJkLHQuZm9yY2VDZW50ZXI9ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiBlKCl7dmFyIGUsaSxvPXIubGVuZ3RoLGE9MCx1PTA7Zm9yKGU9MDtlPG87KytlKWErPShpPXJbZV0pLngsdSs9aS55O2ZvcihhPWEvby10LHU9dS9vLW4sZT0wO2U8bzsrK2UpKGk9cltlXSkueC09YSxpLnktPXV9dmFyIHI7cmV0dXJuIG51bGw9PXQmJih0PTApLG51bGw9PW4mJihuPTApLGUuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXR9LGUueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rbixlKTp0fSxlLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsZSk6bn0sZX0sdC5mb3JjZUNvbGxpZGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe2Zvcih2YXIgdCxuLHIsZixjLHMsbCxoPWkubGVuZ3RoLGQ9MDtkPHU7KytkKWZvcihuPWplKGksR2UsVmUpLnZpc2l0QWZ0ZXIoZSksdD0wO3Q8aDsrK3Qpcj1pW3RdLHM9b1tyLmluZGV4XSxsPXMqcyxmPXIueCtyLnZ4LGM9ci55K3Iudnksbi52aXNpdChmdW5jdGlvbih0LG4sZSxpLG8pe3ZhciB1PXQuZGF0YSxoPXQucixkPXMraDtpZighdSlyZXR1cm4gbj5mK2R8fGk8Zi1kfHxlPmMrZHx8bzxjLWQ7aWYodS5pbmRleD5yLmluZGV4KXt2YXIgcD1mLXUueC11LnZ4LHY9Yy11LnktdS52eSxnPXAqcCt2KnY7ZzxkKmQmJigwPT09cCYmKHA9T2UoKSxnKz1wKnApLDA9PT12JiYodj1PZSgpLGcrPXYqdiksZz0oZC0oZz1NYXRoLnNxcnQoZykpKS9nKmEsci52eCs9KHAqPWcpKihkPShoKj1oKS8obCtoKSksci52eSs9KHYqPWcpKmQsdS52eC09cCooZD0xLWQpLHUudnktPXYqZCl9fSl9ZnVuY3Rpb24gZSh0KXtpZih0LmRhdGEpcmV0dXJuIHQucj1vW3QuZGF0YS5pbmRleF07Zm9yKHZhciBuPXQucj0wO248NDsrK24pdFtuXSYmdFtuXS5yPnQuciYmKHQucj10W25dLnIpfWZ1bmN0aW9uIHIoKXtpZihpKXt2YXIgbixlLHI9aS5sZW5ndGg7Zm9yKG89bmV3IEFycmF5KHIpLG49MDtuPHI7KytuKWU9aVtuXSxvW2UuaW5kZXhdPSt0KGUsbixpKX19dmFyIGksbyxhPTEsdT0xO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKG51bGw9PXQ/MTordCkpLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtpPXQscigpfSxuLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3Qsbik6dX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxuKTphfSxuLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6cWUoK2UpLHIoKSxuKTp0fSxufSx0LmZvcmNlTGluaz1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKG4pe2Zvcih2YXIgZT0wLHI9dC5sZW5ndGg7ZTxkOysrZSlmb3IodmFyIGksdSxmLHMsbCxoLHAsdj0wO3Y8cjsrK3YpdT0oaT10W3ZdKS5zb3VyY2Uscz0oZj1pLnRhcmdldCkueCtmLnZ4LXUueC11LnZ4fHxPZSgpLGw9Zi55K2YudnktdS55LXUudnl8fE9lKCkscyo9aD0oKGg9TWF0aC5zcXJ0KHMqcytsKmwpKS1hW3ZdKS9oKm4qb1t2XSxsKj1oLGYudngtPXMqKHA9Y1t2XSksZi52eS09bCpwLHUudngrPXMqKHA9MS1wKSx1LnZ5Kz1sKnB9ZnVuY3Rpb24gZSgpe2lmKHUpe3ZhciBuLGUsbD11Lmxlbmd0aCxoPXQubGVuZ3RoLGQ9aGUodSxzKTtmb3Iobj0wLGY9bmV3IEFycmF5KGwpO248aDsrK24pKGU9dFtuXSkuaW5kZXg9bixcIm9iamVjdFwiIT10eXBlb2YgZS5zb3VyY2UmJihlLnNvdXJjZT1XZShkLGUuc291cmNlKSksXCJvYmplY3RcIiE9dHlwZW9mIGUudGFyZ2V0JiYoZS50YXJnZXQ9V2UoZCxlLnRhcmdldCkpLGZbZS5zb3VyY2UuaW5kZXhdPShmW2Uuc291cmNlLmluZGV4XXx8MCkrMSxmW2UudGFyZ2V0LmluZGV4XT0oZltlLnRhcmdldC5pbmRleF18fDApKzE7Zm9yKG49MCxjPW5ldyBBcnJheShoKTtuPGg7KytuKWU9dFtuXSxjW25dPWZbZS5zb3VyY2UuaW5kZXhdLyhmW2Uuc291cmNlLmluZGV4XStmW2UudGFyZ2V0LmluZGV4XSk7bz1uZXcgQXJyYXkoaCkscigpLGE9bmV3IEFycmF5KGgpLGkoKX19ZnVuY3Rpb24gcigpe2lmKHUpZm9yKHZhciBuPTAsZT10Lmxlbmd0aDtuPGU7KytuKW9bbl09K2wodFtuXSxuLHQpfWZ1bmN0aW9uIGkoKXtpZih1KWZvcih2YXIgbj0wLGU9dC5sZW5ndGg7bjxlOysrbilhW25dPStoKHRbbl0sbix0KX12YXIgbyxhLHUsZixjLHM9JGUsbD1mdW5jdGlvbih0KXtyZXR1cm4gMS9NYXRoLm1pbihmW3Quc291cmNlLmluZGV4XSxmW3QudGFyZ2V0LmluZGV4XSl9LGg9cWUoMzApLGQ9MTtyZXR1cm4gbnVsbD09dCYmKHQ9W10pLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXt1PXQsZSgpfSxuLmxpbmtzPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXIsZSgpLG4pOnR9LG4uaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9dCxuKTpzfSxuLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K3Qsbik6ZH0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLHIoKSxuKTpsfSxuLmRpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCksaSgpLG4pOmh9LG59LHQuZm9yY2VNYW55Qm9keT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG4sdT1pLmxlbmd0aCxmPWplKGksWmUsUWUpLnZpc2l0QWZ0ZXIoZSk7Zm9yKGE9dCxuPTA7bjx1OysrbilvPWlbbl0sZi52aXNpdChyKX1mdW5jdGlvbiBuKCl7aWYoaSl7dmFyIHQsbixlPWkubGVuZ3RoO2Zvcih1PW5ldyBBcnJheShlKSx0PTA7dDxlOysrdCluPWlbdF0sdVtuLmluZGV4XT0rZihuLHQsaSl9fWZ1bmN0aW9uIGUodCl7dmFyIG4sZSxyLGksbyxhPTAsZj0wO2lmKHQubGVuZ3RoKXtmb3Iocj1pPW89MDtvPDQ7KytvKShuPXRbb10pJiYoZT1NYXRoLmFicyhuLnZhbHVlKSkmJihhKz1uLnZhbHVlLGYrPWUscis9ZSpuLngsaSs9ZSpuLnkpO3QueD1yL2YsdC55PWkvZn1lbHNleyhuPXQpLng9bi5kYXRhLngsbi55PW4uZGF0YS55O2Rve2ErPXVbbi5kYXRhLmluZGV4XX13aGlsZShuPW4ubmV4dCl9dC52YWx1ZT1hfWZ1bmN0aW9uIHIodCxuLGUscil7aWYoIXQudmFsdWUpcmV0dXJuITA7dmFyIGk9dC54LW8ueCxmPXQueS1vLnksaD1yLW4sZD1pKmkrZipmO2lmKGgqaC9sPGQpcmV0dXJuIGQ8cyYmKDA9PT1pJiYoaT1PZSgpLGQrPWkqaSksMD09PWYmJihmPU9lKCksZCs9ZipmKSxkPGMmJihkPU1hdGguc3FydChjKmQpKSxvLnZ4Kz1pKnQudmFsdWUqYS9kLG8udnkrPWYqdC52YWx1ZSphL2QpLCEwO2lmKCEodC5sZW5ndGh8fGQ+PXMpKXsodC5kYXRhIT09b3x8dC5uZXh0KSYmKDA9PT1pJiYoaT1PZSgpLGQrPWkqaSksMD09PWYmJihmPU9lKCksZCs9ZipmKSxkPGMmJihkPU1hdGguc3FydChjKmQpKSk7ZG97dC5kYXRhIT09byYmKGg9dVt0LmRhdGEuaW5kZXhdKmEvZCxvLnZ4Kz1pKmgsby52eSs9ZipoKX13aGlsZSh0PXQubmV4dCl9fXZhciBpLG8sYSx1LGY9cWUoLTMwKSxjPTEscz0xLzAsbD0uODE7cmV0dXJuIHQuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtpPXQsbigpfSx0LnN0cmVuZ3RoPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpxZSgrZSksbigpLHQpOmZ9LHQuZGlzdGFuY2VNaW49ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9bipuLHQpOk1hdGguc3FydChjKX0sdC5kaXN0YW5jZU1heD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1uKm4sdCk6TWF0aC5zcXJ0KHMpfSx0LnRoZXRhPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPW4qbix0KTpNYXRoLnNxcnQobCl9LHR9LHQuZm9yY2VSYWRpYWw9ZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIodCl7Zm9yKHZhciByPTAsaT1vLmxlbmd0aDtyPGk7KytyKXt2YXIgZj1vW3JdLGM9Zi54LW58fDFlLTYscz1mLnktZXx8MWUtNixsPU1hdGguc3FydChjKmMrcypzKSxoPSh1W3JdLWwpKmFbcl0qdC9sO2YudngrPWMqaCxmLnZ5Kz1zKmh9fWZ1bmN0aW9uIGkoKXtpZihvKXt2YXIgbixlPW8ubGVuZ3RoO2ZvcihhPW5ldyBBcnJheShlKSx1PW5ldyBBcnJheShlKSxuPTA7bjxlOysrbil1W25dPSt0KG9bbl0sbixvKSxhW25dPWlzTmFOKHVbbl0pPzA6K2Yob1tuXSxuLG8pfX12YXIgbyxhLHUsZj1xZSguMSk7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9cWUoK3QpKSxudWxsPT1uJiYobj0wKSxudWxsPT1lJiYoZT0wKSxyLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7bz10LGkoKX0sci5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGkoKSxyKTpmfSxyLnJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246cWUoK24pLGkoKSxyKTp0fSxyLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3Qscik6bn0sci55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0LHIpOmV9LHJ9LHQuZm9yY2VTaW11bGF0aW9uPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXtlKCksZC5jYWxsKFwidGlja1wiLG8pLGE8dSYmKGguc3RvcCgpLGQuY2FsbChcImVuZFwiLG8pKX1mdW5jdGlvbiBlKCl7dmFyIG4sZSxyPXQubGVuZ3RoO2ZvcihhKz0oYy1hKSpmLGwuZWFjaChmdW5jdGlvbih0KXt0KGEpfSksbj0wO248cjsrK24pbnVsbD09KGU9dFtuXSkuZng/ZS54Kz1lLnZ4Kj1zOihlLng9ZS5meCxlLnZ4PTApLG51bGw9PWUuZnk/ZS55Kz1lLnZ5Kj1zOihlLnk9ZS5meSxlLnZ5PTApfWZ1bmN0aW9uIHIoKXtmb3IodmFyIG4sZT0wLHI9dC5sZW5ndGg7ZTxyOysrZSl7aWYobj10W2VdLG4uaW5kZXg9ZSxpc05hTihuLngpfHxpc05hTihuLnkpKXt2YXIgaT1vZCpNYXRoLnNxcnQoZSksbz1lKmFkO24ueD1pKk1hdGguY29zKG8pLG4ueT1pKk1hdGguc2luKG8pfShpc05hTihuLnZ4KXx8aXNOYU4obi52eSkpJiYobi52eD1uLnZ5PTApfX1mdW5jdGlvbiBpKG4pe3JldHVybiBuLmluaXRpYWxpemUmJm4uaW5pdGlhbGl6ZSh0KSxufXZhciBvLGE9MSx1PS4wMDEsZj0xLU1hdGgucG93KHUsMS8zMDApLGM9MCxzPS42LGw9aGUoKSxoPVRuKG4pLGQ9TihcInRpY2tcIixcImVuZFwiKTtyZXR1cm4gbnVsbD09dCYmKHQ9W10pLHIoKSxvPXt0aWNrOmUscmVzdGFydDpmdW5jdGlvbigpe3JldHVybiBoLnJlc3RhcnQobiksb30sc3RvcDpmdW5jdGlvbigpe3JldHVybiBoLnN0b3AoKSxvfSxub2RlczpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uLHIoKSxsLmVhY2goaSksbyk6dH0sYWxwaGE6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3Qsbyk6YX0sYWxwaGFNaW46ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3Qsbyk6dX0sYWxwaGFEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0rdCxvKTorZn0sYWxwaGFUYXJnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9K3Qsbyk6Y30sdmVsb2NpdHlEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0xLXQsbyk6MS1zfSxmb3JjZTpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KG51bGw9PW4/bC5yZW1vdmUodCk6bC5zZXQodCxpKG4pKSxvKTpsLmdldCh0KX0sZmluZDpmdW5jdGlvbihuLGUscil7dmFyIGksbyxhLHUsZixjPTAscz10Lmxlbmd0aDtmb3IobnVsbD09cj9yPTEvMDpyKj1yLGM9MDtjPHM7KytjKShhPShpPW4tKHU9dFtjXSkueCkqaSsobz1lLXUueSkqbyk8ciYmKGY9dSxyPWEpO3JldHVybiBmfSxvbjpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGQub24odCxuKSxvKTpkLm9uKHQpfX19LHQuZm9yY2VYPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBuLGU9MCxhPXIubGVuZ3RoO2U8YTsrK2UpKG49cltlXSkudngrPShvW2VdLW4ueCkqaVtlXSp0fWZ1bmN0aW9uIGUoKXtpZihyKXt2YXIgbixlPXIubGVuZ3RoO2ZvcihpPW5ldyBBcnJheShlKSxvPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilpW25dPWlzTmFOKG9bbl09K3QocltuXSxuLHIpKT8wOithKHJbbl0sbixyKX19dmFyIHIsaSxvLGE9cWUoLjEpO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKG51bGw9PXQ/MDordCkpLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXQsZSgpfSxuLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCksZSgpLG4pOmF9LG4ueD1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByP3I6cWUoK3IpLGUoKSxuKTp0fSxufSx0LmZvcmNlWT1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgbixlPTAsYT1yLmxlbmd0aDtlPGE7KytlKShuPXJbZV0pLnZ5Kz0ob1tlXS1uLnkpKmlbZV0qdH1mdW5jdGlvbiBlKCl7aWYocil7dmFyIG4sZT1yLmxlbmd0aDtmb3IoaT1uZXcgQXJyYXkoZSksbz1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24paVtuXT1pc05hTihvW25dPSt0KHJbbl0sbixyKSk/MDorYShyW25dLG4scil9fXZhciByLGksbyxhPXFlKC4xKTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZShudWxsPT10PzA6K3QpKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10LGUoKX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGUoKSxuKTphfSxuLnk9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOnFlKCtyKSxlKCksbik6dH0sbn0sdC5mb3JtYXREZWZhdWx0TG9jYWxlPW9yLHQuZm9ybWF0TG9jYWxlPWlyLHQuZm9ybWF0U3BlY2lmaWVyPXRyLHQucHJlY2lzaW9uRml4ZWQ9YXIsdC5wcmVjaXNpb25QcmVmaXg9dXIsdC5wcmVjaXNpb25Sb3VuZD1mcix0Lmdlb0FyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIGRwLnJlc2V0KCksYnIodCxwcCksMipkcH0sdC5nZW9Cb3VuZHM9ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbyxhLHU7aWYobWQ9YmQ9LSh5ZD1fZD0xLzApLFRkPVtdLGJyKHQsZ3ApLGU9VGQubGVuZ3RoKXtmb3IoVGQuc29ydChZciksbj0xLG89W3I9VGRbMF1dO248ZTsrK24pQnIociwoaT1UZFtuXSlbMF0pfHxCcihyLGlbMV0pPyhPcihyWzBdLGlbMV0pPk9yKHJbMF0sclsxXSkmJihyWzFdPWlbMV0pLE9yKGlbMF0sclsxXSk+T3IoclswXSxyWzFdKSYmKHJbMF09aVswXSkpOm8ucHVzaChyPWkpO2ZvcihhPS0xLzAsbj0wLHI9b1tlPW8ubGVuZ3RoLTFdO248PWU7cj1pLCsrbilpPW9bbl0sKHU9T3IoclsxXSxpWzBdKSk+YSYmKGE9dSx5ZD1pWzBdLGJkPXJbMV0pfXJldHVybiBUZD1OZD1udWxsLHlkPT09MS8wfHxfZD09PTEvMD9bW05hTixOYU5dLFtOYU4sTmFOXV06W1t5ZCxfZF0sW2JkLG1kXV19LHQuZ2VvQ2VudHJvaWQ9ZnVuY3Rpb24odCl7U2Q9RWQ9a2Q9Q2Q9UGQ9emQ9UmQ9TGQ9RGQ9VWQ9cWQ9MCxicih0LHlwKTt2YXIgbj1EZCxlPVVkLHI9cWQsaT1uKm4rZSplK3IqcjtyZXR1cm4gaTxYZCYmKG49emQsZT1SZCxyPUxkLEVkPEhkJiYobj1rZCxlPUNkLHI9UGQpLChpPW4qbitlKmUrcipyKTxYZCk/W05hTixOYU5dOlt0cChlLG4pKlpkLGRyKHIvZnAoaSkpKlpkXX0sdC5nZW9DaXJjbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdT1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpRZCxmPW8uYXBwbHkodGhpcyxhcmd1bWVudHMpKlFkO3JldHVybiBuPVtdLGU9dGkoLXRbMF0qUWQsLXRbMV0qUWQsMCkuaW52ZXJ0LG9pKGEsdSxmLDEpLHQ9e3R5cGU6XCJQb2x5Z29uXCIsY29vcmRpbmF0ZXM6W25dfSxuPWU9bnVsbCx0fXZhciBuLGUscj1RcihbMCwwXSksaT1Rcig5MCksbz1Rcig2KSxhPXtwb2ludDpmdW5jdGlvbih0LHIpe24ucHVzaCh0PWUodCxyKSksdFswXSo9WmQsdFsxXSo9WmR9fTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOlFyKFsrblswXSwrblsxXV0pLHQpOnJ9LHQucmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpRcigrbiksdCk6aX0sdC5wcmVjaXNpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOlFyKCtuKSx0KTpvfSx0fSx0Lmdlb0NsaXBBbnRpbWVyaWRpYW49Q3AsdC5nZW9DbGlwQ2lyY2xlPWdpLHQuZ2VvQ2xpcEV4dGVudD1mdW5jdGlvbigpe3ZhciB0LG4sZSxyPTAsaT0wLG89OTYwLGE9NTAwO3JldHVybiBlPXtzdHJlYW06ZnVuY3Rpb24oZSl7cmV0dXJuIHQmJm49PT1lP3Q6dD15aShyLGksbyxhKShuPWUpfSxleHRlbnQ6ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K3VbMF1bMF0saT0rdVswXVsxXSxvPSt1WzFdWzBdLGE9K3VbMV1bMV0sdD1uPW51bGwsZSk6W1tyLGldLFtvLGFdXX19fSx0Lmdlb0NsaXBSZWN0YW5nbGU9eWksdC5nZW9Db250YWlucz1mdW5jdGlvbih0LG4pe3JldHVybih0JiZxcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP3FwW3QudHlwZV06TWkpKHQsbil9LHQuZ2VvRGlzdGFuY2U9d2ksdC5nZW9HcmF0aWN1bGU9UGksdC5nZW9HcmF0aWN1bGUxMD1mdW5jdGlvbigpe3JldHVybiBQaSgpKCl9LHQuZ2VvSW50ZXJwb2xhdGU9ZnVuY3Rpb24odCxuKXt2YXIgZT10WzBdKlFkLHI9dFsxXSpRZCxpPW5bMF0qUWQsbz1uWzFdKlFkLGE9bnAociksdT1hcChyKSxmPW5wKG8pLGM9YXAobykscz1hKm5wKGUpLGw9YSphcChlKSxoPWYqbnAoaSksZD1mKmFwKGkpLHA9MipkcihmcChwcihvLXIpK2EqZipwcihpLWUpKSksdj1hcChwKSxnPXA/ZnVuY3Rpb24odCl7dmFyIG49YXAodCo9cCkvdixlPWFwKHAtdCkvdixyPWUqcytuKmgsaT1lKmwrbipkLG89ZSp1K24qYztyZXR1cm5bdHAoaSxyKSpaZCx0cChvLGZwKHIqcitpKmkpKSpaZF19OmZ1bmN0aW9uKCl7cmV0dXJuW2UqWmQscipaZF19O3JldHVybiBnLmRpc3RhbmNlPXAsZ30sdC5nZW9MZW5ndGg9eGksdC5nZW9QYXRoPWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCYmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG8mJmkucG9pbnRSYWRpdXMoK28uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxicih0LHIoaSkpKSxpLnJlc3VsdCgpfXZhciByLGksbz00LjU7cmV0dXJuIGUuYXJlYT1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKEZwKSksRnAucmVzdWx0KCl9LGUubWVhc3VyZT1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKGN2KSksY3YucmVzdWx0KCl9LGUuYm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiBicih0LHIoR3ApKSxHcC5yZXN1bHQoKX0sZS5jZW50cm9pZD1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKGV2KSksZXYucmVzdWx0KCl9LGUucHJvamVjdGlvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uPyh0PW51bGwsemkpOih0PW4pLnN0cmVhbSxlKTp0fSxlLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD8obj1udWxsLG5ldyBXaSk6bmV3IEdpKG49dCksXCJmdW5jdGlvblwiIT10eXBlb2YgbyYmaS5wb2ludFJhZGl1cyhvKSxlKTpufSxlLnBvaW50UmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDooaS5wb2ludFJhZGl1cygrdCksK3QpLGUpOm99LGUucHJvamVjdGlvbih0KS5jb250ZXh0KG4pfSx0Lmdlb0FsYmVycz1sbyx0Lmdlb0FsYmVyc1VzYT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG49dFswXSxlPXRbMV07cmV0dXJuIHU9bnVsbCxpLnBvaW50KG4sZSksdXx8KG8ucG9pbnQobixlKSx1KXx8KGEucG9pbnQobixlKSx1KX1mdW5jdGlvbiBuKCl7cmV0dXJuIGU9cj1udWxsLHR9dmFyIGUscixpLG8sYSx1LGY9bG8oKSxjPXNvKCkucm90YXRlKFsxNTQsMF0pLmNlbnRlcihbLTIsNTguNV0pLnBhcmFsbGVscyhbNTUsNjVdKSxzPXNvKCkucm90YXRlKFsxNTcsMF0pLmNlbnRlcihbLTMsMTkuOV0pLnBhcmFsbGVscyhbOCwxOF0pLGw9e3BvaW50OmZ1bmN0aW9uKHQsbil7dT1bdCxuXX19O3JldHVybiB0LmludmVydD1mdW5jdGlvbih0KXt2YXIgbj1mLnNjYWxlKCksZT1mLnRyYW5zbGF0ZSgpLHI9KHRbMF0tZVswXSkvbixpPSh0WzFdLWVbMV0pL247cmV0dXJuKGk+PS4xMiYmaTwuMjM0JiZyPj0tLjQyNSYmcjwtLjIxND9jOmk+PS4xNjYmJmk8LjIzNCYmcj49LS4yMTQmJnI8LS4xMTU/czpmKS5pbnZlcnQodCl9LHQuc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybiBlJiZyPT09dD9lOmU9ZnVuY3Rpb24odCl7dmFyIG49dC5sZW5ndGg7cmV0dXJue3BvaW50OmZ1bmN0aW9uKGUscil7Zm9yKHZhciBpPS0xOysraTxuOyl0W2ldLnBvaW50KGUscil9LHNwaGVyZTpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLnBvbHlnb25FbmQoKX19fShbZi5zdHJlYW0ocj10KSxjLnN0cmVhbSh0KSxzLnN0cmVhbSh0KV0pfSx0LnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZi5wcmVjaXNpb24odCksYy5wcmVjaXNpb24odCkscy5wcmVjaXNpb24odCksbigpKTpmLnByZWNpc2lvbigpfSx0LnNjYWxlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmLnNjYWxlKG4pLGMuc2NhbGUoLjM1Km4pLHMuc2NhbGUobiksdC50cmFuc2xhdGUoZi50cmFuc2xhdGUoKSkpOmYuc2NhbGUoKX0sdC50cmFuc2xhdGU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGYudHJhbnNsYXRlKCk7dmFyIGU9Zi5zY2FsZSgpLHI9K3RbMF0sdT0rdFsxXTtyZXR1cm4gaT1mLnRyYW5zbGF0ZSh0KS5jbGlwRXh0ZW50KFtbci0uNDU1KmUsdS0uMjM4KmVdLFtyKy40NTUqZSx1Ky4yMzgqZV1dKS5zdHJlYW0obCksbz1jLnRyYW5zbGF0ZShbci0uMzA3KmUsdSsuMjAxKmVdKS5jbGlwRXh0ZW50KFtbci0uNDI1KmUrSGQsdSsuMTIqZStIZF0sW3ItLjIxNCplLUhkLHUrLjIzNCplLUhkXV0pLnN0cmVhbShsKSxhPXMudHJhbnNsYXRlKFtyLS4yMDUqZSx1Ky4yMTIqZV0pLmNsaXBFeHRlbnQoW1tyLS4yMTQqZStIZCx1Ky4xNjYqZStIZF0sW3ItLjExNSplLUhkLHUrLjIzNCplLUhkXV0pLnN0cmVhbShsKSxuKCl9LHQuZml0RXh0ZW50PWZ1bmN0aW9uKG4sZSl7cmV0dXJuIHRvKHQsbixlKX0sdC5maXRTaXplPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIG5vKHQsbixlKX0sdC5maXRXaWR0aD1mdW5jdGlvbihuLGUpe3JldHVybiBlbyh0LG4sZSl9LHQuZml0SGVpZ2h0PWZ1bmN0aW9uKG4sZSl7cmV0dXJuIHJvKHQsbixlKX0sdC5zY2FsZSgxMDcwKX0sdC5nZW9BemltdXRoYWxFcXVhbEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oZHYpLnNjYWxlKDEyNC43NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0F6aW11dGhhbEVxdWFsQXJlYVJhdz1kdix0Lmdlb0F6aW11dGhhbEVxdWlkaXN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIGFvKHB2KS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LHQuZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXc9cHYsdC5nZW9Db25pY0NvbmZvcm1hbD1mdW5jdGlvbigpe3JldHVybiBmbyhfbykuc2NhbGUoMTA5LjUpLnBhcmFsbGVscyhbMzAsMzBdKX0sdC5nZW9Db25pY0NvbmZvcm1hbFJhdz1fbyx0Lmdlb0NvbmljRXF1YWxBcmVhPXNvLHQuZ2VvQ29uaWNFcXVhbEFyZWFSYXc9Y28sdC5nZW9Db25pY0VxdWlkaXN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIGZvKG1vKS5zY2FsZSgxMzEuMTU0KS5jZW50ZXIoWzAsMTMuOTM4OV0pfSx0Lmdlb0NvbmljRXF1aWRpc3RhbnRSYXc9bW8sdC5nZW9FcXVpcmVjdGFuZ3VsYXI9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oYm8pLnNjYWxlKDE1Mi42Myl9LHQuZ2VvRXF1aXJlY3Rhbmd1bGFyUmF3PWJvLHQuZ2VvR25vbW9uaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oeG8pLnNjYWxlKDE0NC4wNDkpLmNsaXBBbmdsZSg2MCl9LHQuZ2VvR25vbW9uaWNSYXc9eG8sdC5nZW9JZGVudGl0eT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtyZXR1cm4gaT1vPW51bGwsYX12YXIgbixlLHIsaSxvLGEsdT0xLGY9MCxjPTAscz0xLGw9MSxoPXppLGQ9bnVsbCxwPXppO3JldHVybiBhPXtzdHJlYW06ZnVuY3Rpb24odCl7cmV0dXJuIGkmJm89PT10P2k6aT1oKHAobz10KSl9LHBvc3RjbGlwOmZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPWksZD1uPWU9cj1udWxsLHQoKSk6cH0sY2xpcEV4dGVudDpmdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1udWxsPT1pPyhkPW49ZT1yPW51bGwsemkpOnlpKGQ9K2lbMF1bMF0sbj0raVswXVsxXSxlPStpWzFdWzBdLHI9K2lbMV1bMV0pLHQoKSk6bnVsbD09ZD9udWxsOltbZCxuXSxbZSxyXV19LHNjYWxlOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKCh1PStuKSpzLHUqbCxmLGMpLHQoKSk6dX0sdHJhbnNsYXRlOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKHUqcyx1KmwsZj0rblswXSxjPStuWzFdKSx0KCkpOltmLGNdfSxyZWZsZWN0WDpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13byh1KihzPW4/LTE6MSksdSpsLGYsYyksdCgpKTpzPDB9LHJlZmxlY3RZOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKHUqcyx1KihsPW4/LTE6MSksZixjKSx0KCkpOmw8MH0sZml0RXh0ZW50OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRvKGEsdCxuKX0sZml0U2l6ZTpmdW5jdGlvbih0LG4pe3JldHVybiBubyhhLHQsbil9LGZpdFdpZHRoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGVvKGEsdCxuKX0sZml0SGVpZ2h0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHJvKGEsdCxuKX19fSx0Lmdlb1Byb2plY3Rpb249YW8sdC5nZW9Qcm9qZWN0aW9uTXV0YXRvcj11byx0Lmdlb01lcmNhdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGdvKHZvKS5zY2FsZSg5NjEvV2QpfSx0Lmdlb01lcmNhdG9yUmF3PXZvLHQuZ2VvTmF0dXJhbEVhcnRoMT1mdW5jdGlvbigpe3JldHVybiBhbyhNbykuc2NhbGUoMTc1LjI5NSl9LHQuZ2VvTmF0dXJhbEVhcnRoMVJhdz1Nbyx0Lmdlb09ydGhvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBhbyhBbykuc2NhbGUoMjQ5LjUpLmNsaXBBbmdsZSg5MCtIZCl9LHQuZ2VvT3J0aG9ncmFwaGljUmF3PUFvLHQuZ2VvU3RlcmVvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBhbyhUbykuc2NhbGUoMjUwKS5jbGlwQW5nbGUoMTQyKX0sdC5nZW9TdGVyZW9ncmFwaGljUmF3PVRvLHQuZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yPWZ1bmN0aW9uKCl7dmFyIHQ9Z28oTm8pLG49dC5jZW50ZXIsZT10LnJvdGF0ZTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihbLXRbMV0sdFswXV0pOih0PW4oKSxbdFsxXSwtdFswXV0pfSx0LnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKFt0WzBdLHRbMV0sdC5sZW5ndGg+Mj90WzJdKzkwOjkwXSk6KHQ9ZSgpLFt0WzBdLHRbMV0sdFsyXS05MF0pfSxlKFswLDAsOTBdKS5zY2FsZSgxNTkuMTU1KX0sdC5nZW9UcmFuc3ZlcnNlTWVyY2F0b3JSYXc9Tm8sdC5nZW9Sb3RhdGlvbj1paSx0Lmdlb1N0cmVhbT1icix0Lmdlb1RyYW5zZm9ybT1mdW5jdGlvbih0KXtyZXR1cm57c3RyZWFtOlFpKHQpfX0sdC5jbHVzdGVyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbyxhPTA7dC5lYWNoQWZ0ZXIoZnVuY3Rpb24odCl7dmFyIGU9dC5jaGlsZHJlbjtlPyh0Lng9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKEVvLDApL3QubGVuZ3RofShlKSx0Lnk9ZnVuY3Rpb24odCl7cmV0dXJuIDErdC5yZWR1Y2Uoa28sMCl9KGUpKToodC54PW8/YSs9bih0LG8pOjAsdC55PTAsbz10KX0pO3ZhciB1PWZ1bmN0aW9uKHQpe2Zvcih2YXIgbjtuPXQuY2hpbGRyZW47KXQ9blswXTtyZXR1cm4gdH0odCksZj1mdW5jdGlvbih0KXtmb3IodmFyIG47bj10LmNoaWxkcmVuOyl0PW5bbi5sZW5ndGgtMV07cmV0dXJuIHR9KHQpLGM9dS54LW4odSxmKS8yLHM9Zi54K24oZix1KS8yO3JldHVybiB0LmVhY2hBZnRlcihpP2Z1bmN0aW9uKG4pe24ueD0obi54LXQueCkqZSxuLnk9KHQueS1uLnkpKnJ9OmZ1bmN0aW9uKG4pe24ueD0obi54LWMpLyhzLWMpKmUsbi55PSgxLSh0Lnk/bi55L3QueToxKSkqcn0pfXZhciBuPVNvLGU9MSxyPTEsaT0hMTtyZXR1cm4gdC5zZXBhcmF0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWUsdCk6bn0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSExLGU9K25bMF0scj0rblsxXSx0KTppP251bGw6W2Uscl19LHQubm9kZVNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITAsZT0rblswXSxyPStuWzFdLHQpOmk/W2Uscl06bnVsbH0sdH0sdC5oaWVyYXJjaHk9UG8sdC5wYWNrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gdC54PWUvMix0Lnk9ci8yLG4/dC5lYWNoQmVmb3JlKFFvKG4pKS5lYWNoQWZ0ZXIoSm8oaSwuNSkpLmVhY2hCZWZvcmUoS28oMSkpOnQuZWFjaEJlZm9yZShRbyhabykpLmVhY2hBZnRlcihKbygkbywxKSkuZWFjaEFmdGVyKEpvKGksdC5yL01hdGgubWluKGUscikpKS5lYWNoQmVmb3JlKEtvKE1hdGgubWluKGUscikvKDIqdC5yKSkpLHR9dmFyIG49bnVsbCxlPTEscj0xLGk9JG87cmV0dXJuIHQucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P251bGw6Vm8odCl9KGUpLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rblswXSxyPStuWzFdLHQpOltlLHJdfSx0LnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTppfSx0fSx0LnBhY2tTaWJsaW5ncz1mdW5jdGlvbih0KXtyZXR1cm4gR28odCksdH0sdC5wYWNrRW5jbG9zZT1Vbyx0LnBhcnRpdGlvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG89dC5oZWlnaHQrMTtyZXR1cm4gdC54MD10LnkwPXIsdC54MT1uLHQueTE9ZS9vLHQuZWFjaEJlZm9yZShmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbihlKXtlLmNoaWxkcmVuJiZuYShlLGUueDAsdCooZS5kZXB0aCsxKS9uLGUueDEsdCooZS5kZXB0aCsyKS9uKTt2YXIgaT1lLngwLG89ZS55MCxhPWUueDEtcix1PWUueTEtcjthPGkmJihpPWE9KGkrYSkvMiksdTxvJiYobz11PShvK3UpLzIpLGUueDA9aSxlLnkwPW8sZS54MT1hLGUueTE9dX19KGUsbykpLGkmJnQuZWFjaEJlZm9yZSh0YSksdH12YXIgbj0xLGU9MSxyPTAsaT0hMTtyZXR1cm4gdC5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hIW4sdCk6aX0sdC5zaXplPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStyWzBdLGU9K3JbMV0sdCk6W24sZV19LHQucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rbix0KTpyfSx0fSx0LnN0cmF0aWZ5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgcixpLG8sYSx1LGYsYyxzPXQubGVuZ3RoLGw9bmV3IEFycmF5KHMpLGg9e307Zm9yKGk9MDtpPHM7KytpKXI9dFtpXSx1PWxbaV09bmV3IERvKHIpLG51bGwhPShmPW4ocixpLHQpKSYmKGYrPVwiXCIpJiYoaFtjPWd2Kyh1LmlkPWYpXT1jIGluIGg/X3Y6dSk7Zm9yKGk9MDtpPHM7KytpKWlmKHU9bFtpXSxudWxsIT0oZj1lKHRbaV0saSx0KSkmJihmKz1cIlwiKSl7aWYoIShhPWhbZ3YrZl0pKXRocm93IG5ldyBFcnJvcihcIm1pc3Npbmc6IFwiK2YpO2lmKGE9PT1fdil0aHJvdyBuZXcgRXJyb3IoXCJhbWJpZ3VvdXM6IFwiK2YpO2EuY2hpbGRyZW4/YS5jaGlsZHJlbi5wdXNoKHUpOmEuY2hpbGRyZW49W3VdLHUucGFyZW50PWF9ZWxzZXtpZihvKXRocm93IG5ldyBFcnJvcihcIm11bHRpcGxlIHJvb3RzXCIpO289dX1pZighbyl0aHJvdyBuZXcgRXJyb3IoXCJubyByb290XCIpO2lmKG8ucGFyZW50PXl2LG8uZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0LmRlcHRoPXQucGFyZW50LmRlcHRoKzEsLS1zfSkuZWFjaEJlZm9yZShMbyksby5wYXJlbnQ9bnVsbCxzPjApdGhyb3cgbmV3IEVycm9yKFwiY3ljbGVcIik7cmV0dXJuIG99dmFyIG49ZWEsZT1yYTtyZXR1cm4gdC5pZD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1WbyhlKSx0KTpufSx0LnBhcmVudElkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVZvKG4pLHQpOmV9LHR9LHQudHJlZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGY9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscixpLG8sYT1uZXcgY2EodCwwKSx1PVthXTtuPXUucG9wKCk7KWlmKHI9bi5fLmNoaWxkcmVuKWZvcihuLmNoaWxkcmVuPW5ldyBBcnJheShvPXIubGVuZ3RoKSxpPW8tMTtpPj0wOy0taSl1LnB1c2goZT1uLmNoaWxkcmVuW2ldPW5ldyBjYShyW2ldLGkpKSxlLnBhcmVudD1uO3JldHVybihhLnBhcmVudD1uZXcgY2EobnVsbCwwKSkuY2hpbGRyZW49W2FdLGF9KHQpO2lmKGYuZWFjaEFmdGVyKG4pLGYucGFyZW50Lm09LWYueixmLmVhY2hCZWZvcmUoZSksdSl0LmVhY2hCZWZvcmUocik7ZWxzZXt2YXIgYz10LHM9dCxsPXQ7dC5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQpe3QueDxjLngmJihjPXQpLHQueD5zLngmJihzPXQpLHQuZGVwdGg+bC5kZXB0aCYmKGw9dCl9KTt2YXIgaD1jPT09cz8xOmkoYyxzKS8yLGQ9aC1jLngscD1vLyhzLngraCtkKSx2PWEvKGwuZGVwdGh8fDEpO3QuZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0Lng9KHQueCtkKSpwLHQueT10LmRlcHRoKnZ9KX1yZXR1cm4gdH1mdW5jdGlvbiBuKHQpe3ZhciBuPXQuY2hpbGRyZW4sZT10LnBhcmVudC5jaGlsZHJlbixyPXQuaT9lW3QuaS0xXTpudWxsO2lmKG4peyhmdW5jdGlvbih0KXtmb3IodmFyIG4sZT0wLHI9MCxpPXQuY2hpbGRyZW4sbz1pLmxlbmd0aDstLW8+PTA7KShuPWlbb10pLnorPWUsbi5tKz1lLGUrPW4ucysocis9bi5jKX0pKHQpO3ZhciBvPShuWzBdLnorbltuLmxlbmd0aC0xXS56KS8yO3I/KHQuej1yLnoraSh0Ll8sci5fKSx0Lm09dC56LW8pOnQuej1vfWVsc2UgciYmKHQuej1yLnoraSh0Ll8sci5fKSk7dC5wYXJlbnQuQT1mdW5jdGlvbih0LG4sZSl7aWYobil7Zm9yKHZhciByLG89dCxhPXQsdT1uLGY9by5wYXJlbnQuY2hpbGRyZW5bMF0sYz1vLm0scz1hLm0sbD11Lm0saD1mLm07dT1hYSh1KSxvPW9hKG8pLHUmJm87KWY9b2EoZiksKGE9YWEoYSkpLmE9dCwocj11LnorbC1vLnotYytpKHUuXyxvLl8pKT4wJiYodWEoZmEodSx0LGUpLHQsciksYys9cixzKz1yKSxsKz11Lm0sYys9by5tLGgrPWYubSxzKz1hLm07dSYmIWFhKGEpJiYoYS50PXUsYS5tKz1sLXMpLG8mJiFvYShmKSYmKGYudD1vLGYubSs9Yy1oLGU9dCl9cmV0dXJuIGV9KHQscix0LnBhcmVudC5BfHxlWzBdKX1mdW5jdGlvbiBlKHQpe3QuXy54PXQueit0LnBhcmVudC5tLHQubSs9dC5wYXJlbnQubX1mdW5jdGlvbiByKHQpe3QueCo9byx0Lnk9dC5kZXB0aCphfXZhciBpPWlhLG89MSxhPTEsdT1udWxsO3JldHVybiB0LnNlcGFyYXRpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bix0KTppfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ITEsbz0rblswXSxhPStuWzFdLHQpOnU/bnVsbDpbbyxhXX0sdC5ub2RlU2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0hMCxvPStuWzBdLGE9K25bMV0sdCk6dT9bbyxhXTpudWxsfSx0fSx0LnRyZWVtYXA9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiB0LngwPXQueTA9MCx0LngxPWksdC55MT1vLHQuZWFjaEJlZm9yZShuKSxhPVswXSxyJiZ0LmVhY2hCZWZvcmUodGEpLHR9ZnVuY3Rpb24gbih0KXt2YXIgbj1hW3QuZGVwdGhdLHI9dC54MCtuLGk9dC55MCtuLG89dC54MS1uLGg9dC55MS1uO288ciYmKHI9bz0ocitvKS8yKSxoPGkmJihpPWg9KGkraCkvMiksdC54MD1yLHQueTA9aSx0LngxPW8sdC55MT1oLHQuY2hpbGRyZW4mJihuPWFbdC5kZXB0aCsxXT11KHQpLzIscis9bCh0KS1uLGkrPWYodCktbixvLT1jKHQpLW4saC09cyh0KS1uLG88ciYmKHI9bz0ocitvKS8yKSxoPGkmJihpPWg9KGkraCkvMiksZSh0LHIsaSxvLGgpKX12YXIgZT1tdixyPSExLGk9MSxvPTEsYT1bMF0sdT0kbyxmPSRvLGM9JG8scz0kbyxsPSRvO3JldHVybiB0LnJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSEhbix0KTpyfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K25bMF0sbz0rblsxXSx0KTpbaSxvXX0sdC50aWxlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVZvKG4pLHQpOmV9LHQucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LnBhZGRpbmdJbm5lcihuKS5wYWRkaW5nT3V0ZXIobik6dC5wYWRkaW5nSW5uZXIoKX0sdC5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTp1fSx0LnBhZGRpbmdPdXRlcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LnBhZGRpbmdUb3AobikucGFkZGluZ1JpZ2h0KG4pLnBhZGRpbmdCb3R0b20obikucGFkZGluZ0xlZnQobik6dC5wYWRkaW5nVG9wKCl9LHQucGFkZGluZ1RvcD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmZ9LHQucGFkZGluZ1JpZ2h0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6Y30sdC5wYWRkaW5nQm90dG9tPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6c30sdC5wYWRkaW5nTGVmdD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmx9LHR9LHQudHJlZW1hcEJpbmFyeT1mdW5jdGlvbih0LG4sZSxyLGkpe2Z1bmN0aW9uIG8odCxuLGUscixpLGEsdSl7aWYodD49bi0xKXt2YXIgYz1mW3RdO3JldHVybiBjLngwPXIsYy55MD1pLGMueDE9YSx2b2lkKGMueTE9dSl9Zm9yKHZhciBsPXNbdF0saD1lLzIrbCxkPXQrMSxwPW4tMTtkPHA7KXt2YXIgdj1kK3A+Pj4xO3Nbdl08aD9kPXYrMTpwPXZ9aC1zW2QtMV08c1tkXS1oJiZ0KzE8ZCYmLS1kO3ZhciBnPXNbZF0tbCx5PWUtZztpZihhLXI+dS1pKXt2YXIgXz0ocip5K2EqZykvZTtvKHQsZCxnLHIsaSxfLHUpLG8oZCxuLHksXyxpLGEsdSl9ZWxzZXt2YXIgYj0oaSp5K3UqZykvZTtvKHQsZCxnLHIsaSxhLGIpLG8oZCxuLHkscixiLGEsdSl9fXZhciBhLHUsZj10LmNoaWxkcmVuLGM9Zi5sZW5ndGgscz1uZXcgQXJyYXkoYysxKTtmb3Ioc1swXT11PWE9MDthPGM7KythKXNbYSsxXT11Kz1mW2FdLnZhbHVlO28oMCxjLHQudmFsdWUsbixlLHIsaSl9LHQudHJlZW1hcERpY2U9bmEsdC50cmVlbWFwU2xpY2U9c2EsdC50cmVlbWFwU2xpY2VEaWNlPWZ1bmN0aW9uKHQsbixlLHIsaSl7KDEmdC5kZXB0aD9zYTpuYSkodCxuLGUscixpKX0sdC50cmVlbWFwU3F1YXJpZnk9bXYsdC50cmVlbWFwUmVzcXVhcmlmeT14dix0LmludGVycG9sYXRlPWRuLHQuaW50ZXJwb2xhdGVBcnJheT1mbix0LmludGVycG9sYXRlQmFzaXM9S3QsdC5pbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkPXRuLHQuaW50ZXJwb2xhdGVEYXRlPWNuLHQuaW50ZXJwb2xhdGVOdW1iZXI9c24sdC5pbnRlcnBvbGF0ZU9iamVjdD1sbix0LmludGVycG9sYXRlUm91bmQ9cG4sdC5pbnRlcnBvbGF0ZVN0cmluZz1obix0LmludGVycG9sYXRlVHJhbnNmb3JtQ3NzPXNsLHQuaW50ZXJwb2xhdGVUcmFuc2Zvcm1Tdmc9bGwsdC5pbnRlcnBvbGF0ZVpvb209X24sdC5pbnRlcnBvbGF0ZVJnYj1ybCx0LmludGVycG9sYXRlUmdiQmFzaXM9aWwsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzQ2xvc2VkPW9sLHQuaW50ZXJwb2xhdGVIc2w9Z2wsdC5pbnRlcnBvbGF0ZUhzbExvbmc9eWwsdC5pbnRlcnBvbGF0ZUxhYj1mdW5jdGlvbih0LG4pe3ZhciBlPWFuKCh0PUZ0KHQpKS5sLChuPUZ0KG4pKS5sKSxyPWFuKHQuYSxuLmEpLGk9YW4odC5iLG4uYiksbz1hbih0Lm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQubD1lKG4pLHQuYT1yKG4pLHQuYj1pKG4pLHQub3BhY2l0eT1vKG4pLHQrXCJcIn19LHQuaW50ZXJwb2xhdGVIY2w9X2wsdC5pbnRlcnBvbGF0ZUhjbExvbmc9YmwsdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeD1tbCx0LmludGVycG9sYXRlQ3ViZWhlbGl4TG9uZz14bCx0LnBpZWNld2lzZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT0wLHI9bi5sZW5ndGgtMSxpPW5bMF0sbz1uZXcgQXJyYXkocjwwPzA6cik7ZTxyOylvW2VdPXQoaSxpPW5bKytlXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPU1hdGgubWF4KDAsTWF0aC5taW4oci0xLE1hdGguZmxvb3IodCo9cikpKTtyZXR1cm4gb1tuXSh0LW4pfX0sdC5xdWFudGl6ZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZVtyXT10KHIvKG4tMSkpO3JldHVybiBlfSx0LnBhdGg9b2UsdC5wb2x5Z29uQXJlYT1mdW5jdGlvbih0KXtmb3IodmFyIG4sZT0tMSxyPXQubGVuZ3RoLGk9dFtyLTFdLG89MDsrK2U8cjspbj1pLGk9dFtlXSxvKz1uWzFdKmlbMF0tblswXSppWzFdO3JldHVybiBvLzJ9LHQucG9seWdvbkNlbnRyb2lkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHI9LTEsaT10Lmxlbmd0aCxvPTAsYT0wLHU9dFtpLTFdLGY9MDsrK3I8aTspbj11LHU9dFtyXSxmKz1lPW5bMF0qdVsxXS11WzBdKm5bMV0sbys9KG5bMF0rdVswXSkqZSxhKz0oblsxXSt1WzFdKSplO3JldHVybiBmKj0zLFtvL2YsYS9mXX0sdC5wb2x5Z29uSHVsbD1mdW5jdGlvbih0KXtpZigoZT10Lmxlbmd0aCk8MylyZXR1cm4gbnVsbDt2YXIgbixlLHI9bmV3IEFycmF5KGUpLGk9bmV3IEFycmF5KGUpO2ZvcihuPTA7bjxlOysrbilyW25dPVsrdFtuXVswXSwrdFtuXVsxXSxuXTtmb3Ioci5zb3J0KGRhKSxuPTA7bjxlOysrbilpW25dPVtyW25dWzBdLC1yW25dWzFdXTt2YXIgbz1wYShyKSxhPXBhKGkpLHU9YVswXT09PW9bMF0sZj1hW2EubGVuZ3RoLTFdPT09b1tvLmxlbmd0aC0xXSxjPVtdO2ZvcihuPW8ubGVuZ3RoLTE7bj49MDstLW4pYy5wdXNoKHRbcltvW25dXVsyXV0pO2ZvcihuPSt1O248YS5sZW5ndGgtZjsrK24pYy5wdXNoKHRbclthW25dXVsyXV0pO3JldHVybiBjfSx0LnBvbHlnb25Db250YWlucz1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZSxyLGk9dC5sZW5ndGgsbz10W2ktMV0sYT1uWzBdLHU9blsxXSxmPW9bMF0sYz1vWzFdLHM9ITEsbD0wO2w8aTsrK2wpZT0obz10W2xdKVswXSwocj1vWzFdKT51IT1jPnUmJmE8KGYtZSkqKHUtcikvKGMtcikrZSYmKHM9IXMpLGY9ZSxjPXI7cmV0dXJuIHN9LHQucG9seWdvbkxlbmd0aD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPS0xLGk9dC5sZW5ndGgsbz10W2ktMV0sYT1vWzBdLHU9b1sxXSxmPTA7KytyPGk7KW49YSxlPXUsbi09YT0obz10W3JdKVswXSxlLT11PW9bMV0sZis9TWF0aC5zcXJ0KG4qbitlKmUpO3JldHVybiBmfSx0LnF1YWR0cmVlPWplLHQucmFuZG9tVW5pZm9ybT13dix0LnJhbmRvbU5vcm1hbD1Ndix0LnJhbmRvbUxvZ05vcm1hbD1Bdix0LnJhbmRvbUJhdGVzPU52LHQucmFuZG9tSXJ3aW5IYWxsPVR2LHQucmFuZG9tRXhwb25lbnRpYWw9U3YsdC5zY2FsZUJhbmQ9eWEsdC5zY2FsZVBvaW50PWZ1bmN0aW9uKCl7cmV0dXJuIF9hKHlhKCkucGFkZGluZ0lubmVyKDEpKX0sdC5zY2FsZUlkZW50aXR5PUVhLHQuc2NhbGVMaW5lYXI9U2EsdC5zY2FsZUxvZz1VYSx0LnNjYWxlT3JkaW5hbD1nYSx0LnNjYWxlSW1wbGljaXQ9UHYsdC5zY2FsZVBvdz1PYSx0LnNjYWxlU3FydD1mdW5jdGlvbigpe3JldHVybiBPYSgpLmV4cG9uZW50KC41KX0sdC5zY2FsZVF1YW50aWxlPVlhLHQuc2NhbGVRdWFudGl6ZT1CYSx0LnNjYWxlVGhyZXNob2xkPUZhLHQuc2NhbGVUaW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG9mKGNnLHVnLFZ2LFh2LGp2LEZ2LFl2LER2LHQudGltZUZvcm1hdCkuZG9tYWluKFtuZXcgRGF0ZSgyZTMsMCwxKSxuZXcgRGF0ZSgyZTMsMCwyKV0pfSx0LnNjYWxlVXRjPWZ1bmN0aW9uKCl7cmV0dXJuIG9mKFJnLFBnLHlnLHZnLGRnLGxnLFl2LER2LHQudXRjRm9ybWF0KS5kb21haW4oW0RhdGUuVVRDKDJlMywwLDEpLERhdGUuVVRDKDJlMywwLDIpXSl9LHQuc2NhbGVTZXF1ZW50aWFsPWFmLHQuc2NhbGVEaXZlcmdpbmc9dWYsdC5zY2hlbWVDYXRlZ29yeTEwPVpnLHQuc2NoZW1lQWNjZW50PVFnLHQuc2NoZW1lRGFyazI9SmcsdC5zY2hlbWVQYWlyZWQ9S2csdC5zY2hlbWVQYXN0ZWwxPXR5LHQuc2NoZW1lUGFzdGVsMj1ueSx0LnNjaGVtZVNldDE9ZXksdC5zY2hlbWVTZXQyPXJ5LHQuc2NoZW1lU2V0Mz1peSx0LmludGVycG9sYXRlQnJCRz1heSx0LnNjaGVtZUJyQkc9b3ksdC5pbnRlcnBvbGF0ZVBSR249ZnksdC5zY2hlbWVQUkduPXV5LHQuaW50ZXJwb2xhdGVQaVlHPXN5LHQuc2NoZW1lUGlZRz1jeSx0LmludGVycG9sYXRlUHVPcj1oeSx0LnNjaGVtZVB1T3I9bHksdC5pbnRlcnBvbGF0ZVJkQnU9cHksdC5zY2hlbWVSZEJ1PWR5LHQuaW50ZXJwb2xhdGVSZEd5PWd5LHQuc2NoZW1lUmRHeT12eSx0LmludGVycG9sYXRlUmRZbEJ1PV95LHQuc2NoZW1lUmRZbEJ1PXl5LHQuaW50ZXJwb2xhdGVSZFlsR249bXksdC5zY2hlbWVSZFlsR249YnksdC5pbnRlcnBvbGF0ZVNwZWN0cmFsPXd5LHQuc2NoZW1lU3BlY3RyYWw9eHksdC5pbnRlcnBvbGF0ZUJ1R249QXksdC5zY2hlbWVCdUduPU15LHQuaW50ZXJwb2xhdGVCdVB1PU55LHQuc2NoZW1lQnVQdT1UeSx0LmludGVycG9sYXRlR25CdT1FeSx0LnNjaGVtZUduQnU9U3ksdC5pbnRlcnBvbGF0ZU9yUmQ9Q3ksdC5zY2hlbWVPclJkPWt5LHQuaW50ZXJwb2xhdGVQdUJ1R249enksdC5zY2hlbWVQdUJ1R249UHksdC5pbnRlcnBvbGF0ZVB1QnU9THksdC5zY2hlbWVQdUJ1PVJ5LHQuaW50ZXJwb2xhdGVQdVJkPVV5LHQuc2NoZW1lUHVSZD1EeSx0LmludGVycG9sYXRlUmRQdT1PeSx0LnNjaGVtZVJkUHU9cXksdC5pbnRlcnBvbGF0ZVlsR25CdT1CeSx0LnNjaGVtZVlsR25CdT1ZeSx0LmludGVycG9sYXRlWWxHbj1JeSx0LnNjaGVtZVlsR249RnksdC5pbnRlcnBvbGF0ZVlsT3JCcj1IeSx0LnNjaGVtZVlsT3JCcj1qeSx0LmludGVycG9sYXRlWWxPclJkPUd5LHQuc2NoZW1lWWxPclJkPVh5LHQuaW50ZXJwb2xhdGVCbHVlcz0keSx0LnNjaGVtZUJsdWVzPVZ5LHQuaW50ZXJwb2xhdGVHcmVlbnM9WnksdC5zY2hlbWVHcmVlbnM9V3ksdC5pbnRlcnBvbGF0ZUdyZXlzPUp5LHQuc2NoZW1lR3JleXM9UXksdC5pbnRlcnBvbGF0ZVB1cnBsZXM9dF8sdC5zY2hlbWVQdXJwbGVzPUt5LHQuaW50ZXJwb2xhdGVSZWRzPWVfLHQuc2NoZW1lUmVkcz1uXyx0LmludGVycG9sYXRlT3Jhbmdlcz1pXyx0LnNjaGVtZU9yYW5nZXM9cl8sdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ9b18sdC5pbnRlcnBvbGF0ZVJhaW5ib3c9ZnVuY3Rpb24odCl7KHQ8MHx8dD4xKSYmKHQtPU1hdGguZmxvb3IodCkpO3ZhciBuPU1hdGguYWJzKHQtLjUpO3JldHVybiBmXy5oPTM2MCp0LTEwMCxmXy5zPTEuNS0xLjUqbixmXy5sPS44LS45Km4sZl8rXCJcIn0sdC5pbnRlcnBvbGF0ZVdhcm09YV8sdC5pbnRlcnBvbGF0ZUNvb2w9dV8sdC5pbnRlcnBvbGF0ZVNpbmVib3c9ZnVuY3Rpb24odCl7dmFyIG47cmV0dXJuIHQ9KC41LXQpKk1hdGguUEksY18ucj0yNTUqKG49TWF0aC5zaW4odCkpKm4sY18uZz0yNTUqKG49TWF0aC5zaW4odCtzXykpKm4sY18uYj0yNTUqKG49TWF0aC5zaW4odCtsXykpKm4sY18rXCJcIn0sdC5pbnRlcnBvbGF0ZVZpcmlkaXM9aF8sdC5pbnRlcnBvbGF0ZU1hZ21hPWRfLHQuaW50ZXJwb2xhdGVJbmZlcm5vPXBfLHQuaW50ZXJwb2xhdGVQbGFzbWE9dl8sdC5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGN0KEModCkuY2FsbChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX0sdC5jcmVhdG9yPUMsdC5sb2NhbD1zdCx0Lm1hdGNoZXI9YnMsdC5tb3VzZT1wdCx0Lm5hbWVzcGFjZT1rLHQubmFtZXNwYWNlcz12cyx0LmNsaWVudFBvaW50PWR0LHQuc2VsZWN0PWN0LHQuc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P25ldyB1dChbZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0KV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB1dChbbnVsbD09dD9bXTp0XSx3cyl9LHQuc2VsZWN0aW9uPWZ0LHQuc2VsZWN0b3I9eix0LnNlbGVjdG9yQWxsPUwsdC5zdHlsZT1GLHQudG91Y2g9dnQsdC50b3VjaGVzPWZ1bmN0aW9uKHQsbil7bnVsbD09biYmKG49aHQoKS50b3VjaGVzKTtmb3IodmFyIGU9MCxyPW4/bi5sZW5ndGg6MCxpPW5ldyBBcnJheShyKTtlPHI7KytlKWlbZV09ZHQodCxuW2VdKTtyZXR1cm4gaX0sdC53aW5kb3c9Qix0LmN1c3RvbUV2ZW50PW90LHQuYXJjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0LGMscz0rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyksbD0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksaD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1UXyxkPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLVRfLHA9Z18oZC1oKSx2PWQ+aDtpZihmfHwoZj10PW9lKCkpLGw8cyYmKGM9bCxsPXMscz1jKSxsPk1fKWlmKHA+Tl8tTV8pZi5tb3ZlVG8obCpfXyhoKSxsKnhfKGgpKSxmLmFyYygwLDAsbCxoLGQsIXYpLHM+TV8mJihmLm1vdmVUbyhzKl9fKGQpLHMqeF8oZCkpLGYuYXJjKDAsMCxzLGQsaCx2KSk7ZWxzZXt2YXIgZyx5LF89aCxiPWQsbT1oLHg9ZCx3PXAsTT1wLEE9dS5hcHBseSh0aGlzLGFyZ3VtZW50cykvMixUPUE+TV8mJihpPytpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp3XyhzKnMrbCpsKSksTj1tXyhnXyhsLXMpLzIsK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxTPU4sRT1OO2lmKFQ+TV8pe3ZhciBrPWhmKFQvcyp4XyhBKSksQz1oZihUL2wqeF8oQSkpOyh3LT0yKmspPk1fPyhrKj12PzE6LTEsbSs9ayx4LT1rKToodz0wLG09eD0oaCtkKS8yKSwoTS09MipDKT5NXz8oQyo9dj8xOi0xLF8rPUMsYi09Qyk6KE09MCxfPWI9KGgrZCkvMil9dmFyIFA9bCpfXyhfKSx6PWwqeF8oXyksUj1zKl9fKHgpLEw9cyp4Xyh4KTtpZihOPk1fKXt2YXIgRD1sKl9fKGIpLFU9bCp4XyhiKSxxPXMqX18obSksTz1zKnhfKG0pO2lmKHA8QV8pe3ZhciBZPXc+TV8/ZnVuY3Rpb24odCxuLGUscixpLG8sYSx1KXt2YXIgZj1lLXQsYz1yLW4scz1hLWksbD11LW8saD0ocyoobi1vKS1sKih0LWkpKS8obCpmLXMqYyk7cmV0dXJuW3QraCpmLG4raCpjXX0oUCx6LHEsTyxELFUsUixMKTpbUixMXSxCPVAtWVswXSxGPXotWVsxXSxJPUQtWVswXSxqPVUtWVsxXSxIPTEveF8oZnVuY3Rpb24odCl7cmV0dXJuIHQ+MT8wOnQ8LTE/QV86TWF0aC5hY29zKHQpfSgoQipJK0YqaikvKHdfKEIqQitGKkYpKndfKEkqSStqKmopKSkvMiksWD13XyhZWzBdKllbMF0rWVsxXSpZWzFdKTtTPW1fKE4sKHMtWCkvKEgtMSkpLEU9bV8oTiwobC1YKS8oSCsxKSl9fU0+TV8/RT5NXz8oZz1fZihxLE8sUCx6LGwsRSx2KSx5PV9mKEQsVSxSLEwsbCxFLHYpLGYubW92ZVRvKGcuY3grZy54MDEsZy5jeStnLnkwMSksRTxOP2YuYXJjKGcuY3gsZy5jeSxFLHlfKGcueTAxLGcueDAxKSx5Xyh5LnkwMSx5LngwMSksIXYpOihmLmFyYyhnLmN4LGcuY3ksRSx5XyhnLnkwMSxnLngwMSkseV8oZy55MTEsZy54MTEpLCF2KSxmLmFyYygwLDAsbCx5XyhnLmN5K2cueTExLGcuY3grZy54MTEpLHlfKHkuY3kreS55MTEseS5jeCt5LngxMSksIXYpLGYuYXJjKHkuY3gseS5jeSxFLHlfKHkueTExLHkueDExKSx5Xyh5LnkwMSx5LngwMSksIXYpKSk6KGYubW92ZVRvKFAseiksZi5hcmMoMCwwLGwsXyxiLCF2KSk6Zi5tb3ZlVG8oUCx6KSxzPk1fJiZ3Pk1fP1M+TV8/KGc9X2YoUixMLEQsVSxzLC1TLHYpLHk9X2YoUCx6LHEsTyxzLC1TLHYpLGYubGluZVRvKGcuY3grZy54MDEsZy5jeStnLnkwMSksUzxOP2YuYXJjKGcuY3gsZy5jeSxTLHlfKGcueTAxLGcueDAxKSx5Xyh5LnkwMSx5LngwMSksIXYpOihmLmFyYyhnLmN4LGcuY3ksUyx5XyhnLnkwMSxnLngwMSkseV8oZy55MTEsZy54MTEpLCF2KSxmLmFyYygwLDAscyx5XyhnLmN5K2cueTExLGcuY3grZy54MTEpLHlfKHkuY3kreS55MTEseS5jeCt5LngxMSksdiksZi5hcmMoeS5jeCx5LmN5LFMseV8oeS55MTEseS54MTEpLHlfKHkueTAxLHkueDAxKSwhdikpKTpmLmFyYygwLDAscyx4LG0sdik6Zi5saW5lVG8oUixMKX1lbHNlIGYubW92ZVRvKDAsMCk7aWYoZi5jbG9zZVBhdGgoKSx0KXJldHVybiBmPW51bGwsdCtcIlwifHxudWxsfXZhciBuPWRmLGU9cGYscj1sZigwKSxpPW51bGwsbz12ZixhPWdmLHU9eWYsZj1udWxsO3JldHVybiB0LmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIHQ9KCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2UuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLHI9KCtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2EuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLUFfLzI7cmV0dXJuW19fKHIpKnQseF8ocikqdF19LHQuaW5uZXJSYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0Lm91dGVyUmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC5jb3JuZXJSYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpyfSx0LnBhZFJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6YX0sdC5wYWRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOnV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1udWxsPT1uP251bGw6bix0KTpmfSx0fSx0LmFyZWE9QWYsdC5saW5lPU1mLHQucGllPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgdSxmLGMscyxsLGg9dC5sZW5ndGgsZD0wLHA9bmV3IEFycmF5KGgpLHY9bmV3IEFycmF5KGgpLGc9K2kuYXBwbHkodGhpcyxhcmd1bWVudHMpLHk9TWF0aC5taW4oTl8sTWF0aC5tYXgoLU5fLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpLWcpKSxfPU1hdGgubWluKE1hdGguYWJzKHkpL2gsYS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGI9XyooeTwwPy0xOjEpO2Zvcih1PTA7dTxoOysrdSkobD12W3BbdV09dV09K24odFt1XSx1LHQpKT4wJiYoZCs9bCk7Zm9yKG51bGwhPWU/cC5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodlt0XSx2W25dKX0pOm51bGwhPXImJnAuc29ydChmdW5jdGlvbihuLGUpe3JldHVybiByKHRbbl0sdFtlXSl9KSx1PTAsYz1kPyh5LWgqYikvZDowO3U8aDsrK3UsZz1zKWY9cFt1XSxzPWcrKChsPXZbZl0pPjA/bCpjOjApK2IsdltmXT17ZGF0YTp0W2ZdLGluZGV4OnUsdmFsdWU6bCxzdGFydEFuZ2xlOmcsZW5kQW5nbGU6cyxwYWRBbmdsZTpffTtyZXR1cm4gdn12YXIgbj1OZixlPVRmLHI9bnVsbCxpPWxmKDApLG89bGYoTl8pLGE9bGYoMCk7cmV0dXJuIHQudmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0LnNvcnRWYWx1ZXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bixyPW51bGwsdCk6ZX0sdC5zb3J0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW4sZT1udWxsLHQpOnJ9LHQuc3RhcnRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQuZW5kQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LnBhZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6YX0sdH0sdC5hcmVhUmFkaWFsPVBmLHQucmFkaWFsQXJlYT1QZix0LmxpbmVSYWRpYWw9Q2YsdC5yYWRpYWxMaW5lPUNmLHQucG9pbnRSYWRpYWw9emYsdC5saW5rSG9yaXpvbnRhbD1mdW5jdGlvbigpe3JldHVybiBEZihVZil9LHQubGlua1ZlcnRpY2FsPWZ1bmN0aW9uKCl7cmV0dXJuIERmKHFmKX0sdC5saW5rUmFkaWFsPWZ1bmN0aW9uKCl7dmFyIHQ9RGYoT2YpO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQucmFkaXVzPXQueSxkZWxldGUgdC55LHR9LHQuc3ltYm9sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0O2lmKHJ8fChyPXQ9b2UoKSksbi5hcHBseSh0aGlzLGFyZ3VtZW50cykuZHJhdyhyLCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdClyZXR1cm4gcj1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1sZihrXyksZT1sZig2NCkscj1udWxsO3JldHVybiB0LnR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKGUpLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6bix0KTpyfSx0fSx0LnN5bWJvbHM9WF8sdC5zeW1ib2xDaXJjbGU9a18sdC5zeW1ib2xDcm9zcz1DXyx0LnN5bWJvbERpYW1vbmQ9Ul8sdC5zeW1ib2xTcXVhcmU9T18sdC5zeW1ib2xTdGFyPXFfLHQuc3ltYm9sVHJpYW5nbGU9Ql8sdC5zeW1ib2xXeWU9SF8sdC5jdXJ2ZUJhc2lzQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSWYodCl9LHQuY3VydmVCYXNpc09wZW49ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBqZih0KX0sdC5jdXJ2ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRmYodCl9LHQuY3VydmVCdW5kbGU9R18sdC5jdXJ2ZUNhcmRpbmFsQ2xvc2VkPSRfLHQuY3VydmVDYXJkaW5hbE9wZW49V18sdC5jdXJ2ZUNhcmRpbmFsPVZfLHQuY3VydmVDYXRtdWxsUm9tQ2xvc2VkPVFfLHQuY3VydmVDYXRtdWxsUm9tT3Blbj1KXyx0LmN1cnZlQ2F0bXVsbFJvbT1aXyx0LmN1cnZlTGluZWFyQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgS2YodCl9LHQuY3VydmVMaW5lYXI9bWYsdC5jdXJ2ZU1vbm90b25lWD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGljKHQpfSx0LmN1cnZlTW9ub3RvbmVZPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgb2ModCl9LHQuY3VydmVOYXR1cmFsPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdWModCl9LHQuY3VydmVTdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY2ModCwuNSl9LHQuY3VydmVTdGVwQWZ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjYyh0LDEpfSx0LmN1cnZlU3RlcEJlZm9yZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGNjKHQsMCl9LHQuc3RhY2s9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvLGEsdT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxmPXQubGVuZ3RoLGM9dS5sZW5ndGgscz1uZXcgQXJyYXkoYyk7Zm9yKG89MDtvPGM7KytvKXtmb3IodmFyIGwsaD11W29dLGQ9c1tvXT1uZXcgQXJyYXkoZikscD0wO3A8ZjsrK3ApZFtwXT1sPVswLCtpKHRbcF0saCxwLHQpXSxsLmRhdGE9dFtwXTtkLmtleT1ofWZvcihvPTAsYT1lKHMpO288YzsrK28pc1thW29dXS5pbmRleD1vO3JldHVybiByKHMsYSksc312YXIgbj1sZihbXSksZT1sYyxyPXNjLGk9aGM7cmV0dXJuIHQua2V5cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bGYoRV8uY2FsbChlKSksdCk6bn0sdC52YWx1ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQub3JkZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09bj9sYzpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoRV8uY2FsbChuKSksdCk6ZX0sdC5vZmZzZXQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9zYzpuLHQpOnJ9LHR9LHQuc3RhY2tPZmZzZXRFeHBhbmQ9ZnVuY3Rpb24odCxuKXtpZigocj10Lmxlbmd0aCk+MCl7Zm9yKHZhciBlLHIsaSxvPTAsYT10WzBdLmxlbmd0aDtvPGE7KytvKXtmb3IoaT1lPTA7ZTxyOysrZSlpKz10W2VdW29dWzFdfHwwO2lmKGkpZm9yKGU9MDtlPHI7KytlKXRbZV1bb11bMV0vPWl9c2ModCxuKX19LHQuc3RhY2tPZmZzZXREaXZlcmdpbmc9ZnVuY3Rpb24odCxuKXtpZigodT10Lmxlbmd0aCk+MSlmb3IodmFyIGUscixpLG8sYSx1LGY9MCxjPXRbblswXV0ubGVuZ3RoO2Y8YzsrK2YpZm9yKG89YT0wLGU9MDtlPHU7KytlKShpPShyPXRbbltlXV1bZl0pWzFdLXJbMF0pPj0wPyhyWzBdPW8sclsxXT1vKz1pKTppPDA/KHJbMV09YSxyWzBdPWErPWkpOnJbMF09b30sdC5zdGFja09mZnNldE5vbmU9c2MsdC5zdGFja09mZnNldFNpbGhvdWV0dGU9ZnVuY3Rpb24odCxuKXtpZigoZT10Lmxlbmd0aCk+MCl7Zm9yKHZhciBlLHI9MCxpPXRbblswXV0sbz1pLmxlbmd0aDtyPG87KytyKXtmb3IodmFyIGE9MCx1PTA7YTxlOysrYSl1Kz10W2FdW3JdWzFdfHwwO2lbcl1bMV0rPWlbcl1bMF09LXUvMn1zYyh0LG4pfX0sdC5zdGFja09mZnNldFdpZ2dsZT1mdW5jdGlvbih0LG4pe2lmKChpPXQubGVuZ3RoKT4wJiYocj0oZT10W25bMF1dKS5sZW5ndGgpPjApe2Zvcih2YXIgZSxyLGksbz0wLGE9MTthPHI7KythKXtmb3IodmFyIHU9MCxmPTAsYz0wO3U8aTsrK3Upe2Zvcih2YXIgcz10W25bdV1dLGw9c1thXVsxXXx8MCxoPShsLShzW2EtMV1bMV18fDApKS8yLGQ9MDtkPHU7KytkKXt2YXIgcD10W25bZF1dO2grPShwW2FdWzFdfHwwKS0ocFthLTFdWzFdfHwwKX1mKz1sLGMrPWgqbH1lW2EtMV1bMV0rPWVbYS0xXVswXT1vLGYmJihvLT1jL2YpfWVbYS0xXVsxXSs9ZVthLTFdWzBdPW8sc2ModCxuKX19LHQuc3RhY2tPcmRlckFzY2VuZGluZz1kYyx0LnN0YWNrT3JkZXJEZXNjZW5kaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBkYyh0KS5yZXZlcnNlKCl9LHQuc3RhY2tPcmRlckluc2lkZU91dD1mdW5jdGlvbih0KXt2YXIgbixlLHI9dC5sZW5ndGgsaT10Lm1hcChwYyksbz1sYyh0KS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGlbbl0taVt0XX0pLGE9MCx1PTAsZj1bXSxjPVtdO2ZvcihuPTA7bjxyOysrbillPW9bbl0sYTx1PyhhKz1pW2VdLGYucHVzaChlKSk6KHUrPWlbZV0sYy5wdXNoKGUpKTtyZXR1cm4gYy5yZXZlcnNlKCkuY29uY2F0KGYpfSx0LnN0YWNrT3JkZXJOb25lPWxjLHQuc3RhY2tPcmRlclJldmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGxjKHQpLnJldmVyc2UoKX0sdC50aW1lSW50ZXJ2YWw9SWEsdC50aW1lTWlsbGlzZWNvbmQ9RHYsdC50aW1lTWlsbGlzZWNvbmRzPVV2LHQudXRjTWlsbGlzZWNvbmQ9RHYsdC51dGNNaWxsaXNlY29uZHM9VXYsdC50aW1lU2Vjb25kPVl2LHQudGltZVNlY29uZHM9QnYsdC51dGNTZWNvbmQ9WXYsdC51dGNTZWNvbmRzPUJ2LHQudGltZU1pbnV0ZT1Gdix0LnRpbWVNaW51dGVzPUl2LHQudGltZUhvdXI9anYsdC50aW1lSG91cnM9SHYsdC50aW1lRGF5PVh2LHQudGltZURheXM9R3YsdC50aW1lV2Vlaz1Wdix0LnRpbWVXZWVrcz10Zyx0LnRpbWVTdW5kYXk9VnYsdC50aW1lU3VuZGF5cz10Zyx0LnRpbWVNb25kYXk9JHYsdC50aW1lTW9uZGF5cz1uZyx0LnRpbWVUdWVzZGF5PVd2LHQudGltZVR1ZXNkYXlzPWVnLHQudGltZVdlZG5lc2RheT1adix0LnRpbWVXZWRuZXNkYXlzPXJnLHQudGltZVRodXJzZGF5PVF2LHQudGltZVRodXJzZGF5cz1pZyx0LnRpbWVGcmlkYXk9SnYsdC50aW1lRnJpZGF5cz1vZyx0LnRpbWVTYXR1cmRheT1Ldix0LnRpbWVTYXR1cmRheXM9YWcsdC50aW1lTW9udGg9dWcsdC50aW1lTW9udGhzPWZnLHQudGltZVllYXI9Y2csdC50aW1lWWVhcnM9c2csdC51dGNNaW51dGU9bGcsdC51dGNNaW51dGVzPWhnLHQudXRjSG91cj1kZyx0LnV0Y0hvdXJzPXBnLHQudXRjRGF5PXZnLHQudXRjRGF5cz1nZyx0LnV0Y1dlZWs9eWcsdC51dGNXZWVrcz1BZyx0LnV0Y1N1bmRheT15Zyx0LnV0Y1N1bmRheXM9QWcsdC51dGNNb25kYXk9X2csdC51dGNNb25kYXlzPVRnLHQudXRjVHVlc2RheT1iZyx0LnV0Y1R1ZXNkYXlzPU5nLHQudXRjV2VkbmVzZGF5PW1nLHQudXRjV2VkbmVzZGF5cz1TZyx0LnV0Y1RodXJzZGF5PXhnLHQudXRjVGh1cnNkYXlzPUVnLHQudXRjRnJpZGF5PXdnLHQudXRjRnJpZGF5cz1rZyx0LnV0Y1NhdHVyZGF5PU1nLHQudXRjU2F0dXJkYXlzPUNnLHQudXRjTW9udGg9UGcsdC51dGNNb250aHM9emcsdC51dGNZZWFyPVJnLHQudXRjWWVhcnM9RGcsdC50aW1lRm9ybWF0RGVmYXVsdExvY2FsZT1uZix0LnRpbWVGb3JtYXRMb2NhbGU9JGEsdC5pc29Gb3JtYXQ9RmcsdC5pc29QYXJzZT1JZyx0Lm5vdz13bix0LnRpbWVyPVRuLHQudGltZXJGbHVzaD1Obix0LnRpbWVvdXQ9Q24sdC5pbnRlcnZhbD1mdW5jdGlvbih0LG4sZSl7dmFyIHI9bmV3IEFuLGk9bjtyZXR1cm4gbnVsbD09bj8oci5yZXN0YXJ0KHQsbixlKSxyKToobj0rbixlPW51bGw9PWU/d24oKTorZSxyLnJlc3RhcnQoZnVuY3Rpb24gbyhhKXthKz1pLHIucmVzdGFydChvLGkrPW4sZSksdChhKX0sbixlKSxyKX0sdC50cmFuc2l0aW9uPVluLHQuYWN0aXZlPWZ1bmN0aW9uKHQsbil7dmFyIGUscixpPXQuX190cmFuc2l0aW9uO2lmKGkpe249bnVsbD09bj9udWxsOm4rXCJcIjtmb3IociBpbiBpKWlmKChlPWlbcl0pLnN0YXRlPkxsJiZlLm5hbWU9PT1uKXJldHVybiBuZXcgT24oW1t0XV0saGgsbiwrcil9cmV0dXJuIG51bGx9LHQuaW50ZXJydXB0PURuLHQudm9yb25vaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIG5ldyBCYyh0Lm1hcChmdW5jdGlvbihyLGkpe3ZhciBvPVtNYXRoLnJvdW5kKG4ocixpLHQpL2FiKSphYixNYXRoLnJvdW5kKGUocixpLHQpL2FiKSphYl07cmV0dXJuIG8uaW5kZXg9aSxvLmRhdGE9cixvfSkscil9dmFyIG49Z2MsZT15YyxyPW51bGw7cmV0dXJuIHQucG9seWdvbnM9ZnVuY3Rpb24obil7cmV0dXJuIHQobikucG9seWdvbnMoKX0sdC5saW5rcz1mdW5jdGlvbihuKXtyZXR1cm4gdChuKS5saW5rcygpfSx0LnRyaWFuZ2xlcz1mdW5jdGlvbihuKXtyZXR1cm4gdChuKS50cmlhbmdsZXMoKX0sdC54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTp2YygrZSksdCk6bn0sdC55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjp2YygrbiksdCk6ZX0sdC5leHRlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOltbK25bMF1bMF0sK25bMF1bMV1dLFsrblsxXVswXSwrblsxXVsxXV1dLHQpOnImJltbclswXVswXSxyWzBdWzFdXSxbclsxXVswXSxyWzFdWzFdXV19LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6W1swLDBdLFsrblswXSwrblsxXV1dLHQpOnImJltyWzFdWzBdLXJbMF1bMF0sclsxXVsxXS1yWzBdWzFdXX0sdH0sdC56b29tPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0LnByb3BlcnR5KFwiX196b29tXCIsJGMpLm9uKFwid2hlZWwuem9vbVwiLGYpLm9uKFwibW91c2Vkb3duLnpvb21cIixjKS5vbihcImRibGNsaWNrLnpvb21cIixzKS5maWx0ZXIobSkub24oXCJ0b3VjaHN0YXJ0Lnpvb21cIixsKS5vbihcInRvdWNobW92ZS56b29tXCIsaCkub24oXCJ0b3VjaGVuZC56b29tIHRvdWNoY2FuY2VsLnpvb21cIixkKS5zdHlsZShcInRvdWNoLWFjdGlvblwiLFwibm9uZVwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKX1mdW5jdGlvbiBlKHQsbil7cmV0dXJuKG49TWF0aC5tYXgoeFswXSxNYXRoLm1pbih4WzFdLG4pKSk9PT10Lms/dDpuZXcgSWMobix0LngsdC55KX1mdW5jdGlvbiByKHQsbixlKXt2YXIgcj1uWzBdLWVbMF0qdC5rLGk9blsxXS1lWzFdKnQuaztyZXR1cm4gcj09PXQueCYmaT09PXQueT90Om5ldyBJYyh0LmsscixpKX1mdW5jdGlvbiBpKHQpe3JldHVyblsoK3RbMF1bMF0rICt0WzFdWzBdKS8yLCgrdFswXVsxXSsgK3RbMV1bMV0pLzJdfWZ1bmN0aW9uIG8odCxuLGUpe3Qub24oXCJzdGFydC56b29tXCIsZnVuY3Rpb24oKXthKHRoaXMsYXJndW1lbnRzKS5zdGFydCgpfSkub24oXCJpbnRlcnJ1cHQuem9vbSBlbmQuem9vbVwiLGZ1bmN0aW9uKCl7YSh0aGlzLGFyZ3VtZW50cykuZW5kKCl9KS50d2VlbihcInpvb21cIixmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cyxyPWEodGhpcyx0KSxvPXkuYXBwbHkodGhpcyx0KSx1PWV8fGkobyksZj1NYXRoLm1heChvWzFdWzBdLW9bMF1bMF0sb1sxXVsxXS1vWzBdWzFdKSxjPXRoaXMuX196b29tLHM9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsdCk6bixsPUEoYy5pbnZlcnQodSkuY29uY2F0KGYvYy5rKSxzLmludmVydCh1KS5jb25jYXQoZi9zLmspKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYoMT09PXQpdD1zO2Vsc2V7dmFyIG49bCh0KSxlPWYvblsyXTt0PW5ldyBJYyhlLHVbMF0tblswXSplLHVbMV0tblsxXSplKX1yLnpvb20obnVsbCx0KX19KX1mdW5jdGlvbiBhKHQsbil7Zm9yKHZhciBlLHI9MCxpPVQubGVuZ3RoO3I8aTsrK3IpaWYoKGU9VFtyXSkudGhhdD09PXQpcmV0dXJuIGU7cmV0dXJuIG5ldyB1KHQsbil9ZnVuY3Rpb24gdSh0LG4pe3RoaXMudGhhdD10LHRoaXMuYXJncz1uLHRoaXMuaW5kZXg9LTEsdGhpcy5hY3RpdmU9MCx0aGlzLmV4dGVudD15LmFwcGx5KHQsbil9ZnVuY3Rpb24gZigpe2lmKGcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD1hKHRoaXMsYXJndW1lbnRzKSxuPXRoaXMuX196b29tLGk9TWF0aC5tYXgoeFswXSxNYXRoLm1pbih4WzFdLG4uaypNYXRoLnBvdygyLGIuYXBwbHkodGhpcyxhcmd1bWVudHMpKSkpLG89cHQodGhpcyk7aWYodC53aGVlbCl0Lm1vdXNlWzBdWzBdPT09b1swXSYmdC5tb3VzZVswXVsxXT09PW9bMV18fCh0Lm1vdXNlWzFdPW4uaW52ZXJ0KHQubW91c2VbMF09bykpLGNsZWFyVGltZW91dCh0LndoZWVsKTtlbHNle2lmKG4uaz09PWkpcmV0dXJuO3QubW91c2U9W28sbi5pbnZlcnQobyldLERuKHRoaXMpLHQuc3RhcnQoKX1YYygpLHQud2hlZWw9c2V0VGltZW91dChmdW5jdGlvbigpe3Qud2hlZWw9bnVsbCx0LmVuZCgpfSxrKSx0Lnpvb20oXCJtb3VzZVwiLF8ocihlKG4saSksdC5tb3VzZVswXSx0Lm1vdXNlWzFdKSx0LmV4dGVudCx3KSl9fWZ1bmN0aW9uIGMoKXtpZighdiYmZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuPWEodGhpcyxhcmd1bWVudHMpLGU9Y3QodC5ldmVudC52aWV3KS5vbihcIm1vdXNlbW92ZS56b29tXCIsZnVuY3Rpb24oKXtpZihYYygpLCFuLm1vdmVkKXt2YXIgZT10LmV2ZW50LmNsaWVudFgtbyxpPXQuZXZlbnQuY2xpZW50WS11O24ubW92ZWQ9ZSplK2kqaT5DfW4uem9vbShcIm1vdXNlXCIsXyhyKG4udGhhdC5fX3pvb20sbi5tb3VzZVswXT1wdChuLnRoYXQpLG4ubW91c2VbMV0pLG4uZXh0ZW50LHcpKX0sITApLm9uKFwibW91c2V1cC56b29tXCIsZnVuY3Rpb24oKXtlLm9uKFwibW91c2Vtb3ZlLnpvb20gbW91c2V1cC56b29tXCIsbnVsbCksYnQodC5ldmVudC52aWV3LG4ubW92ZWQpLFhjKCksbi5lbmQoKX0sITApLGk9cHQodGhpcyksbz10LmV2ZW50LmNsaWVudFgsdT10LmV2ZW50LmNsaWVudFk7X3QodC5ldmVudC52aWV3KSxIYygpLG4ubW91c2U9W2ksdGhpcy5fX3pvb20uaW52ZXJ0KGkpXSxEbih0aGlzKSxuLnN0YXJ0KCl9fWZ1bmN0aW9uIHMoKXtpZihnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGk9dGhpcy5fX3pvb20sYT1wdCh0aGlzKSx1PWkuaW52ZXJ0KGEpLGY9aS5rKih0LmV2ZW50LnNoaWZ0S2V5Py41OjIpLGM9XyhyKGUoaSxmKSxhLHUpLHkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHcpO1hjKCksTT4wP2N0KHRoaXMpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihNKS5jYWxsKG8sYyxhKTpjdCh0aGlzKS5jYWxsKG4udHJhbnNmb3JtLGMpfX1mdW5jdGlvbiBsKCl7aWYoZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuLGUscixpLG89YSh0aGlzLGFyZ3VtZW50cyksdT10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGY9dS5sZW5ndGg7Zm9yKEhjKCksZT0wO2U8ZjsrK2UpaT1baT12dCh0aGlzLHUsKHI9dVtlXSkuaWRlbnRpZmllciksdGhpcy5fX3pvb20uaW52ZXJ0KGkpLHIuaWRlbnRpZmllcl0sby50b3VjaDA/by50b3VjaDF8fChvLnRvdWNoMT1pKTooby50b3VjaDA9aSxuPSEwKTtpZihwJiYocD1jbGVhclRpbWVvdXQocCksIW8udG91Y2gxKSlyZXR1cm4gby5lbmQoKSx2b2lkKChpPWN0KHRoaXMpLm9uKFwiZGJsY2xpY2suem9vbVwiKSkmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKTtuJiYocD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cD1udWxsfSxFKSxEbih0aGlzKSxvLnN0YXJ0KCkpfX1mdW5jdGlvbiBoKCl7dmFyIG4saSxvLHUsZj1hKHRoaXMsYXJndW1lbnRzKSxjPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMscz1jLmxlbmd0aDtmb3IoWGMoKSxwJiYocD1jbGVhclRpbWVvdXQocCkpLG49MDtuPHM7KytuKW89dnQodGhpcyxjLChpPWNbbl0pLmlkZW50aWZpZXIpLGYudG91Y2gwJiZmLnRvdWNoMFsyXT09PWkuaWRlbnRpZmllcj9mLnRvdWNoMFswXT1vOmYudG91Y2gxJiZmLnRvdWNoMVsyXT09PWkuaWRlbnRpZmllciYmKGYudG91Y2gxWzBdPW8pO2lmKGk9Zi50aGF0Ll9fem9vbSxmLnRvdWNoMSl7dmFyIGw9Zi50b3VjaDBbMF0saD1mLnRvdWNoMFsxXSxkPWYudG91Y2gxWzBdLHY9Zi50b3VjaDFbMV0sZz0oZz1kWzBdLWxbMF0pKmcrKGc9ZFsxXS1sWzFdKSpnLHk9KHk9dlswXS1oWzBdKSp5Kyh5PXZbMV0taFsxXSkqeTtpPWUoaSxNYXRoLnNxcnQoZy95KSksbz1bKGxbMF0rZFswXSkvMiwobFsxXStkWzFdKS8yXSx1PVsoaFswXSt2WzBdKS8yLChoWzFdK3ZbMV0pLzJdfWVsc2V7aWYoIWYudG91Y2gwKXJldHVybjtvPWYudG91Y2gwWzBdLHU9Zi50b3VjaDBbMV19Zi56b29tKFwidG91Y2hcIixfKHIoaSxvLHUpLGYuZXh0ZW50LHcpKX1mdW5jdGlvbiBkKCl7dmFyIG4sZSxyPWEodGhpcyxhcmd1bWVudHMpLGk9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxvPWkubGVuZ3RoO2ZvcihIYygpLHYmJmNsZWFyVGltZW91dCh2KSx2PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PW51bGx9LEUpLG49MDtuPG87KytuKWU9aVtuXSxyLnRvdWNoMCYmci50b3VjaDBbMl09PT1lLmlkZW50aWZpZXI/ZGVsZXRlIHIudG91Y2gwOnIudG91Y2gxJiZyLnRvdWNoMVsyXT09PWUuaWRlbnRpZmllciYmZGVsZXRlIHIudG91Y2gxO3IudG91Y2gxJiYhci50b3VjaDAmJihyLnRvdWNoMD1yLnRvdWNoMSxkZWxldGUgci50b3VjaDEpLHIudG91Y2gwP3IudG91Y2gwWzFdPXRoaXMuX196b29tLmludmVydChyLnRvdWNoMFswXSk6ci5lbmQoKX12YXIgcCx2LGc9R2MseT1WYyxfPVFjLGI9V2MsbT1aYyx4PVswLDEvMF0sdz1bWy0xLzAsLTEvMF0sWzEvMCwxLzBdXSxNPTI1MCxBPV9uLFQ9W10sUz1OKFwic3RhcnRcIixcInpvb21cIixcImVuZFwiKSxFPTUwMCxrPTE1MCxDPTA7cmV0dXJuIG4udHJhbnNmb3JtPWZ1bmN0aW9uKHQsbil7dmFyIGU9dC5zZWxlY3Rpb24/dC5zZWxlY3Rpb24oKTp0O2UucHJvcGVydHkoXCJfX3pvb21cIiwkYyksdCE9PWU/byh0LG4pOmUuaW50ZXJydXB0KCkuZWFjaChmdW5jdGlvbigpe2EodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCkuem9vbShudWxsLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bikuZW5kKCl9KX0sbi5zY2FsZUJ5PWZ1bmN0aW9uKHQsZSl7bi5zY2FsZVRvKHQsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3pvb20uayooXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplKX0pfSxuLnNjYWxlVG89ZnVuY3Rpb24odCxvKXtuLnRyYW5zZm9ybSh0LGZ1bmN0aW9uKCl7dmFyIHQ9eS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxhPWkodCksdT1uLmludmVydChhKSxmPVwiZnVuY3Rpb25cIj09dHlwZW9mIG8/by5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bztyZXR1cm4gXyhyKGUobixmKSxhLHUpLHQsdyl9KX0sbi50cmFuc2xhdGVCeT1mdW5jdGlvbih0LGUscil7bi50cmFuc2Zvcm0odCxmdW5jdGlvbigpe3JldHVybiBfKHRoaXMuX196b29tLnRyYW5zbGF0ZShcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsXCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpyKSx5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3KX0pfSxuLnRyYW5zbGF0ZVRvPWZ1bmN0aW9uKHQsZSxyKXtuLnRyYW5zZm9ybSh0LGZ1bmN0aW9uKCl7dmFyIHQ9eS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxvPWkodCk7cmV0dXJuIF8oZmIudHJhbnNsYXRlKG9bMF0sb1sxXSkuc2NhbGUobi5rKS50cmFuc2xhdGUoXCJmdW5jdGlvblwiPT10eXBlb2YgZT8tZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LWUsXCJmdW5jdGlvblwiPT10eXBlb2Ygcj8tci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LXIpLHQsdyl9KX0sdS5wcm90b3R5cGU9e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLmluZGV4PVQucHVzaCh0aGlzKS0xLHRoaXMuZW1pdChcInN0YXJ0XCIpKSx0aGlzfSx6b29tOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMubW91c2UmJlwibW91c2VcIiE9PXQmJih0aGlzLm1vdXNlWzFdPW4uaW52ZXJ0KHRoaXMubW91c2VbMF0pKSx0aGlzLnRvdWNoMCYmXCJ0b3VjaFwiIT09dCYmKHRoaXMudG91Y2gwWzFdPW4uaW52ZXJ0KHRoaXMudG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJlwidG91Y2hcIiE9PXQmJih0aGlzLnRvdWNoMVsxXT1uLmludmVydCh0aGlzLnRvdWNoMVswXSkpLHRoaXMudGhhdC5fX3pvb209bix0aGlzLmVtaXQoXCJ6b29tXCIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoVC5zcGxpY2UodGhpcy5pbmRleCwxKSx0aGlzLmluZGV4PS0xLHRoaXMuZW1pdChcImVuZFwiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXtvdChuZXcgZnVuY3Rpb24odCxuLGUpe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPW4sdGhpcy50cmFuc2Zvcm09ZX0obix0LHRoaXMudGhhdC5fX3pvb20pLFMuYXBwbHksUyxbdCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxuLndoZWVsRGVsdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKCt0KSxuKTpifSxuLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoISF0KSxuKTpnfSxuLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoISF0KSxuKTptfSxuLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoW1srdFswXVswXSwrdFswXVsxXV0sWyt0WzFdWzBdLCt0WzFdWzFdXV0pLG4pOnl9LG4uc2NhbGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHhbMF09K3RbMF0seFsxXT0rdFsxXSxuKTpbeFswXSx4WzFdXX0sbi50cmFuc2xhdGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHdbMF1bMF09K3RbMF1bMF0sd1sxXVswXT0rdFsxXVswXSx3WzBdWzFdPSt0WzBdWzFdLHdbMV1bMV09K3RbMV1bMV0sbik6W1t3WzBdWzBdLHdbMF1bMV1dLFt3WzFdWzBdLHdbMV1bMV1dXX0sbi5jb25zdHJhaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89dCxuKTpffSxuLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPSt0LG4pOk19LG4uaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9dCxuKTpBfSxuLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Uy5vbi5hcHBseShTLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1TP246dH0sbi5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhDPSh0PSt0KSp0LG4pOk1hdGguc3FydChDKX0sbn0sdC56b29tVHJhbnNmb3JtPWpjLHQuem9vbUlkZW50aXR5PWZiLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSk7IiwiLyohXG4gKiBMaWdodGJveCBmb3IgQm9vdHN0cmFwIGJ5IEBhc2hsZXlkd1xuICogaHR0cHM6Ly9naXRodWIuY29tL2FzaGxleWR3L2xpZ2h0Ym94XG4gKlxuICogTGljZW5zZTogaHR0cHM6Ly9naXRodWIuY29tL2FzaGxleWR3L2xpZ2h0Ym94L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuK2Z1bmN0aW9uICgkKSB7XG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBMaWdodGJveCA9IChmdW5jdGlvbiAoJCkge1xuXG5cdHZhciBOQU1FID0gJ2Vra29MaWdodGJveCc7XG5cdHZhciBKUVVFUllfTk9fQ09ORkxJQ1QgPSAkLmZuW05BTUVdO1xuXG5cdHZhciBEZWZhdWx0ID0ge1xuXHRcdHRpdGxlOiAnJyxcblx0XHRmb290ZXI6ICcnLFxuXHRcdG1heFdpZHRoOiA5OTk5LFxuXHRcdG1heEhlaWdodDogOTk5OSxcblx0XHRzaG93QXJyb3dzOiB0cnVlLCAvL2Rpc3BsYXkgdGhlIGxlZnQgLyByaWdodCBhcnJvd3Mgb3Igbm90XG5cdFx0d3JhcHBpbmc6IHRydWUsIC8vaWYgdHJ1ZSwgZ2FsbGVyeSBsb29wcyBpbmZpbml0ZWx5XG5cdFx0dHlwZTogbnVsbCwgLy9mb3JjZSB0aGUgbGlnaHRib3ggaW50byBpbWFnZSAvIHlvdXR1YmUgbW9kZS4gaWYgbnVsbCwgb3Igbm90IGltYWdlfHlvdXR1YmV8dmltZW87IGRldGVjdCBpdFxuXHRcdGFsd2F5c1Nob3dDbG9zZTogZmFsc2UsIC8vYWx3YXlzIHNob3cgdGhlIGNsb3NlIGJ1dHRvbiwgZXZlbiBpZiB0aGVyZSBpcyBubyB0aXRsZVxuXHRcdGxvYWRpbmdNZXNzYWdlOiAnPGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtbG9hZGVyXCI+PGRpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PC9kaXY+JywgLy8gaHR0cDovL3RvYmlhc2FobGluLmNvbS9zcGlua2l0L1xuXHRcdGxlZnRBcnJvdzogJzxzcGFuPiYjMTAwOTQ7PC9zcGFuPicsXG5cdFx0cmlnaHRBcnJvdzogJzxzcGFuPiYjMTAwOTU7PC9zcGFuPicsXG5cdFx0c3RyaW5nczoge1xuXHRcdFx0Y2xvc2U6ICdDbG9zZScsXG5cdFx0XHRmYWlsOiAnRmFpbGVkIHRvIGxvYWQgaW1hZ2U6Jyxcblx0XHRcdHR5cGU6ICdDb3VsZCBub3QgZGV0ZWN0IHJlbW90ZSB0YXJnZXQgdHlwZS4gRm9yY2UgdGhlIHR5cGUgdXNpbmcgZGF0YS10eXBlJ1xuXHRcdH0sXG5cdFx0ZG9jOiBkb2N1bWVudCwgLy8gaWYgaW4gYW4gaWZyYW1lIGNhbiBzcGVjaWZ5IHRvcC5kb2N1bWVudFxuXHRcdG9uU2hvdzogZnVuY3Rpb24gb25TaG93KCkge30sXG5cdFx0b25TaG93bjogZnVuY3Rpb24gb25TaG93bigpIHt9LFxuXHRcdG9uSGlkZTogZnVuY3Rpb24gb25IaWRlKCkge30sXG5cdFx0b25IaWRkZW46IGZ1bmN0aW9uIG9uSGlkZGVuKCkge30sXG5cdFx0b25OYXZpZ2F0ZTogZnVuY3Rpb24gb25OYXZpZ2F0ZSgpIHt9LFxuXHRcdG9uQ29udGVudExvYWRlZDogZnVuY3Rpb24gb25Db250ZW50TG9hZGVkKCkge31cblx0fTtcblxuXHR2YXIgTGlnaHRib3ggPSAoZnVuY3Rpb24gKCkge1xuXHRcdF9jcmVhdGVDbGFzcyhMaWdodGJveCwgbnVsbCwgW3tcblx0XHRcdGtleTogJ0RlZmF1bHQnLFxuXG5cdFx0XHQvKipcbiAgICAgICBDbGFzcyBwcm9wZXJ0aWVzOlxuICAgXHQgXyRlbGVtZW50OiBudWxsIC0+IHRoZSA8YT4gZWxlbWVudCBjdXJyZW50bHkgYmVpbmcgZGlzcGxheWVkXG4gICAgXyRtb2RhbDogVGhlIGJvb3RzdHJhcCBtb2RhbCBnZW5lcmF0ZWRcbiAgICAgICBfJG1vZGFsRGlhbG9nOiBUaGUgLm1vZGFsLWRpYWxvZ1xuICAgICAgIF8kbW9kYWxDb250ZW50OiBUaGUgLm1vZGFsLWNvbnRlbnRcbiAgICAgICBfJG1vZGFsQm9keTogVGhlIC5tb2RhbC1ib2R5XG4gICAgICAgXyRtb2RhbEhlYWRlcjogVGhlIC5tb2RhbC1oZWFkZXJcbiAgICAgICBfJG1vZGFsRm9vdGVyOiBUaGUgLm1vZGFsLWZvb3RlclxuICAgIF8kbGlnaHRib3hDb250YWluZXJPbmU6IENvbnRhaW5lciBvZiB0aGUgZmlyc3QgbGlnaHRib3ggZWxlbWVudFxuICAgIF8kbGlnaHRib3hDb250YWluZXJUd286IENvbnRhaW5lciBvZiB0aGUgc2Vjb25kIGxpZ2h0Ym94IGVsZW1lbnRcbiAgICBfJGxpZ2h0Ym94Qm9keTogRmlyc3QgZWxlbWVudCBpbiB0aGUgY29udGFpbmVyXG4gICAgXyRtb2RhbEFycm93czogVGhlIG92ZXJsYXllZCBhcnJvd3MgY29udGFpbmVyXG4gICBcdCBfJGdhbGxlcnlJdGVtczogT3RoZXIgPGE+J3MgYXZhaWxhYmxlIGZvciB0aGlzIGdhbGxlcnlcbiAgICBfZ2FsbGVyeU5hbWU6IE5hbWUgb2YgdGhlIGN1cnJlbnQgZGF0YSgnZ2FsbGVyeScpIHNob3dpbmdcbiAgICBfZ2FsbGVyeUluZGV4OiBUaGUgY3VycmVudCBpbmRleCBvZiB0aGUgXyRnYWxsZXJ5SXRlbXMgYmVpbmcgc2hvd25cbiAgIFx0IF9jb25maWc6IHt9IHRoZSBvcHRpb25zIGZvciB0aGUgbW9kYWxcbiAgICBfbW9kYWxJZDogdW5pcXVlIGlkIGZvciB0aGUgY3VycmVudCBsaWdodGJveFxuICAgIF9wYWRkaW5nIC8gX2JvcmRlcjogQ1NTIHByb3BlcnRpZXMgZm9yIHRoZSBtb2RhbCBjb250YWluZXI7IHRoZXNlIGFyZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgYXZhaWxhYmxlIHNwYWNlIGZvciB0aGUgY29udGVudFxuICAgXHQgKi9cblxuXHRcdFx0Z2V0OiBmdW5jdGlvbiBnZXQoKSB7XG5cdFx0XHRcdHJldHVybiBEZWZhdWx0O1xuXHRcdFx0fVxuXHRcdH1dKTtcblxuXHRcdGZ1bmN0aW9uIExpZ2h0Ym94KCRlbGVtZW50LCBjb25maWcpIHtcblx0XHRcdHZhciBfdGhpcyA9IHRoaXM7XG5cblx0XHRcdF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaWdodGJveCk7XG5cblx0XHRcdHRoaXMuX2NvbmZpZyA9ICQuZXh0ZW5kKHt9LCBEZWZhdWx0LCBjb25maWcpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQXJyb3dzID0gbnVsbDtcblx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IDA7XG5cdFx0XHR0aGlzLl9nYWxsZXJ5TmFtZSA9IG51bGw7XG5cdFx0XHR0aGlzLl9wYWRkaW5nID0gbnVsbDtcblx0XHRcdHRoaXMuX2JvcmRlciA9IG51bGw7XG5cdFx0XHR0aGlzLl90aXRsZUlzU2hvd24gPSBmYWxzZTtcblx0XHRcdHRoaXMuX2Zvb3RlcklzU2hvd24gPSBmYWxzZTtcblx0XHRcdHRoaXMuX3dhbnRlZFdpZHRoID0gMDtcblx0XHRcdHRoaXMuX3dhbnRlZEhlaWdodCA9IDA7XG5cdFx0XHR0aGlzLl90b3VjaHN0YXJ0WCA9IDA7XG5cdFx0XHR0aGlzLl90b3VjaGVuZFggPSAwO1xuXG5cdFx0XHR0aGlzLl9tb2RhbElkID0gJ2Vra29MaWdodGJveC0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMCArIDEpO1xuXHRcdFx0dGhpcy5fJGVsZW1lbnQgPSAkZWxlbWVudCBpbnN0YW5jZW9mIGpRdWVyeSA/ICRlbGVtZW50IDogJCgkZWxlbWVudCk7XG5cblx0XHRcdHRoaXMuX2lzQm9vdHN0cmFwMyA9ICQuZm4ubW9kYWwuQ29uc3RydWN0b3IuVkVSU0lPTlswXSA9PSAzO1xuXG5cdFx0XHR2YXIgaDQgPSAnPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj4nICsgKHRoaXMuX2NvbmZpZy50aXRsZSB8fCBcIiZuYnNwO1wiKSArICc8L2g0Pic7XG5cdFx0XHR2YXIgYnRuID0gJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCInICsgdGhpcy5fY29uZmlnLnN0cmluZ3MuY2xvc2UgKyAnXCI+PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj48L2J1dHRvbj4nO1xuXG5cdFx0XHR2YXIgaGVhZGVyID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXInICsgKHRoaXMuX2NvbmZpZy50aXRsZSB8fCB0aGlzLl9jb25maWcuYWx3YXlzU2hvd0Nsb3NlID8gJycgOiAnIGhpZGUnKSArICdcIj4nICsgKHRoaXMuX2lzQm9vdHN0cmFwMyA/IGJ0biArIGg0IDogaDQgKyBidG4pICsgJzwvZGl2Pic7XG5cdFx0XHR2YXIgZm9vdGVyID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXInICsgKHRoaXMuX2NvbmZpZy5mb290ZXIgPyAnJyA6ICcgaGlkZScpICsgJ1wiPicgKyAodGhpcy5fY29uZmlnLmZvb3RlciB8fCBcIiZuYnNwO1wiKSArICc8L2Rpdj4nO1xuXHRcdFx0dmFyIGJvZHkgPSAnPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1jb250YWluZXJcIj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1pdGVtIGZhZGUgaW4gc2hvd1wiPjwvZGl2PjxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LWl0ZW0gZmFkZVwiPjwvZGl2PjwvZGl2PjwvZGl2Pic7XG5cdFx0XHR2YXIgZGlhbG9nID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiByb2xlPVwiZG9jdW1lbnRcIj48ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPicgKyBoZWFkZXIgKyBib2R5ICsgZm9vdGVyICsgJzwvZGl2PjwvZGl2Pic7XG5cdFx0XHQkKHRoaXMuX2NvbmZpZy5kb2MuYm9keSkuYXBwZW5kKCc8ZGl2IGlkPVwiJyArIHRoaXMuX21vZGFsSWQgKyAnXCIgY2xhc3M9XCJla2tvLWxpZ2h0Ym94IG1vZGFsIGZhZGVcIiB0YWJpbmRleD1cIi0xXCIgdGFiaW5kZXg9XCItMVwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4nICsgZGlhbG9nICsgJzwvZGl2PicpO1xuXG5cdFx0XHR0aGlzLl8kbW9kYWwgPSAkKCcjJyArIHRoaXMuX21vZGFsSWQsIHRoaXMuX2NvbmZpZy5kb2MpO1xuXHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1kaWFsb2cnKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQ29udGVudCA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtY29udGVudCcpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxCb2R5ID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1ib2R5JykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbEhlYWRlciA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtaGVhZGVyJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbEZvb3RlciA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtZm9vdGVyJykuZmlyc3QoKTtcblxuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyID0gdGhpcy5fJG1vZGFsQm9keS5maW5kKCcuZWtrby1saWdodGJveC1jb250YWluZXInKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Qm9keU9uZSA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCc+IGRpdjpmaXJzdC1jaGlsZCcpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbGlnaHRib3hCb2R5VHdvID0gdGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmZpbmQoJz4gZGl2Omxhc3QtY2hpbGQnKS5maXJzdCgpO1xuXG5cdFx0XHR0aGlzLl9ib3JkZXIgPSB0aGlzLl9jYWxjdWxhdGVCb3JkZXJzKCk7XG5cdFx0XHR0aGlzLl9wYWRkaW5nID0gdGhpcy5fY2FsY3VsYXRlUGFkZGluZygpO1xuXG5cdFx0XHR0aGlzLl9nYWxsZXJ5TmFtZSA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2dhbGxlcnknKTtcblx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5TmFtZSkge1xuXHRcdFx0XHR0aGlzLl8kZ2FsbGVyeUl0ZW1zID0gJChkb2N1bWVudC5ib2R5KS5maW5kKCcqW2RhdGEtZ2FsbGVyeT1cIicgKyB0aGlzLl9nYWxsZXJ5TmFtZSArICdcIl0nKTtcblx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4ID0gdGhpcy5fJGdhbGxlcnlJdGVtcy5pbmRleCh0aGlzLl8kZWxlbWVudCk7XG5cdFx0XHRcdCQoZG9jdW1lbnQpLm9uKCdrZXlkb3duLmVra29MaWdodGJveCcsIHRoaXMuX25hdmlnYXRpb25hbEJpbmRlci5iaW5kKHRoaXMpKTtcblxuXHRcdFx0XHQvLyBhZGQgdGhlIGRpcmVjdGlvbmFsIGFycm93cyB0byB0aGUgbW9kYWxcblx0XHRcdFx0aWYgKHRoaXMuX2NvbmZpZy5zaG93QXJyb3dzICYmIHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5hcHBlbmQoJzxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5XCI+PGEgaHJlZj1cIiNcIj4nICsgdGhpcy5fY29uZmlnLmxlZnRBcnJvdyArICc8L2E+PGEgaHJlZj1cIiNcIj4nICsgdGhpcy5fY29uZmlnLnJpZ2h0QXJyb3cgKyAnPC9hPjwvZGl2PicpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEFycm93cyA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCdkaXYuZWtrby1saWdodGJveC1uYXYtb3ZlcmxheScpLmZpcnN0KCk7XG5cdFx0XHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLm9uKCdjbGljaycsICdhOmZpcnN0LWNoaWxkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5vbignY2xpY2snLCAnYTpsYXN0LWNoaWxkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzLm5hdmlnYXRlUmlnaHQoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZU5hdmlnYXRpb24oKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLl8kbW9kYWwub24oJ3Nob3cuYnMubW9kYWwnLCB0aGlzLl9jb25maWcub25TaG93LmJpbmQodGhpcykpLm9uKCdzaG93bi5icy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0X3RoaXMuX3RvZ2dsZUxvYWRpbmcodHJ1ZSk7XG5cdFx0XHRcdF90aGlzLl9oYW5kbGUoKTtcblx0XHRcdFx0cmV0dXJuIF90aGlzLl9jb25maWcub25TaG93bi5jYWxsKF90aGlzKTtcblx0XHRcdH0pLm9uKCdoaWRlLmJzLm1vZGFsJywgdGhpcy5fY29uZmlnLm9uSGlkZS5iaW5kKHRoaXMpKS5vbignaGlkZGVuLmJzLm1vZGFsJywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRpZiAoX3RoaXMuX2dhbGxlcnlOYW1lKSB7XG5cdFx0XHRcdFx0JChkb2N1bWVudCkub2ZmKCdrZXlkb3duLmVra29MaWdodGJveCcpO1xuXHRcdFx0XHRcdCQod2luZG93KS5vZmYoJ3Jlc2l6ZS5la2tvTGlnaHRib3gnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRfdGhpcy5fJG1vZGFsLnJlbW92ZSgpO1xuXHRcdFx0XHRyZXR1cm4gX3RoaXMuX2NvbmZpZy5vbkhpZGRlbi5jYWxsKF90aGlzKTtcblx0XHRcdH0pLm1vZGFsKHRoaXMuX2NvbmZpZyk7XG5cblx0XHRcdCQod2luZG93KS5vbigncmVzaXplLmVra29MaWdodGJveCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0X3RoaXMuX3Jlc2l6ZShfdGhpcy5fd2FudGVkV2lkdGgsIF90aGlzLl93YW50ZWRIZWlnaHQpO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIub24oJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b3VjaHN0YXJ0WCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnNjcmVlblg7XG5cdFx0XHR9KS5vbigndG91Y2hlbmQnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b3VjaGVuZFggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5zY3JlZW5YO1xuXHRcdFx0XHRfdGhpcy5fc3dpcGVHZXN1cmUoKTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdF9jcmVhdGVDbGFzcyhMaWdodGJveCwgW3tcblx0XHRcdGtleTogJ2VsZW1lbnQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIGVsZW1lbnQoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kZWxlbWVudDtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdtb2RhbCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbW9kYWwoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kbW9kYWw7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbmF2aWdhdGVUbycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbmF2aWdhdGVUbyhpbmRleCkge1xuXG5cdFx0XHRcdGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDEpIHJldHVybiB0aGlzO1xuXG5cdFx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IGluZGV4O1xuXG5cdFx0XHRcdHRoaXMudXBkYXRlTmF2aWdhdGlvbigpO1xuXG5cdFx0XHRcdHRoaXMuXyRlbGVtZW50ID0gJCh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmdldCh0aGlzLl9nYWxsZXJ5SW5kZXgpKTtcblx0XHRcdFx0dGhpcy5faGFuZGxlKCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbmF2aWdhdGVMZWZ0Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBuYXZpZ2F0ZUxlZnQoKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID09PSAxKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gMCkge1xuXHRcdFx0XHRcdGlmICh0aGlzLl9jb25maWcud3JhcHBpbmcpIHRoaXMuX2dhbGxlcnlJbmRleCA9IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMTtlbHNlIHJldHVybjtcblx0XHRcdFx0fSBlbHNlIC8vY2lyY3VsYXJcblx0XHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXgtLTtcblxuXHRcdFx0XHR0aGlzLl9jb25maWcub25OYXZpZ2F0ZS5jYWxsKHRoaXMsICdsZWZ0JywgdGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdFx0cmV0dXJuIHRoaXMubmF2aWdhdGVUbyh0aGlzLl9nYWxsZXJ5SW5kZXgpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ25hdmlnYXRlUmlnaHQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG5hdmlnYXRlUmlnaHQoKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID09PSAxKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gdGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggLSAxKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX2NvbmZpZy53cmFwcGluZykgdGhpcy5fZ2FsbGVyeUluZGV4ID0gMDtlbHNlIHJldHVybjtcblx0XHRcdFx0fSBlbHNlIC8vY2lyY3VsYXJcblx0XHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXgrKztcblxuXHRcdFx0XHR0aGlzLl9jb25maWcub25OYXZpZ2F0ZS5jYWxsKHRoaXMsICdyaWdodCcsIHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlVG8odGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICd1cGRhdGVOYXZpZ2F0aW9uJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiB1cGRhdGVOYXZpZ2F0aW9uKCkge1xuXHRcdFx0XHRpZiAoIXRoaXMuX2NvbmZpZy53cmFwcGluZykge1xuXHRcdFx0XHRcdHZhciAkbmF2ID0gdGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmZpbmQoJ2Rpdi5la2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5Jyk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gMCkgJG5hdi5maW5kKCdhOmZpcnN0LWNoaWxkJykuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7ZWxzZSAkbmF2LmZpbmQoJ2E6Zmlyc3QtY2hpbGQnKS5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMSkgJG5hdi5maW5kKCdhOmxhc3QtY2hpbGQnKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtlbHNlICRuYXYuZmluZCgnYTpsYXN0LWNoaWxkJykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdjbG9zZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gY2xvc2UoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kbW9kYWwubW9kYWwoJ2hpZGUnKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gaGVscGVyIHByaXZhdGUgbWV0aG9kc1xuXHRcdH0sIHtcblx0XHRcdGtleTogJ19uYXZpZ2F0aW9uYWxCaW5kZXInLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9uYXZpZ2F0aW9uYWxCaW5kZXIoZXZlbnQpIHtcblx0XHRcdFx0ZXZlbnQgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7XG5cdFx0XHRcdGlmIChldmVudC5rZXlDb2RlID09PSAzOSkgcmV0dXJuIHRoaXMubmF2aWdhdGVSaWdodCgpO1xuXHRcdFx0XHRpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzcpIHJldHVybiB0aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB0eXBlIGRldGVjdGlvbiBwcml2YXRlIG1ldGhvZHNcblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZGV0ZWN0UmVtb3RlVHlwZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2RldGVjdFJlbW90ZVR5cGUoc3JjLCB0eXBlKSB7XG5cblx0XHRcdFx0dHlwZSA9IHR5cGUgfHwgZmFsc2U7XG5cblx0XHRcdFx0aWYgKCF0eXBlICYmIHRoaXMuX2lzSW1hZ2Uoc3JjKSkgdHlwZSA9ICdpbWFnZSc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRZb3V0dWJlSWQoc3JjKSkgdHlwZSA9ICd5b3V0dWJlJztcblx0XHRcdFx0aWYgKCF0eXBlICYmIHRoaXMuX2dldFZpbWVvSWQoc3JjKSkgdHlwZSA9ICd2aW1lbyc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRJbnN0YWdyYW1JZChzcmMpKSB0eXBlID0gJ2luc3RhZ3JhbSc7XG5cblx0XHRcdFx0aWYgKCF0eXBlIHx8IFsnaW1hZ2UnLCAneW91dHViZScsICd2aW1lbycsICdpbnN0YWdyYW0nLCAndmlkZW8nLCAndXJsJ10uaW5kZXhPZih0eXBlKSA8IDApIHR5cGUgPSAndXJsJztcblxuXHRcdFx0XHRyZXR1cm4gdHlwZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfaXNJbWFnZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2lzSW1hZ2Uoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLm1hdGNoKC8oXmRhdGE6aW1hZ2VcXC8uKiwpfChcXC4oanAoZXxnfGVnKXxnaWZ8cG5nfGJtcHx3ZWJwfHN2ZykoKFxcP3wjKS4qKT8kKS9pKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfY29udGFpbmVyVG9Vc2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9jb250YWluZXJUb1VzZSgpIHtcblx0XHRcdFx0dmFyIF90aGlzMiA9IHRoaXM7XG5cblx0XHRcdFx0Ly8gaWYgY3VycmVudGx5IHNob3dpbmcgYW4gaW1hZ2UsIGZhZGUgaXQgb3V0IGFuZCByZW1vdmVcblx0XHRcdFx0dmFyICR0b1VzZSA9IHRoaXMuXyRsaWdodGJveEJvZHlUd287XG5cdFx0XHRcdHZhciAkY3VycmVudCA9IHRoaXMuXyRsaWdodGJveEJvZHlPbmU7XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRsaWdodGJveEJvZHlUd28uaGFzQ2xhc3MoJ2luJykpIHtcblx0XHRcdFx0XHQkdG9Vc2UgPSB0aGlzLl8kbGlnaHRib3hCb2R5T25lO1xuXHRcdFx0XHRcdCRjdXJyZW50ID0gdGhpcy5fJGxpZ2h0Ym94Qm9keVR3bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCRjdXJyZW50LnJlbW92ZUNsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdGlmICghX3RoaXMyLl8kbGlnaHRib3hCb2R5VHdvLmhhc0NsYXNzKCdpbicpKSBfdGhpczIuXyRsaWdodGJveEJvZHlUd28uZW1wdHkoKTtcblx0XHRcdFx0XHRpZiAoIV90aGlzMi5fJGxpZ2h0Ym94Qm9keU9uZS5oYXNDbGFzcygnaW4nKSkgX3RoaXMyLl8kbGlnaHRib3hCb2R5T25lLmVtcHR5KCk7XG5cdFx0XHRcdH0sIDUwMCk7XG5cblx0XHRcdFx0JHRvVXNlLmFkZENsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdHJldHVybiAkdG9Vc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2hhbmRsZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2hhbmRsZSgpIHtcblxuXHRcdFx0XHR2YXIgJHRvVXNlID0gdGhpcy5fY29udGFpbmVyVG9Vc2UoKTtcblx0XHRcdFx0dGhpcy5fdXBkYXRlVGl0bGVBbmRGb290ZXIoKTtcblxuXHRcdFx0XHR2YXIgY3VycmVudFJlbW90ZSA9IHRoaXMuXyRlbGVtZW50LmF0dHIoJ2RhdGEtcmVtb3RlJykgfHwgdGhpcy5fJGVsZW1lbnQuYXR0cignaHJlZicpO1xuXHRcdFx0XHR2YXIgY3VycmVudFR5cGUgPSB0aGlzLl9kZXRlY3RSZW1vdGVUeXBlKGN1cnJlbnRSZW1vdGUsIHRoaXMuXyRlbGVtZW50LmF0dHIoJ2RhdGEtdHlwZScpIHx8IGZhbHNlKTtcblxuXHRcdFx0XHRpZiAoWydpbWFnZScsICd5b3V0dWJlJywgJ3ZpbWVvJywgJ2luc3RhZ3JhbScsICd2aWRlbycsICd1cmwnXS5pbmRleE9mKGN1cnJlbnRUeXBlKSA8IDApIHJldHVybiB0aGlzLl9lcnJvcih0aGlzLl9jb25maWcuc3RyaW5ncy50eXBlKTtcblxuXHRcdFx0XHRzd2l0Y2ggKGN1cnJlbnRUeXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSAnaW1hZ2UnOlxuXHRcdFx0XHRcdFx0dGhpcy5fcHJlbG9hZEltYWdlKGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9wcmVsb2FkSW1hZ2VCeUluZGV4KHRoaXMuX2dhbGxlcnlJbmRleCwgMyk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICd5b3V0dWJlJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dZb3V0dWJlVmlkZW8oY3VycmVudFJlbW90ZSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ3ZpbWVvJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dWaW1lb1ZpZGVvKHRoaXMuX2dldFZpbWVvSWQoY3VycmVudFJlbW90ZSksICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdpbnN0YWdyYW0nOlxuXHRcdFx0XHRcdFx0dGhpcy5fc2hvd0luc3RhZ3JhbVZpZGVvKHRoaXMuX2dldEluc3RhZ3JhbUlkKGN1cnJlbnRSZW1vdGUpLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAndmlkZW8nOlxuXHRcdFx0XHRcdFx0dGhpcy5fc2hvd0h0bWw1VmlkZW8oY3VycmVudFJlbW90ZSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHQvLyB1cmxcblx0XHRcdFx0XHRcdHRoaXMuX2xvYWRSZW1vdGVDb250ZW50KGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19nZXRZb3V0dWJlSWQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9nZXRZb3V0dWJlSWQoc3RyaW5nKSB7XG5cdFx0XHRcdGlmICghc3RyaW5nKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdHZhciBtYXRjaGVzID0gc3RyaW5nLm1hdGNoKC9eLiooeW91dHUuYmVcXC98dlxcL3x1XFwvXFx3XFwvfGVtYmVkXFwvfHdhdGNoXFw/dj18XFwmdj0pKFteI1xcJlxcP10qKS4qLyk7XG5cdFx0XHRcdHJldHVybiBtYXRjaGVzICYmIG1hdGNoZXNbMl0ubGVuZ3RoID09PSAxMSA/IG1hdGNoZXNbMl0gOiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZ2V0VmltZW9JZCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2dldFZpbWVvSWQoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLmluZGV4T2YoJ3ZpbWVvJykgPiAwID8gc3RyaW5nIDogZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2dldEluc3RhZ3JhbUlkJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZ2V0SW5zdGFncmFtSWQoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLmluZGV4T2YoJ2luc3RhZ3JhbScpID4gMCA/IHN0cmluZyA6IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBsYXlvdXQgcHJpdmF0ZSBtZXRob2RzXG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3RvZ2dsZUxvYWRpbmcnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF90b2dnbGVMb2FkaW5nKHNob3cpIHtcblx0XHRcdFx0c2hvdyA9IHNob3cgfHwgZmFsc2U7XG5cdFx0XHRcdGlmIChzaG93KSB7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsLnJlbW92ZUNsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdFx0JCgnLm1vZGFsLWJhY2tkcm9wJykuYXBwZW5kKHRoaXMuX2NvbmZpZy5sb2FkaW5nTWVzc2FnZSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZGlzcGxheScsICdibG9jaycpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbC5hZGRDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRcdCQoJy5tb2RhbC1iYWNrZHJvcCcpLmZpbmQoJy5la2tvLWxpZ2h0Ym94LWxvYWRlcicpLnJlbW92ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19jYWxjdWxhdGVCb3JkZXJzJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY2FsY3VsYXRlQm9yZGVycygpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0b3A6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci10b3Atd2lkdGgnKSxcblx0XHRcdFx0XHRyaWdodDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLXJpZ2h0LXdpZHRoJyksXG5cdFx0XHRcdFx0Ym90dG9tOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdib3JkZXItYm90dG9tLXdpZHRoJyksXG5cdFx0XHRcdFx0bGVmdDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLWxlZnQtd2lkdGgnKVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19jYWxjdWxhdGVQYWRkaW5nJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY2FsY3VsYXRlUGFkZGluZygpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0b3A6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctdG9wJyksXG5cdFx0XHRcdFx0cmlnaHQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctcmlnaHQnKSxcblx0XHRcdFx0XHRib3R0b206IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctYm90dG9tJyksXG5cdFx0XHRcdFx0bGVmdDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgncGFkZGluZy1sZWZ0Jylcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfdG90YWxDc3NCeUF0dHJpYnV0ZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoYXR0cmlidXRlKSB7XG5cdFx0XHRcdHJldHVybiBwYXJzZUludCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKGF0dHJpYnV0ZSksIDEwKSArIHBhcnNlSW50KHRoaXMuXyRtb2RhbENvbnRlbnQuY3NzKGF0dHJpYnV0ZSksIDEwKSArIHBhcnNlSW50KHRoaXMuXyRtb2RhbEJvZHkuY3NzKGF0dHJpYnV0ZSksIDEwKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfdXBkYXRlVGl0bGVBbmRGb290ZXInLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF91cGRhdGVUaXRsZUFuZEZvb3RlcigpIHtcblx0XHRcdFx0dmFyIHRpdGxlID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgndGl0bGUnKSB8fCBcIlwiO1xuXHRcdFx0XHR2YXIgY2FwdGlvbiA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2Zvb3RlcicpIHx8IFwiXCI7XG5cblx0XHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gZmFsc2U7XG5cdFx0XHRcdGlmICh0aXRsZSB8fCB0aGlzLl9jb25maWcuYWx3YXlzU2hvd0Nsb3NlKSB7XG5cdFx0XHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxIZWFkZXIuY3NzKCdkaXNwbGF5JywgJycpLmZpbmQoJy5tb2RhbC10aXRsZScpLmh0bWwodGl0bGUgfHwgXCImbmJzcDtcIik7XG5cdFx0XHRcdH0gZWxzZSB0aGlzLl8kbW9kYWxIZWFkZXIuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuXHRcdFx0XHR0aGlzLl9mb290ZXJJc1Nob3duID0gZmFsc2U7XG5cdFx0XHRcdGlmIChjYXB0aW9uKSB7XG5cdFx0XHRcdFx0dGhpcy5fZm9vdGVySXNTaG93biA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRm9vdGVyLmNzcygnZGlzcGxheScsICcnKS5odG1sKGNhcHRpb24pO1xuXHRcdFx0XHR9IGVsc2UgdGhpcy5fJG1vZGFsRm9vdGVyLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dZb3V0dWJlVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93WW91dHViZVZpZGVvKHJlbW90ZSwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIGlkID0gdGhpcy5fZ2V0WW91dHViZUlkKHJlbW90ZSk7XG5cdFx0XHRcdHZhciBxdWVyeSA9IHJlbW90ZS5pbmRleE9mKCcmJykgPiAwID8gcmVtb3RlLnN1YnN0cihyZW1vdGUuaW5kZXhPZignJicpKSA6ICcnO1xuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDU2MDtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2hlaWdodCcpIHx8IHdpZHRoIC8gKDU2MCAvIDMxNSk7XG5cdFx0XHRcdHJldHVybiB0aGlzLl9zaG93VmlkZW9JZnJhbWUoJy8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/YmFkZ2U9MCZhdXRvcGxheT0xJmh0bWw1PTEnICsgcXVlcnksIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd1ZpbWVvVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93VmltZW9WaWRlbyhpZCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1MDA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fc2hvd1ZpZGVvSWZyYW1lKGlkICsgJz9hdXRvcGxheT0xJywgd2lkdGgsIGhlaWdodCwgJGNvbnRhaW5lckZvckVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93SW5zdGFncmFtVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93SW5zdGFncmFtVmlkZW8oaWQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIGluc3RhZ3JhbSBsb2FkIHRoZWlyIGNvbnRlbnQgaW50byBpZnJhbWUncyBzbyB0aGlzIGNhbiBiZSBwdXQgc3RyYWlnaHQgaW50byB0aGUgZWxlbWVudFxuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDYxMjtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHdpZHRoICsgODA7XG5cdFx0XHRcdGlkID0gaWQuc3Vic3RyKC0xKSAhPT0gJy8nID8gaWQgKyAnLycgOiBpZDsgLy8gZW5zdXJlIGlkIGhhcyB0cmFpbGluZyBzbGFzaFxuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8aWZyYW1lIHdpZHRoPVwiJyArIHdpZHRoICsgJ1wiIGhlaWdodD1cIicgKyBoZWlnaHQgKyAnXCIgc3JjPVwiJyArIGlkICsgJ2VtYmVkL1wiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gc2hvd2luZyB2aWRlb1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXHRcdFx0XHR0aGlzLl90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dWaWRlb0lmcmFtZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Nob3dWaWRlb0lmcmFtZSh1cmwsIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIHNob3VsZCBiZSB1c2VkIGZvciB2aWRlb3Mgb25seS4gZm9yIHJlbW90ZSBjb250ZW50IHVzZSBsb2FkUmVtb3RlQ29udGVudCAoZGF0YS10eXBlPXVybClcblx0XHRcdFx0aGVpZ2h0ID0gaGVpZ2h0IHx8IHdpZHRoOyAvLyBkZWZhdWx0IHRvIHNxdWFyZVxuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8ZGl2IGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZC1yZXNwb25zaXZlLTE2Ynk5XCI+PGlmcmFtZSB3aWR0aD1cIicgKyB3aWR0aCArICdcIiBoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiIHNyYz1cIicgKyB1cmwgKyAnXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3dmdWxsc2NyZWVuIGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZS1pdGVtXCI+PC9pZnJhbWU+PC9kaXY+Jyk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSB0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsgLy9oaWRlIHRoZSBhcnJvd3Mgd2hlbiBzaG93aW5nIHZpZGVvXG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd0h0bWw1VmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93SHRtbDVWaWRlbyh1cmwsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIHNob3VsZCBiZSB1c2VkIGZvciB2aWRlb3Mgb25seS4gZm9yIHJlbW90ZSBjb250ZW50IHVzZSBsb2FkUmVtb3RlQ29udGVudCAoZGF0YS10eXBlPXVybClcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8ZGl2IGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZC1yZXNwb25zaXZlLTE2Ynk5XCI+PHZpZGVvIHdpZHRoPVwiJyArIHdpZHRoICsgJ1wiIGhlaWdodD1cIicgKyBoZWlnaHQgKyAnXCIgc3JjPVwiJyArIHVybCArICdcIiBwcmVsb2FkPVwiYXV0b1wiIGF1dG9wbGF5IGNvbnRyb2xzIGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZS1pdGVtXCI+PC92aWRlbz48L2Rpdj4nKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIHRoaXMuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOyAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHNob3dpbmcgdmlkZW9cblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19sb2FkUmVtb3RlQ29udGVudCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2xvYWRSZW1vdGVDb250ZW50KHVybCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIF90aGlzMyA9IHRoaXM7XG5cblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCA1NjA7XG5cblx0XHRcdFx0dmFyIGRpc2FibGVFeHRlcm5hbENoZWNrID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnZGlzYWJsZUV4dGVybmFsQ2hlY2snKSB8fCBmYWxzZTtcblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cblx0XHRcdFx0Ly8gZXh0ZXJuYWwgdXJscyBhcmUgbG9hZGluZyBpbnRvIGFuIGlmcmFtZVxuXHRcdFx0XHQvLyBsb2NhbCBhamF4IGNhbiBiZSBsb2FkZWQgaW50byB0aGUgY29udGFpbmVyIGl0c2VsZlxuXHRcdFx0XHRpZiAoIWRpc2FibGVFeHRlcm5hbENoZWNrICYmICF0aGlzLl9pc0V4dGVybmFsKHVybCkpIHtcblx0XHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5sb2FkKHVybCwgJC5wcm94eShmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXMzLl8kZWxlbWVudC50cmlnZ2VyKCdsb2FkZWQuYnMubW9kYWwnKTtsO1xuXHRcdFx0XHRcdH0pKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8aWZyYW1lIHNyYz1cIicgKyB1cmwgKyAnXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpO1xuXHRcdFx0XHRcdHRoaXMuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbCh0aGlzKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gcmVtb3RlIGNvbnRlbnRcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuXHRcdFx0XHR0aGlzLl9yZXNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19pc0V4dGVybmFsJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfaXNFeHRlcm5hbCh1cmwpIHtcblx0XHRcdFx0dmFyIG1hdGNoID0gdXJsLm1hdGNoKC9eKFteOlxcLz8jXSs6KT8oPzpcXC9cXC8oW15cXC8/I10qKSk/KFtePyNdKyk/KFxcP1teI10qKT8oIy4qKT8vKTtcblx0XHRcdFx0aWYgKHR5cGVvZiBtYXRjaFsxXSA9PT0gXCJzdHJpbmdcIiAmJiBtYXRjaFsxXS5sZW5ndGggPiAwICYmIG1hdGNoWzFdLnRvTG93ZXJDYXNlKCkgIT09IGxvY2F0aW9uLnByb3RvY29sKSByZXR1cm4gdHJ1ZTtcblxuXHRcdFx0XHRpZiAodHlwZW9mIG1hdGNoWzJdID09PSBcInN0cmluZ1wiICYmIG1hdGNoWzJdLmxlbmd0aCA+IDAgJiYgbWF0Y2hbMl0ucmVwbGFjZShuZXcgUmVnRXhwKCc6KCcgKyAoe1xuXHRcdFx0XHRcdFwiaHR0cDpcIjogODAsXG5cdFx0XHRcdFx0XCJodHRwczpcIjogNDQzXG5cdFx0XHRcdH0pW2xvY2F0aW9uLnByb3RvY29sXSArICcpPyQnKSwgXCJcIikgIT09IGxvY2F0aW9uLmhvc3QpIHJldHVybiB0cnVlO1xuXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZXJyb3InLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9lcnJvcihtZXNzYWdlKSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG5cdFx0XHRcdHRoaXMuX2NvbnRhaW5lclRvVXNlKCkuaHRtbChtZXNzYWdlKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKDMwMCwgMzAwKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3ByZWxvYWRJbWFnZUJ5SW5kZXgnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9wcmVsb2FkSW1hZ2VCeUluZGV4KHN0YXJ0SW5kZXgsIG51bWJlck9mVGltZXMpIHtcblxuXHRcdFx0XHRpZiAoIXRoaXMuXyRnYWxsZXJ5SXRlbXMpIHJldHVybjtcblxuXHRcdFx0XHR2YXIgbmV4dCA9ICQodGhpcy5fJGdhbGxlcnlJdGVtcy5nZXQoc3RhcnRJbmRleCksIGZhbHNlKTtcblx0XHRcdFx0aWYgKHR5cGVvZiBuZXh0ID09ICd1bmRlZmluZWQnKSByZXR1cm47XG5cblx0XHRcdFx0dmFyIHNyYyA9IG5leHQuYXR0cignZGF0YS1yZW1vdGUnKSB8fCBuZXh0LmF0dHIoJ2hyZWYnKTtcblx0XHRcdFx0aWYgKG5leHQuYXR0cignZGF0YS10eXBlJykgPT09ICdpbWFnZScgfHwgdGhpcy5faXNJbWFnZShzcmMpKSB0aGlzLl9wcmVsb2FkSW1hZ2Uoc3JjLCBmYWxzZSk7XG5cblx0XHRcdFx0aWYgKG51bWJlck9mVGltZXMgPiAwKSByZXR1cm4gdGhpcy5fcHJlbG9hZEltYWdlQnlJbmRleChzdGFydEluZGV4ICsgMSwgbnVtYmVyT2ZUaW1lcyAtIDEpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19wcmVsb2FkSW1hZ2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9wcmVsb2FkSW1hZ2Uoc3JjLCAkY29udGFpbmVyRm9ySW1hZ2UpIHtcblx0XHRcdFx0dmFyIF90aGlzNCA9IHRoaXM7XG5cblx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlID0gJGNvbnRhaW5lckZvckltYWdlIHx8IGZhbHNlO1xuXG5cdFx0XHRcdHZhciBpbWcgPSBuZXcgSW1hZ2UoKTtcblx0XHRcdFx0aWYgKCRjb250YWluZXJGb3JJbWFnZSkge1xuXHRcdFx0XHRcdChmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0XHRcdC8vIGlmIGxvYWRpbmcgdGFrZXMgPiAyMDBtcyBzaG93IGEgbG9hZGVyXG5cdFx0XHRcdFx0XHR2YXIgbG9hZGluZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlLmFwcGVuZChfdGhpczQuX2NvbmZpZy5sb2FkaW5nTWVzc2FnZSk7XG5cdFx0XHRcdFx0XHR9LCAyMDApO1xuXG5cdFx0XHRcdFx0XHRpbWcub25sb2FkID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRpZiAobG9hZGluZ1RpbWVvdXQpIGNsZWFyVGltZW91dChsb2FkaW5nVGltZW91dCk7XG5cdFx0XHRcdFx0XHRcdGxvYWRpbmdUaW1lb3V0ID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0dmFyIGltYWdlID0gJCgnPGltZyAvPicpO1xuXHRcdFx0XHRcdFx0XHRpbWFnZS5hdHRyKCdzcmMnLCBpbWcuc3JjKTtcblx0XHRcdFx0XHRcdFx0aW1hZ2UuYWRkQ2xhc3MoJ2ltZy1mbHVpZCcpO1xuXG5cdFx0XHRcdFx0XHRcdC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGJvb3RzdHJhcCB2M1xuXHRcdFx0XHRcdFx0XHRpbWFnZS5jc3MoJ3dpZHRoJywgJzEwMCUnKTtcblxuXHRcdFx0XHRcdFx0XHQkY29udGFpbmVyRm9ySW1hZ2UuaHRtbChpbWFnZSk7XG5cdFx0XHRcdFx0XHRcdGlmIChfdGhpczQuXyRtb2RhbEFycm93cykgX3RoaXM0Ll8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJycpOyAvLyByZW1vdmUgZGlzcGxheSB0byBkZWZhdWx0IHRvIGNzcyBwcm9wZXJ0eVxuXG5cdFx0XHRcdFx0XHRcdF90aGlzNC5fcmVzaXplKGltZy53aWR0aCwgaW1nLmhlaWdodCk7XG5cdFx0XHRcdFx0XHRcdF90aGlzNC5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBfdGhpczQuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbChfdGhpczQpO1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdGltZy5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRfdGhpczQuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXM0Ll9lcnJvcihfdGhpczQuX2NvbmZpZy5zdHJpbmdzLmZhaWwgKyAoJyAgJyArIHNyYykpO1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9KSgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aW1nLnNyYyA9IHNyYztcblx0XHRcdFx0cmV0dXJuIGltZztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc3dpcGVHZXN1cmUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zd2lwZUdlc3VyZSgpIHtcblx0XHRcdFx0aWYgKHRoaXMuX3RvdWNoZW5kWCA8IHRoaXMuX3RvdWNoc3RhcnRYKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMubmF2aWdhdGVSaWdodCgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLl90b3VjaGVuZFggPiB0aGlzLl90b3VjaHN0YXJ0WCkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Jlc2l6ZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KSB7XG5cblx0XHRcdFx0aGVpZ2h0ID0gaGVpZ2h0IHx8IHdpZHRoO1xuXHRcdFx0XHR0aGlzLl93YW50ZWRXaWR0aCA9IHdpZHRoO1xuXHRcdFx0XHR0aGlzLl93YW50ZWRIZWlnaHQgPSBoZWlnaHQ7XG5cblx0XHRcdFx0dmFyIGltYWdlQXNwZWNSYXRpbyA9IHdpZHRoIC8gaGVpZ2h0O1xuXG5cdFx0XHRcdC8vIGlmIHdpZHRoID4gdGhlIGF2YWlsYWJsZSBzcGFjZSwgc2NhbGUgZG93biB0aGUgZXhwZWN0ZWQgd2lkdGggYW5kIGhlaWdodFxuXHRcdFx0XHR2YXIgd2lkdGhCb3JkZXJBbmRQYWRkaW5nID0gdGhpcy5fcGFkZGluZy5sZWZ0ICsgdGhpcy5fcGFkZGluZy5yaWdodCArIHRoaXMuX2JvcmRlci5sZWZ0ICsgdGhpcy5fYm9yZGVyLnJpZ2h0O1xuXG5cdFx0XHRcdC8vIGZvcmNlIDEwcHggbWFyZ2luIGlmIHdpbmRvdyBzaXplID4gNTc1cHhcblx0XHRcdFx0dmFyIGFkZE1hcmdpbiA9IHRoaXMuX2NvbmZpZy5kb2MuYm9keS5jbGllbnRXaWR0aCA+IDU3NSA/IDIwIDogMDtcblx0XHRcdFx0dmFyIGRpc2NvdW50TWFyZ2luID0gdGhpcy5fY29uZmlnLmRvYy5ib2R5LmNsaWVudFdpZHRoID4gNTc1ID8gMCA6IDIwO1xuXG5cdFx0XHRcdHZhciBtYXhXaWR0aCA9IE1hdGgubWluKHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nLCB0aGlzLl9jb25maWcuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBhZGRNYXJnaW4sIHRoaXMuX2NvbmZpZy5tYXhXaWR0aCk7XG5cblx0XHRcdFx0aWYgKHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nID4gbWF4V2lkdGgpIHtcblx0XHRcdFx0XHRoZWlnaHQgPSAobWF4V2lkdGggLSB3aWR0aEJvcmRlckFuZFBhZGRpbmcgLSBkaXNjb3VudE1hcmdpbikgLyBpbWFnZUFzcGVjUmF0aW87XG5cdFx0XHRcdFx0d2lkdGggPSBtYXhXaWR0aDtcblx0XHRcdFx0fSBlbHNlIHdpZHRoID0gd2lkdGggKyB3aWR0aEJvcmRlckFuZFBhZGRpbmc7XG5cblx0XHRcdFx0dmFyIGhlYWRlckhlaWdodCA9IDAsXG5cdFx0XHRcdCAgICBmb290ZXJIZWlnaHQgPSAwO1xuXG5cdFx0XHRcdC8vIGFzIHRoZSByZXNpemUgaXMgcGVyZm9ybWVkIHRoZSBtb2RhbCBpcyBzaG93LCB0aGUgY2FsY3VsYXRlIG1pZ2h0IGZhaWxcblx0XHRcdFx0Ly8gaWYgc28sIGRlZmF1bHQgdG8gdGhlIGRlZmF1bHQgc2l6ZXNcblx0XHRcdFx0aWYgKHRoaXMuX2Zvb3RlcklzU2hvd24pIGZvb3RlckhlaWdodCA9IHRoaXMuXyRtb2RhbEZvb3Rlci5vdXRlckhlaWdodCh0cnVlKSB8fCA1NTtcblxuXHRcdFx0XHRpZiAodGhpcy5fdGl0bGVJc1Nob3duKSBoZWFkZXJIZWlnaHQgPSB0aGlzLl8kbW9kYWxIZWFkZXIub3V0ZXJIZWlnaHQodHJ1ZSkgfHwgNjc7XG5cblx0XHRcdFx0dmFyIGJvcmRlclBhZGRpbmcgPSB0aGlzLl9wYWRkaW5nLnRvcCArIHRoaXMuX3BhZGRpbmcuYm90dG9tICsgdGhpcy5fYm9yZGVyLmJvdHRvbSArIHRoaXMuX2JvcmRlci50b3A7XG5cblx0XHRcdFx0Ly9jYWxjdWxhdGVkIGVhY2ggdGltZSBhcyByZXNpemluZyB0aGUgd2luZG93IGNhbiBjYXVzZSB0aGVtIHRvIGNoYW5nZSBkdWUgdG8gQm9vdHN0cmFwcyBmbHVpZCBtYXJnaW5zXG5cdFx0XHRcdHZhciBtYXJnaW5zID0gcGFyc2VGbG9hdCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdtYXJnaW4tdG9wJykpICsgcGFyc2VGbG9hdCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdtYXJnaW4tYm90dG9tJykpO1xuXG5cdFx0XHRcdHZhciBtYXhIZWlnaHQgPSBNYXRoLm1pbihoZWlnaHQsICQod2luZG93KS5oZWlnaHQoKSAtIGJvcmRlclBhZGRpbmcgLSBtYXJnaW5zIC0gaGVhZGVySGVpZ2h0IC0gZm9vdGVySGVpZ2h0LCB0aGlzLl9jb25maWcubWF4SGVpZ2h0IC0gYm9yZGVyUGFkZGluZyAtIGhlYWRlckhlaWdodCAtIGZvb3RlckhlaWdodCk7XG5cblx0XHRcdFx0aWYgKGhlaWdodCA+IG1heEhlaWdodCkge1xuXHRcdFx0XHRcdC8vIGlmIGhlaWdodCA+IHRoZSBhdmFpbGFibGUgaGVpZ2h0LCBzY2FsZSBkb3duIHRoZSB3aWR0aFxuXHRcdFx0XHRcdHdpZHRoID0gTWF0aC5jZWlsKG1heEhlaWdodCAqIGltYWdlQXNwZWNSYXRpbykgKyB3aWR0aEJvcmRlckFuZFBhZGRpbmc7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIuY3NzKCdoZWlnaHQnLCBtYXhIZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdmbGV4JywgMSkuY3NzKCdtYXhXaWR0aCcsIHdpZHRoKTtcblxuXHRcdFx0XHR2YXIgbW9kYWwgPSB0aGlzLl8kbW9kYWwuZGF0YSgnYnMubW9kYWwnKTtcblx0XHRcdFx0aWYgKG1vZGFsKSB7XG5cdFx0XHRcdFx0Ly8gdjQgbWV0aG9kIGlzIG1pc3Rha2VubHkgcHJvdGVjdGVkXG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdG1vZGFsLl9oYW5kbGVVcGRhdGUoKTtcblx0XHRcdFx0XHR9IGNhdGNoIChFeGNlcHRpb24pIHtcblx0XHRcdFx0XHRcdG1vZGFsLmhhbmRsZVVwZGF0ZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9XSwgW3tcblx0XHRcdGtleTogJ19qUXVlcnlJbnRlcmZhY2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9qUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG5cdFx0XHRcdHZhciBfdGhpczUgPSB0aGlzO1xuXG5cdFx0XHRcdGNvbmZpZyA9IGNvbmZpZyB8fCB7fTtcblx0XHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dmFyICR0aGlzID0gJChfdGhpczUpO1xuXHRcdFx0XHRcdHZhciBfY29uZmlnID0gJC5leHRlbmQoe30sIExpZ2h0Ym94LkRlZmF1bHQsICR0aGlzLmRhdGEoKSwgdHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcgJiYgY29uZmlnKTtcblxuXHRcdFx0XHRcdG5ldyBMaWdodGJveChfdGhpczUsIF9jb25maWcpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XSk7XG5cblx0XHRyZXR1cm4gTGlnaHRib3g7XG5cdH0pKCk7XG5cblx0JC5mbltOQU1FXSA9IExpZ2h0Ym94Ll9qUXVlcnlJbnRlcmZhY2U7XG5cdCQuZm5bTkFNRV0uQ29uc3RydWN0b3IgPSBMaWdodGJveDtcblx0JC5mbltOQU1FXS5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xuXHRcdCQuZm5bTkFNRV0gPSBKUVVFUllfTk9fQ09ORkxJQ1Q7XG5cdFx0cmV0dXJuIExpZ2h0Ym94Ll9qUXVlcnlJbnRlcmZhY2U7XG5cdH07XG5cblx0cmV0dXJuIExpZ2h0Ym94O1xufSkoalF1ZXJ5KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVra28tbGlnaHRib3guanMubWFwXG5cbn0oalF1ZXJ5KTtcbiIsIiIsIlxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG5cdHZhciBwcmV2aW91cyA9IFwiIFwiO1xuICAgICQoXCIjaW1hZ2VfZ2FsbGVyeVwiKS5jbGljayhmdW5jdGlvbihldmVudCkge1xuICAgICAgICB2YXIgaWRfbmFtZSA9IGV2ZW50LnRhcmdldC5pZDtcbiAgICAgICAgaWRfbmFtZSA9IGlkX25hbWUucmVwbGFjZSgvWzAtOV0vZywgJycpOyAvL3JlZ2V4IGZvciBhbHBoYWJldHMsIG5vIG51bWJlcnNcbiAgICAgICAgdmFyIGlkX3RvZ2dsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkX25hbWUpOyAvL2dldCBJRCBvZiBuYW1lcyB1bmRlciBjbGFzcyBcInRlYW0tYmlvXCJcbiAgICAgICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRfbmFtZSkpeyAvL2lmIElEIGV4aXN0c1xuXHRcdFx0aWYoKHByZXZpb3VzICE9IGlkX25hbWUpICYmIChwcmV2aW91cyAhPSBcIiBcIikpeyAvL2lmIHlvdSBjbGljayBhIGRpZmYgaW1hZ2Vcblx0XHRcdFx0dmFyIGlkX3ByZXZpb3VzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlvdXMpO1xuXHRcdFx0XHQkKGlkX3ByZXZpb3VzKS50b2dnbGUoXCJoaWRkZW5cIik7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGlkX3ByZXZpb3VzKTtcblxuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZihwcmV2aW91cyA9PSBpZF9uYW1lKXsgLy9jbGlja2luZyBvbiB0aGUgc2FtZSBpbWFnZVxuXHRcdFx0XHQkKGlkX3RvZ2dsZSkudG9nZ2xlKFwidW5oaWRkZW5cIik7XG5cdFx0XHR9XG5cdFx0XHQkKGlkX3RvZ2dsZSkudG9nZ2xlKFwidW5oaWRkZW5cIik7IC8vdG9nZ2xlcyB0eHRib3ggdG8gYXBwZWFyXG4gICAgICAgIFx0IHByZXZpb3VzID0gaWRfbmFtZTsvL2NoZWNrcyB0byBzZWUgaWYgeW91IGNsaWNrZWQgZGlmZmVyZW50IGltYWdlc1xuICAgICAgICB9XG4gICAgICAgIGVsc2V7XG4gICAgICAgIFx0YWxlcnQoXCJUaGlzIHBlcnNvbiBkb2VzIG5vdCBleGlzdC4gVHJ5IGFnYWluLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcbn0pOyIsIihmdW5jdGlvbigkKSB7XHJcblxyXG4gICAgJC5mbi52aXNpYmxlID0gZnVuY3Rpb24oKSB7XHJcblxyXG4gICAgICAgIHZhciAkdCAgICAgICAgICAgID0gJCh0aGlzKSxcclxuICAgICAgICAgICAgJHcgICAgICAgICAgICA9ICQod2luZG93KSxcclxuICAgICAgICAgICAgd2luZG93SGVpZ2h0ICA9IHdpbmRvdy5pbm5lckhlaWdodCxcclxuICAgICAgICAgICAgd2luZG93VG9wICAgICA9ICR3LnNjcm9sbFRvcCgpLFxyXG4gICAgICAgICAgICB3aW5kb3dCb3R0b20gID0gd2luZG93VG9wICsgd2luZG93SGVpZ2h0LFxyXG4gICAgICAgICAgICBfaGVpZ2h0ICAgICAgID0gJHQub3V0ZXJIZWlnaHQoKSxcclxuICAgICAgICAgICAgX3RvcCAgICAgICAgICA9ICR0Lm9mZnNldCgpLnRvcCxcclxuICAgICAgICAgICAgX2JvdHRvbSAgICAgICA9IF90b3AgKyBfaGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gKChfYm90dG9tID49IHdpbmRvd1RvcCkgJiYgKF90b3AgPD0gd2luZG93Qm90dG9tKSk7XHJcbiAgICB9O1xyXG5cclxufSkoalF1ZXJ5KTtcclxuXHJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuXHJcbiAgICAkKHdpbmRvdykub24oXCJzY3JvbGxcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwICYmICEkKFwiLm5hdmJhclwiKS5oYXNDbGFzcyhcImZpeGVkXCIpKSB7XHJcbiAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmFkZENsYXNzKFwiZml4ZWRcIikuYWRkQ2xhc3MoXCJmaXhlZC10b3BcIikuYW5pbWF0ZSh7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDE1LFxyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMVxyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpIDw9IDUwKSB7XHJcbiAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmNzcyhcInRvcFwiLCBcIlwiKS5yZW1vdmVDbGFzcyhcImZpeGVkXCIpLnJlbW92ZUNsYXNzKFwiZml4ZWQtdG9wXCIpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgLy9vbiBvciBzY3JvbGwsIGRldGVjdCBlbGVtZW50cyBpbiB2aWV3XHJcbiAgICAkKHdpbmRvdykub24oJ3Njcm9sbCByZXNpemUnLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAkKCcuZmx5LWluJykuZWFjaChmdW5jdGlvbiAoaSwgdmFsKSB7XHJcbiAgICAgICAgICAgIGlmKCQodmFsKS52aXNpYmxlKCkpe1xyXG4gICAgICAgICAgICAgICAgJCh2YWwpLmFkZENsYXNzKFwiY29tZS1pblwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9KTtcclxuICAgIC8vdHJpZ2dlciBvdXIgc2Nyb2xsIGV2ZW50IG9uIGluaXRpYWwgbG9hZFxyXG4gICAgJCh3aW5kb3cpLnRyaWdnZXIoJ3Njcm9sbCcpO1xyXG5cclxuXHJcbn0pO1xyXG5cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xyXG5cclxuXHJcbiAgICBsZXQgd2lkdGhQb2wgPSAxOTIwLFxyXG4gICAgICAgIGhlaWdodFBvbCA9IDEwMDtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJQb2x5ID0gW1xyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aFBvbCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aFBvbCwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBsZXQgd2lkdGhJbWdPdmVybGF5ID0gMTkyMCxcclxuICAgICAgICBoZWlnaHRJbWdPdmVybGF5ID0gMTAwO1xyXG5cclxuXHJcbiAgICBjb25zdCBpbWFnZVBvbHlUb3AgPSBbXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IGltYWdlUG9seUJvdHRvbSA9IFtcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhJbWdPdmVybGF5LCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgXTtcclxuXHJcblxyXG4gICAgbGV0IGltZ0hlYWRlckhvbGRlciA9IGQzLnNlbGVjdChcImJvZHlcIikuc2VsZWN0KFwiI2JvdHRvbS1sYW5kaW5nLW92ZXJsYXlcIikuc2VsZWN0KCcjbGFuZGluZy1zdmcnKVxyXG4gICAgICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGhQb2wpXHJcbiAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0UG9sKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhkMy5zZWxlY3QoXCJib2R5XCIpKTtcclxuXHJcbiAgICBsZXQgaW1nQm90dG9tSG9sZGVyID0gZDMuc2VsZWN0KFwiYm9keVwiKS5zZWxlY3RBbGwoXCIuc3ZnLWltYWdlLW92ZXJsYXktYm90dG9tXCIpXHJcbiAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aEltZ092ZXJsYXkpXHJcbiAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0SW1nT3ZlcmxheSk7XHJcblxyXG5cclxuICAgIGxldCBpbWdUb3BIb2xkZXIgPSBkMy5zZWxlY3QoXCJib2R5XCIpLnNlbGVjdEFsbChcIi5zdmctaW1hZ2Utb3ZlcmxheS10b3BcIilcclxuICAgICAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoSW1nT3ZlcmxheSlcclxuICAgICAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHRJbWdPdmVybGF5KTtcclxuXHJcbiAgICBjcmVhdGVQb2x5Z29uKGhlYWRlclBvbHksIHdpZHRoUG9sLCBoZWlnaHRQb2wsIGltZ0hlYWRlckhvbGRlcik7XHJcbiAgICBjcmVhdGVQb2x5Z29uKGltYWdlUG9seUJvdHRvbSwgd2lkdGhJbWdPdmVybGF5LCBoZWlnaHRJbWdPdmVybGF5LCBpbWdCb3R0b21Ib2xkZXIpO1xyXG4gICAgY3JlYXRlUG9seWdvbihpbWFnZVBvbHlUb3AsIHdpZHRoSW1nT3ZlcmxheSwgaGVpZ2h0SW1nT3ZlcmxheSwgaW1nVG9wSG9sZGVyKTtcclxuXHJcblxyXG4gICAgZnVuY3Rpb24gY3JlYXRlUG9seWdvbihwb2x5Z29uLCB3aWR0aCwgaGVpZ2h0LCB2aXMpIHtcclxuXHJcbiAgICAgICAgbGV0IHN2ZyA9IHZpcy5zZWxlY3RBbGwoXCJwYXRoXCIpLmRhdGEoW3BvbHlnb25dKTtcclxuXHJcbiAgICAgICAgc3ZnLmV4aXQoKS5yZW1vdmUoKTtcclxuXHJcbiAgICAgICAgbGV0IGxpbmVGdW5jdGlvbiA9IGQzLmxpbmUoKVxyXG4gICAgICAgICAgICAueChmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGQueFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAueShmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGQueVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc3ZnLmVudGVyKCkuYXBwZW5kKFwicGF0aFwiKVxyXG4gICAgICAgICAgICAuYXR0cihcImRcIiwgbGluZUZ1bmN0aW9uKHBvbHlnb24pKVxyXG4gICAgICAgICAgICAuYXR0cihcImZpbGxcIiwgXCIjZmZmXCIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdG9nZ2xlPVwibGlnaHRib3hcIl0nLCBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgJCh0aGlzKS5la2tvTGlnaHRib3goe1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICAkKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkKCdbZGF0YS10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpXHJcbiAgICB9KVxyXG5cclxufSk7IiwiJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuXG4gICAgbGV0IGR1cmF0aW9uID0gNzUwO1xuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoJy5zcGlubmVyJykuZWFjaChmdW5jdGlvbiAoayx2KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAkKHYpLmZhZGVJbihkdXJhdGlvbikuY3NzKFwiZGlzcGxheVwiLCBcImZsZXhcIik7XG4gICAgICAgICAgICAgICAgJCh7ZGVnOiAwfSkuYW5pbWF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRlZzogMzYwXG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICBzdGVwOiBmdW5jdGlvbiAobm93LCBmeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh2KS5jc3Moe1widHJhbnNmb3JtXCI6IFwicm90YXRlWShcIiArIG5vdyArIFwiZGVnKVwifSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiAnbGluZWFyJyxcbiAgICAgICAgICAgICAgICAgICAgcXVldWU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgJ2xpbmVhcicpO1xuICAgICAgICAgICAgfSwgayAqIGR1cmF0aW9uKjIvMyk7XG4gICAgICAgIH0pXG4gICAgfSwgMjAwKTtcblxuICAgICQoXCIubWFpbi1iYWNrZ3JvdW5kXCIpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcuc3Bpbm5lcicpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCh0aGlzKS5mYWRlSW4oKS5jc3MoXCJkaXNwbGF5XCIsIFwiZmxleFwiKTtcbiAgICAgICAgfSlcbiAgICB9KVxuXG59KTsiLCJsZXQgbW9kZWxJbml0RGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMCxcbiAgICAgICAgcm9mZjogMCxcbiAgICAgICAgcm9uOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwLFxuICAgICAgICBnZnA6IDAuNTAzMzA4LFxuICAgICAgICByb2ZmOiAwLjAwNTExMyxcbiAgICAgICAgcm9uOiAwLjQyMzkwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAsXG4gICAgICAgIGdmcDogMC42OTA1ODEsXG4gICAgICAgIHJvZmY6IDAuMDA0OTEzNixcbiAgICAgICAgcm9uOiAwLjc5Mjg4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAsXG4gICAgICAgIGdmcDogMC43Njc1ODYsXG4gICAgICAgIHJvZmY6IDAuMDA0NzE2MzcsXG4gICAgICAgIHJvbjogMC44ODkyMDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwLFxuICAgICAgICBnZnA6IDAuODAzNDMsXG4gICAgICAgIHJvZmY6IDAuMDA0NTM0ODUsXG4gICAgICAgIHJvbjogMC44NzMxMjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwLFxuICAgICAgICBnZnA6IDAuODIzNTE2LFxuICAgICAgICByb2ZmOiAwLjAwNDM2NDg4LFxuICAgICAgICByb246IDAuODQ3Mjg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMCxcbiAgICAgICAgZ2ZwOiAwLjgzNzMxMyxcbiAgICAgICAgcm9mZjogMC4wMDQyMDQ0OSxcbiAgICAgICAgcm9uOiAwLjgyNDgwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAsXG4gICAgICAgIGdmcDogMC44NDgzNjEsXG4gICAgICAgIHJvZmY6IDAuMDA0MDUyNjYsXG4gICAgICAgIHJvbjogMC44MDgwMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwLFxuICAgICAgICBnZnA6IDAuODU4LFxuICAgICAgICByb2ZmOiAwLjAwMzkwODU5LFxuICAgICAgICByb246IDAuNzk2NjQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjg2Njc1NixcbiAgICAgICAgcm9mZjogMC4wMDM3NzE1NyxcbiAgICAgICAgcm9uOiAwLjc4OTU1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAsXG4gICAgICAgIGdmcDogMC44NzQ4NTEsXG4gICAgICAgIHJvZmY6IDAuMDAzNjQxMDIsXG4gICAgICAgIHJvbjogMC43ODU1MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwLFxuICAgICAgICBnZnA6IDAuODgyMzkzLFxuICAgICAgICByb2ZmOiAwLjAwMzUxNjQ3LFxuICAgICAgICByb246IDAuNzgzNTc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMCxcbiAgICAgICAgZ2ZwOiAwLjg4OTQ0MixcbiAgICAgICAgcm9mZjogMC4wMDMzOTc1MyxcbiAgICAgICAgcm9uOiAwLjc4MjkxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAsXG4gICAgICAgIGdmcDogMC44OTYwMzksXG4gICAgICAgIHJvZmY6IDAuMDAzMjgzODgsXG4gICAgICAgIHJvbjogMC43ODMwMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwLFxuICAgICAgICBnZnA6IDAuOTAyMjE0LFxuICAgICAgICByb2ZmOiAwLjAwMzE3NTI1LFxuICAgICAgICByb246IDAuNzgzNTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MCxcbiAgICAgICAgZ2ZwOiAwLjkwNzk5NixcbiAgICAgICAgcm9mZjogMC4wMDMwNzE0LFxuICAgICAgICByb246IDAuNzg0Mjc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMCxcbiAgICAgICAgZ2ZwOiAwLjkxMzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDI5NzIxMSxcbiAgICAgICAgcm9uOiAwLjc4NTEwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAsXG4gICAgICAgIGdmcDogMC45MTg0NjksXG4gICAgICAgIHJvZmY6IDAuMDAyODc3MTcsXG4gICAgICAgIHJvbjogMC43ODU5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAsXG4gICAgICAgIGdmcDogMC45MjMyMDUsXG4gICAgICAgIHJvZmY6IDAuMDAyNzg2MzgsXG4gICAgICAgIHJvbjogMC43ODY3NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwLFxuICAgICAgICBnZnA6IDAuOTI3NjMzLFxuICAgICAgICByb2ZmOiAwLjAwMjY5OTU3LFxuICAgICAgICByb246IDAuNzg3NTcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAsXG4gICAgICAgIGdmcDogMC45MzE3NzIsXG4gICAgICAgIHJvZmY6IDAuMDAyNjE2NTcsXG4gICAgICAgIHJvbjogMC43ODgzMTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjkzNTY0MSxcbiAgICAgICAgcm9mZjogMC4wMDI1MzcyLFxuICAgICAgICByb246IDAuNzg5MDE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAsXG4gICAgICAgIGdmcDogMC45MzkyNTYsXG4gICAgICAgIHJvZmY6IDAuMDAyNDYxMzEsXG4gICAgICAgIHJvbjogMC43ODk2NjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk0MjYzNCxcbiAgICAgICAgcm9mZjogMC4wMDIzODg3NSxcbiAgICAgICAgcm9uOiAwLjc5MDI3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwLFxuICAgICAgICBnZnA6IDAuOTQ1Nzg5LFxuICAgICAgICByb2ZmOiAwLjAwMjMxOTM3LFxuICAgICAgICByb246IDAuNzkwODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAsXG4gICAgICAgIGdmcDogMC45NDg3MzYsXG4gICAgICAgIHJvZmY6IDAuMDAyMjUzMDQsXG4gICAgICAgIHJvbjogMC43OTEzNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk1MTQ4OSxcbiAgICAgICAgcm9mZjogMC4wMDIxODk2MixcbiAgICAgICAgcm9uOiAwLjc5MTg0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwLFxuICAgICAgICBnZnA6IDAuOTU0MDYxLFxuICAgICAgICByb2ZmOiAwLjAwMjEyODk4LFxuICAgICAgICByb246IDAuNzkyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwLFxuICAgICAgICBnZnA6IDAuOTU2NDY0LFxuICAgICAgICByb2ZmOiAwLjAwMjA3MTAxLFxuICAgICAgICByb246IDAuNzkyNzIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAsXG4gICAgICAgIGdmcDogMC45NTg3MDksXG4gICAgICAgIHJvZmY6IDAuMDAyMDE1NTksXG4gICAgICAgIHJvbjogMC43OTMxMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk2MDgwNyxcbiAgICAgICAgcm9mZjogMC4wMDE5NjI2LFxuICAgICAgICByb246IDAuNzkzNDc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAsXG4gICAgICAgIGdmcDogMC45NjI3NjgsXG4gICAgICAgIHJvZmY6IDAuMDAxOTExOTQsXG4gICAgICAgIHJvbjogMC43OTM4MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk2NDYwMSxcbiAgICAgICAgcm9mZjogMC4wMDE4NjM1MSxcbiAgICAgICAgcm9uOiAwLjc5NDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAsXG4gICAgICAgIGdmcDogMC45NjYzMTQsXG4gICAgICAgIHJvZmY6IDAuMDAxODE3MjEsXG4gICAgICAgIHJvbjogMC43OTQ0MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk2NzkxNyxcbiAgICAgICAgcm9mZjogMC4wMDE3NzI5NSxcbiAgICAgICAgcm9uOiAwLjc5NDY5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwLFxuICAgICAgICBnZnA6IDAuOTY5NDE2LFxuICAgICAgICByb2ZmOiAwLjAwMTczMDYzLFxuICAgICAgICByb246IDAuNzk0OTU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAsXG4gICAgICAgIGdmcDogMC45NzA4MTksXG4gICAgICAgIHJvZmY6IDAuMDAxNjkwMTgsXG4gICAgICAgIHJvbjogMC43OTUxOTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk3MjEzMixcbiAgICAgICAgcm9mZjogMC4wMDE2NTE1MSxcbiAgICAgICAgcm9uOiAwLjc5NTQxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwLFxuICAgICAgICBnZnA6IDAuOTczMzYxLFxuICAgICAgICByb2ZmOiAwLjAwMTYxNDU0LFxuICAgICAgICByb246IDAuNzk1NjIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAsXG4gICAgICAgIGdmcDogMC45NzQ1MTIsXG4gICAgICAgIHJvZmY6IDAuMDAxNTc5MjEsXG4gICAgICAgIHJvbjogMC43OTU4MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NTU5MSxcbiAgICAgICAgcm9mZjogMC4wMDE1NDU0MixcbiAgICAgICAgcm9uOiAwLjc5NTk5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwLFxuICAgICAgICBnZnA6IDAuOTc2NjAyLFxuICAgICAgICByb2ZmOiAwLjAwMTUxMzEzLFxuICAgICAgICByb246IDAuNzk2MTY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAsXG4gICAgICAgIGdmcDogMC45Nzc1NDksXG4gICAgICAgIHJvZmY6IDAuMDAxNDgyMjYsXG4gICAgICAgIHJvbjogMC43OTYzMjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk3ODQzOCxcbiAgICAgICAgcm9mZjogMC4wMDE0NTI3NSxcbiAgICAgICAgcm9uOiAwLjc5NjQ3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjAwLFxuICAgICAgICBnZnA6IDAuOTc5MjcyLFxuICAgICAgICByb2ZmOiAwLjAwMTQyNDU0LFxuICAgICAgICByb246IDAuNzk2NjE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAsXG4gICAgICAgIGdmcDogMC45ODAwNTUsXG4gICAgICAgIHJvZmY6IDAuMDAxMzk3NTcsXG4gICAgICAgIHJvbjogMC43OTY3NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MDc5LFxuICAgICAgICByb2ZmOiAwLjAwMTM3MTc5LFxuICAgICAgICByb246IDAuNzk2ODY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAsXG4gICAgICAgIGdmcDogMC45ODE0ODEsXG4gICAgICAgIHJvZmY6IDAuMDAxMzQ3MTUsXG4gICAgICAgIHJvbjogMC43OTY5ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MjEzLFxuICAgICAgICByb2ZmOiAwLjAwMTMyMzYsXG4gICAgICAgIHJvbjogMC43OTcwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDUwLFxuICAgICAgICBnZnA6IDAuOTgyNzQsXG4gICAgICAgIHJvZmY6IDAuMDAxMzAxMDksXG4gICAgICAgIHJvbjogMC43OTcxOTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MzMxNCxcbiAgICAgICAgcm9mZjogMC4wMDEyNzk1NyxcbiAgICAgICAgcm9uOiAwLjc5NzI4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTUwLFxuICAgICAgICBnZnA6IDAuOTgzODUzLFxuICAgICAgICByb2ZmOiAwLjAwMTI1ODk5LFxuICAgICAgICByb246IDAuNzk3Mzc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAsXG4gICAgICAgIGdmcDogMC45ODQzNjIsXG4gICAgICAgIHJvZmY6IDAuMDAxMjM5MzMsXG4gICAgICAgIHJvbjogMC43OTc0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjUwLFxuICAgICAgICBnZnA6IDAuOTg0ODQsXG4gICAgICAgIHJvZmY6IDAuMDAxMjIwNTMsXG4gICAgICAgIHJvbjogMC43OTc1MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NTI5MSxcbiAgICAgICAgcm9mZjogMC4wMDEyMDI1NyxcbiAgICAgICAgcm9uOiAwLjc5NzYxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzUwLFxuICAgICAgICBnZnA6IDAuOTg1NzE1LFxuICAgICAgICByb2ZmOiAwLjAwMTE4NTM5LFxuICAgICAgICByb246IDAuNzk3NjgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4MDAsXG4gICAgICAgIGdmcDogMC45ODYxMTYsXG4gICAgICAgIHJvZmY6IDAuMDAxMTY4OTgsXG4gICAgICAgIHJvbjogMC43OTc3NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NjQ5MyxcbiAgICAgICAgcm9mZjogMC4wMDExNTMyOSxcbiAgICAgICAgcm9uOiAwLjc5NzgxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTAwLFxuICAgICAgICBnZnA6IDAuOTg2ODUsXG4gICAgICAgIHJvZmY6IDAuMDAxMTM4MjksXG4gICAgICAgIHJvbjogMC43OTc4NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NzE4NixcbiAgICAgICAgcm9mZjogMC4wMDExMjM5NSxcbiAgICAgICAgcm9uOiAwLjc5NzkyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAwLFxuICAgICAgICBnZnA6IDAuOTg3NTAzLFxuICAgICAgICByb2ZmOiAwLjAwMTExMDI1LFxuICAgICAgICByb246IDAuNzk3OTc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwNTAsXG4gICAgICAgIGdmcDogMC45ODc4MDMsXG4gICAgICAgIHJvZmY6IDAuMDAxMDk3MTUsXG4gICAgICAgIHJvbjogMC43OTgwMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk4ODA4NyxcbiAgICAgICAgcm9mZjogMC4wMDEwODQ2MyxcbiAgICAgICAgcm9uOiAwLjc5ODA3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTUwLFxuICAgICAgICBnZnA6IDAuOTg4MzU0LFxuICAgICAgICByb2ZmOiAwLjAwMTA3MjY3LFxuICAgICAgICByb246IDAuNzk4MTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyMDAsXG4gICAgICAgIGdmcDogMC45ODg2MDgsXG4gICAgICAgIHJvZmY6IDAuMDAxMDYxMjMsXG4gICAgICAgIHJvbjogMC43OTgxNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk4ODg0NyxcbiAgICAgICAgcm9mZjogMC4wMDEwNTAzLFxuICAgICAgICByb246IDAuNzk4MTk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzMDAsXG4gICAgICAgIGdmcDogMC45ODkwNzQsXG4gICAgICAgIHJvZmY6IDAuMDAxMDM5ODUsXG4gICAgICAgIHJvbjogMC43OTgyMzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk4OTI4OSxcbiAgICAgICAgcm9mZjogMC4wMDEwMjk4NixcbiAgICAgICAgcm9uOiAwLjc5ODI2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDAwLFxuICAgICAgICBnZnA6IDAuOTg5NDkyLFxuICAgICAgICByb2ZmOiAwLjAwMTAyMDMxLFxuICAgICAgICByb246IDAuNzk4MzAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0NTAsXG4gICAgICAgIGdmcDogMC45ODk2ODQsXG4gICAgICAgIHJvZmY6IDAuMDAxMDExMTksXG4gICAgICAgIHJvbjogMC43OTgzMzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTg2NixcbiAgICAgICAgcm9mZjogMC4wMDEwMDI0NyxcbiAgICAgICAgcm9uOiAwLjc5ODM2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTUwLFxuICAgICAgICBnZnA6IDAuOTkwMDM5LFxuICAgICAgICByb2ZmOiAwLjAwMDk5NDEzLFxuICAgICAgICByb246IDAuNzk4MzkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2MDAsXG4gICAgICAgIGdmcDogMC45OTAyMDMsXG4gICAgICAgIHJvZmY6IDAuMDAwOTg2MTYyLFxuICAgICAgICByb246IDAuNzk4NDE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2NTAsXG4gICAgICAgIGdmcDogMC45OTAzNTgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTc4NTQ2LFxuICAgICAgICByb246IDAuNzk4NDQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3MDAsXG4gICAgICAgIGdmcDogMC45OTA1MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTcxMjY2LFxuICAgICAgICByb246IDAuNzk4NDY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3NTAsXG4gICAgICAgIGdmcDogMC45OTA2NDUsXG4gICAgICAgIHJvZmY6IDAuMDAwOTY0MzA4LFxuICAgICAgICByb246IDAuNzk4NDkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4MDAsXG4gICAgICAgIGdmcDogMC45OTA3NzgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTU3NjU3LFxuICAgICAgICByb246IDAuNzk4NTEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4NTAsXG4gICAgICAgIGdmcDogMC45OTA5MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwOTUxMyxcbiAgICAgICAgcm9uOiAwLjc5ODUzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTAwLFxuICAgICAgICBnZnA6IDAuOTkxMDI0LFxuICAgICAgICByb2ZmOiAwLjAwMDk0NTIyNCxcbiAgICAgICAgcm9uOiAwLjc5ODU1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTUwLFxuICAgICAgICBnZnA6IDAuOTkxMTM3LFxuICAgICAgICByb2ZmOiAwLjAwMDkzOTQxNyxcbiAgICAgICAgcm9uOiAwLjc5ODU3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAwLFxuICAgICAgICBnZnA6IDAuOTkxMjQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDkzMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODU4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDUwLFxuICAgICAgICBnZnA6IDAuOTkxMzQ4LFxuICAgICAgICByb2ZmOiAwLjAwMDkyODU2MSxcbiAgICAgICAgcm9uOiAwLjc5ODYwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTAwLFxuICAgICAgICBnZnA6IDAuOTkxNDQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDkyMzQ5LFxuICAgICAgICByb246IDAuNzk4NjIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxNTAsXG4gICAgICAgIGdmcDogMC45OTE1MzgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTE4NjQzLFxuICAgICAgICByb246IDAuNzk4NjM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyMDAsXG4gICAgICAgIGdmcDogMC45OTE2MjYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTE0MDExLFxuICAgICAgICByb246IDAuNzk4NjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTcxLFxuICAgICAgICByb2ZmOiAwLjAwMDkwOTU4MyxcbiAgICAgICAgcm9uOiAwLjc5ODY2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzAwLFxuICAgICAgICBnZnA6IDAuOTkxNzg5LFxuICAgICAgICByb2ZmOiAwLjAwMDkwNTM1MSxcbiAgICAgICAgcm9uOiAwLjc5ODY3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzUwLFxuICAgICAgICBnZnA6IDAuOTkxODY1LFxuICAgICAgICByb2ZmOiAwLjAwMDkwMTMwNixcbiAgICAgICAgcm9uOiAwLjc5ODY4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDAwLFxuICAgICAgICBnZnA6IDAuOTkxOTM3LFxuICAgICAgICByb2ZmOiAwLjAwMDg5NzQ0LFxuICAgICAgICByb246IDAuNzk4NzAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0NTAsXG4gICAgICAgIGdmcDogMC45OTIwMDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODkzNzQ1LFxuICAgICAgICByb246IDAuNzk4NzEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MDAsXG4gICAgICAgIGdmcDogMC45OTIwNzEsXG4gICAgICAgIHJvZmY6IDAuMDAwODkwMjEzLFxuICAgICAgICByb246IDAuNzk4NzIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1NTAsXG4gICAgICAgIGdmcDogMC45OTIxMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODg2ODM3LFxuICAgICAgICByb246IDAuNzk4NzMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2MDAsXG4gICAgICAgIGdmcDogMC45OTIxOTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODgzNjEsXG4gICAgICAgIHJvbjogMC43OTg3NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjI0OSxcbiAgICAgICAgcm9mZjogMC4wMDA4ODA1MjYsXG4gICAgICAgIHJvbjogMC43OTg3NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjMwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4Nzc1NzksXG4gICAgICAgIHJvbjogMC43OTg3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzUwLFxuICAgICAgICBnZnA6IDAuOTkyMzU0LFxuICAgICAgICByb2ZmOiAwLjAwMDg3NDc2MSxcbiAgICAgICAgcm9uOiAwLjc5ODc2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODAwLFxuICAgICAgICBnZnA6IDAuOTkyNDAzLFxuICAgICAgICByb2ZmOiAwLjAwMDg3MjA2OSxcbiAgICAgICAgcm9uOiAwLjc5ODc3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODUwLFxuICAgICAgICBnZnA6IDAuOTkyNDQ5LFxuICAgICAgICByb2ZmOiAwLjAwMDg2OTQ5NSxcbiAgICAgICAgcm9uOiAwLjc5ODc4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTAwLFxuICAgICAgICBnZnA6IDAuOTkyNDk0LFxuICAgICAgICByb2ZmOiAwLjAwMDg2NzAzNSxcbiAgICAgICAgcm9uOiAwLjc5ODc5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTUwLFxuICAgICAgICBnZnA6IDAuOTkyNTM2LFxuICAgICAgICByb2ZmOiAwLjAwMDg2NDY4NCxcbiAgICAgICAgcm9uOiAwLjc5ODc5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAwLFxuICAgICAgICBnZnA6IDAuOTkyNTc2LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MjQzNyxcbiAgICAgICAgcm9uOiAwLjc5ODgwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDUwLFxuICAgICAgICBnZnA6IDAuOTkyNjE1LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MDI5LFxuICAgICAgICByb246IDAuNzk4ODExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxMDAsXG4gICAgICAgIGdmcDogMC45OTI2NTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODU4MjM3LFxuICAgICAgICByb246IDAuNzk4ODE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxNTAsXG4gICAgICAgIGdmcDogMC45OTI2ODYsXG4gICAgICAgIHJvZmY6IDAuMDAwODU2Mjc1LFxuICAgICAgICByb246IDAuNzk4ODIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyMDAsXG4gICAgICAgIGdmcDogMC45OTI3MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODU0NCxcbiAgICAgICAgcm9uOiAwLjc5ODgyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjUwLFxuICAgICAgICBnZnA6IDAuOTkyNzUxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1MjYwNyxcbiAgICAgICAgcm9uOiAwLjc5ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzAwLFxuICAgICAgICBnZnA6IDAuOTkyNzgxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1MDg5NCxcbiAgICAgICAgcm9uOiAwLjc5ODgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzUwLFxuICAgICAgICBnZnA6IDAuOTkyODEsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ5MjU3LFxuICAgICAgICByb246IDAuNzk4ODQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0MDAsXG4gICAgICAgIGdmcDogMC45OTI4MzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ3NjkyLFxuICAgICAgICByb246IDAuNzk4ODQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0NTAsXG4gICAgICAgIGdmcDogMC45OTI4NjQsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ2MTk2LFxuICAgICAgICByb246IDAuNzk4ODUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MDAsXG4gICAgICAgIGdmcDogMC45OTI4ODksXG4gICAgICAgIHJvZmY6IDAuMDAwODQ0NzY2LFxuICAgICAgICByb246IDAuNzk4ODU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1NTAsXG4gICAgICAgIGdmcDogMC45OTI5MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODQzMzk5LFxuICAgICAgICByb246IDAuNzk4ODU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2MDAsXG4gICAgICAgIGdmcDogMC45OTI5MzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODQyMDkzLFxuICAgICAgICByb246IDAuNzk4ODYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2NTAsXG4gICAgICAgIGdmcDogMC45OTI5NTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODQwODQ1LFxuICAgICAgICByb246IDAuNzk4ODY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3MDAsXG4gICAgICAgIGdmcDogMC45OTI5NzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODM5NjUyLFxuICAgICAgICByb246IDAuNzk4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk5OCxcbiAgICAgICAgcm9mZjogMC4wMDA4Mzg1MTIsXG4gICAgICAgIHJvbjogMC43OTg4NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzAxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mzc0MjIsXG4gICAgICAgIHJvbjogMC43OTg4NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzAzNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzYzOCxcbiAgICAgICAgcm9uOiAwLjc5ODg3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMDUyLFxuICAgICAgICByb2ZmOiAwLjAwMDgzNTM4NSxcbiAgICAgICAgcm9uOiAwLjc5ODg4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMDY5LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNDQzMyxcbiAgICAgICAgcm9uOiAwLjc5ODg4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMDg0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMzUyNCxcbiAgICAgICAgcm9uOiAwLjc5ODg4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMDk5LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMjY1NCxcbiAgICAgICAgcm9uOiAwLjc5ODg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxMDAsXG4gICAgICAgIGdmcDogMC45OTMxMTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODMxODI0LFxuICAgICAgICByb246IDAuNzk4ODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxNTAsXG4gICAgICAgIGdmcDogMC45OTMxMjcsXG4gICAgICAgIHJvZmY6IDAuMDAwODMxMDMsXG4gICAgICAgIHJvbjogMC43OTg4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMDI3MSxcbiAgICAgICAgcm9uOiAwLjc5ODg5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMTUzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyOTU0NSxcbiAgICAgICAgcm9uOiAwLjc5ODg5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMTY1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyODg1MixcbiAgICAgICAgcm9uOiAwLjc5ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE3NixcbiAgICAgICAgcm9mZjogMC4wMDA4MjgxODksXG4gICAgICAgIHJvbjogMC43OTg5MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE4NyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjc1NTUsXG4gICAgICAgIHJvbjogMC43OTg5MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE5NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjY5NSxcbiAgICAgICAgcm9uOiAwLjc5ODkwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMjA3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNjM3MSxcbiAgICAgICAgcm9uOiAwLjc5ODkwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMjE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNTgxOCxcbiAgICAgICAgcm9uOiAwLjc5ODkwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMjI2LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNTI4OSxcbiAgICAgICAgcm9uOiAwLjc5ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2NTAsXG4gICAgICAgIGdmcDogMC45OTMyMzUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI0NzgzLFxuICAgICAgICByb246IDAuNzk4OTEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3MDAsXG4gICAgICAgIGdmcDogMC45OTMyNDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODI0MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMjUxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzgzOSxcbiAgICAgICAgcm9uOiAwLjc5ODkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMjU4LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzM5OCxcbiAgICAgICAgcm9uOiAwLjc5ODkxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMjY1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjk3NixcbiAgICAgICAgcm9uOiAwLjc5ODkxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMjcyLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjU3MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMjc5LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjE4OCxcbiAgICAgICAgcm9uOiAwLjc5ODkxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMjg1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTgyLFxuICAgICAgICByb246IDAuNzk4OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI5MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjE0NjgsXG4gICAgICAgIHJvbjogMC43OTg5MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI5NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjExMzIsXG4gICAgICAgIHJvbjogMC43OTg5MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwMixcbiAgICAgICAgcm9mZjogMC4wMDA4MjA4MSxcbiAgICAgICAgcm9uOiAwLjc5ODkyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzA3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDUwMyxcbiAgICAgICAgcm9uOiAwLjc5ODkyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDIwOSxcbiAgICAgICAgcm9uOiAwLjc5ODkyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTkyOSxcbiAgICAgICAgcm9uOiAwLjc5ODkyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzIyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTY2LFxuICAgICAgICByb246IDAuNzk4OTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0MDAsXG4gICAgICAgIGdmcDogMC45OTMzMjYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5NDA0LFxuICAgICAgICByb246IDAuNzk4OTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0NTAsXG4gICAgICAgIGdmcDogMC45OTMzMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTkxNTksXG4gICAgICAgIHJvbjogMC43OTg5MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg5MjUsXG4gICAgICAgIHJvbjogMC43OTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg3MDEsXG4gICAgICAgIHJvbjogMC43OTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTg0ODcsXG4gICAgICAgIHJvbjogMC43OTg5MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgyODIsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzQ4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODA4NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3NTAsXG4gICAgICAgIGdmcDogMC45OTMzNTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3OSxcbiAgICAgICAgcm9uOiAwLjc5ODkzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzU1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzcyMixcbiAgICAgICAgcm9uOiAwLjc5ODkzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMzU4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzU1MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3Mzg4LFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5NTAsXG4gICAgICAgIGdmcDogMC45OTMzNjMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3MjMyLFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMDAsXG4gICAgICAgIGdmcDogMC45OTMzNjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3MDgzLFxuICAgICAgICByb246IDAuNzk4OTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwNTAsXG4gICAgICAgIGdmcDogMC45OTMzNjgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2OTQxLFxuICAgICAgICByb246IDAuNzk4OTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxMDAsXG4gICAgICAgIGdmcDogMC45OTMzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY4MDQsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY2NzQsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY1NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzc2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjQzMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzc4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjMxOCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MjA5LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0MDAsXG4gICAgICAgIGdmcDogMC45OTMzODIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MTA1LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0NTAsXG4gICAgICAgIGdmcDogMC45OTMzODQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MDA2LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MDAsXG4gICAgICAgIGdmcDogMC45OTMzODUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1OTExLFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1NTAsXG4gICAgICAgIGdmcDogMC45OTMzODcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1ODIxLFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2MDAsXG4gICAgICAgIGdmcDogMC45OTMzODgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NzM0LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2NTAsXG4gICAgICAgIGdmcDogMC45OTMzOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU2NTEsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU1NzIsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTU0OTcsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU0MjUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUzNTYsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTUyOSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTIyNyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzk4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTE2NixcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTEwOSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUwNTQsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUwMDEsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ5NTEsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ5MDMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ4NTcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ4MTMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3NzEsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3MzEsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2OTMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2NTYsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2MjEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDU4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTU1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1MjUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ5NixcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0NjgsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDQxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0MTUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzOTEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNjgsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNDUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMjQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMDQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyODQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyNjYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjQ4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMTUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTk5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNTcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTQ0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDk3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNzcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDY4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA1OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNDIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDM0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAyNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAwNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTk0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk4OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5ODIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTc3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk3MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTYzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQ2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTM2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTI0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTAzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkzLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH1cbl1cbmxldCBtb2RlbE9mZkRhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjhcbiAgICB9XG5dO1xubGV0IG1vZGVsT2ZmT25EYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2MzY5OCxcbiAgICAgICAgcm9mZjogMC42OTc3MDEsXG4gICAgICAgIHJvbjogMC44MzI2NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAsXG4gICAgICAgIGdmcDogMC4wMDAyMTEwNzQsXG4gICAgICAgIHJvZmY6IDAuNjEyMzYzLFxuICAgICAgICByb246IDAuOTQ4NTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI2NzUyNixcbiAgICAgICAgcm9mZjogMC41NTA3NzcsXG4gICAgICAgIHJvbjogMC45MTk2MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMzI5Njc2LFxuICAgICAgICByb2ZmOiAwLjUwMTUxNixcbiAgICAgICAgcm9uOiAwLjg3MDgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAsXG4gICAgICAgIGdmcDogMC4wMDAzOTc1ODQsXG4gICAgICAgIHJvZmY6IDAuNDYwMzE5LFxuICAgICAgICByb246IDAuODA5OTU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDQ3MjAyOCxcbiAgICAgICAgcm9mZjogMC40MjQ5NDUsXG4gICAgICAgIHJvbjogMC43NDQ0NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwLFxuICAgICAgICBnZnA6IDAuMDAwNTUzOTUsXG4gICAgICAgIHJvZmY6IDAuMzk0MDE1LFxuICAgICAgICByb246IDAuNjgwMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwLFxuICAgICAgICBnZnA6IDAuMDAwNjQ0MzQsXG4gICAgICAgIHJvZmY6IDAuMzY2NjEsXG4gICAgICAgIHJvbjogMC42MjEwMjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwLFxuICAgICAgICBnZnA6IDAuMDAwNzQ0MjIyLFxuICAgICAgICByb2ZmOiAwLjM0MjA4MixcbiAgICAgICAgcm9uOiAwLjU2NzgwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAsXG4gICAgICAgIGdmcDogMC4wMDA4NTQ2NjQsXG4gICAgICAgIHJvZmY6IDAuMzE5OTU4LFxuICAgICAgICByb246IDAuNTIwNzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDk3Njc4NyxcbiAgICAgICAgcm9mZjogMC4yOTk4NzcsXG4gICAgICAgIHJvbjogMC40NzkzMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwLFxuICAgICAgICBnZnA6IDAuMDAxMTExNzgsXG4gICAgICAgIHJvZmY6IDAuMjgxNTU2LFxuICAgICAgICByb246IDAuNDQyODE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTI2MDkxLFxuICAgICAgICByb2ZmOiAwLjI2NDc3MSxcbiAgICAgICAgcm9uOiAwLjQxMDUwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAsXG4gICAgICAgIGdmcDogMC4wMDE0MjU1MixcbiAgICAgICAgcm9mZjogMC4yNDkzMzgsXG4gICAgICAgIHJvbjogMC4zODE3NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwLFxuICAgICAgICBnZnA6IDAuMDAxNjA3MDQsXG4gICAgICAgIHJvZmY6IDAuMjM1MTA2LFxuICAgICAgICByb246IDAuMzU2MDExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTgwNyxcbiAgICAgICAgcm9mZjogMC4yMjE5NDgsXG4gICAgICAgIHJvbjogMC4zMzI4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAsXG4gICAgICAgIGdmcDogMC4wMDIwMjcwMSxcbiAgICAgICAgcm9mZjogMC4yMDk3NTcsXG4gICAgICAgIHJvbjogMC4zMTE4NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwLFxuICAgICAgICBnZnA6IDAuMDAyMjY4NzQsXG4gICAgICAgIHJvZmY6IDAuMTk4NDQyLFxuICAgICAgICByb246IDAuMjkyODIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjUzMzk1LFxuICAgICAgICByb2ZmOiAwLjE4NzkyNSxcbiAgICAgICAgcm9uOiAwLjI3NTQzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAsXG4gICAgICAgIGdmcDogMC4wMDI4MjQ0MyxcbiAgICAgICAgcm9mZjogMC4xNzgxMzcsXG4gICAgICAgIHJvbjogMC4yNTk1MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzE0MjAzLFxuICAgICAgICByb2ZmOiAwLjE2OTAyMSxcbiAgICAgICAgcm9uOiAwLjI0NDkxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwLFxuICAgICAgICBnZnA6IDAuMDAzNDg4NTQsXG4gICAgICAgIHJvZmY6IDAuMTYwNTIzLFxuICAgICAgICByb246IDAuMjMxNDc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAsXG4gICAgICAgIGdmcDogMC4wMDM4NjU3NixcbiAgICAgICAgcm9mZjogMC4xNTI2LFxuICAgICAgICByb246IDAuMjE5MDk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAsXG4gICAgICAgIGdmcDogMC4wMDQyNzUzNixcbiAgICAgICAgcm9mZjogMC4xNDUyMSxcbiAgICAgICAgcm9uOiAwLjIwNzY2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwLFxuICAgICAgICBnZnA6IDAuMDA0NzE4ODYsXG4gICAgICAgIHJvZmY6IDAuMTM4MzE5LFxuICAgICAgICByb246IDAuMTk3MTA2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAsXG4gICAgICAgIGdmcDogMC4wMDUxOTc1NixcbiAgICAgICAgcm9mZjogMC4xMzE4OTUsXG4gICAgICAgIHJvbjogMC4xODczNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNTcxMjQyLFxuICAgICAgICByb2ZmOiAwLjEyNTkwOSxcbiAgICAgICAgcm9uOiAwLjE3ODMyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwLFxuICAgICAgICBnZnA6IDAuMDA2MjY0MDEsXG4gICAgICAgIHJvZmY6IDAuMTIwMzM2LFxuICAgICAgICByb246IDAuMTY5OTkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDAsXG4gICAgICAgIGdmcDogMC4wMDY4NTIzOSxcbiAgICAgICAgcm9mZjogMC4xMTUxNTQsXG4gICAgICAgIHJvbjogMC4xNjIyODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNzQ3NzA0LFxuICAgICAgICByb2ZmOiAwLjExMDM0MSxcbiAgICAgICAgcm9uOiAwLjE1NTE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAsXG4gICAgICAgIGdmcDogMC4wMDgxMzY2OCxcbiAgICAgICAgcm9mZjogMC4xMDU4NzgsXG4gICAgICAgIHJvbjogMC4xNDg2MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwODgyOTI5LFxuICAgICAgICByb2ZmOiAwLjEwMTc0OCxcbiAgICAgICAgcm9uOiAwLjE0MjU5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwLFxuICAgICAgICBnZnA6IDAuMDA5NTUxOTgsXG4gICAgICAgIHJvZmY6IDAuMDk3OTMyNixcbiAgICAgICAgcm9uOiAwLjEzNzA0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwLFxuICAgICAgICBnZnA6IDAuMDEwMzAxLFxuICAgICAgICByb2ZmOiAwLjA5NDQxNzQsXG4gICAgICAgIHJvbjogMC4xMzE5NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTA3MTgsXG4gICAgICAgIHJvZmY6IDAuMDkxMTg2NixcbiAgICAgICAgcm9uOiAwLjEyNzMxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwLFxuICAgICAgICBnZnA6IDAuMDExODU4OSxcbiAgICAgICAgcm9mZjogMC4wODgyMjUyLFxuICAgICAgICByb246IDAuMTIzMDcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAsXG4gICAgICAgIGdmcDogMC4wMTI2NTY0LFxuICAgICAgICByb2ZmOiAwLjA4NTUxODgsXG4gICAgICAgIHJvbjogMC4xMTkyMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMzQ1NzYsXG4gICAgICAgIHJvZmY6IDAuMDgzMDUyOCxcbiAgICAgICAgcm9uOiAwLjExNTcxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwLFxuICAgICAgICBnZnA6IDAuMDE0MjU1NyxcbiAgICAgICAgcm9mZjogMC4wODA4MTI3LFxuICAgICAgICByb246IDAuMTEyNTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAxNTA0MzksXG4gICAgICAgIHJvZmY6IDAuMDc4Nzg0MixcbiAgICAgICAgcm9uOiAwLjEwOTcwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAwLFxuICAgICAgICBnZnA6IDAuMDE1ODE1NixcbiAgICAgICAgcm9mZjogMC4wNzY5NTMsXG4gICAgICAgIHJvbjogMC4xMDcxNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAxNjU2NDUsXG4gICAgICAgIHJvZmY6IDAuMDc1MzA0OSxcbiAgICAgICAgcm9uOiAwLjEwNDg1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwLFxuICAgICAgICBnZnA6IDAuMDE3Mjg1MyxcbiAgICAgICAgcm9mZjogMC4wNzM4MjU3LFxuICAgICAgICByb246IDAuMTAyODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAxNzk3MzMsXG4gICAgICAgIHJvZmY6IDAuMDcyNTAxOCxcbiAgICAgICAgcm9uOiAwLjEwMTAxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjAwLFxuICAgICAgICBnZnA6IDAuMDE4NjI0OCxcbiAgICAgICAgcm9mZjogMC4wNzEzMTk2LFxuICAgICAgICByb246IDAuMDk5NDEyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwLFxuICAgICAgICBnZnA6IDAuMDE5MjM3MyxcbiAgICAgICAgcm9mZjogMC4wNzAyNjYzLFxuICAgICAgICByb246IDAuMDk4MDA0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwLFxuICAgICAgICBnZnA6IDAuMDE5ODA5MSxcbiAgICAgICAgcm9mZjogMC4wNjkzMjk0LFxuICAgICAgICByb246IDAuMDk2NzY4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwLFxuICAgICAgICBnZnA6IDAuMDIwMzM5OCxcbiAgICAgICAgcm9mZjogMC4wNjg0OTcyLFxuICAgICAgICByb246IDAuMDk1Njg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAsXG4gICAgICAgIGdmcDogMC4wMjA4Mjk2LFxuICAgICAgICByb2ZmOiAwLjA2Nzc1ODcsXG4gICAgICAgIHJvbjogMC4wOTQ3NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMTI3OTQsXG4gICAgICAgIHJvZmY6IDAuMDY3MTAzNixcbiAgICAgICAgcm9uOiAwLjA5MzkzMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMTY5MDksXG4gICAgICAgIHJvZmY6IDAuMDY2NTIyNSxcbiAgICAgICAgcm9uOiAwLjA5MzIzMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMjA2NjMsXG4gICAgICAgIHJvZmY6IDAuMDY2MDA2NixcbiAgICAgICAgcm9uOiAwLjA5MjYyODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMjQwNzgsXG4gICAgICAgIHJvZmY6IDAuMDY1NTQ4LFxuICAgICAgICByb246IDAuMDkyMTE1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjUwLFxuICAgICAgICBnZnA6IDAuMDIyNzE4MyxcbiAgICAgICAgcm9mZjogMC4wNjUxMzk1LFxuICAgICAgICByb246IDAuMDkxNjgwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzAwLFxuICAgICAgICBnZnA6IDAuMDIzMDAwMyxcbiAgICAgICAgcm9mZjogMC4wNjQ3NzQ2LFxuICAgICAgICByb246IDAuMDkxMzE2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzUwLFxuICAgICAgICBnZnA6IDAuMDIzMjU2NyxcbiAgICAgICAgcm9mZjogMC4wNjQ0NDc2LFxuICAgICAgICByb246IDAuMDkxMDEzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODAwLFxuICAgICAgICBnZnA6IDAuMDIzNDkwMixcbiAgICAgICAgcm9mZjogMC4wNjQxNTMzLFxuICAgICAgICByb246IDAuMDkwNzY1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODUwLFxuICAgICAgICBnZnA6IDAuMDIzNzAzMyxcbiAgICAgICAgcm9mZjogMC4wNjM4ODcxLFxuICAgICAgICByb246IDAuMDkwNTY2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTAwLFxuICAgICAgICBnZnA6IDAuMDIzODk4NixcbiAgICAgICAgcm9mZjogMC4wNjM2NDQ4LFxuICAgICAgICByb246IDAuMDkwNDEwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTUwLFxuICAgICAgICBnZnA6IDAuMDI0MDc4MyxcbiAgICAgICAgcm9mZjogMC4wNjM0MjI5LFxuICAgICAgICByb246IDAuMDkwMjkyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAwLFxuICAgICAgICBnZnA6IDAuMDI0MjQ0NixcbiAgICAgICAgcm9mZjogMC4wNjMyMTgyLFxuICAgICAgICByb246IDAuMDkwMjA4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDUwLFxuICAgICAgICBnZnA6IDAuMDI0Mzk5NSxcbiAgICAgICAgcm9mZjogMC4wNjMwMjc5LFxuICAgICAgICByb246IDAuMDkwMTU1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTAwLFxuICAgICAgICBnZnA6IDAuMDI0NTQ0NyxcbiAgICAgICAgcm9mZjogMC4wNjI4NDk1LFxuICAgICAgICByb246IDAuMDkwMTMwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTUwLFxuICAgICAgICBnZnA6IDAuMDI0NjgyLFxuICAgICAgICByb2ZmOiAwLjA2MjY4MDcsXG4gICAgICAgIHJvbjogMC4wOTAxMjkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyMDAsXG4gICAgICAgIGdmcDogMC4wMjQ4MTI3LFxuICAgICAgICByb2ZmOiAwLjA2MjUxOTgsXG4gICAgICAgIHJvbjogMC4wOTAxNTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyNTAsXG4gICAgICAgIGdmcDogMC4wMjQ5MzgzLFxuICAgICAgICByb2ZmOiAwLjA2MjM2NDksXG4gICAgICAgIHJvbjogMC4wOTAxOTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzMDAsXG4gICAgICAgIGdmcDogMC4wMjUwNixcbiAgICAgICAgcm9mZjogMC4wNjIyMTQ3LFxuICAgICAgICByb246IDAuMDkwMjUyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzUwLFxuICAgICAgICBnZnA6IDAuMDI1MTc4NyxcbiAgICAgICAgcm9mZjogMC4wNjIwNjc3LFxuICAgICAgICByb246IDAuMDkwMzMwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDAwLFxuICAgICAgICBnZnA6IDAuMDI1Mjk1NyxcbiAgICAgICAgcm9mZjogMC4wNjE5MjI5LFxuICAgICAgICByb246IDAuMDkwNDI0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDUwLFxuICAgICAgICBnZnA6IDAuMDI1NDExNixcbiAgICAgICAgcm9mZjogMC4wNjE3NzkxLFxuICAgICAgICByb246IDAuMDkwNTM0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAwLFxuICAgICAgICBnZnA6IDAuMDI1NTI3NCxcbiAgICAgICAgcm9mZjogMC4wNjE2MzU0LFxuICAgICAgICByb246IDAuMDkwNjU4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTUwLFxuICAgICAgICBnZnA6IDAuMDI1NjQzOCxcbiAgICAgICAgcm9mZjogMC4wNjE0OTExLFxuICAgICAgICByb246IDAuMDkwNzk2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjAwLFxuICAgICAgICBnZnA6IDAuMDI1NzYxNixcbiAgICAgICAgcm9mZjogMC4wNjEzNDUzLFxuICAgICAgICByb246IDAuMDkwOTQ3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjUwLFxuICAgICAgICBnZnA6IDAuMDI1ODgxMixcbiAgICAgICAgcm9mZjogMC4wNjExOTczLFxuICAgICAgICByb246IDAuMDkxMTEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3MDAsXG4gICAgICAgIGdmcDogMC4wMjYwMDM1LFxuICAgICAgICByb2ZmOiAwLjA2MTA0NjcsXG4gICAgICAgIHJvbjogMC4wOTEyODk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3NTAsXG4gICAgICAgIGdmcDogMC4wMjYxMjg4LFxuICAgICAgICByb2ZmOiAwLjA2MDg5MjcsXG4gICAgICAgIHJvbjogMC4wOTE0Nzk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4MDAsXG4gICAgICAgIGdmcDogMC4wMjYyNTc4LFxuICAgICAgICByb2ZmOiAwLjA2MDczNDgsXG4gICAgICAgIHJvbjogMC4wOTE2ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4NTAsXG4gICAgICAgIGdmcDogMC4wMjYzOTA5LFxuICAgICAgICByb2ZmOiAwLjA2MDU3MjcsXG4gICAgICAgIHJvbjogMC4wOTE4OTkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5MDAsXG4gICAgICAgIGdmcDogMC4wMjY1Mjg3LFxuICAgICAgICByb2ZmOiAwLjA2MDQwNTcsXG4gICAgICAgIHJvbjogMC4wOTIxMjg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5NTAsXG4gICAgICAgIGdmcDogMC4wMjY2NzE3LFxuICAgICAgICByb2ZmOiAwLjA2MDIzMzYsXG4gICAgICAgIHJvbjogMC4wOTIzNzE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMDAsXG4gICAgICAgIGdmcDogMC4wMjY4MjAzLFxuICAgICAgICByb2ZmOiAwLjA2MDA1NTksXG4gICAgICAgIHJvbjogMC4wOTI2Mjc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwNTAsXG4gICAgICAgIGdmcDogMC4wMjY5NzUsXG4gICAgICAgIHJvZmY6IDAuMDU5ODcyMSxcbiAgICAgICAgcm9uOiAwLjA5Mjg5ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNzEzNjMsXG4gICAgICAgIHJvZmY6IDAuMDU5NjgxOSxcbiAgICAgICAgcm9uOiAwLjA5MzE4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNzMwNDcsXG4gICAgICAgIHJvZmY6IDAuMDU5NDg1LFxuICAgICAgICByb246IDAuMDkzNDgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjAwLFxuICAgICAgICBnZnA6IDAuMDI3NDgwOCxcbiAgICAgICAgcm9mZjogMC4wNTkyODEsXG4gICAgICAgIHJvbjogMC4wOTM3OTkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyNTAsXG4gICAgICAgIGdmcDogMC4wMjc2NjUsXG4gICAgICAgIHJvZmY6IDAuMDU5MDY5NSxcbiAgICAgICAgcm9uOiAwLjA5NDEzMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNzg1NzgsXG4gICAgICAgIHJvZmY6IDAuMDU4ODUwMyxcbiAgICAgICAgcm9uOiAwLjA5NDQ3OTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAyODA1OTksXG4gICAgICAgIHJvZmY6IDAuMDU4NjIyOSxcbiAgICAgICAgcm9uOiAwLjA5NDg0NjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAyODI3MTcsXG4gICAgICAgIHJvZmY6IDAuMDU4Mzg3LFxuICAgICAgICByb246IDAuMDk1MjMxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDUwLFxuICAgICAgICBnZnA6IDAuMDI4NDk0LFxuICAgICAgICByb2ZmOiAwLjA1ODE0MjMsXG4gICAgICAgIHJvbjogMC4wOTU2MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAyODcyNzMsXG4gICAgICAgIHJvZmY6IDAuMDU3ODg4NSxcbiAgICAgICAgcm9uOiAwLjA5NjA2MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAyODk3MjQsXG4gICAgICAgIHJvZmY6IDAuMDU3NjI1MixcbiAgICAgICAgcm9uOiAwLjA5NjUwNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAyOTIyOTksXG4gICAgICAgIHJvZmY6IDAuMDU3MzUyMixcbiAgICAgICAgcm9uOiAwLjA5Njk3NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAyOTUwMDUsXG4gICAgICAgIHJvZmY6IDAuMDU3MDY4OSxcbiAgICAgICAgcm9uOiAwLjA5NzQ2NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAyOTc4NTIsXG4gICAgICAgIHJvZmY6IDAuMDU2Nzc1MyxcbiAgICAgICAgcm9uOiAwLjA5Nzk4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzUwLFxuICAgICAgICBnZnA6IDAuMDMwMDg0NyxcbiAgICAgICAgcm9mZjogMC4wNTY0NzA4LFxuICAgICAgICByb246IDAuMDk4NTI2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODAwLFxuICAgICAgICBnZnA6IDAuMDMwMzk5OSxcbiAgICAgICAgcm9mZjogMC4wNTYxNTUyLFxuICAgICAgICByb246IDAuMDk5MDk3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODUwLFxuICAgICAgICBnZnA6IDAuMDMwNzMxOSxcbiAgICAgICAgcm9mZjogMC4wNTU4MjgyLFxuICAgICAgICByb246IDAuMDk5Njk2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTAwLFxuICAgICAgICBnZnA6IDAuMDMxMDgxNixcbiAgICAgICAgcm9mZjogMC4wNTU0ODk0LFxuICAgICAgICByb246IDAuMTAwMzI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5NTAsXG4gICAgICAgIGdmcDogMC4wMzE0NTAyLFxuICAgICAgICByb2ZmOiAwLjA1NTEzODYsXG4gICAgICAgIHJvbjogMC4xMDA5ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMTgzODcsXG4gICAgICAgIHJvZmY6IDAuMDU0Nzc1NCxcbiAgICAgICAgcm9uOiAwLjEwMTY4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDUwLFxuICAgICAgICBnZnA6IDAuMDMyMjQ4NixcbiAgICAgICAgcm9mZjogMC4wNTQzOTk1LFxuICAgICAgICByb246IDAuMTAyNDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxMDAsXG4gICAgICAgIGdmcDogMC4wMzI2ODEsXG4gICAgICAgIHJvZmY6IDAuMDU0MDEwNSxcbiAgICAgICAgcm9uOiAwLjEwMzE4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTUwLFxuICAgICAgICBnZnA6IDAuMDMzMTM3NSxcbiAgICAgICAgcm9mZjogMC4wNTM2MDgzLFxuICAgICAgICByb246IDAuMTAzOTk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyMDAsXG4gICAgICAgIGdmcDogMC4wMzM2MTk3LFxuICAgICAgICByb2ZmOiAwLjA1MzE5MjYsXG4gICAgICAgIHJvbjogMC4xMDQ4NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAzNDEyOTEsXG4gICAgICAgIHJvZmY6IDAuMDUyNzYzLFxuICAgICAgICByb246IDAuMTA1NzUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzMDAsXG4gICAgICAgIGdmcDogMC4wMzQ2Njc3LFxuICAgICAgICByb2ZmOiAwLjA1MjMxOTIsXG4gICAgICAgIHJvbjogMC4xMDY2OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAzNTIzNzIsXG4gICAgICAgIHJvZmY6IDAuMDUxODYxMixcbiAgICAgICAgcm9uOiAwLjEwNzY5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDAwLFxuICAgICAgICBnZnA6IDAuMDM1ODM5OCxcbiAgICAgICAgcm9mZjogMC4wNTEzODg2LFxuICAgICAgICByb246IDAuMTA4NzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0NTAsXG4gICAgICAgIGdmcDogMC4wMzY0Nzc3LFxuICAgICAgICByb2ZmOiAwLjA1MDkwMTIsXG4gICAgICAgIHJvbjogMC4xMDk4NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAzNzE1MzQsXG4gICAgICAgIHJvZmY6IDAuMDUwMzk4OSxcbiAgICAgICAgcm9uOiAwLjExMTAyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTUwLFxuICAgICAgICBnZnA6IDAuMDM3ODY5MyxcbiAgICAgICAgcm9mZjogMC4wNDk4ODE0LFxuICAgICAgICByb246IDAuMTEyMjU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2MDAsXG4gICAgICAgIGdmcDogMC4wMzg2Mjg0LFxuICAgICAgICByb2ZmOiAwLjA0OTM0ODcsXG4gICAgICAgIHJvbjogMC4xMTM1NTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAzOTQzMzYsXG4gICAgICAgIHJvZmY6IDAuMDQ4ODAwNyxcbiAgICAgICAgcm9uOiAwLjExNDkyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzAwLFxuICAgICAgICBnZnA6IDAuMDQwMjg4MixcbiAgICAgICAgcm9mZjogMC4wNDgyMzcyLFxuICAgICAgICByb246IDAuMTE2MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjA0MTE5NTgsXG4gICAgICAgIHJvZmY6IDAuMDQ3NjU4MyxcbiAgICAgICAgcm9uOiAwLjExNzkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODAwLFxuICAgICAgICBnZnA6IDAuMDQyMTYwMSxcbiAgICAgICAgcm9mZjogMC4wNDcwNjQsXG4gICAgICAgIHJvbjogMC4xMTk1MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjA0MzE4NTIsXG4gICAgICAgIHJvZmY6IDAuMDQ2NDU0MixcbiAgICAgICAgcm9uOiAwLjEyMTI0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTAwLFxuICAgICAgICBnZnA6IDAuMDQ0Mjc1NixcbiAgICAgICAgcm9mZjogMC4wNDU4MjkyLFxuICAgICAgICByb246IDAuMTIzMDYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5NTAsXG4gICAgICAgIGdmcDogMC4wNDU0MzYyLFxuICAgICAgICByb2ZmOiAwLjA0NTE4OSxcbiAgICAgICAgcm9uOiAwLjEyNDk4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAwLFxuICAgICAgICBnZnA6IDAuMDQ2NjcyMSxcbiAgICAgICAgcm9mZjogMC4wNDQ1MzM4LFxuICAgICAgICByb246IDAuMTI3MDE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwNTAsXG4gICAgICAgIGdmcDogMC4wNDc5ODksXG4gICAgICAgIHJvZmY6IDAuMDQzODYzOSxcbiAgICAgICAgcm9uOiAwLjEyOTE2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTAwLFxuICAgICAgICBnZnA6IDAuMDQ5MzkyOSxcbiAgICAgICAgcm9mZjogMC4wNDMxNzk1LFxuICAgICAgICByb246IDAuMTMxNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjA1MDg5MDYsXG4gICAgICAgIHJvZmY6IDAuMDQyNDgxMSxcbiAgICAgICAgcm9uOiAwLjEzMzg2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjAwLFxuICAgICAgICBnZnA6IDAuMDUyNDg5LFxuICAgICAgICByb2ZmOiAwLjA0MTc2OSxcbiAgICAgICAgcm9uOiAwLjEzNjQzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjUwLFxuICAgICAgICBnZnA6IDAuMDU0MTk2LFxuICAgICAgICByb2ZmOiAwLjA0MTA0MzgsXG4gICAgICAgIHJvbjogMC4xMzkxNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjA1NjAxOTgsXG4gICAgICAgIHJvZmY6IDAuMDQwMzA2LFxuICAgICAgICByb246IDAuMTQyMDQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzNTAsXG4gICAgICAgIGdmcDogMC4wNTc5Njk1LFxuICAgICAgICByb2ZmOiAwLjAzOTU1NjEsXG4gICAgICAgIHJvbjogMC4xNDUxMTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjA2MDA1NDcsXG4gICAgICAgIHJvZmY6IDAuMDM4Nzk1LFxuICAgICAgICByb246IDAuMTQ4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjA2MjI4NjEsXG4gICAgICAgIHJvZmY6IDAuMDM4MDIzMixcbiAgICAgICAgcm9uOiAwLjE1MTg0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAwLFxuICAgICAgICBnZnA6IDAuMDY0Njc0OCxcbiAgICAgICAgcm9mZjogMC4wMzcyNDE3LFxuICAgICAgICByb246IDAuMTU1NTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1NTAsXG4gICAgICAgIGdmcDogMC4wNjcyMzMxLFxuICAgICAgICByb2ZmOiAwLjAzNjQ1MTQsXG4gICAgICAgIHJvbjogMC4xNTk0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjAwLFxuICAgICAgICBnZnA6IDAuMDY5OTczOSxcbiAgICAgICAgcm9mZjogMC4wMzU2NTMsXG4gICAgICAgIHJvbjogMC4xNjM2MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjA3MjkxMTQsXG4gICAgICAgIHJvZmY6IDAuMDM0ODQ3OCxcbiAgICAgICAgcm9uOiAwLjE2ODA1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzAwLFxuICAgICAgICBnZnA6IDAuMDc2MDYwNSxcbiAgICAgICAgcm9mZjogMC4wMzQwMzY2LFxuICAgICAgICByb246IDAuMTcyNzczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3NTAsXG4gICAgICAgIGdmcDogMC4wNzk0MzcyLFxuICAgICAgICByb2ZmOiAwLjAzMzIyMDcsXG4gICAgICAgIHJvbjogMC4xNzc3OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjA4MzA1ODYsXG4gICAgICAgIHJvZmY6IDAuMDMyNDAxMixcbiAgICAgICAgcm9uOiAwLjE4MzE0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODUwLFxuICAgICAgICBnZnA6IDAuMDg2OTQzLFxuICAgICAgICByb2ZmOiAwLjAzMTU3OTIsXG4gICAgICAgIHJvbjogMC4xODg4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjA5MTEwOTUsXG4gICAgICAgIHJvZmY6IDAuMDMwNzU2LFxuICAgICAgICByb246IDAuMTk0ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5NTAsXG4gICAgICAgIGdmcDogMC4wOTU1Nzg0LFxuICAgICAgICByb2ZmOiAwLjAyOTkzMjksXG4gICAgICAgIHJvbjogMC4yMDEzNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjEwMDM3MSxcbiAgICAgICAgcm9mZjogMC4wMjkxMTExLFxuICAgICAgICByb246IDAuMjA4MjAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwNTAsXG4gICAgICAgIGdmcDogMC4xMDU1MSxcbiAgICAgICAgcm9mZjogMC4wMjgyOTIsXG4gICAgICAgIHJvbjogMC4yMTU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxMDAsXG4gICAgICAgIGdmcDogMC4xMTEwMTksXG4gICAgICAgIHJvZmY6IDAuMDI3NDc2NyxcbiAgICAgICAgcm9uOiAwLjIyMzI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxNTAsXG4gICAgICAgIGdmcDogMC4xMTY5MjEsXG4gICAgICAgIHJvZmY6IDAuMDI2NjY2NSxcbiAgICAgICAgcm9uOiAwLjIzMTUwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjAwLFxuICAgICAgICBnZnA6IDAuMTIzMjQxLFxuICAgICAgICByb2ZmOiAwLjAyNTg2MjgsXG4gICAgICAgIHJvbjogMC4yNDAyNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjEzMDAwNSxcbiAgICAgICAgcm9mZjogMC4wMjUwNjY4LFxuICAgICAgICByb246IDAuMjQ5NTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczMDAsXG4gICAgICAgIGdmcDogMC4xMzcyMzgsXG4gICAgICAgIHJvZmY6IDAuMDI0Mjc5NSxcbiAgICAgICAgcm9uOiAwLjI1OTM5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzUwLFxuICAgICAgICBnZnA6IDAuMTQ0OTY3LFxuICAgICAgICByb2ZmOiAwLjAyMzUwMjIsXG4gICAgICAgIHJvbjogMC4yNjk4MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjE1MzIxNSxcbiAgICAgICAgcm9mZjogMC4wMjI3MzU5LFxuICAgICAgICByb246IDAuMjgwODQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0NTAsXG4gICAgICAgIGdmcDogMC4xNjIwMDksXG4gICAgICAgIHJvZmY6IDAuMDIxOTgxNyxcbiAgICAgICAgcm9uOiAwLjI5MjQ4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAwLFxuICAgICAgICBnZnA6IDAuMTcxMzcxLFxuICAgICAgICByb2ZmOiAwLjAyMTI0MDUsXG4gICAgICAgIHJvbjogMC4zMDQ3NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjE4MTMyNSxcbiAgICAgICAgcm9mZjogMC4wMjA1MTMyLFxuICAgICAgICByb246IDAuMzE3NjM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2MDAsXG4gICAgICAgIGdmcDogMC4xOTE4ODksXG4gICAgICAgIHJvZmY6IDAuMDE5ODAwNixcbiAgICAgICAgcm9uOiAwLjMzMTE2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjUwLFxuICAgICAgICBnZnA6IDAuMjAzMDgzLFxuICAgICAgICByb2ZmOiAwLjAxOTEwMzMsXG4gICAgICAgIHJvbjogMC4zNDUzMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjIxNDkyMSxcbiAgICAgICAgcm9mZjogMC4wMTg0MjIxLFxuICAgICAgICByb246IDAuMzYwMDg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3NTAsXG4gICAgICAgIGdmcDogMC4yMjc0MTQsXG4gICAgICAgIHJvZmY6IDAuMDE3NzU3NCxcbiAgICAgICAgcm9uOiAwLjM3NTQ0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODAwLFxuICAgICAgICBnZnA6IDAuMjQwNTY4LFxuICAgICAgICByb2ZmOiAwLjAxNzEwOTcsXG4gICAgICAgIHJvbjogMC4zOTEzNTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjI1NDM4NyxcbiAgICAgICAgcm9mZjogMC4wMTY0NzkzLFxuICAgICAgICByb246IDAuNDA3Nzg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5MDAsXG4gICAgICAgIGdmcDogMC4yNjg4NjYsXG4gICAgICAgIHJvZmY6IDAuMDE1ODY2NyxcbiAgICAgICAgcm9uOiAwLjQyNDY2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTUwLFxuICAgICAgICBnZnA6IDAuMjgzOTk3LFxuICAgICAgICByb2ZmOiAwLjAxNTI3MTksXG4gICAgICAgIHJvbjogMC40NDE5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwMCxcbiAgICAgICAgZ2ZwOiAwLjI5OTc2NSxcbiAgICAgICAgcm9mZjogMC4wMTQ2OTUxLFxuICAgICAgICByb246IDAuNDU5NDkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwNTAsXG4gICAgICAgIGdmcDogMC4zMTYxNDYsXG4gICAgICAgIHJvZmY6IDAuMDE0MTM2MyxcbiAgICAgICAgcm9uOiAwLjQ3NzI1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTAwLFxuICAgICAgICBnZnA6IDAuMzMzMTEzLFxuICAgICAgICByb2ZmOiAwLjAxMzU5NTYsXG4gICAgICAgIHJvbjogMC40OTUxMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODE1MCxcbiAgICAgICAgZ2ZwOiAwLjM1MDYzLFxuICAgICAgICByb2ZmOiAwLjAxMzA3MjksXG4gICAgICAgIHJvbjogMC41MTI5NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODIwMCxcbiAgICAgICAgZ2ZwOiAwLjM2ODY1NCxcbiAgICAgICAgcm9mZjogMC4wMTI1NjgsXG4gICAgICAgIHJvbjogMC41MzA2MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODI1MCxcbiAgICAgICAgZ2ZwOiAwLjM4NzEzNixcbiAgICAgICAgcm9mZjogMC4wMTIwODA4LFxuICAgICAgICByb246IDAuNTQ4MDM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzMDAsXG4gICAgICAgIGdmcDogMC40MDYwMjEsXG4gICAgICAgIHJvZmY6IDAuMDExNjExMSxcbiAgICAgICAgcm9uOiAwLjU2NTAzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzUwLFxuICAgICAgICBnZnA6IDAuNDI1MjQ4LFxuICAgICAgICByb2ZmOiAwLjAxMTE1ODUsXG4gICAgICAgIHJvbjogMC41ODE1MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQwMCxcbiAgICAgICAgZ2ZwOiAwLjQ0NDc1MixcbiAgICAgICAgcm9mZjogMC4wMTA3MjI4LFxuICAgICAgICByb246IDAuNTk3MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjQ2NDQ2NCxcbiAgICAgICAgcm9mZjogMC4wMTAzMDM2LFxuICAgICAgICByb246IDAuNjEyNDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwMCxcbiAgICAgICAgZ2ZwOiAwLjQ4NDMxLFxuICAgICAgICByb2ZmOiAwLjAwOTkwMDU0LFxuICAgICAgICByb246IDAuNjI2Njk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1NTAsXG4gICAgICAgIGdmcDogMC41MDQyMTgsXG4gICAgICAgIHJvZmY6IDAuMDA5NTEzMjYsXG4gICAgICAgIHJvbjogMC42NDAxMDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODYwMCxcbiAgICAgICAgZ2ZwOiAwLjUyNDExNCxcbiAgICAgICAgcm9mZjogMC4wMDkxNDEzMyxcbiAgICAgICAgcm9uOiAwLjY1MjYyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjUwLFxuICAgICAgICBnZnA6IDAuNTQzOTIzLFxuICAgICAgICByb2ZmOiAwLjAwODc4NDMsXG4gICAgICAgIHJvbjogMC42NjQyNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODcwMCxcbiAgICAgICAgZ2ZwOiAwLjU2MzU3NSxcbiAgICAgICAgcm9mZjogMC4wMDg0NDE3MyxcbiAgICAgICAgcm9uOiAwLjY3NDk3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzUwLFxuICAgICAgICBnZnA6IDAuNTgzMDAxLFxuICAgICAgICByb2ZmOiAwLjAwODExMzE2LFxuICAgICAgICByb246IDAuNjg0ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODgwMCxcbiAgICAgICAgZ2ZwOiAwLjYwMjEzNixcbiAgICAgICAgcm9mZjogMC4wMDc3OTgxMixcbiAgICAgICAgcm9uOiAwLjY5MzkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODUwLFxuICAgICAgICBnZnA6IDAuNjIwOTE5LFxuICAgICAgICByb2ZmOiAwLjAwNzQ5NjE1LFxuICAgICAgICByb246IDAuNzAyMjIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5MDAsXG4gICAgICAgIGdmcDogMC42MzkyOTcsXG4gICAgICAgIHJvZmY6IDAuMDA3MjA2NzksXG4gICAgICAgIHJvbjogMC43MDk4MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODk1MCxcbiAgICAgICAgZ2ZwOiAwLjY1NzIyMSxcbiAgICAgICAgcm9mZjogMC4wMDY5Mjk1NyxcbiAgICAgICAgcm9uOiAwLjcxNjc4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAwLFxuICAgICAgICBnZnA6IDAuNjc0NjQ3LFxuICAgICAgICByb2ZmOiAwLjAwNjY2NDAzLFxuICAgICAgICByb246IDAuNzIzMTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwNTAsXG4gICAgICAgIGdmcDogMC42OTE1MzksXG4gICAgICAgIHJvZmY6IDAuMDA2NDA5NzMsXG4gICAgICAgIHJvbjogMC43MjkwMDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjcwNzg2NixcbiAgICAgICAgcm9mZjogMC4wMDYxNjYyMyxcbiAgICAgICAgcm9uOiAwLjczNDM1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTUwLFxuICAgICAgICBnZnA6IDAuNzIzNjA0LFxuICAgICAgICByb2ZmOiAwLjAwNTkzMzExLFxuICAgICAgICByb246IDAuNzM5MjcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyMDAsXG4gICAgICAgIGdmcDogMC43Mzg3MzYsXG4gICAgICAgIHJvZmY6IDAuMDA1NzA5OTUsXG4gICAgICAgIHJvbjogMC43NDM3ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjc1MzI0OSxcbiAgICAgICAgcm9mZjogMC4wMDU0OTYzNCxcbiAgICAgICAgcm9uOiAwLjc0NzkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzAwLFxuICAgICAgICBnZnA6IDAuNzY3MTM1LFxuICAgICAgICByb2ZmOiAwLjAwNTI5MTkxLFxuICAgICAgICByb246IDAuNzUxNzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjc4MDM5MixcbiAgICAgICAgcm9mZjogMC4wMDUwOTYyNixcbiAgICAgICAgcm9uOiAwLjc1NTI2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDAwLFxuICAgICAgICBnZnA6IDAuNzkzMDIzLFxuICAgICAgICByb2ZmOiAwLjAwNDkwOTA0LFxuICAgICAgICByb246IDAuNzU4NDk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0NTAsXG4gICAgICAgIGdmcDogMC44MDUwMzQsXG4gICAgICAgIHJvZmY6IDAuMDA0NzI5OSxcbiAgICAgICAgcm9uOiAwLjc2MTQ3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAwLFxuICAgICAgICBnZnA6IDAuODE2NDM0LFxuICAgICAgICByb2ZmOiAwLjAwNDU1ODUsXG4gICAgICAgIHJvbjogMC43NjQyMjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjgyNzIzNSxcbiAgICAgICAgcm9mZjogMC4wMDQzOTQ1MixcbiAgICAgICAgcm9uOiAwLjc2Njc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2MDAsXG4gICAgICAgIGdmcDogMC44Mzc0NTQsXG4gICAgICAgIHJvZmY6IDAuMDA0MjM3NjQsXG4gICAgICAgIHJvbjogMC43NjkwOThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjg0NzEwOCxcbiAgICAgICAgcm9mZjogMC4wMDQwODc1NixcbiAgICAgICAgcm9uOiAwLjc3MTI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzAwLFxuICAgICAgICBnZnA6IDAuODU2MjE1LFxuICAgICAgICByb2ZmOiAwLjAwMzk0NCxcbiAgICAgICAgcm9uOiAwLjc3MzI0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzUwLFxuICAgICAgICBnZnA6IDAuODY0Nzk1LFxuICAgICAgICByb2ZmOiAwLjAwMzgwNjY4LFxuICAgICAgICByb246IDAuNzc1MDgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4MDAsXG4gICAgICAgIGdmcDogMC44NzI4NzEsXG4gICAgICAgIHJvZmY6IDAuMDAzNjc1MzQsXG4gICAgICAgIHJvbjogMC43NzY3ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjg4MDQ2MixcbiAgICAgICAgcm9mZjogMC4wMDM1NDk3MSxcbiAgICAgICAgcm9uOiAwLjc3ODM0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTAwLFxuICAgICAgICBnZnA6IDAuODg3NTkzLFxuICAgICAgICByb2ZmOiAwLjAwMzQyOTU2LFxuICAgICAgICByb246IDAuNzc5Nzk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5NTAsXG4gICAgICAgIGdmcDogMC44OTQyODUsXG4gICAgICAgIHJvZmY6IDAuMDAzMzE0NjQsXG4gICAgICAgIHJvbjogMC43ODExMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMDAsXG4gICAgICAgIGdmcDogMC45MDA1NixcbiAgICAgICAgcm9mZjogMC4wMDMyMDQ3NCxcbiAgICAgICAgcm9uOiAwLjc4MjM3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjkwNjQ0MSxcbiAgICAgICAgcm9mZjogMC4wMDMwOTk2NCxcbiAgICAgICAgcm9uOiAwLjc4MzUyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjkxMTk0OCxcbiAgICAgICAgcm9mZjogMC4wMDI5OTkxNCxcbiAgICAgICAgcm9uOiAwLjc4NDU4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDE1MCxcbiAgICAgICAgZ2ZwOiAwLjkxNzEwMyxcbiAgICAgICAgcm9mZjogMC4wMDI5MDMwMixcbiAgICAgICAgcm9uOiAwLjc4NTU2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjkyMTkyNixcbiAgICAgICAgcm9mZjogMC4wMDI4MTExMSxcbiAgICAgICAgcm9uOiAwLjc4NjQ3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjkyNjQzNyxcbiAgICAgICAgcm9mZjogMC4wMDI3MjMyMyxcbiAgICAgICAgcm9uOiAwLjc4NzMxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjkzMDY1NCxcbiAgICAgICAgcm9mZjogMC4wMDI2MzkxOSxcbiAgICAgICAgcm9uOiAwLjc4ODA5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjkzNDU5NixcbiAgICAgICAgcm9mZjogMC4wMDI1NTg4MyxcbiAgICAgICAgcm9uOiAwLjc4ODgxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjkzODI3OSxcbiAgICAgICAgcm9mZjogMC4wMDI0ODE5OSxcbiAgICAgICAgcm9uOiAwLjc4OTQ4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk0MTcyMSxcbiAgICAgICAgcm9mZjogMC4wMDI0MDg1MixcbiAgICAgICAgcm9uOiAwLjc5MDEwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk0NDkzNixcbiAgICAgICAgcm9mZjogMC4wMDIzMzgyOCxcbiAgICAgICAgcm9uOiAwLjc5MDY4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk0Nzk0LFxuICAgICAgICByb2ZmOiAwLjAwMjI3MTEyLFxuICAgICAgICByb246IDAuNzkxMjE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjAwLFxuICAgICAgICBnZnA6IDAuOTUwNzQ1LFxuICAgICAgICByb2ZmOiAwLjAwMjIwNjksXG4gICAgICAgIHJvbjogMC43OTE3MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2NTAsXG4gICAgICAgIGdmcDogMC45NTMzNjYsXG4gICAgICAgIHJvZmY6IDAuMDAyMTQ1NTEsXG4gICAgICAgIHJvbjogMC43OTIxNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3MDAsXG4gICAgICAgIGdmcDogMC45NTU4MTUsXG4gICAgICAgIHJvZmY6IDAuMDAyMDg2ODEsXG4gICAgICAgIHJvbjogMC43OTI2MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3NTAsXG4gICAgICAgIGdmcDogMC45NTgxMDMsXG4gICAgICAgIHJvZmY6IDAuMDAyMDMwNjksXG4gICAgICAgIHJvbjogMC43OTMwMDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4MDAsXG4gICAgICAgIGdmcDogMC45NjAyNCxcbiAgICAgICAgcm9mZjogMC4wMDE5NzcwNCxcbiAgICAgICAgcm9uOiAwLjc5MzM3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk2MjIzOCxcbiAgICAgICAgcm9mZjogMC4wMDE5MjU3NSxcbiAgICAgICAgcm9uOiAwLjc5MzcyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk2NDEwNSxcbiAgICAgICAgcm9mZjogMC4wMDE4NzY3MSxcbiAgICAgICAgcm9uOiAwLjc5NDA0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk2NTg1MSxcbiAgICAgICAgcm9mZjogMC4wMDE4Mjk4MyxcbiAgICAgICAgcm9uOiAwLjc5NDM0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk2NzQ4NCxcbiAgICAgICAgcm9mZjogMC4wMDE3ODUwMSxcbiAgICAgICAgcm9uOiAwLjc5NDYyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk2OTAxMSxcbiAgICAgICAgcm9mZjogMC4wMDE3NDIxNixcbiAgICAgICAgcm9uOiAwLjc5NDg4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MDQ0LFxuICAgICAgICByb2ZmOiAwLjAwMTcwMTIxLFxuICAgICAgICByb246IDAuNzk1MTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTUwLFxuICAgICAgICBnZnA6IDAuOTcxNzc3LFxuICAgICAgICByb2ZmOiAwLjAwMTY2MjA1LFxuICAgICAgICByb246IDAuNzk1MzU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjAwLFxuICAgICAgICBnZnA6IDAuOTczMDI5LFxuICAgICAgICByb2ZmOiAwLjAwMTYyNDYyLFxuICAgICAgICByb246IDAuNzk1NTY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjUwLFxuICAgICAgICBnZnA6IDAuOTc0MjAxLFxuICAgICAgICByb2ZmOiAwLjAwMTU4ODgzLFxuICAgICAgICByb246IDAuNzk1NzY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzAwLFxuICAgICAgICBnZnA6IDAuOTc1Mjk5LFxuICAgICAgICByb2ZmOiAwLjAwMTU1NDYzLFxuICAgICAgICByb246IDAuNzk1OTQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzUwLFxuICAgICAgICBnZnA6IDAuOTc2MzI4LFxuICAgICAgICByb2ZmOiAwLjAwMTUyMTkzLFxuICAgICAgICByb246IDAuNzk2MTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDAwLFxuICAgICAgICBnZnA6IDAuOTc3MjkzLFxuICAgICAgICByb2ZmOiAwLjAwMTQ5MDY3LFxuICAgICAgICByb246IDAuNzk2Mjg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDUwLFxuICAgICAgICBnZnA6IDAuOTc4MTk4LFxuICAgICAgICByb2ZmOiAwLjAwMTQ2MDc4LFxuICAgICAgICByb246IDAuNzk2NDM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAwLFxuICAgICAgICBnZnA6IDAuOTc5MDQ3LFxuICAgICAgICByb2ZmOiAwLjAwMTQzMjIyLFxuICAgICAgICByb246IDAuNzk2NTc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTUwLFxuICAgICAgICBnZnA6IDAuOTc5ODQ0LFxuICAgICAgICByb2ZmOiAwLjAwMTQwNDkyLFxuICAgICAgICByb246IDAuNzk2NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2MDAsXG4gICAgICAgIGdmcDogMC45ODA1OTIsXG4gICAgICAgIHJvZmY6IDAuMDAxMzc4ODIsXG4gICAgICAgIHJvbjogMC43OTY4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2NTAsXG4gICAgICAgIGdmcDogMC45ODEyOTQsXG4gICAgICAgIHJvZmY6IDAuMDAxMzUzODcsXG4gICAgICAgIHJvbjogMC43OTY5NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3MDAsXG4gICAgICAgIGdmcDogMC45ODE5NTQsXG4gICAgICAgIHJvZmY6IDAuMDAxMzMwMDIsXG4gICAgICAgIHJvbjogMC43OTcwNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3NTAsXG4gICAgICAgIGdmcDogMC45ODI1NzUsXG4gICAgICAgIHJvZmY6IDAuMDAxMzA3MjIsXG4gICAgICAgIHJvbjogMC43OTcxNjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4MDAsXG4gICAgICAgIGdmcDogMC45ODMxNTgsXG4gICAgICAgIHJvZmY6IDAuMDAxMjg1NDMsXG4gICAgICAgIHJvbjogMC43OTcyNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4NTAsXG4gICAgICAgIGdmcDogMC45ODM3MDcsXG4gICAgICAgIHJvZmY6IDAuMDAxMjY0NixcbiAgICAgICAgcm9uOiAwLjc5NzM1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NDIyNCxcbiAgICAgICAgcm9mZjogMC4wMDEyNDQ2OSxcbiAgICAgICAgcm9uOiAwLjc5NzQzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NDcxLFxuICAgICAgICByb2ZmOiAwLjAwMTIyNTY1LFxuICAgICAgICByb246IDAuNzk3NTE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAwLFxuICAgICAgICBnZnA6IDAuOTg1MTY4LFxuICAgICAgICByb2ZmOiAwLjAwMTIwNzQ2LFxuICAgICAgICByb246IDAuNzk3NTkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDUwLFxuICAgICAgICBnZnA6IDAuOTg1NixcbiAgICAgICAgcm9mZjogMC4wMDExOTAwNyxcbiAgICAgICAgcm9uOiAwLjc5NzY2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NjAwNyxcbiAgICAgICAgcm9mZjogMC4wMDExNzM0NSxcbiAgICAgICAgcm9uOiAwLjc5NzczMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NjM5MSxcbiAgICAgICAgcm9mZjogMC4wMDExNTc1NixcbiAgICAgICAgcm9uOiAwLjc5Nzc5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk4Njc1MyxcbiAgICAgICAgcm9mZjogMC4wMDExNDIzOCxcbiAgICAgICAgcm9uOiAwLjc5Nzg1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NzA5NSxcbiAgICAgICAgcm9mZjogMC4wMDExMjc4NixcbiAgICAgICAgcm9uOiAwLjc5NzkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzAwLFxuICAgICAgICBnZnA6IDAuOTg3NDE3LFxuICAgICAgICByb2ZmOiAwLjAwMTExMzk4LFxuICAgICAgICByb246IDAuNzk3OTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzUwLFxuICAgICAgICBnZnA6IDAuOTg3NzIyLFxuICAgICAgICByb2ZmOiAwLjAwMTEwMDcyLFxuICAgICAgICByb246IDAuNzk4MDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDAwLFxuICAgICAgICBnZnA6IDAuOTg4MDEsXG4gICAgICAgIHJvZmY6IDAuMDAxMDg4MDQsXG4gICAgICAgIHJvbjogMC43OTgwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk4ODI4MixcbiAgICAgICAgcm9mZjogMC4wMDEwNzU5MyxcbiAgICAgICAgcm9uOiAwLjc5ODEwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk4ODUzOSxcbiAgICAgICAgcm9mZjogMC4wMDEwNjQzNSxcbiAgICAgICAgcm9uOiAwLjc5ODE0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk4ODc4MixcbiAgICAgICAgcm9mZjogMC4wMDEwNTMyOCxcbiAgICAgICAgcm9uOiAwLjc5ODE4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTAxMixcbiAgICAgICAgcm9mZjogMC4wMDEwNDI2OSxcbiAgICAgICAgcm9uOiAwLjc5ODIyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk4OTIzLFxuICAgICAgICByb2ZmOiAwLjAwMTAzMjU4LFxuICAgICAgICByb246IDAuNzk4MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3MDAsXG4gICAgICAgIGdmcDogMC45ODk0MzcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDIyOTEsXG4gICAgICAgIHJvbjogMC43OTgyOTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3NTAsXG4gICAgICAgIGdmcDogMC45ODk2MzIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDEzNjcsXG4gICAgICAgIHJvbjogMC43OTgzMjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4MDAsXG4gICAgICAgIGdmcDogMC45ODk4MTcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDA0ODQsXG4gICAgICAgIHJvbjogMC43OTgzNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4NTAsXG4gICAgICAgIGdmcDogMC45ODk5OTIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTk2NDAxLFxuICAgICAgICByb246IDAuNzk4Mzg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTAwLFxuICAgICAgICBnZnA6IDAuOTkwMTU4LFxuICAgICAgICByb2ZmOiAwLjAwMDk4ODMzMyxcbiAgICAgICAgcm9uOiAwLjc5ODQxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDMxNixcbiAgICAgICAgcm9mZjogMC4wMDA5ODA2MjEsXG4gICAgICAgIHJvbjogMC43OTg0MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMDAsXG4gICAgICAgIGdmcDogMC45OTA0NjYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTczMjQ5LFxuICAgICAgICByb246IDAuNzk4NDYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDUwLFxuICAgICAgICBnZnA6IDAuOTkwNjA3LFxuICAgICAgICByb2ZmOiAwLjAwMDk2NjIwMyxcbiAgICAgICAgcm9uOiAwLjc5ODQ4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDc0MixcbiAgICAgICAgcm9mZjogMC4wMDA5NTk0NjksXG4gICAgICAgIHJvbjogMC43OTg1MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxNTAsXG4gICAgICAgIGdmcDogMC45OTA4NyxcbiAgICAgICAgcm9mZjogMC4wMDA5NTMwMzIsXG4gICAgICAgIHJvbjogMC43OTg1MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyMDAsXG4gICAgICAgIGdmcDogMC45OTA5OTEsXG4gICAgICAgIHJvZmY6IDAuMDAwOTQ2ODc5LFxuICAgICAgICByb246IDAuNzk4NTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjUwLFxuICAgICAgICBnZnA6IDAuOTkxMTA2LFxuICAgICAgICByb2ZmOiAwLjAwMDk0MDk5OSxcbiAgICAgICAgcm9uOiAwLjc5ODU2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTIxNixcbiAgICAgICAgcm9mZjogMC4wMDA5MzUzNzgsXG4gICAgICAgIHJvbjogMC43OTg1ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzNTAsXG4gICAgICAgIGdmcDogMC45OTEzMixcbiAgICAgICAgcm9mZjogMC4wMDA5MzAwMDYsXG4gICAgICAgIHJvbjogMC43OTg2MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0MDAsXG4gICAgICAgIGdmcDogMC45OTE0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwOTI0ODcxLFxuICAgICAgICByb246IDAuNzk4NjE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDUwLFxuICAgICAgICBnZnA6IDAuOTkxNTEzLFxuICAgICAgICByb2ZmOiAwLjAwMDkxOTk2NCxcbiAgICAgICAgcm9uOiAwLjc5ODYzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTYwMixcbiAgICAgICAgcm9mZjogMC4wMDA5MTUyNzMsXG4gICAgICAgIHJvbjogMC43OTg2NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1NTAsXG4gICAgICAgIGdmcDogMC45OTE2ODcsXG4gICAgICAgIHJvZmY6IDAuMDAwOTEwNzg5LFxuICAgICAgICByb246IDAuNzk4NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2MDAsXG4gICAgICAgIGdmcDogMC45OTE3NjgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTA2NTA0LFxuICAgICAgICByb246IDAuNzk4NjczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjUwLFxuICAgICAgICBnZnA6IDAuOTkxODQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDkwMjQwOCxcbiAgICAgICAgcm9uOiAwLjc5ODY4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTkxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4OTg0OTMsXG4gICAgICAgIHJvbjogMC43OTg2OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3NTAsXG4gICAgICAgIGdmcDogMC45OTE5ODcsXG4gICAgICAgIHJvZmY6IDAuMDAwODk0NzUxLFxuICAgICAgICByb246IDAuNzk4NzA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzODAwLFxuICAgICAgICBnZnA6IDAuOTkyMDU0LFxuICAgICAgICByb2ZmOiAwLjAwMDg5MTE3NCxcbiAgICAgICAgcm9uOiAwLjc5ODcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzODUwLFxuICAgICAgICBnZnA6IDAuOTkyMTE3LFxuICAgICAgICByb2ZmOiAwLjAwMDg4Nzc1NixcbiAgICAgICAgcm9uOiAwLjc5ODczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzOTAwLFxuICAgICAgICBnZnA6IDAuOTkyMTc3LFxuICAgICAgICByb2ZmOiAwLjAwMDg4NDQ4OSxcbiAgICAgICAgcm9uOiAwLjc5ODc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzOTUwLFxuICAgICAgICBnZnA6IDAuOTkyMjM0LFxuICAgICAgICByb2ZmOiAwLjAwMDg4MTM2NixcbiAgICAgICAgcm9uOiAwLjc5ODc0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjI4OCxcbiAgICAgICAgcm9mZjogMC4wMDA4NzgzODEsXG4gICAgICAgIHJvbjogMC43OTg3NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwNTAsXG4gICAgICAgIGdmcDogMC45OTIzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4NzU1MjksXG4gICAgICAgIHJvbjogMC43OTg3NjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQxMDAsXG4gICAgICAgIGdmcDogMC45OTIzOSxcbiAgICAgICAgcm9mZjogMC4wMDA4NzI4MDIsXG4gICAgICAgIHJvbjogMC43OTg3NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQxNTAsXG4gICAgICAgIGdmcDogMC45OTI0MzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODcwMTk2LFxuICAgICAgICByb246IDAuNzk4NzgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MjAwLFxuICAgICAgICBnZnA6IDAuOTkyNDgyLFxuICAgICAgICByb2ZmOiAwLjAwMDg2NzcwNixcbiAgICAgICAgcm9uOiAwLjc5ODc4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjUyNCxcbiAgICAgICAgcm9mZjogMC4wMDA4NjUzMjUsXG4gICAgICAgIHJvbjogMC43OTg3OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzMDAsXG4gICAgICAgIGdmcDogMC45OTI1NjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODYzMDUsXG4gICAgICAgIHJvbjogMC43OTg4MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzNTAsXG4gICAgICAgIGdmcDogMC45OTI2MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODYwODc1LFxuICAgICAgICByb246IDAuNzk4ODA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NDAwLFxuICAgICAgICBnZnA6IDAuOTkyNjQxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1ODc5NixcbiAgICAgICAgcm9uOiAwLjc5ODgxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjY3NixcbiAgICAgICAgcm9mZjogMC4wMDA4NTY4MDksXG4gICAgICAgIHJvbjogMC43OTg4MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1MDAsXG4gICAgICAgIGdmcDogMC45OTI3MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTQ5MSxcbiAgICAgICAgcm9uOiAwLjc5ODgyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc0MixcbiAgICAgICAgcm9mZjogMC4wMDA4NTMwOTUsXG4gICAgICAgIHJvbjogMC43OTg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ2MDAsXG4gICAgICAgIGdmcDogMC45OTI3NzMsXG4gICAgICAgIHJvZmY6IDAuMDAwODUxMzYxLFxuICAgICAgICByb246IDAuNzk4ODM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjUwLFxuICAgICAgICBnZnA6IDAuOTkyODAyLFxuICAgICAgICByb2ZmOiAwLjAwMDg0OTcwMixcbiAgICAgICAgcm9uOiAwLjc5ODg0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgzLFxuICAgICAgICByb2ZmOiAwLjAwMDg0ODExOCxcbiAgICAgICAgcm9uOiAwLjc5ODg0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjg1NyxcbiAgICAgICAgcm9mZjogMC4wMDA4NDY2MDMsXG4gICAgICAgIHJvbjogMC43OTg4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjg4MixcbiAgICAgICAgcm9mZjogMC4wMDA4NDUxNTUsXG4gICAgICAgIHJvbjogMC43OTg4NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ4NTAsXG4gICAgICAgIGdmcDogMC45OTI5MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODQzNzcyLFxuICAgICAgICByb246IDAuNzk4ODU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0OTAwLFxuICAgICAgICBnZnA6IDAuOTkyOTI5LFxuICAgICAgICByb2ZmOiAwLjAwMDg0MjQ0OSxcbiAgICAgICAgcm9uOiAwLjc5ODg2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NDExODUsXG4gICAgICAgIHJvbjogMC43OTg4NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMDAsXG4gICAgICAgIGdmcDogMC45OTI5NzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODM5OTc3LFxuICAgICAgICByb246IDAuNzk4ODY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDUwLFxuICAgICAgICBnZnA6IDAuOTkyOTkzLFxuICAgICAgICByb2ZmOiAwLjAwMDgzODgyMixcbiAgICAgICAgcm9uOiAwLjc5ODg3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzAxMixcbiAgICAgICAgcm9mZjogMC4wMDA4Mzc3MTksXG4gICAgICAgIHJvbjogMC43OTg4NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxNTAsXG4gICAgICAgIGdmcDogMC45OTMwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MzY2NjQsXG4gICAgICAgIHJvbjogMC43OTg4NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUyMDAsXG4gICAgICAgIGdmcDogMC45OTMwNDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODM1NjU2LFxuICAgICAgICByb246IDAuNzk4ODgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMDY0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNDY5MixcbiAgICAgICAgcm9uOiAwLjc5ODg4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMzc3MSxcbiAgICAgICAgcm9uOiAwLjc5ODg4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA5NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzI4OTEsXG4gICAgICAgIHJvbjogMC43OTg4ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0MDAsXG4gICAgICAgIGdmcDogMC45OTMxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzIwNDksXG4gICAgICAgIHJvbjogMC43OTg4OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0NTAsXG4gICAgICAgIGdmcDogMC45OTMxMjQsXG4gICAgICAgIHJvZmY6IDAuMDAwODMxMjQ1LFxuICAgICAgICByb246IDAuNzk4ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMTM3LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMDQ3NixcbiAgICAgICAgcm9uOiAwLjc5ODg5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyOTc0MixcbiAgICAgICAgcm9uOiAwLjc5ODg5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE2MixcbiAgICAgICAgcm9mZjogMC4wMDA4MjkwNCxcbiAgICAgICAgcm9uOiAwLjc5ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2NTAsXG4gICAgICAgIGdmcDogMC45OTMxNzMsXG4gICAgICAgIHJvZmY6IDAuMDAwODI4MzY5LFxuICAgICAgICByb246IDAuNzk4OTAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMTg0LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNzcyNyxcbiAgICAgICAgcm9uOiAwLjc5ODkwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE5NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjcxMTQsXG4gICAgICAgIHJvbjogMC43OTg5MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4MDAsXG4gICAgICAgIGdmcDogMC45OTMyMDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI2NTI4LFxuICAgICAgICByb246IDAuNzk4OTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMjE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNTk2OCxcbiAgICAgICAgcm9uOiAwLjc5ODkwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIyMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjU0MzMsXG4gICAgICAgIHJvbjogMC43OTg5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIzMixcbiAgICAgICAgcm9mZjogMC4wMDA4MjQ5MjEsXG4gICAgICAgIHJvbjogMC43OTg5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMDAsXG4gICAgICAgIGdmcDogMC45OTMyNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODI0NDMyLFxuICAgICAgICByb246IDAuNzk4OTEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMjQ5LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzk2NSxcbiAgICAgICAgcm9uOiAwLjc5ODkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI1NixcbiAgICAgICAgcm9mZjogMC4wMDA4MjM1MTgsXG4gICAgICAgIHJvbjogMC43OTg5MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYxNTAsXG4gICAgICAgIGdmcDogMC45OTMyNjMsXG4gICAgICAgIHJvZmY6IDAuMDAwODIzMDkxLFxuICAgICAgICByb246IDAuNzk4OTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMjcsXG4gICAgICAgIHJvZmY6IDAuMDAwODIyNjgzLFxuICAgICAgICByb246IDAuNzk4OTE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMjc3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjI5MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI4MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjE5MixcbiAgICAgICAgcm9uOiAwLjc5ODkxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI4OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjE1NjQsXG4gICAgICAgIHJvbjogMC43OTg5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI5NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjEyMjQsXG4gICAgICAgIHJvbjogMC43OTg5MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0NTAsXG4gICAgICAgIGdmcDogMC45OTMzMDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwODk4LFxuICAgICAgICByb246IDAuNzk4OTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDU4NyxcbiAgICAgICAgcm9uOiAwLjc5ODkyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjAyOSxcbiAgICAgICAgcm9uOiAwLjc5ODkyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MjAwMDYsXG4gICAgICAgIHJvbjogMC43OTg5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2NTAsXG4gICAgICAgIGdmcDogMC45OTMzMjEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5NzM0LFxuICAgICAgICByb246IDAuNzk4OTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzI1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTQ3NCxcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTkyMjYsXG4gICAgICAgIHJvbjogMC43OTg5MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY4MDAsXG4gICAgICAgIGdmcDogMC45OTMzMzMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4OTg5LFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMzM3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODc2MyxcbiAgICAgICAgcm9uOiAwLjc5ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg1NDYsXG4gICAgICAgIHJvbjogMC43OTg5MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY5NTAsXG4gICAgICAgIGdmcDogMC45OTMzNDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4MzM5LFxuICAgICAgICByb246IDAuNzk4OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzQ4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODE0MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzUxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzk1MixcbiAgICAgICAgcm9uOiAwLjc5ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzU0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzc3MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc1OTgsXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcyMDAsXG4gICAgICAgIGdmcDogMC45OTMzNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTc0MzMsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcyNTAsXG4gICAgICAgIGdmcDogMC45OTMzNjIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3Mjc2LFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzY1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzEyNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY5OCxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjg0MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY3MTEsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MDAsXG4gICAgICAgIGdmcDogMC45OTMzNzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NTg1LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzc2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjQ2NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYzNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjI0LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzgyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjEzNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYwMzQsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc4MDAsXG4gICAgICAgIGdmcDogMC45OTMzODUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1OTM4LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTg0NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU3NTksXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5NTAsXG4gICAgICAgIGdmcDogMC45OTMzODksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1Njc1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzkxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTU5NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTU1MTgsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgxMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NDQ1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTM3NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUzMDksXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MjQ1LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzk4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTE4NCxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxMjUsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg0MDAsXG4gICAgICAgIGdmcDogMC45OTM0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTA3LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUwMTYsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTY1LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDAyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDkxNyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ4NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ4MjYsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzgzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDc0MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3MDQsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjY3LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDYzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDU5NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDU2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDUzNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDUwNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDc2LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0NDksXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQyMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDExLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM5OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDExLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM3NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM1MixcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDMzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDMxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjksXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyNzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyNTMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjM2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIwNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxODksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTc0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE2MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTM1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEyMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTAxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA3MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNjIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDUzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA0NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMzcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDI5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAyMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMTUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAwMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5OTYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTg0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk3OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjExMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTY5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NTYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTUyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTM3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTI4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTAzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkzLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9XG5dO1xubGV0IG1vZGVsT25EYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH1cbl07XG5sZXQgbW9kZWxPbk9mZkRhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAuNDAwMzI5LFxuICAgICAgICByb2ZmOiAwLjQ2MDI5OCxcbiAgICAgICAgcm9uOiAwLjY4MTYzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MCxcbiAgICAgICAgZ2ZwOiAwLjE0NzQ5OSxcbiAgICAgICAgcm9mZjogMC41NTg2MzgsXG4gICAgICAgIHJvbjogMC42MDE4NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwLFxuICAgICAgICBnZnA6IDAuMDU0NDY5NCxcbiAgICAgICAgcm9mZjogMC41MzkxMTMsXG4gICAgICAgIHJvbjogMC41NDI1MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwLFxuICAgICAgICBnZnA6IDAuMDIwMjc0NixcbiAgICAgICAgcm9mZjogMC40OTg1MjUsXG4gICAgICAgIHJvbjogMC40OTQ2NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwLFxuICAgICAgICBnZnA6IDAuMDA3NzM2OTQsXG4gICAgICAgIHJvZmY6IDAuNDU5MTQyLFxuICAgICAgICByb246IDAuNDU0NDgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzE3MzM1LFxuICAgICAgICByb2ZmOiAwLjQyNDIwNixcbiAgICAgICAgcm9uOiAwLjQxOTg1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAsXG4gICAgICAgIGdmcDogMC4wMDE1NDg5LFxuICAgICAgICByb2ZmOiAwLjM5MzQ0MixcbiAgICAgICAgcm9uOiAwLjM4OTUxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAsXG4gICAgICAgIGdmcDogMC4wMDEwMTE1NCxcbiAgICAgICAgcm9mZjogMC4zNjYxNTQsXG4gICAgICAgIHJvbjogMC4zNjI2MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwLFxuICAgICAgICBnZnA6IDAuMDAwODgwNDMxLFxuICAgICAgICByb2ZmOiAwLjM0MTc0NCxcbiAgICAgICAgcm9uOiAwLjMzODUwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAsXG4gICAgICAgIGdmcDogMC4wMDA5MDU3MTcsXG4gICAgICAgIHJvZmY6IDAuMzE5NzQ4LFxuICAgICAgICByb246IDAuMzE2NzU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDk5NjE0NCxcbiAgICAgICAgcm9mZjogMC4yOTk4MDQsXG4gICAgICAgIHJvbjogMC4yOTcwMjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwLFxuICAgICAgICBnZnA6IDAuMDAxMTE4ODUsXG4gICAgICAgIHJvZmY6IDAuMjgxNjMzLFxuICAgICAgICByb246IDAuMjc5MDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTI2MjQ3LFxuICAgICAgICByb2ZmOiAwLjI2NTAwOSxcbiAgICAgICAgcm9uOiAwLjI2MjUyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAsXG4gICAgICAgIGdmcDogMC4wMDE0MjM2LFxuICAgICAgICByb2ZmOiAwLjI0OTc0OCxcbiAgICAgICAgcm9uOiAwLjI0NzM3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAsXG4gICAgICAgIGdmcDogMC4wMDE2MDE3NixcbiAgICAgICAgcm9mZjogMC4yMzU3MDEsXG4gICAgICAgIHJvbjogMC4yMzM0MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwLFxuICAgICAgICBnZnA6IDAuMDAxNzk3NTksXG4gICAgICAgIHJvZmY6IDAuMjIyNzQyLFxuICAgICAgICByb246IDAuMjIwNTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjAxMjEsXG4gICAgICAgIHJvZmY6IDAuMjEwNzY0LFxuICAgICAgICByb246IDAuMjA4NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwLFxuICAgICAgICBnZnA6IDAuMDAyMjQ2NDYsXG4gICAgICAgIHJvZmY6IDAuMTk5Njc5LFxuICAgICAgICByb246IDAuMTk3NDg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjUwMTg0LFxuICAgICAgICByb2ZmOiAwLjE4OTQwOSxcbiAgICAgICAgcm9uOiAwLjE4NzIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjc3OTM0LFxuICAgICAgICByb2ZmOiAwLjE3OTg4OSxcbiAgICAgICAgcm9uOiAwLjE3NzY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAsXG4gICAgICAgIGdmcDogMC4wMDMwNzk5NCxcbiAgICAgICAgcm9mZjogMC4xNzEwNixcbiAgICAgICAgcm9uOiAwLjE2ODc4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwLFxuICAgICAgICBnZnA6IDAuMDAzNDA0NDQsXG4gICAgICAgIHJvZmY6IDAuMTYyODcyLFxuICAgICAgICByb246IDAuMTYwNTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAsXG4gICAgICAgIGdmcDogMC4wMDM3NTMzNyxcbiAgICAgICAgcm9mZjogMC4xNTUyODMsXG4gICAgICAgIHJvbjogMC4xNTI4MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDEyNjk1LFxuICAgICAgICByb2ZmOiAwLjE0ODI1MixcbiAgICAgICAgcm9uOiAwLjE0NTY5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwLFxuICAgICAgICBnZnA6IDAuMDA0NTI0OTgsXG4gICAgICAgIHJvZmY6IDAuMTQxNzQ3LFxuICAgICAgICByb246IDAuMTM5MDQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAsXG4gICAgICAgIGdmcDogMC4wMDQ5NDY3NixcbiAgICAgICAgcm9mZjogMC4xMzU3MzcsXG4gICAgICAgIHJvbjogMC4xMzI4NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNTM5MTAzLFxuICAgICAgICByb2ZmOiAwLjEzMDE5NCxcbiAgICAgICAgcm9uOiAwLjEyNzEzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwLFxuICAgICAgICBnZnA6IDAuMDA1ODU1ODcsXG4gICAgICAgIHJvZmY6IDAuMTI1MDkzLFxuICAgICAgICByb246IDAuMTIxODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDAsXG4gICAgICAgIGdmcDogMC4wMDYzMzg2NixcbiAgICAgICAgcm9mZjogMC4xMjA0MTQsXG4gICAgICAgIHJvbjogMC4xMTY4ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNjgzNjA1LFxuICAgICAgICByb2ZmOiAwLjExNjEzMyxcbiAgICAgICAgcm9uOiAwLjExMjMxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwLFxuICAgICAgICBnZnA6IDAuMDA3MzQzOTcsXG4gICAgICAgIHJvZmY6IDAuMTEyMjMzLFxuICAgICAgICByb246IDAuMTA4MDk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAsXG4gICAgICAgIGdmcDogMC4wMDc4NTc2NSxcbiAgICAgICAgcm9mZjogMC4xMDg2OTUsXG4gICAgICAgIHJvbjogMC4xMDQxOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwODM3MTc0LFxuICAgICAgICByb2ZmOiAwLjEwNTUwMSxcbiAgICAgICAgcm9uOiAwLjEwMDYwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwLFxuICAgICAgICBnZnA6IDAuMDA4ODgwNCxcbiAgICAgICAgcm9mZjogMC4xMDI2MzQsXG4gICAgICAgIHJvbjogMC4wOTcyOTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAsXG4gICAgICAgIGdmcDogMC4wMDkzNzc1NCxcbiAgICAgICAgcm9mZjogMC4xMDAwNzgsXG4gICAgICAgIHJvbjogMC4wOTQyNTU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAsXG4gICAgICAgIGdmcDogMC4wMDk4NTcsXG4gICAgICAgIHJvZmY6IDAuMDk3ODE2NCxcbiAgICAgICAgcm9uOiAwLjA5MTQ1ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMDMxMjcsXG4gICAgICAgIHJvZmY6IDAuMDk1ODMzNCxcbiAgICAgICAgcm9uOiAwLjA4ODg4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMDczOTEsXG4gICAgICAgIHJvZmY6IDAuMDk0MTEzNSxcbiAgICAgICAgcm9uOiAwLjA4NjUyNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTEzMSxcbiAgICAgICAgcm9mZjogMC4wOTI2NDEzLFxuICAgICAgICByb246IDAuMDg0MzU1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwLFxuICAgICAgICBnZnA6IDAuMDExNDg0MSxcbiAgICAgICAgcm9mZjogMC4wOTE0MDE4LFxuICAgICAgICByb246IDAuMDgyMzU2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAwLFxuICAgICAgICBnZnA6IDAuMDExNzk1MSxcbiAgICAgICAgcm9mZjogMC4wOTAzODA5LFxuICAgICAgICByb246IDAuMDgwNTEyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwLFxuICAgICAgICBnZnA6IDAuMDEyMDYxMyxcbiAgICAgICAgcm9mZjogMC4wODk1NjQ2LFxuICAgICAgICByb246IDAuMDc4ODA2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwLFxuICAgICAgICBnZnA6IDAuMDEyMjgxMyxcbiAgICAgICAgcm9mZjogMC4wODg5NDAyLFxuICAgICAgICByb246IDAuMDc3MjI0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwLFxuICAgICAgICBnZnA6IDAuMDEyNDU0NCxcbiAgICAgICAgcm9mZjogMC4wODg0OTUzLFxuICAgICAgICByb246IDAuMDc1NzQ5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjAwLFxuICAgICAgICBnZnA6IDAuMDEyNTgwNyxcbiAgICAgICAgcm9mZjogMC4wODgyMTg5LFxuICAgICAgICByb246IDAuMDc0MzY3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwLFxuICAgICAgICBnZnA6IDAuMDEyNjYxMixcbiAgICAgICAgcm9mZjogMC4wODgxMDA1LFxuICAgICAgICByb246IDAuMDczMDY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAsXG4gICAgICAgIGdmcDogMC4wMTI2OTc1LFxuICAgICAgICByb2ZmOiAwLjA4ODEzMTIsXG4gICAgICAgIHJvbjogMC4wNzE4MzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAsXG4gICAgICAgIGdmcDogMC4wMTI2OTE1LFxuICAgICAgICByb2ZmOiAwLjA4ODMwMjcsXG4gICAgICAgIHJvbjogMC4wNzA2NjA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAsXG4gICAgICAgIGdmcDogMC4wMTI2NDU2LFxuICAgICAgICByb2ZmOiAwLjA4ODYwODIsXG4gICAgICAgIHJvbjogMC4wNjk1MzM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAsXG4gICAgICAgIGdmcDogMC4wMTI1NjIzLFxuICAgICAgICByb2ZmOiAwLjA4OTA0MTcsXG4gICAgICAgIHJvbjogMC4wNjg0NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjQ0NDMsXG4gICAgICAgIHJvZmY6IDAuMDg5NTk4NSxcbiAgICAgICAgcm9uOiAwLjA2NzM4OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjI5NDUsXG4gICAgICAgIHJvZmY6IDAuMDkwMjc0OCxcbiAgICAgICAgcm9uOiAwLjA2NjM1NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjExNTUsXG4gICAgICAgIHJvZmY6IDAuMDkxMDY4MSxcbiAgICAgICAgcm9uOiAwLjA2NTM0MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTkxMDEsXG4gICAgICAgIHJvZmY6IDAuMDkxOTc2OCxcbiAgICAgICAgcm9uOiAwLjA2NDMzNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTY4MDcsXG4gICAgICAgIHJvZmY6IDAuMDkzMDAwMyxcbiAgICAgICAgcm9uOiAwLjA2MzM0MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTQzLFxuICAgICAgICByb2ZmOiAwLjA5NDEzODgsXG4gICAgICAgIHJvbjogMC4wNjIzNTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4MDAsXG4gICAgICAgIGdmcDogMC4wMTExNjAxLFxuICAgICAgICByb2ZmOiAwLjA5NTM5MzcsXG4gICAgICAgIHJvbjogMC4wNjEzNTg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4NTAsXG4gICAgICAgIGdmcDogMC4wMTA4NzMzLFxuICAgICAgICByb2ZmOiAwLjA5Njc2NzMsXG4gICAgICAgIHJvbjogMC4wNjAzNjQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5MDAsXG4gICAgICAgIGdmcDogMC4wMTA1NzE4LFxuICAgICAgICByb2ZmOiAwLjA5ODI2MjYsXG4gICAgICAgIHJvbjogMC4wNTkzNjQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5NTAsXG4gICAgICAgIGdmcDogMC4wMTAyNTczLFxuICAgICAgICByb2ZmOiAwLjA5OTg4MzksXG4gICAgICAgIHJvbjogMC4wNTgzNTc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMDAsXG4gICAgICAgIGdmcDogMC4wMDk5MzE4NCxcbiAgICAgICAgcm9mZjogMC4xMDE2MzYsXG4gICAgICAgIHJvbjogMC4wNTczNDIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwNTAsXG4gICAgICAgIGdmcDogMC4wMDk1OTcwNyxcbiAgICAgICAgcm9mZjogMC4xMDM1MjUsXG4gICAgICAgIHJvbjogMC4wNTYzMTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwOTI1NDY3LFxuICAgICAgICByb2ZmOiAwLjEwNTU1NyxcbiAgICAgICAgcm9uOiAwLjA1NTI4MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwODkwNjIxLFxuICAgICAgICByb2ZmOiAwLjEwNzc0MixcbiAgICAgICAgcm9uOiAwLjA1NDIzNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwODU1MzE4LFxuICAgICAgICByb2ZmOiAwLjExMDA4NixcbiAgICAgICAgcm9uOiAwLjA1MzE3NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwODE5NzAzLFxuICAgICAgICByb2ZmOiAwLjExMjYsXG4gICAgICAgIHJvbjogMC4wNTIxMDY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzMDAsXG4gICAgICAgIGdmcDogMC4wMDc4MzkxMyxcbiAgICAgICAgcm9mZjogMC4xMTUyOTYsXG4gICAgICAgIHJvbjogMC4wNTEwMjY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzNTAsXG4gICAgICAgIGdmcDogMC4wMDc0ODA4NCxcbiAgICAgICAgcm9mZjogMC4xMTgxODUsXG4gICAgICAgIHJvbjogMC4wNDk5MzU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0MDAsXG4gICAgICAgIGdmcDogMC4wMDcxMjM0MyxcbiAgICAgICAgcm9mZjogMC4xMjEyOCxcbiAgICAgICAgcm9uOiAwLjA0ODgzNDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNjc2ODE1LFxuICAgICAgICByb2ZmOiAwLjEyNDU5NixcbiAgICAgICAgcm9uOiAwLjA0NzcyNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNjQxNjIsXG4gICAgICAgIHJvZmY6IDAuMTI4MTQ5LFxuICAgICAgICByb246IDAuMDQ2NjA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1NTAsXG4gICAgICAgIGdmcDogMC4wMDYwNjg3NSxcbiAgICAgICAgcm9mZjogMC4xMzE5NTUsXG4gICAgICAgIHJvbjogMC4wNDU0ODI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2MDAsXG4gICAgICAgIGdmcDogMC4wMDU3MjY4OCxcbiAgICAgICAgcm9mZjogMC4xMzYwMzMsXG4gICAgICAgIHJvbjogMC4wNDQzNTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2NTAsXG4gICAgICAgIGdmcDogMC4wMDUzOTE2NixcbiAgICAgICAgcm9mZjogMC4xNDA0MDQsXG4gICAgICAgIHJvbjogMC4wNDMyMTc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3MDAsXG4gICAgICAgIGdmcDogMC4wMDUwNjQwNyxcbiAgICAgICAgcm9mZjogMC4xNDUwODgsXG4gICAgICAgIHJvbjogMC4wNDIwODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDc0NTA1LFxuICAgICAgICByb2ZmOiAwLjE1MDEwOSxcbiAgICAgICAgcm9uOiAwLjA0MDk0MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNDQzNTQ2LFxuICAgICAgICByb2ZmOiAwLjE1NTQ5LFxuICAgICAgICByb246IDAuMDM5ODA2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODUwLFxuICAgICAgICBnZnA6IDAuMDA0MTM2MDksXG4gICAgICAgIHJvZmY6IDAuMTYxMjU5LFxuICAgICAgICByb246IDAuMDM4NjcxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTAwLFxuICAgICAgICBnZnA6IDAuMDAzODQ3NjMsXG4gICAgICAgIHJvZmY6IDAuMTY3NDQ0LFxuICAgICAgICByb246IDAuMDM3NTQwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTUwLFxuICAgICAgICBnZnA6IDAuMDAzNTcwNyxcbiAgICAgICAgcm9mZjogMC4xNzQwNzIsXG4gICAgICAgIHJvbjogMC4wMzY0MTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMDAsXG4gICAgICAgIGdmcDogMC4wMDMzMDU4LFxuICAgICAgICByb2ZmOiAwLjE4MTE3NixcbiAgICAgICAgcm9uOiAwLjAzNTI5OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzA1MzM3LFxuICAgICAgICByb2ZmOiAwLjE4ODc4NyxcbiAgICAgICAgcm9uOiAwLjAzNDE5MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjgxMzcxLFxuICAgICAgICByb2ZmOiAwLjE5NjkzOCxcbiAgICAgICAgcm9uOiAwLjAzMzA5NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjU4NzA0LFxuICAgICAgICByb2ZmOiAwLjIwNTY2NCxcbiAgICAgICAgcm9uOiAwLjAzMjAxMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjM3MzQ2LFxuICAgICAgICByb2ZmOiAwLjIxNDk5OCxcbiAgICAgICAgcm9uOiAwLjAzMDk0NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjE3MyxcbiAgICAgICAgcm9mZjogMC4yMjQ5NzcsXG4gICAgICAgIHJvbjogMC4wMjk4OTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzMDAsXG4gICAgICAgIGdmcDogMC4wMDE5ODU1NSxcbiAgICAgICAgcm9mZjogMC4yMzU2MzIsXG4gICAgICAgIHJvbjogMC4wMjg4NTczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzNTAsXG4gICAgICAgIGdmcDogMC4wMDE4MTA5NCxcbiAgICAgICAgcm9mZjogMC4yNDY5OTksXG4gICAgICAgIHJvbjogMC4wMjc4NDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0MDAsXG4gICAgICAgIGdmcDogMC4wMDE2NDg4OSxcbiAgICAgICAgcm9mZjogMC4yNTkxMDgsXG4gICAgICAgIHJvbjogMC4wMjY4NDU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0NTAsXG4gICAgICAgIGdmcDogMC4wMDE0OTkwNyxcbiAgICAgICAgcm9mZjogMC4yNzE5ODcsXG4gICAgICAgIHJvbjogMC4wMjU4NzA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MDAsXG4gICAgICAgIGdmcDogMC4wMDEzNjEwNixcbiAgICAgICAgcm9mZjogMC4yODU2NjEsXG4gICAgICAgIHJvbjogMC4wMjQ5MTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1NTAsXG4gICAgICAgIGdmcDogMC4wMDEyMzQzOCxcbiAgICAgICAgcm9mZjogMC4zMDAxNDcsXG4gICAgICAgIHJvbjogMC4wMjM5ODg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2MDAsXG4gICAgICAgIGdmcDogMC4wMDExMTg1MyxcbiAgICAgICAgcm9mZjogMC4zMTU0NTgsXG4gICAgICAgIHJvbjogMC4wMjMwODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2NTAsXG4gICAgICAgIGdmcDogMC4wMDEwMTI5MyxcbiAgICAgICAgcm9mZjogMC4zMzE1OTcsXG4gICAgICAgIHJvbjogMC4wMjIyMDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3MDAsXG4gICAgICAgIGdmcDogMC4wMDA5MTcwMDEsXG4gICAgICAgIHJvZmY6IDAuMzQ4NTU3LFxuICAgICAgICByb246IDAuMDIxMzQ1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzUwLFxuICAgICAgICBnZnA6IDAuMDAwODMwMTQ5LFxuICAgICAgICByb2ZmOiAwLjM2NjMxNyxcbiAgICAgICAgcm9uOiAwLjAyMDUxNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDc1MTc2MixcbiAgICAgICAgcm9mZjogMC4zODQ4NDMsXG4gICAgICAgIHJvbjogMC4wMTk3MDgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4NTAsXG4gICAgICAgIGdmcDogMC4wMDA2ODEyMzYsXG4gICAgICAgIHJvZmY6IDAuNDA0MDg0LFxuICAgICAgICByb246IDAuMDE4OTI3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTAwLFxuICAgICAgICBnZnA6IDAuMDAwNjE3OTcyLFxuICAgICAgICByb2ZmOiAwLjQyMzk2OSxcbiAgICAgICAgcm9uOiAwLjAxODE3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTUwLFxuICAgICAgICBnZnA6IDAuMDAwNTYxMzkzLFxuICAgICAgICByb2ZmOiAwLjQ0NDQwOCxcbiAgICAgICAgcm9uOiAwLjAxNzQ0MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDUxMDk0MSxcbiAgICAgICAgcm9mZjogMC40NjUyODksXG4gICAgICAgIHJvbjogMC4wMTY3Mzk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwNTAsXG4gICAgICAgIGdmcDogMC4wMDA0NjYwODQsXG4gICAgICAgIHJvZmY6IDAuNDg2NDc4LFxuICAgICAgICByb246IDAuMDE2MDYwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTAwLFxuICAgICAgICBnZnA6IDAuMDAwNDI2MzE4LFxuICAgICAgICByb2ZmOiAwLjUwNzgyLFxuICAgICAgICByb246IDAuMDE1NDA1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMzkxMTY4LFxuICAgICAgICByb2ZmOiAwLjUyOTE0NCxcbiAgICAgICAgcm9uOiAwLjAxNDc3NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDM2MDE5MyxcbiAgICAgICAgcm9mZjogMC41NTAyNjEsXG4gICAgICAgIHJvbjogMC4wMTQxNjkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyNTAsXG4gICAgICAgIGdmcDogMC4wMDAzMzI5ODIsXG4gICAgICAgIHJvZmY6IDAuNTcwOTc4LFxuICAgICAgICByb246IDAuMDEzNTg2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMzA5MTUyLFxuICAgICAgICByb2ZmOiAwLjU5MTEwMSxcbiAgICAgICAgcm9uOiAwLjAxMzAyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMjg4MzQ5LFxuICAgICAgICByb2ZmOiAwLjYxMDQ0NixcbiAgICAgICAgcm9uOiAwLjAxMjQ4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMjcwMjQ2LFxuICAgICAgICByb2ZmOiAwLjYyODg1MSxcbiAgICAgICAgcm9uOiAwLjAxMTk3MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI1NDUzOCxcbiAgICAgICAgcm9mZjogMC42NDYxODUsXG4gICAgICAgIHJvbjogMC4wMTE0NzY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MDAsXG4gICAgICAgIGdmcDogMC4wMDAyNDA5NDMsXG4gICAgICAgIHJvZmY6IDAuNjYyMzU3LFxuICAgICAgICByb246IDAuMDExMDAxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMjI5MjAxLFxuICAgICAgICByb2ZmOiAwLjY3NzMxNyxcbiAgICAgICAgcm9uOiAwLjAxMDU0NjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIxOTA3MixcbiAgICAgICAgcm9mZjogMC42OTEwNTYsXG4gICAgICAgIHJvbjogMC4wMTAxMTA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2NTAsXG4gICAgICAgIGdmcDogMC4wMDAyMTAzMzcsXG4gICAgICAgIHJvZmY6IDAuNzAzNjA1LFxuICAgICAgICByb246IDAuMDA5NjkzMjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIwMjc5OCxcbiAgICAgICAgcm9mZjogMC43MTUwMjQsXG4gICAgICAgIHJvbjogMC4wMDkyOTM1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTk2Mjc4LFxuICAgICAgICByb2ZmOiAwLjcyNTM5NSxcbiAgICAgICAgcm9uOiAwLjAwODkxMDg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxOTA2MjMsXG4gICAgICAgIHJvZmY6IDAuNzM0ODA2LFxuICAgICAgICByb246IDAuMDA4NTQ0NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE4NTY5OCxcbiAgICAgICAgcm9mZjogMC43NDMzNTEsXG4gICAgICAgIHJvbjogMC4wMDgxOTQyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTgxMzksXG4gICAgICAgIHJvZmY6IDAuNzUxMTE4LFxuICAgICAgICByb246IDAuMDA3ODU5MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE3NzYwNCxcbiAgICAgICAgcm9mZjogMC43NTgxOTEsXG4gICAgICAgIHJvbjogMC4wMDc1MzgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTc0MjYxLFxuICAgICAgICByb2ZmOiAwLjc2NDY0MixcbiAgICAgICAgcm9uOiAwLjAwNzIzMTU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNzEyOTUsXG4gICAgICAgIHJvZmY6IDAuNzcwNTM1LFxuICAgICAgICByb246IDAuMDA2OTM4MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2ODY1MyxcbiAgICAgICAgcm9mZjogMC43NzU5MjcsXG4gICAgICAgIHJvbjogMC4wMDY2NTc1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTY2MjksXG4gICAgICAgIHJvZmY6IDAuNzgwODY2LFxuICAgICAgICByb246IDAuMDA2Mzg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2NDE3LFxuICAgICAgICByb2ZmOiAwLjc4NTM5NCxcbiAgICAgICAgcm9uOiAwLjAwNjEzMjU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNjIyNjMsXG4gICAgICAgIHJvZmY6IDAuNzg5NTUsXG4gICAgICAgIHJvbjogMC4wMDU4ODcxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTYwNTQyLFxuICAgICAgICByb2ZmOiAwLjc5MzM2NSxcbiAgICAgICAgcm9uOiAwLjAwNTY1MjUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTg5ODcsXG4gICAgICAgIHJvZmY6IDAuNzk2ODY5LFxuICAgICAgICByb246IDAuMDA1NDI4MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1NzU3OSxcbiAgICAgICAgcm9mZjogMC44MDAwODksXG4gICAgICAgIHJvbjogMC4wMDUyMTM2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTU2MzAyLFxuICAgICAgICByb2ZmOiAwLjgwMzA0OSxcbiAgICAgICAgcm9uOiAwLjAwNTAwODU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTUxNDIsXG4gICAgICAgIHJvZmY6IDAuODA1NzcxLFxuICAgICAgICByb246IDAuMDA0ODEyNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1NDA4NyxcbiAgICAgICAgcm9mZjogMC44MDgyNzMsXG4gICAgICAgIHJvbjogMC4wMDQ2MjUwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTUzMTI2LFxuICAgICAgICByb2ZmOiAwLjgxMDU3NSxcbiAgICAgICAgcm9uOiAwLjAwNDQ0NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTIyNTEsXG4gICAgICAgIHJvZmY6IDAuODEyNjkzLFxuICAgICAgICByb246IDAuMDA0Mjc0NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MTQ1MixcbiAgICAgICAgcm9mZjogMC44MTQ2NDEsXG4gICAgICAgIHJvbjogMC4wMDQxMTA3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTUwNzIzLFxuICAgICAgICByb2ZmOiAwLjgxNjQzNCxcbiAgICAgICAgcm9uOiAwLjAwMzk1NDE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTAwNTYsXG4gICAgICAgIHJvZmY6IDAuODE4MDg1LFxuICAgICAgICByb246IDAuMDAzODA0NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0OTQ0NyxcbiAgICAgICAgcm9mZjogMC44MTk2MDQsXG4gICAgICAgIHJvbjogMC4wMDM2NjE0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ4ODg5LFxuICAgICAgICByb2ZmOiAwLjgyMTAwMyxcbiAgICAgICAgcm9uOiAwLjAwMzUyNDY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDgzNzgsXG4gICAgICAgIHJvZmY6IDAuODIyMjkyLFxuICAgICAgICByb246IDAuMDAzMzkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ3OTEsXG4gICAgICAgIHJvZmY6IDAuODIzNDc5LFxuICAgICAgICByb246IDAuMDAzMjY4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NzQ4MSxcbiAgICAgICAgcm9mZjogMC44MjQ1NzIsXG4gICAgICAgIHJvbjogMC4wMDMxNDk0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ3MDg3LFxuICAgICAgICByb2ZmOiAwLjgyNTU4LFxuICAgICAgICByb246IDAuMDAzMDM1MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NjcyNSxcbiAgICAgICAgcm9mZjogMC44MjY1MDksXG4gICAgICAgIHJvbjogMC4wMDI5MjYxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ2MzkzLFxuICAgICAgICByb2ZmOiAwLjgyNzM2NSxcbiAgICAgICAgcm9uOiAwLjAwMjgyMTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDYwODgsXG4gICAgICAgIHJvZmY6IDAuODI4MTU1LFxuICAgICAgICByb246IDAuMDAyNzIyMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTgwOCxcbiAgICAgICAgcm9mZjogMC44Mjg4ODQsXG4gICAgICAgIHJvbjogMC4wMDI2MjY3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ1NTUsXG4gICAgICAgIHJvZmY6IDAuODI5NTU2LFxuICAgICAgICByb246IDAuMDAyNTM1NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTMxMixcbiAgICAgICAgcm9mZjogMC44MzAxNzcsXG4gICAgICAgIHJvbjogMC4wMDI0NDg2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ1MDkzLFxuICAgICAgICByb2ZmOiAwLjgzMDc1LFxuICAgICAgICByb246IDAuMDAyMzY1MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDg5MixcbiAgICAgICAgcm9mZjogMC44MzEyNzksXG4gICAgICAgIHJvbjogMC4wMDIyODU4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0NzA2LFxuICAgICAgICByb2ZmOiAwLjgzMTc2OSxcbiAgICAgICAgcm9uOiAwLjAwMjIwOTgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQ1MzUsXG4gICAgICAgIHJvZmY6IDAuODMyMjIxLFxuICAgICAgICByb246IDAuMDAyMTM3MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDM3NyxcbiAgICAgICAgcm9mZjogMC44MzI2MzgsXG4gICAgICAgIHJvbjogMC4wMDIwNjc2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0MjMxLFxuICAgICAgICByb2ZmOiAwLjgzMzAyNSxcbiAgICAgICAgcm9uOiAwLjAwMjAwMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDA5NixcbiAgICAgICAgcm9mZjogMC44MzMzODMsXG4gICAgICAgIHJvbjogMC4wMDE5Mzc4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzOTcyLFxuICAgICAgICByb2ZmOiAwLjgzMzcxNCxcbiAgICAgICAgcm9uOiAwLjAwMTg3NzIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM4NTcsXG4gICAgICAgIHJvZmY6IDAuODM0MDIsXG4gICAgICAgIHJvbjogMC4wMDE4MTkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzNzUxLFxuICAgICAgICByb2ZmOiAwLjgzNDMwNCxcbiAgICAgICAgcm9uOiAwLjAwMTc2Mzg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM2NTIsXG4gICAgICAgIHJvZmY6IDAuODM0NTY3LFxuICAgICAgICByb246IDAuMDAxNzEwOTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzU2MSxcbiAgICAgICAgcm9mZjogMC44MzQ4MTEsXG4gICAgICAgIHJvbjogMC4wMDE2NjAzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzNDc3LFxuICAgICAgICByb2ZmOiAwLjgzNTAzNyxcbiAgICAgICAgcm9uOiAwLjAwMTYxMTk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMzOTgsXG4gICAgICAgIHJvZmY6IDAuODM1MjQ3LFxuICAgICAgICByb246IDAuMDAxNTY1NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzMyNixcbiAgICAgICAgcm9mZjogMC44MzU0NDIsXG4gICAgICAgIHJvbjogMC4wMDE1MjE1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMjU5LFxuICAgICAgICByb2ZmOiAwLjgzNTYyMyxcbiAgICAgICAgcm9uOiAwLjAwMTQ3OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMxOTYsXG4gICAgICAgIHJvZmY6IDAuODM1NzkxLFxuICAgICAgICByb246IDAuMDAxNDM5MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzEzOCxcbiAgICAgICAgcm9mZjogMC44MzU5NDgsXG4gICAgICAgIHJvbjogMC4wMDE0MDA0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMDg0LFxuICAgICAgICByb2ZmOiAwLjgzNjA5MyxcbiAgICAgICAgcm9uOiAwLjAwMTM2MzU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMwMzQsXG4gICAgICAgIHJvZmY6IDAuODM2MjI4LFxuICAgICAgICByb246IDAuMDAxMzI4MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjk4OCxcbiAgICAgICAgcm9mZjogMC44MzYzNTQsXG4gICAgICAgIHJvbjogMC4wMDEyOTQ3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyOTQ0LFxuICAgICAgICByb2ZmOiAwLjgzNjQ3MixcbiAgICAgICAgcm9uOiAwLjAwMTI2MjU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI5MDQsXG4gICAgICAgIHJvZmY6IDAuODM2NTgxLFxuICAgICAgICByb246IDAuMDAxMjMxNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjg2NixcbiAgICAgICAgcm9mZjogMC44MzY2ODMsXG4gICAgICAgIHJvbjogMC4wMDEyMDI0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyODMxLFxuICAgICAgICByb2ZmOiAwLjgzNjc3OCxcbiAgICAgICAgcm9uOiAwLjAwMTE3NDMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI3OTksXG4gICAgICAgIHJvZmY6IDAuODM2ODY3LFxuICAgICAgICByb246IDAuMDAxMTQ3NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjc2OCxcbiAgICAgICAgcm9mZjogMC44MzY5NSxcbiAgICAgICAgcm9uOiAwLjAwMTEyMTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI3NCxcbiAgICAgICAgcm9mZjogMC44MzcwMjcsXG4gICAgICAgIHJvbjogMC4wMDEwOTczM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzEzLFxuICAgICAgICByb2ZmOiAwLjgzNzA5OSxcbiAgICAgICAgcm9uOiAwLjAwMTA3MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjY4OSxcbiAgICAgICAgcm9mZjogMC44MzcxNjcsXG4gICAgICAgIHJvbjogMC4wMDEwNTE1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjY1LFxuICAgICAgICByb2ZmOiAwLjgzNzIzLFxuICAgICAgICByb246IDAuMDAxMDMwMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjY0NCxcbiAgICAgICAgcm9mZjogMC44MzcyOSxcbiAgICAgICAgcm9uOiAwLjAwMTAwOTY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2MjMsXG4gICAgICAgIHJvZmY6IDAuODM3MzQ1LFxuICAgICAgICByb246IDAuMDAwOTkwMTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2MDQsXG4gICAgICAgIHJvZmY6IDAuODM3Mzk3LFxuICAgICAgICByb246IDAuMDAwOTcxNDQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1ODcsXG4gICAgICAgIHJvZmY6IDAuODM3NDQ2LFxuICAgICAgICByb246IDAuMDAwOTUzNTk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1NyxcbiAgICAgICAgcm9mZjogMC44Mzc0OTIsXG4gICAgICAgIHJvbjogMC4wMDA5MzY1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTU0LFxuICAgICAgICByb2ZmOiAwLjgzNzUzNSxcbiAgICAgICAgcm9uOiAwLjAwMDkyMDIzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTQsXG4gICAgICAgIHJvZmY6IDAuODM3NTc1LFxuICAgICAgICByb246IDAuMDAwOTA0NjU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1MjYsXG4gICAgICAgIHJvZmY6IDAuODM3NjEzLFxuICAgICAgICByb246IDAuMDAwODg5NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjUxMyxcbiAgICAgICAgcm9mZjogMC44Mzc2NDgsXG4gICAgICAgIHJvbjogMC4wMDA4NzU1NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjUwMSxcbiAgICAgICAgcm9mZjogMC44Mzc2ODIsXG4gICAgICAgIHJvbjogMC4wMDA4NjE5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ4OSxcbiAgICAgICAgcm9mZjogMC44Mzc3MTMsXG4gICAgICAgIHJvbjogMC4wMDA4NDg5NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ3OSxcbiAgICAgICAgcm9mZjogMC44Mzc3NDMsXG4gICAgICAgIHJvbjogMC4wMDA4MzY1MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ2OCxcbiAgICAgICAgcm9mZjogMC44Mzc3NzEsXG4gICAgICAgIHJvbjogMC4wMDA4MjQ2NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ1OSxcbiAgICAgICAgcm9mZjogMC44Mzc3OTcsXG4gICAgICAgIHJvbjogMC4wMDA4MTMzMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ1LFxuICAgICAgICByb2ZmOiAwLjgzNzgyMixcbiAgICAgICAgcm9uOiAwLjAwMDgwMjQ3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDQyLFxuICAgICAgICByb2ZmOiAwLjgzNzg0NSxcbiAgICAgICAgcm9uOiAwLjAwMDc5MjExNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDM0LFxuICAgICAgICByb2ZmOiAwLjgzNzg2NyxcbiAgICAgICAgcm9uOiAwLjAwMDc4MjIxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDI2LFxuICAgICAgICByb2ZmOiAwLjgzNzg4OCxcbiAgICAgICAgcm9uOiAwLjAwMDc3Mjc1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDE5LFxuICAgICAgICByb2ZmOiAwLjgzNzkwNyxcbiAgICAgICAgcm9uOiAwLjAwMDc2MzcxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDEyLFxuICAgICAgICByb2ZmOiAwLjgzNzkyNixcbiAgICAgICAgcm9uOiAwLjAwMDc1NTA3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQwNixcbiAgICAgICAgcm9mZjogMC44Mzc5NDMsXG4gICAgICAgIHJvbjogMC4wMDA3NDY4MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0LFxuICAgICAgICByb2ZmOiAwLjgzNzk2LFxuICAgICAgICByb246IDAuMDAwNzM4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzk0LFxuICAgICAgICByb2ZmOiAwLjgzNzk3NixcbiAgICAgICAgcm9uOiAwLjAwMDczMTM3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM4OSxcbiAgICAgICAgcm9mZjogMC44Mzc5OSxcbiAgICAgICAgcm9uOiAwLjAwMDcyNDE3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM4NCxcbiAgICAgICAgcm9mZjogMC44MzgwMDQsXG4gICAgICAgIHJvbjogMC4wMDA3MTcyODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNzksXG4gICAgICAgIHJvZmY6IDAuODM4MDE4LFxuICAgICAgICByb246IDAuMDAwNzEwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM3NSxcbiAgICAgICAgcm9mZjogMC44MzgwMyxcbiAgICAgICAgcm9uOiAwLjAwMDcwNDQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzcsXG4gICAgICAgIHJvZmY6IDAuODM4MDQyLFxuICAgICAgICByb246IDAuMDAwNjk4Mzk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzY2LFxuICAgICAgICByb2ZmOiAwLjgzODA1MyxcbiAgICAgICAgcm9uOiAwLjAwMDY5MjY1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM2MyxcbiAgICAgICAgcm9mZjogMC44MzgwNjQsXG4gICAgICAgIHJvbjogMC4wMDA2ODcxNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNTksXG4gICAgICAgIHJvZmY6IDAuODM4MDc0LFxuICAgICAgICByb246IDAuMDAwNjgxOTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzU1LFxuICAgICAgICByb2ZmOiAwLjgzODA4NCxcbiAgICAgICAgcm9uOiAwLjAwMDY3NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNTIsXG4gICAgICAgIHJvZmY6IDAuODM4MDkzLFxuICAgICAgICByb246IDAuMDAwNjcyMTA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzQ5LFxuICAgICAgICByb2ZmOiAwLjgzODEwMSxcbiAgICAgICAgcm9uOiAwLjAwMDY2NzUyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0NixcbiAgICAgICAgcm9mZjogMC44MzgxMDksXG4gICAgICAgIHJvbjogMC4wMDA2NjMxNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNDMsXG4gICAgICAgIHJvZmY6IDAuODM4MTE3LFxuICAgICAgICByb246IDAuMDAwNjU4OTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzQxLFxuICAgICAgICByb2ZmOiAwLjgzODEyNSxcbiAgICAgICAgcm9uOiAwLjAwMDY1NDk3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMzOCxcbiAgICAgICAgcm9mZjogMC44MzgxMzIsXG4gICAgICAgIHJvbjogMC4wMDA2NTExNTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzYsXG4gICAgICAgIHJvZmY6IDAuODM4MTM4LFxuICAgICAgICByb246IDAuMDAwNjQ3NTAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzM0LFxuICAgICAgICByb2ZmOiAwLjgzODE0NSxcbiAgICAgICAgcm9uOiAwLjAwMDY0NDAxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMzMSxcbiAgICAgICAgcm9mZjogMC44MzgxNTEsXG4gICAgICAgIHJvbjogMC4wMDA2NDA2NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjksXG4gICAgICAgIHJvZmY6IDAuODM4MTU2LFxuICAgICAgICByb246IDAuMDAwNjM3NDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI3LFxuICAgICAgICByb2ZmOiAwLjgzODE2MixcbiAgICAgICAgcm9uOiAwLjAwMDYzNDQ0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyNixcbiAgICAgICAgcm9mZjogMC44MzgxNjcsXG4gICAgICAgIHJvbjogMC4wMDA2MzE1MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjQsXG4gICAgICAgIHJvZmY6IDAuODM4MTcyLFxuICAgICAgICByb246IDAuMDAwNjI4NzU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzIyLFxuICAgICAgICByb2ZmOiAwLjgzODE3NixcbiAgICAgICAgcm9uOiAwLjAwMDYyNjA5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyMSxcbiAgICAgICAgcm9mZjogMC44MzgxODEsXG4gICAgICAgIHJvbjogMC4wMDA2MjM1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxOSxcbiAgICAgICAgcm9mZjogMC44MzgxODUsXG4gICAgICAgIHJvbjogMC4wMDA2MjExMzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTgsXG4gICAgICAgIHJvZmY6IDAuODM4MTg5LFxuICAgICAgICByb246IDAuMDAwNjE4ODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE2LFxuICAgICAgICByb2ZmOiAwLjgzODE5MyxcbiAgICAgICAgcm9uOiAwLjAwMDYxNjU5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxNSxcbiAgICAgICAgcm9mZjogMC44MzgxOTcsXG4gICAgICAgIHJvbjogMC4wMDA2MTQ0NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTQsXG4gICAgICAgIHJvZmY6IDAuODM4MixcbiAgICAgICAgcm9uOiAwLjAwMDYxMjQ1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxMixcbiAgICAgICAgcm9mZjogMC44MzgyMDMsXG4gICAgICAgIHJvbjogMC4wMDA2MTA1MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjA3LFxuICAgICAgICByb246IDAuMDAwNjA4NjcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzEsXG4gICAgICAgIHJvZmY6IDAuODM4MjEsXG4gICAgICAgIHJvbjogMC4wMDA2MDY5MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDksXG4gICAgICAgIHJvZmY6IDAuODM4MjEyLFxuICAgICAgICByb246IDAuMDAwNjA1MjE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA4LFxuICAgICAgICByb2ZmOiAwLjgzODIxNSxcbiAgICAgICAgcm9uOiAwLjAwMDYwMzYwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNyxcbiAgICAgICAgcm9mZjogMC44MzgyMTgsXG4gICAgICAgIHJvbjogMC4wMDA2MDIwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNixcbiAgICAgICAgcm9mZjogMC44MzgyMixcbiAgICAgICAgcm9uOiAwLjAwMDYwMDU4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNixcbiAgICAgICAgcm9mZjogMC44MzgyMjMsXG4gICAgICAgIHJvbjogMC4wMDA1OTkxNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDUsXG4gICAgICAgIHJvZmY6IDAuODM4MjI1LFxuICAgICAgICByb246IDAuMDAwNTk3ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA0LFxuICAgICAgICByb2ZmOiAwLjgzODIyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU5NjU0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMyxcbiAgICAgICAgcm9mZjogMC44MzgyMjksXG4gICAgICAgIHJvbjogMC4wMDA1OTUzMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDMsXG4gICAgICAgIHJvZmY6IDAuODM4MjMxLFxuICAgICAgICByb246IDAuMDAwNTk0MTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAyLFxuICAgICAgICByb2ZmOiAwLjgzODIzMyxcbiAgICAgICAgcm9uOiAwLjAwMDU5MzAxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMSxcbiAgICAgICAgcm9mZjogMC44MzgyMzUsXG4gICAgICAgIHJvbjogMC4wMDA1OTE5NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDEsXG4gICAgICAgIHJvZmY6IDAuODM4MjM2LFxuICAgICAgICByb246IDAuMDAwNTkwOTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMyxcbiAgICAgICAgcm9mZjogMC44MzgyMzgsXG4gICAgICAgIHJvbjogMC4wMDA1ODk5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzLFxuICAgICAgICByb2ZmOiAwLjgzODI0LFxuICAgICAgICByb246IDAuMDAwNTg5MDA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk5LFxuICAgICAgICByb2ZmOiAwLjgzODI0MSxcbiAgICAgICAgcm9uOiAwLjAwMDU4ODExMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OSxcbiAgICAgICAgcm9mZjogMC44MzgyNDIsXG4gICAgICAgIHJvbjogMC4wMDA1ODcyNTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTgsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ0LFxuICAgICAgICByb246IDAuMDAwNTg2NDM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk4LFxuICAgICAgICByb2ZmOiAwLjgzODI0NSxcbiAgICAgICAgcm9uOiAwLjAwMDU4NTY1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NyxcbiAgICAgICAgcm9mZjogMC44MzgyNDYsXG4gICAgICAgIHJvbjogMC4wMDA1ODQ5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTcsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ3LFxuICAgICAgICByb246IDAuMDAwNTg0MTk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk2LFxuICAgICAgICByb2ZmOiAwLjgzODI0OSxcbiAgICAgICAgcm9uOiAwLjAwMDU4MzUxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NixcbiAgICAgICAgcm9mZjogMC44MzgyNSxcbiAgICAgICAgcm9uOiAwLjAwMDU4Mjg2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NixcbiAgICAgICAgcm9mZjogMC44MzgyNTEsXG4gICAgICAgIHJvbjogMC4wMDA1ODIyNDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTUsXG4gICAgICAgIHJvZmY6IDAuODM4MjUyLFxuICAgICAgICByb246IDAuMDAwNTgxNjQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk1LFxuICAgICAgICByb2ZmOiAwLjgzODI1MyxcbiAgICAgICAgcm9uOiAwLjAwMDU4MTA3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NSxcbiAgICAgICAgcm9mZjogMC44MzgyNTMsXG4gICAgICAgIHJvbjogMC4wMDA1ODA1MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTQsXG4gICAgICAgIHJvZmY6IDAuODM4MjU0LFxuICAgICAgICByb246IDAuMDAwNTgwMDE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NSxcbiAgICAgICAgcm9uOiAwLjAwMDU3OTUyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NCxcbiAgICAgICAgcm9mZjogMC44MzgyNTYsXG4gICAgICAgIHJvbjogMC4wMDA1NzkwNDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTQsXG4gICAgICAgIHJvZmY6IDAuODM4MjU3LFxuICAgICAgICByb246IDAuMDAwNTc4NTk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkzLFxuICAgICAgICByb2ZmOiAwLjgzODI1NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3ODE2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTgsXG4gICAgICAgIHJvbjogMC4wMDA1Nzc3NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTMsXG4gICAgICAgIHJvZmY6IDAuODM4MjU5LFxuICAgICAgICByb246IDAuMDAwNTc3MzUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkzLFxuICAgICAgICByb2ZmOiAwLjgzODI1OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3Njk3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNixcbiAgICAgICAgcm9uOiAwLjAwMDU3NjYxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNixcbiAgICAgICAgcm9uOiAwLjAwMDU3NjI2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNjEsXG4gICAgICAgIHJvbjogMC4wMDA1NzU5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYxLFxuICAgICAgICByb246IDAuMDAwNTc1NjIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2MixcbiAgICAgICAgcm9uOiAwLjAwMDU3NTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2MixcbiAgICAgICAgcm9uOiAwLjAwMDU3NTAzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjMsXG4gICAgICAgIHJvbjogMC4wMDA1NzQ3NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjYzLFxuICAgICAgICByb246IDAuMDAwNTc0NDk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NCxcbiAgICAgICAgcm9uOiAwLjAwMDU3NDI0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjQsXG4gICAgICAgIHJvbjogMC4wMDA1NzQwMDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY0LFxuICAgICAgICByb246IDAuMDAwNTczNzczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MzU1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjUsXG4gICAgICAgIHJvbjogMC4wMDA1NzMzNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjUsXG4gICAgICAgIHJvbjogMC4wMDA1NzMxNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI5NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NixcbiAgICAgICAgcm9uOiAwLjAwMDU3MjU5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NixcbiAgICAgICAgcm9uOiAwLjAwMDU3MjQyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MjI2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MjExNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY3LFxuICAgICAgICByb246IDAuMDAwNTcxODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzE2OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxNTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxNDQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTMzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzEyMjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcxMTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTAxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA5MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwODIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDczNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA1NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzA0OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzA0MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAzNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDIxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDE1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDA5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDAzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTk4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTc5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk3MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NjMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTU5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk1NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NDk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTQ0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5Mzg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTM2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkzMzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5MzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTI5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyNzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MjU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTIzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyMTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTE1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTExMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwMzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTAxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwMDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjExNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjhcbiAgICB9XG5dOyIsInZhciBzaXRlbWFwID0ge1xyXG4gICAgJyc6ICdob21lJyxcclxuICAgIFxyXG4gICAgJ092ZXJ2aWV3X1Byb2plY3QnOiAncXVvcnVzJyxcclxuICAgICdEZXNjcmlwdGlvbic6ICdxdW9ydXMnLFxyXG4gICAgJ0Rlc2lnbic6ICdxdW9ydXMnLFxyXG4gICAgJ0V4cGVyaW1lbnRzJzogJ3F1b3J1cycsXHJcbiAgICAnTm90ZWJvb2snOiAncXVvcnVzJyxcclxuICAgICdJbnRlckxhYic6ICdxdW9ydXMnLFxyXG4gICAgJ01vZGVsJzogJ3F1b3J1cycsXHJcbiAgICAnUmVzdWx0cyc6ICdxdW9ydXMnLFxyXG4gICAgJ0RlbW9uc3RyYXRlJzogJ3F1b3J1cycsXHJcbiAgICAnSW1wcm92ZSc6ICdxdW9ydXMnLFxyXG5cclxuICAgICdQYXJ0cyc6ICdxdW9ydXMnLFxyXG4gICAgJ0Jhc2ljX1BhcnQnOiAncXVvcnVzJyxcclxuICAgICdDb21wb3NpdGVfUGFydCc6ICdxdW9ydXMnLFxyXG4gICAgJ1BhcnRfQ29sbGVjdGlvbic6ICdxdW9ydXMnLFxyXG5cclxuICAgICdTYWZldHknOiAncXVvcnVzJyxcclxuXHJcbiAgICAnT3ZlcnZpZXdfSFAnOiAnaHAnLFxyXG4gICAgJ0h1bWFuX1ByYWN0aWNlcyc6ICdocCcsXHJcbiAgICAnUHVibGljX0VuZ2FnZW1lbnQnOiAnaHAnLFxyXG5cclxuICAgICdUZWFtJzogJ3RlYW0nLFxyXG4gICAgJ0NvbGxhYm9yYXRpb25zJzogJ3RlYW0nLFxyXG4gICAgJ0F0dHJpYnV0aW9ucyc6ICd0ZWFtJyxcclxuXHJcbiAgICAnQXBwbGllZF9EZXNpZ24nOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ0VudHJlcHJlbmV1cnNoaXAnOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ0hhcmR3YXJlJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdNZWFzdXJlbWVudCc6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnTW9kZWwnOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ1NvZnR3YXJlJzogJ2NvbXBldGl0aW9uJ1xyXG59XHJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xyXG4gICAgdmFyIGN1cm5hdml0ZW0gPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgIGlmKGN1cm5hdml0ZW0ubWF0Y2goL2lnZW1cXC5vcmcvaSkpIHsgLy8gV2Uga25vdyB3ZSdyZSBsaXZlXHJcbiAgICAgICAgY3VybmF2aXRlbSA9IGN1cm5hdml0ZW0ucmVwbGFjZSgvKGh0dHA6XFwvXFwvKT9cXGR7NH1cXC5pZ2VtXFwub3JnXFwuVGVhbTpcXHcrXFwvPy9pLCAnJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjdXJuYXZpdGVtID0gY3VybmF2aXRlbS5yZXBsYWNlKC8oaHR0cDpcXC9cXC8pP2xvY2FsaG9zdDpcXGQrXFwvPy8sICcnKTtcclxuICAgICAgICBjdXJuYXZpdGVtID0gY3VybmF2aXRlbS5yZXBsYWNlKC9cXC5odG1sL2ksICcnKTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKGN1cm5hdml0ZW0pO1xyXG4gICAgJCgnLicgKyBzaXRlbWFwW2N1cm5hdml0ZW1dKS5hZGRDbGFzcygnY3VycmVudCcpO1xyXG59KSIsIi8vIENvZGUgY291cnRlc3kgb2YgTW9oYW1lZCBIYXNhblxyXG4vLyBodHRwczovL2NvZGVwZW4uaW8vTWhtZGhhc2FuL3Blbi9tQWRhUUVcclxuXHJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuICBcclxuICAndXNlIHN0cmljdCc7XHJcbiAgXHJcbiAgIHZhciBjLCBjdXJyZW50U2Nyb2xsVG9wID0gMCxcclxuICAgICAgIG5hdmJhciA9ICQoJ2hlYWRlcicpO1xyXG5cclxuICAgJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciBhID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpO1xyXG4gICAgICB2YXIgYiA9IG5hdmJhci5oZWlnaHQoKTtcclxuICAgICBcclxuICAgICAgY3VycmVudFNjcm9sbFRvcCA9IGE7XHJcbiAgICAgXHJcbiAgICAgIGlmIChjIDwgY3VycmVudFNjcm9sbFRvcCAmJiBhID4gYiArIGIpIHtcclxuICAgICAgICBuYXZiYXIuYWRkQ2xhc3MoXCJzY3JvbGxVcFwiKTtcclxuICAgICAgfSBlbHNlIGlmIChjID4gY3VycmVudFNjcm9sbFRvcCAmJiAhKGEgPD0gYikpIHtcclxuICAgICAgICBuYXZiYXIucmVtb3ZlQ2xhc3MoXCJzY3JvbGxVcFwiKTtcclxuICAgICAgfVxyXG4gICAgICBjID0gY3VycmVudFNjcm9sbFRvcDtcclxuICB9KTtcclxuICBcclxufSk7IiwiLy9Db2RlIGNvdXJ0ZXN5IG9mIGh0dHBzOi8vY29kZXBlbi5pby9rcnV4b3IvcGVuL0N3cEZxXG5cbiQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24oKSB7XG4gICAgaWYgKCQodGhpcykuc2Nyb2xsVG9wKCkgPiA1MCApIHtcbiAgICAgICAgJCgnLnNjcm9sbHRvcDpoaWRkZW4nKS5zdG9wKHRydWUsIHRydWUpLmZhZGVJbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgICQoJy5zY3JvbGx0b3AnKS5zdG9wKHRydWUsIHRydWUpLmZhZGVPdXQoKTtcbiAgICB9XG59KTtcbiQoZnVuY3Rpb24oKXskKFwiLnNjcm9sbFwiKS5jbGljayhmdW5jdGlvbigpeyQoXCJodG1sLGJvZHlcIikuYW5pbWF0ZSh7c2Nyb2xsVG9wOiQoXCIjdG9wXCIpLm9mZnNldCgpLnRvcH0sXCIxMDAwXCIpO3JldHVybiBmYWxzZX0pfSk7Il19
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwb3BwZXIubWluLmpzIiwiYm9vdHN0cmFwLm1pbi5qcyIsImQzLm1pbi5qcyIsImVra28tbGlnaHRib3guanMiLCJmb290ZXItaGVhZGVyLXRlbXBsYXRlLmpzIiwiaW1hZ2UtZ2FsbGVyeS5qcyIsImluZGV4LmpzIiwibGFuZGluZy5qcyIsIm1vZGVsLmpzIiwibmF2bGluZS5qcyIsInNjcm9sbHNlbnNpdGl2ZS5qcyIsInNtb290aHNjcm9sbGJhci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNOQTtBQUNBO0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDNXBCQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMvalBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQy9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJ3aWtpLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuIENvcHlyaWdodCAoQykgRmVkZXJpY28gWml2b2xvIDIwMThcclxuIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAobGljZW5zZSB0ZXJtcyBhcmUgYXQgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuXHJcbiAqLyhmdW5jdGlvbihlLHQpeydvYmplY3QnPT10eXBlb2YgZXhwb3J0cyYmJ3VuZGVmaW5lZCchPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOidmdW5jdGlvbic9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOmUuUG9wcGVyPXQoKX0pKHRoaXMsZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZSYmJ1tvYmplY3QgRnVuY3Rpb25dJz09PXt9LnRvU3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24gdChlLHQpe2lmKDEhPT1lLm5vZGVUeXBlKXJldHVybltdO3ZhciBvPWdldENvbXB1dGVkU3R5bGUoZSxudWxsKTtyZXR1cm4gdD9vW3RdOm99ZnVuY3Rpb24gbyhlKXtyZXR1cm4nSFRNTCc9PT1lLm5vZGVOYW1lP2U6ZS5wYXJlbnROb2RlfHxlLmhvc3R9ZnVuY3Rpb24gbihlKXtpZighZSlyZXR1cm4gZG9jdW1lbnQuYm9keTtzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZSdIVE1MJzpjYXNlJ0JPRFknOnJldHVybiBlLm93bmVyRG9jdW1lbnQuYm9keTtjYXNlJyNkb2N1bWVudCc6cmV0dXJuIGUuYm9keTt9dmFyIGk9dChlKSxyPWkub3ZlcmZsb3cscD1pLm92ZXJmbG93WCxzPWkub3ZlcmZsb3dZO3JldHVybiAvKGF1dG98c2Nyb2xsfG92ZXJsYXkpLy50ZXN0KHIrcytwKT9lOm4obyhlKSl9ZnVuY3Rpb24gcihlKXtyZXR1cm4gMTE9PT1lP3JlOjEwPT09ZT9wZTpyZXx8cGV9ZnVuY3Rpb24gcChlKXtpZighZSlyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Zvcih2YXIgbz1yKDEwKT9kb2N1bWVudC5ib2R5Om51bGwsbj1lLm9mZnNldFBhcmVudDtuPT09byYmZS5uZXh0RWxlbWVudFNpYmxpbmc7KW49KGU9ZS5uZXh0RWxlbWVudFNpYmxpbmcpLm9mZnNldFBhcmVudDt2YXIgaT1uJiZuLm5vZGVOYW1lO3JldHVybiBpJiYnQk9EWSchPT1pJiYnSFRNTCchPT1pPy0xIT09WydURCcsJ1RBQkxFJ10uaW5kZXhPZihuLm5vZGVOYW1lKSYmJ3N0YXRpYyc9PT10KG4sJ3Bvc2l0aW9uJyk/cChuKTpuOmU/ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gcyhlKXt2YXIgdD1lLm5vZGVOYW1lO3JldHVybidCT0RZJyE9PXQmJignSFRNTCc9PT10fHxwKGUuZmlyc3RFbGVtZW50Q2hpbGQpPT09ZSl9ZnVuY3Rpb24gZChlKXtyZXR1cm4gbnVsbD09PWUucGFyZW50Tm9kZT9lOmQoZS5wYXJlbnROb2RlKX1mdW5jdGlvbiBhKGUsdCl7aWYoIWV8fCFlLm5vZGVUeXBlfHwhdHx8IXQubm9kZVR5cGUpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDt2YXIgbz1lLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HLG49bz9lOnQsaT1vP3Q6ZSxyPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ci5zZXRTdGFydChuLDApLHIuc2V0RW5kKGksMCk7dmFyIGw9ci5jb21tb25BbmNlc3RvckNvbnRhaW5lcjtpZihlIT09bCYmdCE9PWx8fG4uY29udGFpbnMoaSkpcmV0dXJuIHMobCk/bDpwKGwpO3ZhciBmPWQoZSk7cmV0dXJuIGYuaG9zdD9hKGYuaG9zdCx0KTphKGUsZCh0KS5ob3N0KX1mdW5jdGlvbiBsKGUpe3ZhciB0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTondG9wJyxvPSd0b3AnPT09dD8nc2Nyb2xsVG9wJzonc2Nyb2xsTGVmdCcsbj1lLm5vZGVOYW1lO2lmKCdCT0RZJz09PW58fCdIVE1MJz09PW4pe3ZhciBpPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQscj1lLm93bmVyRG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudHx8aTtyZXR1cm4gcltvXX1yZXR1cm4gZVtvXX1mdW5jdGlvbiBmKGUsdCl7dmFyIG89Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxuPWwodCwndG9wJyksaT1sKHQsJ2xlZnQnKSxyPW8/LTE6MTtyZXR1cm4gZS50b3ArPW4qcixlLmJvdHRvbSs9bipyLGUubGVmdCs9aSpyLGUucmlnaHQrPWkqcixlfWZ1bmN0aW9uIG0oZSx0KXt2YXIgbz0neCc9PT10PydMZWZ0JzonVG9wJyxuPSdMZWZ0Jz09bz8nUmlnaHQnOidCb3R0b20nO3JldHVybiBwYXJzZUZsb2F0KGVbJ2JvcmRlcicrbysnV2lkdGgnXSwxMCkrcGFyc2VGbG9hdChlWydib3JkZXInK24rJ1dpZHRoJ10sMTApfWZ1bmN0aW9uIGgoZSx0LG8sbil7cmV0dXJuIEoodFsnb2Zmc2V0JytlXSx0WydzY3JvbGwnK2VdLG9bJ2NsaWVudCcrZV0sb1snb2Zmc2V0JytlXSxvWydzY3JvbGwnK2VdLHIoMTApP3BhcnNlSW50KG9bJ29mZnNldCcrZV0pK3BhcnNlSW50KG5bJ21hcmdpbicrKCdIZWlnaHQnPT09ZT8nVG9wJzonTGVmdCcpXSkrcGFyc2VJbnQoblsnbWFyZ2luJysoJ0hlaWdodCc9PT1lPydCb3R0b20nOidSaWdodCcpXSk6MCl9ZnVuY3Rpb24gYyhlKXt2YXIgdD1lLmJvZHksbz1lLmRvY3VtZW50RWxlbWVudCxuPXIoMTApJiZnZXRDb21wdXRlZFN0eWxlKG8pO3JldHVybntoZWlnaHQ6aCgnSGVpZ2h0Jyx0LG8sbiksd2lkdGg6aCgnV2lkdGgnLHQsbyxuKX19ZnVuY3Rpb24gZyhlKXtyZXR1cm4gbGUoe30sZSx7cmlnaHQ6ZS5sZWZ0K2Uud2lkdGgsYm90dG9tOmUudG9wK2UuaGVpZ2h0fSl9ZnVuY3Rpb24gdShlKXt2YXIgbz17fTt0cnl7aWYocigxMCkpe289ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgbj1sKGUsJ3RvcCcpLGk9bChlLCdsZWZ0Jyk7by50b3ArPW4sby5sZWZ0Kz1pLG8uYm90dG9tKz1uLG8ucmlnaHQrPWl9ZWxzZSBvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y2F0Y2godCl7fXZhciBwPXtsZWZ0Om8ubGVmdCx0b3A6by50b3Asd2lkdGg6by5yaWdodC1vLmxlZnQsaGVpZ2h0Om8uYm90dG9tLW8udG9wfSxzPSdIVE1MJz09PWUubm9kZU5hbWU/YyhlLm93bmVyRG9jdW1lbnQpOnt9LGQ9cy53aWR0aHx8ZS5jbGllbnRXaWR0aHx8cC5yaWdodC1wLmxlZnQsYT1zLmhlaWdodHx8ZS5jbGllbnRIZWlnaHR8fHAuYm90dG9tLXAudG9wLGY9ZS5vZmZzZXRXaWR0aC1kLGg9ZS5vZmZzZXRIZWlnaHQtYTtpZihmfHxoKXt2YXIgdT10KGUpO2YtPW0odSwneCcpLGgtPW0odSwneScpLHAud2lkdGgtPWYscC5oZWlnaHQtPWh9cmV0dXJuIGcocCl9ZnVuY3Rpb24gYihlLG8pe3ZhciBpPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0scD1yKDEwKSxzPSdIVE1MJz09PW8ubm9kZU5hbWUsZD11KGUpLGE9dShvKSxsPW4oZSksbT10KG8pLGg9cGFyc2VGbG9hdChtLmJvcmRlclRvcFdpZHRoLDEwKSxjPXBhcnNlRmxvYXQobS5ib3JkZXJMZWZ0V2lkdGgsMTApO2kmJnMmJihhLnRvcD1KKGEudG9wLDApLGEubGVmdD1KKGEubGVmdCwwKSk7dmFyIGI9Zyh7dG9wOmQudG9wLWEudG9wLWgsbGVmdDpkLmxlZnQtYS5sZWZ0LWMsd2lkdGg6ZC53aWR0aCxoZWlnaHQ6ZC5oZWlnaHR9KTtpZihiLm1hcmdpblRvcD0wLGIubWFyZ2luTGVmdD0wLCFwJiZzKXt2YXIgeT1wYXJzZUZsb2F0KG0ubWFyZ2luVG9wLDEwKSx3PXBhcnNlRmxvYXQobS5tYXJnaW5MZWZ0LDEwKTtiLnRvcC09aC15LGIuYm90dG9tLT1oLXksYi5sZWZ0LT1jLXcsYi5yaWdodC09Yy13LGIubWFyZ2luVG9wPXksYi5tYXJnaW5MZWZ0PXd9cmV0dXJuKHAmJiFpP28uY29udGFpbnMobCk6bz09PWwmJidCT0RZJyE9PWwubm9kZU5hbWUpJiYoYj1mKGIsbykpLGJ9ZnVuY3Rpb24geShlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG89ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPWIoZSxvKSxpPUooby5jbGllbnRXaWR0aCx3aW5kb3cuaW5uZXJXaWR0aHx8MCkscj1KKG8uY2xpZW50SGVpZ2h0LHdpbmRvdy5pbm5lckhlaWdodHx8MCkscD10PzA6bChvKSxzPXQ/MDpsKG8sJ2xlZnQnKSxkPXt0b3A6cC1uLnRvcCtuLm1hcmdpblRvcCxsZWZ0OnMtbi5sZWZ0K24ubWFyZ2luTGVmdCx3aWR0aDppLGhlaWdodDpyfTtyZXR1cm4gZyhkKX1mdW5jdGlvbiB3KGUpe3ZhciBuPWUubm9kZU5hbWU7cmV0dXJuJ0JPRFknPT09bnx8J0hUTUwnPT09bj8hMTonZml4ZWQnPT09dChlLCdwb3NpdGlvbicpfHx3KG8oZSkpfWZ1bmN0aW9uIEUoZSl7aWYoIWV8fCFlLnBhcmVudEVsZW1lbnR8fHIoKSlyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Zvcih2YXIgbz1lLnBhcmVudEVsZW1lbnQ7byYmJ25vbmUnPT09dChvLCd0cmFuc2Zvcm0nKTspbz1vLnBhcmVudEVsZW1lbnQ7cmV0dXJuIG98fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiB2KGUsdCxpLHIpe3ZhciBwPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzRdJiZhcmd1bWVudHNbNF0scz17dG9wOjAsbGVmdDowfSxkPXA/RShlKTphKGUsdCk7aWYoJ3ZpZXdwb3J0Jz09PXIpcz15KGQscCk7ZWxzZXt2YXIgbDsnc2Nyb2xsUGFyZW50Jz09PXI/KGw9bihvKHQpKSwnQk9EWSc9PT1sLm5vZGVOYW1lJiYobD1lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSk6J3dpbmRvdyc9PT1yP2w9ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDpsPXI7dmFyIGY9YihsLGQscCk7aWYoJ0hUTUwnPT09bC5ub2RlTmFtZSYmIXcoZCkpe3ZhciBtPWMoZS5vd25lckRvY3VtZW50KSxoPW0uaGVpZ2h0LGc9bS53aWR0aDtzLnRvcCs9Zi50b3AtZi5tYXJnaW5Ub3Ascy5ib3R0b209aCtmLnRvcCxzLmxlZnQrPWYubGVmdC1mLm1hcmdpbkxlZnQscy5yaWdodD1nK2YubGVmdH1lbHNlIHM9Zn1pPWl8fDA7dmFyIHU9J251bWJlcic9PXR5cGVvZiBpO3JldHVybiBzLmxlZnQrPXU/aTppLmxlZnR8fDAscy50b3ArPXU/aTppLnRvcHx8MCxzLnJpZ2h0LT11P2k6aS5yaWdodHx8MCxzLmJvdHRvbS09dT9pOmkuYm90dG9tfHwwLHN9ZnVuY3Rpb24geChlKXt2YXIgdD1lLndpZHRoLG89ZS5oZWlnaHQ7cmV0dXJuIHQqb31mdW5jdGlvbiBPKGUsdCxvLG4saSl7dmFyIHI9NTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0/YXJndW1lbnRzWzVdOjA7aWYoLTE9PT1lLmluZGV4T2YoJ2F1dG8nKSlyZXR1cm4gZTt2YXIgcD12KG8sbixyLGkpLHM9e3RvcDp7d2lkdGg6cC53aWR0aCxoZWlnaHQ6dC50b3AtcC50b3B9LHJpZ2h0Ont3aWR0aDpwLnJpZ2h0LXQucmlnaHQsaGVpZ2h0OnAuaGVpZ2h0fSxib3R0b206e3dpZHRoOnAud2lkdGgsaGVpZ2h0OnAuYm90dG9tLXQuYm90dG9tfSxsZWZ0Ont3aWR0aDp0LmxlZnQtcC5sZWZ0LGhlaWdodDpwLmhlaWdodH19LGQ9T2JqZWN0LmtleXMocykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBsZSh7a2V5OmV9LHNbZV0se2FyZWE6eChzW2VdKX0pfSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiB0LmFyZWEtZS5hcmVhfSksYT1kLmZpbHRlcihmdW5jdGlvbihlKXt2YXIgdD1lLndpZHRoLG49ZS5oZWlnaHQ7cmV0dXJuIHQ+PW8uY2xpZW50V2lkdGgmJm4+PW8uY2xpZW50SGVpZ2h0fSksbD0wPGEubGVuZ3RoP2FbMF0ua2V5OmRbMF0ua2V5LGY9ZS5zcGxpdCgnLScpWzFdO3JldHVybiBsKyhmPyctJytmOicnKX1mdW5jdGlvbiBMKGUsdCxvKXt2YXIgbj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbCxpPW4/RSh0KTphKHQsbyk7cmV0dXJuIGIobyxpLG4pfWZ1bmN0aW9uIFMoZSl7dmFyIHQ9Z2V0Q29tcHV0ZWRTdHlsZShlKSxvPXBhcnNlRmxvYXQodC5tYXJnaW5Ub3ApK3BhcnNlRmxvYXQodC5tYXJnaW5Cb3R0b20pLG49cGFyc2VGbG9hdCh0Lm1hcmdpbkxlZnQpK3BhcnNlRmxvYXQodC5tYXJnaW5SaWdodCksaT17d2lkdGg6ZS5vZmZzZXRXaWR0aCtuLGhlaWdodDplLm9mZnNldEhlaWdodCtvfTtyZXR1cm4gaX1mdW5jdGlvbiBUKGUpe3ZhciB0PXtsZWZ0OidyaWdodCcscmlnaHQ6J2xlZnQnLGJvdHRvbTondG9wJyx0b3A6J2JvdHRvbSd9O3JldHVybiBlLnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSl9ZnVuY3Rpb24gRChlLHQsbyl7bz1vLnNwbGl0KCctJylbMF07dmFyIG49UyhlKSxpPXt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodH0scj0tMSE9PVsncmlnaHQnLCdsZWZ0J10uaW5kZXhPZihvKSxwPXI/J3RvcCc6J2xlZnQnLHM9cj8nbGVmdCc6J3RvcCcsZD1yPydoZWlnaHQnOid3aWR0aCcsYT1yPyd3aWR0aCc6J2hlaWdodCc7cmV0dXJuIGlbcF09dFtwXSt0W2RdLzItbltkXS8yLGlbc109bz09PXM/dFtzXS1uW2FdOnRbVChzKV0saX1mdW5jdGlvbiBDKGUsdCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maW5kP2UuZmluZCh0KTplLmZpbHRlcih0KVswXX1mdW5jdGlvbiBOKGUsdCxvKXtpZihBcnJheS5wcm90b3R5cGUuZmluZEluZGV4KXJldHVybiBlLmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XT09PW99KTt2YXIgbj1DKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF09PT1vfSk7cmV0dXJuIGUuaW5kZXhPZihuKX1mdW5jdGlvbiBQKHQsbyxuKXt2YXIgaT12b2lkIDA9PT1uP3Q6dC5zbGljZSgwLE4odCwnbmFtZScsbikpO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24odCl7dFsnZnVuY3Rpb24nXSYmY29uc29sZS53YXJuKCdgbW9kaWZpZXIuZnVuY3Rpb25gIGlzIGRlcHJlY2F0ZWQsIHVzZSBgbW9kaWZpZXIuZm5gIScpO3ZhciBuPXRbJ2Z1bmN0aW9uJ118fHQuZm47dC5lbmFibGVkJiZlKG4pJiYoby5vZmZzZXRzLnBvcHBlcj1nKG8ub2Zmc2V0cy5wb3BwZXIpLG8ub2Zmc2V0cy5yZWZlcmVuY2U9ZyhvLm9mZnNldHMucmVmZXJlbmNlKSxvPW4obyx0KSl9KSxvfWZ1bmN0aW9uIGsoKXtpZighdGhpcy5zdGF0ZS5pc0Rlc3Ryb3llZCl7dmFyIGU9e2luc3RhbmNlOnRoaXMsc3R5bGVzOnt9LGFycm93U3R5bGVzOnt9LGF0dHJpYnV0ZXM6e30sZmxpcHBlZDohMSxvZmZzZXRzOnt9fTtlLm9mZnNldHMucmVmZXJlbmNlPUwodGhpcy5zdGF0ZSx0aGlzLnBvcHBlcix0aGlzLnJlZmVyZW5jZSx0aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZCksZS5wbGFjZW1lbnQ9Tyh0aGlzLm9wdGlvbnMucGxhY2VtZW50LGUub2Zmc2V0cy5yZWZlcmVuY2UsdGhpcy5wb3BwZXIsdGhpcy5yZWZlcmVuY2UsdGhpcy5vcHRpb25zLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50LHRoaXMub3B0aW9ucy5tb2RpZmllcnMuZmxpcC5wYWRkaW5nKSxlLm9yaWdpbmFsUGxhY2VtZW50PWUucGxhY2VtZW50LGUucG9zaXRpb25GaXhlZD10aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZCxlLm9mZnNldHMucG9wcGVyPUQodGhpcy5wb3BwZXIsZS5vZmZzZXRzLnJlZmVyZW5jZSxlLnBsYWNlbWVudCksZS5vZmZzZXRzLnBvcHBlci5wb3NpdGlvbj10aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZD8nZml4ZWQnOidhYnNvbHV0ZScsZT1QKHRoaXMubW9kaWZpZXJzLGUpLHRoaXMuc3RhdGUuaXNDcmVhdGVkP3RoaXMub3B0aW9ucy5vblVwZGF0ZShlKToodGhpcy5zdGF0ZS5pc0NyZWF0ZWQ9ITAsdGhpcy5vcHRpb25zLm9uQ3JlYXRlKGUpKX19ZnVuY3Rpb24gVyhlLHQpe3JldHVybiBlLnNvbWUoZnVuY3Rpb24oZSl7dmFyIG89ZS5uYW1lLG49ZS5lbmFibGVkO3JldHVybiBuJiZvPT09dH0pfWZ1bmN0aW9uIEgoZSl7Zm9yKHZhciB0PVshMSwnbXMnLCdXZWJraXQnLCdNb3onLCdPJ10sbz1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLHI9aT8nJytpK286ZTtpZigndW5kZWZpbmVkJyE9dHlwZW9mIGRvY3VtZW50LmJvZHkuc3R5bGVbcl0pcmV0dXJuIHJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQigpe3JldHVybiB0aGlzLnN0YXRlLmlzRGVzdHJveWVkPSEwLFcodGhpcy5tb2RpZmllcnMsJ2FwcGx5U3R5bGUnKSYmKHRoaXMucG9wcGVyLnJlbW92ZUF0dHJpYnV0ZSgneC1wbGFjZW1lbnQnKSx0aGlzLnBvcHBlci5zdHlsZS5wb3NpdGlvbj0nJyx0aGlzLnBvcHBlci5zdHlsZS50b3A9JycsdGhpcy5wb3BwZXIuc3R5bGUubGVmdD0nJyx0aGlzLnBvcHBlci5zdHlsZS5yaWdodD0nJyx0aGlzLnBvcHBlci5zdHlsZS5ib3R0b209JycsdGhpcy5wb3BwZXIuc3R5bGUud2lsbENoYW5nZT0nJyx0aGlzLnBvcHBlci5zdHlsZVtIKCd0cmFuc2Zvcm0nKV09JycpLHRoaXMuZGlzYWJsZUV2ZW50TGlzdGVuZXJzKCksdGhpcy5vcHRpb25zLnJlbW92ZU9uRGVzdHJveSYmdGhpcy5wb3BwZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBvcHBlciksdGhpc31mdW5jdGlvbiBBKGUpe3ZhciB0PWUub3duZXJEb2N1bWVudDtyZXR1cm4gdD90LmRlZmF1bHRWaWV3OndpbmRvd31mdW5jdGlvbiBNKGUsdCxvLGkpe3ZhciByPSdCT0RZJz09PWUubm9kZU5hbWUscD1yP2Uub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldzplO3AuYWRkRXZlbnRMaXN0ZW5lcih0LG8se3Bhc3NpdmU6ITB9KSxyfHxNKG4ocC5wYXJlbnROb2RlKSx0LG8saSksaS5wdXNoKHApfWZ1bmN0aW9uIEYoZSx0LG8saSl7by51cGRhdGVCb3VuZD1pLEEoZSkuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJyxvLnVwZGF0ZUJvdW5kLHtwYXNzaXZlOiEwfSk7dmFyIHI9bihlKTtyZXR1cm4gTShyLCdzY3JvbGwnLG8udXBkYXRlQm91bmQsby5zY3JvbGxQYXJlbnRzKSxvLnNjcm9sbEVsZW1lbnQ9cixvLmV2ZW50c0VuYWJsZWQ9ITAsb31mdW5jdGlvbiBJKCl7dGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkfHwodGhpcy5zdGF0ZT1GKHRoaXMucmVmZXJlbmNlLHRoaXMub3B0aW9ucyx0aGlzLnN0YXRlLHRoaXMuc2NoZWR1bGVVcGRhdGUpKX1mdW5jdGlvbiBSKGUsdCl7cmV0dXJuIEEoZSkucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJyx0LnVwZGF0ZUJvdW5kKSx0LnNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsdC51cGRhdGVCb3VuZCl9KSx0LnVwZGF0ZUJvdW5kPW51bGwsdC5zY3JvbGxQYXJlbnRzPVtdLHQuc2Nyb2xsRWxlbWVudD1udWxsLHQuZXZlbnRzRW5hYmxlZD0hMSx0fWZ1bmN0aW9uIFUoKXt0aGlzLnN0YXRlLmV2ZW50c0VuYWJsZWQmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnNjaGVkdWxlVXBkYXRlKSx0aGlzLnN0YXRlPVIodGhpcy5yZWZlcmVuY2UsdGhpcy5zdGF0ZSkpfWZ1bmN0aW9uIFkoZSl7cmV0dXJuJychPT1lJiYhaXNOYU4ocGFyc2VGbG9hdChlKSkmJmlzRmluaXRlKGUpfWZ1bmN0aW9uIGooZSx0KXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBuPScnOy0xIT09Wyd3aWR0aCcsJ2hlaWdodCcsJ3RvcCcsJ3JpZ2h0JywnYm90dG9tJywnbGVmdCddLmluZGV4T2YobykmJlkodFtvXSkmJihuPSdweCcpLGUuc3R5bGVbb109dFtvXStufSl9ZnVuY3Rpb24gSyhlLHQpe09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIG49dFtvXTshMT09PW4/ZS5yZW1vdmVBdHRyaWJ1dGUobyk6ZS5zZXRBdHRyaWJ1dGUobyx0W29dKX0pfWZ1bmN0aW9uIHEoZSx0LG8pe3ZhciBuPUMoZSxmdW5jdGlvbihlKXt2YXIgbz1lLm5hbWU7cmV0dXJuIG89PT10fSksaT0hIW4mJmUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09byYmZS5lbmFibGVkJiZlLm9yZGVyPG4ub3JkZXJ9KTtpZighaSl7dmFyIHI9J2AnK3QrJ2AnO2NvbnNvbGUud2FybignYCcrbysnYCcrJyBtb2RpZmllciBpcyByZXF1aXJlZCBieSAnK3IrJyBtb2RpZmllciBpbiBvcmRlciB0byB3b3JrLCBiZSBzdXJlIHRvIGluY2x1ZGUgaXQgYmVmb3JlICcrcisnIScpfXJldHVybiBpfWZ1bmN0aW9uIEcoZSl7cmV0dXJuJ2VuZCc9PT1lPydzdGFydCc6J3N0YXJ0Jz09PWU/J2VuZCc6ZX1mdW5jdGlvbiBWKGUpe3ZhciB0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbz1tZS5pbmRleE9mKGUpLG49bWUuc2xpY2UobysxKS5jb25jYXQobWUuc2xpY2UoMCxvKSk7cmV0dXJuIHQ/bi5yZXZlcnNlKCk6bn1mdW5jdGlvbiB6KGUsdCxvLG4pe3ZhciBpPWUubWF0Y2goLygoPzpcXC18XFwrKT9cXGQqXFwuP1xcZCopKC4qKS8pLHI9K2lbMV0scD1pWzJdO2lmKCFyKXJldHVybiBlO2lmKDA9PT1wLmluZGV4T2YoJyUnKSl7dmFyIHM7c3dpdGNoKHApe2Nhc2UnJXAnOnM9bzticmVhaztjYXNlJyUnOmNhc2UnJXInOmRlZmF1bHQ6cz1uO312YXIgZD1nKHMpO3JldHVybiBkW3RdLzEwMCpyfWlmKCd2aCc9PT1wfHwndncnPT09cCl7dmFyIGE7cmV0dXJuIGE9J3ZoJz09PXA/Sihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LHdpbmRvdy5pbm5lckhlaWdodHx8MCk6Sihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsd2luZG93LmlubmVyV2lkdGh8fDApLGEvMTAwKnJ9cmV0dXJuIHJ9ZnVuY3Rpb24gXyhlLHQsbyxuKXt2YXIgaT1bMCwwXSxyPS0xIT09WydyaWdodCcsJ2xlZnQnXS5pbmRleE9mKG4pLHA9ZS5zcGxpdCgvKFxcK3xcXC0pLykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0oKX0pLHM9cC5pbmRleE9mKEMocCxmdW5jdGlvbihlKXtyZXR1cm4tMSE9PWUuc2VhcmNoKC8sfFxccy8pfSkpO3Bbc10mJi0xPT09cFtzXS5pbmRleE9mKCcsJykmJmNvbnNvbGUud2FybignT2Zmc2V0cyBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2UocykgYXJlIGRlcHJlY2F0ZWQsIHVzZSBhIGNvbW1hICgsKSBpbnN0ZWFkLicpO3ZhciBkPS9cXHMqLFxccyp8XFxzKy8sYT0tMT09PXM/W3BdOltwLnNsaWNlKDAscykuY29uY2F0KFtwW3NdLnNwbGl0KGQpWzBdXSksW3Bbc10uc3BsaXQoZClbMV1dLmNvbmNhdChwLnNsaWNlKHMrMSkpXTtyZXR1cm4gYT1hLm1hcChmdW5jdGlvbihlLG4pe3ZhciBpPSgxPT09bj8hcjpyKT8naGVpZ2h0Jzond2lkdGgnLHA9ITE7cmV0dXJuIGUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuJyc9PT1lW2UubGVuZ3RoLTFdJiYtMSE9PVsnKycsJy0nXS5pbmRleE9mKHQpPyhlW2UubGVuZ3RoLTFdPXQscD0hMCxlKTpwPyhlW2UubGVuZ3RoLTFdKz10LHA9ITEsZSk6ZS5jb25jYXQodCl9LFtdKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHooZSxpLHQsbyl9KX0pLGEuZm9yRWFjaChmdW5jdGlvbihlLHQpe2UuZm9yRWFjaChmdW5jdGlvbihvLG4pe1kobykmJihpW3RdKz1vKignLSc9PT1lW24tMV0/LTE6MSkpfSl9KSxpfWZ1bmN0aW9uIFgoZSx0KXt2YXIgbyxuPXQub2Zmc2V0LGk9ZS5wbGFjZW1lbnQscj1lLm9mZnNldHMscD1yLnBvcHBlcixzPXIucmVmZXJlbmNlLGQ9aS5zcGxpdCgnLScpWzBdO3JldHVybiBvPVkoK24pP1srbiwwXTpfKG4scCxzLGQpLCdsZWZ0Jz09PWQ/KHAudG9wKz1vWzBdLHAubGVmdC09b1sxXSk6J3JpZ2h0Jz09PWQ/KHAudG9wKz1vWzBdLHAubGVmdCs9b1sxXSk6J3RvcCc9PT1kPyhwLmxlZnQrPW9bMF0scC50b3AtPW9bMV0pOidib3R0b20nPT09ZCYmKHAubGVmdCs9b1swXSxwLnRvcCs9b1sxXSksZS5wb3BwZXI9cCxlfWZvcih2YXIgUT1NYXRoLm1pbixaPU1hdGgucm91bmQsJD1NYXRoLmZsb29yLEo9TWF0aC5tYXgsZWU9J3VuZGVmaW5lZCchPXR5cGVvZiB3aW5kb3cmJid1bmRlZmluZWQnIT10eXBlb2YgZG9jdW1lbnQsdGU9WydFZGdlJywnVHJpZGVudCcsJ0ZpcmVmb3gnXSxvZT0wLG5lPTA7bmU8dGUubGVuZ3RoO25lKz0xKWlmKGVlJiYwPD1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YodGVbbmVdKSl7b2U9MTticmVha312YXIgaT1lZSYmd2luZG93LlByb21pc2UsaWU9aT9mdW5jdGlvbihlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCx3aW5kb3cuUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3Q9ITEsZSgpfSkpfX06ZnVuY3Rpb24oZSl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dHx8KHQ9ITAsc2V0VGltZW91dChmdW5jdGlvbigpe3Q9ITEsZSgpfSxvZSkpfX0scmU9ZWUmJiEhKHdpbmRvdy5NU0lucHV0TWV0aG9kQ29udGV4dCYmZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSxwZT1lZSYmL01TSUUgMTAvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksc2U9ZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKX0sZGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBvLG49MDtuPHQubGVuZ3RoO24rKylvPXRbbl0sby5lbnVtZXJhYmxlPW8uZW51bWVyYWJsZXx8ITEsby5jb25maWd1cmFibGU9ITAsJ3ZhbHVlJ2luIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxvLmtleSxvKX1yZXR1cm4gZnVuY3Rpb24odCxvLG4pe3JldHVybiBvJiZlKHQucHJvdG90eXBlLG8pLG4mJmUodCxuKSx0fX0oKSxhZT1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpvLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1vLGV9LGxlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKylmb3IodmFyIG4gaW4gdD1hcmd1bWVudHNbb10sdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGV9LGZlPVsnYXV0by1zdGFydCcsJ2F1dG8nLCdhdXRvLWVuZCcsJ3RvcC1zdGFydCcsJ3RvcCcsJ3RvcC1lbmQnLCdyaWdodC1zdGFydCcsJ3JpZ2h0JywncmlnaHQtZW5kJywnYm90dG9tLWVuZCcsJ2JvdHRvbScsJ2JvdHRvbS1zdGFydCcsJ2xlZnQtZW5kJywnbGVmdCcsJ2xlZnQtc3RhcnQnXSxtZT1mZS5zbGljZSgzKSxoZT17RkxJUDonZmxpcCcsQ0xPQ0tXSVNFOidjbG9ja3dpc2UnLENPVU5URVJDTE9DS1dJU0U6J2NvdW50ZXJjbG9ja3dpc2UnfSxjZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQobyxuKXt2YXIgaT10aGlzLHI9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O3NlKHRoaXMsdCksdGhpcy5zY2hlZHVsZVVwZGF0ZT1mdW5jdGlvbigpe3JldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaS51cGRhdGUpfSx0aGlzLnVwZGF0ZT1pZSh0aGlzLnVwZGF0ZS5iaW5kKHRoaXMpKSx0aGlzLm9wdGlvbnM9bGUoe30sdC5EZWZhdWx0cyxyKSx0aGlzLnN0YXRlPXtpc0Rlc3Ryb3llZDohMSxpc0NyZWF0ZWQ6ITEsc2Nyb2xsUGFyZW50czpbXX0sdGhpcy5yZWZlcmVuY2U9byYmby5qcXVlcnk/b1swXTpvLHRoaXMucG9wcGVyPW4mJm4uanF1ZXJ5P25bMF06bix0aGlzLm9wdGlvbnMubW9kaWZpZXJzPXt9LE9iamVjdC5rZXlzKGxlKHt9LHQuRGVmYXVsdHMubW9kaWZpZXJzLHIubW9kaWZpZXJzKSkuZm9yRWFjaChmdW5jdGlvbihlKXtpLm9wdGlvbnMubW9kaWZpZXJzW2VdPWxlKHt9LHQuRGVmYXVsdHMubW9kaWZpZXJzW2VdfHx7fSxyLm1vZGlmaWVycz9yLm1vZGlmaWVyc1tlXTp7fSl9KSx0aGlzLm1vZGlmaWVycz1PYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMubW9kaWZpZXJzKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGxlKHtuYW1lOmV9LGkub3B0aW9ucy5tb2RpZmllcnNbZV0pfSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLm9yZGVyLXQub3JkZXJ9KSx0aGlzLm1vZGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZW5hYmxlZCYmZSh0Lm9uTG9hZCkmJnQub25Mb2FkKGkucmVmZXJlbmNlLGkucG9wcGVyLGkub3B0aW9ucyx0LGkuc3RhdGUpfSksdGhpcy51cGRhdGUoKTt2YXIgcD10aGlzLm9wdGlvbnMuZXZlbnRzRW5hYmxlZDtwJiZ0aGlzLmVuYWJsZUV2ZW50TGlzdGVuZXJzKCksdGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkPXB9cmV0dXJuIGRlKHQsW3trZXk6J3VwZGF0ZScsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gay5jYWxsKHRoaXMpfX0se2tleTonZGVzdHJveScsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQi5jYWxsKHRoaXMpfX0se2tleTonZW5hYmxlRXZlbnRMaXN0ZW5lcnMnLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEkuY2FsbCh0aGlzKX19LHtrZXk6J2Rpc2FibGVFdmVudExpc3RlbmVycycsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVS5jYWxsKHRoaXMpfX1dKSx0fSgpO3JldHVybiBjZS5VdGlscz0oJ3VuZGVmaW5lZCc9PXR5cGVvZiB3aW5kb3c/Z2xvYmFsOndpbmRvdykuUG9wcGVyVXRpbHMsY2UucGxhY2VtZW50cz1mZSxjZS5EZWZhdWx0cz17cGxhY2VtZW50Oidib3R0b20nLHBvc2l0aW9uRml4ZWQ6ITEsZXZlbnRzRW5hYmxlZDohMCxyZW1vdmVPbkRlc3Ryb3k6ITEsb25DcmVhdGU6ZnVuY3Rpb24oKXt9LG9uVXBkYXRlOmZ1bmN0aW9uKCl7fSxtb2RpZmllcnM6e3NoaWZ0OntvcmRlcjoxMDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdD1lLnBsYWNlbWVudCxvPXQuc3BsaXQoJy0nKVswXSxuPXQuc3BsaXQoJy0nKVsxXTtpZihuKXt2YXIgaT1lLm9mZnNldHMscj1pLnJlZmVyZW5jZSxwPWkucG9wcGVyLHM9LTEhPT1bJ2JvdHRvbScsJ3RvcCddLmluZGV4T2YobyksZD1zPydsZWZ0JzondG9wJyxhPXM/J3dpZHRoJzonaGVpZ2h0JyxsPXtzdGFydDphZSh7fSxkLHJbZF0pLGVuZDphZSh7fSxkLHJbZF0rclthXS1wW2FdKX07ZS5vZmZzZXRzLnBvcHBlcj1sZSh7fSxwLGxbbl0pfXJldHVybiBlfX0sb2Zmc2V0OntvcmRlcjoyMDAsZW5hYmxlZDohMCxmbjpYLG9mZnNldDowfSxwcmV2ZW50T3ZlcmZsb3c6e29yZGVyOjMwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsdCl7dmFyIG89dC5ib3VuZGFyaWVzRWxlbWVudHx8cChlLmluc3RhbmNlLnBvcHBlcik7ZS5pbnN0YW5jZS5yZWZlcmVuY2U9PT1vJiYobz1wKG8pKTt2YXIgbj1IKCd0cmFuc2Zvcm0nKSxpPWUuaW5zdGFuY2UucG9wcGVyLnN0eWxlLHI9aS50b3Ascz1pLmxlZnQsZD1pW25dO2kudG9wPScnLGkubGVmdD0nJyxpW25dPScnO3ZhciBhPXYoZS5pbnN0YW5jZS5wb3BwZXIsZS5pbnN0YW5jZS5yZWZlcmVuY2UsdC5wYWRkaW5nLG8sZS5wb3NpdGlvbkZpeGVkKTtpLnRvcD1yLGkubGVmdD1zLGlbbl09ZCx0LmJvdW5kYXJpZXM9YTt2YXIgbD10LnByaW9yaXR5LGY9ZS5vZmZzZXRzLnBvcHBlcixtPXtwcmltYXJ5OmZ1bmN0aW9uKGUpe3ZhciBvPWZbZV07cmV0dXJuIGZbZV08YVtlXSYmIXQuZXNjYXBlV2l0aFJlZmVyZW5jZSYmKG89SihmW2VdLGFbZV0pKSxhZSh7fSxlLG8pfSxzZWNvbmRhcnk6ZnVuY3Rpb24oZSl7dmFyIG89J3JpZ2h0Jz09PWU/J2xlZnQnOid0b3AnLG49ZltvXTtyZXR1cm4gZltlXT5hW2VdJiYhdC5lc2NhcGVXaXRoUmVmZXJlbmNlJiYobj1RKGZbb10sYVtlXS0oJ3JpZ2h0Jz09PWU/Zi53aWR0aDpmLmhlaWdodCkpKSxhZSh7fSxvLG4pfX07cmV0dXJuIGwuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0tMT09PVsnbGVmdCcsJ3RvcCddLmluZGV4T2YoZSk/J3NlY29uZGFyeSc6J3ByaW1hcnknO2Y9bGUoe30sZixtW3RdKGUpKX0pLGUub2Zmc2V0cy5wb3BwZXI9ZixlfSxwcmlvcml0eTpbJ2xlZnQnLCdyaWdodCcsJ3RvcCcsJ2JvdHRvbSddLHBhZGRpbmc6NSxib3VuZGFyaWVzRWxlbWVudDonc2Nyb2xsUGFyZW50J30sa2VlcFRvZ2V0aGVyOntvcmRlcjo0MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdD1lLm9mZnNldHMsbz10LnBvcHBlcixuPXQucmVmZXJlbmNlLGk9ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxyPSQscD0tMSE9PVsndG9wJywnYm90dG9tJ10uaW5kZXhPZihpKSxzPXA/J3JpZ2h0JzonYm90dG9tJyxkPXA/J2xlZnQnOid0b3AnLGE9cD8nd2lkdGgnOidoZWlnaHQnO3JldHVybiBvW3NdPHIobltkXSkmJihlLm9mZnNldHMucG9wcGVyW2RdPXIobltkXSktb1thXSksb1tkXT5yKG5bc10pJiYoZS5vZmZzZXRzLnBvcHBlcltkXT1yKG5bc10pKSxlfX0sYXJyb3c6e29yZGVyOjUwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsbyl7dmFyIG47aWYoIXEoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2Fycm93Jywna2VlcFRvZ2V0aGVyJykpcmV0dXJuIGU7dmFyIGk9by5lbGVtZW50O2lmKCdzdHJpbmcnPT10eXBlb2YgaSl7aWYoaT1lLmluc3RhbmNlLnBvcHBlci5xdWVyeVNlbGVjdG9yKGkpLCFpKXJldHVybiBlO31lbHNlIGlmKCFlLmluc3RhbmNlLnBvcHBlci5jb250YWlucyhpKSlyZXR1cm4gY29uc29sZS53YXJuKCdXQVJOSU5HOiBgYXJyb3cuZWxlbWVudGAgbXVzdCBiZSBjaGlsZCBvZiBpdHMgcG9wcGVyIGVsZW1lbnQhJyksZTt2YXIgcj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdLHA9ZS5vZmZzZXRzLHM9cC5wb3BwZXIsZD1wLnJlZmVyZW5jZSxhPS0xIT09WydsZWZ0JywncmlnaHQnXS5pbmRleE9mKHIpLGw9YT8naGVpZ2h0Jzond2lkdGgnLGY9YT8nVG9wJzonTGVmdCcsbT1mLnRvTG93ZXJDYXNlKCksaD1hPydsZWZ0JzondG9wJyxjPWE/J2JvdHRvbSc6J3JpZ2h0Jyx1PVMoaSlbbF07ZFtjXS11PHNbbV0mJihlLm9mZnNldHMucG9wcGVyW21dLT1zW21dLShkW2NdLXUpKSxkW21dK3U+c1tjXSYmKGUub2Zmc2V0cy5wb3BwZXJbbV0rPWRbbV0rdS1zW2NdKSxlLm9mZnNldHMucG9wcGVyPWcoZS5vZmZzZXRzLnBvcHBlcik7dmFyIGI9ZFttXStkW2xdLzItdS8yLHk9dChlLmluc3RhbmNlLnBvcHBlciksdz1wYXJzZUZsb2F0KHlbJ21hcmdpbicrZl0sMTApLEU9cGFyc2VGbG9hdCh5Wydib3JkZXInK2YrJ1dpZHRoJ10sMTApLHY9Yi1lLm9mZnNldHMucG9wcGVyW21dLXctRTtyZXR1cm4gdj1KKFEoc1tsXS11LHYpLDApLGUuYXJyb3dFbGVtZW50PWksZS5vZmZzZXRzLmFycm93PShuPXt9LGFlKG4sbSxaKHYpKSxhZShuLGgsJycpLG4pLGV9LGVsZW1lbnQ6J1t4LWFycm93XSd9LGZsaXA6e29yZGVyOjYwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsdCl7aWYoVyhlLmluc3RhbmNlLm1vZGlmaWVycywnaW5uZXInKSlyZXR1cm4gZTtpZihlLmZsaXBwZWQmJmUucGxhY2VtZW50PT09ZS5vcmlnaW5hbFBsYWNlbWVudClyZXR1cm4gZTt2YXIgbz12KGUuaW5zdGFuY2UucG9wcGVyLGUuaW5zdGFuY2UucmVmZXJlbmNlLHQucGFkZGluZyx0LmJvdW5kYXJpZXNFbGVtZW50LGUucG9zaXRpb25GaXhlZCksbj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdLGk9VChuKSxyPWUucGxhY2VtZW50LnNwbGl0KCctJylbMV18fCcnLHA9W107c3dpdGNoKHQuYmVoYXZpb3Ipe2Nhc2UgaGUuRkxJUDpwPVtuLGldO2JyZWFrO2Nhc2UgaGUuQ0xPQ0tXSVNFOnA9VihuKTticmVhaztjYXNlIGhlLkNPVU5URVJDTE9DS1dJU0U6cD1WKG4sITApO2JyZWFrO2RlZmF1bHQ6cD10LmJlaGF2aW9yO31yZXR1cm4gcC5mb3JFYWNoKGZ1bmN0aW9uKHMsZCl7aWYobiE9PXN8fHAubGVuZ3RoPT09ZCsxKXJldHVybiBlO249ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxpPVQobik7dmFyIGE9ZS5vZmZzZXRzLnBvcHBlcixsPWUub2Zmc2V0cy5yZWZlcmVuY2UsZj0kLG09J2xlZnQnPT09biYmZihhLnJpZ2h0KT5mKGwubGVmdCl8fCdyaWdodCc9PT1uJiZmKGEubGVmdCk8ZihsLnJpZ2h0KXx8J3RvcCc9PT1uJiZmKGEuYm90dG9tKT5mKGwudG9wKXx8J2JvdHRvbSc9PT1uJiZmKGEudG9wKTxmKGwuYm90dG9tKSxoPWYoYS5sZWZ0KTxmKG8ubGVmdCksYz1mKGEucmlnaHQpPmYoby5yaWdodCksZz1mKGEudG9wKTxmKG8udG9wKSx1PWYoYS5ib3R0b20pPmYoby5ib3R0b20pLGI9J2xlZnQnPT09biYmaHx8J3JpZ2h0Jz09PW4mJmN8fCd0b3AnPT09biYmZ3x8J2JvdHRvbSc9PT1uJiZ1LHk9LTEhPT1bJ3RvcCcsJ2JvdHRvbSddLmluZGV4T2Yobiksdz0hIXQuZmxpcFZhcmlhdGlvbnMmJih5JiYnc3RhcnQnPT09ciYmaHx8eSYmJ2VuZCc9PT1yJiZjfHwheSYmJ3N0YXJ0Jz09PXImJmd8fCF5JiYnZW5kJz09PXImJnUpOyhtfHxifHx3KSYmKGUuZmxpcHBlZD0hMCwobXx8YikmJihuPXBbZCsxXSksdyYmKHI9RyhyKSksZS5wbGFjZW1lbnQ9bisocj8nLScrcjonJyksZS5vZmZzZXRzLnBvcHBlcj1sZSh7fSxlLm9mZnNldHMucG9wcGVyLEQoZS5pbnN0YW5jZS5wb3BwZXIsZS5vZmZzZXRzLnJlZmVyZW5jZSxlLnBsYWNlbWVudCkpLGU9UChlLmluc3RhbmNlLm1vZGlmaWVycyxlLCdmbGlwJykpfSksZX0sYmVoYXZpb3I6J2ZsaXAnLHBhZGRpbmc6NSxib3VuZGFyaWVzRWxlbWVudDondmlld3BvcnQnfSxpbm5lcjp7b3JkZXI6NzAwLGVuYWJsZWQ6ITEsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wbGFjZW1lbnQsbz10LnNwbGl0KCctJylbMF0sbj1lLm9mZnNldHMsaT1uLnBvcHBlcixyPW4ucmVmZXJlbmNlLHA9LTEhPT1bJ2xlZnQnLCdyaWdodCddLmluZGV4T2Yobykscz0tMT09PVsndG9wJywnbGVmdCddLmluZGV4T2Yobyk7cmV0dXJuIGlbcD8nbGVmdCc6J3RvcCddPXJbb10tKHM/aVtwPyd3aWR0aCc6J2hlaWdodCddOjApLGUucGxhY2VtZW50PVQodCksZS5vZmZzZXRzLnBvcHBlcj1nKGkpLGV9fSxoaWRlOntvcmRlcjo4MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXtpZighcShlLmluc3RhbmNlLm1vZGlmaWVycywnaGlkZScsJ3ByZXZlbnRPdmVyZmxvdycpKXJldHVybiBlO3ZhciB0PWUub2Zmc2V0cy5yZWZlcmVuY2Usbz1DKGUuaW5zdGFuY2UubW9kaWZpZXJzLGZ1bmN0aW9uKGUpe3JldHVybidwcmV2ZW50T3ZlcmZsb3cnPT09ZS5uYW1lfSkuYm91bmRhcmllcztpZih0LmJvdHRvbTxvLnRvcHx8dC5sZWZ0Pm8ucmlnaHR8fHQudG9wPm8uYm90dG9tfHx0LnJpZ2h0PG8ubGVmdCl7aWYoITA9PT1lLmhpZGUpcmV0dXJuIGU7ZS5oaWRlPSEwLGUuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddPScnfWVsc2V7aWYoITE9PT1lLmhpZGUpcmV0dXJuIGU7ZS5oaWRlPSExLGUuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddPSExfXJldHVybiBlfX0sY29tcHV0ZVN0eWxlOntvcmRlcjo4NTAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe3ZhciBvPXQueCxuPXQueSxpPWUub2Zmc2V0cy5wb3BwZXIscj1DKGUuaW5zdGFuY2UubW9kaWZpZXJzLGZ1bmN0aW9uKGUpe3JldHVybidhcHBseVN0eWxlJz09PWUubmFtZX0pLmdwdUFjY2VsZXJhdGlvbjt2b2lkIDAhPT1yJiZjb25zb2xlLndhcm4oJ1dBUk5JTkc6IGBncHVBY2NlbGVyYXRpb25gIG9wdGlvbiBtb3ZlZCB0byBgY29tcHV0ZVN0eWxlYCBtb2RpZmllciBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiBQb3BwZXIuanMhJyk7dmFyIHMsZCxhPXZvaWQgMD09PXI/dC5ncHVBY2NlbGVyYXRpb246cixsPXAoZS5pbnN0YW5jZS5wb3BwZXIpLGY9dShsKSxtPXtwb3NpdGlvbjppLnBvc2l0aW9ufSxoPXtsZWZ0OiQoaS5sZWZ0KSx0b3A6WihpLnRvcCksYm90dG9tOlooaS5ib3R0b20pLHJpZ2h0OiQoaS5yaWdodCl9LGM9J2JvdHRvbSc9PT1vPyd0b3AnOidib3R0b20nLGc9J3JpZ2h0Jz09PW4/J2xlZnQnOidyaWdodCcsYj1IKCd0cmFuc2Zvcm0nKTtpZihkPSdib3R0b20nPT1jPydIVE1MJz09PWwubm9kZU5hbWU/LWwuY2xpZW50SGVpZ2h0K2guYm90dG9tOi1mLmhlaWdodCtoLmJvdHRvbTpoLnRvcCxzPSdyaWdodCc9PWc/J0hUTUwnPT09bC5ub2RlTmFtZT8tbC5jbGllbnRXaWR0aCtoLnJpZ2h0Oi1mLndpZHRoK2gucmlnaHQ6aC5sZWZ0LGEmJmIpbVtiXT0ndHJhbnNsYXRlM2QoJytzKydweCwgJytkKydweCwgMCknLG1bY109MCxtW2ddPTAsbS53aWxsQ2hhbmdlPSd0cmFuc2Zvcm0nO2Vsc2V7dmFyIHk9J2JvdHRvbSc9PWM/LTE6MSx3PSdyaWdodCc9PWc/LTE6MTttW2NdPWQqeSxtW2ddPXMqdyxtLndpbGxDaGFuZ2U9YysnLCAnK2d9dmFyIEU9e1wieC1wbGFjZW1lbnRcIjplLnBsYWNlbWVudH07cmV0dXJuIGUuYXR0cmlidXRlcz1sZSh7fSxFLGUuYXR0cmlidXRlcyksZS5zdHlsZXM9bGUoe30sbSxlLnN0eWxlcyksZS5hcnJvd1N0eWxlcz1sZSh7fSxlLm9mZnNldHMuYXJyb3csZS5hcnJvd1N0eWxlcyksZX0sZ3B1QWNjZWxlcmF0aW9uOiEwLHg6J2JvdHRvbScseToncmlnaHQnfSxhcHBseVN0eWxlOntvcmRlcjo5MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXtyZXR1cm4gaihlLmluc3RhbmNlLnBvcHBlcixlLnN0eWxlcyksSyhlLmluc3RhbmNlLnBvcHBlcixlLmF0dHJpYnV0ZXMpLGUuYXJyb3dFbGVtZW50JiZPYmplY3Qua2V5cyhlLmFycm93U3R5bGVzKS5sZW5ndGgmJmooZS5hcnJvd0VsZW1lbnQsZS5hcnJvd1N0eWxlcyksZX0sb25Mb2FkOmZ1bmN0aW9uKGUsdCxvLG4saSl7dmFyIHI9TChpLHQsZSxvLnBvc2l0aW9uRml4ZWQpLHA9TyhvLnBsYWNlbWVudCxyLHQsZSxvLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50LG8ubW9kaWZpZXJzLmZsaXAucGFkZGluZyk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCd4LXBsYWNlbWVudCcscCksaih0LHtwb3NpdGlvbjpvLnBvc2l0aW9uRml4ZWQ/J2ZpeGVkJzonYWJzb2x1dGUnfSksb30sZ3B1QWNjZWxlcmF0aW9uOnZvaWQgMH19fSxjZX0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wb3BwZXIubWluLmpzLm1hcCIsIi8qIVxuICAqIEJvb3RzdHJhcCB2NC4xLjAgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXG4gICogQ29weXJpZ2h0IDIwMTEtMjAxOCBUaGUgQm9vdHN0cmFwIEF1dGhvcnMgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ncmFwaHMvY29udHJpYnV0b3JzKVxuICAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4gICovXG4hZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9lKGV4cG9ydHMscmVxdWlyZShcImpxdWVyeVwiKSxyZXF1aXJlKFwicG9wcGVyLmpzXCIpKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtcImV4cG9ydHNcIixcImpxdWVyeVwiLFwicG9wcGVyLmpzXCJdLGUpOmUodC5ib290c3RyYXA9e30sdC5qUXVlcnksdC5Qb3BwZXIpfSh0aGlzLGZ1bmN0aW9uKHQsZSxjKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkua2V5LGkpfX1mdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gZSYmaSh0LnByb3RvdHlwZSxlKSxuJiZpKHQsbiksdH1mdW5jdGlvbiBoKHIpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBzPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30sZT1PYmplY3Qua2V5cyhzKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYoZT1lLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLHQpLmVudW1lcmFibGV9KSkpLGUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZSxuLGk7ZT1yLGk9c1tuPXRdLG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT1pfSl9cmV0dXJuIHJ9ZT1lJiZlLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFwiKT9lLmRlZmF1bHQ6ZSxjPWMmJmMuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0XCIpP2MuZGVmYXVsdDpjO3ZhciByLG4scyxhLGwsdSxmLGQsXyxnLG0scCx2LEUseSxULEMsSSxBLEQsYixTLHcsTixPLGssUCxMLGosUixILFcsTSx4LFUsSyxGLFYsUSxCLFksRyxxLHosWCxKLFosJCx0dCxldCxudCxpdCxydCxzdCxvdCxhdCxsdCxodCxjdCx1dCxmdCxkdCxfdCxndCxtdCxwdCx2dCxFdCx5dCxUdCxDdCxJdCxBdCxEdCxidCxTdCx3dCxOdCxPdCxrdCxQdCxMdCxqdCxSdCxIdCxXdCxNdCx4dCxVdCxLdCxGdCxWdCxRdCxCdCxZdCxHdCxxdCx6dCxYdCxKdCxadCwkdCx0ZSxlZSxuZSxpZSxyZSxzZSxvZSxhZSxsZSxoZSxjZSx1ZSxmZSxkZSxfZSxnZSxtZSxwZSx2ZSxFZSx5ZSxUZSxDZSxJZSxBZSxEZSxiZSxTZSx3ZSxOZSxPZSxrZSxQZSxMZSxqZSxSZSxIZSxXZSxNZSx4ZSxVZSxLZSxGZSxWZSxRZSxCZSxZZSxHZSxxZSx6ZSxYZSxKZSxaZSwkZSx0bixlbixubixybixzbixvbixhbixsbixobixjbix1bixmbixkbixfbixnbixtbixwbix2bixFbix5bixUbixDbj1mdW5jdGlvbihpKXt2YXIgZT1cInRyYW5zaXRpb25lbmRcIjtmdW5jdGlvbiB0KHQpe3ZhciBlPXRoaXMsbj0hMTtyZXR1cm4gaSh0aGlzKS5vbmUobC5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe249ITB9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bnx8bC50cmlnZ2VyVHJhbnNpdGlvbkVuZChlKX0sdCksdGhpc312YXIgbD17VFJBTlNJVElPTl9FTkQ6XCJic1RyYW5zaXRpb25FbmRcIixnZXRVSUQ6ZnVuY3Rpb24odCl7Zm9yKDt0Kz1+figxZTYqTWF0aC5yYW5kb20oKSksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCk7KTtyZXR1cm4gdH0sZ2V0U2VsZWN0b3JGcm9tRWxlbWVudDpmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZShcImRhdGEtdGFyZ2V0XCIpO2UmJlwiI1wiIT09ZXx8KGU9dC5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpfHxcIlwiKTt0cnl7cmV0dXJuIDA8aShkb2N1bWVudCkuZmluZChlKS5sZW5ndGg/ZTpudWxsfWNhdGNoKHQpe3JldHVybiBudWxsfX0sZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQ6ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIDA7dmFyIGU9aSh0KS5jc3MoXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIpO3JldHVybiBwYXJzZUZsb2F0KGUpPyhlPWUuc3BsaXQoXCIsXCIpWzBdLDFlMypwYXJzZUZsb2F0KGUpKTowfSxyZWZsb3c6ZnVuY3Rpb24odCl7cmV0dXJuIHQub2Zmc2V0SGVpZ2h0fSx0cmlnZ2VyVHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0KXtpKHQpLnRyaWdnZXIoZSl9LHN1cHBvcnRzVHJhbnNpdGlvbkVuZDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKGUpfSxpc0VsZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuKHRbMF18fHQpLm5vZGVUeXBlfSx0eXBlQ2hlY2tDb25maWc6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSBpbiBuKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpKXt2YXIgcj1uW2ldLHM9ZVtpXSxvPXMmJmwuaXNFbGVtZW50KHMpP1wiZWxlbWVudFwiOihhPXMse30udG9TdHJpbmcuY2FsbChhKS5tYXRjaCgvXFxzKFthLXpdKykvaSlbMV0udG9Mb3dlckNhc2UoKSk7aWYoIW5ldyBSZWdFeHAocikudGVzdChvKSl0aHJvdyBuZXcgRXJyb3IodC50b1VwcGVyQ2FzZSgpKyc6IE9wdGlvbiBcIicraSsnXCIgcHJvdmlkZWQgdHlwZSBcIicrbysnXCIgYnV0IGV4cGVjdGVkIHR5cGUgXCInK3IrJ1wiLicpfXZhciBhfX07cmV0dXJuIGkuZm4uZW11bGF0ZVRyYW5zaXRpb25FbmQ9dCxpLmV2ZW50LnNwZWNpYWxbbC5UUkFOU0lUSU9OX0VORF09e2JpbmRUeXBlOmUsZGVsZWdhdGVUeXBlOmUsaGFuZGxlOmZ1bmN0aW9uKHQpe2lmKGkodC50YXJnZXQpLmlzKHRoaXMpKXJldHVybiB0LmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LGx9KGUpLEluPShuPVwiYWxlcnRcIixhPVwiLlwiKyhzPVwiYnMuYWxlcnRcIiksbD0ocj1lKS5mbltuXSx1PXtDTE9TRTpcImNsb3NlXCIrYSxDTE9TRUQ6XCJjbG9zZWRcIithLENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIithK1wiLmRhdGEtYXBpXCJ9LGY9XCJhbGVydFwiLGQ9XCJmYWRlXCIsXz1cInNob3dcIixnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0KXt0aGlzLl9lbGVtZW50PXR9dmFyIHQ9aS5wcm90b3R5cGU7cmV0dXJuIHQuY2xvc2U9ZnVuY3Rpb24odCl7dD10fHx0aGlzLl9lbGVtZW50O3ZhciBlPXRoaXMuX2dldFJvb3RFbGVtZW50KHQpO3RoaXMuX3RyaWdnZXJDbG9zZUV2ZW50KGUpLmlzRGVmYXVsdFByZXZlbnRlZCgpfHx0aGlzLl9yZW1vdmVFbGVtZW50KGUpfSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtyLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxzKSx0aGlzLl9lbGVtZW50PW51bGx9LHQuX2dldFJvb3RFbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCksbj0hMTtyZXR1cm4gZSYmKG49cihlKVswXSksbnx8KG49cih0KS5jbG9zZXN0KFwiLlwiK2YpWzBdKSxufSx0Ll90cmlnZ2VyQ2xvc2VFdmVudD1mdW5jdGlvbih0KXt2YXIgZT1yLkV2ZW50KHUuQ0xPU0UpO3JldHVybiByKHQpLnRyaWdnZXIoZSksZX0sdC5fcmVtb3ZlRWxlbWVudD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKHIoZSkucmVtb3ZlQ2xhc3MoXykscihlKS5oYXNDbGFzcyhkKSl7dmFyIHQ9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQoZSk7cihlKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24odCl7cmV0dXJuIG4uX2Rlc3Ryb3lFbGVtZW50KGUsdCl9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZCh0KX1lbHNlIHRoaXMuX2Rlc3Ryb3lFbGVtZW50KGUpfSx0Ll9kZXN0cm95RWxlbWVudD1mdW5jdGlvbih0KXtyKHQpLmRldGFjaCgpLnRyaWdnZXIodS5DTE9TRUQpLnJlbW92ZSgpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXIodGhpcyksZT10LmRhdGEocyk7ZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKHMsZSkpLFwiY2xvc2VcIj09PW4mJmVbbl0odGhpcyl9KX0saS5faGFuZGxlRGlzbWlzcz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dCYmdC5wcmV2ZW50RGVmYXVsdCgpLGUuY2xvc2UodGhpcyl9fSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fV0pLGl9KCkscihkb2N1bWVudCkub24odS5DTElDS19EQVRBX0FQSSwnW2RhdGEtZGlzbWlzcz1cImFsZXJ0XCJdJyxnLl9oYW5kbGVEaXNtaXNzKG5ldyBnKSksci5mbltuXT1nLl9qUXVlcnlJbnRlcmZhY2Usci5mbltuXS5Db25zdHJ1Y3Rvcj1nLHIuZm5bbl0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiByLmZuW25dPWwsZy5falF1ZXJ5SW50ZXJmYWNlfSxnKSxBbj0ocD1cImJ1dHRvblwiLEU9XCIuXCIrKHY9XCJicy5idXR0b25cIikseT1cIi5kYXRhLWFwaVwiLFQ9KG09ZSkuZm5bcF0sQz1cImFjdGl2ZVwiLEk9XCJidG5cIixEPSdbZGF0YS10b2dnbGVePVwiYnV0dG9uXCJdJyxiPSdbZGF0YS10b2dnbGU9XCJidXR0b25zXCJdJyxTPVwiaW5wdXRcIix3PVwiLmFjdGl2ZVwiLE49XCIuYnRuXCIsTz17Q0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK0UreSxGT0NVU19CTFVSX0RBVEFfQVBJOihBPVwiZm9jdXNcIikrRSt5K1wiIGJsdXJcIitFK3l9LGs9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1uLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24oKXt2YXIgdD0hMCxlPSEwLG49bSh0aGlzLl9lbGVtZW50KS5jbG9zZXN0KGIpWzBdO2lmKG4pe3ZhciBpPW0odGhpcy5fZWxlbWVudCkuZmluZChTKVswXTtpZihpKXtpZihcInJhZGlvXCI9PT1pLnR5cGUpaWYoaS5jaGVja2VkJiZtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpKXQ9ITE7ZWxzZXt2YXIgcj1tKG4pLmZpbmQodylbMF07ciYmbShyKS5yZW1vdmVDbGFzcyhDKX1pZih0KXtpZihpLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxuLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxpLmNsYXNzTGlzdC5jb250YWlucyhcImRpc2FibGVkXCIpfHxuLmNsYXNzTGlzdC5jb250YWlucyhcImRpc2FibGVkXCIpKXJldHVybjtpLmNoZWNrZWQ9IW0odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoQyksbShpKS50cmlnZ2VyKFwiY2hhbmdlXCIpfWkuZm9jdXMoKSxlPSExfX1lJiZ0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtcHJlc3NlZFwiLCFtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpKSx0JiZtKHRoaXMuX2VsZW1lbnQpLnRvZ2dsZUNsYXNzKEMpfSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXttLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCx2KSx0aGlzLl9lbGVtZW50PW51bGx9LG4uX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bSh0aGlzKS5kYXRhKHYpO3R8fCh0PW5ldyBuKHRoaXMpLG0odGhpcykuZGF0YSh2LHQpKSxcInRvZ2dsZVwiPT09ZSYmdFtlXSgpfSl9LG8obixudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19XSksbn0oKSxtKGRvY3VtZW50KS5vbihPLkNMSUNLX0RBVEFfQVBJLEQsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBlPXQudGFyZ2V0O20oZSkuaGFzQ2xhc3MoSSl8fChlPW0oZSkuY2xvc2VzdChOKSksay5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobShlKSxcInRvZ2dsZVwiKX0pLm9uKE8uRk9DVVNfQkxVUl9EQVRBX0FQSSxELGZ1bmN0aW9uKHQpe3ZhciBlPW0odC50YXJnZXQpLmNsb3Nlc3QoTilbMF07bShlKS50b2dnbGVDbGFzcyhBLC9eZm9jdXMoaW4pPyQvLnRlc3QodC50eXBlKSl9KSxtLmZuW3BdPWsuX2pRdWVyeUludGVyZmFjZSxtLmZuW3BdLkNvbnN0cnVjdG9yPWssbS5mbltwXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG0uZm5bcF09VCxrLl9qUXVlcnlJbnRlcmZhY2V9LGspLERuPShMPVwiY2Fyb3VzZWxcIixSPVwiLlwiKyhqPVwiYnMuY2Fyb3VzZWxcIiksSD1cIi5kYXRhLWFwaVwiLFc9KFA9ZSkuZm5bTF0sTT17aW50ZXJ2YWw6NWUzLGtleWJvYXJkOiEwLHNsaWRlOiExLHBhdXNlOlwiaG92ZXJcIix3cmFwOiEwfSx4PXtpbnRlcnZhbDpcIihudW1iZXJ8Ym9vbGVhbilcIixrZXlib2FyZDpcImJvb2xlYW5cIixzbGlkZTpcIihib29sZWFufHN0cmluZylcIixwYXVzZTpcIihzdHJpbmd8Ym9vbGVhbilcIix3cmFwOlwiYm9vbGVhblwifSxVPVwibmV4dFwiLEs9XCJwcmV2XCIsRj1cImxlZnRcIixWPVwicmlnaHRcIixRPXtTTElERTpcInNsaWRlXCIrUixTTElEOlwic2xpZFwiK1IsS0VZRE9XTjpcImtleWRvd25cIitSLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIrUixNT1VTRUxFQVZFOlwibW91c2VsZWF2ZVwiK1IsVE9VQ0hFTkQ6XCJ0b3VjaGVuZFwiK1IsTE9BRF9EQVRBX0FQSTpcImxvYWRcIitSK0gsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK1IrSH0sQj1cImNhcm91c2VsXCIsWT1cImFjdGl2ZVwiLEc9XCJzbGlkZVwiLHE9XCJjYXJvdXNlbC1pdGVtLXJpZ2h0XCIsej1cImNhcm91c2VsLWl0ZW0tbGVmdFwiLFg9XCJjYXJvdXNlbC1pdGVtLW5leHRcIixKPVwiY2Fyb3VzZWwtaXRlbS1wcmV2XCIsWj17QUNUSVZFOlwiLmFjdGl2ZVwiLEFDVElWRV9JVEVNOlwiLmFjdGl2ZS5jYXJvdXNlbC1pdGVtXCIsSVRFTTpcIi5jYXJvdXNlbC1pdGVtXCIsTkVYVF9QUkVWOlwiLmNhcm91c2VsLWl0ZW0tbmV4dCwgLmNhcm91c2VsLWl0ZW0tcHJldlwiLElORElDQVRPUlM6XCIuY2Fyb3VzZWwtaW5kaWNhdG9yc1wiLERBVEFfU0xJREU6XCJbZGF0YS1zbGlkZV0sIFtkYXRhLXNsaWRlLXRvXVwiLERBVEFfUklERTonW2RhdGEtcmlkZT1cImNhcm91c2VsXCJdJ30sJD1mdW5jdGlvbigpe2Z1bmN0aW9uIHModCxlKXt0aGlzLl9pdGVtcz1udWxsLHRoaXMuX2ludGVydmFsPW51bGwsdGhpcy5fYWN0aXZlRWxlbWVudD1udWxsLHRoaXMuX2lzUGF1c2VkPSExLHRoaXMuX2lzU2xpZGluZz0hMSx0aGlzLnRvdWNoVGltZW91dD1udWxsLHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fZWxlbWVudD1QKHQpWzBdLHRoaXMuX2luZGljYXRvcnNFbGVtZW50PVAodGhpcy5fZWxlbWVudCkuZmluZChaLklORElDQVRPUlMpWzBdLHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJzKCl9dmFyIHQ9cy5wcm90b3R5cGU7cmV0dXJuIHQubmV4dD1mdW5jdGlvbigpe3RoaXMuX2lzU2xpZGluZ3x8dGhpcy5fc2xpZGUoVSl9LHQubmV4dFdoZW5WaXNpYmxlPWZ1bmN0aW9uKCl7IWRvY3VtZW50LmhpZGRlbiYmUCh0aGlzLl9lbGVtZW50KS5pcyhcIjp2aXNpYmxlXCIpJiZcImhpZGRlblwiIT09UCh0aGlzLl9lbGVtZW50KS5jc3MoXCJ2aXNpYmlsaXR5XCIpJiZ0aGlzLm5leHQoKX0sdC5wcmV2PWZ1bmN0aW9uKCl7dGhpcy5faXNTbGlkaW5nfHx0aGlzLl9zbGlkZShLKX0sdC5wYXVzZT1mdW5jdGlvbih0KXt0fHwodGhpcy5faXNQYXVzZWQ9ITApLFAodGhpcy5fZWxlbWVudCkuZmluZChaLk5FWFRfUFJFVilbMF0mJihDbi50cmlnZ2VyVHJhbnNpdGlvbkVuZCh0aGlzLl9lbGVtZW50KSx0aGlzLmN5Y2xlKCEwKSksY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbH0sdC5jeWNsZT1mdW5jdGlvbih0KXt0fHwodGhpcy5faXNQYXVzZWQ9ITEpLHRoaXMuX2ludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbCksdGhpcy5fY29uZmlnLmludGVydmFsJiYhdGhpcy5faXNQYXVzZWQmJih0aGlzLl9pbnRlcnZhbD1zZXRJbnRlcnZhbCgoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP3RoaXMubmV4dFdoZW5WaXNpYmxlOnRoaXMubmV4dCkuYmluZCh0aGlzKSx0aGlzLl9jb25maWcuaW50ZXJ2YWwpKX0sdC50bz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2FjdGl2ZUVsZW1lbnQ9UCh0aGlzLl9lbGVtZW50KS5maW5kKFouQUNUSVZFX0lURU0pWzBdO3ZhciBuPXRoaXMuX2dldEl0ZW1JbmRleCh0aGlzLl9hY3RpdmVFbGVtZW50KTtpZighKHQ+dGhpcy5faXRlbXMubGVuZ3RoLTF8fHQ8MCkpaWYodGhpcy5faXNTbGlkaW5nKVAodGhpcy5fZWxlbWVudCkub25lKFEuU0xJRCxmdW5jdGlvbigpe3JldHVybiBlLnRvKHQpfSk7ZWxzZXtpZihuPT09dClyZXR1cm4gdGhpcy5wYXVzZSgpLHZvaWQgdGhpcy5jeWNsZSgpO3ZhciBpPW48dD9VOks7dGhpcy5fc2xpZGUoaSx0aGlzLl9pdGVtc1t0XSl9fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtQKHRoaXMuX2VsZW1lbnQpLm9mZihSKSxQLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxqKSx0aGlzLl9pdGVtcz1udWxsLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9pbnRlcnZhbD1udWxsLHRoaXMuX2lzUGF1c2VkPW51bGwsdGhpcy5faXNTbGlkaW5nPW51bGwsdGhpcy5fYWN0aXZlRWxlbWVudD1udWxsLHRoaXMuX2luZGljYXRvcnNFbGVtZW50PW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1oKHt9LE0sdCksQ24udHlwZUNoZWNrQ29uZmlnKEwsdCx4KSx0fSx0Ll9hZGRFdmVudExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fY29uZmlnLmtleWJvYXJkJiZQKHRoaXMuX2VsZW1lbnQpLm9uKFEuS0VZRE9XTixmdW5jdGlvbih0KXtyZXR1cm4gZS5fa2V5ZG93bih0KX0pLFwiaG92ZXJcIj09PXRoaXMuX2NvbmZpZy5wYXVzZSYmKFAodGhpcy5fZWxlbWVudCkub24oUS5NT1VTRUVOVEVSLGZ1bmN0aW9uKHQpe3JldHVybiBlLnBhdXNlKHQpfSkub24oUS5NT1VTRUxFQVZFLGZ1bmN0aW9uKHQpe3JldHVybiBlLmN5Y2xlKHQpfSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmUCh0aGlzLl9lbGVtZW50KS5vbihRLlRPVUNIRU5ELGZ1bmN0aW9uKCl7ZS5wYXVzZSgpLGUudG91Y2hUaW1lb3V0JiZjbGVhclRpbWVvdXQoZS50b3VjaFRpbWVvdXQpLGUudG91Y2hUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24odCl7cmV0dXJuIGUuY3ljbGUodCl9LDUwMCtlLl9jb25maWcuaW50ZXJ2YWwpfSkpfSx0Ll9rZXlkb3duPWZ1bmN0aW9uKHQpe2lmKCEvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpKXN3aXRjaCh0LndoaWNoKXtjYXNlIDM3OnQucHJldmVudERlZmF1bHQoKSx0aGlzLnByZXYoKTticmVhaztjYXNlIDM5OnQucHJldmVudERlZmF1bHQoKSx0aGlzLm5leHQoKX19LHQuX2dldEl0ZW1JbmRleD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXRlbXM9UC5tYWtlQXJyYXkoUCh0KS5wYXJlbnQoKS5maW5kKFouSVRFTSkpLHRoaXMuX2l0ZW1zLmluZGV4T2YodCl9LHQuX2dldEl0ZW1CeURpcmVjdGlvbj1mdW5jdGlvbih0LGUpe3ZhciBuPXQ9PT1VLGk9dD09PUsscj10aGlzLl9nZXRJdGVtSW5kZXgoZSkscz10aGlzLl9pdGVtcy5sZW5ndGgtMTtpZigoaSYmMD09PXJ8fG4mJnI9PT1zKSYmIXRoaXMuX2NvbmZpZy53cmFwKXJldHVybiBlO3ZhciBvPShyKyh0PT09Sz8tMToxKSkldGhpcy5faXRlbXMubGVuZ3RoO3JldHVybi0xPT09bz90aGlzLl9pdGVtc1t0aGlzLl9pdGVtcy5sZW5ndGgtMV06dGhpcy5faXRlbXNbb119LHQuX3RyaWdnZXJTbGlkZUV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fZ2V0SXRlbUluZGV4KHQpLGk9dGhpcy5fZ2V0SXRlbUluZGV4KFAodGhpcy5fZWxlbWVudCkuZmluZChaLkFDVElWRV9JVEVNKVswXSkscj1QLkV2ZW50KFEuU0xJREUse3JlbGF0ZWRUYXJnZXQ6dCxkaXJlY3Rpb246ZSxmcm9tOmksdG86bn0pO3JldHVybiBQKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIocikscn0sdC5fc2V0QWN0aXZlSW5kaWNhdG9yRWxlbWVudD1mdW5jdGlvbih0KXtpZih0aGlzLl9pbmRpY2F0b3JzRWxlbWVudCl7UCh0aGlzLl9pbmRpY2F0b3JzRWxlbWVudCkuZmluZChaLkFDVElWRSkucmVtb3ZlQ2xhc3MoWSk7dmFyIGU9dGhpcy5faW5kaWNhdG9yc0VsZW1lbnQuY2hpbGRyZW5bdGhpcy5fZ2V0SXRlbUluZGV4KHQpXTtlJiZQKGUpLmFkZENsYXNzKFkpfX0sdC5fc2xpZGU9ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIscz10aGlzLG89UCh0aGlzLl9lbGVtZW50KS5maW5kKFouQUNUSVZFX0lURU0pWzBdLGE9dGhpcy5fZ2V0SXRlbUluZGV4KG8pLGw9ZXx8byYmdGhpcy5fZ2V0SXRlbUJ5RGlyZWN0aW9uKHQsbyksaD10aGlzLl9nZXRJdGVtSW5kZXgobCksYz1Cb29sZWFuKHRoaXMuX2ludGVydmFsKTtpZih0PT09VT8obj16LGk9WCxyPUYpOihuPXEsaT1KLHI9ViksbCYmUChsKS5oYXNDbGFzcyhZKSl0aGlzLl9pc1NsaWRpbmc9ITE7ZWxzZSBpZighdGhpcy5fdHJpZ2dlclNsaWRlRXZlbnQobCxyKS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmbyYmbCl7dGhpcy5faXNTbGlkaW5nPSEwLGMmJnRoaXMucGF1c2UoKSx0aGlzLl9zZXRBY3RpdmVJbmRpY2F0b3JFbGVtZW50KGwpO3ZhciB1PVAuRXZlbnQoUS5TTElELHtyZWxhdGVkVGFyZ2V0OmwsZGlyZWN0aW9uOnIsZnJvbTphLHRvOmh9KTtpZihQKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEcpKXtQKGwpLmFkZENsYXNzKGkpLENuLnJlZmxvdyhsKSxQKG8pLmFkZENsYXNzKG4pLFAobCkuYWRkQ2xhc3Mobik7dmFyIGY9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQobyk7UChvKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXtQKGwpLnJlbW92ZUNsYXNzKG4rXCIgXCIraSkuYWRkQ2xhc3MoWSksUChvKS5yZW1vdmVDbGFzcyhZK1wiIFwiK2krXCIgXCIrbikscy5faXNTbGlkaW5nPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gUChzLl9lbGVtZW50KS50cmlnZ2VyKHUpfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGYpfWVsc2UgUChvKS5yZW1vdmVDbGFzcyhZKSxQKGwpLmFkZENsYXNzKFkpLHRoaXMuX2lzU2xpZGluZz0hMSxQKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIodSk7YyYmdGhpcy5jeWNsZSgpfX0scy5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1QKHRoaXMpLmRhdGEoaiksZT1oKHt9LE0sUCh0aGlzKS5kYXRhKCkpO1wib2JqZWN0XCI9PXR5cGVvZiBpJiYoZT1oKHt9LGUsaSkpO3ZhciBuPVwic3RyaW5nXCI9PXR5cGVvZiBpP2k6ZS5zbGlkZTtpZih0fHwodD1uZXcgcyh0aGlzLGUpLFAodGhpcykuZGF0YShqLHQpKSxcIm51bWJlclwiPT10eXBlb2YgaSl0LnRvKGkpO2Vsc2UgaWYoXCJzdHJpbmdcIj09dHlwZW9mIG4pe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W25dKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrbisnXCInKTt0W25dKCl9ZWxzZSBlLmludGVydmFsJiYodC5wYXVzZSgpLHQuY3ljbGUoKSl9KX0scy5fZGF0YUFwaUNsaWNrSGFuZGxlcj1mdW5jdGlvbih0KXt2YXIgZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMpO2lmKGUpe3ZhciBuPVAoZSlbMF07aWYobiYmUChuKS5oYXNDbGFzcyhCKSl7dmFyIGk9aCh7fSxQKG4pLmRhdGEoKSxQKHRoaXMpLmRhdGEoKSkscj10aGlzLmdldEF0dHJpYnV0ZShcImRhdGEtc2xpZGUtdG9cIik7ciYmKGkuaW50ZXJ2YWw9ITEpLHMuX2pRdWVyeUludGVyZmFjZS5jYWxsKFAobiksaSksciYmUChuKS5kYXRhKGopLnRvKHIpLHQucHJldmVudERlZmF1bHQoKX19fSxvKHMsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBNfX1dKSxzfSgpLFAoZG9jdW1lbnQpLm9uKFEuQ0xJQ0tfREFUQV9BUEksWi5EQVRBX1NMSURFLCQuX2RhdGFBcGlDbGlja0hhbmRsZXIpLFAod2luZG93KS5vbihRLkxPQURfREFUQV9BUEksZnVuY3Rpb24oKXtQKFouREFUQV9SSURFKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9UCh0aGlzKTskLl9qUXVlcnlJbnRlcmZhY2UuY2FsbCh0LHQuZGF0YSgpKX0pfSksUC5mbltMXT0kLl9qUXVlcnlJbnRlcmZhY2UsUC5mbltMXS5Db25zdHJ1Y3Rvcj0kLFAuZm5bTF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBQLmZuW0xdPVcsJC5falF1ZXJ5SW50ZXJmYWNlfSwkKSxibj0oZXQ9XCJjb2xsYXBzZVwiLGl0PVwiLlwiKyhudD1cImJzLmNvbGxhcHNlXCIpLHJ0PSh0dD1lKS5mbltldF0sc3Q9e3RvZ2dsZTohMCxwYXJlbnQ6XCJcIn0sb3Q9e3RvZ2dsZTpcImJvb2xlYW5cIixwYXJlbnQ6XCIoc3RyaW5nfGVsZW1lbnQpXCJ9LGF0PXtTSE9XOlwic2hvd1wiK2l0LFNIT1dOOlwic2hvd25cIitpdCxISURFOlwiaGlkZVwiK2l0LEhJRERFTjpcImhpZGRlblwiK2l0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitpdCtcIi5kYXRhLWFwaVwifSxsdD1cInNob3dcIixodD1cImNvbGxhcHNlXCIsY3Q9XCJjb2xsYXBzaW5nXCIsdXQ9XCJjb2xsYXBzZWRcIixmdD1cIndpZHRoXCIsZHQ9XCJoZWlnaHRcIixfdD17QUNUSVZFUzpcIi5zaG93LCAuY29sbGFwc2luZ1wiLERBVEFfVE9HR0xFOidbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSd9LGd0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0LGUpe3RoaXMuX2lzVHJhbnNpdGlvbmluZz0hMSx0aGlzLl9lbGVtZW50PXQsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl90cmlnZ2VyQXJyYXk9dHQubWFrZUFycmF5KHR0KCdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtocmVmPVwiIycrdC5pZCsnXCJdLFtkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdW2RhdGEtdGFyZ2V0PVwiIycrdC5pZCsnXCJdJykpO2Zvcih2YXIgbj10dChfdC5EQVRBX1RPR0dMRSksaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgcj1uW2ldLHM9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudChyKTtudWxsIT09cyYmMDx0dChzKS5maWx0ZXIodCkubGVuZ3RoJiYodGhpcy5fc2VsZWN0b3I9cyx0aGlzLl90cmlnZ2VyQXJyYXkucHVzaChyKSl9dGhpcy5fcGFyZW50PXRoaXMuX2NvbmZpZy5wYXJlbnQ/dGhpcy5fZ2V0UGFyZW50KCk6bnVsbCx0aGlzLl9jb25maWcucGFyZW50fHx0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy5fZWxlbWVudCx0aGlzLl90cmlnZ2VyQXJyYXkpLHRoaXMuX2NvbmZpZy50b2dnbGUmJnRoaXMudG9nZ2xlKCl9dmFyIHQ9YS5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKCl7dHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobHQpP3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSx0LnNob3c9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpcztpZighdGhpcy5faXNUcmFuc2l0aW9uaW5nJiYhdHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobHQpJiYodGhpcy5fcGFyZW50JiYwPT09KHQ9dHQubWFrZUFycmF5KHR0KHRoaXMuX3BhcmVudCkuZmluZChfdC5BQ1RJVkVTKS5maWx0ZXIoJ1tkYXRhLXBhcmVudD1cIicrdGhpcy5fY29uZmlnLnBhcmVudCsnXCJdJykpKS5sZW5ndGgmJih0PW51bGwpLCEodCYmKGU9dHQodCkubm90KHRoaXMuX3NlbGVjdG9yKS5kYXRhKG50KSkmJmUuX2lzVHJhbnNpdGlvbmluZykpKXt2YXIgaT10dC5FdmVudChhdC5TSE9XKTtpZih0dCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKGkpLCFpLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt0JiYoYS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwodHQodCkubm90KHRoaXMuX3NlbGVjdG9yKSxcImhpZGVcIiksZXx8dHQodCkuZGF0YShudCxudWxsKSk7dmFyIHI9dGhpcy5fZ2V0RGltZW5zaW9uKCk7dHQodGhpcy5fZWxlbWVudCkucmVtb3ZlQ2xhc3MoaHQpLmFkZENsYXNzKGN0KSwodGhpcy5fZWxlbWVudC5zdHlsZVtyXT0wKTx0aGlzLl90cmlnZ2VyQXJyYXkubGVuZ3RoJiZ0dCh0aGlzLl90cmlnZ2VyQXJyYXkpLnJlbW92ZUNsYXNzKHV0KS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCEwKSx0aGlzLnNldFRyYW5zaXRpb25pbmcoITApO3ZhciBzPVwic2Nyb2xsXCIrKHJbMF0udG9VcHBlckNhc2UoKStyLnNsaWNlKDEpKSxvPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3R0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe3R0KG4uX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGN0KS5hZGRDbGFzcyhodCkuYWRkQ2xhc3MobHQpLG4uX2VsZW1lbnQuc3R5bGVbcl09XCJcIixuLnNldFRyYW5zaXRpb25pbmcoITEpLHR0KG4uX2VsZW1lbnQpLnRyaWdnZXIoYXQuU0hPV04pfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQobyksdGhpcy5fZWxlbWVudC5zdHlsZVtyXT10aGlzLl9lbGVtZW50W3NdK1wicHhcIn19fSx0LmhpZGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJnR0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGx0KSl7dmFyIGU9dHQuRXZlbnQoYXQuSElERSk7aWYodHQodGhpcy5fZWxlbWVudCkudHJpZ2dlcihlKSwhZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIG49dGhpcy5fZ2V0RGltZW5zaW9uKCk7aWYodGhpcy5fZWxlbWVudC5zdHlsZVtuXT10aGlzLl9lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW25dK1wicHhcIixDbi5yZWZsb3codGhpcy5fZWxlbWVudCksdHQodGhpcy5fZWxlbWVudCkuYWRkQ2xhc3MoY3QpLnJlbW92ZUNsYXNzKGh0KS5yZW1vdmVDbGFzcyhsdCksMDx0aGlzLl90cmlnZ2VyQXJyYXkubGVuZ3RoKWZvcih2YXIgaT0wO2k8dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aDtpKyspe3ZhciByPXRoaXMuX3RyaWdnZXJBcnJheVtpXSxzPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQocik7aWYobnVsbCE9PXMpdHQocykuaGFzQ2xhc3MobHQpfHx0dChyKS5hZGRDbGFzcyh1dCkuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMSl9dGhpcy5zZXRUcmFuc2l0aW9uaW5nKCEwKTt0aGlzLl9lbGVtZW50LnN0eWxlW25dPVwiXCI7dmFyIG89Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7dHQodGhpcy5fZWxlbWVudCkub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKCl7dC5zZXRUcmFuc2l0aW9uaW5nKCExKSx0dCh0Ll9lbGVtZW50KS5yZW1vdmVDbGFzcyhjdCkuYWRkQ2xhc3MoaHQpLnRyaWdnZXIoYXQuSElEREVOKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKG8pfX19LHQuc2V0VHJhbnNpdGlvbmluZz1mdW5jdGlvbih0KXt0aGlzLl9pc1RyYW5zaXRpb25pbmc9dH0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7dHQucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LG50KSx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fdHJpZ2dlckFycmF5PW51bGwsdGhpcy5faXNUcmFuc2l0aW9uaW5nPW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4odD1oKHt9LHN0LHQpKS50b2dnbGU9Qm9vbGVhbih0LnRvZ2dsZSksQ24udHlwZUNoZWNrQ29uZmlnKGV0LHQsb3QpLHR9LHQuX2dldERpbWVuc2lvbj1mdW5jdGlvbigpe3JldHVybiB0dCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhmdCk/ZnQ6ZHR9LHQuX2dldFBhcmVudD1mdW5jdGlvbigpe3ZhciBuPXRoaXMsdD1udWxsO0NuLmlzRWxlbWVudCh0aGlzLl9jb25maWcucGFyZW50KT8odD10aGlzLl9jb25maWcucGFyZW50LFwidW5kZWZpbmVkXCIhPXR5cGVvZiB0aGlzLl9jb25maWcucGFyZW50LmpxdWVyeSYmKHQ9dGhpcy5fY29uZmlnLnBhcmVudFswXSkpOnQ9dHQodGhpcy5fY29uZmlnLnBhcmVudClbMF07dmFyIGU9J1tkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdW2RhdGEtcGFyZW50PVwiJyt0aGlzLl9jb25maWcucGFyZW50KydcIl0nO3JldHVybiB0dCh0KS5maW5kKGUpLmVhY2goZnVuY3Rpb24odCxlKXtuLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MoYS5fZ2V0VGFyZ2V0RnJvbUVsZW1lbnQoZSksW2VdKX0pLHR9LHQuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbih0LGUpe2lmKHQpe3ZhciBuPXR0KHQpLmhhc0NsYXNzKGx0KTswPGUubGVuZ3RoJiZ0dChlKS50b2dnbGVDbGFzcyh1dCwhbikuYXR0cihcImFyaWEtZXhwYW5kZWRcIixuKX19LGEuX2dldFRhcmdldEZyb21FbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCk7cmV0dXJuIGU/dHQoZSlbMF06bnVsbH0sYS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10dCh0aGlzKSxlPXQuZGF0YShudCksbj1oKHt9LHN0LHQuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBpJiZpKTtpZighZSYmbi50b2dnbGUmJi9zaG93fGhpZGUvLnRlc3QoaSkmJihuLnRvZ2dsZT0hMSksZXx8KGU9bmV3IGEodGhpcyxuKSx0LmRhdGEobnQsZSkpLFwic3RyaW5nXCI9PXR5cGVvZiBpKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgZVtpXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2krJ1wiJyk7ZVtpXSgpfX0pfSxvKGEsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBzdH19XSksYX0oKSx0dChkb2N1bWVudCkub24oYXQuQ0xJQ0tfREFUQV9BUEksX3QuREFUQV9UT0dHTEUsZnVuY3Rpb24odCl7XCJBXCI9PT10LmN1cnJlbnRUYXJnZXQudGFnTmFtZSYmdC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPXR0KHRoaXMpLGU9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzKTt0dChlKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dHQodGhpcyksZT10LmRhdGEobnQpP1widG9nZ2xlXCI6bi5kYXRhKCk7Z3QuX2pRdWVyeUludGVyZmFjZS5jYWxsKHQsZSl9KX0pLHR0LmZuW2V0XT1ndC5falF1ZXJ5SW50ZXJmYWNlLHR0LmZuW2V0XS5Db25zdHJ1Y3Rvcj1ndCx0dC5mbltldF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB0dC5mbltldF09cnQsZ3QuX2pRdWVyeUludGVyZmFjZX0sZ3QpLFNuPShwdD1cImRyb3Bkb3duXCIsRXQ9XCIuXCIrKHZ0PVwiYnMuZHJvcGRvd25cIikseXQ9XCIuZGF0YS1hcGlcIixUdD0obXQ9ZSkuZm5bcHRdLEN0PW5ldyBSZWdFeHAoXCIzOHw0MHwyN1wiKSxJdD17SElERTpcImhpZGVcIitFdCxISURERU46XCJoaWRkZW5cIitFdCxTSE9XOlwic2hvd1wiK0V0LFNIT1dOOlwic2hvd25cIitFdCxDTElDSzpcImNsaWNrXCIrRXQsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK0V0K3l0LEtFWURPV05fREFUQV9BUEk6XCJrZXlkb3duXCIrRXQreXQsS0VZVVBfREFUQV9BUEk6XCJrZXl1cFwiK0V0K3l0fSxBdD1cImRpc2FibGVkXCIsRHQ9XCJzaG93XCIsYnQ9XCJkcm9wdXBcIixTdD1cImRyb3ByaWdodFwiLHd0PVwiZHJvcGxlZnRcIixOdD1cImRyb3Bkb3duLW1lbnUtcmlnaHRcIixPdD1cInBvc2l0aW9uLXN0YXRpY1wiLGt0PSdbZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXScsUHQ9XCIuZHJvcGRvd24gZm9ybVwiLEx0PVwiLmRyb3Bkb3duLW1lbnVcIixqdD1cIi5uYXZiYXItbmF2XCIsUnQ9XCIuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpub3QoLmRpc2FibGVkKTpub3QoOmRpc2FibGVkKVwiLEh0PVwidG9wLXN0YXJ0XCIsV3Q9XCJ0b3AtZW5kXCIsTXQ9XCJib3R0b20tc3RhcnRcIix4dD1cImJvdHRvbS1lbmRcIixVdD1cInJpZ2h0LXN0YXJ0XCIsS3Q9XCJsZWZ0LXN0YXJ0XCIsRnQ9e29mZnNldDowLGZsaXA6ITAsYm91bmRhcnk6XCJzY3JvbGxQYXJlbnRcIixyZWZlcmVuY2U6XCJ0b2dnbGVcIixkaXNwbGF5OlwiZHluYW1pY1wifSxWdD17b2Zmc2V0OlwiKG51bWJlcnxzdHJpbmd8ZnVuY3Rpb24pXCIsZmxpcDpcImJvb2xlYW5cIixib3VuZGFyeTpcIihzdHJpbmd8ZWxlbWVudClcIixyZWZlcmVuY2U6XCIoc3RyaW5nfGVsZW1lbnQpXCIsZGlzcGxheTpcInN0cmluZ1wifSxRdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGwodCxlKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9tZW51PXRoaXMuX2dldE1lbnVFbGVtZW50KCksdGhpcy5faW5OYXZiYXI9dGhpcy5fZGV0ZWN0TmF2YmFyKCksdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKX12YXIgdD1sLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24oKXtpZighdGhpcy5fZWxlbWVudC5kaXNhYmxlZCYmIW10KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEF0KSl7dmFyIHQ9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCksZT1tdCh0aGlzLl9tZW51KS5oYXNDbGFzcyhEdCk7aWYobC5fY2xlYXJNZW51cygpLCFlKXt2YXIgbj17cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fSxpPW10LkV2ZW50KEl0LlNIT1csbik7aWYobXQodCkudHJpZ2dlcihpKSwhaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7aWYoIXRoaXMuX2luTmF2YmFyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwIGRyb3Bkb3duIHJlcXVpcmUgUG9wcGVyLmpzIChodHRwczovL3BvcHBlci5qcy5vcmcpXCIpO3ZhciByPXRoaXMuX2VsZW1lbnQ7XCJwYXJlbnRcIj09PXRoaXMuX2NvbmZpZy5yZWZlcmVuY2U/cj10OkNuLmlzRWxlbWVudCh0aGlzLl9jb25maWcucmVmZXJlbmNlKSYmKHI9dGhpcy5fY29uZmlnLnJlZmVyZW5jZSxcInVuZGVmaW5lZFwiIT10eXBlb2YgdGhpcy5fY29uZmlnLnJlZmVyZW5jZS5qcXVlcnkmJihyPXRoaXMuX2NvbmZpZy5yZWZlcmVuY2VbMF0pKSxcInNjcm9sbFBhcmVudFwiIT09dGhpcy5fY29uZmlnLmJvdW5kYXJ5JiZtdCh0KS5hZGRDbGFzcyhPdCksdGhpcy5fcG9wcGVyPW5ldyBjKHIsdGhpcy5fbWVudSx0aGlzLl9nZXRQb3BwZXJDb25maWcoKSl9XCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmMD09PW10KHQpLmNsb3Nlc3QoanQpLmxlbmd0aCYmbXQoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vbihcIm1vdXNlb3ZlclwiLG51bGwsbXQubm9vcCksdGhpcy5fZWxlbWVudC5mb2N1cygpLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCEwKSxtdCh0aGlzLl9tZW51KS50b2dnbGVDbGFzcyhEdCksbXQodCkudG9nZ2xlQ2xhc3MoRHQpLnRyaWdnZXIobXQuRXZlbnQoSXQuU0hPV04sbikpfX19fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXttdC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsdnQpLG10KHRoaXMuX2VsZW1lbnQpLm9mZihFdCksdGhpcy5fZWxlbWVudD1udWxsLCh0aGlzLl9tZW51PW51bGwpIT09dGhpcy5fcG9wcGVyJiYodGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9wb3BwZXI9bnVsbCl9LHQudXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5faW5OYXZiYXI9dGhpcy5fZGV0ZWN0TmF2YmFyKCksbnVsbCE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLnNjaGVkdWxlVXBkYXRlKCl9LHQuX2FkZEV2ZW50TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczttdCh0aGlzLl9lbGVtZW50KS5vbihJdC5DTElDSyxmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxlLnRvZ2dsZSgpfSl9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1oKHt9LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdCxtdCh0aGlzLl9lbGVtZW50KS5kYXRhKCksdCksQ24udHlwZUNoZWNrQ29uZmlnKHB0LHQsdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0VHlwZSksdH0sdC5fZ2V0TWVudUVsZW1lbnQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fbWVudSl7dmFyIHQ9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7dGhpcy5fbWVudT1tdCh0KS5maW5kKEx0KVswXX1yZXR1cm4gdGhpcy5fbWVudX0sdC5fZ2V0UGxhY2VtZW50PWZ1bmN0aW9uKCl7dmFyIHQ9bXQodGhpcy5fZWxlbWVudCkucGFyZW50KCksZT1NdDtyZXR1cm4gdC5oYXNDbGFzcyhidCk/KGU9SHQsbXQodGhpcy5fbWVudSkuaGFzQ2xhc3MoTnQpJiYoZT1XdCkpOnQuaGFzQ2xhc3MoU3QpP2U9VXQ6dC5oYXNDbGFzcyh3dCk/ZT1LdDptdCh0aGlzLl9tZW51KS5oYXNDbGFzcyhOdCkmJihlPXh0KSxlfSx0Ll9kZXRlY3ROYXZiYXI9ZnVuY3Rpb24oKXtyZXR1cm4gMDxtdCh0aGlzLl9lbGVtZW50KS5jbG9zZXN0KFwiLm5hdmJhclwiKS5sZW5ndGh9LHQuX2dldFBvcHBlckNvbmZpZz1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD17fTtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLl9jb25maWcub2Zmc2V0P3QuZm49ZnVuY3Rpb24odCl7cmV0dXJuIHQub2Zmc2V0cz1oKHt9LHQub2Zmc2V0cyxlLl9jb25maWcub2Zmc2V0KHQub2Zmc2V0cyl8fHt9KSx0fTp0Lm9mZnNldD10aGlzLl9jb25maWcub2Zmc2V0O3ZhciBuPXtwbGFjZW1lbnQ6dGhpcy5fZ2V0UGxhY2VtZW50KCksbW9kaWZpZXJzOntvZmZzZXQ6dCxmbGlwOntlbmFibGVkOnRoaXMuX2NvbmZpZy5mbGlwfSxwcmV2ZW50T3ZlcmZsb3c6e2JvdW5kYXJpZXNFbGVtZW50OnRoaXMuX2NvbmZpZy5ib3VuZGFyeX19fTtyZXR1cm5cInN0YXRpY1wiPT09dGhpcy5fY29uZmlnLmRpc3BsYXkmJihuLm1vZGlmaWVycy5hcHBseVN0eWxlPXtlbmFibGVkOiExfSksbn0sbC5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1tdCh0aGlzKS5kYXRhKHZ0KTtpZih0fHwodD1uZXcgbCh0aGlzLFwib2JqZWN0XCI9PXR5cGVvZiBlP2U6bnVsbCksbXQodGhpcykuZGF0YSh2dCx0KSksXCJzdHJpbmdcIj09dHlwZW9mIGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W2VdKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrZSsnXCInKTt0W2VdKCl9fSl9LGwuX2NsZWFyTWVudXM9ZnVuY3Rpb24odCl7aWYoIXR8fDMhPT10LndoaWNoJiYoXCJrZXl1cFwiIT09dC50eXBlfHw5PT09dC53aGljaCkpZm9yKHZhciBlPW10Lm1ha2VBcnJheShtdChrdCkpLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQoZVtuXSkscj1tdChlW25dKS5kYXRhKHZ0KSxzPXtyZWxhdGVkVGFyZ2V0OmVbbl19O2lmKHIpe3ZhciBvPXIuX21lbnU7aWYobXQoaSkuaGFzQ2xhc3MoRHQpJiYhKHQmJihcImNsaWNrXCI9PT10LnR5cGUmJi9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QodC50YXJnZXQudGFnTmFtZSl8fFwia2V5dXBcIj09PXQudHlwZSYmOT09PXQud2hpY2gpJiZtdC5jb250YWlucyhpLHQudGFyZ2V0KSkpe3ZhciBhPW10LkV2ZW50KEl0LkhJREUscyk7bXQoaSkudHJpZ2dlcihhKSxhLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwoXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmbXQoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vZmYoXCJtb3VzZW92ZXJcIixudWxsLG10Lm5vb3ApLGVbbl0uc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLFwiZmFsc2VcIiksbXQobykucmVtb3ZlQ2xhc3MoRHQpLG10KGkpLnJlbW92ZUNsYXNzKER0KS50cmlnZ2VyKG10LkV2ZW50KEl0LkhJRERFTixzKSkpfX19fSxsLl9nZXRQYXJlbnRGcm9tRWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZSxuPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCk7cmV0dXJuIG4mJihlPW10KG4pWzBdKSxlfHx0LnBhcmVudE5vZGV9LGwuX2RhdGFBcGlLZXlkb3duSGFuZGxlcj1mdW5jdGlvbih0KXtpZigoL2lucHV0fHRleHRhcmVhL2kudGVzdCh0LnRhcmdldC50YWdOYW1lKT8hKDMyPT09dC53aGljaHx8MjchPT10LndoaWNoJiYoNDAhPT10LndoaWNoJiYzOCE9PXQud2hpY2h8fG10KHQudGFyZ2V0KS5jbG9zZXN0KEx0KS5sZW5ndGgpKTpDdC50ZXN0KHQud2hpY2gpKSYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLCF0aGlzLmRpc2FibGVkJiYhbXQodGhpcykuaGFzQ2xhc3MoQXQpKSl7dmFyIGU9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcyksbj1tdChlKS5oYXNDbGFzcyhEdCk7aWYoKG58fDI3PT09dC53aGljaCYmMzI9PT10LndoaWNoKSYmKCFufHwyNyE9PXQud2hpY2gmJjMyIT09dC53aGljaCkpe3ZhciBpPW10KGUpLmZpbmQoUnQpLmdldCgpO2lmKDAhPT1pLmxlbmd0aCl7dmFyIHI9aS5pbmRleE9mKHQudGFyZ2V0KTszOD09PXQud2hpY2gmJjA8ciYmci0tLDQwPT09dC53aGljaCYmcjxpLmxlbmd0aC0xJiZyKysscjwwJiYocj0wKSxpW3JdLmZvY3VzKCl9fWVsc2V7aWYoMjc9PT10LndoaWNoKXt2YXIgcz1tdChlKS5maW5kKGt0KVswXTttdChzKS50cmlnZ2VyKFwiZm9jdXNcIil9bXQodGhpcykudHJpZ2dlcihcImNsaWNrXCIpfX19LG8obCxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ0fX0se2tleTpcIkRlZmF1bHRUeXBlXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZ0fX1dKSxsfSgpLG10KGRvY3VtZW50KS5vbihJdC5LRVlET1dOX0RBVEFfQVBJLGt0LFF0Ll9kYXRhQXBpS2V5ZG93bkhhbmRsZXIpLm9uKEl0LktFWURPV05fREFUQV9BUEksTHQsUXQuX2RhdGFBcGlLZXlkb3duSGFuZGxlcikub24oSXQuQ0xJQ0tfREFUQV9BUEkrXCIgXCIrSXQuS0VZVVBfREFUQV9BUEksUXQuX2NsZWFyTWVudXMpLm9uKEl0LkNMSUNLX0RBVEFfQVBJLGt0LGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLFF0Ll9qUXVlcnlJbnRlcmZhY2UuY2FsbChtdCh0aGlzKSxcInRvZ2dsZVwiKX0pLm9uKEl0LkNMSUNLX0RBVEFfQVBJLFB0LGZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9KSxtdC5mbltwdF09UXQuX2pRdWVyeUludGVyZmFjZSxtdC5mbltwdF0uQ29uc3RydWN0b3I9UXQsbXQuZm5bcHRdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbXQuZm5bcHRdPVR0LFF0Ll9qUXVlcnlJbnRlcmZhY2V9LFF0KSx3bj0oWXQ9XCJtb2RhbFwiLHF0PVwiLlwiKyhHdD1cImJzLm1vZGFsXCIpLHp0PShCdD1lKS5mbltZdF0sWHQ9e2JhY2tkcm9wOiEwLGtleWJvYXJkOiEwLGZvY3VzOiEwLHNob3c6ITB9LEp0PXtiYWNrZHJvcDpcIihib29sZWFufHN0cmluZylcIixrZXlib2FyZDpcImJvb2xlYW5cIixmb2N1czpcImJvb2xlYW5cIixzaG93OlwiYm9vbGVhblwifSxadD17SElERTpcImhpZGVcIitxdCxISURERU46XCJoaWRkZW5cIitxdCxTSE9XOlwic2hvd1wiK3F0LFNIT1dOOlwic2hvd25cIitxdCxGT0NVU0lOOlwiZm9jdXNpblwiK3F0LFJFU0laRTpcInJlc2l6ZVwiK3F0LENMSUNLX0RJU01JU1M6XCJjbGljay5kaXNtaXNzXCIrcXQsS0VZRE9XTl9ESVNNSVNTOlwia2V5ZG93bi5kaXNtaXNzXCIrcXQsTU9VU0VVUF9ESVNNSVNTOlwibW91c2V1cC5kaXNtaXNzXCIrcXQsTU9VU0VET1dOX0RJU01JU1M6XCJtb3VzZWRvd24uZGlzbWlzc1wiK3F0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitxdCtcIi5kYXRhLWFwaVwifSwkdD1cIm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlXCIsdGU9XCJtb2RhbC1iYWNrZHJvcFwiLGVlPVwibW9kYWwtb3BlblwiLG5lPVwiZmFkZVwiLGllPVwic2hvd1wiLHJlPXtESUFMT0c6XCIubW9kYWwtZGlhbG9nXCIsREFUQV9UT0dHTEU6J1tkYXRhLXRvZ2dsZT1cIm1vZGFsXCJdJyxEQVRBX0RJU01JU1M6J1tkYXRhLWRpc21pc3M9XCJtb2RhbFwiXScsRklYRURfQ09OVEVOVDpcIi5maXhlZC10b3AsIC5maXhlZC1ib3R0b20sIC5pcy1maXhlZCwgLnN0aWNreS10b3BcIixTVElDS1lfQ09OVEVOVDpcIi5zdGlja3ktdG9wXCIsTkFWQkFSX1RPR0dMRVI6XCIubmF2YmFyLXRvZ2dsZXJcIn0sc2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQsZSl7dGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9lbGVtZW50PXQsdGhpcy5fZGlhbG9nPUJ0KHQpLmZpbmQocmUuRElBTE9HKVswXSx0aGlzLl9iYWNrZHJvcD1udWxsLHRoaXMuX2lzU2hvd249ITEsdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmc9ITEsdGhpcy5faWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLl9zY3JvbGxiYXJXaWR0aD0wfXZhciB0PXIucHJvdG90eXBlO3JldHVybiB0LnRvZ2dsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3codCl9LHQuc2hvdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJiF0aGlzLl9pc1Nob3duKXtCdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSkmJih0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITApO3ZhciBuPUJ0LkV2ZW50KFp0LlNIT1cse3JlbGF0ZWRUYXJnZXQ6dH0pO0J0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIobiksdGhpcy5faXNTaG93bnx8bi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KHRoaXMuX2lzU2hvd249ITAsdGhpcy5fY2hlY2tTY3JvbGxiYXIoKSx0aGlzLl9zZXRTY3JvbGxiYXIoKSx0aGlzLl9hZGp1c3REaWFsb2coKSxCdChkb2N1bWVudC5ib2R5KS5hZGRDbGFzcyhlZSksdGhpcy5fc2V0RXNjYXBlRXZlbnQoKSx0aGlzLl9zZXRSZXNpemVFdmVudCgpLEJ0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LkNMSUNLX0RJU01JU1MscmUuREFUQV9ESVNNSVNTLGZ1bmN0aW9uKHQpe3JldHVybiBlLmhpZGUodCl9KSxCdCh0aGlzLl9kaWFsb2cpLm9uKFp0Lk1PVVNFRE9XTl9ESVNNSVNTLGZ1bmN0aW9uKCl7QnQoZS5fZWxlbWVudCkub25lKFp0Lk1PVVNFVVBfRElTTUlTUyxmdW5jdGlvbih0KXtCdCh0LnRhcmdldCkuaXMoZS5fZWxlbWVudCkmJihlLl9pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5fc2hvd0JhY2tkcm9wKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3Nob3dFbGVtZW50KHQpfSkpfX0sdC5oaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodCYmdC5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJnRoaXMuX2lzU2hvd24pe3ZhciBuPUJ0LkV2ZW50KFp0LkhJREUpO2lmKEJ0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIobiksdGhpcy5faXNTaG93biYmIW4uaXNEZWZhdWx0UHJldmVudGVkKCkpe3RoaXMuX2lzU2hvd249ITE7dmFyIGk9QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpO2lmKGkmJih0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITApLHRoaXMuX3NldEVzY2FwZUV2ZW50KCksdGhpcy5fc2V0UmVzaXplRXZlbnQoKSxCdChkb2N1bWVudCkub2ZmKFp0LkZPQ1VTSU4pLEJ0KHRoaXMuX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGllKSxCdCh0aGlzLl9lbGVtZW50KS5vZmYoWnQuQ0xJQ0tfRElTTUlTUyksQnQodGhpcy5fZGlhbG9nKS5vZmYoWnQuTU9VU0VET1dOX0RJU01JU1MpLGkpe3ZhciByPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO0J0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbih0KXtyZXR1cm4gZS5faGlkZU1vZGFsKHQpfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQocil9ZWxzZSB0aGlzLl9oaWRlTW9kYWwoKX19fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtCdC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsR3QpLEJ0KHdpbmRvdyxkb2N1bWVudCx0aGlzLl9lbGVtZW50LHRoaXMuX2JhY2tkcm9wKS5vZmYocXQpLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9kaWFsb2c9bnVsbCx0aGlzLl9iYWNrZHJvcD1udWxsLHRoaXMuX2lzU2hvd249bnVsbCx0aGlzLl9pc0JvZHlPdmVyZmxvd2luZz1udWxsLHRoaXMuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9bnVsbCx0aGlzLl9zY3JvbGxiYXJXaWR0aD1udWxsfSx0LmhhbmRsZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX2FkanVzdERpYWxvZygpfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9aCh7fSxYdCx0KSxDbi50eXBlQ2hlY2tDb25maWcoWXQsdCxKdCksdH0sdC5fc2hvd0VsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPUJ0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKG5lKTt0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUmJnRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfHxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheT1cImJsb2NrXCIsdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiKSx0aGlzLl9lbGVtZW50LnNjcm9sbFRvcD0wLG4mJkNuLnJlZmxvdyh0aGlzLl9lbGVtZW50KSxCdCh0aGlzLl9lbGVtZW50KS5hZGRDbGFzcyhpZSksdGhpcy5fY29uZmlnLmZvY3VzJiZ0aGlzLl9lbmZvcmNlRm9jdXMoKTt2YXIgaT1CdC5FdmVudChadC5TSE9XTix7cmVsYXRlZFRhcmdldDp0fSkscj1mdW5jdGlvbigpe2UuX2NvbmZpZy5mb2N1cyYmZS5fZWxlbWVudC5mb2N1cygpLGUuX2lzVHJhbnNpdGlvbmluZz0hMSxCdChlLl9lbGVtZW50KS50cmlnZ2VyKGkpfTtpZihuKXt2YXIgcz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTtCdCh0aGlzLl9kaWFsb2cpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxyKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChzKX1lbHNlIHIoKX0sdC5fZW5mb3JjZUZvY3VzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztCdChkb2N1bWVudCkub2ZmKFp0LkZPQ1VTSU4pLm9uKFp0LkZPQ1VTSU4sZnVuY3Rpb24odCl7ZG9jdW1lbnQhPT10LnRhcmdldCYmZS5fZWxlbWVudCE9PXQudGFyZ2V0JiYwPT09QnQoZS5fZWxlbWVudCkuaGFzKHQudGFyZ2V0KS5sZW5ndGgmJmUuX2VsZW1lbnQuZm9jdXMoKX0pfSx0Ll9zZXRFc2NhcGVFdmVudD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faXNTaG93biYmdGhpcy5fY29uZmlnLmtleWJvYXJkP0J0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LktFWURPV05fRElTTUlTUyxmdW5jdGlvbih0KXsyNz09PXQud2hpY2gmJih0LnByZXZlbnREZWZhdWx0KCksZS5oaWRlKCkpfSk6dGhpcy5faXNTaG93bnx8QnQodGhpcy5fZWxlbWVudCkub2ZmKFp0LktFWURPV05fRElTTUlTUyl9LHQuX3NldFJlc2l6ZUV2ZW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9pc1Nob3duP0J0KHdpbmRvdykub24oWnQuUkVTSVpFLGZ1bmN0aW9uKHQpe3JldHVybiBlLmhhbmRsZVVwZGF0ZSh0KX0pOkJ0KHdpbmRvdykub2ZmKFp0LlJFU0laRSl9LHQuX2hpZGVNb2RhbD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwhMCksdGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLHRoaXMuX3Nob3dCYWNrZHJvcChmdW5jdGlvbigpe0J0KGRvY3VtZW50LmJvZHkpLnJlbW92ZUNsYXNzKGVlKSx0Ll9yZXNldEFkanVzdG1lbnRzKCksdC5fcmVzZXRTY3JvbGxiYXIoKSxCdCh0Ll9lbGVtZW50KS50cmlnZ2VyKFp0LkhJRERFTil9KX0sdC5fcmVtb3ZlQmFja2Ryb3A9ZnVuY3Rpb24oKXt0aGlzLl9iYWNrZHJvcCYmKEJ0KHRoaXMuX2JhY2tkcm9wKS5yZW1vdmUoKSx0aGlzLl9iYWNrZHJvcD1udWxsKX0sdC5fc2hvd0JhY2tkcm9wPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1CdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSk/bmU6XCJcIjtpZih0aGlzLl9pc1Nob3duJiZ0aGlzLl9jb25maWcuYmFja2Ryb3Ape2lmKHRoaXMuX2JhY2tkcm9wPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksdGhpcy5fYmFja2Ryb3AuY2xhc3NOYW1lPXRlLG4mJkJ0KHRoaXMuX2JhY2tkcm9wKS5hZGRDbGFzcyhuKSxCdCh0aGlzLl9iYWNrZHJvcCkuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSksQnQodGhpcy5fZWxlbWVudCkub24oWnQuQ0xJQ0tfRElTTUlTUyxmdW5jdGlvbih0KXtlLl9pZ25vcmVCYWNrZHJvcENsaWNrP2UuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9ITE6dC50YXJnZXQ9PT10LmN1cnJlbnRUYXJnZXQmJihcInN0YXRpY1wiPT09ZS5fY29uZmlnLmJhY2tkcm9wP2UuX2VsZW1lbnQuZm9jdXMoKTplLmhpZGUoKSl9KSxuJiZDbi5yZWZsb3codGhpcy5fYmFja2Ryb3ApLEJ0KHRoaXMuX2JhY2tkcm9wKS5hZGRDbGFzcyhpZSksIXQpcmV0dXJuO2lmKCFuKXJldHVybiB2b2lkIHQoKTt2YXIgaT1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9iYWNrZHJvcCk7QnQodGhpcy5fYmFja2Ryb3ApLm9uZShDbi5UUkFOU0lUSU9OX0VORCx0KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChpKX1lbHNlIGlmKCF0aGlzLl9pc1Nob3duJiZ0aGlzLl9iYWNrZHJvcCl7QnQodGhpcy5fYmFja2Ryb3ApLnJlbW92ZUNsYXNzKGllKTt2YXIgcj1mdW5jdGlvbigpe2UuX3JlbW92ZUJhY2tkcm9wKCksdCYmdCgpfTtpZihCdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSkpe3ZhciBzPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2JhY2tkcm9wKTtCdCh0aGlzLl9iYWNrZHJvcCkub25lKENuLlRSQU5TSVRJT05fRU5ELHIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHMpfWVsc2UgcigpfWVsc2UgdCYmdCgpfSx0Ll9hZGp1c3REaWFsb2c9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9lbGVtZW50LnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OyF0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyYmdCYmKHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQ9dGhpcy5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKSx0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyYmIXQmJih0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodD10aGlzLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSx0Ll9yZXNldEFkanVzdG1lbnRzPWZ1bmN0aW9uKCl7dGhpcy5fZWxlbWVudC5zdHlsZS5wYWRkaW5nTGVmdD1cIlwiLHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ1JpZ2h0PVwiXCJ9LHQuX2NoZWNrU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLl9pc0JvZHlPdmVyZmxvd2luZz10LmxlZnQrdC5yaWdodDx3aW5kb3cuaW5uZXJXaWR0aCx0aGlzLl9zY3JvbGxiYXJXaWR0aD10aGlzLl9nZXRTY3JvbGxiYXJXaWR0aCgpfSx0Ll9zZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO2lmKHRoaXMuX2lzQm9keU92ZXJmbG93aW5nKXtCdChyZS5GSVhFRF9DT05URU5UKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSlbMF0uc3R5bGUucGFkZGluZ1JpZ2h0LGk9QnQoZSkuY3NzKFwicGFkZGluZy1yaWdodFwiKTtCdChlKS5kYXRhKFwicGFkZGluZy1yaWdodFwiLG4pLmNzcyhcInBhZGRpbmctcmlnaHRcIixwYXJzZUZsb2F0KGkpK3IuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KSxCdChyZS5TVElDS1lfQ09OVEVOVCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLm1hcmdpblJpZ2h0LGk9QnQoZSkuY3NzKFwibWFyZ2luLXJpZ2h0XCIpO0J0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIixuKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixwYXJzZUZsb2F0KGkpLXIuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KSxCdChyZS5OQVZCQVJfVE9HR0xFUikuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLm1hcmdpblJpZ2h0LGk9QnQoZSkuY3NzKFwibWFyZ2luLXJpZ2h0XCIpO0J0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIixuKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixwYXJzZUZsb2F0KGkpK3IuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KTt2YXIgdD1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCxlPUJ0KGRvY3VtZW50LmJvZHkpLmNzcyhcInBhZGRpbmctcmlnaHRcIik7QnQoZG9jdW1lbnQuYm9keSkuZGF0YShcInBhZGRpbmctcmlnaHRcIix0KS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIscGFyc2VGbG9hdChlKSt0aGlzLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfX0sdC5fcmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXtCdChyZS5GSVhFRF9DT05URU5UKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSkuZGF0YShcInBhZGRpbmctcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG4mJkJ0KGUpLmNzcyhcInBhZGRpbmctcmlnaHRcIixuKS5yZW1vdmVEYXRhKFwicGFkZGluZy1yaWdodFwiKX0pLEJ0KHJlLlNUSUNLWV9DT05URU5UK1wiLCBcIityZS5OQVZCQVJfVE9HR0xFUikuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG4mJkJ0KGUpLmNzcyhcIm1hcmdpbi1yaWdodFwiLG4pLnJlbW92ZURhdGEoXCJtYXJnaW4tcmlnaHRcIil9KTt2YXIgdD1CdChkb2N1bWVudC5ib2R5KS5kYXRhKFwicGFkZGluZy1yaWdodFwiKTtcInVuZGVmaW5lZFwiIT10eXBlb2YgdCYmQnQoZG9jdW1lbnQuYm9keSkuY3NzKFwicGFkZGluZy1yaWdodFwiLHQpLnJlbW92ZURhdGEoXCJwYWRkaW5nLXJpZ2h0XCIpfSx0Ll9nZXRTY3JvbGxiYXJXaWR0aD1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7dC5jbGFzc05hbWU9JHQsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KTt2YXIgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLXQuY2xpZW50V2lkdGg7cmV0dXJuIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCksZX0sci5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4saSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PUJ0KHRoaXMpLmRhdGEoR3QpLGU9aCh7fSxyLkRlZmF1bHQsQnQodGhpcykuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBuJiZuKTtpZih0fHwodD1uZXcgcih0aGlzLGUpLEJ0KHRoaXMpLmRhdGEoR3QsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXShpKX1lbHNlIGUuc2hvdyYmdC5zaG93KGkpfSl9LG8ocixudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFh0fX1dKSxyfSgpLEJ0KGRvY3VtZW50KS5vbihadC5DTElDS19EQVRBX0FQSSxyZS5EQVRBX1RPR0dMRSxmdW5jdGlvbih0KXt2YXIgZSxuPXRoaXMsaT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMpO2kmJihlPUJ0KGkpWzBdKTt2YXIgcj1CdChlKS5kYXRhKEd0KT9cInRvZ2dsZVwiOmgoe30sQnQoZSkuZGF0YSgpLEJ0KHRoaXMpLmRhdGEoKSk7XCJBXCIhPT10aGlzLnRhZ05hbWUmJlwiQVJFQVwiIT09dGhpcy50YWdOYW1lfHx0LnByZXZlbnREZWZhdWx0KCk7dmFyIHM9QnQoZSkub25lKFp0LlNIT1csZnVuY3Rpb24odCl7dC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8cy5vbmUoWnQuSElEREVOLGZ1bmN0aW9uKCl7QnQobikuaXMoXCI6dmlzaWJsZVwiKSYmbi5mb2N1cygpfSl9KTtzZS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwoQnQoZSkscix0aGlzKX0pLEJ0LmZuW1l0XT1zZS5falF1ZXJ5SW50ZXJmYWNlLEJ0LmZuW1l0XS5Db25zdHJ1Y3Rvcj1zZSxCdC5mbltZdF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBCdC5mbltZdF09enQsc2UuX2pRdWVyeUludGVyZmFjZX0sc2UpLE5uPShhZT1cInRvb2x0aXBcIixoZT1cIi5cIisobGU9XCJicy50b29sdGlwXCIpLGNlPShvZT1lKS5mblthZV0sdWU9XCJicy10b29sdGlwXCIsZmU9bmV3IFJlZ0V4cChcIihefFxcXFxzKVwiK3VlK1wiXFxcXFMrXCIsXCJnXCIpLGdlPXthbmltYXRpb246ITAsdGVtcGxhdGU6JzxkaXYgY2xhc3M9XCJ0b29sdGlwXCIgcm9sZT1cInRvb2x0aXBcIj48ZGl2IGNsYXNzPVwiYXJyb3dcIj48L2Rpdj48ZGl2IGNsYXNzPVwidG9vbHRpcC1pbm5lclwiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjpcImhvdmVyIGZvY3VzXCIsdGl0bGU6XCJcIixkZWxheTowLGh0bWw6IShfZT17QVVUTzpcImF1dG9cIixUT1A6XCJ0b3BcIixSSUdIVDpcInJpZ2h0XCIsQk9UVE9NOlwiYm90dG9tXCIsTEVGVDpcImxlZnRcIn0pLHNlbGVjdG9yOiEoZGU9e2FuaW1hdGlvbjpcImJvb2xlYW5cIix0ZW1wbGF0ZTpcInN0cmluZ1wiLHRpdGxlOlwiKHN0cmluZ3xlbGVtZW50fGZ1bmN0aW9uKVwiLHRyaWdnZXI6XCJzdHJpbmdcIixkZWxheTpcIihudW1iZXJ8b2JqZWN0KVwiLGh0bWw6XCJib29sZWFuXCIsc2VsZWN0b3I6XCIoc3RyaW5nfGJvb2xlYW4pXCIscGxhY2VtZW50OlwiKHN0cmluZ3xmdW5jdGlvbilcIixvZmZzZXQ6XCIobnVtYmVyfHN0cmluZylcIixjb250YWluZXI6XCIoc3RyaW5nfGVsZW1lbnR8Ym9vbGVhbilcIixmYWxsYmFja1BsYWNlbWVudDpcIihzdHJpbmd8YXJyYXkpXCIsYm91bmRhcnk6XCIoc3RyaW5nfGVsZW1lbnQpXCJ9KSxwbGFjZW1lbnQ6XCJ0b3BcIixvZmZzZXQ6MCxjb250YWluZXI6ITEsZmFsbGJhY2tQbGFjZW1lbnQ6XCJmbGlwXCIsYm91bmRhcnk6XCJzY3JvbGxQYXJlbnRcIn0scGU9XCJvdXRcIix2ZT17SElERTpcImhpZGVcIitoZSxISURERU46XCJoaWRkZW5cIitoZSxTSE9XOihtZT1cInNob3dcIikraGUsU0hPV046XCJzaG93blwiK2hlLElOU0VSVEVEOlwiaW5zZXJ0ZWRcIitoZSxDTElDSzpcImNsaWNrXCIraGUsRk9DVVNJTjpcImZvY3VzaW5cIitoZSxGT0NVU09VVDpcImZvY3Vzb3V0XCIraGUsTU9VU0VFTlRFUjpcIm1vdXNlZW50ZXJcIitoZSxNT1VTRUxFQVZFOlwibW91c2VsZWF2ZVwiK2hlfSxFZT1cImZhZGVcIix5ZT1cInNob3dcIixUZT1cIi50b29sdGlwLWlubmVyXCIsQ2U9XCIuYXJyb3dcIixJZT1cImhvdmVyXCIsQWU9XCJmb2N1c1wiLERlPVwiY2xpY2tcIixiZT1cIm1hbnVhbFwiLFNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0LGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBjKXRocm93IG5ldyBUeXBlRXJyb3IoXCJCb290c3RyYXAgdG9vbHRpcHMgcmVxdWlyZSBQb3BwZXIuanMgKGh0dHBzOi8vcG9wcGVyLmpzLm9yZylcIik7dGhpcy5faXNFbmFibGVkPSEwLHRoaXMuX3RpbWVvdXQ9MCx0aGlzLl9ob3ZlclN0YXRlPVwiXCIsdGhpcy5fYWN0aXZlVHJpZ2dlcj17fSx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLmVsZW1lbnQ9dCx0aGlzLmNvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy50aXA9bnVsbCx0aGlzLl9zZXRMaXN0ZW5lcnMoKX12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLl9pc0VuYWJsZWQ9ITB9LHQuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2lzRW5hYmxlZD0hMX0sdC50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5faXNFbmFibGVkPSF0aGlzLl9pc0VuYWJsZWR9LHQudG9nZ2xlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lzRW5hYmxlZClpZih0KXt2YXIgZT10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZLG49b2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKGUpO258fChuPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEoZSxuKSksbi5fYWN0aXZlVHJpZ2dlci5jbGljaz0hbi5fYWN0aXZlVHJpZ2dlci5jbGljayxuLl9pc1dpdGhBY3RpdmVUcmlnZ2VyKCk/bi5fZW50ZXIobnVsbCxuKTpuLl9sZWF2ZShudWxsLG4pfWVsc2V7aWYob2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLmhhc0NsYXNzKHllKSlyZXR1cm4gdm9pZCB0aGlzLl9sZWF2ZShudWxsLHRoaXMpO3RoaXMuX2VudGVyKG51bGwsdGhpcyl9fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCksb2UucmVtb3ZlRGF0YSh0aGlzLmVsZW1lbnQsdGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSksb2UodGhpcy5lbGVtZW50KS5vZmYodGhpcy5jb25zdHJ1Y3Rvci5FVkVOVF9LRVkpLG9lKHRoaXMuZWxlbWVudCkuY2xvc2VzdChcIi5tb2RhbFwiKS5vZmYoXCJoaWRlLmJzLm1vZGFsXCIpLHRoaXMudGlwJiZvZSh0aGlzLnRpcCkucmVtb3ZlKCksdGhpcy5faXNFbmFibGVkPW51bGwsdGhpcy5fdGltZW91dD1udWxsLHRoaXMuX2hvdmVyU3RhdGU9bnVsbCwodGhpcy5fYWN0aXZlVHJpZ2dlcj1udWxsKSE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLmVsZW1lbnQ9bnVsbCx0aGlzLmNvbmZpZz1udWxsLHRoaXMudGlwPW51bGx9LHQuc2hvdz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoXCJub25lXCI9PT1vZSh0aGlzLmVsZW1lbnQpLmNzcyhcImRpc3BsYXlcIikpdGhyb3cgbmV3IEVycm9yKFwiUGxlYXNlIHVzZSBzaG93IG9uIHZpc2libGUgZWxlbWVudHNcIik7dmFyIHQ9b2UuRXZlbnQodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5TSE9XKTtpZih0aGlzLmlzV2l0aENvbnRlbnQoKSYmdGhpcy5faXNFbmFibGVkKXtvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIodCk7dmFyIG49b2UuY29udGFpbnModGhpcy5lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMuZWxlbWVudCk7aWYodC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8IW4pcmV0dXJuO3ZhciBpPXRoaXMuZ2V0VGlwRWxlbWVudCgpLHI9Q24uZ2V0VUlEKHRoaXMuY29uc3RydWN0b3IuTkFNRSk7aS5zZXRBdHRyaWJ1dGUoXCJpZFwiLHIpLHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWRlc2NyaWJlZGJ5XCIsciksdGhpcy5zZXRDb250ZW50KCksdGhpcy5jb25maWcuYW5pbWF0aW9uJiZvZShpKS5hZGRDbGFzcyhFZSk7dmFyIHM9XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5jb25maWcucGxhY2VtZW50P3RoaXMuY29uZmlnLnBsYWNlbWVudC5jYWxsKHRoaXMsaSx0aGlzLmVsZW1lbnQpOnRoaXMuY29uZmlnLnBsYWNlbWVudCxvPXRoaXMuX2dldEF0dGFjaG1lbnQocyk7dGhpcy5hZGRBdHRhY2htZW50Q2xhc3Mobyk7dmFyIGE9ITE9PT10aGlzLmNvbmZpZy5jb250YWluZXI/ZG9jdW1lbnQuYm9keTpvZSh0aGlzLmNvbmZpZy5jb250YWluZXIpO29lKGkpLmRhdGEodGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSx0aGlzKSxvZS5jb250YWlucyh0aGlzLmVsZW1lbnQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdGhpcy50aXApfHxvZShpKS5hcHBlbmRUbyhhKSxvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5JTlNFUlRFRCksdGhpcy5fcG9wcGVyPW5ldyBjKHRoaXMuZWxlbWVudCxpLHtwbGFjZW1lbnQ6byxtb2RpZmllcnM6e29mZnNldDp7b2Zmc2V0OnRoaXMuY29uZmlnLm9mZnNldH0sZmxpcDp7YmVoYXZpb3I6dGhpcy5jb25maWcuZmFsbGJhY2tQbGFjZW1lbnR9LGFycm93OntlbGVtZW50OkNlfSxwcmV2ZW50T3ZlcmZsb3c6e2JvdW5kYXJpZXNFbGVtZW50OnRoaXMuY29uZmlnLmJvdW5kYXJ5fX0sb25DcmVhdGU6ZnVuY3Rpb24odCl7dC5vcmlnaW5hbFBsYWNlbWVudCE9PXQucGxhY2VtZW50JiZlLl9oYW5kbGVQb3BwZXJQbGFjZW1lbnRDaGFuZ2UodCl9LG9uVXBkYXRlOmZ1bmN0aW9uKHQpe2UuX2hhbmRsZVBvcHBlclBsYWNlbWVudENoYW5nZSh0KX19KSxvZShpKS5hZGRDbGFzcyh5ZSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmb2UoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vbihcIm1vdXNlb3ZlclwiLG51bGwsb2Uubm9vcCk7dmFyIGw9ZnVuY3Rpb24oKXtlLmNvbmZpZy5hbmltYXRpb24mJmUuX2ZpeFRyYW5zaXRpb24oKTt2YXIgdD1lLl9ob3ZlclN0YXRlO2UuX2hvdmVyU3RhdGU9bnVsbCxvZShlLmVsZW1lbnQpLnRyaWdnZXIoZS5jb25zdHJ1Y3Rvci5FdmVudC5TSE9XTiksdD09PXBlJiZlLl9sZWF2ZShudWxsLGUpfTtpZihvZSh0aGlzLnRpcCkuaGFzQ2xhc3MoRWUpKXt2YXIgaD1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLnRpcCk7b2UodGhpcy50aXApLm9uZShDbi5UUkFOU0lUSU9OX0VORCxsKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChoKX1lbHNlIGwoKX19LHQuaGlkZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5nZXRUaXBFbGVtZW50KCksaT1vZS5FdmVudCh0aGlzLmNvbnN0cnVjdG9yLkV2ZW50LkhJREUpLHI9ZnVuY3Rpb24oKXtlLl9ob3ZlclN0YXRlIT09bWUmJm4ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pLGUuX2NsZWFuVGlwQ2xhc3MoKSxlLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiKSxvZShlLmVsZW1lbnQpLnRyaWdnZXIoZS5jb25zdHJ1Y3Rvci5FdmVudC5ISURERU4pLG51bGwhPT1lLl9wb3BwZXImJmUuX3BvcHBlci5kZXN0cm95KCksdCYmdCgpfTtpZihvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIoaSksIWkuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKG9lKG4pLnJlbW92ZUNsYXNzKHllKSxcIm9udG91Y2hzdGFydFwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZvZShkb2N1bWVudC5ib2R5KS5jaGlsZHJlbigpLm9mZihcIm1vdXNlb3ZlclwiLG51bGwsb2Uubm9vcCksdGhpcy5fYWN0aXZlVHJpZ2dlcltEZV09ITEsdGhpcy5fYWN0aXZlVHJpZ2dlcltBZV09ITEsdGhpcy5fYWN0aXZlVHJpZ2dlcltJZV09ITEsb2UodGhpcy50aXApLmhhc0NsYXNzKEVlKSl7dmFyIHM9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQobik7b2Uobikub25lKENuLlRSQU5TSVRJT05fRU5ELHIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHMpfWVsc2UgcigpO3RoaXMuX2hvdmVyU3RhdGU9XCJcIn19LHQudXBkYXRlPWZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLnNjaGVkdWxlVXBkYXRlKCl9LHQuaXNXaXRoQ29udGVudD1mdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMuZ2V0VGl0bGUoKSl9LHQuYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe29lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5hZGRDbGFzcyh1ZStcIi1cIit0KX0sdC5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHxvZSh0aGlzLmNvbmZpZy50ZW1wbGF0ZSlbMF0sdGhpcy50aXB9LHQuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciB0PW9lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKTt0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZChUZSksdGhpcy5nZXRUaXRsZSgpKSx0LnJlbW92ZUNsYXNzKEVlK1wiIFwiK3llKX0sdC5zZXRFbGVtZW50Q29udGVudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY29uZmlnLmh0bWw7XCJvYmplY3RcIj09dHlwZW9mIGUmJihlLm5vZGVUeXBlfHxlLmpxdWVyeSk/bj9vZShlKS5wYXJlbnQoKS5pcyh0KXx8dC5lbXB0eSgpLmFwcGVuZChlKTp0LnRleHQob2UoZSkudGV4dCgpKTp0W24/XCJodG1sXCI6XCJ0ZXh0XCJdKGUpfSx0LmdldFRpdGxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIik7cmV0dXJuIHR8fCh0PVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuY29uZmlnLnRpdGxlP3RoaXMuY29uZmlnLnRpdGxlLmNhbGwodGhpcy5lbGVtZW50KTp0aGlzLmNvbmZpZy50aXRsZSksdH0sdC5fZ2V0QXR0YWNobWVudD1mdW5jdGlvbih0KXtyZXR1cm4gX2VbdC50b1VwcGVyQ2FzZSgpXX0sdC5fc2V0TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpczt0aGlzLmNvbmZpZy50cmlnZ2VyLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKFwiY2xpY2tcIj09PXQpb2UoaS5lbGVtZW50KS5vbihpLmNvbnN0cnVjdG9yLkV2ZW50LkNMSUNLLGkuY29uZmlnLnNlbGVjdG9yLGZ1bmN0aW9uKHQpe3JldHVybiBpLnRvZ2dsZSh0KX0pO2Vsc2UgaWYodCE9PWJlKXt2YXIgZT10PT09SWU/aS5jb25zdHJ1Y3Rvci5FdmVudC5NT1VTRUVOVEVSOmkuY29uc3RydWN0b3IuRXZlbnQuRk9DVVNJTixuPXQ9PT1JZT9pLmNvbnN0cnVjdG9yLkV2ZW50Lk1PVVNFTEVBVkU6aS5jb25zdHJ1Y3Rvci5FdmVudC5GT0NVU09VVDtvZShpLmVsZW1lbnQpLm9uKGUsaS5jb25maWcuc2VsZWN0b3IsZnVuY3Rpb24odCl7cmV0dXJuIGkuX2VudGVyKHQpfSkub24obixpLmNvbmZpZy5zZWxlY3RvcixmdW5jdGlvbih0KXtyZXR1cm4gaS5fbGVhdmUodCl9KX1vZShpLmVsZW1lbnQpLmNsb3Nlc3QoXCIubW9kYWxcIikub24oXCJoaWRlLmJzLm1vZGFsXCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5oaWRlKCl9KX0pLHRoaXMuY29uZmlnLnNlbGVjdG9yP3RoaXMuY29uZmlnPWgoe30sdGhpcy5jb25maWcse3RyaWdnZXI6XCJtYW51YWxcIixzZWxlY3RvcjpcIlwifSk6dGhpcy5fZml4VGl0bGUoKX0sdC5fZml4VGl0bGU9ZnVuY3Rpb24oKXt2YXIgdD10eXBlb2YgdGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIik7KHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKXx8XCJzdHJpbmdcIiE9PXQpJiYodGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIix0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidGl0bGVcIil8fFwiXCIpLHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiLFwiXCIpKX0sdC5fZW50ZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZOyhlPWV8fG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuKSl8fChlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobixlKSksdCYmKGUuX2FjdGl2ZVRyaWdnZXJbXCJmb2N1c2luXCI9PT10LnR5cGU/QWU6SWVdPSEwKSxvZShlLmdldFRpcEVsZW1lbnQoKSkuaGFzQ2xhc3MoeWUpfHxlLl9ob3ZlclN0YXRlPT09bWU/ZS5faG92ZXJTdGF0ZT1tZTooY2xlYXJUaW1lb3V0KGUuX3RpbWVvdXQpLGUuX2hvdmVyU3RhdGU9bWUsZS5jb25maWcuZGVsYXkmJmUuY29uZmlnLmRlbGF5LnNob3c/ZS5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5faG92ZXJTdGF0ZT09PW1lJiZlLnNob3coKX0sZS5jb25maWcuZGVsYXkuc2hvdyk6ZS5zaG93KCkpfSx0Ll9sZWF2ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY29uc3RydWN0b3IuREFUQV9LRVk7KGU9ZXx8b2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKG4pKXx8KGU9bmV3IHRoaXMuY29uc3RydWN0b3IodC5jdXJyZW50VGFyZ2V0LHRoaXMuX2dldERlbGVnYXRlQ29uZmlnKCkpLG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuLGUpKSx0JiYoZS5fYWN0aXZlVHJpZ2dlcltcImZvY3Vzb3V0XCI9PT10LnR5cGU/QWU6SWVdPSExKSxlLl9pc1dpdGhBY3RpdmVUcmlnZ2VyKCl8fChjbGVhclRpbWVvdXQoZS5fdGltZW91dCksZS5faG92ZXJTdGF0ZT1wZSxlLmNvbmZpZy5kZWxheSYmZS5jb25maWcuZGVsYXkuaGlkZT9lLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl9ob3ZlclN0YXRlPT09cGUmJmUuaGlkZSgpfSxlLmNvbmZpZy5kZWxheS5oaWRlKTplLmhpZGUoKSl9LHQuX2lzV2l0aEFjdGl2ZVRyaWdnZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fYWN0aXZlVHJpZ2dlcilpZih0aGlzLl9hY3RpdmVUcmlnZ2VyW3RdKXJldHVybiEwO3JldHVybiExfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mKHQ9aCh7fSx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsb2UodGhpcy5lbGVtZW50KS5kYXRhKCksdCkpLmRlbGF5JiYodC5kZWxheT17c2hvdzp0LmRlbGF5LGhpZGU6dC5kZWxheX0pLFwibnVtYmVyXCI9PXR5cGVvZiB0LnRpdGxlJiYodC50aXRsZT10LnRpdGxlLnRvU3RyaW5nKCkpLFwibnVtYmVyXCI9PXR5cGVvZiB0LmNvbnRlbnQmJih0LmNvbnRlbnQ9dC5jb250ZW50LnRvU3RyaW5nKCkpLENuLnR5cGVDaGVja0NvbmZpZyhhZSx0LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpLHR9LHQuX2dldERlbGVnYXRlQ29uZmlnPWZ1bmN0aW9uKCl7dmFyIHQ9e307aWYodGhpcy5jb25maWcpZm9yKHZhciBlIGluIHRoaXMuY29uZmlnKXRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFtlXSE9PXRoaXMuY29uZmlnW2VdJiYodFtlXT10aGlzLmNvbmZpZ1tlXSk7cmV0dXJuIHR9LHQuX2NsZWFuVGlwQ2xhc3M9ZnVuY3Rpb24oKXt2YXIgdD1vZSh0aGlzLmdldFRpcEVsZW1lbnQoKSksZT10LmF0dHIoXCJjbGFzc1wiKS5tYXRjaChmZSk7bnVsbCE9PWUmJjA8ZS5sZW5ndGgmJnQucmVtb3ZlQ2xhc3MoZS5qb2luKFwiXCIpKX0sdC5faGFuZGxlUG9wcGVyUGxhY2VtZW50Q2hhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX2NsZWFuVGlwQ2xhc3MoKSx0aGlzLmFkZEF0dGFjaG1lbnRDbGFzcyh0aGlzLl9nZXRBdHRhY2htZW50KHQucGxhY2VtZW50KSl9LHQuX2ZpeFRyYW5zaXRpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldFRpcEVsZW1lbnQoKSxlPXRoaXMuY29uZmlnLmFuaW1hdGlvbjtudWxsPT09dC5nZXRBdHRyaWJ1dGUoXCJ4LXBsYWNlbWVudFwiKSYmKG9lKHQpLnJlbW92ZUNsYXNzKEVlKSx0aGlzLmNvbmZpZy5hbmltYXRpb249ITEsdGhpcy5oaWRlKCksdGhpcy5zaG93KCksdGhpcy5jb25maWcuYW5pbWF0aW9uPWUpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PW9lKHRoaXMpLmRhdGEobGUpLGU9XCJvYmplY3RcIj09dHlwZW9mIG4mJm47aWYoKHR8fCEvZGlzcG9zZXxoaWRlLy50ZXN0KG4pKSYmKHR8fCh0PW5ldyBpKHRoaXMsZSksb2UodGhpcykuZGF0YShsZSx0KSksXCJzdHJpbmdcIj09dHlwZW9mIG4pKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfX0pfSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBnZX19LHtrZXk6XCJOQU1FXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFlfX0se2tleTpcIkRBVEFfS0VZXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGxlfX0se2tleTpcIkV2ZW50XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZlfX0se2tleTpcIkVWRU5UX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBoZX19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBkZX19XSksaX0oKSxvZS5mblthZV09U2UuX2pRdWVyeUludGVyZmFjZSxvZS5mblthZV0uQ29uc3RydWN0b3I9U2Usb2UuZm5bYWVdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gb2UuZm5bYWVdPWNlLFNlLl9qUXVlcnlJbnRlcmZhY2V9LFNlKSxPbj0oTmU9XCJwb3BvdmVyXCIsa2U9XCIuXCIrKE9lPVwiYnMucG9wb3ZlclwiKSxQZT0od2U9ZSkuZm5bTmVdLExlPVwiYnMtcG9wb3ZlclwiLGplPW5ldyBSZWdFeHAoXCIoXnxcXFxccylcIitMZStcIlxcXFxTK1wiLFwiZ1wiKSxSZT1oKHt9LE5uLkRlZmF1bHQse3BsYWNlbWVudDpcInJpZ2h0XCIsdHJpZ2dlcjpcImNsaWNrXCIsY29udGVudDpcIlwiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPVwicG9wb3ZlclwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+PGgzIGNsYXNzPVwicG9wb3Zlci1oZWFkZXJcIj48L2gzPjxkaXYgY2xhc3M9XCJwb3BvdmVyLWJvZHlcIj48L2Rpdj48L2Rpdj4nfSksSGU9aCh7fSxObi5EZWZhdWx0VHlwZSx7Y29udGVudDpcIihzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbilcIn0pLFdlPVwiZmFkZVwiLHhlPVwiLnBvcG92ZXItaGVhZGVyXCIsVWU9XCIucG9wb3Zlci1ib2R5XCIsS2U9e0hJREU6XCJoaWRlXCIra2UsSElEREVOOlwiaGlkZGVuXCIra2UsU0hPVzooTWU9XCJzaG93XCIpK2tlLFNIT1dOOlwic2hvd25cIitrZSxJTlNFUlRFRDpcImluc2VydGVkXCIra2UsQ0xJQ0s6XCJjbGlja1wiK2tlLEZPQ1VTSU46XCJmb2N1c2luXCIra2UsRk9DVVNPVVQ6XCJmb2N1c291dFwiK2tlLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIra2UsTU9VU0VMRUFWRTpcIm1vdXNlbGVhdmVcIitrZX0sRmU9ZnVuY3Rpb24odCl7dmFyIGUsbjtmdW5jdGlvbiBpKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfW49dCwoZT1pKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSksKGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUpLl9fcHJvdG9fXz1uO3ZhciByPWkucHJvdG90eXBlO3JldHVybiByLmlzV2l0aENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLl9nZXRDb250ZW50KCl9LHIuYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe3dlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5hZGRDbGFzcyhMZStcIi1cIit0KX0sci5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHx3ZSh0aGlzLmNvbmZpZy50ZW1wbGF0ZSlbMF0sdGhpcy50aXB9LHIuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciB0PXdlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKTt0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZCh4ZSksdGhpcy5nZXRUaXRsZSgpKTt2YXIgZT10aGlzLl9nZXRDb250ZW50KCk7XCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKGU9ZS5jYWxsKHRoaXMuZWxlbWVudCkpLHRoaXMuc2V0RWxlbWVudENvbnRlbnQodC5maW5kKFVlKSxlKSx0LnJlbW92ZUNsYXNzKFdlK1wiIFwiK01lKX0sci5fZ2V0Q29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS1jb250ZW50XCIpfHx0aGlzLmNvbmZpZy5jb250ZW50fSxyLl9jbGVhblRpcENsYXNzPWZ1bmN0aW9uKCl7dmFyIHQ9d2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLGU9dC5hdHRyKFwiY2xhc3NcIikubWF0Y2goamUpO251bGwhPT1lJiYwPGUubGVuZ3RoJiZ0LnJlbW92ZUNsYXNzKGUuam9pbihcIlwiKSl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9d2UodGhpcykuZGF0YShPZSksZT1cIm9iamVjdFwiPT10eXBlb2Ygbj9uOm51bGw7aWYoKHR8fCEvZGVzdHJveXxoaWRlLy50ZXN0KG4pKSYmKHR8fCh0PW5ldyBpKHRoaXMsZSksd2UodGhpcykuZGF0YShPZSx0KSksXCJzdHJpbmdcIj09dHlwZW9mIG4pKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfX0pfSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBSZX19LHtrZXk6XCJOQU1FXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5lfX0se2tleTpcIkRBVEFfS0VZXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9lfX0se2tleTpcIkV2ZW50XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEtlfX0se2tleTpcIkVWRU5UX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBrZX19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBIZX19XSksaX0oTm4pLHdlLmZuW05lXT1GZS5falF1ZXJ5SW50ZXJmYWNlLHdlLmZuW05lXS5Db25zdHJ1Y3Rvcj1GZSx3ZS5mbltOZV0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB3ZS5mbltOZV09UGUsRmUuX2pRdWVyeUludGVyZmFjZX0sRmUpLGtuPShRZT1cInNjcm9sbHNweVwiLFllPVwiLlwiKyhCZT1cImJzLnNjcm9sbHNweVwiKSxHZT0oVmU9ZSkuZm5bUWVdLHFlPXtvZmZzZXQ6MTAsbWV0aG9kOlwiYXV0b1wiLHRhcmdldDpcIlwifSx6ZT17b2Zmc2V0OlwibnVtYmVyXCIsbWV0aG9kOlwic3RyaW5nXCIsdGFyZ2V0OlwiKHN0cmluZ3xlbGVtZW50KVwifSxYZT17QUNUSVZBVEU6XCJhY3RpdmF0ZVwiK1llLFNDUk9MTDpcInNjcm9sbFwiK1llLExPQURfREFUQV9BUEk6XCJsb2FkXCIrWWUrXCIuZGF0YS1hcGlcIn0sSmU9XCJkcm9wZG93bi1pdGVtXCIsWmU9XCJhY3RpdmVcIiwkZT17REFUQV9TUFk6J1tkYXRhLXNweT1cInNjcm9sbFwiXScsQUNUSVZFOlwiLmFjdGl2ZVwiLE5BVl9MSVNUX0dST1VQOlwiLm5hdiwgLmxpc3QtZ3JvdXBcIixOQVZfTElOS1M6XCIubmF2LWxpbmtcIixOQVZfSVRFTVM6XCIubmF2LWl0ZW1cIixMSVNUX0lURU1TOlwiLmxpc3QtZ3JvdXAtaXRlbVwiLERST1BET1dOOlwiLmRyb3Bkb3duXCIsRFJPUERPV05fSVRFTVM6XCIuZHJvcGRvd24taXRlbVwiLERST1BET1dOX1RPR0dMRTpcIi5kcm9wZG93bi10b2dnbGVcIn0sdG49XCJvZmZzZXRcIixlbj1cInBvc2l0aW9uXCIsbm49ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQsZSl7dmFyIG49dGhpczt0aGlzLl9lbGVtZW50PXQsdGhpcy5fc2Nyb2xsRWxlbWVudD1cIkJPRFlcIj09PXQudGFnTmFtZT93aW5kb3c6dCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX3NlbGVjdG9yPXRoaXMuX2NvbmZpZy50YXJnZXQrXCIgXCIrJGUuTkFWX0xJTktTK1wiLFwiK3RoaXMuX2NvbmZpZy50YXJnZXQrXCIgXCIrJGUuTElTVF9JVEVNUytcIixcIit0aGlzLl9jb25maWcudGFyZ2V0K1wiIFwiKyRlLkRST1BET1dOX0lURU1TLHRoaXMuX29mZnNldHM9W10sdGhpcy5fdGFyZ2V0cz1bXSx0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLl9zY3JvbGxIZWlnaHQ9MCxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS5vbihYZS5TQ1JPTEwsZnVuY3Rpb24odCl7cmV0dXJuIG4uX3Byb2Nlc3ModCl9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9wcm9jZXNzKCl9dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIHQucmVmcmVzaD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl9zY3JvbGxFbGVtZW50PT09dGhpcy5fc2Nyb2xsRWxlbWVudC53aW5kb3c/dG46ZW4scj1cImF1dG9cIj09PXRoaXMuX2NvbmZpZy5tZXRob2Q/dDp0aGlzLl9jb25maWcubWV0aG9kLHM9cj09PWVuP3RoaXMuX2dldFNjcm9sbFRvcCgpOjA7dGhpcy5fb2Zmc2V0cz1bXSx0aGlzLl90YXJnZXRzPVtdLHRoaXMuX3Njcm9sbEhlaWdodD10aGlzLl9nZXRTY3JvbGxIZWlnaHQoKSxWZS5tYWtlQXJyYXkoVmUodGhpcy5fc2VsZWN0b3IpKS5tYXAoZnVuY3Rpb24odCl7dmFyIGUsbj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO2lmKG4mJihlPVZlKG4pWzBdKSxlKXt2YXIgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGkud2lkdGh8fGkuaGVpZ2h0KXJldHVybltWZShlKVtyXSgpLnRvcCtzLG5dfXJldHVybiBudWxsfSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0WzBdLWVbMF19KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UuX29mZnNldHMucHVzaCh0WzBdKSxlLl90YXJnZXRzLnB1c2godFsxXSl9KX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7VmUucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LEJlKSxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS5vZmYoWWUpLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9zY3JvbGxFbGVtZW50PW51bGwsdGhpcy5fY29uZmlnPW51bGwsdGhpcy5fc2VsZWN0b3I9bnVsbCx0aGlzLl9vZmZzZXRzPW51bGwsdGhpcy5fdGFyZ2V0cz1udWxsLHRoaXMuX2FjdGl2ZVRhcmdldD1udWxsLHRoaXMuX3Njcm9sbEhlaWdodD1udWxsfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mKHQ9aCh7fSxxZSx0KSkudGFyZ2V0KXt2YXIgZT1WZSh0LnRhcmdldCkuYXR0cihcImlkXCIpO2V8fChlPUNuLmdldFVJRChRZSksVmUodC50YXJnZXQpLmF0dHIoXCJpZFwiLGUpKSx0LnRhcmdldD1cIiNcIitlfXJldHVybiBDbi50eXBlQ2hlY2tDb25maWcoUWUsdCx6ZSksdH0sdC5fZ2V0U2Nyb2xsVG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/dGhpcy5fc2Nyb2xsRWxlbWVudC5wYWdlWU9mZnNldDp0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbFRvcH0sdC5fZ2V0U2Nyb2xsSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsSGVpZ2h0fHxNYXRoLm1heChkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KX0sdC5fZ2V0T2Zmc2V0SGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OnRoaXMuX3Njcm9sbEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fSx0Ll9wcm9jZXNzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0U2Nyb2xsVG9wKCkrdGhpcy5fY29uZmlnLm9mZnNldCxlPXRoaXMuX2dldFNjcm9sbEhlaWdodCgpLG49dGhpcy5fY29uZmlnLm9mZnNldCtlLXRoaXMuX2dldE9mZnNldEhlaWdodCgpO2lmKHRoaXMuX3Njcm9sbEhlaWdodCE9PWUmJnRoaXMucmVmcmVzaCgpLG48PXQpe3ZhciBpPXRoaXMuX3RhcmdldHNbdGhpcy5fdGFyZ2V0cy5sZW5ndGgtMV07dGhpcy5fYWN0aXZlVGFyZ2V0IT09aSYmdGhpcy5fYWN0aXZhdGUoaSl9ZWxzZXtpZih0aGlzLl9hY3RpdmVUYXJnZXQmJnQ8dGhpcy5fb2Zmc2V0c1swXSYmMDx0aGlzLl9vZmZzZXRzWzBdKXJldHVybiB0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx2b2lkIHRoaXMuX2NsZWFyKCk7Zm9yKHZhciByPXRoaXMuX29mZnNldHMubGVuZ3RoO3ItLTspe3RoaXMuX2FjdGl2ZVRhcmdldCE9PXRoaXMuX3RhcmdldHNbcl0mJnQ+PXRoaXMuX29mZnNldHNbcl0mJihcInVuZGVmaW5lZFwiPT10eXBlb2YgdGhpcy5fb2Zmc2V0c1tyKzFdfHx0PHRoaXMuX29mZnNldHNbcisxXSkmJnRoaXMuX2FjdGl2YXRlKHRoaXMuX3RhcmdldHNbcl0pfX19LHQuX2FjdGl2YXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2FjdGl2ZVRhcmdldD1lLHRoaXMuX2NsZWFyKCk7dmFyIHQ9dGhpcy5fc2VsZWN0b3Iuc3BsaXQoXCIsXCIpO3Q9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQrJ1tkYXRhLXRhcmdldD1cIicrZSsnXCJdLCcrdCsnW2hyZWY9XCInK2UrJ1wiXSd9KTt2YXIgbj1WZSh0LmpvaW4oXCIsXCIpKTtuLmhhc0NsYXNzKEplKT8obi5jbG9zZXN0KCRlLkRST1BET1dOKS5maW5kKCRlLkRST1BET1dOX1RPR0dMRSkuYWRkQ2xhc3MoWmUpLG4uYWRkQ2xhc3MoWmUpKToobi5hZGRDbGFzcyhaZSksbi5wYXJlbnRzKCRlLk5BVl9MSVNUX0dST1VQKS5wcmV2KCRlLk5BVl9MSU5LUytcIiwgXCIrJGUuTElTVF9JVEVNUykuYWRkQ2xhc3MoWmUpLG4ucGFyZW50cygkZS5OQVZfTElTVF9HUk9VUCkucHJldigkZS5OQVZfSVRFTVMpLmNoaWxkcmVuKCRlLk5BVl9MSU5LUykuYWRkQ2xhc3MoWmUpKSxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS50cmlnZ2VyKFhlLkFDVElWQVRFLHtyZWxhdGVkVGFyZ2V0OmV9KX0sdC5fY2xlYXI9ZnVuY3Rpb24oKXtWZSh0aGlzLl9zZWxlY3RvcikuZmlsdGVyKCRlLkFDVElWRSkucmVtb3ZlQ2xhc3MoWmUpfSxuLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PVZlKHRoaXMpLmRhdGEoQmUpO2lmKHR8fCh0PW5ldyBuKHRoaXMsXCJvYmplY3RcIj09dHlwZW9mIGUmJmUpLFZlKHRoaXMpLmRhdGEoQmUsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtlXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2UrJ1wiJyk7dFtlXSgpfX0pfSxvKG4sbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBxZX19XSksbn0oKSxWZSh3aW5kb3cpLm9uKFhlLkxPQURfREFUQV9BUEksZnVuY3Rpb24oKXtmb3IodmFyIHQ9VmUubWFrZUFycmF5KFZlKCRlLkRBVEFfU1BZKSksZT10Lmxlbmd0aDtlLS07KXt2YXIgbj1WZSh0W2VdKTtubi5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobixuLmRhdGEoKSl9fSksVmUuZm5bUWVdPW5uLl9qUXVlcnlJbnRlcmZhY2UsVmUuZm5bUWVdLkNvbnN0cnVjdG9yPW5uLFZlLmZuW1FlXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIFZlLmZuW1FlXT1HZSxubi5falF1ZXJ5SW50ZXJmYWNlfSxubiksUG49KG9uPVwiLlwiKyhzbj1cImJzLnRhYlwiKSxhbj0ocm49ZSkuZm4udGFiLGxuPXtISURFOlwiaGlkZVwiK29uLEhJRERFTjpcImhpZGRlblwiK29uLFNIT1c6XCJzaG93XCIrb24sU0hPV046XCJzaG93blwiK29uLENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitvbitcIi5kYXRhLWFwaVwifSxobj1cImRyb3Bkb3duLW1lbnVcIixjbj1cImFjdGl2ZVwiLHVuPVwiZGlzYWJsZWRcIixmbj1cImZhZGVcIixkbj1cInNob3dcIixfbj1cIi5kcm9wZG93blwiLGduPVwiLm5hdiwgLmxpc3QtZ3JvdXBcIixtbj1cIi5hY3RpdmVcIixwbj1cIj4gbGkgPiAuYWN0aXZlXCIsdm49J1tkYXRhLXRvZ2dsZT1cInRhYlwiXSwgW2RhdGEtdG9nZ2xlPVwicGlsbFwiXSwgW2RhdGEtdG9nZ2xlPVwibGlzdFwiXScsRW49XCIuZHJvcGRvd24tdG9nZ2xlXCIseW49XCI+IC5kcm9wZG93bi1tZW51IC5hY3RpdmVcIixUbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGkodCl7dGhpcy5fZWxlbWVudD10fXZhciB0PWkucHJvdG90eXBlO3JldHVybiB0LnNob3c9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO2lmKCEodGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmcm4odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoY24pfHxybih0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyh1bikpKXt2YXIgdCxpLGU9cm4odGhpcy5fZWxlbWVudCkuY2xvc2VzdChnbilbMF0scj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO2lmKGUpe3ZhciBzPVwiVUxcIj09PWUubm9kZU5hbWU/cG46bW47aT0oaT1ybi5tYWtlQXJyYXkocm4oZSkuZmluZChzKSkpW2kubGVuZ3RoLTFdfXZhciBvPXJuLkV2ZW50KGxuLkhJREUse3JlbGF0ZWRUYXJnZXQ6dGhpcy5fZWxlbWVudH0pLGE9cm4uRXZlbnQobG4uU0hPVyx7cmVsYXRlZFRhcmdldDppfSk7aWYoaSYmcm4oaSkudHJpZ2dlcihvKSxybih0aGlzLl9lbGVtZW50KS50cmlnZ2VyKGEpLCFhLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhby5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7ciYmKHQ9cm4ocilbMF0pLHRoaXMuX2FjdGl2YXRlKHRoaXMuX2VsZW1lbnQsZSk7dmFyIGw9ZnVuY3Rpb24oKXt2YXIgdD1ybi5FdmVudChsbi5ISURERU4se3JlbGF0ZWRUYXJnZXQ6bi5fZWxlbWVudH0pLGU9cm4uRXZlbnQobG4uU0hPV04se3JlbGF0ZWRUYXJnZXQ6aX0pO3JuKGkpLnRyaWdnZXIodCkscm4obi5fZWxlbWVudCkudHJpZ2dlcihlKX07dD90aGlzLl9hY3RpdmF0ZSh0LHQucGFyZW50Tm9kZSxsKTpsKCl9fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7cm4ucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHNuKSx0aGlzLl9lbGVtZW50PW51bGx9LHQuX2FjdGl2YXRlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLHI9KFwiVUxcIj09PWUubm9kZU5hbWU/cm4oZSkuZmluZChwbik6cm4oZSkuY2hpbGRyZW4obW4pKVswXSxzPW4mJnImJnJuKHIpLmhhc0NsYXNzKGZuKSxvPWZ1bmN0aW9uKCl7cmV0dXJuIGkuX3RyYW5zaXRpb25Db21wbGV0ZSh0LHIsbil9O2lmKHImJnMpe3ZhciBhPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHIpO3JuKHIpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxvKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChhKX1lbHNlIG8oKX0sdC5fdHJhbnNpdGlvbkNvbXBsZXRlPWZ1bmN0aW9uKHQsZSxuKXtpZihlKXtybihlKS5yZW1vdmVDbGFzcyhkbitcIiBcIitjbik7dmFyIGk9cm4oZS5wYXJlbnROb2RlKS5maW5kKHluKVswXTtpJiZybihpKS5yZW1vdmVDbGFzcyhjbiksXCJ0YWJcIj09PWUuZ2V0QXR0cmlidXRlKFwicm9sZVwiKSYmZS5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsITEpfWlmKHJuKHQpLmFkZENsYXNzKGNuKSxcInRhYlwiPT09dC5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpJiZ0LnNldEF0dHJpYnV0ZShcImFyaWEtc2VsZWN0ZWRcIiwhMCksQ24ucmVmbG93KHQpLHJuKHQpLmFkZENsYXNzKGRuKSx0LnBhcmVudE5vZGUmJnJuKHQucGFyZW50Tm9kZSkuaGFzQ2xhc3MoaG4pKXt2YXIgcj1ybih0KS5jbG9zZXN0KF9uKVswXTtyJiZybihyKS5maW5kKEVuKS5hZGRDbGFzcyhjbiksdC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsITApfW4mJm4oKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1ybih0aGlzKSxlPXQuZGF0YShzbik7aWYoZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKHNuLGUpKSxcInN0cmluZ1wiPT10eXBlb2Ygbil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGVbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO2Vbbl0oKX19KX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX1dKSxpfSgpLHJuKGRvY3VtZW50KS5vbihsbi5DTElDS19EQVRBX0FQSSx2bixmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksVG4uX2pRdWVyeUludGVyZmFjZS5jYWxsKHJuKHRoaXMpLFwic2hvd1wiKX0pLHJuLmZuLnRhYj1Ubi5falF1ZXJ5SW50ZXJmYWNlLHJuLmZuLnRhYi5Db25zdHJ1Y3Rvcj1Ubixybi5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBybi5mbi50YWI9YW4sVG4uX2pRdWVyeUludGVyZmFjZX0sVG4pOyFmdW5jdGlvbih0KXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkuIGpRdWVyeSBtdXN0IGJlIGluY2x1ZGVkIGJlZm9yZSBCb290c3RyYXAncyBKYXZhU2NyaXB0LlwiKTt2YXIgZT10LmZuLmpxdWVyeS5zcGxpdChcIiBcIilbMF0uc3BsaXQoXCIuXCIpO2lmKGVbMF08MiYmZVsxXTw5fHwxPT09ZVswXSYmOT09PWVbMV0mJmVbMl08MXx8NDw9ZVswXSl0aHJvdyBuZXcgRXJyb3IoXCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGF0IGxlYXN0IGpRdWVyeSB2MS45LjEgYnV0IGxlc3MgdGhhbiB2NC4wLjBcIil9KGUpLHQuVXRpbD1Dbix0LkFsZXJ0PUluLHQuQnV0dG9uPUFuLHQuQ2Fyb3VzZWw9RG4sdC5Db2xsYXBzZT1ibix0LkRyb3Bkb3duPVNuLHQuTW9kYWw9d24sdC5Qb3BvdmVyPU9uLHQuU2Nyb2xsc3B5PWtuLHQuVGFiPVBuLHQuVG9vbHRpcD1ObixPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym9vdHN0cmFwLm1pbi5qcy5tYXAiLCIvLyBodHRwczovL2QzanMub3JnIFZlcnNpb24gNS41LjAuIENvcHlyaWdodCAyMDE4IE1pa2UgQm9zdG9jay5cbihmdW5jdGlvbih0LG4pe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP24oZXhwb3J0cyk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJleHBvcnRzXCJdLG4pOm4odC5kMz10LmQzfHx7fSl9KSh0aGlzLGZ1bmN0aW9uKHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gdDxuPy0xOnQ+bj8xOnQ+PW4/MDpOYU59ZnVuY3Rpb24gZSh0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4gbih0KGUpLHIpfX0odCkpLHtsZWZ0OmZ1bmN0aW9uKG4sZSxyLGkpe2ZvcihudWxsPT1yJiYocj0wKSxudWxsPT1pJiYoaT1uLmxlbmd0aCk7cjxpOyl7dmFyIG89citpPj4+MTt0KG5bb10sZSk8MD9yPW8rMTppPW99cmV0dXJuIHJ9LHJpZ2h0OmZ1bmN0aW9uKG4sZSxyLGkpe2ZvcihudWxsPT1yJiYocj0wKSxudWxsPT1pJiYoaT1uLmxlbmd0aCk7cjxpOyl7dmFyIG89citpPj4+MTt0KG5bb10sZSk+MD9pPW86cj1vKzF9cmV0dXJuIHJ9fX1mdW5jdGlvbiByKHQsbil7cmV0dXJuW3Qsbl19ZnVuY3Rpb24gaSh0KXtyZXR1cm4gbnVsbD09PXQ/TmFOOit0fWZ1bmN0aW9uIG8odCxuKXt2YXIgZSxyLG89dC5sZW5ndGgsYT0wLHU9LTEsZj0wLGM9MDtpZihudWxsPT1uKWZvcig7Kyt1PG87KWlzTmFOKGU9aSh0W3VdKSl8fChjKz0ocj1lLWYpKihlLShmKz1yLysrYSkpKTtlbHNlIGZvcig7Kyt1PG87KWlzTmFOKGU9aShuKHRbdV0sdSx0KSkpfHwoYys9KHI9ZS1mKSooZS0oZis9ci8rK2EpKSk7aWYoYT4xKXJldHVybiBjLyhhLTEpfWZ1bmN0aW9uIGEodCxuKXt2YXIgZT1vKHQsbik7cmV0dXJuIGU/TWF0aC5zcXJ0KGUpOmV9ZnVuY3Rpb24gdSh0LG4pe3ZhciBlLHIsaSxvPXQubGVuZ3RoLGE9LTE7aWYobnVsbD09bil7Zm9yKDsrK2E8bzspaWYobnVsbCE9KGU9dFthXSkmJmU+PWUpZm9yKHI9aT1lOysrYTxvOyludWxsIT0oZT10W2FdKSYmKHI+ZSYmKHI9ZSksaTxlJiYoaT1lKSl9ZWxzZSBmb3IoOysrYTxvOylpZihudWxsIT0oZT1uKHRbYV0sYSx0KSkmJmU+PWUpZm9yKHI9aT1lOysrYTxvOyludWxsIT0oZT1uKHRbYV0sYSx0KSkmJihyPmUmJihyPWUpLGk8ZSYmKGk9ZSkpO3JldHVybltyLGldfWZ1bmN0aW9uIGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGModCl7cmV0dXJuIHR9ZnVuY3Rpb24gcyh0LG4sZSl7dD0rdCxuPStuLGU9KGk9YXJndW1lbnRzLmxlbmd0aCk8Mj8obj10LHQ9MCwxKTppPDM/MTorZTtmb3IodmFyIHI9LTEsaT0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChuLXQpL2UpKSxvPW5ldyBBcnJheShpKTsrK3I8aTspb1tyXT10K3IqZTtyZXR1cm4gb31mdW5jdGlvbiBsKHQsbixlKXt2YXIgcixpLG8sYSx1PS0xO2lmKG49K24sdD0rdCxlPStlLHQ9PT1uJiZlPjApcmV0dXJuW3RdO2lmKChyPW48dCkmJihpPXQsdD1uLG49aSksMD09PShhPWgodCxuLGUpKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxuPU1hdGguZmxvb3Iobi9hKSxvPW5ldyBBcnJheShpPU1hdGguY2VpbChuLXQrMSkpOysrdTxpOylvW3VdPSh0K3UpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksbj1NYXRoLmNlaWwobiphKSxvPW5ldyBBcnJheShpPU1hdGguY2VpbCh0LW4rMSkpOysrdTxpOylvW3VdPSh0LXUpL2E7cmV0dXJuIHImJm8ucmV2ZXJzZSgpLG99ZnVuY3Rpb24gaCh0LG4sZSl7dmFyIHI9KG4tdCkvTWF0aC5tYXgoMCxlKSxpPU1hdGguZmxvb3IoTWF0aC5sb2cocikvTWF0aC5MTjEwKSxvPXIvTWF0aC5wb3coMTAsaSk7cmV0dXJuIGk+PTA/KG8+PWlzPzEwOm8+PW9zPzU6bz49YXM/MjoxKSpNYXRoLnBvdygxMCxpKTotTWF0aC5wb3coMTAsLWkpLyhvPj1pcz8xMDpvPj1vcz81Om8+PWFzPzI6MSl9ZnVuY3Rpb24gZCh0LG4sZSl7dmFyIHI9TWF0aC5hYnMobi10KS9NYXRoLm1heCgwLGUpLGk9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhyKS9NYXRoLkxOMTApKSxvPXIvaTtyZXR1cm4gbz49aXM/aSo9MTA6bz49b3M/aSo9NTpvPj1hcyYmKGkqPTIpLG48dD8taTppfWZ1bmN0aW9uIHAodCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZyh0Lmxlbmd0aCkvTWF0aC5MTjIpKzF9ZnVuY3Rpb24gdih0LG4sZSl7aWYobnVsbD09ZSYmKGU9aSkscj10Lmxlbmd0aCl7aWYoKG49K24pPD0wfHxyPDIpcmV0dXJuK2UodFswXSwwLHQpO2lmKG4+PTEpcmV0dXJuK2UodFtyLTFdLHItMSx0KTt2YXIgcixvPShyLTEpKm4sYT1NYXRoLmZsb29yKG8pLHU9K2UodFthXSxhLHQpO3JldHVybiB1KygrZSh0W2ErMV0sYSsxLHQpLXUpKihvLWEpfX1mdW5jdGlvbiBnKHQsbil7dmFyIGUscixpPXQubGVuZ3RoLG89LTE7aWYobnVsbD09bil7Zm9yKDsrK288aTspaWYobnVsbCE9KGU9dFtvXSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9dFtvXSkmJmU+ciYmKHI9ZSl9ZWxzZSBmb3IoOysrbzxpOylpZihudWxsIT0oZT1uKHRbb10sbyx0KSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9bih0W29dLG8sdCkpJiZlPnImJihyPWUpO3JldHVybiByfWZ1bmN0aW9uIHkodCl7Zm9yKHZhciBuLGUscixpPXQubGVuZ3RoLG89LTEsYT0wOysrbzxpOylhKz10W29dLmxlbmd0aDtmb3IoZT1uZXcgQXJyYXkoYSk7LS1pPj0wOylmb3Iobj0ocj10W2ldKS5sZW5ndGg7LS1uPj0wOyllWy0tYV09cltuXTtyZXR1cm4gZX1mdW5jdGlvbiBfKHQsbil7dmFyIGUscixpPXQubGVuZ3RoLG89LTE7aWYobnVsbD09bil7Zm9yKDsrK288aTspaWYobnVsbCE9KGU9dFtvXSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9dFtvXSkmJnI+ZSYmKHI9ZSl9ZWxzZSBmb3IoOysrbzxpOylpZihudWxsIT0oZT1uKHRbb10sbyx0KSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9bih0W29dLG8sdCkpJiZyPmUmJihyPWUpO3JldHVybiByfWZ1bmN0aW9uIGIodCl7aWYoIShpPXQubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIG49LTEsZT1fKHQsbSkscj1uZXcgQXJyYXkoZSk7KytuPGU7KWZvcih2YXIgaSxvPS0xLGE9cltuXT1uZXcgQXJyYXkoaSk7KytvPGk7KWFbb109dFtvXVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBtKHQpe3JldHVybiB0Lmxlbmd0aH1mdW5jdGlvbiB4KHQpe3JldHVybiB0fWZ1bmN0aW9uIHcodCl7cmV0dXJuXCJ0cmFuc2xhdGUoXCIrKHQrLjUpK1wiLDApXCJ9ZnVuY3Rpb24gTSh0KXtyZXR1cm5cInRyYW5zbGF0ZSgwLFwiKyh0Ky41KStcIilcIn1mdW5jdGlvbiBBKCl7cmV0dXJuIXRoaXMuX19heGlzfWZ1bmN0aW9uIFQodCxuKXtmdW5jdGlvbiBlKGUpe3ZhciBoPW51bGw9PWk/bi50aWNrcz9uLnRpY2tzLmFwcGx5KG4scik6bi5kb21haW4oKTppLGQ9bnVsbD09bz9uLnRpY2tGb3JtYXQ/bi50aWNrRm9ybWF0LmFwcGx5KG4scik6eDpvLHA9TWF0aC5tYXgoYSwwKStmLHY9bi5yYW5nZSgpLGc9K3ZbMF0rLjUseT0rdlt2Lmxlbmd0aC0xXSsuNSxfPShuLmJhbmR3aWR0aD9mdW5jdGlvbih0KXt2YXIgbj1NYXRoLm1heCgwLHQuYmFuZHdpZHRoKCktMSkvMjtyZXR1cm4gdC5yb3VuZCgpJiYobj1NYXRoLnJvdW5kKG4pKSxmdW5jdGlvbihlKXtyZXR1cm4rdChlKStufX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybit0KG4pfX0pKG4uY29weSgpKSxiPWUuc2VsZWN0aW9uP2Uuc2VsZWN0aW9uKCk6ZSxtPWIuc2VsZWN0QWxsKFwiLmRvbWFpblwiKS5kYXRhKFtudWxsXSksdz1iLnNlbGVjdEFsbChcIi50aWNrXCIpLmRhdGEoaCxuKS5vcmRlcigpLE09dy5leGl0KCksVD13LmVudGVyKCkuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIixcInRpY2tcIiksTj13LnNlbGVjdChcImxpbmVcIiksUz13LnNlbGVjdChcInRleHRcIik7bT1tLm1lcmdlKG0uZW50ZXIoKS5pbnNlcnQoXCJwYXRoXCIsXCIudGlja1wiKS5hdHRyKFwiY2xhc3NcIixcImRvbWFpblwiKS5hdHRyKFwic3Ryb2tlXCIsXCIjMDAwXCIpKSx3PXcubWVyZ2UoVCksTj1OLm1lcmdlKFQuYXBwZW5kKFwibGluZVwiKS5hdHRyKFwic3Ryb2tlXCIsXCIjMDAwXCIpLmF0dHIocytcIjJcIixjKmEpKSxTPVMubWVyZ2UoVC5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJmaWxsXCIsXCIjMDAwXCIpLmF0dHIocyxjKnApLmF0dHIoXCJkeVwiLHQ9PT1mcz9cIjBlbVwiOnQ9PT1zcz9cIjAuNzFlbVwiOlwiMC4zMmVtXCIpKSxlIT09YiYmKG09bS50cmFuc2l0aW9uKGUpLHc9dy50cmFuc2l0aW9uKGUpLE49Ti50cmFuc2l0aW9uKGUpLFM9Uy50cmFuc2l0aW9uKGUpLE09TS50cmFuc2l0aW9uKGUpLmF0dHIoXCJvcGFjaXR5XCIsaHMpLmF0dHIoXCJ0cmFuc2Zvcm1cIixmdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1fKHQpKT9sKHQpOnRoaXMuZ2V0QXR0cmlidXRlKFwidHJhbnNmb3JtXCIpfSksVC5hdHRyKFwib3BhY2l0eVwiLGhzKS5hdHRyKFwidHJhbnNmb3JtXCIsZnVuY3Rpb24odCl7dmFyIG49dGhpcy5wYXJlbnROb2RlLl9fYXhpcztyZXR1cm4gbChuJiZpc0Zpbml0ZShuPW4odCkpP246Xyh0KSl9KSksTS5yZW1vdmUoKSxtLmF0dHIoXCJkXCIsdD09PWxzfHx0PT1jcz9cIk1cIitjKnUrXCIsXCIrZytcIkgwLjVWXCIreStcIkhcIitjKnU6XCJNXCIrZytcIixcIitjKnUrXCJWMC41SFwiK3krXCJWXCIrYyp1KSx3LmF0dHIoXCJvcGFjaXR5XCIsMSkuYXR0cihcInRyYW5zZm9ybVwiLGZ1bmN0aW9uKHQpe3JldHVybiBsKF8odCkpfSksTi5hdHRyKHMrXCIyXCIsYyphKSxTLmF0dHIocyxjKnApLnRleHQoZCksYi5maWx0ZXIoQSkuYXR0cihcImZpbGxcIixcIm5vbmVcIikuYXR0cihcImZvbnQtc2l6ZVwiLDEwKS5hdHRyKFwiZm9udC1mYW1pbHlcIixcInNhbnMtc2VyaWZcIikuYXR0cihcInRleHQtYW5jaG9yXCIsdD09PWNzP1wic3RhcnRcIjp0PT09bHM/XCJlbmRcIjpcIm1pZGRsZVwiKSxiLmVhY2goZnVuY3Rpb24oKXt0aGlzLl9fYXhpcz1ffSl9dmFyIHI9W10saT1udWxsLG89bnVsbCxhPTYsdT02LGY9MyxjPXQ9PT1mc3x8dD09PWxzPy0xOjEscz10PT09bHN8fHQ9PT1jcz9cInhcIjpcInlcIixsPXQ9PT1mc3x8dD09PXNzP3c6TTtyZXR1cm4gZS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGUpOm59LGUudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gcj11cy5jYWxsKGFyZ3VtZW50cyksZX0sZS50aWNrQXJndW1lbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PXQ/W106dXMuY2FsbCh0KSxlKTpyLnNsaWNlKCl9LGUudGlja1ZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT10P251bGw6dXMuY2FsbCh0KSxlKTppJiZpLnNsaWNlKCl9LGUudGlja0Zvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LGUpOm99LGUudGlja1NpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dT0rdCxlKTphfSxlLnRpY2tTaXplSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3QsZSk6YX0sZS50aWNrU2l6ZU91dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LGUpOnV9LGUudGlja1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9K3QsZSk6Zn0sZX1mdW5jdGlvbiBOKCl7Zm9yKHZhciB0LG49MCxlPWFyZ3VtZW50cy5sZW5ndGgscj17fTtuPGU7KytuKXtpZighKHQ9YXJndW1lbnRzW25dK1wiXCIpfHx0IGluIHIpdGhyb3cgbmV3IEVycm9yKFwiaWxsZWdhbCB0eXBlOiBcIit0KTtyW3RdPVtdfXJldHVybiBuZXcgUyhyKX1mdW5jdGlvbiBTKHQpe3RoaXMuXz10fWZ1bmN0aW9uIEUodCxuLGUpe2Zvcih2YXIgcj0wLGk9dC5sZW5ndGg7cjxpOysrcilpZih0W3JdLm5hbWU9PT1uKXt0W3JdPWRzLHQ9dC5zbGljZSgwLHIpLmNvbmNhdCh0LnNsaWNlKHIrMSkpO2JyZWFrfXJldHVybiBudWxsIT1lJiZ0LnB1c2goe25hbWU6bix2YWx1ZTplfSksdH1mdW5jdGlvbiBrKHQpe3ZhciBuPXQrPVwiXCIsZT1uLmluZGV4T2YoXCI6XCIpO3JldHVybiBlPj0wJiZcInhtbG5zXCIhPT0obj10LnNsaWNlKDAsZSkpJiYodD10LnNsaWNlKGUrMSkpLHZzLmhhc093blByb3BlcnR5KG4pP3tzcGFjZTp2c1tuXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIEModCl7dmFyIG49ayh0KTtyZXR1cm4obi5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5vd25lckRvY3VtZW50LGU9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIGU9PT1wcyYmbi5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09cHM/bi5jcmVhdGVFbGVtZW50KHQpOm4uY3JlYXRlRWxlbWVudE5TKGUsdCl9fSkobil9ZnVuY3Rpb24gUCgpe31mdW5jdGlvbiB6KHQpe3JldHVybiBudWxsPT10P1A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiBSKCl7cmV0dXJuW119ZnVuY3Rpb24gTCh0KXtyZXR1cm4gbnVsbD09dD9SOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gRCh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBVKHQsbil7dGhpcy5vd25lckRvY3VtZW50PXQub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST10Lm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PXQsdGhpcy5fX2RhdGFfXz1ufWZ1bmN0aW9uIHEodCxuLGUscixpLG8pe2Zvcih2YXIgYSx1PTAsZj1uLmxlbmd0aCxjPW8ubGVuZ3RoO3U8YzsrK3UpKGE9blt1XSk/KGEuX19kYXRhX189b1t1XSxyW3VdPWEpOmVbdV09bmV3IFUodCxvW3VdKTtmb3IoO3U8ZjsrK3UpKGE9blt1XSkmJihpW3VdPWEpfWZ1bmN0aW9uIE8odCxuLGUscixpLG8sYSl7dmFyIHUsZixjLHM9e30sbD1uLmxlbmd0aCxoPW8ubGVuZ3RoLGQ9bmV3IEFycmF5KGwpO2Zvcih1PTA7dTxsOysrdSkoZj1uW3VdKSYmKGRbdV09Yz1tcythLmNhbGwoZixmLl9fZGF0YV9fLHUsbiksYyBpbiBzP2lbdV09ZjpzW2NdPWYpO2Zvcih1PTA7dTxoOysrdSkoZj1zW2M9bXMrYS5jYWxsKHQsb1t1XSx1LG8pXSk/KHJbdV09ZixmLl9fZGF0YV9fPW9bdV0sc1tjXT1udWxsKTplW3VdPW5ldyBVKHQsb1t1XSk7Zm9yKHU9MDt1PGw7Kyt1KShmPW5bdV0pJiZzW2RbdV1dPT09ZiYmKGlbdV09Zil9ZnVuY3Rpb24gWSh0LG4pe3JldHVybiB0PG4/LTE6dD5uPzE6dD49bj8wOk5hTn1mdW5jdGlvbiBCKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBGKHQsbil7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuKXx8Qih0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShuKX1mdW5jdGlvbiBJKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLyl9ZnVuY3Rpb24gaih0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyBIKHQpfWZ1bmN0aW9uIEgodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPUkodC5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIil9ZnVuY3Rpb24gWCh0LG4pe2Zvcih2YXIgZT1qKHQpLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspZS5hZGQobltyXSl9ZnVuY3Rpb24gRyh0LG4pe2Zvcih2YXIgZT1qKHQpLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspZS5yZW1vdmUobltyXSl9ZnVuY3Rpb24gVigpe3RoaXMudGV4dENvbnRlbnQ9XCJcIn1mdW5jdGlvbiAkKCl7dGhpcy5pbm5lckhUTUw9XCJcIn1mdW5jdGlvbiBXKCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIFooKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBRKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gSigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIEsoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMSksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gdHQoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMCksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gbnQodCxuLGUpe3JldHVybiB0PWV0KHQsbixlKSxmdW5jdGlvbihuKXt2YXIgZT1uLnJlbGF0ZWRUYXJnZXQ7ZSYmKGU9PT10aGlzfHw4JmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykpfHx0LmNhbGwodGhpcyxuKX19ZnVuY3Rpb24gZXQobixlLHIpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgbz10LmV2ZW50O3QuZXZlbnQ9aTt0cnl7bi5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLHIpfWZpbmFsbHl7dC5ldmVudD1vfX19ZnVuY3Rpb24gcnQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5fX29uO2lmKG4pe2Zvcih2YXIgZSxyPTAsaT0tMSxvPW4ubGVuZ3RoO3I8bzsrK3IpZT1uW3JdLHQudHlwZSYmZS50eXBlIT09dC50eXBlfHxlLm5hbWUhPT10Lm5hbWU/blsrK2ldPWU6dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGUudHlwZSxlLmxpc3RlbmVyLGUuY2FwdHVyZSk7KytpP24ubGVuZ3RoPWk6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIGl0KHQsbixlKXt2YXIgcj14cy5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP250OmV0O3JldHVybiBmdW5jdGlvbihpLG8sYSl7dmFyIHUsZj10aGlzLl9fb24sYz1yKG4sbyxhKTtpZihmKWZvcih2YXIgcz0wLGw9Zi5sZW5ndGg7czxsOysrcylpZigodT1mW3NdKS50eXBlPT09dC50eXBlJiZ1Lm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih1LnR5cGUsdS5saXN0ZW5lcix1LmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcih1LnR5cGUsdS5saXN0ZW5lcj1jLHUuY2FwdHVyZT1lKSx2b2lkKHUudmFsdWU9bik7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLGUpLHU9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOm4sbGlzdGVuZXI6YyxjYXB0dXJlOmV9LGY/Zi5wdXNoKHUpOnRoaXMuX19vbj1bdV19fWZ1bmN0aW9uIG90KG4sZSxyLGkpe3ZhciBvPXQuZXZlbnQ7bi5zb3VyY2VFdmVudD10LmV2ZW50LHQuZXZlbnQ9bjt0cnl7cmV0dXJuIGUuYXBwbHkocixpKX1maW5hbGx5e3QuZXZlbnQ9b319ZnVuY3Rpb24gYXQodCxuLGUpe3ZhciByPUIodCksaT1yLkN1c3RvbUV2ZW50O1wiZnVuY3Rpb25cIj09dHlwZW9mIGk/aT1uZXcgaShuLGUpOihpPXIuZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJFdmVudFwiKSxlPyhpLmluaXRFdmVudChuLGUuYnViYmxlcyxlLmNhbmNlbGFibGUpLGkuZGV0YWlsPWUuZGV0YWlsKTppLmluaXRFdmVudChuLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KGkpfWZ1bmN0aW9uIHV0KHQsbil7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1ufWZ1bmN0aW9uIGZ0KCl7cmV0dXJuIG5ldyB1dChbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLHdzKX1mdW5jdGlvbiBjdCh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9uZXcgdXQoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB1dChbW3RdXSx3cyl9ZnVuY3Rpb24gc3QoKXtyZXR1cm4gbmV3IGx0fWZ1bmN0aW9uIGx0KCl7dGhpcy5fPVwiQFwiKygrK01zKS50b1N0cmluZygzNil9ZnVuY3Rpb24gaHQoKXtmb3IodmFyIG4sZT10LmV2ZW50O249ZS5zb3VyY2VFdmVudDspZT1uO3JldHVybiBlfWZ1bmN0aW9uIGR0KHQsbil7dmFyIGU9dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYoZS5jcmVhdGVTVkdQb2ludCl7dmFyIHI9ZS5jcmVhdGVTVkdQb2ludCgpO3JldHVybiByLng9bi5jbGllbnRYLHIueT1uLmNsaWVudFkscj1yLm1hdHJpeFRyYW5zZm9ybSh0LmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSksW3IueCxyLnldfXZhciBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW24uY2xpZW50WC1pLmxlZnQtdC5jbGllbnRMZWZ0LG4uY2xpZW50WS1pLnRvcC10LmNsaWVudFRvcF19ZnVuY3Rpb24gcHQodCl7dmFyIG49aHQoKTtyZXR1cm4gbi5jaGFuZ2VkVG91Y2hlcyYmKG49bi5jaGFuZ2VkVG91Y2hlc1swXSksZHQodCxuKX1mdW5jdGlvbiB2dCh0LG4sZSl7YXJndW1lbnRzLmxlbmd0aDwzJiYoZT1uLG49aHQoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciByLGk9MCxvPW4/bi5sZW5ndGg6MDtpPG87KytpKWlmKChyPW5baV0pLmlkZW50aWZpZXI9PT1lKXJldHVybiBkdCh0LHIpO3JldHVybiBudWxsfWZ1bmN0aW9uIGd0KCl7dC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB5dCgpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIF90KHQpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGU9Y3QodCkub24oXCJkcmFnc3RhcnQuZHJhZ1wiLHl0LCEwKTtcIm9uc2VsZWN0c3RhcnRcImluIG4/ZS5vbihcInNlbGVjdHN0YXJ0LmRyYWdcIix5dCwhMCk6KG4uX19ub3NlbGVjdD1uLnN0eWxlLk1velVzZXJTZWxlY3Qsbi5zdHlsZS5Nb3pVc2VyU2VsZWN0PVwibm9uZVwiKX1mdW5jdGlvbiBidCh0LG4pe3ZhciBlPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9Y3QodCkub24oXCJkcmFnc3RhcnQuZHJhZ1wiLG51bGwpO24mJihyLm9uKFwiY2xpY2suZHJhZ1wiLHl0LCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5vbihcImNsaWNrLmRyYWdcIixudWxsKX0sMCkpLFwib25zZWxlY3RzdGFydFwiaW4gZT9yLm9uKFwic2VsZWN0c3RhcnQuZHJhZ1wiLG51bGwpOihlLnN0eWxlLk1velVzZXJTZWxlY3Q9ZS5fX25vc2VsZWN0LGRlbGV0ZSBlLl9fbm9zZWxlY3QpfWZ1bmN0aW9uIG10KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiB4dCh0LG4sZSxyLGksbyxhLHUsZixjKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1uLHRoaXMuc3ViamVjdD1lLHRoaXMuaWRlbnRpZmllcj1yLHRoaXMuYWN0aXZlPWksdGhpcy54PW8sdGhpcy55PWEsdGhpcy5keD11LHRoaXMuZHk9Zix0aGlzLl89Y31mdW5jdGlvbiB3dCgpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBNdCgpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9ZnVuY3Rpb24gQXQobil7cmV0dXJuIG51bGw9PW4/e3g6dC5ldmVudC54LHk6dC5ldmVudC55fTpufWZ1bmN0aW9uIFR0KCl7cmV0dXJuXCJvbnRvdWNoc3RhcnRcImluIHRoaXN9ZnVuY3Rpb24gTnQodCxuLGUpe3QucHJvdG90eXBlPW4ucHJvdG90eXBlPWUsZS5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIFN0KHQsbil7dmFyIGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSk7Zm9yKHZhciByIGluIG4pZVtyXT1uW3JdO3JldHVybiBlfWZ1bmN0aW9uIEV0KCl7fWZ1bmN0aW9uIGt0KHQpe3ZhciBuO3JldHVybiB0PSh0K1wiXCIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLChuPVNzLmV4ZWModCkpPyhuPXBhcnNlSW50KG5bMV0sMTYpLG5ldyBMdChuPj44JjE1fG4+PjQmMjQwLG4+PjQmMTV8MjQwJm4sKDE1Jm4pPDw0fDE1Jm4sMSkpOihuPUVzLmV4ZWModCkpP0N0KHBhcnNlSW50KG5bMV0sMTYpKToobj1rcy5leGVjKHQpKT9uZXcgTHQoblsxXSxuWzJdLG5bM10sMSk6KG49Q3MuZXhlYyh0KSk/bmV3IEx0KDI1NSpuWzFdLzEwMCwyNTUqblsyXS8xMDAsMjU1Km5bM10vMTAwLDEpOihuPVBzLmV4ZWModCkpP1B0KG5bMV0sblsyXSxuWzNdLG5bNF0pOihuPXpzLmV4ZWModCkpP1B0KDI1NSpuWzFdLzEwMCwyNTUqblsyXS8xMDAsMjU1Km5bM10vMTAwLG5bNF0pOihuPVJzLmV4ZWModCkpP1V0KG5bMV0sblsyXS8xMDAsblszXS8xMDAsMSk6KG49THMuZXhlYyh0KSk/VXQoblsxXSxuWzJdLzEwMCxuWzNdLzEwMCxuWzRdKTpEcy5oYXNPd25Qcm9wZXJ0eSh0KT9DdChEc1t0XSk6XCJ0cmFuc3BhcmVudFwiPT09dD9uZXcgTHQoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBDdCh0KXtyZXR1cm4gbmV3IEx0KHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCwxKX1mdW5jdGlvbiBQdCh0LG4sZSxyKXtyZXR1cm4gcjw9MCYmKHQ9bj1lPU5hTiksbmV3IEx0KHQsbixlLHIpfWZ1bmN0aW9uIHp0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgRXR8fCh0PWt0KHQpKSx0Pyh0PXQucmdiKCksbmV3IEx0KHQucix0LmcsdC5iLHQub3BhY2l0eSkpOm5ldyBMdH1mdW5jdGlvbiBSdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/enQodCk6bmV3IEx0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBMdCh0LG4sZSxyKXt0aGlzLnI9K3QsdGhpcy5nPStuLHRoaXMuYj0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gRHQodCl7cmV0dXJuKCh0PU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodCl8fDApKSk8MTY/XCIwXCI6XCJcIikrdC50b1N0cmluZygxNil9ZnVuY3Rpb24gVXQodCxuLGUscil7cmV0dXJuIHI8PTA/dD1uPWU9TmFOOmU8PTB8fGU+PTE/dD1uPU5hTjpuPD0wJiYodD1OYU4pLG5ldyBPdCh0LG4sZSxyKX1mdW5jdGlvbiBxdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIE90KXJldHVybiBuZXcgT3QodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgRXR8fCh0PWt0KHQpKSwhdClyZXR1cm4gbmV3IE90O2lmKHQgaW5zdGFuY2VvZiBPdClyZXR1cm4gdDt2YXIgbj0odD10LnJnYigpKS5yLzI1NSxlPXQuZy8yNTUscj10LmIvMjU1LGk9TWF0aC5taW4obixlLHIpLG89TWF0aC5tYXgobixlLHIpLGE9TmFOLHU9by1pLGY9KG8raSkvMjtyZXR1cm4gdT8oYT1uPT09bz8oZS1yKS91KzYqKGU8cik6ZT09PW8/KHItbikvdSsyOihuLWUpL3UrNCx1Lz1mPC41P28raToyLW8taSxhKj02MCk6dT1mPjAmJmY8MT8wOmEsbmV3IE90KGEsdSxmLHQub3BhY2l0eSl9KHQpOm5ldyBPdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gT3QodCxuLGUscil7dGhpcy5oPSt0LHRoaXMucz0rbix0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIFl0KHQsbixlKXtyZXR1cm4gMjU1Kih0PDYwP24rKGUtbikqdC82MDp0PDE4MD9lOnQ8MjQwP24rKGUtbikqKDI0MC10KS82MDpuKX1mdW5jdGlvbiBCdCh0KXtpZih0IGluc3RhbmNlb2YgSXQpcmV0dXJuIG5ldyBJdCh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBXdCl7aWYoaXNOYU4odC5oKSlyZXR1cm4gbmV3IEl0KHQubCwwLDAsdC5vcGFjaXR5KTt2YXIgbj10LmgqVXM7cmV0dXJuIG5ldyBJdCh0LmwsTWF0aC5jb3MobikqdC5jLE1hdGguc2luKG4pKnQuYyx0Lm9wYWNpdHkpfXQgaW5zdGFuY2VvZiBMdHx8KHQ9enQodCkpO3ZhciBlLHIsaT1HdCh0LnIpLG89R3QodC5nKSxhPUd0KHQuYiksdT1qdCgoLjIyMjUwNDUqaSsuNzE2ODc4NipvKy4wNjA2MTY5KmEpL1lzKTtyZXR1cm4gaT09PW8mJm89PT1hP2U9cj11OihlPWp0KCguNDM2MDc0NyppKy4zODUwNjQ5Km8rLjE0MzA4MDQqYSkvT3MpLHI9anQoKC4wMTM5MzIyKmkrLjA5NzEwNDUqbysuNzE0MTczMyphKS9CcykpLG5ldyBJdCgxMTYqdS0xNiw1MDAqKGUtdSksMjAwKih1LXIpLHQub3BhY2l0eSl9ZnVuY3Rpb24gRnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0J0KHQpOm5ldyBJdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gSXQodCxuLGUscil7dGhpcy5sPSt0LHRoaXMuYT0rbix0aGlzLmI9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIGp0KHQpe3JldHVybiB0PkhzP01hdGgucG93KHQsMS8zKTp0L2pzK0ZzfWZ1bmN0aW9uIEh0KHQpe3JldHVybiB0PklzP3QqdCp0OmpzKih0LUZzKX1mdW5jdGlvbiBYdCh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIEd0KHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIFZ0KHQpe2lmKHQgaW5zdGFuY2VvZiBXdClyZXR1cm4gbmV3IFd0KHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIEl0fHwodD1CdCh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IFd0KE5hTiwwLHQubCx0Lm9wYWNpdHkpO3ZhciBuPU1hdGguYXRhbjIodC5iLHQuYSkqcXM7cmV0dXJuIG5ldyBXdChuPDA/biszNjA6bixNYXRoLnNxcnQodC5hKnQuYSt0LmIqdC5iKSx0LmwsdC5vcGFjaXR5KX1mdW5jdGlvbiAkdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/VnQodCk6bmV3IFd0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBXdCh0LG4sZSxyKXt0aGlzLmg9K3QsdGhpcy5jPStuLHRoaXMubD0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gWnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2Z1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBRdClyZXR1cm4gbmV3IFF0KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7dCBpbnN0YW5jZW9mIEx0fHwodD16dCh0KSk7dmFyIG49dC5yLzI1NSxlPXQuZy8yNTUscj10LmIvMjU1LGk9KFpzKnIrJHMqbi1XcyplKS8oWnMrJHMtV3MpLG89ci1pLGE9KFZzKihlLWkpLVhzKm8pL0dzLHU9TWF0aC5zcXJ0KGEqYStvKm8pLyhWcyppKigxLWkpKSxmPXU/TWF0aC5hdGFuMihhLG8pKnFzLTEyMDpOYU47cmV0dXJuIG5ldyBRdChmPDA/ZiszNjA6Zix1LGksdC5vcGFjaXR5KX0odCk6bmV3IFF0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBRdCh0LG4sZSxyKXt0aGlzLmg9K3QsdGhpcy5zPStuLHRoaXMubD0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gSnQodCxuLGUscixpKXt2YXIgbz10KnQsYT1vKnQ7cmV0dXJuKCgxLTMqdCszKm8tYSkqbisoNC02Km8rMyphKSplKygxKzMqdCszKm8tMyphKSpyK2EqaSkvNn1mdW5jdGlvbiBLdCh0KXt2YXIgbj10Lmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1lPD0wP2U9MDplPj0xPyhlPTEsbi0xKTpNYXRoLmZsb29yKGUqbiksaT10W3JdLG89dFtyKzFdLGE9cj4wP3Rbci0xXToyKmktbyx1PXI8bi0xP3RbcisyXToyKm8taTtyZXR1cm4gSnQoKGUtci9uKSpuLGEsaSxvLHUpfX1mdW5jdGlvbiB0bih0KXt2YXIgbj10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9TWF0aC5mbG9vcigoKGUlPTEpPDA/KytlOmUpKm4pLGk9dFsocituLTEpJW5dLG89dFtyJW5dLGE9dFsocisxKSVuXSx1PXRbKHIrMiklbl07cmV0dXJuIEp0KChlLXIvbikqbixpLG8sYSx1KX19ZnVuY3Rpb24gbm4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGVuKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0K2Uqbn19ZnVuY3Rpb24gcm4odCxuKXt2YXIgZT1uLXQ7cmV0dXJuIGU/ZW4odCxlPjE4MHx8ZTwtMTgwP2UtMzYwKk1hdGgucm91bmQoZS8zNjApOmUpOm5uKGlzTmFOKHQpP246dCl9ZnVuY3Rpb24gb24odCl7cmV0dXJuIDE9PSh0PSt0KT9hbjpmdW5jdGlvbihuLGUpe3JldHVybiBlLW4/ZnVuY3Rpb24odCxuLGUpe3JldHVybiB0PU1hdGgucG93KHQsZSksbj1NYXRoLnBvdyhuLGUpLXQsZT0xL2UsZnVuY3Rpb24ocil7cmV0dXJuIE1hdGgucG93KHQrcipuLGUpfX0obixlLHQpOm5uKGlzTmFOKG4pP2U6bil9fWZ1bmN0aW9uIGFuKHQsbil7dmFyIGU9bi10O3JldHVybiBlP2VuKHQsZSk6bm4oaXNOYU4odCk/bjp0KX1mdW5jdGlvbiB1bih0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGUscixpPW4ubGVuZ3RoLG89bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpLHU9bmV3IEFycmF5KGkpO2ZvcihlPTA7ZTxpOysrZSlyPVJ0KG5bZV0pLG9bZV09ci5yfHwwLGFbZV09ci5nfHwwLHVbZV09ci5ifHwwO3JldHVybiBvPXQobyksYT10KGEpLHU9dCh1KSxyLm9wYWNpdHk9MSxmdW5jdGlvbih0KXtyZXR1cm4gci5yPW8odCksci5nPWEodCksci5iPXUodCkscitcIlwifX19ZnVuY3Rpb24gZm4odCxuKXt2YXIgZSxyPW4/bi5sZW5ndGg6MCxpPXQ/TWF0aC5taW4ocix0Lmxlbmd0aCk6MCxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShyKTtmb3IoZT0wO2U8aTsrK2Upb1tlXT1kbih0W2VdLG5bZV0pO2Zvcig7ZTxyOysrZSlhW2VdPW5bZV07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTxpOysrZSlhW2VdPW9bZV0odCk7cmV0dXJuIGF9fWZ1bmN0aW9uIGNuKHQsbil7dmFyIGU9bmV3IERhdGU7cmV0dXJuIHQ9K3Qsbi09dCxmdW5jdGlvbihyKXtyZXR1cm4gZS5zZXRUaW1lKHQrbipyKSxlfX1mdW5jdGlvbiBzbih0LG4pe3JldHVybiB0PSt0LG4tPXQsZnVuY3Rpb24oZSl7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBsbih0LG4pe3ZhciBlLHI9e30saT17fTtudWxsIT09dCYmXCJvYmplY3RcIj09dHlwZW9mIHR8fCh0PXt9KSxudWxsIT09biYmXCJvYmplY3RcIj09dHlwZW9mIG58fChuPXt9KTtmb3IoZSBpbiBuKWUgaW4gdD9yW2VdPWRuKHRbZV0sbltlXSk6aVtlXT1uW2VdO3JldHVybiBmdW5jdGlvbih0KXtmb3IoZSBpbiByKWlbZV09cltlXSh0KTtyZXR1cm4gaX19ZnVuY3Rpb24gaG4odCxuKXt2YXIgZSxyLGksbz1hbC5sYXN0SW5kZXg9dWwubGFzdEluZGV4PTAsYT0tMSx1PVtdLGY9W107Zm9yKHQrPVwiXCIsbis9XCJcIjsoZT1hbC5leGVjKHQpKSYmKHI9dWwuZXhlYyhuKSk7KShpPXIuaW5kZXgpPm8mJihpPW4uc2xpY2UobyxpKSx1W2FdP3VbYV0rPWk6dVsrK2FdPWkpLChlPWVbMF0pPT09KHI9clswXSk/dVthXT91W2FdKz1yOnVbKythXT1yOih1WysrYV09bnVsbCxmLnB1c2goe2k6YSx4OnNuKGUscil9KSksbz11bC5sYXN0SW5kZXg7cmV0dXJuIG88bi5sZW5ndGgmJihpPW4uc2xpY2UobyksdVthXT91W2FdKz1pOnVbKythXT1pKSx1Lmxlbmd0aDwyP2ZbMF0/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0KG4pK1wiXCJ9fShmWzBdLngpOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0obik6KG49Zi5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9MDtyPG47KytyKXVbKGU9ZltyXSkuaV09ZS54KHQpO3JldHVybiB1LmpvaW4oXCJcIil9KX1mdW5jdGlvbiBkbih0LG4pe3ZhciBlLHI9dHlwZW9mIG47cmV0dXJuIG51bGw9PW58fFwiYm9vbGVhblwiPT09cj9ubihuKTooXCJudW1iZXJcIj09PXI/c246XCJzdHJpbmdcIj09PXI/KGU9a3QobikpPyhuPWUscmwpOmhuOm4gaW5zdGFuY2VvZiBrdD9ybDpuIGluc3RhbmNlb2YgRGF0ZT9jbjpBcnJheS5pc0FycmF5KG4pP2ZuOlwiZnVuY3Rpb25cIiE9dHlwZW9mIG4udmFsdWVPZiYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbi50b1N0cmluZ3x8aXNOYU4obik/bG46c24pKHQsbil9ZnVuY3Rpb24gcG4odCxuKXtyZXR1cm4gdD0rdCxuLT10LGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnJvdW5kKHQrbiplKX19ZnVuY3Rpb24gdm4odCxuLGUscixpLG8pe3ZhciBhLHUsZjtyZXR1cm4oYT1NYXRoLnNxcnQodCp0K24qbikpJiYodC89YSxuLz1hKSwoZj10KmUrbipyKSYmKGUtPXQqZixyLT1uKmYpLCh1PU1hdGguc3FydChlKmUrcipyKSkmJihlLz11LHIvPXUsZi89dSksdCpyPG4qZSYmKHQ9LXQsbj0tbixmPS1mLGE9LWEpLHt0cmFuc2xhdGVYOmksdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKG4sdCkqZmwsc2tld1g6TWF0aC5hdGFuKGYpKmZsLHNjYWxlWDphLHNjYWxlWTp1fX1mdW5jdGlvbiBnbih0LG4sZSxyKXtmdW5jdGlvbiBpKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpK1wiIFwiOlwiXCJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHU9W10sZj1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSxmdW5jdGlvbih0LHIsaSxvLGEsdSl7aWYodCE9PWl8fHIhPT1vKXt2YXIgZj1hLnB1c2goXCJ0cmFuc2xhdGUoXCIsbnVsbCxuLG51bGwsZSk7dS5wdXNoKHtpOmYtNCx4OnNuKHQsaSl9LHtpOmYtMix4OnNuKHIsbyl9KX1lbHNlKGl8fG8pJiZhLnB1c2goXCJ0cmFuc2xhdGUoXCIraStuK28rZSl9KG8udHJhbnNsYXRlWCxvLnRyYW5zbGF0ZVksYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSx1LGYpLGZ1bmN0aW9uKHQsbixlLG8pe3QhPT1uPyh0LW4+MTgwP24rPTM2MDpuLXQ+MTgwJiYodCs9MzYwKSxvLnB1c2goe2k6ZS5wdXNoKGkoZSkrXCJyb3RhdGUoXCIsbnVsbCxyKS0yLHg6c24odCxuKX0pKTpuJiZlLnB1c2goaShlKStcInJvdGF0ZShcIituK3IpfShvLnJvdGF0ZSxhLnJvdGF0ZSx1LGYpLGZ1bmN0aW9uKHQsbixlLG8pe3QhPT1uP28ucHVzaCh7aTplLnB1c2goaShlKStcInNrZXdYKFwiLG51bGwsciktMix4OnNuKHQsbil9KTpuJiZlLnB1c2goaShlKStcInNrZXdYKFwiK24rcil9KG8uc2tld1gsYS5za2V3WCx1LGYpLGZ1bmN0aW9uKHQsbixlLHIsbyxhKXtpZih0IT09ZXx8biE9PXIpe3ZhciB1PW8ucHVzaChpKG8pK1wic2NhbGUoXCIsbnVsbCxcIixcIixudWxsLFwiKVwiKTthLnB1c2goe2k6dS00LHg6c24odCxlKX0se2k6dS0yLHg6c24obixyKX0pfWVsc2UgMT09PWUmJjE9PT1yfHxvLnB1c2goaShvKStcInNjYWxlKFwiK2UrXCIsXCIrcitcIilcIil9KG8uc2NhbGVYLG8uc2NhbGVZLGEuc2NhbGVYLGEuc2NhbGVZLHUsZiksbz1hPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9LTEscj1mLmxlbmd0aDsrK2U8cjspdVsobj1mW2VdKS5pXT1uLngodCk7cmV0dXJuIHUuam9pbihcIlwiKX19fWZ1bmN0aW9uIHluKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSkrMS90KS8yfWZ1bmN0aW9uIF9uKHQsbil7dmFyIGUscixpPXRbMF0sbz10WzFdLGE9dFsyXSx1PW5bMF0sZj1uWzFdLGM9blsyXSxzPXUtaSxsPWYtbyxoPXMqcytsKmw7aWYoaDx2bClyPU1hdGgubG9nKGMvYSkvaGwsZT1mdW5jdGlvbih0KXtyZXR1cm5baSt0KnMsbyt0KmwsYSpNYXRoLmV4cChobCp0KnIpXX07ZWxzZXt2YXIgZD1NYXRoLnNxcnQoaCkscD0oYypjLWEqYStwbCpoKS8oMiphKmRsKmQpLHY9KGMqYy1hKmEtcGwqaCkvKDIqYypkbCpkKSxnPU1hdGgubG9nKE1hdGguc3FydChwKnArMSktcCkseT1NYXRoLmxvZyhNYXRoLnNxcnQodip2KzEpLXYpO3I9KHktZykvaGwsZT1mdW5jdGlvbih0KXt2YXIgbj10KnIsZT15bihnKSx1PWEvKGRsKmQpKihlKmZ1bmN0aW9uKHQpe3JldHVybigodD1NYXRoLmV4cCgyKnQpKS0xKS8odCsxKX0oaGwqbitnKS1mdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0oZykpO3JldHVybltpK3UqcyxvK3UqbCxhKmUveW4oaGwqbitnKV19fXJldHVybiBlLmR1cmF0aW9uPTFlMypyLGV9ZnVuY3Rpb24gYm4odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dCgobj1xdChuKSkuaCwoZT1xdChlKSkuaCksaT1hbihuLnMsZS5zKSxvPWFuKG4ubCxlLmwpLGE9YW4obi5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuLmg9cih0KSxuLnM9aSh0KSxuLmw9byh0KSxuLm9wYWNpdHk9YSh0KSxuK1wiXCJ9fX1mdW5jdGlvbiBtbih0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj10KChuPSR0KG4pKS5oLChlPSR0KGUpKS5oKSxpPWFuKG4uYyxlLmMpLG89YW4obi5sLGUubCksYT1hbihuLm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4uaD1yKHQpLG4uYz1pKHQpLG4ubD1vKHQpLG4ub3BhY2l0eT1hKHQpLG4rXCJcIn19fWZ1bmN0aW9uIHhuKHQpe3JldHVybiBmdW5jdGlvbiBuKGUpe2Z1bmN0aW9uIHIobixyKXt2YXIgaT10KChuPVp0KG4pKS5oLChyPVp0KHIpKS5oKSxvPWFuKG4ucyxyLnMpLGE9YW4obi5sLHIubCksdT1hbihuLm9wYWNpdHksci5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4uaD1pKHQpLG4ucz1vKHQpLG4ubD1hKE1hdGgucG93KHQsZSkpLG4ub3BhY2l0eT11KHQpLG4rXCJcIn19cmV0dXJuIGU9K2Usci5nYW1tYT1uLHJ9KDEpfWZ1bmN0aW9uIHduKCl7cmV0dXJuIFNsfHwoQ2woTW4pLFNsPWtsLm5vdygpK0VsKX1mdW5jdGlvbiBNbigpe1NsPTB9ZnVuY3Rpb24gQW4oKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfWZ1bmN0aW9uIFRuKHQsbixlKXt2YXIgcj1uZXcgQW47cmV0dXJuIHIucmVzdGFydCh0LG4sZSkscn1mdW5jdGlvbiBObigpe3duKCksKyt3bDtmb3IodmFyIHQsbj1ubDtuOykodD1TbC1uLl90aW1lKT49MCYmbi5fY2FsbC5jYWxsKG51bGwsdCksbj1uLl9uZXh0Oy0td2x9ZnVuY3Rpb24gU24oKXtTbD0oTmw9a2wubm93KCkpK0VsLHdsPU1sPTA7dHJ5e05uKCl9ZmluYWxseXt3bD0wLGZ1bmN0aW9uKCl7dmFyIHQsbixlPW5sLHI9MS8wO2Zvcig7ZTspZS5fY2FsbD8ocj5lLl90aW1lJiYocj1lLl90aW1lKSx0PWUsZT1lLl9uZXh0KToobj1lLl9uZXh0LGUuX25leHQ9bnVsbCxlPXQ/dC5fbmV4dD1uOm5sPW4pO2VsPXQsa24ocil9KCksU2w9MH19ZnVuY3Rpb24gRW4oKXt2YXIgdD1rbC5ub3coKSxuPXQtTmw7bj5UbCYmKEVsLT1uLE5sPXQpfWZ1bmN0aW9uIGtuKHQpe2lmKCF3bCl7TWwmJihNbD1jbGVhclRpbWVvdXQoTWwpKTt0LVNsPjI0Pyh0PDEvMCYmKE1sPXNldFRpbWVvdXQoU24sdC1rbC5ub3coKS1FbCkpLEFsJiYoQWw9Y2xlYXJJbnRlcnZhbChBbCkpKTooQWx8fChObD1rbC5ub3coKSxBbD1zZXRJbnRlcnZhbChFbixUbCkpLHdsPTEsQ2woU24pKX19ZnVuY3Rpb24gQ24odCxuLGUpe3ZhciByPW5ldyBBbjtyZXR1cm4gbj1udWxsPT1uPzA6K24sci5yZXN0YXJ0KGZ1bmN0aW9uKGUpe3Iuc3RvcCgpLHQoZStuKX0sbixlKSxyfWZ1bmN0aW9uIFBuKHQsbixlLHIsaSxvKXt2YXIgYT10Ll9fdHJhbnNpdGlvbjtpZihhKXtpZihlIGluIGEpcmV0dXJufWVsc2UgdC5fX3RyYW5zaXRpb249e307KGZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKGYpe3ZhciBjLHMsbCxoO2lmKGUuc3RhdGUhPT1MbClyZXR1cm4gbygpO2ZvcihjIGluIHUpaWYoKGg9dVtjXSkubmFtZT09PWUubmFtZSl7aWYoaC5zdGF0ZT09PVVsKXJldHVybiBDbihyKTtoLnN0YXRlPT09cWw/KGguc3RhdGU9WWwsaC50aW1lci5zdG9wKCksaC5vbi5jYWxsKFwiaW50ZXJydXB0XCIsdCx0Ll9fZGF0YV9fLGguaW5kZXgsaC5ncm91cCksZGVsZXRlIHVbY10pOitjPG4mJihoLnN0YXRlPVlsLGgudGltZXIuc3RvcCgpLGRlbGV0ZSB1W2NdKX1pZihDbihmdW5jdGlvbigpe2Uuc3RhdGU9PT1VbCYmKGUuc3RhdGU9cWwsZS50aW1lci5yZXN0YXJ0KGksZS5kZWxheSxlLnRpbWUpLGkoZikpfSksZS5zdGF0ZT1EbCxlLm9uLmNhbGwoXCJzdGFydFwiLHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLGUuc3RhdGU9PT1EbCl7Zm9yKGUuc3RhdGU9VWwsYT1uZXcgQXJyYXkobD1lLnR3ZWVuLmxlbmd0aCksYz0wLHM9LTE7YzxsOysrYykoaD1lLnR3ZWVuW2NdLnZhbHVlLmNhbGwodCx0Ll9fZGF0YV9fLGUuaW5kZXgsZS5ncm91cCkpJiYoYVsrK3NdPWgpO2EubGVuZ3RoPXMrMX19ZnVuY3Rpb24gaShuKXtmb3IodmFyIHI9bjxlLmR1cmF0aW9uP2UuZWFzZS5jYWxsKG51bGwsbi9lLmR1cmF0aW9uKTooZS50aW1lci5yZXN0YXJ0KG8pLGUuc3RhdGU9T2wsMSksaT0tMSx1PWEubGVuZ3RoOysraTx1OylhW2ldLmNhbGwobnVsbCxyKTtlLnN0YXRlPT09T2wmJihlLm9uLmNhbGwoXCJlbmRcIix0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxvKCkpfWZ1bmN0aW9uIG8oKXtlLnN0YXRlPVlsLGUudGltZXIuc3RvcCgpLGRlbGV0ZSB1W25dO2Zvcih2YXIgciBpbiB1KXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259dmFyIGEsdT10Ll9fdHJhbnNpdGlvbjt1W25dPWUsZS50aW1lcj1UbihmdW5jdGlvbih0KXtlLnN0YXRlPUxsLGUudGltZXIucmVzdGFydChyLGUuZGVsYXksZS50aW1lKSxlLmRlbGF5PD10JiZyKHQtZS5kZWxheSl9LDAsZS50aW1lKX0pKHQsZSx7bmFtZTpuLGluZGV4OnIsZ3JvdXA6aSxvbjpQbCx0d2Vlbjp6bCx0aW1lOm8udGltZSxkZWxheTpvLmRlbGF5LGR1cmF0aW9uOm8uZHVyYXRpb24sZWFzZTpvLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTpSbH0pfWZ1bmN0aW9uIHpuKHQsbil7dmFyIGU9TG4odCxuKTtpZihlLnN0YXRlPlJsKXRocm93IG5ldyBFcnJvcihcInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBSbih0LG4pe3ZhciBlPUxuKHQsbik7aWYoZS5zdGF0ZT5EbCl0aHJvdyBuZXcgRXJyb3IoXCJ0b28gbGF0ZTsgYWxyZWFkeSBzdGFydGVkXCIpO3JldHVybiBlfWZ1bmN0aW9uIExuKHQsbil7dmFyIGU9dC5fX3RyYW5zaXRpb247aWYoIWV8fCEoZT1lW25dKSl0aHJvdyBuZXcgRXJyb3IoXCJ0cmFuc2l0aW9uIG5vdCBmb3VuZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBEbih0LG4pe3ZhciBlLHIsaSxvPXQuX190cmFuc2l0aW9uLGE9ITA7aWYobyl7bj1udWxsPT1uP251bGw6bitcIlwiO2ZvcihpIGluIG8pKGU9b1tpXSkubmFtZT09PW4/KHI9ZS5zdGF0ZT5EbCYmZS5zdGF0ZTxPbCxlLnN0YXRlPVlsLGUudGltZXIuc3RvcCgpLHImJmUub24uY2FsbChcImludGVycnVwdFwiLHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLGRlbGV0ZSBvW2ldKTphPSExO2EmJmRlbGV0ZSB0Ll9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gVW4odCxuLGUpe3ZhciByPXQuX2lkO3JldHVybiB0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1Sbih0aGlzLHIpOyh0LnZhbHVlfHwodC52YWx1ZT17fSkpW25dPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksZnVuY3Rpb24odCl7cmV0dXJuIExuKHQscikudmFsdWVbbl19fWZ1bmN0aW9uIHFuKHQsbil7dmFyIGU7cmV0dXJuKFwibnVtYmVyXCI9PXR5cGVvZiBuP3NuOm4gaW5zdGFuY2VvZiBrdD9ybDooZT1rdChuKSk/KG49ZSxybCk6aG4pKHQsbil9ZnVuY3Rpb24gT24odCxuLGUscil7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1uLHRoaXMuX25hbWU9ZSx0aGlzLl9pZD1yfWZ1bmN0aW9uIFluKHQpe3JldHVybiBmdCgpLnRyYW5zaXRpb24odCl9ZnVuY3Rpb24gQm4oKXtyZXR1cm4rK0ZsfWZ1bmN0aW9uIEZuKHQpe3JldHVybigodCo9Mik8PTE/dCp0Oi0tdCooMi10KSsxKS8yfWZ1bmN0aW9uIEluKHQpe3JldHVybigodCo9Mik8PTE/dCp0KnQ6KHQtPTIpKnQqdCsyKS8yfWZ1bmN0aW9uIGpuKHQpe3JldHVybigxLU1hdGguY29zKEdsKnQpKS8yfWZ1bmN0aW9uIEhuKHQpe3JldHVybigodCo9Mik8PTE/TWF0aC5wb3coMiwxMCp0LTEwKToyLU1hdGgucG93KDIsMTAtMTAqdCkpLzJ9ZnVuY3Rpb24gWG4odCl7cmV0dXJuKCh0Kj0yKTw9MT8xLU1hdGguc3FydCgxLXQqdCk6TWF0aC5zcXJ0KDEtKHQtPTIpKnQpKzEpLzJ9ZnVuY3Rpb24gR24odCl7cmV0dXJuKHQ9K3QpPCRsP3JoKnQqdDp0PFpsP3JoKih0LT1XbCkqdCtRbDp0PEtsP3JoKih0LT1KbCkqdCt0aDpyaCoodC09bmgpKnQrZWh9ZnVuY3Rpb24gVm4odCxuKXtmb3IodmFyIGU7IShlPXQuX190cmFuc2l0aW9uKXx8IShlPWVbbl0pOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm4gbGgudGltZT13bigpLGxoO3JldHVybiBlfWZ1bmN0aW9uICRuKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBXbigpe3QuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gWm4oKXt0LmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBRbih0KXtyZXR1cm57dHlwZTp0fX1mdW5jdGlvbiBKbigpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBLbigpe3ZhciB0PXRoaXMub3duZXJTVkdFbGVtZW50fHx0aGlzO3JldHVybltbMCwwXSxbdC53aWR0aC5iYXNlVmFsLnZhbHVlLHQuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXX1mdW5jdGlvbiB0ZSh0KXtmb3IoOyF0Ll9fYnJ1c2g7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdC5fX2JydXNofWZ1bmN0aW9uIG5lKHQpe3JldHVybiB0WzBdWzBdPT09dFsxXVswXXx8dFswXVsxXT09PXRbMV1bMV19ZnVuY3Rpb24gZWUobil7ZnVuY3Rpb24gZSh0KXt2YXIgZT10LnByb3BlcnR5KFwiX19icnVzaFwiLHUpLnNlbGVjdEFsbChcIi5vdmVybGF5XCIpLmRhdGEoW1FuKFwib3ZlcmxheVwiKV0pO2UuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJjbGFzc1wiLFwib3ZlcmxheVwiKS5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKS5hdHRyKFwiY3Vyc29yXCIsbWgub3ZlcmxheSkubWVyZ2UoZSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PXRlKHRoaXMpLmV4dGVudDtjdCh0aGlzKS5hdHRyKFwieFwiLHRbMF1bMF0pLmF0dHIoXCJ5XCIsdFswXVsxXSkuYXR0cihcIndpZHRoXCIsdFsxXVswXS10WzBdWzBdKS5hdHRyKFwiaGVpZ2h0XCIsdFsxXVsxXS10WzBdWzFdKX0pLHQuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKS5kYXRhKFtRbihcInNlbGVjdGlvblwiKV0pLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIixcInNlbGVjdGlvblwiKS5hdHRyKFwiY3Vyc29yXCIsbWguc2VsZWN0aW9uKS5hdHRyKFwiZmlsbFwiLFwiIzc3N1wiKS5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsLjMpLmF0dHIoXCJzdHJva2VcIixcIiNmZmZcIikuYXR0cihcInNoYXBlLXJlbmRlcmluZ1wiLFwiY3Jpc3BFZGdlc1wiKTt2YXIgaT10LnNlbGVjdEFsbChcIi5oYW5kbGVcIikuZGF0YShuLmhhbmRsZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pO2kuZXhpdCgpLnJlbW92ZSgpLGkuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJjbGFzc1wiLGZ1bmN0aW9uKHQpe3JldHVyblwiaGFuZGxlIGhhbmRsZS0tXCIrdC50eXBlfSkuYXR0cihcImN1cnNvclwiLGZ1bmN0aW9uKHQpe3JldHVybiBtaFt0LnR5cGVdfSksdC5lYWNoKHIpLmF0dHIoXCJmaWxsXCIsXCJub25lXCIpLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLFwiYWxsXCIpLnN0eWxlKFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yXCIsXCJyZ2JhKDAsMCwwLDApXCIpLm9uKFwibW91c2Vkb3duLmJydXNoIHRvdWNoc3RhcnQuYnJ1c2hcIixhKX1mdW5jdGlvbiByKCl7dmFyIHQ9Y3QodGhpcyksbj10ZSh0aGlzKS5zZWxlY3Rpb247bj8odC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uXCIpLnN0eWxlKFwiZGlzcGxheVwiLG51bGwpLmF0dHIoXCJ4XCIsblswXVswXSkuYXR0cihcInlcIixuWzBdWzFdKS5hdHRyKFwid2lkdGhcIixuWzFdWzBdLW5bMF1bMF0pLmF0dHIoXCJoZWlnaHRcIixuWzFdWzFdLW5bMF1bMV0pLHQuc2VsZWN0QWxsKFwiLmhhbmRsZVwiKS5zdHlsZShcImRpc3BsYXlcIixudWxsKS5hdHRyKFwieFwiLGZ1bmN0aW9uKHQpe3JldHVyblwiZVwiPT09dC50eXBlW3QudHlwZS5sZW5ndGgtMV0/blsxXVswXS1oLzI6blswXVswXS1oLzJ9KS5hdHRyKFwieVwiLGZ1bmN0aW9uKHQpe3JldHVyblwic1wiPT09dC50eXBlWzBdP25bMV1bMV0taC8yOm5bMF1bMV0taC8yfSkuYXR0cihcIndpZHRoXCIsZnVuY3Rpb24odCl7cmV0dXJuXCJuXCI9PT10LnR5cGV8fFwic1wiPT09dC50eXBlP25bMV1bMF0tblswXVswXStoOmh9KS5hdHRyKFwiaGVpZ2h0XCIsZnVuY3Rpb24odCl7cmV0dXJuXCJlXCI9PT10LnR5cGV8fFwid1wiPT09dC50eXBlP25bMV1bMV0tblswXVsxXStoOmh9KSk6dC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uLC5oYW5kbGVcIikuc3R5bGUoXCJkaXNwbGF5XCIsXCJub25lXCIpLmF0dHIoXCJ4XCIsbnVsbCkuYXR0cihcInlcIixudWxsKS5hdHRyKFwid2lkdGhcIixudWxsKS5hdHRyKFwiaGVpZ2h0XCIsbnVsbCl9ZnVuY3Rpb24gaSh0LG4pe3JldHVybiB0Ll9fYnJ1c2guZW1pdHRlcnx8bmV3IG8odCxuKX1mdW5jdGlvbiBvKHQsbil7dGhpcy50aGF0PXQsdGhpcy5hcmdzPW4sdGhpcy5zdGF0ZT10Ll9fYnJ1c2gsdGhpcy5hY3RpdmU9MH1mdW5jdGlvbiBhKCl7ZnVuY3Rpb24gZSgpe3ZhciB0PXB0KHcpOyFMfHxtfHx4fHwoTWF0aC5hYnModFswXS1VWzBdKT5NYXRoLmFicyh0WzFdLVVbMV0pP3g9ITA6bT0hMCksVT10LGI9ITAsWm4oKSxvKCl9ZnVuY3Rpb24gbygpe3ZhciB0O3N3aXRjaCh5PVVbMF0tRFswXSxfPVVbMV0tRFsxXSxBKXtjYXNlIHBoOmNhc2UgZGg6VCYmKHk9TWF0aC5tYXgoQy11LE1hdGgubWluKHotZCx5KSksYz11K3kscD1kK3kpLE4mJihfPU1hdGgubWF4KFAtbCxNYXRoLm1pbihSLXYsXykpLGg9bCtfLGc9ditfKTticmVhaztjYXNlIHZoOlQ8MD8oeT1NYXRoLm1heChDLXUsTWF0aC5taW4oei11LHkpKSxjPXUreSxwPWQpOlQ+MCYmKHk9TWF0aC5tYXgoQy1kLE1hdGgubWluKHotZCx5KSksYz11LHA9ZCt5KSxOPDA/KF89TWF0aC5tYXgoUC1sLE1hdGgubWluKFItbCxfKSksaD1sK18sZz12KTpOPjAmJihfPU1hdGgubWF4KFAtdixNYXRoLm1pbihSLXYsXykpLGg9bCxnPXYrXyk7YnJlYWs7Y2FzZSBnaDpUJiYoYz1NYXRoLm1heChDLE1hdGgubWluKHosdS15KlQpKSxwPU1hdGgubWF4KEMsTWF0aC5taW4oeixkK3kqVCkpKSxOJiYoaD1NYXRoLm1heChQLE1hdGgubWluKFIsbC1fKk4pKSxnPU1hdGgubWF4KFAsTWF0aC5taW4oUix2K18qTikpKX1wPGMmJihUKj0tMSx0PXUsdT1kLGQ9dCx0PWMsYz1wLHA9dCxNIGluIHhoJiZZLmF0dHIoXCJjdXJzb3JcIixtaFtNPXhoW01dXSkpLGc8aCYmKE4qPS0xLHQ9bCxsPXYsdj10LHQ9aCxoPWcsZz10LE0gaW4gd2gmJlkuYXR0cihcImN1cnNvclwiLG1oW009d2hbTV1dKSksUy5zZWxlY3Rpb24mJihrPVMuc2VsZWN0aW9uKSxtJiYoYz1rWzBdWzBdLHA9a1sxXVswXSkseCYmKGg9a1swXVsxXSxnPWtbMV1bMV0pLGtbMF1bMF09PT1jJiZrWzBdWzFdPT09aCYma1sxXVswXT09PXAmJmtbMV1bMV09PT1nfHwoUy5zZWxlY3Rpb249W1tjLGhdLFtwLGddXSxyLmNhbGwodykscS5icnVzaCgpKX1mdW5jdGlvbiBhKCl7aWYoV24oKSx0LmV2ZW50LnRvdWNoZXMpe2lmKHQuZXZlbnQudG91Y2hlcy5sZW5ndGgpcmV0dXJuO2YmJmNsZWFyVGltZW91dChmKSxmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmPW51bGx9LDUwMCksTy5vbihcInRvdWNobW92ZS5icnVzaCB0b3VjaGVuZC5icnVzaCB0b3VjaGNhbmNlbC5icnVzaFwiLG51bGwpfWVsc2UgYnQodC5ldmVudC52aWV3LGIpLEIub24oXCJrZXlkb3duLmJydXNoIGtleXVwLmJydXNoIG1vdXNlbW92ZS5icnVzaCBtb3VzZXVwLmJydXNoXCIsbnVsbCk7Ty5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKSxZLmF0dHIoXCJjdXJzb3JcIixtaC5vdmVybGF5KSxTLnNlbGVjdGlvbiYmKGs9Uy5zZWxlY3Rpb24pLG5lKGspJiYoUy5zZWxlY3Rpb249bnVsbCxyLmNhbGwodykpLHEuZW5kKCl9aWYodC5ldmVudC50b3VjaGVzKXtpZih0LmV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aDx0LmV2ZW50LnRvdWNoZXMubGVuZ3RoKXJldHVybiBabigpfWVsc2UgaWYoZilyZXR1cm47aWYocy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB1LGMsbCxoLGQscCx2LGcseSxfLGIsbSx4LHc9dGhpcyxNPXQuZXZlbnQudGFyZ2V0Ll9fZGF0YV9fLnR5cGUsQT1cInNlbGVjdGlvblwiPT09KHQuZXZlbnQubWV0YUtleT9NPVwib3ZlcmxheVwiOk0pP2RoOnQuZXZlbnQuYWx0S2V5P2doOnZoLFQ9bj09PV9oP251bGw6TWhbTV0sTj1uPT09eWg/bnVsbDpBaFtNXSxTPXRlKHcpLEU9Uy5leHRlbnQsaz1TLnNlbGVjdGlvbixDPUVbMF1bMF0sUD1FWzBdWzFdLHo9RVsxXVswXSxSPUVbMV1bMV0sTD1UJiZOJiZ0LmV2ZW50LnNoaWZ0S2V5LEQ9cHQodyksVT1ELHE9aSh3LGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKTtcIm92ZXJsYXlcIj09PU0/Uy5zZWxlY3Rpb249az1bW3U9bj09PV9oP0M6RFswXSxsPW49PT15aD9QOkRbMV1dLFtkPW49PT1faD96OnUsdj1uPT09eWg/UjpsXV06KHU9a1swXVswXSxsPWtbMF1bMV0sZD1rWzFdWzBdLHY9a1sxXVsxXSksYz11LGg9bCxwPWQsZz12O3ZhciBPPWN0KHcpLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLFwibm9uZVwiKSxZPU8uc2VsZWN0QWxsKFwiLm92ZXJsYXlcIikuYXR0cihcImN1cnNvclwiLG1oW01dKTtpZih0LmV2ZW50LnRvdWNoZXMpTy5vbihcInRvdWNobW92ZS5icnVzaFwiLGUsITApLm9uKFwidG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2hcIixhLCEwKTtlbHNle3ZhciBCPWN0KHQuZXZlbnQudmlldykub24oXCJrZXlkb3duLmJydXNoXCIsZnVuY3Rpb24oKXtzd2l0Y2godC5ldmVudC5rZXlDb2RlKXtjYXNlIDE2Okw9VCYmTjticmVhaztjYXNlIDE4OkE9PT12aCYmKFQmJihkPXAteSpULHU9Yyt5KlQpLE4mJih2PWctXypOLGw9aCtfKk4pLEE9Z2gsbygpKTticmVhaztjYXNlIDMyOkEhPT12aCYmQSE9PWdofHwoVDwwP2Q9cC15OlQ+MCYmKHU9Yy15KSxOPDA/dj1nLV86Tj4wJiYobD1oLV8pLEE9cGgsWS5hdHRyKFwiY3Vyc29yXCIsbWguc2VsZWN0aW9uKSxvKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufVpuKCl9LCEwKS5vbihcImtleXVwLmJydXNoXCIsZnVuY3Rpb24oKXtzd2l0Y2godC5ldmVudC5rZXlDb2RlKXtjYXNlIDE2OkwmJihtPXg9TD0hMSxvKCkpO2JyZWFrO2Nhc2UgMTg6QT09PWdoJiYoVDwwP2Q9cDpUPjAmJih1PWMpLE48MD92PWc6Tj4wJiYobD1oKSxBPXZoLG8oKSk7YnJlYWs7Y2FzZSAzMjpBPT09cGgmJih0LmV2ZW50LmFsdEtleT8oVCYmKGQ9cC15KlQsdT1jK3kqVCksTiYmKHY9Zy1fKk4sbD1oK18qTiksQT1naCk6KFQ8MD9kPXA6VD4wJiYodT1jKSxOPDA/dj1nOk4+MCYmKGw9aCksQT12aCksWS5hdHRyKFwiY3Vyc29yXCIsbWhbTV0pLG8oKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59Wm4oKX0sITApLm9uKFwibW91c2Vtb3ZlLmJydXNoXCIsZSwhMCkub24oXCJtb3VzZXVwLmJydXNoXCIsYSwhMCk7X3QodC5ldmVudC52aWV3KX1XbigpLERuKHcpLHIuY2FsbCh3KSxxLnN0YXJ0KCl9fWZ1bmN0aW9uIHUoKXt2YXIgdD10aGlzLl9fYnJ1c2h8fHtzZWxlY3Rpb246bnVsbH07cmV0dXJuIHQuZXh0ZW50PWMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHQuZGltPW4sdH12YXIgZixjPUtuLHM9Sm4sbD1OKGUsXCJzdGFydFwiLFwiYnJ1c2hcIixcImVuZFwiKSxoPTY7cmV0dXJuIGUubW92ZT1mdW5jdGlvbih0LGUpe3Quc2VsZWN0aW9uP3Qub24oXCJzdGFydC5icnVzaFwiLGZ1bmN0aW9uKCl7aSh0aGlzLGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKS5zdGFydCgpfSkub24oXCJpbnRlcnJ1cHQuYnJ1c2ggZW5kLmJydXNoXCIsZnVuY3Rpb24oKXtpKHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pLnR3ZWVuKFwiYnJ1c2hcIixmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7YS5zZWxlY3Rpb249MT09PXQmJm5lKGMpP251bGw6cyh0KSxyLmNhbGwobyksdS5icnVzaCgpfXZhciBvPXRoaXMsYT1vLl9fYnJ1c2gsdT1pKG8sYXJndW1lbnRzKSxmPWEuc2VsZWN0aW9uLGM9bi5pbnB1dChcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsYS5leHRlbnQpLHM9ZG4oZixjKTtyZXR1cm4gZiYmYz90OnQoMSl9KTp0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMsbz10aGlzLl9fYnJ1c2gsYT1uLmlucHV0KFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLHQpOmUsby5leHRlbnQpLHU9aSh0aGlzLHQpLmJlZm9yZXN0YXJ0KCk7RG4odGhpcyksby5zZWxlY3Rpb249bnVsbD09YXx8bmUoYSk/bnVsbDphLHIuY2FsbCh0aGlzKSx1LnN0YXJ0KCkuYnJ1c2goKS5lbmQoKX0pfSxvLnByb3RvdHlwZT17YmVmb3Jlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMuc3RhdGUuZW1pdHRlcj10aGlzLHRoaXMuc3RhcnRpbmc9ITApLHRoaXN9LHN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRpbmcmJih0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdChcInN0YXJ0XCIpKSx0aGlzfSxicnVzaDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVtaXQoXCJicnVzaFwiKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsdGhpcy5lbWl0KFwiZW5kXCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKHQpe290KG5ldyBmdW5jdGlvbih0LG4sZSl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9bix0aGlzLnNlbGVjdGlvbj1lfShlLHQsbi5vdXRwdXQodGhpcy5zdGF0ZS5zZWxlY3Rpb24pKSxsLmFwcGx5LGwsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sZS5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OiRuKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxlKTpjfSxlLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6JG4oISF0KSxlKTpzfSxlLmhhbmRsZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9K3QsZSk6aH0sZS5vbj1mdW5jdGlvbigpe3ZhciB0PWwub24uYXBwbHkobCxhcmd1bWVudHMpO3JldHVybiB0PT09bD9lOnR9LGV9ZnVuY3Rpb24gcmUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGllKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89XCJcIn1mdW5jdGlvbiBvZSgpe3JldHVybiBuZXcgaWV9ZnVuY3Rpb24gYWUodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIHVlKHQpe3JldHVybiB0LnRhcmdldH1mdW5jdGlvbiBmZSh0KXtyZXR1cm4gdC5yYWRpdXN9ZnVuY3Rpb24gY2UodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiBzZSh0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiBsZSgpe31mdW5jdGlvbiBoZSh0LG4pe3ZhciBlPW5ldyBsZTtpZih0IGluc3RhbmNlb2YgbGUpdC5lYWNoKGZ1bmN0aW9uKHQsbil7ZS5zZXQobix0KX0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIHIsaT0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PW4pZm9yKDsrK2k8bzspZS5zZXQoaSx0W2ldKTtlbHNlIGZvcig7KytpPG87KWUuc2V0KG4ocj10W2ldLGksdCkscil9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KWUuc2V0KGEsdFthXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZGUoKXtyZXR1cm57fX1mdW5jdGlvbiBwZSh0LG4sZSl7dFtuXT1lfWZ1bmN0aW9uIHZlKCl7cmV0dXJuIGhlKCl9ZnVuY3Rpb24gZ2UodCxuLGUpe3Quc2V0KG4sZSl9ZnVuY3Rpb24geWUoKXt9ZnVuY3Rpb24gX2UodCxuKXt2YXIgZT1uZXcgeWU7aWYodCBpbnN0YW5jZW9mIHllKXQuZWFjaChmdW5jdGlvbih0KXtlLmFkZCh0KX0pO2Vsc2UgaWYodCl7dmFyIHI9LTEsaT10Lmxlbmd0aDtpZihudWxsPT1uKWZvcig7KytyPGk7KWUuYWRkKHRbcl0pO2Vsc2UgZm9yKDsrK3I8aTspZS5hZGQobih0W3JdLHIsdCkpfXJldHVybiBlfWZ1bmN0aW9uIGJlKHQsbil7cmV0dXJuIHQtbn1mdW5jdGlvbiBtZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24geGUodCxuKXtmb3IodmFyIGUscj0tMSxpPW4ubGVuZ3RoOysrcjxpOylpZihlPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPW5bMF0scj1uWzFdLGk9LTEsbz0wLGE9dC5sZW5ndGgsdT1hLTE7bzxhO3U9bysrKXt2YXIgZj10W29dLGM9ZlswXSxzPWZbMV0sbD10W3VdLGg9bFswXSxkPWxbMV07aWYoZnVuY3Rpb24odCxuLGUpe3ZhciByO3JldHVybiBmdW5jdGlvbih0LG4sZSl7cmV0dXJuKG5bMF0tdFswXSkqKGVbMV0tdFsxXSk9PShlWzBdLXRbMF0pKihuWzFdLXRbMV0pfSh0LG4sZSkmJmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gdDw9biYmbjw9ZXx8ZTw9biYmbjw9dH0odFtyPSsodFswXT09PW5bMF0pXSxlW3JdLG5bcl0pfShmLGwsbikpcmV0dXJuIDA7cz5yIT1kPnImJmU8KGgtYykqKHItcykvKGQtcykrYyYmKGk9LWkpfXJldHVybiBpfSh0LG5bcl0pKXJldHVybiBlO3JldHVybiAwfWZ1bmN0aW9uIHdlKCl7fWZ1bmN0aW9uIE1lKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZT1hKHQpO2lmKEFycmF5LmlzQXJyYXkoZSkpZT1lLnNsaWNlKCkuc29ydChiZSk7ZWxzZXt2YXIgcj11KHQpLGk9clswXSxvPXJbMV07ZT1kKGksbyxlKSxlPXMoTWF0aC5mbG9vcihpL2UpKmUsTWF0aC5mbG9vcihvL2UpKmUsZSl9cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuKHQsZSl9KX1mdW5jdGlvbiBuKHQsbil7dmFyIHI9W10sYT1bXTtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe2Z1bmN0aW9uIGEodCl7dmFyIG4saSxvPVt0WzBdWzBdK3UsdFswXVsxXStmXSxhPVt0WzFdWzBdK3UsdFsxXVsxXStmXSxjPWUobykscz1lKGEpOyhuPXBbY10pPyhpPWRbc10pPyhkZWxldGUgcFtuLmVuZF0sZGVsZXRlIGRbaS5zdGFydF0sbj09PWk/KG4ucmluZy5wdXNoKGEpLHIobi5yaW5nKSk6ZFtuLnN0YXJ0XT1wW2kuZW5kXT17c3RhcnQ6bi5zdGFydCxlbmQ6aS5lbmQscmluZzpuLnJpbmcuY29uY2F0KGkucmluZyl9KTooZGVsZXRlIHBbbi5lbmRdLG4ucmluZy5wdXNoKGEpLHBbbi5lbmQ9c109bik6KG49ZFtzXSk/KGk9cFtjXSk/KGRlbGV0ZSBkW24uc3RhcnRdLGRlbGV0ZSBwW2kuZW5kXSxuPT09aT8obi5yaW5nLnB1c2goYSkscihuLnJpbmcpKTpkW2kuc3RhcnRdPXBbbi5lbmRdPXtzdGFydDppLnN0YXJ0LGVuZDpuLmVuZCxyaW5nOmkucmluZy5jb25jYXQobi5yaW5nKX0pOihkZWxldGUgZFtuLnN0YXJ0XSxuLnJpbmcudW5zaGlmdChvKSxkW24uc3RhcnQ9Y109bik6ZFtjXT1wW3NdPXtzdGFydDpjLGVuZDpzLHJpbmc6W28sYV19fXZhciB1LGYsYyxzLGwsaCxkPW5ldyBBcnJheSxwPW5ldyBBcnJheTt1PWY9LTEscz10WzBdPj1uLHFoW3M8PDFdLmZvckVhY2goYSk7Zm9yKDsrK3U8aS0xOyljPXMscz10W3UrMV0+PW4scWhbY3xzPDwxXS5mb3JFYWNoKGEpO3FoW3M8PDBdLmZvckVhY2goYSk7Zm9yKDsrK2Y8by0xOyl7Zm9yKHU9LTEscz10W2YqaStpXT49bixsPXRbZippXT49bixxaFtzPDwxfGw8PDJdLmZvckVhY2goYSk7Kyt1PGktMTspYz1zLHM9dFtmKmkraSt1KzFdPj1uLGg9bCxsPXRbZippK3UrMV0+PW4scWhbY3xzPDwxfGw8PDJ8aDw8M10uZm9yRWFjaChhKTtxaFtzfGw8PDNdLmZvckVhY2goYSl9dT0tMSxsPXRbZippXT49bixxaFtsPDwyXS5mb3JFYWNoKGEpO2Zvcig7Kyt1PGktMTspaD1sLGw9dFtmKmkrdSsxXT49bixxaFtsPDwyfGg8PDNdLmZvckVhY2goYSk7cWhbbDw8M10uZm9yRWFjaChhKX0odCxuLGZ1bmN0aW9uKGUpe2YoZSx0LG4pLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbj0wLGU9dC5sZW5ndGgscj10W2UtMV1bMV0qdFswXVswXS10W2UtMV1bMF0qdFswXVsxXTsrK248ZTspcis9dFtuLTFdWzFdKnRbbl1bMF0tdFtuLTFdWzBdKnRbbl1bMV07cmV0dXJuIHJ9KGUpPjA/ci5wdXNoKFtlXSk6YS5wdXNoKGUpfSksYS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlPTAsaT1yLmxlbmd0aDtlPGk7KytlKWlmKC0xIT09eGUoKG49cltlXSlbMF0sdCkpcmV0dXJuIHZvaWQgbi5wdXNoKHQpfSkse3R5cGU6XCJNdWx0aVBvbHlnb25cIix2YWx1ZTpuLGNvb3JkaW5hdGVzOnJ9fWZ1bmN0aW9uIGUodCl7cmV0dXJuIDIqdFswXSt0WzFdKihpKzEpKjR9ZnVuY3Rpb24gcih0LG4sZSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLGE9dFswXSx1PXRbMV0sZj0wfGEsYz0wfHUscz1uW2MqaStmXTthPjAmJmE8aSYmZj09PWEmJihyPW5bYyppK2YtMV0sdFswXT1hKyhlLXIpLyhzLXIpLS41KSx1PjAmJnU8byYmYz09PXUmJihyPW5bKGMtMSkqaStmXSx0WzFdPXUrKGUtcikvKHMtciktLjUpfSl9dmFyIGk9MSxvPTEsYT1wLGY9cjtyZXR1cm4gdC5jb250b3VyPW4sdC5zaXplPWZ1bmN0aW9uKG4pe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybltpLG9dO3ZhciBlPU1hdGguY2VpbChuWzBdKSxyPU1hdGguY2VpbChuWzFdKTtpZighKGU+MCYmcj4wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHNpemVcIik7cmV0dXJuIGk9ZSxvPXIsdH0sdC50aHJlc2hvbGRzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpBcnJheS5pc0FycmF5KG4pP21lKFVoLmNhbGwobikpOm1lKG4pLHQpOmF9LHQuc21vb3RoPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPW4/cjp3ZSx0KTpmPT09cn0sdH1mdW5jdGlvbiBBZSh0LG4sZSl7Zm9yKHZhciByPXQud2lkdGgsaT10LmhlaWdodCxvPTErKGU8PDEpLGE9MDthPGk7KythKWZvcih2YXIgdT0wLGY9MDt1PHIrZTsrK3UpdTxyJiYoZis9dC5kYXRhW3UrYSpyXSksdT49ZSYmKHU+PW8mJihmLT10LmRhdGFbdS1vK2Eqcl0pLG4uZGF0YVt1LWUrYSpyXT1mL01hdGgubWluKHUrMSxyLTErby11LG8pKX1mdW5jdGlvbiBUZSh0LG4sZSl7Zm9yKHZhciByPXQud2lkdGgsaT10LmhlaWdodCxvPTErKGU8PDEpLGE9MDthPHI7KythKWZvcih2YXIgdT0wLGY9MDt1PGkrZTsrK3UpdTxpJiYoZis9dC5kYXRhW2ErdSpyXSksdT49ZSYmKHU+PW8mJihmLT10LmRhdGFbYSsodS1vKSpyXSksbi5kYXRhW2ErKHUtZSkqcl09Zi9NYXRoLm1pbih1KzEsaS0xK28tdSxvKSl9ZnVuY3Rpb24gTmUodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gU2UodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gRWUodCl7cmV0dXJuIG5ldyBGdW5jdGlvbihcImRcIixcInJldHVybiB7XCIrdC5tYXAoZnVuY3Rpb24odCxuKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkrXCI6IGRbXCIrbitcIl1cIn0pLmpvaW4oXCIsXCIpK1wifVwiKX1mdW5jdGlvbiBrZSh0KXtmdW5jdGlvbiBuKHQsbil7ZnVuY3Rpb24gZSgpe2lmKGMpcmV0dXJuIFloO2lmKHMpcmV0dXJuIHM9ITEsT2g7dmFyIG4sZSxyPXU7aWYodC5jaGFyQ29kZUF0KHIpPT09Qmgpe2Zvcig7dSsrPGEmJnQuY2hhckNvZGVBdCh1KSE9PUJofHx0LmNoYXJDb2RlQXQoKyt1KT09PUJoOyk7cmV0dXJuKG49dSk+PWE/Yz0hMDooZT10LmNoYXJDb2RlQXQodSsrKSk9PT1GaD9zPSEwOmU9PT1JaCYmKHM9ITAsdC5jaGFyQ29kZUF0KHUpPT09RmgmJisrdSksdC5zbGljZShyKzEsbi0xKS5yZXBsYWNlKC9cIlwiL2csJ1wiJyl9Zm9yKDt1PGE7KXtpZigoZT10LmNoYXJDb2RlQXQobj11KyspKT09PUZoKXM9ITA7ZWxzZSBpZihlPT09SWgpcz0hMCx0LmNoYXJDb2RlQXQodSk9PT1GaCYmKyt1O2Vsc2UgaWYoZSE9PW8pY29udGludWU7cmV0dXJuIHQuc2xpY2UocixuKX1yZXR1cm4gYz0hMCx0LnNsaWNlKHIsYSl9dmFyIHIsaT1bXSxhPXQubGVuZ3RoLHU9MCxmPTAsYz1hPD0wLHM9ITE7Zm9yKHQuY2hhckNvZGVBdChhLTEpPT09RmgmJi0tYSx0LmNoYXJDb2RlQXQoYS0xKT09PUloJiYtLWE7KHI9ZSgpKSE9PVloOyl7Zm9yKHZhciBsPVtdO3IhPT1PaCYmciE9PVloOylsLnB1c2gocikscj1lKCk7biYmbnVsbD09KGw9bihsLGYrKykpfHxpLnB1c2gobCl9cmV0dXJuIGl9ZnVuY3Rpb24gZShuKXtyZXR1cm4gbi5tYXAocikuam9pbih0KX1mdW5jdGlvbiByKHQpe3JldHVybiBudWxsPT10P1wiXCI6aS50ZXN0KHQrPVwiXCIpPydcIicrdC5yZXBsYWNlKC9cIi9nLCdcIlwiJykrJ1wiJzp0fXZhciBpPW5ldyBSZWdFeHAoJ1tcIicrdCtcIlxcblxccl1cIiksbz10LmNoYXJDb2RlQXQoMCk7cmV0dXJue3BhcnNlOmZ1bmN0aW9uKHQsZSl7dmFyIHIsaSxvPW4odCxmdW5jdGlvbih0LG4pe2lmKHIpcmV0dXJuIHIodCxuLTEpO2k9dCxyPWU/ZnVuY3Rpb24odCxuKXt2YXIgZT1FZSh0KTtyZXR1cm4gZnVuY3Rpb24ocixpKXtyZXR1cm4gbihlKHIpLGksdCl9fSh0LGUpOkVlKHQpfSk7cmV0dXJuIG8uY29sdW1ucz1pfHxbXSxvfSxwYXJzZVJvd3M6bixmb3JtYXQ6ZnVuY3Rpb24obixlKXtyZXR1cm4gbnVsbD09ZSYmKGU9ZnVuY3Rpb24odCl7dmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxlPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7Zm9yKHZhciByIGluIHQpciBpbiBufHxlLnB1c2gobltyXT1yKX0pLGV9KG4pKSxbZS5tYXAocikuam9pbih0KV0uY29uY2F0KG4ubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcihuW3RdKX0pLmpvaW4odCl9KSkuam9pbihcIlxcblwiKX0sZm9ybWF0Um93czpmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZSkuam9pbihcIlxcblwiKX19fWZ1bmN0aW9uIENlKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cytcIiBcIit0LnN0YXR1c1RleHQpO3JldHVybiB0LmJsb2IoKX1mdW5jdGlvbiBQZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5hcnJheUJ1ZmZlcigpfWZ1bmN0aW9uIHplKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cytcIiBcIit0LnN0YXR1c1RleHQpO3JldHVybiB0LnRleHQoKX1mdW5jdGlvbiBSZSh0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oemUpfWZ1bmN0aW9uIExlKHQpe3JldHVybiBmdW5jdGlvbihuLGUscil7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYocj1lLGU9dm9pZCAwKSxSZShuLGUpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIHQobixyKX0pfX1mdW5jdGlvbiBEZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5qc29uKCl9ZnVuY3Rpb24gVWUodCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIFJlKG4sZSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKG4sdCl9KX19ZnVuY3Rpb24gcWUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIE9lKCl7cmV0dXJuIDFlLTYqKE1hdGgucmFuZG9tKCktLjUpfWZ1bmN0aW9uIFllKHQsbixlLHIpe2lmKGlzTmFOKG4pfHxpc05hTihlKSlyZXR1cm4gdDt2YXIgaSxvLGEsdSxmLGMscyxsLGgsZD10Ll9yb290LHA9e2RhdGE6cn0sdj10Ll94MCxnPXQuX3kwLHk9dC5feDEsXz10Ll95MTtpZighZClyZXR1cm4gdC5fcm9vdD1wLHQ7Zm9yKDtkLmxlbmd0aDspaWYoKGM9bj49KG89KHYreSkvMikpP3Y9bzp5PW8sKHM9ZT49KGE9KGcrXykvMikpP2c9YTpfPWEsaT1kLCEoZD1kW2w9czw8MXxjXSkpcmV0dXJuIGlbbF09cCx0O2lmKHU9K3QuX3guY2FsbChudWxsLGQuZGF0YSksZj0rdC5feS5jYWxsKG51bGwsZC5kYXRhKSxuPT09dSYmZT09PWYpcmV0dXJuIHAubmV4dD1kLGk/aVtsXT1wOnQuX3Jvb3Q9cCx0O2Rve2k9aT9pW2xdPW5ldyBBcnJheSg0KTp0Ll9yb290PW5ldyBBcnJheSg0KSwoYz1uPj0obz0odit5KS8yKSk/dj1vOnk9bywocz1lPj0oYT0oZytfKS8yKSk/Zz1hOl89YX13aGlsZSgobD1zPDwxfGMpPT0oaD0oZj49YSk8PDF8dT49bykpO3JldHVybiBpW2hdPWQsaVtsXT1wLHR9ZnVuY3Rpb24gQmUodCxuLGUscixpKXt0aGlzLm5vZGU9dCx0aGlzLngwPW4sdGhpcy55MD1lLHRoaXMueDE9cix0aGlzLnkxPWl9ZnVuY3Rpb24gRmUodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gSWUodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gamUodCxuLGUpe3ZhciByPW5ldyBIZShudWxsPT1uP0ZlOm4sbnVsbD09ZT9JZTplLE5hTixOYU4sTmFOLE5hTik7cmV0dXJuIG51bGw9PXQ/cjpyLmFkZEFsbCh0KX1mdW5jdGlvbiBIZSh0LG4sZSxyLGksbyl7dGhpcy5feD10LHRoaXMuX3k9bix0aGlzLl94MD1lLHRoaXMuX3kwPXIsdGhpcy5feDE9aSx0aGlzLl95MT1vLHRoaXMuX3Jvb3Q9dm9pZCAwfWZ1bmN0aW9uIFhlKHQpe2Zvcih2YXIgbj17ZGF0YTp0LmRhdGF9LGU9bjt0PXQubmV4dDspZT1lLm5leHQ9e2RhdGE6dC5kYXRhfTtyZXR1cm4gbn1mdW5jdGlvbiBHZSh0KXtyZXR1cm4gdC54K3Qudnh9ZnVuY3Rpb24gVmUodCl7cmV0dXJuIHQueSt0LnZ5fWZ1bmN0aW9uICRlKHQpe3JldHVybiB0LmluZGV4fWZ1bmN0aW9uIFdlKHQsbil7dmFyIGU9dC5nZXQobik7aWYoIWUpdGhyb3cgbmV3IEVycm9yKFwibWlzc2luZzogXCIrbik7cmV0dXJuIGV9ZnVuY3Rpb24gWmUodCl7cmV0dXJuIHQueH1mdW5jdGlvbiBRZSh0KXtyZXR1cm4gdC55fWZ1bmN0aW9uIEplKHQsbil7aWYoKGU9KHQ9bj90LnRvRXhwb25lbnRpYWwobi0xKTp0LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZihcImVcIikpPDApcmV0dXJuIG51bGw7dmFyIGUscj10LnNsaWNlKDAsZSk7cmV0dXJuW3IubGVuZ3RoPjE/clswXStyLnNsaWNlKDIpOnIsK3Quc2xpY2UoZSsxKV19ZnVuY3Rpb24gS2UodCl7cmV0dXJuKHQ9SmUoTWF0aC5hYnModCkpKT90WzFdOk5hTn1mdW5jdGlvbiB0cih0KXtyZXR1cm4gbmV3IG5yKHQpfWZ1bmN0aW9uIG5yKHQpe2lmKCEobj11ZC5leGVjKHQpKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGZvcm1hdDogXCIrdCk7dmFyIG47dGhpcy5maWxsPW5bMV18fFwiIFwiLHRoaXMuYWxpZ249blsyXXx8XCI+XCIsdGhpcy5zaWduPW5bM118fFwiLVwiLHRoaXMuc3ltYm9sPW5bNF18fFwiXCIsdGhpcy56ZXJvPSEhbls1XSx0aGlzLndpZHRoPW5bNl0mJituWzZdLHRoaXMuY29tbWE9ISFuWzddLHRoaXMucHJlY2lzaW9uPW5bOF0mJituWzhdLnNsaWNlKDEpLHRoaXMudHJpbT0hIW5bOV0sdGhpcy50eXBlPW5bMTBdfHxcIlwifWZ1bmN0aW9uIGVyKHQsbil7dmFyIGU9SmUodCxuKTtpZighZSlyZXR1cm4gdCtcIlwiO3ZhciByPWVbMF0saT1lWzFdO3JldHVybiBpPDA/XCIwLlwiK25ldyBBcnJheSgtaSkuam9pbihcIjBcIikrcjpyLmxlbmd0aD5pKzE/ci5zbGljZSgwLGkrMSkrXCIuXCIrci5zbGljZShpKzEpOnIrbmV3IEFycmF5KGktci5sZW5ndGgrMikuam9pbihcIjBcIil9ZnVuY3Rpb24gcnIodCl7cmV0dXJuIHR9ZnVuY3Rpb24gaXIodCl7ZnVuY3Rpb24gbih0KXtmdW5jdGlvbiBuKHQpe3ZhciBuLHIsYSxzPXkseD1fO2lmKFwiY1wiPT09Zyl4PWIodCkreCx0PVwiXCI7ZWxzZXt2YXIgdz0odD0rdCk8MDtpZih0PWIoTWF0aC5hYnModCkscCksdiYmKHQ9ZnVuY3Rpb24odCl7dDpmb3IodmFyIG4sZT10Lmxlbmd0aCxyPTEsaT0tMTtyPGU7KytyKXN3aXRjaCh0W3JdKXtjYXNlXCIuXCI6aT1uPXI7YnJlYWs7Y2FzZVwiMFwiOjA9PT1pJiYoaT1yKSxuPXI7YnJlYWs7ZGVmYXVsdDppZihpPjApe2lmKCErdFtyXSlicmVhayB0O2k9MH19cmV0dXJuIGk+MD90LnNsaWNlKDAsaSkrdC5zbGljZShuKzEpOnR9KHQpKSx3JiYwPT0rdCYmKHc9ITEpLHM9KHc/XCIoXCI9PT1jP2M6XCItXCI6XCItXCI9PT1jfHxcIihcIj09PWM/XCJcIjpjKStzLHg9KFwic1wiPT09Zz9sZFs4K2ZkLzNdOlwiXCIpK3grKHcmJlwiKFwiPT09Yz9cIilcIjpcIlwiKSxtKWZvcihuPS0xLHI9dC5sZW5ndGg7KytuPHI7KWlmKDQ4PihhPXQuY2hhckNvZGVBdChuKSl8fGE+NTcpe3g9KDQ2PT09YT9pK3Quc2xpY2UobisxKTp0LnNsaWNlKG4pKSt4LHQ9dC5zbGljZSgwLG4pO2JyZWFrfX1kJiYhbCYmKHQ9ZSh0LDEvMCkpO3ZhciBNPXMubGVuZ3RoK3QubGVuZ3RoK3gubGVuZ3RoLEE9TTxoP25ldyBBcnJheShoLU0rMSkuam9pbih1KTpcIlwiO3N3aXRjaChkJiZsJiYodD1lKEErdCxBLmxlbmd0aD9oLXgubGVuZ3RoOjEvMCksQT1cIlwiKSxmKXtjYXNlXCI8XCI6dD1zK3QreCtBO2JyZWFrO2Nhc2VcIj1cIjp0PXMrQSt0K3g7YnJlYWs7Y2FzZVwiXlwiOnQ9QS5zbGljZSgwLE09QS5sZW5ndGg+PjEpK3MrdCt4K0Euc2xpY2UoTSk7YnJlYWs7ZGVmYXVsdDp0PUErcyt0K3h9cmV0dXJuIG8odCl9dmFyIHU9KHQ9dHIodCkpLmZpbGwsZj10LmFsaWduLGM9dC5zaWduLHM9dC5zeW1ib2wsbD10Lnplcm8saD10LndpZHRoLGQ9dC5jb21tYSxwPXQucHJlY2lzaW9uLHY9dC50cmltLGc9dC50eXBlO1wiblwiPT09Zz8oZD0hMCxnPVwiZ1wiKTpzZFtnXXx8KG51bGw9PXAmJihwPTEyKSx2PSEwLGc9XCJnXCIpLChsfHxcIjBcIj09PXUmJlwiPVwiPT09ZikmJihsPSEwLHU9XCIwXCIsZj1cIj1cIik7dmFyIHk9XCIkXCI9PT1zP3JbMF06XCIjXCI9PT1zJiYvW2JveFhdLy50ZXN0KGcpP1wiMFwiK2cudG9Mb3dlckNhc2UoKTpcIlwiLF89XCIkXCI9PT1zP3JbMV06L1slcF0vLnRlc3QoZyk/YTpcIlwiLGI9c2RbZ10sbT0vW2RlZmdwcnMlXS8udGVzdChnKTtyZXR1cm4gcD1udWxsPT1wPzY6L1tncHJzXS8udGVzdChnKT9NYXRoLm1heCgxLE1hdGgubWluKDIxLHApKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLHApKSxuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQrXCJcIn0sbn12YXIgZT10Lmdyb3VwaW5nJiZ0LnRob3VzYW5kcz9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbihlLHIpe2Zvcih2YXIgaT1lLmxlbmd0aCxvPVtdLGE9MCx1PXRbMF0sZj0wO2k+MCYmdT4wJiYoZit1KzE+ciYmKHU9TWF0aC5tYXgoMSxyLWYpKSxvLnB1c2goZS5zdWJzdHJpbmcoaS09dSxpK3UpKSwhKChmKz11KzEpPnIpKTspdT10W2E9KGErMSkldC5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKG4pfX0odC5ncm91cGluZyx0LnRob3VzYW5kcyk6cnIscj10LmN1cnJlbmN5LGk9dC5kZWNpbWFsLG89dC5udW1lcmFscz9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG4ucmVwbGFjZSgvWzAtOV0vZyxmdW5jdGlvbihuKXtyZXR1cm4gdFsrbl19KX19KHQubnVtZXJhbHMpOnJyLGE9dC5wZXJjZW50fHxcIiVcIjtyZXR1cm57Zm9ybWF0Om4sZm9ybWF0UHJlZml4OmZ1bmN0aW9uKHQsZSl7dmFyIHI9bigodD10cih0KSx0LnR5cGU9XCJmXCIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoS2UoZSkvMykpKSxvPU1hdGgucG93KDEwLC1pKSxhPWxkWzgraS8zXTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIobyp0KSthfX19fWZ1bmN0aW9uIG9yKG4pe3JldHVybiBjZD1pcihuKSx0LmZvcm1hdD1jZC5mb3JtYXQsdC5mb3JtYXRQcmVmaXg9Y2QuZm9ybWF0UHJlZml4LGNkfWZ1bmN0aW9uIGFyKHQpe3JldHVybiBNYXRoLm1heCgwLC1LZShNYXRoLmFicyh0KSkpfWZ1bmN0aW9uIHVyKHQsbil7cmV0dXJuIE1hdGgubWF4KDAsMypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoS2UobikvMykpKS1LZShNYXRoLmFicyh0KSkpfWZ1bmN0aW9uIGZyKHQsbil7cmV0dXJuIHQ9TWF0aC5hYnModCksbj1NYXRoLmFicyhuKS10LE1hdGgubWF4KDAsS2UobiktS2UodCkpKzF9ZnVuY3Rpb24gY3IoKXtyZXR1cm4gbmV3IHNyfWZ1bmN0aW9uIHNyKCl7dGhpcy5yZXNldCgpfWZ1bmN0aW9uIGxyKHQsbixlKXt2YXIgcj10LnM9bitlLGk9ci1uLG89ci1pO3QudD1uLW8rKGUtaSl9ZnVuY3Rpb24gaHIodCl7cmV0dXJuIHQ+MT8wOnQ8LTE/R2Q6TWF0aC5hY29zKHQpfWZ1bmN0aW9uIGRyKHQpe3JldHVybiB0PjE/VmQ6dDwtMT8tVmQ6TWF0aC5hc2luKHQpfWZ1bmN0aW9uIHByKHQpe3JldHVybih0PWFwKHQvMikpKnR9ZnVuY3Rpb24gdnIoKXt9ZnVuY3Rpb24gZ3IodCxuKXt0JiZscC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpJiZscFt0LnR5cGVdKHQsbil9ZnVuY3Rpb24geXIodCxuLGUpe3ZhciByLGk9LTEsbz10Lmxlbmd0aC1lO2ZvcihuLmxpbmVTdGFydCgpOysraTxvOylyPXRbaV0sbi5wb2ludChyWzBdLHJbMV0sclsyXSk7bi5saW5lRW5kKCl9ZnVuY3Rpb24gX3IodCxuKXt2YXIgZT0tMSxyPXQubGVuZ3RoO2ZvcihuLnBvbHlnb25TdGFydCgpOysrZTxyOyl5cih0W2VdLG4sMSk7bi5wb2x5Z29uRW5kKCl9ZnVuY3Rpb24gYnIodCxuKXt0JiZzcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP3NwW3QudHlwZV0odCxuKTpncih0LG4pfWZ1bmN0aW9uIG1yKCl7cHAucG9pbnQ9d3J9ZnVuY3Rpb24geHIoKXtNcihoZCxkZCl9ZnVuY3Rpb24gd3IodCxuKXtwcC5wb2ludD1NcixoZD10LGRkPW4scGQ9dCo9UWQsdmQ9bnAobj0obio9UWQpLzIrJGQpLGdkPWFwKG4pfWZ1bmN0aW9uIE1yKHQsbil7bj0obio9UWQpLzIrJGQ7dmFyIGU9KHQqPVFkKS1wZCxyPWU+PTA/MTotMSxpPXIqZSxvPW5wKG4pLGE9YXAobiksdT1nZCphLGY9dmQqbyt1Km5wKGkpLGM9dSpyKmFwKGkpO2hwLmFkZCh0cChjLGYpKSxwZD10LHZkPW8sZ2Q9YX1mdW5jdGlvbiBBcih0KXtyZXR1cm5bdHAodFsxXSx0WzBdKSxkcih0WzJdKV19ZnVuY3Rpb24gVHIodCl7dmFyIG49dFswXSxlPXRbMV0scj1ucChlKTtyZXR1cm5bcipucChuKSxyKmFwKG4pLGFwKGUpXX1mdW5jdGlvbiBOcih0LG4pe3JldHVybiB0WzBdKm5bMF0rdFsxXSpuWzFdK3RbMl0qblsyXX1mdW5jdGlvbiBTcih0LG4pe3JldHVyblt0WzFdKm5bMl0tdFsyXSpuWzFdLHRbMl0qblswXS10WzBdKm5bMl0sdFswXSpuWzFdLXRbMV0qblswXV19ZnVuY3Rpb24gRXIodCxuKXt0WzBdKz1uWzBdLHRbMV0rPW5bMV0sdFsyXSs9blsyXX1mdW5jdGlvbiBrcih0LG4pe3JldHVyblt0WzBdKm4sdFsxXSpuLHRbMl0qbl19ZnVuY3Rpb24gQ3IodCl7dmFyIG49ZnAodFswXSp0WzBdK3RbMV0qdFsxXSt0WzJdKnRbMl0pO3RbMF0vPW4sdFsxXS89bix0WzJdLz1ufWZ1bmN0aW9uIFByKHQsbil7VGQucHVzaChOZD1beWQ9dCxiZD10XSksbjxfZCYmKF9kPW4pLG4+bWQmJihtZD1uKX1mdW5jdGlvbiB6cih0LG4pe3ZhciBlPVRyKFt0KlFkLG4qUWRdKTtpZihBZCl7dmFyIHI9U3IoQWQsZSksaT1TcihbclsxXSwtclswXSwwXSxyKTtDcihpKSxpPUFyKGkpO3ZhciBvLGE9dC14ZCx1PWE+MD8xOi0xLGY9aVswXSpaZCp1LGM9SmQoYSk+MTgwO2NeKHUqeGQ8ZiYmZjx1KnQpPyhvPWlbMV0qWmQpPm1kJiYobWQ9byk6KGY9KGYrMzYwKSUzNjAtMTgwLGNeKHUqeGQ8ZiYmZjx1KnQpPyhvPS1pWzFdKlpkKTxfZCYmKF9kPW8pOihuPF9kJiYoX2Q9biksbj5tZCYmKG1kPW4pKSksYz90PHhkP09yKHlkLHQpPk9yKHlkLGJkKSYmKGJkPXQpOk9yKHQsYmQpPk9yKHlkLGJkKSYmKHlkPXQpOmJkPj15ZD8odDx5ZCYmKHlkPXQpLHQ+YmQmJihiZD10KSk6dD54ZD9Pcih5ZCx0KT5Pcih5ZCxiZCkmJihiZD10KTpPcih0LGJkKT5Pcih5ZCxiZCkmJih5ZD10KX1lbHNlIFRkLnB1c2goTmQ9W3lkPXQsYmQ9dF0pO248X2QmJihfZD1uKSxuPm1kJiYobWQ9biksQWQ9ZSx4ZD10fWZ1bmN0aW9uIFJyKCl7Z3AucG9pbnQ9enJ9ZnVuY3Rpb24gTHIoKXtOZFswXT15ZCxOZFsxXT1iZCxncC5wb2ludD1QcixBZD1udWxsfWZ1bmN0aW9uIERyKHQsbil7aWYoQWQpe3ZhciBlPXQteGQ7dnAuYWRkKEpkKGUpPjE4MD9lKyhlPjA/MzYwOi0zNjApOmUpfWVsc2Ugd2Q9dCxNZD1uO3BwLnBvaW50KHQsbiksenIodCxuKX1mdW5jdGlvbiBVcigpe3BwLmxpbmVTdGFydCgpfWZ1bmN0aW9uIHFyKCl7RHIod2QsTWQpLHBwLmxpbmVFbmQoKSxKZCh2cCk+SGQmJih5ZD0tKGJkPTE4MCkpLE5kWzBdPXlkLE5kWzFdPWJkLEFkPW51bGx9ZnVuY3Rpb24gT3IodCxuKXtyZXR1cm4obi09dCk8MD9uKzM2MDpufWZ1bmN0aW9uIFlyKHQsbil7cmV0dXJuIHRbMF0tblswXX1mdW5jdGlvbiBCcih0LG4pe3JldHVybiB0WzBdPD10WzFdP3RbMF08PW4mJm48PXRbMV06bjx0WzBdfHx0WzFdPG59ZnVuY3Rpb24gRnIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCk7SXIoZSpucCh0KSxlKmFwKHQpLGFwKG4pKX1mdW5jdGlvbiBJcih0LG4sZSl7a2QrPSh0LWtkKS8rK1NkLENkKz0obi1DZCkvU2QsUGQrPShlLVBkKS9TZH1mdW5jdGlvbiBqcigpe3lwLnBvaW50PUhyfWZ1bmN0aW9uIEhyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpO0JkPWUqbnAodCksRmQ9ZSphcCh0KSxJZD1hcChuKSx5cC5wb2ludD1YcixJcihCZCxGZCxJZCl9ZnVuY3Rpb24gWHIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCkscj1lKm5wKHQpLGk9ZSphcCh0KSxvPWFwKG4pLGE9dHAoZnAoKGE9RmQqby1JZCppKSphKyhhPUlkKnItQmQqbykqYSsoYT1CZCppLUZkKnIpKmEpLEJkKnIrRmQqaStJZCpvKTtFZCs9YSx6ZCs9YSooQmQrKEJkPXIpKSxSZCs9YSooRmQrKEZkPWkpKSxMZCs9YSooSWQrKElkPW8pKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gR3IoKXt5cC5wb2ludD1Gcn1mdW5jdGlvbiBWcigpe3lwLnBvaW50PVdyfWZ1bmN0aW9uICRyKCl7WnIoT2QsWWQpLHlwLnBvaW50PUZyfWZ1bmN0aW9uIFdyKHQsbil7T2Q9dCxZZD1uLHQqPVFkLG4qPVFkLHlwLnBvaW50PVpyO3ZhciBlPW5wKG4pO0JkPWUqbnAodCksRmQ9ZSphcCh0KSxJZD1hcChuKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gWnIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCkscj1lKm5wKHQpLGk9ZSphcCh0KSxvPWFwKG4pLGE9RmQqby1JZCppLHU9SWQqci1CZCpvLGY9QmQqaS1GZCpyLGM9ZnAoYSphK3UqdStmKmYpLHM9ZHIoYyksbD1jJiYtcy9jO0RkKz1sKmEsVWQrPWwqdSxxZCs9bCpmLEVkKz1zLHpkKz1zKihCZCsoQmQ9cikpLFJkKz1zKihGZCsoRmQ9aSkpLExkKz1zKihJZCsoSWQ9bykpLElyKEJkLEZkLElkKX1mdW5jdGlvbiBRcih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gSnIodCxuKXtmdW5jdGlvbiBlKGUscil7cmV0dXJuIGU9dChlLHIpLG4oZVswXSxlWzFdKX1yZXR1cm4gdC5pbnZlcnQmJm4uaW52ZXJ0JiYoZS5pbnZlcnQ9ZnVuY3Rpb24oZSxyKXtyZXR1cm4oZT1uLmludmVydChlLHIpKSYmdC5pbnZlcnQoZVswXSxlWzFdKX0pLGV9ZnVuY3Rpb24gS3IodCxuKXtyZXR1cm5bdD5HZD90LVdkOnQ8LUdkP3QrV2Q6dCxuXX1mdW5jdGlvbiB0aSh0LG4sZSl7cmV0dXJuKHQlPVdkKT9ufHxlP0pyKGVpKHQpLHJpKG4sZSkpOmVpKHQpOm58fGU/cmkobixlKTpLcn1mdW5jdGlvbiBuaSh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXtyZXR1cm4gbis9dCxbbj5HZD9uLVdkOm48LUdkP24rV2Q6bixlXX19ZnVuY3Rpb24gZWkodCl7dmFyIG49bmkodCk7cmV0dXJuIG4uaW52ZXJ0PW5pKC10KSxufWZ1bmN0aW9uIHJpKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPW5wKG4pLHU9bnAodCkqZSxmPWFwKHQpKmUsYz1hcChuKSxzPWMqcit1Kmk7cmV0dXJuW3RwKGYqby1zKmEsdSpyLWMqaSksZHIocypvK2YqYSldfXZhciByPW5wKHQpLGk9YXAodCksbz1ucChuKSxhPWFwKG4pO3JldHVybiBlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW5wKG4pLHU9bnAodCkqZSxmPWFwKHQpKmUsYz1hcChuKSxzPWMqby1mKmE7cmV0dXJuW3RwKGYqbytjKmEsdSpyK3MqaSksZHIocypyLXUqaSldfSxlfWZ1bmN0aW9uIGlpKHQpe2Z1bmN0aW9uIG4obil7cmV0dXJuIG49dChuWzBdKlFkLG5bMV0qUWQpLG5bMF0qPVpkLG5bMV0qPVpkLG59cmV0dXJuIHQ9dGkodFswXSpRZCx0WzFdKlFkLHQubGVuZ3RoPjI/dFsyXSpRZDowKSxuLmludmVydD1mdW5jdGlvbihuKXtyZXR1cm4gbj10LmludmVydChuWzBdKlFkLG5bMV0qUWQpLG5bMF0qPVpkLG5bMV0qPVpkLG59LG59ZnVuY3Rpb24gb2kodCxuLGUscixpLG8pe2lmKGUpe3ZhciBhPW5wKG4pLHU9YXAobiksZj1yKmU7bnVsbD09aT8oaT1uK3IqV2Qsbz1uLWYvMik6KGk9YWkoYSxpKSxvPWFpKGEsbyksKHI+MD9pPG86aT5vKSYmKGkrPXIqV2QpKTtmb3IodmFyIGMscz1pO3I+MD9zPm86czxvO3MtPWYpYz1BcihbYSwtdSpucChzKSwtdSphcChzKV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gYWkodCxuKXsobj1UcihuKSlbMF0tPXQsQ3Iobik7dmFyIGU9aHIoLW5bMV0pO3JldHVybigoLW5bMl08MD8tZTplKStXZC1IZCklV2R9ZnVuY3Rpb24gdWkoKXt2YXIgdCxuPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihuLGUpe3QucHVzaChbbixlXSl9LGxpbmVTdGFydDpmdW5jdGlvbigpe24ucHVzaCh0PVtdKX0sbGluZUVuZDp2cixyZWpvaW46ZnVuY3Rpb24oKXtuLmxlbmd0aD4xJiZuLnB1c2gobi5wb3AoKS5jb25jYXQobi5zaGlmdCgpKSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBlPW47cmV0dXJuIG49W10sdD1udWxsLGV9fX1mdW5jdGlvbiBmaSh0LG4pe3JldHVybiBKZCh0WzBdLW5bMF0pPEhkJiZKZCh0WzFdLW5bMV0pPEhkfWZ1bmN0aW9uIGNpKHQsbixlLHIpe3RoaXMueD10LHRoaXMuej1uLHRoaXMubz1lLHRoaXMuZT1yLHRoaXMudj0hMSx0aGlzLm49dGhpcy5wPW51bGx9ZnVuY3Rpb24gc2kodCxuLGUscixpKXt2YXIgbyxhLHU9W10sZj1bXTtpZih0LmZvckVhY2goZnVuY3Rpb24odCl7aWYoISgobj10Lmxlbmd0aC0xKTw9MCkpe3ZhciBuLGUscj10WzBdLGE9dFtuXTtpZihmaShyLGEpKXtmb3IoaS5saW5lU3RhcnQoKSxvPTA7bzxuOysrbylpLnBvaW50KChyPXRbb10pWzBdLHJbMV0pO2kubGluZUVuZCgpfWVsc2UgdS5wdXNoKGU9bmV3IGNpKHIsdCxudWxsLCEwKSksZi5wdXNoKGUubz1uZXcgY2kocixudWxsLGUsITEpKSx1LnB1c2goZT1uZXcgY2koYSx0LG51bGwsITEpKSxmLnB1c2goZS5vPW5ldyBjaShhLG51bGwsZSwhMCkpfX0pLHUubGVuZ3RoKXtmb3IoZi5zb3J0KG4pLGxpKHUpLGxpKGYpLG89MCxhPWYubGVuZ3RoO288YTsrK28pZltvXS5lPWU9IWU7Zm9yKHZhciBjLHMsbD11WzBdOzspe2Zvcih2YXIgaD1sLGQ9ITA7aC52OylpZigoaD1oLm4pPT09bClyZXR1cm47Yz1oLnosaS5saW5lU3RhcnQoKTtkb3tpZihoLnY9aC5vLnY9ITAsaC5lKXtpZihkKWZvcihvPTAsYT1jLmxlbmd0aDtvPGE7KytvKWkucG9pbnQoKHM9Y1tvXSlbMF0sc1sxXSk7ZWxzZSByKGgueCxoLm4ueCwxLGkpO2g9aC5ufWVsc2V7aWYoZClmb3IoYz1oLnAueixvPWMubGVuZ3RoLTE7bz49MDstLW8paS5wb2ludCgocz1jW29dKVswXSxzWzFdKTtlbHNlIHIoaC54LGgucC54LC0xLGkpO2g9aC5wfWM9KGg9aC5vKS56LGQ9IWR9d2hpbGUoIWgudik7aS5saW5lRW5kKCl9fX1mdW5jdGlvbiBsaSh0KXtpZihuPXQubGVuZ3RoKXtmb3IodmFyIG4sZSxyPTAsaT10WzBdOysrcjxuOylpLm49ZT10W3JdLGUucD1pLGk9ZTtpLm49ZT10WzBdLGUucD1pfX1mdW5jdGlvbiBoaSh0LG4pe3ZhciBlPW5bMF0scj1uWzFdLGk9YXAociksbz1bYXAoZSksLW5wKGUpLDBdLGE9MCx1PTA7a3AucmVzZXQoKSwxPT09aT9yPVZkK0hkOi0xPT09aSYmKHI9LVZkLUhkKTtmb3IodmFyIGY9MCxjPXQubGVuZ3RoO2Y8YzsrK2YpaWYobD0ocz10W2ZdKS5sZW5ndGgpZm9yKHZhciBzLGwsaD1zW2wtMV0sZD1oWzBdLHA9aFsxXS8yKyRkLHY9YXAocCksZz1ucChwKSx5PTA7eTxsOysreSxkPWIsdj14LGc9dyxoPV8pe3ZhciBfPXNbeV0sYj1fWzBdLG09X1sxXS8yKyRkLHg9YXAobSksdz1ucChtKSxNPWItZCxBPU0+PTA/MTotMSxUPUEqTSxOPVQ+R2QsUz12Kng7aWYoa3AuYWRkKHRwKFMqQSphcChUKSxnKncrUypucChUKSkpLGErPU4/TStBKldkOk0sTl5kPj1lXmI+PWUpe3ZhciBFPVNyKFRyKGgpLFRyKF8pKTtDcihFKTt2YXIgaz1TcihvLEUpO0NyKGspO3ZhciBDPShOXk0+PTA/LTE6MSkqZHIoa1syXSk7KHI+Q3x8cj09PUMmJihFWzBdfHxFWzFdKSkmJih1Kz1OXk0+PTA/MTotMSl9fXJldHVybihhPC1IZHx8YTxIZCYma3A8LUhkKV4xJnV9ZnVuY3Rpb24gZGkodCxuLGUscil7cmV0dXJuIGZ1bmN0aW9uKGkpe2Z1bmN0aW9uIG8obixlKXt0KG4sZSkmJmkucG9pbnQobixlKX1mdW5jdGlvbiBhKHQsbil7di5wb2ludCh0LG4pfWZ1bmN0aW9uIHUoKXttLnBvaW50PWEsdi5saW5lU3RhcnQoKX1mdW5jdGlvbiBmKCl7bS5wb2ludD1vLHYubGluZUVuZCgpfWZ1bmN0aW9uIGModCxuKXtwLnB1c2goW3Qsbl0pLF8ucG9pbnQodCxuKX1mdW5jdGlvbiBzKCl7Xy5saW5lU3RhcnQoKSxwPVtdfWZ1bmN0aW9uIGwoKXtjKHBbMF1bMF0scFswXVsxXSksXy5saW5lRW5kKCk7dmFyIHQsbixlLHIsbz1fLmNsZWFuKCksYT1nLnJlc3VsdCgpLHU9YS5sZW5ndGg7aWYocC5wb3AoKSxoLnB1c2gocCkscD1udWxsLHUpaWYoMSZvKXtpZihlPWFbMF0sKG49ZS5sZW5ndGgtMSk+MCl7Zm9yKGJ8fChpLnBvbHlnb25TdGFydCgpLGI9ITApLGkubGluZVN0YXJ0KCksdD0wO3Q8bjsrK3QpaS5wb2ludCgocj1lW3RdKVswXSxyWzFdKTtpLmxpbmVFbmQoKX19ZWxzZSB1PjEmJjImbyYmYS5wdXNoKGEucG9wKCkuY29uY2F0KGEuc2hpZnQoKSkpLGQucHVzaChhLmZpbHRlcihwaSkpfXZhciBoLGQscCx2PW4oaSksZz11aSgpLF89bihnKSxiPSExLG09e3BvaW50Om8sbGluZVN0YXJ0OnUsbGluZUVuZDpmLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe20ucG9pbnQ9YyxtLmxpbmVTdGFydD1zLG0ubGluZUVuZD1sLGQ9W10saD1bXX0scG9seWdvbkVuZDpmdW5jdGlvbigpe20ucG9pbnQ9byxtLmxpbmVTdGFydD11LG0ubGluZUVuZD1mLGQ9eShkKTt2YXIgdD1oaShoLHIpO2QubGVuZ3RoPyhifHwoaS5wb2x5Z29uU3RhcnQoKSxiPSEwKSxzaShkLHZpLHQsZSxpKSk6dCYmKGJ8fChpLnBvbHlnb25TdGFydCgpLGI9ITApLGkubGluZVN0YXJ0KCksZShudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSksYiYmKGkucG9seWdvbkVuZCgpLGI9ITEpLGQ9aD1udWxsfSxzcGhlcmU6ZnVuY3Rpb24oKXtpLnBvbHlnb25TdGFydCgpLGkubGluZVN0YXJ0KCksZShudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSxpLnBvbHlnb25FbmQoKX19O3JldHVybiBtfX1mdW5jdGlvbiBwaSh0KXtyZXR1cm4gdC5sZW5ndGg+MX1mdW5jdGlvbiB2aSh0LG4pe3JldHVybigodD10LngpWzBdPDA/dFsxXS1WZC1IZDpWZC10WzFdKS0oKG49bi54KVswXTwwP25bMV0tVmQtSGQ6VmQtblsxXSl9ZnVuY3Rpb24gZ2kodCl7ZnVuY3Rpb24gbih0LG4pe3JldHVybiBucCh0KSpucChuKT5pfWZ1bmN0aW9uIGUodCxuLGUpe3ZhciByPVsxLDAsMF0sbz1TcihUcih0KSxUcihuKSksYT1OcihvLG8pLHU9b1swXSxmPWEtdSp1O2lmKCFmKXJldHVybiFlJiZ0O3ZhciBjPWkqYS9mLHM9LWkqdS9mLGw9U3IocixvKSxoPWtyKHIsYyk7RXIoaCxrcihvLHMpKTt2YXIgZD1sLHA9TnIoaCxkKSx2PU5yKGQsZCksZz1wKnAtdiooTnIoaCxoKS0xKTtpZighKGc8MCkpe3ZhciB5PWZwKGcpLF89a3IoZCwoLXAteSkvdik7aWYoRXIoXyxoKSxfPUFyKF8pLCFlKXJldHVybiBfO3ZhciBiLG09dFswXSx4PW5bMF0sdz10WzFdLE09blsxXTt4PG0mJihiPW0sbT14LHg9Yik7dmFyIEE9eC1tLFQ9SmQoQS1HZCk8SGQ7aWYoIVQmJk08dyYmKGI9dyx3PU0sTT1iKSxUfHxBPEhkP1Q/dytNPjBeX1sxXTwoSmQoX1swXS1tKTxIZD93Ok0pOnc8PV9bMV0mJl9bMV08PU06QT5HZF4obTw9X1swXSYmX1swXTw9eCkpe3ZhciBOPWtyKGQsKC1wK3kpL3YpO3JldHVybiBFcihOLGgpLFtfLEFyKE4pXX19fWZ1bmN0aW9uIHIobixlKXt2YXIgcj1hP3Q6R2QtdCxpPTA7cmV0dXJuIG48LXI/aXw9MTpuPnImJihpfD0yKSxlPC1yP2l8PTQ6ZT5yJiYoaXw9OCksaX12YXIgaT1ucCh0KSxvPTYqUWQsYT1pPjAsdT1KZChpKT5IZDtyZXR1cm4gZGkobixmdW5jdGlvbih0KXt2YXIgaSxvLGYsYyxzO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtjPWY9ITEscz0xfSxwb2ludDpmdW5jdGlvbihsLGgpe3ZhciBkLHA9W2wsaF0sdj1uKGwsaCksZz1hP3Y/MDpyKGwsaCk6dj9yKGwrKGw8MD9HZDotR2QpLGgpOjA7aWYoIWkmJihjPWY9dikmJnQubGluZVN0YXJ0KCksdiE9PWYmJighKGQ9ZShpLHApKXx8ZmkoaSxkKXx8ZmkocCxkKSkmJihwWzBdKz1IZCxwWzFdKz1IZCx2PW4ocFswXSxwWzFdKSksdiE9PWYpcz0wLHY/KHQubGluZVN0YXJ0KCksZD1lKHAsaSksdC5wb2ludChkWzBdLGRbMV0pKTooZD1lKGkscCksdC5wb2ludChkWzBdLGRbMV0pLHQubGluZUVuZCgpKSxpPWQ7ZWxzZSBpZih1JiZpJiZhXnYpe3ZhciB5O2cmb3x8ISh5PWUocCxpLCEwKSl8fChzPTAsYT8odC5saW5lU3RhcnQoKSx0LnBvaW50KHlbMF1bMF0seVswXVsxXSksdC5wb2ludCh5WzFdWzBdLHlbMV1bMV0pLHQubGluZUVuZCgpKToodC5wb2ludCh5WzFdWzBdLHlbMV1bMV0pLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh5WzBdWzBdLHlbMF1bMV0pKSl9IXZ8fGkmJmZpKGkscCl8fHQucG9pbnQocFswXSxwWzFdKSxpPXAsZj12LG89Z30sbGluZUVuZDpmdW5jdGlvbigpe2YmJnQubGluZUVuZCgpLGk9bnVsbH0sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gc3woYyYmZik8PDF9fX0sZnVuY3Rpb24obixlLHIsaSl7b2koaSx0LG8scixuLGUpfSxhP1swLC10XTpbLUdkLHQtR2RdKX1mdW5jdGlvbiB5aSh0LG4sZSxyKXtmdW5jdGlvbiBpKGksbyl7cmV0dXJuIHQ8PWkmJmk8PWUmJm48PW8mJm88PXJ9ZnVuY3Rpb24gbyhpLG8sdSxjKXt2YXIgcz0wLGw9MDtpZihudWxsPT1pfHwocz1hKGksdSkpIT09KGw9YShvLHUpKXx8ZihpLG8pPDBedT4wKWRve2MucG9pbnQoMD09PXN8fDM9PT1zP3Q6ZSxzPjE/cjpuKX13aGlsZSgocz0ocyt1KzQpJTQpIT09bCk7ZWxzZSBjLnBvaW50KG9bMF0sb1sxXSl9ZnVuY3Rpb24gYShyLGkpe3JldHVybiBKZChyWzBdLXQpPEhkP2k+MD8wOjM6SmQoclswXS1lKTxIZD9pPjA/MjoxOkpkKHJbMV0tbik8SGQ/aT4wPzE6MDppPjA/MzoyfWZ1bmN0aW9uIHUodCxuKXtyZXR1cm4gZih0Lngsbi54KX1mdW5jdGlvbiBmKHQsbil7dmFyIGU9YSh0LDEpLHI9YShuLDEpO3JldHVybiBlIT09cj9lLXI6MD09PWU/blsxXS10WzFdOjE9PT1lP3RbMF0tblswXToyPT09ZT90WzFdLW5bMV06blswXS10WzBdfXJldHVybiBmdW5jdGlvbihhKXtmdW5jdGlvbiBmKHQsbil7aSh0LG4pJiZ3LnBvaW50KHQsbil9ZnVuY3Rpb24gYyhvLGEpe3ZhciB1PWkobyxhKTtpZihsJiZoLnB1c2goW28sYV0pLG0pZD1vLHA9YSx2PXUsbT0hMSx1JiYody5saW5lU3RhcnQoKSx3LnBvaW50KG8sYSkpO2Vsc2UgaWYodSYmYil3LnBvaW50KG8sYSk7ZWxzZXt2YXIgZj1bZz1NYXRoLm1heCh6cCxNYXRoLm1pbihQcCxnKSksXz1NYXRoLm1heCh6cCxNYXRoLm1pbihQcCxfKSldLGM9W289TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsbykpLGE9TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsYSkpXTshZnVuY3Rpb24odCxuLGUscixpLG8pe3ZhciBhLHU9dFswXSxmPXRbMV0sYz0wLHM9MSxsPW5bMF0tdSxoPW5bMV0tZjtpZihhPWUtdSxsfHwhKGE+MCkpe2lmKGEvPWwsbDwwKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9ZWxzZSBpZihsPjApe2lmKGE+cylyZXR1cm47YT5jJiYoYz1hKX1pZihhPWktdSxsfHwhKGE8MCkpe2lmKGEvPWwsbDwwKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihsPjApe2lmKGE8YylyZXR1cm47YTxzJiYocz1hKX1pZihhPXItZixofHwhKGE+MCkpe2lmKGEvPWgsaDwwKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9ZWxzZSBpZihoPjApe2lmKGE+cylyZXR1cm47YT5jJiYoYz1hKX1pZihhPW8tZixofHwhKGE8MCkpe2lmKGEvPWgsaDwwKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihoPjApe2lmKGE8YylyZXR1cm47YTxzJiYocz1hKX1yZXR1cm4gYz4wJiYodFswXT11K2MqbCx0WzFdPWYrYypoKSxzPDEmJihuWzBdPXUrcypsLG5bMV09ZitzKmgpLCEwfX19fX0oZixjLHQsbixlLHIpP3UmJih3LmxpbmVTdGFydCgpLHcucG9pbnQobyxhKSx4PSExKTooYnx8KHcubGluZVN0YXJ0KCksdy5wb2ludChmWzBdLGZbMV0pKSx3LnBvaW50KGNbMF0sY1sxXSksdXx8dy5saW5lRW5kKCkseD0hMSl9Zz1vLF89YSxiPXV9dmFyIHMsbCxoLGQscCx2LGcsXyxiLG0seCx3PWEsTT11aSgpLEE9e3BvaW50OmYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7QS5wb2ludD1jLGwmJmwucHVzaChoPVtdKSxtPSEwLGI9ITEsZz1fPU5hTn0sbGluZUVuZDpmdW5jdGlvbigpe3MmJihjKGQscCksdiYmYiYmTS5yZWpvaW4oKSxzLnB1c2goTS5yZXN1bHQoKSkpLEEucG9pbnQ9ZixiJiZ3LmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dz1NLHM9W10sbD1bXSx4PSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIG49ZnVuY3Rpb24oKXtmb3IodmFyIG49MCxlPTAsaT1sLmxlbmd0aDtlPGk7KytlKWZvcih2YXIgbyxhLHU9bFtlXSxmPTEsYz11Lmxlbmd0aCxzPXVbMF0saD1zWzBdLGQ9c1sxXTtmPGM7KytmKW89aCxhPWQsaD0ocz11W2ZdKVswXSxkPXNbMV0sYTw9cj9kPnImJihoLW8pKihyLWEpPihkLWEpKih0LW8pJiYrK246ZDw9ciYmKGgtbykqKHItYSk8KGQtYSkqKHQtbykmJi0tbjtyZXR1cm4gbn0oKSxlPXgmJm4saT0ocz15KHMpKS5sZW5ndGg7KGV8fGkpJiYoYS5wb2x5Z29uU3RhcnQoKSxlJiYoYS5saW5lU3RhcnQoKSxvKG51bGwsbnVsbCwxLGEpLGEubGluZUVuZCgpKSxpJiZzaShzLHUsbixvLGEpLGEucG9seWdvbkVuZCgpKSx3PWEscz1sPWg9bnVsbH19O3JldHVybiBBfX1mdW5jdGlvbiBfaSgpe0xwLnBvaW50PUxwLmxpbmVFbmQ9dnJ9ZnVuY3Rpb24gYmkodCxuKXtfcD10Kj1RZCxicD1hcChuKj1RZCksbXA9bnAobiksTHAucG9pbnQ9bWl9ZnVuY3Rpb24gbWkodCxuKXt0Kj1RZDt2YXIgZT1hcChuKj1RZCkscj1ucChuKSxpPUpkKHQtX3ApLG89bnAoaSksYT1yKmFwKGkpLHU9bXAqZS1icCpyKm8sZj1icCplK21wKnIqbztScC5hZGQodHAoZnAoYSphK3UqdSksZikpLF9wPXQsYnA9ZSxtcD1yfWZ1bmN0aW9uIHhpKHQpe3JldHVybiBScC5yZXNldCgpLGJyKHQsTHApLCtScH1mdW5jdGlvbiB3aSh0LG4pe3JldHVybiBEcFswXT10LERwWzFdPW4seGkoVXApfWZ1bmN0aW9uIE1pKHQsbil7cmV0dXJuISghdHx8IU9wLmhhc093blByb3BlcnR5KHQudHlwZSkpJiZPcFt0LnR5cGVdKHQsbil9ZnVuY3Rpb24gQWkodCxuKXtyZXR1cm4gMD09PXdpKHQsbil9ZnVuY3Rpb24gVGkodCxuKXt2YXIgZT13aSh0WzBdLHRbMV0pO3JldHVybiB3aSh0WzBdLG4pK3dpKG4sdFsxXSk8PWUrSGR9ZnVuY3Rpb24gTmkodCxuKXtyZXR1cm4hIWhpKHQubWFwKFNpKSxFaShuKSl9ZnVuY3Rpb24gU2kodCl7cmV0dXJuKHQ9dC5tYXAoRWkpKS5wb3AoKSx0fWZ1bmN0aW9uIEVpKHQpe3JldHVyblt0WzBdKlFkLHRbMV0qUWRdfWZ1bmN0aW9uIGtpKHQsbixlKXt2YXIgcj1zKHQsbi1IZCxlKS5jb25jYXQobik7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByLm1hcChmdW5jdGlvbihuKXtyZXR1cm5bdCxuXX0pfX1mdW5jdGlvbiBDaSh0LG4sZSl7dmFyIHI9cyh0LG4tSGQsZSkuY29uY2F0KG4pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5tYXAoZnVuY3Rpb24obil7cmV0dXJuW24sdF19KX19ZnVuY3Rpb24gUGkoKXtmdW5jdGlvbiB0KCl7cmV0dXJue3R5cGU6XCJNdWx0aUxpbmVTdHJpbmdcIixjb29yZGluYXRlczpuKCl9fWZ1bmN0aW9uIG4oKXtyZXR1cm4gcyhlcChvL3kpKnksaSx5KS5tYXAoZCkuY29uY2F0KHMoZXAoYy9fKSpfLGYsXykubWFwKHApKS5jb25jYXQocyhlcChyL3YpKnYsZSx2KS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIEpkKHQleSk+SGR9KS5tYXAobCkpLmNvbmNhdChzKGVwKHUvZykqZyxhLGcpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gSmQodCVfKT5IZH0pLm1hcChoKSl9dmFyIGUscixpLG8sYSx1LGYsYyxsLGgsZCxwLHY9MTAsZz12LHk9OTAsXz0zNjAsYj0yLjU7cmV0dXJuIHQubGluZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLm1hcChmdW5jdGlvbih0KXtyZXR1cm57dHlwZTpcIkxpbmVTdHJpbmdcIixjb29yZGluYXRlczp0fX0pfSx0Lm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZTpcIlBvbHlnb25cIixjb29yZGluYXRlczpbZChvKS5jb25jYXQocChmKS5zbGljZSgxKSxkKGkpLnJldmVyc2UoKS5zbGljZSgxKSxwKGMpLnJldmVyc2UoKS5zbGljZSgxKSldfX0sdC5leHRlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5leHRlbnRNYWpvcihuKS5leHRlbnRNaW5vcihuKTp0LmV4dGVudE1pbm9yKCl9LHQuZXh0ZW50TWFqb3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K25bMF1bMF0saT0rblsxXVswXSxjPStuWzBdWzFdLGY9K25bMV1bMV0sbz5pJiYobj1vLG89aSxpPW4pLGM+ZiYmKG49YyxjPWYsZj1uKSx0LnByZWNpc2lvbihiKSk6W1tvLGNdLFtpLGZdXX0sdC5leHRlbnRNaW5vcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rblswXVswXSxlPStuWzFdWzBdLHU9K25bMF1bMV0sYT0rblsxXVsxXSxyPmUmJihuPXIscj1lLGU9biksdT5hJiYobj11LHU9YSxhPW4pLHQucHJlY2lzaW9uKGIpKTpbW3IsdV0sW2UsYV1dfSx0LnN0ZXA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5zdGVwTWFqb3Iobikuc3RlcE1pbm9yKG4pOnQuc3RlcE1pbm9yKCl9LHQuc3RlcE1ham9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PStuWzBdLF89K25bMV0sdCk6W3ksX119LHQuc3RlcE1pbm9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PStuWzBdLGc9K25bMV0sdCk6W3YsZ119LHQucHJlY2lzaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPStuLGw9a2kodSxhLDkwKSxoPUNpKHIsZSxiKSxkPWtpKGMsZiw5MCkscD1DaShvLGksYiksdCk6Yn0sdC5leHRlbnRNYWpvcihbWy0xODAsLTkwK0hkXSxbMTgwLDkwLUhkXV0pLmV4dGVudE1pbm9yKFtbLTE4MCwtODAtSGRdLFsxODAsODArSGRdXSl9ZnVuY3Rpb24gemkodCl7cmV0dXJuIHR9ZnVuY3Rpb24gUmkoKXtGcC5wb2ludD1MaX1mdW5jdGlvbiBMaSh0LG4pe0ZwLnBvaW50PURpLHhwPU1wPXQsd3A9QXA9bn1mdW5jdGlvbiBEaSh0LG4pe0JwLmFkZChBcCp0LU1wKm4pLE1wPXQsQXA9bn1mdW5jdGlvbiBVaSgpe0RpKHhwLHdwKX1mdW5jdGlvbiBxaSh0LG4pe1ZwKz10LCRwKz1uLCsrV3B9ZnVuY3Rpb24gT2koKXtldi5wb2ludD1ZaX1mdW5jdGlvbiBZaSh0LG4pe2V2LnBvaW50PUJpLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gQmkodCxuKXt2YXIgZT10LVNwLHI9bi1FcCxpPWZwKGUqZStyKnIpO1pwKz1pKihTcCt0KS8yLFFwKz1pKihFcCtuKS8yLEpwKz1pLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gRmkoKXtldi5wb2ludD1xaX1mdW5jdGlvbiBJaSgpe2V2LnBvaW50PUhpfWZ1bmN0aW9uIGppKCl7WGkoVHAsTnApfWZ1bmN0aW9uIEhpKHQsbil7ZXYucG9pbnQ9WGkscWkoVHA9U3A9dCxOcD1FcD1uKX1mdW5jdGlvbiBYaSh0LG4pe3ZhciBlPXQtU3Ascj1uLUVwLGk9ZnAoZSplK3Iqcik7WnArPWkqKFNwK3QpLzIsUXArPWkqKEVwK24pLzIsSnArPWksS3ArPShpPUVwKnQtU3AqbikqKFNwK3QpLHR2Kz1pKihFcCtuKSxudis9MyppLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gR2kodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIFZpKHQsbil7Y3YucG9pbnQ9JGksaXY9YXY9dCxvdj11dj1ufWZ1bmN0aW9uICRpKHQsbil7YXYtPXQsdXYtPW4sZnYuYWRkKGZwKGF2KmF2K3V2KnV2KSksYXY9dCx1dj1ufWZ1bmN0aW9uIFdpKCl7dGhpcy5fc3RyaW5nPVtdfWZ1bmN0aW9uIFppKHQpe3JldHVyblwibTAsXCIrdCtcImFcIit0K1wiLFwiK3QrXCIgMCAxLDEgMCxcIistMip0K1wiYVwiK3QrXCIsXCIrdCtcIiAwIDEsMSAwLFwiKzIqdCtcInpcIn1mdW5jdGlvbiBRaSh0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9bmV3IEppO2Zvcih2YXIgciBpbiB0KWVbcl09dFtyXTtyZXR1cm4gZS5zdHJlYW09bixlfX1mdW5jdGlvbiBKaSgpe31mdW5jdGlvbiBLaSh0LG4sZSl7dmFyIHI9dC5jbGlwRXh0ZW50JiZ0LmNsaXBFeHRlbnQoKTtyZXR1cm4gdC5zY2FsZSgxNTApLnRyYW5zbGF0ZShbMCwwXSksbnVsbCE9ciYmdC5jbGlwRXh0ZW50KG51bGwpLGJyKGUsdC5zdHJlYW0oR3ApKSxuKEdwLnJlc3VsdCgpKSxudWxsIT1yJiZ0LmNsaXBFeHRlbnQociksdH1mdW5jdGlvbiB0byh0LG4sZSl7cmV0dXJuIEtpKHQsZnVuY3Rpb24oZSl7dmFyIHI9blsxXVswXS1uWzBdWzBdLGk9blsxXVsxXS1uWzBdWzFdLG89TWF0aC5taW4oci8oZVsxXVswXS1lWzBdWzBdKSxpLyhlWzFdWzFdLWVbMF1bMV0pKSxhPStuWzBdWzBdKyhyLW8qKGVbMV1bMF0rZVswXVswXSkpLzIsdT0rblswXVsxXSsoaS1vKihlWzFdWzFdK2VbMF1bMV0pKS8yO3Quc2NhbGUoMTUwKm8pLnRyYW5zbGF0ZShbYSx1XSl9LGUpfWZ1bmN0aW9uIG5vKHQsbixlKXtyZXR1cm4gdG8odCxbWzAsMF0sbl0sZSl9ZnVuY3Rpb24gZW8odCxuLGUpe3JldHVybiBLaSh0LGZ1bmN0aW9uKGUpe3ZhciByPStuLGk9ci8oZVsxXVswXS1lWzBdWzBdKSxvPShyLWkqKGVbMV1bMF0rZVswXVswXSkpLzIsYT0taSplWzBdWzFdO3Quc2NhbGUoMTUwKmkpLnRyYW5zbGF0ZShbbyxhXSl9LGUpfWZ1bmN0aW9uIHJvKHQsbixlKXtyZXR1cm4gS2kodCxmdW5jdGlvbihlKXt2YXIgcj0rbixpPXIvKGVbMV1bMV0tZVswXVsxXSksbz0taSplWzBdWzBdLGE9KHItaSooZVsxXVsxXStlWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCppKS50cmFuc2xhdGUoW28sYV0pfSxlKX1mdW5jdGlvbiBpbyh0LG4pe3JldHVybituP2Z1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZShyLGksbyxhLHUsZixjLHMsbCxoLGQscCx2LGcpe3ZhciB5PWMtcixfPXMtaSxiPXkqeStfKl87aWYoYj40Km4mJnYtLSl7dmFyIG09YStoLHg9dStkLHc9ZitwLE09ZnAobSptK3gqeCt3KncpLEE9ZHIody89TSksVD1KZChKZCh3KS0xKTxIZHx8SmQoby1sKTxIZD8obytsKS8yOnRwKHgsbSksTj10KFQsQSksUz1OWzBdLEU9TlsxXSxrPVMtcixDPUUtaSxQPV8qay15KkM7KFAqUC9iPm58fEpkKCh5KmsrXypDKS9iLS41KT4uM3x8YSpoK3UqZCtmKnA8bHYpJiYoZShyLGksbyxhLHUsZixTLEUsVCxtLz1NLHgvPU0sdyx2LGcpLGcucG9pbnQoUyxFKSxlKFMsRSxULG0seCx3LGMscyxsLGgsZCxwLHYsZykpfX1yZXR1cm4gZnVuY3Rpb24obil7ZnVuY3Rpb24gcihlLHIpe2U9dChlLHIpLG4ucG9pbnQoZVswXSxlWzFdKX1mdW5jdGlvbiBpKCl7eT1OYU4sdy5wb2ludD1vLG4ubGluZVN0YXJ0KCl9ZnVuY3Rpb24gbyhyLGkpe3ZhciBvPVRyKFtyLGldKSxhPXQocixpKTtlKHksXyxnLGIsbSx4LHk9YVswXSxfPWFbMV0sZz1yLGI9b1swXSxtPW9bMV0seD1vWzJdLHN2LG4pLG4ucG9pbnQoeSxfKX1mdW5jdGlvbiBhKCl7dy5wb2ludD1yLG4ubGluZUVuZCgpfWZ1bmN0aW9uIHUoKXtpKCksdy5wb2ludD1mLHcubGluZUVuZD1jfWZ1bmN0aW9uIGYodCxuKXtvKHM9dCxuKSxsPXksaD1fLGQ9YixwPW0sdj14LHcucG9pbnQ9b31mdW5jdGlvbiBjKCl7ZSh5LF8sZyxiLG0seCxsLGgscyxkLHAsdixzdixuKSx3LmxpbmVFbmQ9YSxhKCl9dmFyIHMsbCxoLGQscCx2LGcseSxfLGIsbSx4LHc9e3BvaW50OnIsbGluZVN0YXJ0OmksbGluZUVuZDphLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe24ucG9seWdvblN0YXJ0KCksdy5saW5lU3RhcnQ9dX0scG9seWdvbkVuZDpmdW5jdGlvbigpe24ucG9seWdvbkVuZCgpLHcubGluZVN0YXJ0PWl9fTtyZXR1cm4gd319KHQsbik6ZnVuY3Rpb24odCl7cmV0dXJuIFFpKHtwb2ludDpmdW5jdGlvbihuLGUpe249dChuLGUpLHRoaXMuc3RyZWFtLnBvaW50KG5bMF0sblsxXSl9fSl9KHQpfWZ1bmN0aW9uIG9vKHQsbixlLHIpe2Z1bmN0aW9uIGkodCxyKXtyZXR1cm5bdSp0LWYqcituLGUtZip0LXUqcl19dmFyIG89bnAociksYT1hcChyKSx1PW8qdCxmPWEqdCxjPW8vdCxzPWEvdCxsPShhKmUtbypuKS90LGg9KGEqbitvKmUpL3Q7cmV0dXJuIGkuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW2MqdC1zKm4rbCxoLXMqdC1jKm5dfSxpfWZ1bmN0aW9uIGFvKHQpe3JldHVybiB1byhmdW5jdGlvbigpe3JldHVybiB0fSkoKX1mdW5jdGlvbiB1byh0KXtmdW5jdGlvbiBuKHQpe3JldHVybiBsKHRbMF0qUWQsdFsxXSpRZCl9ZnVuY3Rpb24gZSgpe3ZhciB0PW9vKHAsMCwwLHcpLmFwcGx5KG51bGwsaSh5LF8pKSxuPSh3P29vOmZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuW24rdCpyLGUtdCppXX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24ocixpKXtyZXR1cm5bKHItbikvdCwoZS1pKS90XX0scn0pKHAsdi10WzBdLGctdFsxXSx3KTtyZXR1cm4gbz10aShiLG0seCkscz1KcihpLG4pLGw9SnIobyxzKSxjPWlvKHMsUykscigpfWZ1bmN0aW9uIHIoKXtyZXR1cm4gaD1kPW51bGwsbn12YXIgaSxvLGEsdSxmLGMscyxsLGgsZCxwPTE1MCx2PTQ4MCxnPTI1MCx5PTAsXz0wLGI9MCxtPTAseD0wLHc9MCxNPW51bGwsQT1DcCxUPW51bGwsTj16aSxTPS41O3JldHVybiBuLnN0cmVhbT1mdW5jdGlvbih0KXtyZXR1cm4gaCYmZD09PXQ/aDpoPWh2KGZ1bmN0aW9uKHQpe3JldHVybiBRaSh7cG9pbnQ6ZnVuY3Rpb24obixlKXt2YXIgcj10KG4sZSk7cmV0dXJuIHRoaXMuc3RyZWFtLnBvaW50KHJbMF0sclsxXSl9fSl9KG8pKEEoYyhOKGQ9dCkpKSkpfSxuLnByZWNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9dCxNPXZvaWQgMCxyKCkpOkF9LG4ucG9zdGNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE49dCxUPWE9dT1mPW51bGwscigpKTpOfSxuLmNsaXBBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oQT0rdD9naShNPXQqUWQpOihNPW51bGwsQ3ApLHIoKSk6TSpaZH0sbi5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhOPW51bGw9PXQ/KFQ9YT11PWY9bnVsbCx6aSk6eWkoVD0rdFswXVswXSxhPSt0WzBdWzFdLHU9K3RbMV1bMF0sZj0rdFsxXVsxXSkscigpKTpudWxsPT1UP251bGw6W1tULGFdLFt1LGZdXX0sbi5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0rdCxlKCkpOnB9LG4udHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PSt0WzBdLGc9K3RbMV0sZSgpKTpbdixnXX0sbi5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9dFswXSUzNjAqUWQsXz10WzFdJTM2MCpRZCxlKCkpOlt5KlpkLF8qWmRdfSxuLnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj10WzBdJTM2MCpRZCxtPXRbMV0lMzYwKlFkLHg9dC5sZW5ndGg+Mj90WzJdJTM2MCpRZDowLGUoKSk6W2IqWmQsbSpaZCx4KlpkXX0sbi5hbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz10JTM2MCpRZCxlKCkpOncqWmR9LG4ucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPWlvKHMsUz10KnQpLHIoKSk6ZnAoUyl9LG4uZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRvKG4sdCxlKX0sbi5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5vKG4sdCxlKX0sbi5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBlbyhuLHQsZSl9LG4uZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJvKG4sdCxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gaT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuLmludmVydD1pLmludmVydCYmZnVuY3Rpb24odCl7cmV0dXJuKHQ9bC5pbnZlcnQodFswXSx0WzFdKSkmJlt0WzBdKlpkLHRbMV0qWmRdfSxlKCl9fWZ1bmN0aW9uIGZvKHQpe3ZhciBuPTAsZT1HZC8zLHI9dW8odCksaT1yKG4sZSk7cmV0dXJuIGkucGFyYWxsZWxzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Iobj10WzBdKlFkLGU9dFsxXSpRZCk6W24qWmQsZSpaZF19LGl9ZnVuY3Rpb24gY28odCxuKXtmdW5jdGlvbiBlKHQsbil7dmFyIGU9ZnAoby0yKmkqYXAobikpL2k7cmV0dXJuW2UqYXAodCo9aSksYS1lKm5wKHQpXX12YXIgcj1hcCh0KSxpPShyK2FwKG4pKS8yO2lmKEpkKGkpPEhkKXJldHVybiBmdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQsbil7cmV0dXJuW3QqZSxhcChuKS9lXX12YXIgZT1ucCh0KTtyZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdC9lLGRyKG4qZSldfSxufSh0KTt2YXIgbz0xK3IqKDIqaS1yKSxhPWZwKG8pL2k7cmV0dXJuIGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGU9YS1uO3JldHVyblt0cCh0LEpkKGUpKS9pKnVwKGUpLGRyKChvLSh0KnQrZSplKSppKmkpLygyKmkpKV19LGV9ZnVuY3Rpb24gc28oKXtyZXR1cm4gZm8oY28pLnNjYWxlKDE1NS40MjQpLmNlbnRlcihbMCwzMy42NDQyXSl9ZnVuY3Rpb24gbG8oKXtyZXR1cm4gc28oKS5wYXJhbGxlbHMoWzI5LjUsNDUuNV0pLnNjYWxlKDEwNzApLnRyYW5zbGF0ZShbNDgwLDI1MF0pLnJvdGF0ZShbOTYsMF0pLmNlbnRlcihbLS42LDM4LjddKX1mdW5jdGlvbiBobyh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj1ucChuKSxpPW5wKGUpLG89dChyKmkpO3JldHVybltvKmkqYXAobiksbyphcChlKV19fWZ1bmN0aW9uIHBvKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPWZwKG4qbitlKmUpLGk9dChyKSxvPWFwKGkpLGE9bnAoaSk7cmV0dXJuW3RwKG4qbyxyKmEpLGRyKHImJmUqby9yKV19fWZ1bmN0aW9uIHZvKHQsbil7cmV0dXJuW3QsaXAoY3AoKFZkK24pLzIpKV19ZnVuY3Rpb24gZ28odCl7ZnVuY3Rpb24gbigpe3ZhciBuPUdkKnUoKSxhPW8oaWkoby5yb3RhdGUoKSkuaW52ZXJ0KFswLDBdKSk7cmV0dXJuIGMobnVsbD09cz9bW2FbMF0tbixhWzFdLW5dLFthWzBdK24sYVsxXStuXV06dD09PXZvP1tbTWF0aC5tYXgoYVswXS1uLHMpLGVdLFtNYXRoLm1pbihhWzBdK24sciksaV1dOltbcyxNYXRoLm1heChhWzFdLW4sZSldLFtyLE1hdGgubWluKGFbMV0rbixpKV1dKX12YXIgZSxyLGksbz1hbyh0KSxhPW8uY2VudGVyLHU9by5zY2FsZSxmPW8udHJhbnNsYXRlLGM9by5jbGlwRXh0ZW50LHM9bnVsbDtyZXR1cm4gby5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odSh0KSxuKCkpOnUoKX0sby50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGYodCksbigpKTpmKCl9LG8uY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhKHQpLG4oKSk6YSgpfSxvLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/cz1lPXI9aT1udWxsOihzPSt0WzBdWzBdLGU9K3RbMF1bMV0scj0rdFsxXVswXSxpPSt0WzFdWzFdKSxuKCkpOm51bGw9PXM/bnVsbDpbW3MsZV0sW3IsaV1dfSxuKCl9ZnVuY3Rpb24geW8odCl7cmV0dXJuIGNwKChWZCt0KS8yKX1mdW5jdGlvbiBfbyh0LG4pe2Z1bmN0aW9uIGUodCxuKXtvPjA/bjwtVmQrSGQmJihuPS1WZCtIZCk6bj5WZC1IZCYmKG49VmQtSGQpO3ZhciBlPW8vb3AoeW8obiksaSk7cmV0dXJuW2UqYXAoaSp0KSxvLWUqbnAoaSp0KV19dmFyIHI9bnAodCksaT10PT09bj9hcCh0KTppcChyL25wKG4pKS9pcCh5byhuKS95byh0KSksbz1yKm9wKHlvKHQpLGkpL2k7cmV0dXJuIGk/KGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGU9by1uLHI9dXAoaSkqZnAodCp0K2UqZSk7cmV0dXJuW3RwKHQsSmQoZSkpL2kqdXAoZSksMipLZChvcChvL3IsMS9pKSktVmRdfSxlKTp2b31mdW5jdGlvbiBibyh0LG4pe3JldHVyblt0LG5dfWZ1bmN0aW9uIG1vKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPW8tbixyPWkqdDtyZXR1cm5bZSphcChyKSxvLWUqbnAocildfXZhciByPW5wKHQpLGk9dD09PW4/YXAodCk6KHItbnAobikpLyhuLXQpLG89ci9pK3Q7cmV0dXJuIEpkKGkpPEhkP2JvOihlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW8tbjtyZXR1cm5bdHAodCxKZChlKSkvaSp1cChlKSxvLXVwKGkpKmZwKHQqdCtlKmUpXX0sZSl9ZnVuY3Rpb24geG8odCxuKXt2YXIgZT1ucChuKSxyPW5wKHQpKmU7cmV0dXJuW2UqYXAodCkvcixhcChuKS9yXX1mdW5jdGlvbiB3byh0LG4sZSxyKXtyZXR1cm4gMT09PXQmJjE9PT1uJiYwPT09ZSYmMD09PXI/emk6UWkoe3BvaW50OmZ1bmN0aW9uKGksbyl7dGhpcy5zdHJlYW0ucG9pbnQoaSp0K2UsbypuK3IpfX0pfWZ1bmN0aW9uIE1vKHQsbil7dmFyIGU9bipuLHI9ZSplO3JldHVyblt0KiguODcwNy0uMTMxOTc5KmUrcioociooLjAwMzk3MSplLS4wMDE1MjkqciktLjAxMzc5MSkpLG4qKDEuMDA3MjI2K2UqKC4wMTUwODUrciooLjAyODg3NCplLS4wNDQ0NzUtLjAwNTkxNipyKSkpXX1mdW5jdGlvbiBBbyh0LG4pe3JldHVybltucChuKSphcCh0KSxhcChuKV19ZnVuY3Rpb24gVG8odCxuKXt2YXIgZT1ucChuKSxyPTErbnAodCkqZTtyZXR1cm5bZSphcCh0KS9yLGFwKG4pL3JdfWZ1bmN0aW9uIE5vKHQsbil7cmV0dXJuW2lwKGNwKChWZCtuKS8yKSksLXRdfWZ1bmN0aW9uIFNvKHQsbil7cmV0dXJuIHQucGFyZW50PT09bi5wYXJlbnQ/MToyfWZ1bmN0aW9uIEVvKHQsbil7cmV0dXJuIHQrbi54fWZ1bmN0aW9uIGtvKHQsbil7cmV0dXJuIE1hdGgubWF4KHQsbi55KX1mdW5jdGlvbiBDbyh0KXt2YXIgbj0wLGU9dC5jaGlsZHJlbixyPWUmJmUubGVuZ3RoO2lmKHIpZm9yKDstLXI+PTA7KW4rPWVbcl0udmFsdWU7ZWxzZSBuPTE7dC52YWx1ZT1ufWZ1bmN0aW9uIFBvKHQsbil7dmFyIGUscixpLG8sYSx1PW5ldyBEbyh0KSxmPSt0LnZhbHVlJiYodS52YWx1ZT10LnZhbHVlKSxjPVt1XTtmb3IobnVsbD09biYmKG49em8pO2U9Yy5wb3AoKTspaWYoZiYmKGUudmFsdWU9K2UuZGF0YS52YWx1ZSksKGk9bihlLmRhdGEpKSYmKGE9aS5sZW5ndGgpKWZvcihlLmNoaWxkcmVuPW5ldyBBcnJheShhKSxvPWEtMTtvPj0wOy0tbyljLnB1c2gocj1lLmNoaWxkcmVuW29dPW5ldyBEbyhpW29dKSksci5wYXJlbnQ9ZSxyLmRlcHRoPWUuZGVwdGgrMTtyZXR1cm4gdS5lYWNoQmVmb3JlKExvKX1mdW5jdGlvbiB6byh0KXtyZXR1cm4gdC5jaGlsZHJlbn1mdW5jdGlvbiBSbyh0KXt0LmRhdGE9dC5kYXRhLmRhdGF9ZnVuY3Rpb24gTG8odCl7dmFyIG49MDtkb3t0LmhlaWdodD1ufXdoaWxlKCh0PXQucGFyZW50KSYmdC5oZWlnaHQ8KytuKX1mdW5jdGlvbiBEbyh0KXt0aGlzLmRhdGE9dCx0aGlzLmRlcHRoPXRoaXMuaGVpZ2h0PTAsdGhpcy5wYXJlbnQ9bnVsbH1mdW5jdGlvbiBVbyh0KXtmb3IodmFyIG4sZSxyPTAsaT0odD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPXQubGVuZ3RoO3I7KWU9TWF0aC5yYW5kb20oKSpyLS18MCxuPXRbcl0sdFtyXT10W2VdLHRbZV09bjtyZXR1cm4gdH0odnYuY2FsbCh0KSkpLmxlbmd0aCxvPVtdO3I8aTspbj10W3JdLGUmJk9vKGUsbik/KytyOihlPWZ1bmN0aW9uKHQpe3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm57eDp0LngseTp0Lnkscjp0LnJ9fSh0WzBdKTtjYXNlIDI6cmV0dXJuIEJvKHRbMF0sdFsxXSk7Y2FzZSAzOnJldHVybiBGbyh0WzBdLHRbMV0sdFsyXSl9fShvPWZ1bmN0aW9uKHQsbil7dmFyIGUscjtpZihZbyhuLHQpKXJldHVybltuXTtmb3IoZT0wO2U8dC5sZW5ndGg7KytlKWlmKHFvKG4sdFtlXSkmJllvKEJvKHRbZV0sbiksdCkpcmV0dXJuW3RbZV0sbl07Zm9yKGU9MDtlPHQubGVuZ3RoLTE7KytlKWZvcihyPWUrMTtyPHQubGVuZ3RoOysrcilpZihxbyhCbyh0W2VdLHRbcl0pLG4pJiZxbyhCbyh0W2VdLG4pLHRbcl0pJiZxbyhCbyh0W3JdLG4pLHRbZV0pJiZZbyhGbyh0W2VdLHRbcl0sbiksdCkpcmV0dXJuW3RbZV0sdFtyXSxuXTt0aHJvdyBuZXcgRXJyb3J9KG8sbikpLHI9MCk7cmV0dXJuIGV9ZnVuY3Rpb24gcW8odCxuKXt2YXIgZT10LnItbi5yLHI9bi54LXQueCxpPW4ueS10Lnk7cmV0dXJuIGU8MHx8ZSplPHIqcitpKml9ZnVuY3Rpb24gT28odCxuKXt2YXIgZT10LnItbi5yKzFlLTYscj1uLngtdC54LGk9bi55LXQueTtyZXR1cm4gZT4wJiZlKmU+cipyK2kqaX1mdW5jdGlvbiBZbyh0LG4pe2Zvcih2YXIgZT0wO2U8bi5sZW5ndGg7KytlKWlmKCFPbyh0LG5bZV0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEJvKHQsbil7dmFyIGU9dC54LHI9dC55LGk9dC5yLG89bi54LGE9bi55LHU9bi5yLGY9by1lLGM9YS1yLHM9dS1pLGw9TWF0aC5zcXJ0KGYqZitjKmMpO3JldHVybnt4OihlK28rZi9sKnMpLzIseToocithK2MvbCpzKS8yLHI6KGwraSt1KS8yfX1mdW5jdGlvbiBGbyh0LG4sZSl7dmFyIHI9dC54LGk9dC55LG89dC5yLGE9bi54LHU9bi55LGY9bi5yLGM9ZS54LHM9ZS55LGw9ZS5yLGg9ci1hLGQ9ci1jLHA9aS11LHY9aS1zLGc9Zi1vLHk9bC1vLF89cipyK2kqaS1vKm8sYj1fLWEqYS11KnUrZipmLG09Xy1jKmMtcypzK2wqbCx4PWQqcC1oKnYsdz0ocCptLXYqYikvKDIqeCktcixNPSh2KmctcCp5KS94LEE9KGQqYi1oKm0pLygyKngpLWksVD0oaCp5LWQqZykveCxOPU0qTStUKlQtMSxTPTIqKG8rdypNK0EqVCksRT13KncrQSpBLW8qbyxrPS0oTj8oUytNYXRoLnNxcnQoUypTLTQqTipFKSkvKDIqTik6RS9TKTtyZXR1cm57eDpyK3crTSprLHk6aStBK1QqayxyOmt9fWZ1bmN0aW9uIElvKHQsbixlKXt2YXIgcixpLG8sYSx1PXQueC1uLngsZj10Lnktbi55LGM9dSp1K2YqZjtjPyhpPW4ucitlLnIsaSo9aSxhPXQucitlLnIsaT4oYSo9YSk/KHI9KGMrYS1pKS8oMipjKSxvPU1hdGguc3FydChNYXRoLm1heCgwLGEvYy1yKnIpKSxlLng9dC54LXIqdS1vKmYsZS55PXQueS1yKmYrbyp1KToocj0oYytpLWEpLygyKmMpLG89TWF0aC5zcXJ0KE1hdGgubWF4KDAsaS9jLXIqcikpLGUueD1uLngrcip1LW8qZixlLnk9bi55K3IqZitvKnUpKTooZS54PW4ueCtlLnIsZS55PW4ueSl9ZnVuY3Rpb24gam8odCxuKXt2YXIgZT10LnIrbi5yLTFlLTYscj1uLngtdC54LGk9bi55LXQueTtyZXR1cm4gZT4wJiZlKmU+cipyK2kqaX1mdW5jdGlvbiBIbyh0KXt2YXIgbj10Ll8sZT10Lm5leHQuXyxyPW4ucitlLnIsaT0obi54KmUucitlLngqbi5yKS9yLG89KG4ueSplLnIrZS55Km4ucikvcjtyZXR1cm4gaSppK28qb31mdW5jdGlvbiBYbyh0KXt0aGlzLl89dCx0aGlzLm5leHQ9bnVsbCx0aGlzLnByZXZpb3VzPW51bGx9ZnVuY3Rpb24gR28odCl7aWYoIShpPXQubGVuZ3RoKSlyZXR1cm4gMDt2YXIgbixlLHIsaSxvLGEsdSxmLGMscyxsO2lmKG49dFswXSxuLng9MCxuLnk9MCwhKGk+MSkpcmV0dXJuIG4ucjtpZihlPXRbMV0sbi54PS1lLnIsZS54PW4ucixlLnk9MCwhKGk+MikpcmV0dXJuIG4ucitlLnI7SW8oZSxuLHI9dFsyXSksbj1uZXcgWG8obiksZT1uZXcgWG8oZSkscj1uZXcgWG8ociksbi5uZXh0PXIucHJldmlvdXM9ZSxlLm5leHQ9bi5wcmV2aW91cz1yLHIubmV4dD1lLnByZXZpb3VzPW47dDpmb3IodT0zO3U8aTsrK3Upe0lvKG4uXyxlLl8scj10W3VdKSxyPW5ldyBYbyhyKSxmPWUubmV4dCxjPW4ucHJldmlvdXMscz1lLl8ucixsPW4uXy5yO2Rve2lmKHM8PWwpe2lmKGpvKGYuXyxyLl8pKXtlPWYsbi5uZXh0PWUsZS5wcmV2aW91cz1uLC0tdTtjb250aW51ZSB0fXMrPWYuXy5yLGY9Zi5uZXh0fWVsc2V7aWYoam8oYy5fLHIuXykpeyhuPWMpLm5leHQ9ZSxlLnByZXZpb3VzPW4sLS11O2NvbnRpbnVlIHR9bCs9Yy5fLnIsYz1jLnByZXZpb3VzfX13aGlsZShmIT09Yy5uZXh0KTtmb3Ioci5wcmV2aW91cz1uLHIubmV4dD1lLG4ubmV4dD1lLnByZXZpb3VzPWU9cixvPUhvKG4pOyhyPXIubmV4dCkhPT1lOykoYT1IbyhyKSk8byYmKG49cixvPWEpO2U9bi5uZXh0fWZvcihuPVtlLl9dLHI9ZTsocj1yLm5leHQpIT09ZTspbi5wdXNoKHIuXyk7Zm9yKHI9VW8obiksdT0wO3U8aTsrK3Upbj10W3VdLG4ueC09ci54LG4ueS09ci55O3JldHVybiByLnJ9ZnVuY3Rpb24gVm8odCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHR9ZnVuY3Rpb24gJG8oKXtyZXR1cm4gMH1mdW5jdGlvbiBXbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gWm8odCl7cmV0dXJuIE1hdGguc3FydCh0LnZhbHVlKX1mdW5jdGlvbiBRbyh0KXtyZXR1cm4gZnVuY3Rpb24obil7bi5jaGlsZHJlbnx8KG4ucj1NYXRoLm1heCgwLCt0KG4pfHwwKSl9fWZ1bmN0aW9uIEpvKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKHI9ZS5jaGlsZHJlbil7dmFyIHIsaSxvLGE9ci5sZW5ndGgsdT10KGUpKm58fDA7aWYodSlmb3IoaT0wO2k8YTsrK2kpcltpXS5yKz11O2lmKG89R28ociksdSlmb3IoaT0wO2k8YTsrK2kpcltpXS5yLT11O2Uucj1vK3V9fX1mdW5jdGlvbiBLbyh0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9bi5wYXJlbnQ7bi5yKj10LGUmJihuLng9ZS54K3Qqbi54LG4ueT1lLnkrdCpuLnkpfX1mdW5jdGlvbiB0YSh0KXt0LngwPU1hdGgucm91bmQodC54MCksdC55MD1NYXRoLnJvdW5kKHQueTApLHQueDE9TWF0aC5yb3VuZCh0LngxKSx0LnkxPU1hdGgucm91bmQodC55MSl9ZnVuY3Rpb24gbmEodCxuLGUscixpKXtmb3IodmFyIG8sYT10LmNoaWxkcmVuLHU9LTEsZj1hLmxlbmd0aCxjPXQudmFsdWUmJihyLW4pL3QudmFsdWU7Kyt1PGY7KShvPWFbdV0pLnkwPWUsby55MT1pLG8ueDA9bixvLngxPW4rPW8udmFsdWUqY31mdW5jdGlvbiBlYSh0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiByYSh0KXtyZXR1cm4gdC5wYXJlbnRJZH1mdW5jdGlvbiBpYSh0LG4pe3JldHVybiB0LnBhcmVudD09PW4ucGFyZW50PzE6Mn1mdW5jdGlvbiBvYSh0KXt2YXIgbj10LmNoaWxkcmVuO3JldHVybiBuP25bMF06dC50fWZ1bmN0aW9uIGFhKHQpe3ZhciBuPXQuY2hpbGRyZW47cmV0dXJuIG4/bltuLmxlbmd0aC0xXTp0LnR9ZnVuY3Rpb24gdWEodCxuLGUpe3ZhciByPWUvKG4uaS10LmkpO24uYy09cixuLnMrPWUsdC5jKz1yLG4ueis9ZSxuLm0rPWV9ZnVuY3Rpb24gZmEodCxuLGUpe3JldHVybiB0LmEucGFyZW50PT09bi5wYXJlbnQ/dC5hOmV9ZnVuY3Rpb24gY2EodCxuKXt0aGlzLl89dCx0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLkE9bnVsbCx0aGlzLmE9dGhpcyx0aGlzLno9MCx0aGlzLm09MCx0aGlzLmM9MCx0aGlzLnM9MCx0aGlzLnQ9bnVsbCx0aGlzLmk9bn1mdW5jdGlvbiBzYSh0LG4sZSxyLGkpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4sdT0tMSxmPWEubGVuZ3RoLGM9dC52YWx1ZSYmKGktZSkvdC52YWx1ZTsrK3U8ZjspKG89YVt1XSkueDA9bixvLngxPXIsby55MD1lLG8ueTE9ZSs9by52YWx1ZSpjfWZ1bmN0aW9uIGxhKHQsbixlLHIsaSxvKXtmb3IodmFyIGEsdSxmLGMscyxsLGgsZCxwLHYsZyx5PVtdLF89bi5jaGlsZHJlbixiPTAsbT0wLHg9Xy5sZW5ndGgsdz1uLnZhbHVlO2I8eDspe2Y9aS1lLGM9by1yO2Rve3M9X1ttKytdLnZhbHVlfXdoaWxlKCFzJiZtPHgpO2ZvcihsPWg9cyxnPXMqcyoodj1NYXRoLm1heChjL2YsZi9jKS8odyp0KSkscD1NYXRoLm1heChoL2csZy9sKTttPHg7KyttKXtpZihzKz11PV9bbV0udmFsdWUsdTxsJiYobD11KSx1PmgmJihoPXUpLGc9cypzKnYsKGQ9TWF0aC5tYXgoaC9nLGcvbCkpPnApe3MtPXU7YnJlYWt9cD1kfXkucHVzaChhPXt2YWx1ZTpzLGRpY2U6ZjxjLGNoaWxkcmVuOl8uc2xpY2UoYixtKX0pLGEuZGljZT9uYShhLGUscixpLHc/cis9YypzL3c6byk6c2EoYSxlLHIsdz9lKz1mKnMvdzppLG8pLHctPXMsYj1tfXJldHVybiB5fWZ1bmN0aW9uIGhhKHQsbixlKXtyZXR1cm4oblswXS10WzBdKSooZVsxXS10WzFdKS0oblsxXS10WzFdKSooZVswXS10WzBdKX1mdW5jdGlvbiBkYSh0LG4pe3JldHVybiB0WzBdLW5bMF18fHRbMV0tblsxXX1mdW5jdGlvbiBwYSh0KXtmb3IodmFyIG49dC5sZW5ndGgsZT1bMCwxXSxyPTIsaT0yO2k8bjsrK2kpe2Zvcig7cj4xJiZoYSh0W2Vbci0yXV0sdFtlW3ItMV1dLHRbaV0pPD0wOyktLXI7ZVtyKytdPWl9cmV0dXJuIGUuc2xpY2UoMCxyKX1mdW5jdGlvbiB2YSgpe3JldHVybiBNYXRoLnJhbmRvbSgpfWZ1bmN0aW9uIGdhKHQpe2Z1bmN0aW9uIG4obil7dmFyIG89bitcIlwiLGE9ZS5nZXQobyk7aWYoIWEpe2lmKGkhPT1QdilyZXR1cm4gaTtlLnNldChvLGE9ci5wdXNoKG4pKX1yZXR1cm4gdFsoYS0xKSV0Lmxlbmd0aF19dmFyIGU9aGUoKSxyPVtdLGk9UHY7cmV0dXJuIHQ9bnVsbD09dD9bXTpDdi5jYWxsKHQpLG4uZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByLnNsaWNlKCk7cj1bXSxlPWhlKCk7Zm9yKHZhciBpLG8sYT0tMSx1PXQubGVuZ3RoOysrYTx1OyllLmhhcyhvPShpPXRbYV0pK1wiXCIpfHxlLnNldChvLHIucHVzaChpKSk7cmV0dXJuIG59LG4ucmFuZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9Q3YuY2FsbChlKSxuKTp0LnNsaWNlKCl9LG4udW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LG4pOml9LG4uY29weT1mdW5jdGlvbigpe3JldHVybiBnYSgpLmRvbWFpbihyKS5yYW5nZSh0KS51bmtub3duKGkpfSxufWZ1bmN0aW9uIHlhKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PWkoKS5sZW5ndGgscj1hWzFdPGFbMF0saD1hW3ItMF0sZD1hWzEtcl07bj0oZC1oKS9NYXRoLm1heCgxLHQtZisyKmMpLHUmJihuPU1hdGguZmxvb3IobikpLGgrPShkLWgtbioodC1mKSkqbCxlPW4qKDEtZiksdSYmKGg9TWF0aC5yb3VuZChoKSxlPU1hdGgucm91bmQoZSkpO3ZhciBwPXModCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBoK24qdH0pO3JldHVybiBvKHI/cC5yZXZlcnNlKCk6cCl9dmFyIG4sZSxyPWdhKCkudW5rbm93bih2b2lkIDApLGk9ci5kb21haW4sbz1yLnJhbmdlLGE9WzAsMV0sdT0hMSxmPTAsYz0wLGw9LjU7cmV0dXJuIGRlbGV0ZSByLnVua25vd24sci5kb21haW49ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkobiksdCgpKTppKCl9LHIucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9WytuWzBdLCtuWzFdXSx0KCkpOmEuc2xpY2UoKX0sci5yYW5nZVJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhPVsrblswXSwrblsxXV0sdT0hMCx0KCl9LHIuYmFuZHdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LHIuc3RlcD1mdW5jdGlvbigpe3JldHVybiBufSxyLnJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSEhbix0KCkpOnV9LHIucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1jPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpmfSxyLnBhZGRpbmdJbm5lcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1NYXRoLm1heCgwLE1hdGgubWluKDEsbikpLHQoKSk6Zn0sci5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmN9LHIuYWxpZ249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmx9LHIuY29weT1mdW5jdGlvbigpe3JldHVybiB5YSgpLmRvbWFpbihpKCkpLnJhbmdlKGEpLnJvdW5kKHUpLnBhZGRpbmdJbm5lcihmKS5wYWRkaW5nT3V0ZXIoYykuYWxpZ24obCl9LHQoKX1mdW5jdGlvbiBfYSh0KXt2YXIgbj10LmNvcHk7cmV0dXJuIHQucGFkZGluZz10LnBhZGRpbmdPdXRlcixkZWxldGUgdC5wYWRkaW5nSW5uZXIsZGVsZXRlIHQucGFkZGluZ091dGVyLHQuY29weT1mdW5jdGlvbigpe3JldHVybiBfYShuKCkpfSx0fWZ1bmN0aW9uIGJhKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBtYSh0KXtyZXR1cm4rdH1mdW5jdGlvbiB4YSh0LG4pe3JldHVybihuLT10PSt0KT9mdW5jdGlvbihlKXtyZXR1cm4oZS10KS9ufTpiYShuKX1mdW5jdGlvbiB3YSh0LG4sZSxyKXt2YXIgaT10WzBdLG89dFsxXSxhPW5bMF0sdT1uWzFdO3JldHVybiBvPGk/KGk9ZShvLGkpLGE9cih1LGEpKTooaT1lKGksbyksYT1yKGEsdSkpLGZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX1mdW5jdGlvbiBNYSh0LG4sZSxyKXt2YXIgaT1NYXRoLm1pbih0Lmxlbmd0aCxuLmxlbmd0aCktMSxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShpKSx1PS0xO2Zvcih0W2ldPHRbMF0mJih0PXQuc2xpY2UoKS5yZXZlcnNlKCksbj1uLnNsaWNlKCkucmV2ZXJzZSgpKTsrK3U8aTspb1t1XT1lKHRbdV0sdFt1KzFdKSxhW3VdPXIoblt1XSxuW3UrMV0pO3JldHVybiBmdW5jdGlvbihuKXt2YXIgZT1LYyh0LG4sMSxpKS0xO3JldHVybiBhW2VdKG9bZV0obikpfX1mdW5jdGlvbiBBYSh0LG4pe3JldHVybiBuLmRvbWFpbih0LmRvbWFpbigpKS5yYW5nZSh0LnJhbmdlKCkpLmludGVycG9sYXRlKHQuaW50ZXJwb2xhdGUoKSkuY2xhbXAodC5jbGFtcCgpKX1mdW5jdGlvbiBUYSh0LG4pe2Z1bmN0aW9uIGUoKXtyZXR1cm4gaT1NYXRoLm1pbih1Lmxlbmd0aCxmLmxlbmd0aCk+Mj9NYTp3YSxvPWE9bnVsbCxyfWZ1bmN0aW9uIHIobil7cmV0dXJuKG98fChvPWkodSxmLHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dChuPStuLGU9K2UpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdDw9bj8wOnQ+PWU/MTpyKHQpfX19KHQpOnQsYykpKSgrbil9dmFyIGksbyxhLHU9enYsZj16dixjPWRuLHM9ITE7cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybihhfHwoYT1pKGYsdSx4YSxzP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQobj0rbixlPStlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8PTA/bjp0Pj0xP2U6cih0KX19fShuKTpuKSkpKCt0KX0sci5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9a3YuY2FsbCh0LG1hKSxlKCkpOnUuc2xpY2UoKX0sci5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1Ddi5jYWxsKHQpLGUoKSk6Zi5zbGljZSgpfSxyLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGY9Q3YuY2FsbCh0KSxjPXBuLGUoKX0sci5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0hIXQsZSgpKTpzfSxyLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQsZSgpKTpjfSxlKCl9ZnVuY3Rpb24gTmEobil7dmFyIGU9bi5kb21haW47cmV0dXJuIG4udGlja3M9ZnVuY3Rpb24odCl7dmFyIG49ZSgpO3JldHVybiBsKG5bMF0sbltuLmxlbmd0aC0xXSxudWxsPT10PzEwOnQpfSxuLnRpY2tGb3JtYXQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gZnVuY3Rpb24obixlLHIpe3ZhciBpLG89blswXSxhPW5bbi5sZW5ndGgtMV0sdT1kKG8sYSxudWxsPT1lPzEwOmUpO3N3aXRjaCgocj10cihudWxsPT1yP1wiLGZcIjpyKSkudHlwZSl7Y2FzZVwic1wiOnZhciBmPU1hdGgubWF4KE1hdGguYWJzKG8pLE1hdGguYWJzKGEpKTtyZXR1cm4gbnVsbCE9ci5wcmVjaXNpb258fGlzTmFOKGk9dXIodSxmKSl8fChyLnByZWNpc2lvbj1pKSx0LmZvcm1hdFByZWZpeChyLGYpO2Nhc2VcIlwiOmNhc2VcImVcIjpjYXNlXCJnXCI6Y2FzZVwicFwiOmNhc2VcInJcIjpudWxsIT1yLnByZWNpc2lvbnx8aXNOYU4oaT1mcih1LE1hdGgubWF4KE1hdGguYWJzKG8pLE1hdGguYWJzKGEpKSkpfHwoci5wcmVjaXNpb249aS0oXCJlXCI9PT1yLnR5cGUpKTticmVhaztjYXNlXCJmXCI6Y2FzZVwiJVwiOm51bGwhPXIucHJlY2lzaW9ufHxpc05hTihpPWFyKHUpKXx8KHIucHJlY2lzaW9uPWktMiooXCIlXCI9PT1yLnR5cGUpKX1yZXR1cm4gdC5mb3JtYXQocil9KGUoKSxuLHIpfSxuLm5pY2U9ZnVuY3Rpb24odCl7bnVsbD09dCYmKHQ9MTApO3ZhciByLGk9ZSgpLG89MCxhPWkubGVuZ3RoLTEsdT1pW29dLGY9aVthXTtyZXR1cm4gZjx1JiYocj11LHU9ZixmPXIscj1vLG89YSxhPXIpLChyPWgodSxmLHQpKT4wP3I9aCh1PU1hdGguZmxvb3IodS9yKSpyLGY9TWF0aC5jZWlsKGYvcikqcix0KTpyPDAmJihyPWgodT1NYXRoLmNlaWwodSpyKS9yLGY9TWF0aC5mbG9vcihmKnIpL3IsdCkpLHI+MD8oaVtvXT1NYXRoLmZsb29yKHUvcikqcixpW2FdPU1hdGguY2VpbChmL3IpKnIsZShpKSk6cjwwJiYoaVtvXT1NYXRoLmNlaWwodSpyKS9yLGlbYV09TWF0aC5mbG9vcihmKnIpL3IsZShpKSksbn0sbn1mdW5jdGlvbiBTYSgpe3ZhciB0PVRhKHhhLHNuKTtyZXR1cm4gdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKHQsU2EoKSl9LE5hKHQpfWZ1bmN0aW9uIEVhKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4rdH12YXIgbj1bMCwxXTtyZXR1cm4gdC5pbnZlcnQ9dCx0LmRvbWFpbj10LnJhbmdlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWt2LmNhbGwoZSxtYSksdCk6bi5zbGljZSgpfSx0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gRWEoKS5kb21haW4obil9LE5hKHQpfWZ1bmN0aW9uIGthKHQsbil7dmFyIGUscj0wLGk9KHQ9dC5zbGljZSgpKS5sZW5ndGgtMSxvPXRbcl0sYT10W2ldO3JldHVybiBhPG8mJihlPXIscj1pLGk9ZSxlPW8sbz1hLGE9ZSksdFtyXT1uLmZsb29yKG8pLHRbaV09bi5jZWlsKGEpLHR9ZnVuY3Rpb24gQ2EodCxuKXtyZXR1cm4obj1NYXRoLmxvZyhuL3QpKT9mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZS90KS9ufTpiYShuKX1mdW5jdGlvbiBQYSh0LG4pe3JldHVybiB0PDA/ZnVuY3Rpb24oZSl7cmV0dXJuLU1hdGgucG93KC1uLGUpKk1hdGgucG93KC10LDEtZSl9OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnBvdyhuLGUpKk1hdGgucG93KHQsMS1lKX19ZnVuY3Rpb24gemEodCl7cmV0dXJuIGlzRmluaXRlKHQpPysoXCIxZVwiK3QpOnQ8MD8wOnR9ZnVuY3Rpb24gUmEodCl7cmV0dXJuIDEwPT09dD96YTp0PT09TWF0aC5FP01hdGguZXhwOmZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnBvdyh0LG4pfX1mdW5jdGlvbiBMYSh0KXtyZXR1cm4gdD09PU1hdGguRT9NYXRoLmxvZzoxMD09PXQmJk1hdGgubG9nMTB8fDI9PT10JiZNYXRoLmxvZzJ8fCh0PU1hdGgubG9nKHQpLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLmxvZyhuKS90fSl9ZnVuY3Rpb24gRGEodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybi10KC1uKX19ZnVuY3Rpb24gVWEoKXtmdW5jdGlvbiBuKCl7cmV0dXJuIG89TGEoaSksYT1SYShpKSxyKClbMF08MCYmKG89RGEobyksYT1EYShhKSksZX12YXIgZT1UYShDYSxQYSkuZG9tYWluKFsxLDEwXSkscj1lLmRvbWFpbixpPTEwLG89TGEoMTApLGE9UmEoMTApO3JldHVybiBlLmJhc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3QsbigpKTppfSxlLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocih0KSxuKCkpOnIoKX0sZS50aWNrcz1mdW5jdGlvbih0KXt2YXIgbixlPXIoKSx1PWVbMF0sZj1lW2UubGVuZ3RoLTFdOyhuPWY8dSkmJihkPXUsdT1mLGY9ZCk7dmFyIGMscyxoLGQ9byh1KSxwPW8oZiksdj1udWxsPT10PzEwOit0LGc9W107aWYoIShpJTEpJiZwLWQ8dil7aWYoZD1NYXRoLnJvdW5kKGQpLTEscD1NYXRoLnJvdW5kKHApKzEsdT4wKXtmb3IoO2Q8cDsrK2QpZm9yKHM9MSxjPWEoZCk7czxpOysrcylpZighKChoPWMqcyk8dSkpe2lmKGg+ZilicmVhaztnLnB1c2goaCl9fWVsc2UgZm9yKDtkPHA7KytkKWZvcihzPWktMSxjPWEoZCk7cz49MTstLXMpaWYoISgoaD1jKnMpPHUpKXtpZihoPmYpYnJlYWs7Zy5wdXNoKGgpfX1lbHNlIGc9bChkLHAsTWF0aC5taW4ocC1kLHYpKS5tYXAoYSk7cmV0dXJuIG4/Zy5yZXZlcnNlKCk6Z30sZS50aWNrRm9ybWF0PWZ1bmN0aW9uKG4scil7aWYobnVsbD09ciYmKHI9MTA9PT1pP1wiLjBlXCI6XCIsXCIpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJihyPXQuZm9ybWF0KHIpKSxuPT09MS8wKXJldHVybiByO251bGw9PW4mJihuPTEwKTt2YXIgdT1NYXRoLm1heCgxLGkqbi9lLnRpY2tzKCkubGVuZ3RoKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dC9hKE1hdGgucm91bmQobyh0KSkpO3JldHVybiBuKmk8aS0uNSYmKG4qPWkpLG48PXU/cih0KTpcIlwifX0sZS5uaWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHIoa2EocigpLHtmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4gYShNYXRoLmZsb29yKG8odCkpKX0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4gYShNYXRoLmNlaWwobyh0KSkpfX0pKX0sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKGUsVWEoKS5iYXNlKGkpKX0sZX1mdW5jdGlvbiBxYSh0LG4pe3JldHVybiB0PDA/LU1hdGgucG93KC10LG4pOk1hdGgucG93KHQsbil9ZnVuY3Rpb24gT2EoKXt2YXIgdD0xLG49VGEoZnVuY3Rpb24obixlKXtyZXR1cm4oZT1xYShlLHQpLShuPXFhKG4sdCkpKT9mdW5jdGlvbihyKXtyZXR1cm4ocWEocix0KS1uKS9lfTpiYShlKX0sZnVuY3Rpb24obixlKXtyZXR1cm4gZT1xYShlLHQpLShuPXFhKG4sdCkpLGZ1bmN0aW9uKHIpe3JldHVybiBxYShuK2UqciwxL3QpfX0pLGU9bi5kb21haW47cmV0dXJuIG4uZXhwb25lbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K24sZShlKCkpKTp0fSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQWEobixPYSgpLmV4cG9uZW50KHQpKX0sTmEobil9ZnVuY3Rpb24gWWEoKXtmdW5jdGlvbiB0KCl7dmFyIHQ9MCxuPU1hdGgubWF4KDEsaS5sZW5ndGgpO2ZvcihvPW5ldyBBcnJheShuLTEpOysrdDxuOylvW3QtMV09dihyLHQvbik7cmV0dXJuIGV9ZnVuY3Rpb24gZSh0KXtpZighaXNOYU4odD0rdCkpcmV0dXJuIGlbS2Mobyx0KV19dmFyIHI9W10saT1bXSxvPVtdO3JldHVybiBlLmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgbj1pLmluZGV4T2YodCk7cmV0dXJuIG48MD9bTmFOLE5hTl06W24+MD9vW24tMV06clswXSxuPG8ubGVuZ3RoP29bbl06cltyLmxlbmd0aC0xXV19LGUuZG9tYWluPWZ1bmN0aW9uKGUpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByLnNsaWNlKCk7cj1bXTtmb3IodmFyIGksbz0wLGE9ZS5sZW5ndGg7bzxhOysrbyludWxsPT0oaT1lW29dKXx8aXNOYU4oaT0raSl8fHIucHVzaChpKTtyZXR1cm4gci5zb3J0KG4pLHQoKX0sZS5yYW5nZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1Ddi5jYWxsKG4pLHQoKSk6aS5zbGljZSgpfSxlLnF1YW50aWxlcz1mdW5jdGlvbigpe3JldHVybiBvLnNsaWNlKCl9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBZYSgpLmRvbWFpbihyKS5yYW5nZShpKX0sZX1mdW5jdGlvbiBCYSgpe2Z1bmN0aW9uIHQodCl7aWYodDw9dClyZXR1cm4gYVtLYyhvLHQsMCxpKV19ZnVuY3Rpb24gbigpe3ZhciBuPS0xO2ZvcihvPW5ldyBBcnJheShpKTsrK248aTspb1tuXT0oKG4rMSkqci0obi1pKSplKS8oaSsxKTtyZXR1cm4gdH12YXIgZT0wLHI9MSxpPTEsbz1bLjVdLGE9WzAsMV07cmV0dXJuIHQuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0sbigpKTpbZSxyXX0sdC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0oYT1Ddi5jYWxsKHQpKS5sZW5ndGgtMSxuKCkpOmEuc2xpY2UoKX0sdC5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIG49YS5pbmRleE9mKHQpO3JldHVybiBuPDA/W05hTixOYU5dOm48MT9bZSxvWzBdXTpuPj1pP1tvW2ktMV0scl06W29bbi0xXSxvW25dXX0sdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEJhKCkuZG9tYWluKFtlLHJdKS5yYW5nZShhKX0sTmEodCl9ZnVuY3Rpb24gRmEoKXtmdW5jdGlvbiB0KHQpe2lmKHQ8PXQpcmV0dXJuIGVbS2Mobix0LDAscildfXZhciBuPVsuNV0sZT1bMCwxXSxyPTE7cmV0dXJuIHQuZG9tYWluPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPUN2LmNhbGwoaSkscj1NYXRoLm1pbihuLmxlbmd0aCxlLmxlbmd0aC0xKSx0KTpuLnNsaWNlKCl9LHQucmFuZ2U9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Q3YuY2FsbChpKSxyPU1hdGgubWluKG4ubGVuZ3RoLGUubGVuZ3RoLTEpLHQpOmUuc2xpY2UoKX0sdC5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIHI9ZS5pbmRleE9mKHQpO3JldHVybltuW3ItMV0sbltyXV19LHQuY29weT1mdW5jdGlvbigpe3JldHVybiBGYSgpLmRvbWFpbihuKS5yYW5nZShlKX0sdH1mdW5jdGlvbiBJYSh0LG4sZSxyKXtmdW5jdGlvbiBpKG4pe3JldHVybiB0KG49bmV3IERhdGUoK24pKSxufXJldHVybiBpLmZsb29yPWksaS5jZWlsPWZ1bmN0aW9uKGUpe3JldHVybiB0KGU9bmV3IERhdGUoZS0xKSksbihlLDEpLHQoZSksZX0saS5yb3VuZD1mdW5jdGlvbih0KXt2YXIgbj1pKHQpLGU9aS5jZWlsKHQpO3JldHVybiB0LW48ZS10P246ZX0saS5vZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0PW5ldyBEYXRlKCt0KSxudWxsPT1lPzE6TWF0aC5mbG9vcihlKSksdH0saS5yYW5nZT1mdW5jdGlvbihlLHIsbyl7dmFyIGEsdT1bXTtpZihlPWkuY2VpbChlKSxvPW51bGw9PW8/MTpNYXRoLmZsb29yKG8pLCEoZTxyJiZvPjApKXJldHVybiB1O2Rve3UucHVzaChhPW5ldyBEYXRlKCtlKSksbihlLG8pLHQoZSl9d2hpbGUoYTxlJiZlPHIpO3JldHVybiB1fSxpLmZpbHRlcj1mdW5jdGlvbihlKXtyZXR1cm4gSWEoZnVuY3Rpb24obil7aWYobj49bilmb3IoO3QobiksIWUobik7KW4uc2V0VGltZShuLTEpfSxmdW5jdGlvbih0LHIpe2lmKHQ+PXQpaWYocjwwKWZvcig7KytyPD0wOylmb3IoO24odCwtMSksIWUodCk7KTtlbHNlIGZvcig7LS1yPj0wOylmb3IoO24odCwxKSwhZSh0KTspO30pfSxlJiYoaS5jb3VudD1mdW5jdGlvbihuLHIpe3JldHVybiBSdi5zZXRUaW1lKCtuKSxMdi5zZXRUaW1lKCtyKSx0KFJ2KSx0KEx2KSxNYXRoLmZsb29yKGUoUnYsTHYpKX0saS5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2kuZmlsdGVyKHI/ZnVuY3Rpb24obil7cmV0dXJuIHIobikldD09MH06ZnVuY3Rpb24obil7cmV0dXJuIGkuY291bnQoMCxuKSV0PT0wfSk6aTpudWxsfSksaX1mdW5jdGlvbiBqYSh0KXtyZXR1cm4gSWEoZnVuY3Rpb24obil7bi5zZXREYXRlKG4uZ2V0RGF0ZSgpLShuLmdldERheSgpKzctdCklNyksbi5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldERhdGUodC5nZXREYXRlKCkrNypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10LShuLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSpxdikvT3Z9KX1mdW5jdGlvbiBIYSh0KXtyZXR1cm4gSWEoZnVuY3Rpb24obil7bi5zZXRVVENEYXRlKG4uZ2V0VVRDRGF0ZSgpLShuLmdldFVUQ0RheSgpKzctdCklNyksbi5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9Pdn0pfWZ1bmN0aW9uIFhhKHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIG49bmV3IERhdGUoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpO3JldHVybiBuLnNldEZ1bGxZZWFyKHQueSksbn1yZXR1cm4gbmV3IERhdGUodC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKX1mdW5jdGlvbiBHYSh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBuPW5ldyBEYXRlKERhdGUuVVRDKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSk7cmV0dXJuIG4uc2V0VVRDRnVsbFllYXIodC55KSxufXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKX1mdW5jdGlvbiBWYSh0KXtyZXR1cm57eTp0LG06MCxkOjEsSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiAkYSh0KXtmdW5jdGlvbiBuKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByLGksbyxhPVtdLHU9LTEsZj0wLGM9dC5sZW5ndGg7Zm9yKGUgaW5zdGFuY2VvZiBEYXRlfHwoZT1uZXcgRGF0ZSgrZSkpOysrdTxjOykzNz09PXQuY2hhckNvZGVBdCh1KSYmKGEucHVzaCh0LnNsaWNlKGYsdSkpLG51bGwhPShpPVVnW3I9dC5jaGFyQXQoKyt1KV0pP3I9dC5jaGFyQXQoKyt1KTppPVwiZVwiPT09cj9cIiBcIjpcIjBcIiwobz1uW3JdKSYmKHI9byhlLGkpKSxhLnB1c2gociksZj11KzEpO3JldHVybiBhLnB1c2godC5zbGljZShmLHUpKSxhLmpvaW4oXCJcIil9fWZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGksbyxhPVZhKDE5MDApO2lmKHIoYSx0LGUrPVwiXCIsMCkhPWUubGVuZ3RoKXJldHVybiBudWxsO2lmKFwiUVwiaW4gYSlyZXR1cm4gbmV3IERhdGUoYS5RKTtpZihcInBcImluIGEmJihhLkg9YS5IJTEyKzEyKmEucCksXCJWXCJpbiBhKXtpZihhLlY8MXx8YS5WPjUzKXJldHVybiBudWxsO1wid1wiaW4gYXx8KGEudz0xKSxcIlpcImluIGE/KGk9KG89KGk9R2EoVmEoYS55KSkpLmdldFVUQ0RheSgpKT40fHwwPT09bz9fZy5jZWlsKGkpOl9nKGkpLGk9dmcub2Zmc2V0KGksNyooYS5WLTEpKSxhLnk9aS5nZXRVVENGdWxsWWVhcigpLGEubT1pLmdldFVUQ01vbnRoKCksYS5kPWkuZ2V0VVRDRGF0ZSgpKyhhLncrNiklNyk6KGk9KG89KGk9bihWYShhLnkpKSkuZ2V0RGF5KCkpPjR8fDA9PT1vPyR2LmNlaWwoaSk6JHYoaSksaT1Ydi5vZmZzZXQoaSw3KihhLlYtMSkpLGEueT1pLmdldEZ1bGxZZWFyKCksYS5tPWkuZ2V0TW9udGgoKSxhLmQ9aS5nZXREYXRlKCkrKGEudys2KSU3KX1lbHNlKFwiV1wiaW4gYXx8XCJVXCJpbiBhKSYmKFwid1wiaW4gYXx8KGEudz1cInVcImluIGE/YS51JTc6XCJXXCJpbiBhPzE6MCksbz1cIlpcImluIGE/R2EoVmEoYS55KSkuZ2V0VVRDRGF5KCk6bihWYShhLnkpKS5nZXREYXkoKSxhLm09MCxhLmQ9XCJXXCJpbiBhPyhhLncrNiklNys3KmEuVy0obys1KSU3OmEudys3KmEuVS0obys2KSU3KTtyZXR1cm5cIlpcImluIGE/KGEuSCs9YS5aLzEwMHwwLGEuTSs9YS5aJTEwMCxHYShhKSk6bihhKX19ZnVuY3Rpb24gcih0LG4sZSxyKXtmb3IodmFyIGksbyxhPTAsdT1uLmxlbmd0aCxmPWUubGVuZ3RoO2E8dTspe2lmKHI+PWYpcmV0dXJuLTE7aWYoMzc9PT0oaT1uLmNoYXJDb2RlQXQoYSsrKSkpe2lmKGk9bi5jaGFyQXQoYSsrKSwhKG89QVtpIGluIFVnP24uY2hhckF0KGErKyk6aV0pfHwocj1vKHQsZSxyKSk8MClyZXR1cm4tMX1lbHNlIGlmKGkhPWUuY2hhckNvZGVBdChyKyspKXJldHVybi0xfXJldHVybiByfXZhciBpPXQuZGF0ZVRpbWUsbz10LmRhdGUsYT10LnRpbWUsdT10LnBlcmlvZHMsZj10LmRheXMsYz10LnNob3J0RGF5cyxzPXQubW9udGhzLGw9dC5zaG9ydE1vbnRocyxoPVFhKHUpLGQ9SmEodSkscD1RYShmKSx2PUphKGYpLGc9UWEoYykseT1KYShjKSxfPVFhKHMpLGI9SmEocyksbT1RYShsKSx4PUphKGwpLHc9e2E6ZnVuY3Rpb24odCl7cmV0dXJuIGNbdC5nZXREYXkoKV19LEE6ZnVuY3Rpb24odCl7cmV0dXJuIGZbdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24odCl7cmV0dXJuIGxbdC5nZXRNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gc1t0LmdldE1vbnRoKCldfSxjOm51bGwsZDpfdSxlOl91LGY6TXUsSDpidSxJOm11LGo6eHUsTDp3dSxtOkF1LE06VHUscDpmdW5jdGlvbih0KXtyZXR1cm4gdVsrKHQuZ2V0SG91cnMoKT49MTIpXX0sUTpLdSxzOnRmLFM6TnUsdTpTdSxVOkV1LFY6a3UsdzpDdSxXOlB1LHg6bnVsbCxYOm51bGwseTp6dSxZOlJ1LFo6THUsXCIlXCI6SnV9LE09e2E6ZnVuY3Rpb24odCl7cmV0dXJuIGNbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24odCl7cmV0dXJuIGZbdC5nZXRVVENEYXkoKV19LGI6ZnVuY3Rpb24odCl7cmV0dXJuIGxbdC5nZXRVVENNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpEdSxlOkR1LGY6QnUsSDpVdSxJOnF1LGo6T3UsTDpZdSxtOkZ1LE06SXUscDpmdW5jdGlvbih0KXtyZXR1cm4gdVsrKHQuZ2V0VVRDSG91cnMoKT49MTIpXX0sUTpLdSxzOnRmLFM6anUsdTpIdSxVOlh1LFY6R3UsdzpWdSxXOiR1LHg6bnVsbCxYOm51bGwseTpXdSxZOlp1LFo6UXUsXCIlXCI6SnV9LEE9e2E6ZnVuY3Rpb24odCxuLGUpe3ZhciByPWcuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC53PXlbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sQTpmdW5jdGlvbih0LG4sZSl7dmFyIHI9cC5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0Lnc9dltyWzBdLnRvTG93ZXJDYXNlKCldLGUrclswXS5sZW5ndGgpOi0xfSxiOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1tLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQubT14W3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24odCxuLGUpe3ZhciByPV8uZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5tPWJbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sYzpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHIodCxpLG4sZSl9LGQ6ZnUsZTpmdSxmOnB1LEg6c3UsSTpzdSxqOmN1LEw6ZHUsbTp1dSxNOmx1LHA6ZnVuY3Rpb24odCxuLGUpe3ZhciByPWguZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5wPWRbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sUTpndSxzOnl1LFM6aHUsdTp0dSxVOm51LFY6ZXUsdzpLYSxXOnJ1LHg6ZnVuY3Rpb24odCxuLGUpe3JldHVybiByKHQsbyxuLGUpfSxYOmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gcih0LGEsbixlKX0seTpvdSxZOml1LFo6YXUsXCIlXCI6dnV9O3JldHVybiB3Lng9bihvLHcpLHcuWD1uKGEsdyksdy5jPW4oaSx3KSxNLng9bihvLE0pLE0uWD1uKGEsTSksTS5jPW4oaSxNKSx7Zm9ybWF0OmZ1bmN0aW9uKHQpe3ZhciBlPW4odCs9XCJcIix3KTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgbj1lKHQrPVwiXCIsWGEpO3JldHVybiBuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LG59LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1uKHQrPVwiXCIsTSk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjUGFyc2U6ZnVuY3Rpb24odCl7dmFyIG49ZSh0LEdhKTtyZXR1cm4gbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxufX19ZnVuY3Rpb24gV2EodCxuLGUpe3ZhciByPXQ8MD9cIi1cIjpcIlwiLGk9KHI/LXQ6dCkrXCJcIixvPWkubGVuZ3RoO3JldHVybiByKyhvPGU/bmV3IEFycmF5KGUtbysxKS5qb2luKG4pK2k6aSl9ZnVuY3Rpb24gWmEodCl7cmV0dXJuIHQucmVwbGFjZShZZyxcIlxcXFwkJlwiKX1mdW5jdGlvbiBRYSh0KXtyZXR1cm4gbmV3IFJlZ0V4cChcIl4oPzpcIit0Lm1hcChaYSkuam9pbihcInxcIikrXCIpXCIsXCJpXCIpfWZ1bmN0aW9uIEphKHQpe2Zvcih2YXIgbj17fSxlPS0xLHI9dC5sZW5ndGg7KytlPHI7KW5bdFtlXS50b0xvd2VyQ2FzZSgpXT1lO3JldHVybiBufWZ1bmN0aW9uIEthKHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj8odC53PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHR1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj8odC51PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG51KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5VPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGV1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5WPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHJ1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5XPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGl1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzQpKTtyZXR1cm4gcj8odC55PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG91KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC55PStyWzBdKygrclswXT42OD8xOTAwOjJlMyksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYXUodCxuLGUpe3ZhciByPS9eKFopfChbKy1dXFxkXFxkKSg/Ojo/KFxcZFxcZCkpPy8uZXhlYyhuLnNsaWNlKGUsZSs2KSk7cmV0dXJuIHI/KHQuWj1yWzFdPzA6LShyWzJdKyhyWzNdfHxcIjAwXCIpKSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB1dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQubT1yWzBdLTEsZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZnUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0LmQ9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gY3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMykpO3JldHVybiByPyh0Lm09MCx0LmQ9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gc3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lkg9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lk09K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gaHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0LlM9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMykpO3JldHVybiByPyh0Lkw9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gcHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrNikpO3JldHVybiByPyh0Lkw9TWF0aC5mbG9vcihyWzBdLzFlMyksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdnUodCxuLGUpe3ZhciByPU9nLmV4ZWMobi5zbGljZShlLGUrMSkpO3JldHVybiByP2UrclswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gZ3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQuUT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB5dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5RPTFlMyorclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBfdSh0LG4pe3JldHVybiBXYSh0LmdldERhdGUoKSxuLDIpfWZ1bmN0aW9uIGJ1KHQsbil7cmV0dXJuIFdhKHQuZ2V0SG91cnMoKSxuLDIpfWZ1bmN0aW9uIG11KHQsbil7cmV0dXJuIFdhKHQuZ2V0SG91cnMoKSUxMnx8MTIsbiwyKX1mdW5jdGlvbiB4dSh0LG4pe3JldHVybiBXYSgxK1h2LmNvdW50KGNnKHQpLHQpLG4sMyl9ZnVuY3Rpb24gd3UodCxuKXtyZXR1cm4gV2EodC5nZXRNaWxsaXNlY29uZHMoKSxuLDMpfWZ1bmN0aW9uIE11KHQsbil7cmV0dXJuIHd1KHQsbikrXCIwMDBcIn1mdW5jdGlvbiBBdSh0LG4pe3JldHVybiBXYSh0LmdldE1vbnRoKCkrMSxuLDIpfWZ1bmN0aW9uIFR1KHQsbil7cmV0dXJuIFdhKHQuZ2V0TWludXRlcygpLG4sMil9ZnVuY3Rpb24gTnUodCxuKXtyZXR1cm4gV2EodC5nZXRTZWNvbmRzKCksbiwyKX1mdW5jdGlvbiBTdSh0KXt2YXIgbj10LmdldERheSgpO3JldHVybiAwPT09bj83Om59ZnVuY3Rpb24gRXUodCxuKXtyZXR1cm4gV2EoVnYuY291bnQoY2codCksdCksbiwyKX1mdW5jdGlvbiBrdSh0LG4pe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIHQ9ZT49NHx8MD09PWU/UXYodCk6UXYuY2VpbCh0KSxXYShRdi5jb3VudChjZyh0KSx0KSsoND09PWNnKHQpLmdldERheSgpKSxuLDIpfWZ1bmN0aW9uIEN1KHQpe3JldHVybiB0LmdldERheSgpfWZ1bmN0aW9uIFB1KHQsbil7cmV0dXJuIFdhKCR2LmNvdW50KGNnKHQpLHQpLG4sMil9ZnVuY3Rpb24genUodCxuKXtyZXR1cm4gV2EodC5nZXRGdWxsWWVhcigpJTEwMCxuLDIpfWZ1bmN0aW9uIFJ1KHQsbil7cmV0dXJuIFdhKHQuZ2V0RnVsbFllYXIoKSUxZTQsbiw0KX1mdW5jdGlvbiBMdSh0KXt2YXIgbj10LmdldFRpbWV6b25lT2Zmc2V0KCk7cmV0dXJuKG4+MD9cIi1cIjoobio9LTEsXCIrXCIpKStXYShuLzYwfDAsXCIwXCIsMikrV2EobiU2MCxcIjBcIiwyKX1mdW5jdGlvbiBEdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0RhdGUoKSxuLDIpfWZ1bmN0aW9uIFV1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDSG91cnMoKSxuLDIpfWZ1bmN0aW9uIHF1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDSG91cnMoKSUxMnx8MTIsbiwyKX1mdW5jdGlvbiBPdSh0LG4pe3JldHVybiBXYSgxK3ZnLmNvdW50KFJnKHQpLHQpLG4sMyl9ZnVuY3Rpb24gWXUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENNaWxsaXNlY29uZHMoKSxuLDMpfWZ1bmN0aW9uIEJ1KHQsbil7cmV0dXJuIFl1KHQsbikrXCIwMDBcIn1mdW5jdGlvbiBGdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ01vbnRoKCkrMSxuLDIpfWZ1bmN0aW9uIEl1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDTWludXRlcygpLG4sMil9ZnVuY3Rpb24ganUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENTZWNvbmRzKCksbiwyKX1mdW5jdGlvbiBIdSh0KXt2YXIgbj10LmdldFVUQ0RheSgpO3JldHVybiAwPT09bj83Om59ZnVuY3Rpb24gWHUodCxuKXtyZXR1cm4gV2EoeWcuY291bnQoUmcodCksdCksbiwyKX1mdW5jdGlvbiBHdSh0LG4pe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIHQ9ZT49NHx8MD09PWU/eGcodCk6eGcuY2VpbCh0KSxXYSh4Zy5jb3VudChSZyh0KSx0KSsoND09PVJnKHQpLmdldFVUQ0RheSgpKSxuLDIpfWZ1bmN0aW9uIFZ1KHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uICR1KHQsbil7cmV0dXJuIFdhKF9nLmNvdW50KFJnKHQpLHQpLG4sMil9ZnVuY3Rpb24gV3UodCxuKXtyZXR1cm4gV2EodC5nZXRVVENGdWxsWWVhcigpJTEwMCxuLDIpfWZ1bmN0aW9uIFp1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDRnVsbFllYXIoKSUxZTQsbiw0KX1mdW5jdGlvbiBRdSgpe3JldHVyblwiKzAwMDBcIn1mdW5jdGlvbiBKdSgpe3JldHVyblwiJVwifWZ1bmN0aW9uIEt1KHQpe3JldHVybit0fWZ1bmN0aW9uIHRmKHQpe3JldHVybiBNYXRoLmZsb29yKCt0LzFlMyl9ZnVuY3Rpb24gbmYobil7cmV0dXJuIExnPSRhKG4pLHQudGltZUZvcm1hdD1MZy5mb3JtYXQsdC50aW1lUGFyc2U9TGcucGFyc2UsdC51dGNGb3JtYXQ9TGcudXRjRm9ybWF0LHQudXRjUGFyc2U9TGcudXRjUGFyc2UsTGd9ZnVuY3Rpb24gZWYodCl7cmV0dXJuIG5ldyBEYXRlKHQpfWZ1bmN0aW9uIHJmKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZT8rdDorbmV3IERhdGUoK3QpfWZ1bmN0aW9uIG9mKHQsbixyLGksbyxhLHUsZixjKXtmdW5jdGlvbiBzKGUpe3JldHVybih1KGUpPGU/ZzphKGUpPGU/eTpvKGUpPGU/XzppKGUpPGU/YjpuKGUpPGU/cihlKTxlP206eDp0KGUpPGU/dzpNKShlKX1mdW5jdGlvbiBsKG4scixpLG8pe2lmKG51bGw9PW4mJihuPTEwKSxcIm51bWJlclwiPT10eXBlb2Ygbil7dmFyIGE9TWF0aC5hYnMoaS1yKS9uLHU9ZShmdW5jdGlvbih0KXtyZXR1cm4gdFsyXX0pLnJpZ2h0KEEsYSk7dT09PUEubGVuZ3RoPyhvPWQoci9XZyxpL1dnLG4pLG49dCk6dT8obz0odT1BW2EvQVt1LTFdWzJdPEFbdV1bMl0vYT91LTE6dV0pWzFdLG49dVswXSk6KG89TWF0aC5tYXgoZChyLGksbiksMSksbj1mKX1yZXR1cm4gbnVsbD09bz9uOm4uZXZlcnkobyl9dmFyIGg9VGEoeGEsc24pLHA9aC5pbnZlcnQsdj1oLmRvbWFpbixnPWMoXCIuJUxcIikseT1jKFwiOiVTXCIpLF89YyhcIiVJOiVNXCIpLGI9YyhcIiVJICVwXCIpLG09YyhcIiVhICVkXCIpLHg9YyhcIiViICVkXCIpLHc9YyhcIiVCXCIpLE09YyhcIiVZXCIpLEE9W1t1LDEsamddLFt1LDUsNSpqZ10sW3UsMTUsMTUqamddLFt1LDMwLDMwKmpnXSxbYSwxLEhnXSxbYSw1LDUqSGddLFthLDE1LDE1KkhnXSxbYSwzMCwzMCpIZ10sW28sMSxYZ10sW28sMywzKlhnXSxbbyw2LDYqWGddLFtvLDEyLDEyKlhnXSxbaSwxLEdnXSxbaSwyLDIqR2ddLFtyLDEsVmddLFtuLDEsJGddLFtuLDMsMyokZ10sW3QsMSxXZ11dO3JldHVybiBoLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IERhdGUocCh0KSl9LGguZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Yoa3YuY2FsbCh0LHJmKSk6digpLm1hcChlZil9LGgudGlja3M9ZnVuY3Rpb24odCxuKXt2YXIgZSxyPXYoKSxpPXJbMF0sbz1yW3IubGVuZ3RoLTFdLGE9bzxpO3JldHVybiBhJiYoZT1pLGk9byxvPWUpLGU9bCh0LGksbyxuKSxlPWU/ZS5yYW5nZShpLG8rMSk6W10sYT9lLnJldmVyc2UoKTplfSxoLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbD09bj9zOmMobil9LGgubmljZT1mdW5jdGlvbih0LG4pe3ZhciBlPXYoKTtyZXR1cm4odD1sKHQsZVswXSxlW2UubGVuZ3RoLTFdLG4pKT92KGthKGUsdCkpOmh9LGguY29weT1mdW5jdGlvbigpe3JldHVybiBBYShoLG9mKHQsbixyLGksbyxhLHUsZixjKSl9LGh9ZnVuY3Rpb24gYWYodCl7ZnVuY3Rpb24gbihuKXt2YXIgcj0obi1lKSppO3JldHVybiB0KG8/TWF0aC5tYXgoMCxNYXRoLm1pbigxLHIpKTpyKX12YXIgZT0wLHI9MSxpPTEsbz0hMTtyZXR1cm4gbi5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0scj0rdFsxXSxpPWU9PT1yPzA6MS8oci1lKSxuKTpbZSxyXX0sbi5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0hIXQsbik6b30sbi5pbnRlcnBvbGF0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxuKTp0fSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gYWYodCkuZG9tYWluKFtlLHJdKS5jbGFtcChvKX0sTmEobil9ZnVuY3Rpb24gdWYodCl7ZnVuY3Rpb24gbihuKXt2YXIgZT0uNSsoKG49K24pLXIpKihuPHI/bzphKTtyZXR1cm4gdCh1P01hdGgubWF4KDAsTWF0aC5taW4oMSxlKSk6ZSl9dmFyIGU9MCxyPS41LGk9MSxvPTEsYT0xLHU9ITE7cmV0dXJuIG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0saT0rdFsyXSxvPWU9PT1yPzA6LjUvKHItZSksYT1yPT09aT8wOi41LyhpLXIpLG4pOltlLHIsaV19LG4uY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ISF0LG4pOnV9LG4uaW50ZXJwb2xhdG9yPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbik6dH0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHVmKHQpLmRvbWFpbihbZSxyLGldKS5jbGFtcCh1KX0sTmEobil9ZnVuY3Rpb24gZmYodCl7Zm9yKHZhciBuPXQubGVuZ3RoLzZ8MCxlPW5ldyBBcnJheShuKSxyPTA7cjxuOyllW3JdPVwiI1wiK3Quc2xpY2UoNipyLDYqKytyKTtyZXR1cm4gZX1mdW5jdGlvbiBjZih0KXtyZXR1cm4gaWwodFt0Lmxlbmd0aC0xXSl9ZnVuY3Rpb24gc2YodCl7dmFyIG49dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0W01hdGgubWF4KDAsTWF0aC5taW4obi0xLE1hdGguZmxvb3IoZSpuKSkpXX19ZnVuY3Rpb24gbGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGhmKHQpe3JldHVybiB0Pj0xP1RfOnQ8PS0xPy1UXzpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gZGYodCl7cmV0dXJuIHQuaW5uZXJSYWRpdXN9ZnVuY3Rpb24gcGYodCl7cmV0dXJuIHQub3V0ZXJSYWRpdXN9ZnVuY3Rpb24gdmYodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiBnZih0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiB5Zih0KXtyZXR1cm4gdCYmdC5wYWRBbmdsZX1mdW5jdGlvbiBfZih0LG4sZSxyLGksbyxhKXt2YXIgdT10LWUsZj1uLXIsYz0oYT9vOi1vKS93Xyh1KnUrZipmKSxzPWMqZixsPS1jKnUsaD10K3MsZD1uK2wscD1lK3Msdj1yK2wsZz0oaCtwKS8yLHk9KGQrdikvMixfPXAtaCxiPXYtZCxtPV8qXytiKmIseD1pLW8sdz1oKnYtcCpkLE09KGI8MD8tMToxKSp3XyhiXygwLHgqeCptLXcqdykpLEE9KHcqYi1fKk0pL20sVD0oLXcqXy1iKk0pL20sTj0odypiK18qTSkvbSxTPSgtdypfK2IqTSkvbSxFPUEtZyxrPVQteSxDPU4tZyxQPVMteTtyZXR1cm4gRSpFK2sqaz5DKkMrUCpQJiYoQT1OLFQ9Uykse2N4OkEsY3k6VCx4MDE6LXMseTAxOi1sLHgxMTpBKihpL3gtMSkseTExOlQqKGkveC0xKX19ZnVuY3Rpb24gYmYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIG1mKHQpe3JldHVybiBuZXcgYmYodCl9ZnVuY3Rpb24geGYodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gd2YodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gTWYoKXtmdW5jdGlvbiB0KHQpe3ZhciB1LGYsYyxzPXQubGVuZ3RoLGw9ITE7Zm9yKG51bGw9PWkmJihhPW8oYz1vZSgpKSksdT0wO3U8PXM7Kyt1KSEodTxzJiZyKGY9dFt1XSx1LHQpKT09PWwmJigobD0hbCk/YS5saW5lU3RhcnQoKTphLmxpbmVFbmQoKSksbCYmYS5wb2ludCgrbihmLHUsdCksK2UoZix1LHQpKTtpZihjKXJldHVybiBhPW51bGwsYytcIlwifHxudWxsfXZhciBuPXhmLGU9d2Yscj1sZighMCksaT1udWxsLG89bWYsYT1udWxsO3JldHVybiB0Lng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LmRlZmluZWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCEhbiksdCk6cn0sdC5jdXJ2ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1uLG51bGwhPWkmJihhPW8oaSkpLHQpOm99LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj9pPWE9bnVsbDphPW8oaT1uKSx0KTppfSx0fWZ1bmN0aW9uIEFmKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbixzLGwsaCxkLHA9dC5sZW5ndGgsdj0hMSxnPW5ldyBBcnJheShwKSx5PW5ldyBBcnJheShwKTtmb3IobnVsbD09dSYmKGM9ZihkPW9lKCkpKSxuPTA7bjw9cDsrK24pe2lmKCEobjxwJiZhKGg9dFtuXSxuLHQpKT09PXYpaWYodj0hdilzPW4sYy5hcmVhU3RhcnQoKSxjLmxpbmVTdGFydCgpO2Vsc2V7Zm9yKGMubGluZUVuZCgpLGMubGluZVN0YXJ0KCksbD1uLTE7bD49czstLWwpYy5wb2ludChnW2xdLHlbbF0pO2MubGluZUVuZCgpLGMuYXJlYUVuZCgpfXYmJihnW25dPStlKGgsbix0KSx5W25dPStpKGgsbix0KSxjLnBvaW50KHI/K3IoaCxuLHQpOmdbbl0sbz8rbyhoLG4sdCk6eVtuXSkpfWlmKGQpcmV0dXJuIGM9bnVsbCxkK1wiXCJ8fG51bGx9ZnVuY3Rpb24gbigpe3JldHVybiBNZigpLmRlZmluZWQoYSkuY3VydmUoZikuY29udGV4dCh1KX12YXIgZT14ZixyPW51bGwsaT1sZigwKSxvPXdmLGE9bGYoITApLHU9bnVsbCxmPW1mLGM9bnVsbDtyZXR1cm4gdC54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbikscj1udWxsLHQpOmV9LHQueDA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LngxPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/bnVsbDpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOnJ9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLG89bnVsbCx0KTppfSx0LnkwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6aX0sdC55MT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LmxpbmVYMD10LmxpbmVZMD1mdW5jdGlvbigpe3JldHVybiBuKCkueChlKS55KGkpfSx0LmxpbmVZMT1mdW5jdGlvbigpe3JldHVybiBuKCkueChlKS55KG8pfSx0LmxpbmVYMT1mdW5jdGlvbigpe3JldHVybiBuKCkueChyKS55KGkpfSx0LmRlZmluZWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCEhbiksdCk6YX0sdC5jdXJ2ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1uLG51bGwhPXUmJihjPWYodSkpLHQpOmZ9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj91PWM9bnVsbDpjPWYodT1uKSx0KTp1fSx0fWZ1bmN0aW9uIFRmKHQsbil7cmV0dXJuIG48dD8tMTpuPnQ/MTpuPj10PzA6TmFOfWZ1bmN0aW9uIE5mKHQpe3JldHVybiB0fWZ1bmN0aW9uIFNmKHQpe3RoaXMuX2N1cnZlPXR9ZnVuY3Rpb24gRWYodCl7ZnVuY3Rpb24gbihuKXtyZXR1cm4gbmV3IFNmKHQobikpfXJldHVybiBuLl9jdXJ2ZT10LG59ZnVuY3Rpb24ga2YodCl7dmFyIG49dC5jdXJ2ZTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oRWYodCkpOm4oKS5fY3VydmV9LHR9ZnVuY3Rpb24gQ2YoKXtyZXR1cm4ga2YoTWYoKS5jdXJ2ZShTXykpfWZ1bmN0aW9uIFBmKCl7dmFyIHQ9QWYoKS5jdXJ2ZShTXyksbj10LmN1cnZlLGU9dC5saW5lWDAscj10LmxpbmVYMSxpPXQubGluZVkwLG89dC5saW5lWTE7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5zdGFydEFuZ2xlPXQueDAsZGVsZXRlIHQueDAsdC5lbmRBbmdsZT10LngxLGRlbGV0ZSB0LngxLHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuaW5uZXJSYWRpdXM9dC55MCxkZWxldGUgdC55MCx0Lm91dGVyUmFkaXVzPXQueTEsZGVsZXRlIHQueTEsdC5saW5lU3RhcnRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBrZihlKCkpfSxkZWxldGUgdC5saW5lWDAsdC5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4ga2YocigpKX0sZGVsZXRlIHQubGluZVgxLHQubGluZUlubmVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIGtmKGkoKSl9LGRlbGV0ZSB0LmxpbmVZMCx0LmxpbmVPdXRlclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBrZihvKCkpfSxkZWxldGUgdC5saW5lWTEsdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKEVmKHQpKTpuKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIHpmKHQsbil7cmV0dXJuWyhuPStuKSpNYXRoLmNvcyh0LT1NYXRoLlBJLzIpLG4qTWF0aC5zaW4odCldfWZ1bmN0aW9uIFJmKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBMZih0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gRGYodCl7ZnVuY3Rpb24gbigpe3ZhciBuLHU9RV8uY2FsbChhcmd1bWVudHMpLGY9ZS5hcHBseSh0aGlzLHUpLGM9ci5hcHBseSh0aGlzLHUpO2lmKGF8fChhPW49b2UoKSksdChhLCtpLmFwcGx5KHRoaXMsKHVbMF09Zix1KSksK28uYXBwbHkodGhpcyx1KSwraS5hcHBseSh0aGlzLCh1WzBdPWMsdSkpLCtvLmFwcGx5KHRoaXMsdSkpLG4pcmV0dXJuIGE9bnVsbCxuK1wiXCJ8fG51bGx9dmFyIGU9UmYscj1MZixpPXhmLG89d2YsYT1udWxsO3JldHVybiBuLnNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG4pOmV9LG4udGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sbi54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpsZigrdCksbik6aX0sbi55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpsZigrdCksbik6b30sbi5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW51bGw9PXQ/bnVsbDp0LG4pOmF9LG59ZnVuY3Rpb24gVWYodCxuLGUscixpKXt0Lm1vdmVUbyhuLGUpLHQuYmV6aWVyQ3VydmVUbyhuPShuK3IpLzIsZSxuLGkscixpKX1mdW5jdGlvbiBxZih0LG4sZSxyLGkpe3QubW92ZVRvKG4sZSksdC5iZXppZXJDdXJ2ZVRvKG4sZT0oZStpKS8yLHIsZSxyLGkpfWZ1bmN0aW9uIE9mKHQsbixlLHIsaSl7dmFyIG89emYobixlKSxhPXpmKG4sZT0oZStpKS8yKSx1PXpmKHIsZSksZj16ZihyLGkpO3QubW92ZVRvKG9bMF0sb1sxXSksdC5iZXppZXJDdXJ2ZVRvKGFbMF0sYVsxXSx1WzBdLHVbMV0sZlswXSxmWzFdKX1mdW5jdGlvbiBZZigpe31mdW5jdGlvbiBCZih0LG4sZSl7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKCgyKnQuX3gwK3QuX3gxKS8zLCgyKnQuX3kwK3QuX3kxKS8zLCh0Ll94MCsyKnQuX3gxKS8zLCh0Ll95MCsyKnQuX3kxKS8zLCh0Ll94MCs0KnQuX3gxK24pLzYsKHQuX3kwKzQqdC5feTErZSkvNil9ZnVuY3Rpb24gRmYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIElmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBqZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gSGYodCxuKXt0aGlzLl9iYXNpcz1uZXcgRmYodCksdGhpcy5fYmV0YT1ufWZ1bmN0aW9uIFhmKHQsbixlKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1uKSx0Ll95Mit0Ll9rKih0Ll95MS1lKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gR2YodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1uKS82fWZ1bmN0aW9uIFZmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtbikvNn1mdW5jdGlvbiAkZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLW4pLzZ9ZnVuY3Rpb24gV2YodCxuLGUpe3ZhciByPXQuX3gxLGk9dC5feTEsbz10Ll94MixhPXQuX3kyO2lmKHQuX2wwMV9hPk1fKXt2YXIgdT0yKnQuX2wwMV8yYSszKnQuX2wwMV9hKnQuX2wxMl9hK3QuX2wxMl8yYSxmPTMqdC5fbDAxX2EqKHQuX2wwMV9hK3QuX2wxMl9hKTtyPShyKnUtdC5feDAqdC5fbDEyXzJhK3QuX3gyKnQuX2wwMV8yYSkvZixpPShpKnUtdC5feTAqdC5fbDEyXzJhK3QuX3kyKnQuX2wwMV8yYSkvZn1pZih0Ll9sMjNfYT5NXyl7dmFyIGM9Mip0Ll9sMjNfMmErMyp0Ll9sMjNfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEscz0zKnQuX2wyM19hKih0Ll9sMjNfYSt0Ll9sMTJfYSk7bz0obypjK3QuX3gxKnQuX2wyM18yYS1uKnQuX2wxMl8yYSkvcyxhPShhKmMrdC5feTEqdC5fbDIzXzJhLWUqdC5fbDEyXzJhKS9zfXQuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhyLGksbyxhLHQuX3gyLHQuX3kyKX1mdW5jdGlvbiBaZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1ufWZ1bmN0aW9uIFFmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPW59ZnVuY3Rpb24gSmYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9bn1mdW5jdGlvbiBLZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gdGModCl7cmV0dXJuIHQ8MD8tMToxfWZ1bmN0aW9uIG5jKHQsbixlKXt2YXIgcj10Ll94MS10Ll94MCxpPW4tdC5feDEsbz0odC5feTEtdC5feTApLyhyfHxpPDAmJi0wKSxhPShlLXQuX3kxKS8oaXx8cjwwJiYtMCksdT0obyppK2EqcikvKHIraSk7cmV0dXJuKHRjKG8pK3RjKGEpKSpNYXRoLm1pbihNYXRoLmFicyhvKSxNYXRoLmFicyhhKSwuNSpNYXRoLmFicyh1KSl8fDB9ZnVuY3Rpb24gZWModCxuKXt2YXIgZT10Ll94MS10Ll94MDtyZXR1cm4gZT8oMyoodC5feTEtdC5feTApL2UtbikvMjpufWZ1bmN0aW9uIHJjKHQsbixlKXt2YXIgcj10Ll94MCxpPXQuX3kwLG89dC5feDEsYT10Ll95MSx1PShvLXIpLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHIrdSxpK3UqbixvLXUsYS11KmUsbyxhKX1mdW5jdGlvbiBpYyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gb2ModCl7dGhpcy5fY29udGV4dD1uZXcgYWModCl9ZnVuY3Rpb24gYWModCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHVjKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBmYyh0KXt2YXIgbixlLHI9dC5sZW5ndGgtMSxpPW5ldyBBcnJheShyKSxvPW5ldyBBcnJheShyKSxhPW5ldyBBcnJheShyKTtmb3IoaVswXT0wLG9bMF09MixhWzBdPXRbMF0rMip0WzFdLG49MTtuPHItMTsrK24paVtuXT0xLG9bbl09NCxhW25dPTQqdFtuXSsyKnRbbisxXTtmb3IoaVtyLTFdPTIsb1tyLTFdPTcsYVtyLTFdPTgqdFtyLTFdK3Rbcl0sbj0xO248cjsrK24pZT1pW25dL29bbi0xXSxvW25dLT1lLGFbbl0tPWUqYVtuLTFdO2ZvcihpW3ItMV09YVtyLTFdL29bci0xXSxuPXItMjtuPj0wOy0tbilpW25dPShhW25dLWlbbisxXSkvb1tuXTtmb3Iob1tyLTFdPSh0W3JdK2lbci0xXSkvMixuPTA7bjxyLTE7KytuKW9bbl09Mip0W24rMV0taVtuKzFdO3JldHVybltpLG9dfWZ1bmN0aW9uIGNjKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX3Q9bn1mdW5jdGlvbiBzYyh0LG4pe2lmKChpPXQubGVuZ3RoKT4xKWZvcih2YXIgZSxyLGksbz0xLGE9dFtuWzBdXSx1PWEubGVuZ3RoO288aTsrK28pZm9yKHI9YSxhPXRbbltvXV0sZT0wO2U8dTsrK2UpYVtlXVsxXSs9YVtlXVswXT1pc05hTihyW2VdWzFdKT9yW2VdWzBdOnJbZV1bMV19ZnVuY3Rpb24gbGModCl7Zm9yKHZhciBuPXQubGVuZ3RoLGU9bmV3IEFycmF5KG4pOy0tbj49MDspZVtuXT1uO3JldHVybiBlfWZ1bmN0aW9uIGhjKHQsbil7cmV0dXJuIHRbbl19ZnVuY3Rpb24gZGModCl7dmFyIG49dC5tYXAocGMpO3JldHVybiBsYyh0KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5bdF0tbltlXX0pfWZ1bmN0aW9uIHBjKHQpe2Zvcih2YXIgbixlPTAscj0tMSxpPXQubGVuZ3RoOysrcjxpOykobj0rdFtyXVsxXSkmJihlKz1uKTtyZXR1cm4gZX1mdW5jdGlvbiB2Yyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gZ2ModCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24geWModCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gX2MoKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBiYyh0KXt0LlU9dC5DPXQuTD10LlI9dC5QPXQuTj1udWxsfWZ1bmN0aW9uIG1jKHQsbil7dmFyIGU9bixyPW4uUixpPWUuVTtpP2kuTD09PWU/aS5MPXI6aS5SPXI6dC5fPXIsci5VPWksZS5VPXIsZS5SPXIuTCxlLlImJihlLlIuVT1lKSxyLkw9ZX1mdW5jdGlvbiB4Yyh0LG4pe3ZhciBlPW4scj1uLkwsaT1lLlU7aT9pLkw9PT1lP2kuTD1yOmkuUj1yOnQuXz1yLHIuVT1pLGUuVT1yLGUuTD1yLlIsZS5MJiYoZS5MLlU9ZSksci5SPWV9ZnVuY3Rpb24gd2ModCl7Zm9yKDt0Lkw7KXQ9dC5MO3JldHVybiB0fWZ1bmN0aW9uIE1jKHQsbixlLHIpe3ZhciBpPVtudWxsLG51bGxdLG89cmIucHVzaChpKS0xO3JldHVybiBpLmxlZnQ9dCxpLnJpZ2h0PW4sZSYmVGMoaSx0LG4sZSksciYmVGMoaSxuLHQsciksbmJbdC5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksbmJbbi5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksaX1mdW5jdGlvbiBBYyh0LG4sZSl7dmFyIHI9W24sZV07cmV0dXJuIHIubGVmdD10LHJ9ZnVuY3Rpb24gVGModCxuLGUscil7dFswXXx8dFsxXT90LmxlZnQ9PT1lP3RbMV09cjp0WzBdPXI6KHRbMF09cix0LmxlZnQ9bix0LnJpZ2h0PWUpfWZ1bmN0aW9uIE5jKHQsbixlLHIsaSl7dmFyIG8sYT10WzBdLHU9dFsxXSxmPWFbMF0sYz1hWzFdLHM9MCxsPTEsaD11WzBdLWYsZD11WzFdLWM7aWYobz1uLWYsaHx8IShvPjApKXtpZihvLz1oLGg8MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWVsc2UgaWYoaD4wKXtpZihvPmwpcmV0dXJuO28+cyYmKHM9byl9aWYobz1yLWYsaHx8IShvPDApKXtpZihvLz1oLGg8MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWVsc2UgaWYoaD4wKXtpZihvPHMpcmV0dXJuO288bCYmKGw9byl9aWYobz1lLWMsZHx8IShvPjApKXtpZihvLz1kLGQ8MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWVsc2UgaWYoZD4wKXtpZihvPmwpcmV0dXJuO28+cyYmKHM9byl9aWYobz1pLWMsZHx8IShvPDApKXtpZihvLz1kLGQ8MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWVsc2UgaWYoZD4wKXtpZihvPHMpcmV0dXJuO288bCYmKGw9byl9cmV0dXJuIShzPjB8fGw8MSl8fChzPjAmJih0WzBdPVtmK3MqaCxjK3MqZF0pLGw8MSYmKHRbMV09W2YrbCpoLGMrbCpkXSksITApfX19fX1mdW5jdGlvbiBTYyh0LG4sZSxyLGkpe3ZhciBvPXRbMV07aWYobylyZXR1cm4hMDt2YXIgYSx1LGY9dFswXSxjPXQubGVmdCxzPXQucmlnaHQsbD1jWzBdLGg9Y1sxXSxkPXNbMF0scD1zWzFdLHY9KGwrZCkvMixnPShoK3ApLzI7aWYocD09PWgpe2lmKHY8bnx8dj49cilyZXR1cm47aWYobD5kKXtpZihmKXtpZihmWzFdPj1pKXJldHVybn1lbHNlIGY9W3YsZV07bz1bdixpXX1lbHNle2lmKGYpe2lmKGZbMV08ZSlyZXR1cm59ZWxzZSBmPVt2LGldO289W3YsZV19fWVsc2UgaWYoYT0obC1kKS8ocC1oKSx1PWctYSp2LGE8LTF8fGE+MSlpZihsPmQpe2lmKGYpe2lmKGZbMV0+PWkpcmV0dXJufWVsc2UgZj1bKGUtdSkvYSxlXTtvPVsoaS11KS9hLGldfWVsc2V7aWYoZil7aWYoZlsxXTxlKXJldHVybn1lbHNlIGY9WyhpLXUpL2EsaV07bz1bKGUtdSkvYSxlXX1lbHNlIGlmKGg8cCl7aWYoZil7aWYoZlswXT49cilyZXR1cm59ZWxzZSBmPVtuLGEqbit1XTtvPVtyLGEqcit1XX1lbHNle2lmKGYpe2lmKGZbMF08bilyZXR1cm59ZWxzZSBmPVtyLGEqcit1XTtvPVtuLGEqbit1XX1yZXR1cm4gdFswXT1mLHRbMV09bywhMH1mdW5jdGlvbiBFYyh0LG4pe3ZhciBlPXQuc2l0ZSxyPW4ubGVmdCxpPW4ucmlnaHQ7cmV0dXJuIGU9PT1pJiYoaT1yLHI9ZSksaT9NYXRoLmF0YW4yKGlbMV0tclsxXSxpWzBdLXJbMF0pOihlPT09cj8ocj1uWzFdLGk9blswXSk6KHI9blswXSxpPW5bMV0pLE1hdGguYXRhbjIoclswXS1pWzBdLGlbMV0tclsxXSkpfWZ1bmN0aW9uIGtjKHQsbil7cmV0dXJuIG5bKyhuLmxlZnQhPT10LnNpdGUpXX1mdW5jdGlvbiBDYyh0LG4pe3JldHVybiBuWysobi5sZWZ0PT09dC5zaXRlKV19ZnVuY3Rpb24gUGModCl7dmFyIG49dC5QLGU9dC5OO2lmKG4mJmUpe3ZhciByPW4uc2l0ZSxpPXQuc2l0ZSxvPWUuc2l0ZTtpZihyIT09byl7dmFyIGE9aVswXSx1PWlbMV0sZj1yWzBdLWEsYz1yWzFdLXUscz1vWzBdLWEsbD1vWzFdLXUsaD0yKihmKmwtYypzKTtpZighKGg+PS11Yikpe3ZhciBkPWYqZitjKmMscD1zKnMrbCpsLHY9KGwqZC1jKnApL2gsZz0oZipwLXMqZCkvaCx5PWliLnBvcCgpfHxuZXcgZnVuY3Rpb24oKXtiYyh0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9O3kuYXJjPXQseS5zaXRlPWkseS54PXYrYSx5Lnk9KHkuY3k9Zyt1KStNYXRoLnNxcnQodip2K2cqZyksdC5jaXJjbGU9eTtmb3IodmFyIF89bnVsbCxiPWViLl87YjspaWYoeS55PGIueXx8eS55PT09Yi55JiZ5Lng8PWIueCl7aWYoIWIuTCl7Xz1iLlA7YnJlYWt9Yj1iLkx9ZWxzZXtpZighYi5SKXtfPWI7YnJlYWt9Yj1iLlJ9ZWIuaW5zZXJ0KF8seSksX3x8KEtfPXkpfX19fWZ1bmN0aW9uIHpjKHQpe3ZhciBuPXQuY2lyY2xlO24mJihuLlB8fChLXz1uLk4pLGViLnJlbW92ZShuKSxpYi5wdXNoKG4pLGJjKG4pLHQuY2lyY2xlPW51bGwpfWZ1bmN0aW9uIFJjKHQpe3ZhciBuPW9iLnBvcCgpfHxuZXcgZnVuY3Rpb24oKXtiYyh0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9O3JldHVybiBuLnNpdGU9dCxufWZ1bmN0aW9uIExjKHQpe3pjKHQpLHRiLnJlbW92ZSh0KSxvYi5wdXNoKHQpLGJjKHQpfWZ1bmN0aW9uIERjKHQpe3ZhciBuPXQuY2lyY2xlLGU9bi54LHI9bi5jeSxpPVtlLHJdLG89dC5QLGE9dC5OLHU9W3RdO0xjKHQpO2Zvcih2YXIgZj1vO2YuY2lyY2xlJiZNYXRoLmFicyhlLWYuY2lyY2xlLngpPGFiJiZNYXRoLmFicyhyLWYuY2lyY2xlLmN5KTxhYjspbz1mLlAsdS51bnNoaWZ0KGYpLExjKGYpLGY9bzt1LnVuc2hpZnQoZiksemMoZik7Zm9yKHZhciBjPWE7Yy5jaXJjbGUmJk1hdGguYWJzKGUtYy5jaXJjbGUueCk8YWImJk1hdGguYWJzKHItYy5jaXJjbGUuY3kpPGFiOylhPWMuTix1LnB1c2goYyksTGMoYyksYz1hO3UucHVzaChjKSx6YyhjKTt2YXIgcyxsPXUubGVuZ3RoO2ZvcihzPTE7czxsOysrcyljPXVbc10sZj11W3MtMV0sVGMoYy5lZGdlLGYuc2l0ZSxjLnNpdGUsaSk7Zj11WzBdLChjPXVbbC0xXSkuZWRnZT1NYyhmLnNpdGUsYy5zaXRlLG51bGwsaSksUGMoZiksUGMoYyl9ZnVuY3Rpb24gVWModCl7Zm9yKHZhciBuLGUscixpLG89dFswXSxhPXRbMV0sdT10Yi5fO3U7KWlmKChyPXFjKHUsYSktbyk+YWIpdT11Lkw7ZWxzZXtpZighKChpPW8tZnVuY3Rpb24odCxuKXt2YXIgZT10Lk47aWYoZSlyZXR1cm4gcWMoZSxuKTt2YXIgcj10LnNpdGU7cmV0dXJuIHJbMV09PT1uP3JbMF06MS8wfSh1LGEpKT5hYikpe3I+LWFiPyhuPXUuUCxlPXUpOmk+LWFiPyhuPXUsZT11Lk4pOm49ZT11O2JyZWFrfWlmKCF1LlIpe249dTticmVha311PXUuUn0oZnVuY3Rpb24odCl7bmJbdC5pbmRleF09e3NpdGU6dCxoYWxmZWRnZXM6W119fSkodCk7dmFyIGY9UmModCk7aWYodGIuaW5zZXJ0KG4sZiksbnx8ZSl7aWYobj09PWUpcmV0dXJuIHpjKG4pLGU9UmMobi5zaXRlKSx0Yi5pbnNlcnQoZixlKSxmLmVkZ2U9ZS5lZGdlPU1jKG4uc2l0ZSxmLnNpdGUpLFBjKG4pLHZvaWQgUGMoZSk7aWYoZSl7emMobiksemMoZSk7dmFyIGM9bi5zaXRlLHM9Y1swXSxsPWNbMV0saD10WzBdLXMsZD10WzFdLWwscD1lLnNpdGUsdj1wWzBdLXMsZz1wWzFdLWwseT0yKihoKmctZCp2KSxfPWgqaCtkKmQsYj12KnYrZypnLG09WyhnKl8tZCpiKS95K3MsKGgqYi12Kl8pL3krbF07VGMoZS5lZGdlLGMscCxtKSxmLmVkZ2U9TWMoYyx0LG51bGwsbSksZS5lZGdlPU1jKHQscCxudWxsLG0pLFBjKG4pLFBjKGUpfWVsc2UgZi5lZGdlPU1jKG4uc2l0ZSxmLnNpdGUpfX1mdW5jdGlvbiBxYyh0LG4pe3ZhciBlPXQuc2l0ZSxyPWVbMF0saT1lWzFdLG89aS1uO2lmKCFvKXJldHVybiByO3ZhciBhPXQuUDtpZighYSlyZXR1cm4tMS8wO3ZhciB1PShlPWEuc2l0ZSlbMF0sZj1lWzFdLGM9Zi1uO2lmKCFjKXJldHVybiB1O3ZhciBzPXUtcixsPTEvby0xL2MsaD1zL2M7cmV0dXJuIGw/KC1oK01hdGguc3FydChoKmgtMipsKihzKnMvKC0yKmMpLWYrYy8yK2ktby8yKSkpL2wrcjoocit1KS8yfWZ1bmN0aW9uIE9jKHQsbixlKXtyZXR1cm4odFswXS1lWzBdKSooblsxXS10WzFdKS0odFswXS1uWzBdKSooZVsxXS10WzFdKX1mdW5jdGlvbiBZYyh0LG4pe3JldHVybiBuWzFdLXRbMV18fG5bMF0tdFswXX1mdW5jdGlvbiBCYyh0LG4pe3ZhciBlLHIsaSxvPXQuc29ydChZYykucG9wKCk7Zm9yKHJiPVtdLG5iPW5ldyBBcnJheSh0Lmxlbmd0aCksdGI9bmV3IF9jLGViPW5ldyBfYzs7KWlmKGk9S18sbyYmKCFpfHxvWzFdPGkueXx8b1sxXT09PWkueSYmb1swXTxpLngpKW9bMF09PT1lJiZvWzFdPT09cnx8KFVjKG8pLGU9b1swXSxyPW9bMV0pLG89dC5wb3AoKTtlbHNle2lmKCFpKWJyZWFrO0RjKGkuYXJjKX1pZihmdW5jdGlvbigpe2Zvcih2YXIgdCxuLGUscixpPTAsbz1uYi5sZW5ndGg7aTxvOysraSlpZigodD1uYltpXSkmJihyPShuPXQuaGFsZmVkZ2VzKS5sZW5ndGgpKXt2YXIgYT1uZXcgQXJyYXkociksdT1uZXcgQXJyYXkocik7Zm9yKGU9MDtlPHI7KytlKWFbZV09ZSx1W2VdPUVjKHQscmJbbltlXV0pO2ZvcihhLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gdVtuXS11W3RdfSksZT0wO2U8cjsrK2UpdVtlXT1uW2FbZV1dO2ZvcihlPTA7ZTxyOysrZSluW2VdPXVbZV19fSgpLG4pe3ZhciBhPStuWzBdWzBdLHU9K25bMF1bMV0sZj0rblsxXVswXSxjPStuWzFdWzFdOyhmdW5jdGlvbih0LG4sZSxyKXtmb3IodmFyIGksbz1yYi5sZW5ndGg7by0tOylTYyhpPXJiW29dLHQsbixlLHIpJiZOYyhpLHQsbixlLHIpJiYoTWF0aC5hYnMoaVswXVswXS1pWzFdWzBdKT5hYnx8TWF0aC5hYnMoaVswXVsxXS1pWzFdWzFdKT5hYil8fGRlbGV0ZSByYltvXX0pKGEsdSxmLGMpLGZ1bmN0aW9uKHQsbixlLHIpe3ZhciBpLG8sYSx1LGYsYyxzLGwsaCxkLHAsdixnPW5iLmxlbmd0aCx5PSEwO2ZvcihpPTA7aTxnOysraSlpZihvPW5iW2ldKXtmb3IoYT1vLnNpdGUsdT0oZj1vLmhhbGZlZGdlcykubGVuZ3RoO3UtLTspcmJbZlt1XV18fGYuc3BsaWNlKHUsMSk7Zm9yKHU9MCxjPWYubGVuZ3RoO3U8YzspcD0oZD1DYyhvLHJiW2ZbdV1dKSlbMF0sdj1kWzFdLGw9KHM9a2MobyxyYltmWysrdSVjXV0pKVswXSxoPXNbMV0sKE1hdGguYWJzKHAtbCk+YWJ8fE1hdGguYWJzKHYtaCk+YWIpJiYoZi5zcGxpY2UodSwwLHJiLnB1c2goQWMoYSxkLE1hdGguYWJzKHAtdCk8YWImJnItdj5hYj9bdCxNYXRoLmFicyhsLXQpPGFiP2g6cl06TWF0aC5hYnModi1yKTxhYiYmZS1wPmFiP1tNYXRoLmFicyhoLXIpPGFiP2w6ZSxyXTpNYXRoLmFicyhwLWUpPGFiJiZ2LW4+YWI/W2UsTWF0aC5hYnMobC1lKTxhYj9oOm5dOk1hdGguYWJzKHYtbik8YWImJnAtdD5hYj9bTWF0aC5hYnMoaC1uKTxhYj9sOnQsbl06bnVsbCkpLTEpLCsrYyk7YyYmKHk9ITEpfWlmKHkpe3ZhciBfLGIsbSx4PTEvMDtmb3IoaT0wLHk9bnVsbDtpPGc7KytpKShvPW5iW2ldKSYmKG09KF89KGE9by5zaXRlKVswXS10KSpfKyhiPWFbMV0tbikqYik8eCYmKHg9bSx5PW8pO2lmKHkpe3ZhciB3PVt0LG5dLE09W3Qscl0sQT1bZSxyXSxUPVtlLG5dO3kuaGFsZmVkZ2VzLnB1c2gocmIucHVzaChBYyhhPXkuc2l0ZSx3LE0pKS0xLHJiLnB1c2goQWMoYSxNLEEpKS0xLHJiLnB1c2goQWMoYSxBLFQpKS0xLHJiLnB1c2goQWMoYSxULHcpKS0xKX19Zm9yKGk9MDtpPGc7KytpKShvPW5iW2ldKSYmKG8uaGFsZmVkZ2VzLmxlbmd0aHx8ZGVsZXRlIG5iW2ldKX0oYSx1LGYsYyl9dGhpcy5lZGdlcz1yYix0aGlzLmNlbGxzPW5iLHRiPWViPXJiPW5iPW51bGx9ZnVuY3Rpb24gRmModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEljKHQsbixlKXt0aGlzLms9dCx0aGlzLng9bix0aGlzLnk9ZX1mdW5jdGlvbiBqYyh0KXtyZXR1cm4gdC5fX3pvb218fGZifWZ1bmN0aW9uIEhjKCl7dC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBYYygpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIEdjKCl7cmV0dXJuIXQuZXZlbnQuYnV0dG9ufWZ1bmN0aW9uIFZjKCl7dmFyIHQsbixlPXRoaXM7cmV0dXJuIGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50Pyh0PShlPWUub3duZXJTVkdFbGVtZW50fHxlKS53aWR0aC5iYXNlVmFsLnZhbHVlLG49ZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSk6KHQ9ZS5jbGllbnRXaWR0aCxuPWUuY2xpZW50SGVpZ2h0KSxbWzAsMF0sW3Qsbl1dfWZ1bmN0aW9uICRjKCl7cmV0dXJuIHRoaXMuX196b29tfHxmYn1mdW5jdGlvbiBXYygpe3JldHVybi10LmV2ZW50LmRlbHRhWSoodC5ldmVudC5kZWx0YU1vZGU/MTIwOjEpLzUwMH1mdW5jdGlvbiBaYygpe3JldHVyblwib250b3VjaHN0YXJ0XCJpbiB0aGlzfWZ1bmN0aW9uIFFjKHQsbixlKXt2YXIgcj10LmludmVydFgoblswXVswXSktZVswXVswXSxpPXQuaW52ZXJ0WChuWzFdWzBdKS1lWzFdWzBdLG89dC5pbnZlcnRZKG5bMF1bMV0pLWVbMF1bMV0sYT10LmludmVydFkoblsxXVsxXSktZVsxXVsxXTtyZXR1cm4gdC50cmFuc2xhdGUoaT5yPyhyK2kpLzI6TWF0aC5taW4oMCxyKXx8TWF0aC5tYXgoMCxpKSxhPm8/KG8rYSkvMjpNYXRoLm1pbigwLG8pfHxNYXRoLm1heCgwLGEpKX12YXIgSmM9ZShuKSxLYz1KYy5yaWdodCx0cz1KYy5sZWZ0LG5zPUFycmF5LnByb3RvdHlwZSxlcz1ucy5zbGljZSxycz1ucy5tYXAsaXM9TWF0aC5zcXJ0KDUwKSxvcz1NYXRoLnNxcnQoMTApLGFzPU1hdGguc3FydCgyKSx1cz1BcnJheS5wcm90b3R5cGUuc2xpY2UsZnM9MSxjcz0yLHNzPTMsbHM9NCxocz0xZS02LGRzPXt2YWx1ZTpmdW5jdGlvbigpe319O1MucHJvdG90eXBlPU4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpTLG9uOmZ1bmN0aW9uKHQsbil7dmFyIGUscj10aGlzLl8saT1mdW5jdGlvbih0LG4pe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPVwiXCIscj10LmluZGV4T2YoXCIuXCIpO2lmKHI+PTAmJihlPXQuc2xpY2UocisxKSx0PXQuc2xpY2UoMCxyKSksdCYmIW4uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6ZX19KX0odCtcIlwiLHIpLG89LTEsYT1pLmxlbmd0aDt7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1uJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgY2FsbGJhY2s6IFwiK24pO2Zvcig7KytvPGE7KWlmKGU9KHQ9aVtvXSkudHlwZSlyW2VdPUUocltlXSx0Lm5hbWUsbik7ZWxzZSBpZihudWxsPT1uKWZvcihlIGluIHIpcltlXT1FKHJbZV0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChlPSh0PWlbb10pLnR5cGUpJiYoZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZSxyPTAsaT10Lmxlbmd0aDtyPGk7KytyKWlmKChlPXRbcl0pLm5hbWU9PT1uKXJldHVybiBlLnZhbHVlfShyW2VdLHQubmFtZSkpKXJldHVybiBlfX0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LG49dGhpcy5fO2Zvcih2YXIgZSBpbiBuKXRbZV09bltlXS5zbGljZSgpO3JldHVybiBuZXcgUyh0KX0sY2FsbDpmdW5jdGlvbih0LG4pe2lmKChlPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIGUscixpPW5ldyBBcnJheShlKSxvPTA7bzxlOysrbylpW29dPWFyZ3VtZW50c1tvKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIit0KTtmb3Iobz0wLGU9KHI9dGhpcy5fW3RdKS5sZW5ndGg7bzxlOysrbylyW29dLnZhbHVlLmFwcGx5KG4saSl9LGFwcGx5OmZ1bmN0aW9uKHQsbixlKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIrdCk7Zm9yKHZhciByPXRoaXMuX1t0XSxpPTAsbz1yLmxlbmd0aDtpPG87KytpKXJbaV0udmFsdWUuYXBwbHkobixlKX19O3ZhciBwcz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIix2cz17c3ZnOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIix4aHRtbDpwcyx4bGluazpcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIix4bWw6XCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCJ9LGdzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXModCl9fTtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQpe3ZhciB5cz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7aWYoIXlzLm1hdGNoZXMpe3ZhciBfcz15cy53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHlzLm1zTWF0Y2hlc1NlbGVjdG9yfHx5cy5tb3pNYXRjaGVzU2VsZWN0b3J8fHlzLm9NYXRjaGVzU2VsZWN0b3I7Z3M9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIF9zLmNhbGwodGhpcyx0KX19fX12YXIgYnM9Z3M7VS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlUsYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCxuKX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IodCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHQpfX07dmFyIG1zPVwiJFwiO0gucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsdGhpcy5fbmFtZXMuam9pbihcIiBcIikpKX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX25hbWVzLmluZGV4T2YodCk7bj49MCYmKHRoaXMuX25hbWVzLnNwbGljZShuLDEpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKFwiY2xhc3NcIix0aGlzLl9uYW1lcy5qb2luKFwiIFwiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciB4cz17fTtpZih0LmV2ZW50PW51bGwsXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50KXtcIm9ubW91c2VlbnRlclwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHwoeHM9e21vdXNlZW50ZXI6XCJtb3VzZW92ZXJcIixtb3VzZWxlYXZlOlwibW91c2VvdXRcIn0pfXZhciB3cz1bbnVsbF07dXQucHJvdG90eXBlPWZ0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6dXQsc2VsZWN0OmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXoodCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYSx1PW5baV0sZj11Lmxlbmd0aCxjPXJbaV09bmV3IEFycmF5KGYpLHM9MDtzPGY7KytzKShvPXVbc10pJiYoYT10LmNhbGwobyxvLl9fZGF0YV9fLHMsdSkpJiYoXCJfX2RhdGFfX1wiaW4gbyYmKGEuX19kYXRhX189by5fX2RhdGFfXyksY1tzXT1hKTtyZXR1cm4gbmV3IHV0KHIsdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1MKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1bXSxpPVtdLG89MDtvPGU7KytvKWZvcih2YXIgYSx1PW5bb10sZj11Lmxlbmd0aCxjPTA7YzxmOysrYykoYT11W2NdKSYmKHIucHVzaCh0LmNhbGwoYSxhLl9fZGF0YV9fLGMsdSkpLGkucHVzaChhKSk7cmV0dXJuIG5ldyB1dChyLGkpfSxmaWx0ZXI6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9YnModCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYT1uW2ldLHU9YS5sZW5ndGgsZj1yW2ldPVtdLGM9MDtjPHU7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmYucHVzaChvKTtyZXR1cm4gbmV3IHV0KHIsdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24odCxuKXtpZighdClyZXR1cm4gZD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGM9LTEsdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe2RbKytjXT10fSksZDt2YXIgZT1uP086cSxyPXRoaXMuX3BhcmVudHMsaT10aGlzLl9ncm91cHM7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSh0KSk7Zm9yKHZhciBvPWkubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHU9bmV3IEFycmF5KG8pLGY9bmV3IEFycmF5KG8pLGM9MDtjPG87KytjKXt2YXIgcz1yW2NdLGw9aVtjXSxoPWwubGVuZ3RoLGQ9dC5jYWxsKHMscyYmcy5fX2RhdGFfXyxjLHIpLHA9ZC5sZW5ndGgsdj11W2NdPW5ldyBBcnJheShwKSxnPWFbY109bmV3IEFycmF5KHApO2UocyxsLHYsZyxmW2NdPW5ldyBBcnJheShoKSxkLG4pO2Zvcih2YXIgeSxfLGI9MCxtPTA7YjxwOysrYilpZih5PXZbYl0pe2ZvcihiPj1tJiYobT1iKzEpOyEoXz1nW21dKSYmKyttPHA7KTt5Ll9uZXh0PV98fG51bGx9fXJldHVybiBhPW5ldyB1dChhLHIpLGEuX2VudGVyPXUsYS5fZXhpdD1mLGF9LGVudGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB1dCh0aGlzLl9lbnRlcnx8dGhpcy5fZ3JvdXBzLm1hcChEKSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbigpe3JldHVybiBuZXcgdXQodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChEKSx0aGlzLl9wYXJlbnRzKX0sbWVyZ2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPXQuX2dyb3VwcyxyPW4ubGVuZ3RoLGk9ZS5sZW5ndGgsbz1NYXRoLm1pbihyLGkpLGE9bmV3IEFycmF5KHIpLHU9MDt1PG87Kyt1KWZvcih2YXIgZixjPW5bdV0scz1lW3VdLGw9Yy5sZW5ndGgsaD1hW3VdPW5ldyBBcnJheShsKSxkPTA7ZDxsOysrZCkoZj1jW2RdfHxzW2RdKSYmKGhbZF09Zik7Zm9yKDt1PHI7Kyt1KWFbdV09blt1XTtyZXR1cm4gbmV3IHV0KGEsdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxuPS0xLGU9dC5sZW5ndGg7KytuPGU7KWZvcih2YXIgcixpPXRbbl0sbz1pLmxlbmd0aC0xLGE9aVtvXTstLW8+PTA7KShyPWlbb10pJiYoYSYmYSE9PXIubmV4dFNpYmxpbmcmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocixhKSxhPXIpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4obixlKXtyZXR1cm4gbiYmZT90KG4uX19kYXRhX18sZS5fX2RhdGFfXyk6IW4tIWV9dHx8KHQ9WSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxyPWUubGVuZ3RoLGk9bmV3IEFycmF5KHIpLG89MDtvPHI7KytvKXtmb3IodmFyIGEsdT1lW29dLGY9dS5sZW5ndGgsYz1pW29dPW5ldyBBcnJheShmKSxzPTA7czxmOysrcykoYT11W3NdKSYmKGNbc109YSk7Yy5zb3J0KG4pfXJldHVybiBuZXcgdXQoaSx0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyx0LmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfSxub2RlczpmdW5jdGlvbigpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksbj0tMTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dFsrK25dPXRoaXN9KSx0fSxub2RlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxuPTAsZT10Lmxlbmd0aDtuPGU7KytuKWZvcih2YXIgcj10W25dLGk9MCxvPXIubGVuZ3RoO2k8bzsrK2kpe3ZhciBhPXJbaV07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeysrdH0pLHR9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT0wLHI9bi5sZW5ndGg7ZTxyOysrZSlmb3IodmFyIGksbz1uW2VdLGE9MCx1PW8ubGVuZ3RoO2E8dTsrK2EpKGk9b1thXSkmJnQuY2FsbChpLGkuX19kYXRhX18sYSxvKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbih0LG4pe3ZhciBlPWsodCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgcj10aGlzLm5vZGUoKTtyZXR1cm4gZS5sb2NhbD9yLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCk6ci5nZXRBdHRyaWJ1dGUoZSl9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09bj9lLmxvY2FsP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX06XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9lLmxvY2FsP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZT90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZSl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19OmUubG9jYWw/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19KShlLG4pKX0sc3R5bGU6ZnVuY3Rpb24odCxuLGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1uP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbixlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1yP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LHIsZSl9fTpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4sZSl9fSkodCxuLG51bGw9PWU/XCJcIjplKSk6Rih0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19OlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09ZX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1ufX0pKHQsbikpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uKHQsbil7dmFyIGU9SSh0K1wiXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciByPWoodGhpcy5ub2RlKCkpLGk9LTEsbz1lLmxlbmd0aDsrK2k8bzspaWYoIXIuY29udGFpbnMoZVtpXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpeyhuLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9YOkcpKHRoaXMsdCl9fTpuP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe1godGhpcyx0KX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe0codGhpcyx0KX19KShlLG4pKX0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9WOihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09bj9cIlwiOm59fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fSkodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10PyQ6KFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09bj9cIlwiOm59fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX0pKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChXKX0sbG93ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKFopfSxhcHBlbmQ6ZnVuY3Rpb24odCl7dmFyIG49XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkModCk7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSl9LGluc2VydDpmdW5jdGlvbih0LG4pe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpDKHQpLHI9bnVsbD09bj9ROlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjp6KG4pO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KX0scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChKKX0sY2xvbmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/dHQ6Syl9LGRhdHVtOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoXCJfX2RhdGFfX1wiLHQpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBuPVwiXCIsZT10LmluZGV4T2YoXCIuXCIpO3JldHVybiBlPj0wJiYobj10LnNsaWNlKGUrMSksdD10LnNsaWNlKDAsZSkpLHt0eXBlOnQsbmFtZTpufX0pfSh0K1wiXCIpLGE9by5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtmb3IodT1uP2l0OnJ0LG51bGw9PWUmJihlPSExKSxyPTA7cjxhOysrcil0aGlzLmVhY2godShvW3JdLG4sZSkpO3JldHVybiB0aGlzfXZhciB1PXRoaXMubm9kZSgpLl9fb247aWYodSlmb3IodmFyIGYsYz0wLHM9dS5sZW5ndGg7YzxzOysrYylmb3Iocj0wLGY9dVtjXTtyPGE7KytyKWlmKChpPW9bcl0pLnR5cGU9PT1mLnR5cGUmJmkubmFtZT09PWYubmFtZSlyZXR1cm4gZi52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5lYWNoKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGF0KHRoaXMsdCxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhdCh0aGlzLHQsbil9fSkodCxuKSl9fTt2YXIgTXM9MDtsdC5wcm90b3R5cGU9c3QucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpsdCxnZXQ6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMuXzshKG4gaW4gdCk7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdFtuXX0sc2V0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbdGhpcy5fXT1ufSxyZW1vdmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuXyBpbiB0JiZkZWxldGUgdFt0aGlzLl9dfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fSx4dC5wcm90b3R5cGUub249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl8ub24uYXBwbHkodGhpcy5fLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT10aGlzLl8/dGhpczp0fTt2YXIgQXM9XCJcXFxccyooWystXT9cXFxcZCspXFxcXHMqXCIsVHM9XCJcXFxccyooWystXT9cXFxcZCpcXFxcLj9cXFxcZCsoPzpbZUVdWystXT9cXFxcZCspPylcXFxccypcIixOcz1cIlxcXFxzKihbKy1dP1xcXFxkKlxcXFwuP1xcXFxkKyg/OltlRV1bKy1dP1xcXFxkKyk/KSVcXFxccypcIixTcz0vXiMoWzAtOWEtZl17M30pJC8sRXM9L14jKFswLTlhLWZdezZ9KSQvLGtzPW5ldyBSZWdFeHAoXCJecmdiXFxcXChcIitbQXMsQXMsQXNdK1wiXFxcXCkkXCIpLENzPW5ldyBSZWdFeHAoXCJecmdiXFxcXChcIitbTnMsTnMsTnNdK1wiXFxcXCkkXCIpLFBzPW5ldyBSZWdFeHAoXCJecmdiYVxcXFwoXCIrW0FzLEFzLEFzLFRzXStcIlxcXFwpJFwiKSx6cz1uZXcgUmVnRXhwKFwiXnJnYmFcXFxcKFwiK1tOcyxOcyxOcyxUc10rXCJcXFxcKSRcIiksUnM9bmV3IFJlZ0V4cChcIl5oc2xcXFxcKFwiK1tUcyxOcyxOc10rXCJcXFxcKSRcIiksTHM9bmV3IFJlZ0V4cChcIl5oc2xhXFxcXChcIitbVHMsTnMsTnMsVHNdK1wiXFxcXCkkXCIpLERzPXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O050KEV0LGt0LHtkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmhleCgpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpK1wiXCJ9fSksTnQoTHQsUnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBMdCh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgTHQodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIDA8PXRoaXMuciYmdGhpcy5yPD0yNTUmJjA8PXRoaXMuZyYmdGhpcy5nPD0yNTUmJjA8PXRoaXMuYiYmdGhpcy5iPD0yNTUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6ZnVuY3Rpb24oKXtyZXR1cm5cIiNcIitEdCh0aGlzLnIpK0R0KHRoaXMuZykrRHQodGhpcy5iKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpP1wicmdiKFwiOlwicmdiYShcIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrXCIsIFwiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpK1wiLCBcIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoMT09PXQ/XCIpXCI6XCIsIFwiK3QrXCIpXCIpfX0pKSxOdChPdCxxdCxTdChFdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8xLy43Ok1hdGgucG93KDEvLjcsdCksbmV3IE90KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IE90KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxuPWlzTmFOKHQpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLGU9dGhpcy5sLHI9ZSsoZTwuNT9lOjEtZSkqbixpPTIqZS1yO3JldHVybiBuZXcgTHQoWXQodD49MjQwP3QtMjQwOnQrMTIwLGksciksWXQodCxpLHIpLFl0KHQ8MTIwP3QrMjQwOnQtMTIwLGksciksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9fSkpO3ZhciBVcz1NYXRoLlBJLzE4MCxxcz0xODAvTWF0aC5QSSxPcz0uOTY0MjIsWXM9MSxCcz0uODI1MjEsRnM9NC8yOSxJcz02LzI5LGpzPTMqSXMqSXMsSHM9SXMqSXMqSXM7TnQoSXQsRnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSXQodGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBJdCh0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmwrMTYpLzExNixuPWlzTmFOKHRoaXMuYSk/dDp0K3RoaXMuYS81MDAsZT1pc05hTih0aGlzLmIpP3Q6dC10aGlzLmIvMjAwO3JldHVybiBuPU9zKkh0KG4pLHQ9WXMqSHQodCksZT1CcypIdChlKSxuZXcgTHQoWHQoMy4xMzM4NTYxKm4tMS42MTY4NjY3KnQtLjQ5MDYxNDYqZSksWHQoLS45Nzg3Njg0Km4rMS45MTYxNDE1KnQrLjAzMzQ1NCplKSxYdCguMDcxOTQ1MypuLS4yMjg5OTE0KnQrMS40MDUyNDI3KmUpLHRoaXMub3BhY2l0eSl9fSkpLE50KFd0LCR0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFd0KHRoaXMuaCx0aGlzLmMsdGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV3QodGhpcy5oLHRoaXMuYyx0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gQnQodGhpcykucmdiKCl9fSkpO3ZhciBYcz0tLjI5MjI3LEdzPS0uOTA2NDksVnM9MS45NzI5NCwkcz1WcypHcyxXcz0xLjc4Mjc3KlZzLFpzPTEuNzgyNzcqWHMtIC0uMTQ4NjEqR3M7TnQoUXQsWnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBRdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyBRdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqVXMsbj0rdGhpcy5sLGU9aXNOYU4odGhpcy5zKT8wOnRoaXMucypuKigxLW4pLHI9TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KTtyZXR1cm4gbmV3IEx0KDI1NSoobitlKigtLjE0ODYxKnIrMS43ODI3NyppKSksMjU1KihuK2UqKFhzKnIrR3MqaSkpLDI1NSoobitlKihWcypyKSksdGhpcy5vcGFjaXR5KX19KSk7dmFyIFFzLEpzLEtzLHRsLG5sLGVsLHJsPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPXIoKHQ9UnQodCkpLnIsKG49UnQobikpLnIpLGk9cih0Lmcsbi5nKSxvPXIodC5iLG4uYiksYT1hbih0Lm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQucj1lKG4pLHQuZz1pKG4pLHQuYj1vKG4pLHQub3BhY2l0eT1hKG4pLHQrXCJcIn19dmFyIHI9b24obik7cmV0dXJuIGUuZ2FtbWE9dCxlfSgxKSxpbD11bihLdCksb2w9dW4odG4pLGFsPS9bLStdPyg/OlxcZCtcXC4/XFxkKnxcXC4/XFxkKykoPzpbZUVdWy0rXT9cXGQrKT8vZyx1bD1uZXcgUmVnRXhwKGFsLnNvdXJjZSxcImdcIiksZmw9MTgwL01hdGguUEksY2w9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX0sc2w9Z24oZnVuY3Rpb24odCl7cmV0dXJuXCJub25lXCI9PT10P2NsOihRc3x8KFFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJESVZcIiksSnM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEtzPWRvY3VtZW50LmRlZmF1bHRWaWV3KSxRcy5zdHlsZS50cmFuc2Zvcm09dCx0PUtzLmdldENvbXB1dGVkU3R5bGUoSnMuYXBwZW5kQ2hpbGQoUXMpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoXCJ0cmFuc2Zvcm1cIiksSnMucmVtb3ZlQ2hpbGQoUXMpLHQ9dC5zbGljZSg3LC0xKS5zcGxpdChcIixcIiksdm4oK3RbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0sXCJweCwgXCIsXCJweClcIixcImRlZylcIiksbGw9Z24oZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/Y2w6KHRsfHwodGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImdcIikpLHRsLnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLHQpLCh0PXRsLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpPyh0PXQubWF0cml4LHZuKHQuYSx0LmIsdC5jLHQuZCx0LmUsdC5mKSk6Y2wpfSxcIiwgXCIsXCIpXCIsXCIpXCIpLGhsPU1hdGguU1FSVDIsZGw9MixwbD00LHZsPTFlLTEyLGdsPWJuKHJuKSx5bD1ibihhbiksX2w9bW4ocm4pLGJsPW1uKGFuKSxtbD14bihybikseGw9eG4oYW4pLHdsPTAsTWw9MCxBbD0wLFRsPTFlMyxObD0wLFNsPTAsRWw9MCxrbD1cIm9iamVjdFwiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLENsPVwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07QW4ucHJvdG90eXBlPVRuLnByb3RvdHlwZT17Y29uc3RydWN0b3I6QW4scmVzdGFydDpmdW5jdGlvbih0LG4sZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb25cIik7ZT0obnVsbD09ZT93bigpOitlKSsobnVsbD09bj8wOituKSx0aGlzLl9uZXh0fHxlbD09PXRoaXN8fChlbD9lbC5fbmV4dD10aGlzOm5sPXRoaXMsZWw9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9ZSxrbigpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCxrbigpKX19O3ZhciBQbD1OKFwic3RhcnRcIixcImVuZFwiLFwiaW50ZXJydXB0XCIpLHpsPVtdLFJsPTAsTGw9MSxEbD0yLFVsPTMscWw9NCxPbD01LFlsPTYsQmw9ZnQucHJvdG90eXBlLmNvbnN0cnVjdG9yLEZsPTAsSWw9ZnQucHJvdG90eXBlO09uLnByb3RvdHlwZT1Zbi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk9uLHNlbGVjdDpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9uYW1lLGU9dGhpcy5faWQ7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9eih0KSk7Zm9yKHZhciByPXRoaXMuX2dyb3VwcyxpPXIubGVuZ3RoLG89bmV3IEFycmF5KGkpLGE9MDthPGk7KythKWZvcih2YXIgdSxmLGM9clthXSxzPWMubGVuZ3RoLGw9b1thXT1uZXcgQXJyYXkocyksaD0wO2g8czsrK2gpKHU9Y1toXSkmJihmPXQuY2FsbCh1LHUuX19kYXRhX18saCxjKSkmJihcIl9fZGF0YV9fXCJpbiB1JiYoZi5fX2RhdGFfXz11Ll9fZGF0YV9fKSxsW2hdPWYsUG4obFtoXSxuLGUsaCxsLExuKHUsZSkpKTtyZXR1cm4gbmV3IE9uKG8sdGhpcy5fcGFyZW50cyxuLGUpfSxzZWxlY3RBbGw6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5fbmFtZSxlPXRoaXMuX2lkO1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PUwodCkpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPVtdLGE9W10sdT0wO3U8aTsrK3UpZm9yKHZhciBmLGM9clt1XSxzPWMubGVuZ3RoLGw9MDtsPHM7KytsKWlmKGY9Y1tsXSl7Zm9yKHZhciBoLGQ9dC5jYWxsKGYsZi5fX2RhdGFfXyxsLGMpLHA9TG4oZixlKSx2PTAsZz1kLmxlbmd0aDt2PGc7Kyt2KShoPWRbdl0pJiZQbihoLG4sZSx2LGQscCk7by5wdXNoKGQpLGEucHVzaChmKX1yZXR1cm4gbmV3IE9uKG8sYSxuLGUpfSxmaWx0ZXI6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9YnModCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYT1uW2ldLHU9YS5sZW5ndGgsZj1yW2ldPVtdLGM9MDtjPHU7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmYucHVzaChvKTtyZXR1cm4gbmV3IE9uKHIsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVuY3Rpb24odCl7aWYodC5faWQhPT10aGlzLl9pZCl0aHJvdyBuZXcgRXJyb3I7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPXQuX2dyb3VwcyxyPW4ubGVuZ3RoLGk9ZS5sZW5ndGgsbz1NYXRoLm1pbihyLGkpLGE9bmV3IEFycmF5KHIpLHU9MDt1PG87Kyt1KWZvcih2YXIgZixjPW5bdV0scz1lW3VdLGw9Yy5sZW5ndGgsaD1hW3VdPW5ldyBBcnJheShsKSxkPTA7ZDxsOysrZCkoZj1jW2RdfHxzW2RdKSYmKGhbZF09Zik7Zm9yKDt1PHI7Kyt1KWFbdV09blt1XTtyZXR1cm4gbmV3IE9uKGEsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCbCh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxuPXRoaXMuX2lkLGU9Qm4oKSxyPXRoaXMuX2dyb3VwcyxpPXIubGVuZ3RoLG89MDtvPGk7KytvKWZvcih2YXIgYSx1PXJbb10sZj11Lmxlbmd0aCxjPTA7YzxmOysrYylpZihhPXVbY10pe3ZhciBzPUxuKGEsbik7UG4oYSx0LGUsYyx1LHt0aW1lOnMudGltZStzLmRlbGF5K3MuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjpzLmR1cmF0aW9uLGVhc2U6cy5lYXNlfSl9cmV0dXJuIG5ldyBPbihyLHRoaXMuX3BhcmVudHMsdCxlKX0sY2FsbDpJbC5jYWxsLG5vZGVzOklsLm5vZGVzLG5vZGU6SWwubm9kZSxzaXplOklsLnNpemUsZW1wdHk6SWwuZW1wdHksZWFjaDpJbC5lYWNoLG9uOmZ1bmN0aW9uKHQsbil7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9Mbih0aGlzLm5vZGUoKSxlKS5vbi5vbih0KTp0aGlzLmVhY2goZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbz1mdW5jdGlvbih0KXtyZXR1cm4odCtcIlwiKS50cmltKCkuc3BsaXQoL158XFxzKy8pLmV2ZXJ5KGZ1bmN0aW9uKHQpe3ZhciBuPXQuaW5kZXhPZihcIi5cIik7cmV0dXJuIG4+PTAmJih0PXQuc2xpY2UoMCxuKSksIXR8fFwic3RhcnRcIj09PXR9KX0obik/em46Um47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLHQpLHU9YS5vbjt1IT09ciYmKGk9KHI9dSkuY29weSgpKS5vbihuLGUpLGEub249aX19KGUsdCxuKSl9LGF0dHI6ZnVuY3Rpb24odCxuKXt2YXIgZT1rKHQpLHI9XCJ0cmFuc2Zvcm1cIj09PWU/bGw6cW47cmV0dXJuIHRoaXMuYXR0clR3ZWVuKHQsXCJmdW5jdGlvblwiPT10eXBlb2Ygbj8oZS5sb2NhbD9mdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLHU9ZSh0aGlzKTtpZihudWxsIT11KXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKSk9PT11P251bGw6YT09PXImJnU9PT1pP286bz1uKHI9YSxpPXUpO3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEsdT1lKHRoaXMpO2lmKG51bGwhPXUpcmV0dXJuKGE9dGhpcy5nZXRBdHRyaWJ1dGUodCkpPT09dT9udWxsOmE9PT1yJiZ1PT09aT9vOm89bihyPWEsaT11KTt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19KShlLHIsVW4odGhpcyxcImF0dHIuXCIrdCxuKSk6bnVsbD09bj8oZS5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19KShlKTooZS5sb2NhbD9mdW5jdGlvbih0LG4sZSl7dmFyIHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX06ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89dGhpcy5nZXRBdHRyaWJ1dGUodCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX0pKGUscixuK1wiXCIpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uKHQsbil7dmFyIGU9XCJhdHRyLlwiK3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihlPXRoaXMudHdlZW4oZSkpJiZlLl92YWx1ZTtpZihudWxsPT1uKXJldHVybiB0aGlzLnR3ZWVuKGUsbnVsbCk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7dmFyIHI9ayh0KTtyZXR1cm4gdGhpcy50d2VlbihlLChyLmxvY2FsP2Z1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlPXRoaXMscj1uLmFwcGx5KGUsYXJndW1lbnRzKTtyZXR1cm4gciYmZnVuY3Rpb24obil7ZS5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwscihuKSl9fXJldHVybiBlLl92YWx1ZT1uLGV9OmZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlPXRoaXMscj1uLmFwcGx5KGUsYXJndW1lbnRzKTtyZXR1cm4gciYmZnVuY3Rpb24obil7ZS5zZXRBdHRyaWJ1dGUodCxyKG4pKX19cmV0dXJuIGUuX3ZhbHVlPW4sZX0pKHIsbikpfSxzdHlsZTpmdW5jdGlvbih0LG4sZSl7dmFyIHI9XCJ0cmFuc2Zvcm1cIj09KHQrPVwiXCIpP3NsOnFuO3JldHVybiBudWxsPT1uP3RoaXMuc3R5bGVUd2Vlbih0LGZ1bmN0aW9uKHQsbil7dmFyIGUscixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUYodGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLEYodGhpcyx0KSk7cmV0dXJuIG89PT1hP251bGw6bz09PWUmJmE9PT1yP2k6aT1uKGU9byxyPWEpfX0odCxyKSkub24oXCJlbmQuc3R5bGUuXCIrdCxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX0odCkpOnRoaXMuc3R5bGVUd2Vlbih0LFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1GKHRoaXMsdCksdT1lKHRoaXMpO3JldHVybiBudWxsPT11JiYodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSx1PUYodGhpcyx0KSksYT09PXU/bnVsbDphPT09ciYmdT09PWk/bzpvPW4ocj1hLGk9dSl9fSh0LHIsVW4odGhpcyxcInN0eWxlLlwiK3QsbikpOmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUYodGhpcyx0KTtyZXR1cm4gbz09PWU/bnVsbDpvPT09cj9pOmk9bihyPW8sZSl9fSh0LHIsbitcIlwiKSxlKX0sc3R5bGVUd2VlbjpmdW5jdGlvbih0LG4sZSl7dmFyIHI9XCJzdHlsZS5cIisodCs9XCJcIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihyPXRoaXMudHdlZW4ocikpJiZyLl92YWx1ZTtpZihudWxsPT1uKXJldHVybiB0aGlzLnR3ZWVuKHIsbnVsbCk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4ocixmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcigpe3ZhciByPXRoaXMsaT1uLmFwcGx5KHIsYXJndW1lbnRzKTtyZXR1cm4gaSYmZnVuY3Rpb24obil7ci5zdHlsZS5zZXRQcm9wZXJ0eSh0LGkobiksZSl9fXJldHVybiByLl92YWx1ZT1uLHJ9KHQsbixudWxsPT1lP1wiXCI6ZSkpfSx0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnR3ZWVuKFwidGV4dFwiLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dCh0aGlzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PW4/XCJcIjpufX0oVW4odGhpcyxcInRleHRcIix0KSk6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX0obnVsbD09dD9cIlwiOnQrXCJcIikpfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbihcImVuZC5yZW1vdmVcIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBlIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtlIT09dClyZXR1cm47biYmbi5yZW1vdmVDaGlsZCh0aGlzKX19KHRoaXMuX2lkKSl9LHR3ZWVuOmZ1bmN0aW9uKHQsbil7dmFyIGU9dGhpcy5faWQ7aWYodCs9XCJcIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgcixpPUxuKHRoaXMubm9kZSgpLGUpLnR3ZWVuLG89MCxhPWkubGVuZ3RoO288YTsrK28paWYoKHI9aVtvXSkubmFtZT09PXQpcmV0dXJuIHIudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0LG4pe3ZhciBlLHI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9Um4odGhpcyx0KSxvPWkudHdlZW47aWYobyE9PWUpZm9yKHZhciBhPTAsdT0ocj1lPW8pLmxlbmd0aDthPHU7KythKWlmKHJbYV0ubmFtZT09PW4peyhyPXIuc2xpY2UoKSkuc3BsaWNlKGEsMSk7YnJlYWt9aS50d2Vlbj1yfX06ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89Um4odGhpcyx0KSxhPW8udHdlZW47aWYoYSE9PXIpe2k9KHI9YSkuc2xpY2UoKTtmb3IodmFyIHU9e25hbWU6bix2YWx1ZTplfSxmPTAsYz1pLmxlbmd0aDtmPGM7KytmKWlmKGlbZl0ubmFtZT09PW4pe2lbZl09dTticmVha31mPT09YyYmaS5wdXNoKHUpfW8udHdlZW49aX19KShlLHQsbikpfSxkZWxheTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt6bih0aGlzLHQpLmRlbGF5PStuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIG49K24sZnVuY3Rpb24oKXt6bih0aGlzLHQpLmRlbGF5PW59fSkobix0KSk6TG4odGhpcy5ub2RlKCksbikuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2YgdD9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe1JuKHRoaXMsdCkuZHVyYXRpb249K24uYXBwbHkodGhpcyxhcmd1bWVudHMpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gbj0rbixmdW5jdGlvbigpe1JuKHRoaXMsdCkuZHVyYXRpb249bn19KShuLHQpKTpMbih0aGlzLm5vZGUoKSxuKS5kdXJhdGlvbn0sZWFzZTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24odCxuKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtSbih0aGlzLHQpLmVhc2U9bn19KG4sdCkpOkxuKHRoaXMubm9kZSgpLG4pLmVhc2V9fTt2YXIgamw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBNYXRoLnBvdyh0LG4pfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxIbD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIDEtTWF0aC5wb3coMS10LG4pfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxYbD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuKCh0Kj0yKTw9MT9NYXRoLnBvdyh0LG4pOjItTWF0aC5wb3coMi10LG4pKS8yfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxHbD1NYXRoLlBJLFZsPUdsLzIsJGw9NC8xMSxXbD02LzExLFpsPTgvMTEsUWw9Ljc1LEpsPTkvMTEsS2w9MTAvMTEsdGg9LjkzNzUsbmg9MjEvMjIsZWg9NjMvNjQscmg9MS8kbC8kbCxpaD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQqdCooKG4rMSkqdC1uKX1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLG9oPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4tLXQqdCooKG4rMSkqdCtuKSsxfXJldHVybiBuPStuLGUub3ZlcnNob290PXQsZX0oMS43MDE1OCksYWg9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybigodCo9Mik8MT90KnQqKChuKzEpKnQtbik6KHQtPTIpKnQqKChuKzEpKnQrbikrMikvMn1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLHVoPTIqTWF0aC5QSSxmaD1mdW5jdGlvbiB0KG4sZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gbipNYXRoLnBvdygyLDEwKi0tdCkqTWF0aC5zaW4oKGktdCkvZSl9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLGNoPWZ1bmN0aW9uIHQobixlKXtmdW5jdGlvbiByKHQpe3JldHVybiAxLW4qTWF0aC5wb3coMiwtMTAqKHQ9K3QpKSpNYXRoLnNpbigodCtpKS9lKX12YXIgaT1NYXRoLmFzaW4oMS8obj1NYXRoLm1heCgxLG4pKSkqKGUvPXVoKTtyZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24obil7cmV0dXJuIHQobixlKnVoKX0sci5wZXJpb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHQobixlKX0scn0oMSwuMyksc2g9ZnVuY3Rpb24gdChuLGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuKCh0PTIqdC0xKTwwP24qTWF0aC5wb3coMiwxMCp0KSpNYXRoLnNpbigoaS10KS9lKToyLW4qTWF0aC5wb3coMiwtMTAqdCkqTWF0aC5zaW4oKGkrdCkvZSkpLzJ9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLGxoPXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpJbn07ZnQucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7RG4odGhpcyx0KX0pfSxmdC5wcm90b3R5cGUudHJhbnNpdGlvbj1mdW5jdGlvbih0KXt2YXIgbixlO3QgaW5zdGFuY2VvZiBPbj8obj10Ll9pZCx0PXQuX25hbWUpOihuPUJuKCksKGU9bGgpLnRpbWU9d24oKSx0PW51bGw9PXQ/bnVsbDp0K1wiXCIpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPTA7bzxpOysrbylmb3IodmFyIGEsdT1yW29dLGY9dS5sZW5ndGgsYz0wO2M8ZjsrK2MpKGE9dVtjXSkmJlBuKGEsdCxuLGMsdSxlfHxWbihhLG4pKTtyZXR1cm4gbmV3IE9uKHIsdGhpcy5fcGFyZW50cyx0LG4pfTt2YXIgaGg9W251bGxdLGRoPXtuYW1lOlwiZHJhZ1wifSxwaD17bmFtZTpcInNwYWNlXCJ9LHZoPXtuYW1lOlwiaGFuZGxlXCJ9LGdoPXtuYW1lOlwiY2VudGVyXCJ9LHloPXtuYW1lOlwieFwiLGhhbmRsZXM6W1wiZVwiLFwid1wiXS5tYXAoUW4pLGlucHV0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQmJltbdFswXSxuWzBdWzFdXSxbdFsxXSxuWzFdWzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMF0sdFsxXVswXV19fSxfaD17bmFtZTpcInlcIixoYW5kbGVzOltcIm5cIixcInNcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0LG4pe3JldHVybiB0JiZbW25bMF1bMF0sdFswXV0sW25bMV1bMF0sdFsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlt0WzBdWzFdLHRbMV1bMV1dfX0sYmg9e25hbWU6XCJ4eVwiLGhhbmRsZXM6W1wiblwiLFwiZVwiLFwic1wiLFwid1wiLFwibndcIixcIm5lXCIsXCJzZVwiLFwic3dcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdH0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sbWg9e292ZXJsYXk6XCJjcm9zc2hhaXJcIixzZWxlY3Rpb246XCJtb3ZlXCIsbjpcIm5zLXJlc2l6ZVwiLGU6XCJldy1yZXNpemVcIixzOlwibnMtcmVzaXplXCIsdzpcImV3LXJlc2l6ZVwiLG53OlwibndzZS1yZXNpemVcIixuZTpcIm5lc3ctcmVzaXplXCIsc2U6XCJud3NlLXJlc2l6ZVwiLHN3OlwibmVzdy1yZXNpemVcIn0seGg9e2U6XCJ3XCIsdzpcImVcIixudzpcIm5lXCIsbmU6XCJud1wiLHNlOlwic3dcIixzdzpcInNlXCJ9LHdoPXtuOlwic1wiLHM6XCJuXCIsbnc6XCJzd1wiLG5lOlwic2VcIixzZTpcIm5lXCIsc3c6XCJud1wifSxNaD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46bnVsbCxlOjEsczpudWxsLHc6LTEsbnc6LTEsbmU6MSxzZToxLHN3Oi0xfSxBaD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46LTEsZTpudWxsLHM6MSx3Om51bGwsbnc6LTEsbmU6LTEsc2U6MSxzdzoxfSxUaD1NYXRoLmNvcyxOaD1NYXRoLnNpbixTaD1NYXRoLlBJLEVoPVNoLzIsa2g9MipTaCxDaD1NYXRoLm1heCxQaD1BcnJheS5wcm90b3R5cGUuc2xpY2Usemg9TWF0aC5QSSxSaD0yKnpoLExoPVJoLTFlLTY7aWUucHJvdG90eXBlPW9lLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aWUsbW92ZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fKz1cIk1cIisodGhpcy5feDA9dGhpcy5feDE9K3QpK1wiLFwiKyh0aGlzLl95MD10aGlzLl95MT0rbil9LGNsb3NlUGF0aDpmdW5jdGlvbigpe251bGwhPT10aGlzLl94MSYmKHRoaXMuX3gxPXRoaXMuX3gwLHRoaXMuX3kxPXRoaXMuX3kwLHRoaXMuXys9XCJaXCIpfSxsaW5lVG86ZnVuY3Rpb24odCxuKXt0aGlzLl8rPVwiTFwiKyh0aGlzLl94MT0rdCkrXCIsXCIrKHRoaXMuX3kxPStuKX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyKXt0aGlzLl8rPVwiUVwiKyArdCtcIixcIisgK24rXCIsXCIrKHRoaXMuX3gxPStlKStcIixcIisodGhpcy5feTE9K3IpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsbixlLHIsaSxvKXt0aGlzLl8rPVwiQ1wiKyArdCtcIixcIisgK24rXCIsXCIrICtlK1wiLFwiKyArcitcIixcIisodGhpcy5feDE9K2kpK1wiLFwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKHQsbixlLHIsaSl7dD0rdCxuPStuLGU9K2Uscj0rcixpPStpO3ZhciBvPXRoaXMuX3gxLGE9dGhpcy5feTEsdT1lLXQsZj1yLW4sYz1vLXQscz1hLW4sbD1jKmMrcypzO2lmKGk8MCl0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiK2kpO2lmKG51bGw9PT10aGlzLl94MSl0aGlzLl8rPVwiTVwiKyh0aGlzLl94MT10KStcIixcIisodGhpcy5feTE9bik7ZWxzZSBpZihsPjFlLTYpaWYoTWF0aC5hYnMocyp1LWYqYyk+MWUtNiYmaSl7dmFyIGg9ZS1vLGQ9ci1hLHA9dSp1K2YqZix2PWgqaCtkKmQsZz1NYXRoLnNxcnQocCkseT1NYXRoLnNxcnQobCksXz1pKk1hdGgudGFuKCh6aC1NYXRoLmFjb3MoKHArbC12KS8oMipnKnkpKSkvMiksYj1fL3ksbT1fL2c7TWF0aC5hYnMoYi0xKT4xZS02JiYodGhpcy5fKz1cIkxcIisodCtiKmMpK1wiLFwiKyhuK2IqcykpLHRoaXMuXys9XCJBXCIraStcIixcIitpK1wiLDAsMCxcIisgKyhzKmg+YypkKStcIixcIisodGhpcy5feDE9dCttKnUpK1wiLFwiKyh0aGlzLl95MT1uK20qZil9ZWxzZSB0aGlzLl8rPVwiTFwiKyh0aGlzLl94MT10KStcIixcIisodGhpcy5feTE9bik7ZWxzZTt9LGFyYzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dD0rdCxuPStuO3ZhciBhPShlPStlKSpNYXRoLmNvcyhyKSx1PWUqTWF0aC5zaW4ociksZj10K2EsYz1uK3Uscz0xXm8sbD1vP3ItaTppLXI7aWYoZTwwKXRocm93IG5ldyBFcnJvcihcIm5lZ2F0aXZlIHJhZGl1czogXCIrZSk7bnVsbD09PXRoaXMuX3gxP3RoaXMuXys9XCJNXCIrZitcIixcIitjOihNYXRoLmFicyh0aGlzLl94MS1mKT4xZS02fHxNYXRoLmFicyh0aGlzLl95MS1jKT4xZS02KSYmKHRoaXMuXys9XCJMXCIrZitcIixcIitjKSxlJiYobDwwJiYobD1sJVJoK1JoKSxsPkxoP3RoaXMuXys9XCJBXCIrZStcIixcIitlK1wiLDAsMSxcIitzK1wiLFwiKyh0LWEpK1wiLFwiKyhuLXUpK1wiQVwiK2UrXCIsXCIrZStcIiwwLDEsXCIrcytcIixcIisodGhpcy5feDE9ZikrXCIsXCIrKHRoaXMuX3kxPWMpOmw+MWUtNiYmKHRoaXMuXys9XCJBXCIrZStcIixcIitlK1wiLDAsXCIrICsobD49emgpK1wiLFwiK3MrXCIsXCIrKHRoaXMuX3gxPXQrZSpNYXRoLmNvcyhpKSkrXCIsXCIrKHRoaXMuX3kxPW4rZSpNYXRoLnNpbihpKSkpKX0scmVjdDpmdW5jdGlvbih0LG4sZSxyKXt0aGlzLl8rPVwiTVwiKyh0aGlzLl94MD10aGlzLl94MT0rdCkrXCIsXCIrKHRoaXMuX3kwPXRoaXMuX3kxPStuKStcImhcIisgK2UrXCJ2XCIrICtyK1wiaFwiKy1lK1wiWlwifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTtsZS5wcm90b3R5cGU9aGUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpsZSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuXCIkXCIrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbXCIkXCIrdF19LHNldDpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzW1wiJFwiK3RdPW4sdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBuPVwiJFwiK3Q7cmV0dXJuIG4gaW4gdGhpcyYmZGVsZXRlIHRoaXNbbl19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpXCIkXCI9PT10WzBdJiZkZWxldGUgdGhpc1t0XX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmdC5wdXNoKG4uc2xpY2UoMSkpO3JldHVybiB0fSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQucHVzaCh0aGlzW25dKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmdC5wdXNoKHtrZXk6bi5zbGljZSgxKSx2YWx1ZTp0aGlzW25dfSk7cmV0dXJuIHR9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmKyt0O3JldHVybiB0fSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKWlmKFwiJFwiPT09dFswXSlyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQodGhpc1tuXSxuLnNsaWNlKDEpLHRoaXMpfX07dmFyIERoPWhlLnByb3RvdHlwZTt5ZS5wcm90b3R5cGU9X2UucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp5ZSxoYXM6RGguaGFzLGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdCs9XCJcIix0aGlzW1wiJFwiK3RdPXQsdGhpc30scmVtb3ZlOkRoLnJlbW92ZSxjbGVhcjpEaC5jbGVhcix2YWx1ZXM6RGgua2V5cyxzaXplOkRoLnNpemUsZW1wdHk6RGguZW1wdHksZWFjaDpEaC5lYWNofTt2YXIgVWg9QXJyYXkucHJvdG90eXBlLnNsaWNlLHFoPVtbXSxbW1sxLDEuNV0sWy41LDFdXV0sW1tbMS41LDFdLFsxLDEuNV1dXSxbW1sxLjUsMV0sWy41LDFdXV0sW1tbMSwuNV0sWzEuNSwxXV1dLFtbWzEsMS41XSxbLjUsMV1dLFtbMSwuNV0sWzEuNSwxXV1dLFtbWzEsLjVdLFsxLDEuNV1dXSxbW1sxLC41XSxbLjUsMV1dXSxbW1suNSwxXSxbMSwuNV1dXSxbW1sxLDEuNV0sWzEsLjVdXV0sW1tbLjUsMV0sWzEsLjVdXSxbWzEuNSwxXSxbMSwxLjVdXV0sW1tbMS41LDFdLFsxLC41XV1dLFtbWy41LDFdLFsxLjUsMV1dXSxbW1sxLDEuNV0sWzEuNSwxXV1dLFtbWy41LDFdLFsxLDEuNV1dXSxbXV0sT2g9e30sWWg9e30sQmg9MzQsRmg9MTAsSWg9MTMsamg9a2UoXCIsXCIpLEhoPWpoLnBhcnNlLFhoPWpoLnBhcnNlUm93cyxHaD1qaC5mb3JtYXQsVmg9amguZm9ybWF0Um93cywkaD1rZShcIlxcdFwiKSxXaD0kaC5wYXJzZSxaaD0kaC5wYXJzZVJvd3MsUWg9JGguZm9ybWF0LEpoPSRoLmZvcm1hdFJvd3MsS2g9TGUoSGgpLHRkPUxlKFdoKSxuZD1VZShcImFwcGxpY2F0aW9uL3htbFwiKSxlZD1VZShcInRleHQvaHRtbFwiKSxyZD1VZShcImltYWdlL3N2Zyt4bWxcIiksaWQ9amUucHJvdG90eXBlPUhlLnByb3RvdHlwZTtpZC5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQsbixlPW5ldyBIZSh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLHI9dGhpcy5fcm9vdDtpZighcilyZXR1cm4gZTtpZighci5sZW5ndGgpcmV0dXJuIGUuX3Jvb3Q9WGUociksZTtmb3IodD1be3NvdXJjZTpyLHRhcmdldDplLl9yb290PW5ldyBBcnJheSg0KX1dO3I9dC5wb3AoKTspZm9yKHZhciBpPTA7aTw0OysraSkobj1yLnNvdXJjZVtpXSkmJihuLmxlbmd0aD90LnB1c2goe3NvdXJjZTpuLHRhcmdldDpyLnRhcmdldFtpXT1uZXcgQXJyYXkoNCl9KTpyLnRhcmdldFtpXT1YZShuKSk7cmV0dXJuIGV9LGlkLmFkZD1mdW5jdGlvbih0KXt2YXIgbj0rdGhpcy5feC5jYWxsKG51bGwsdCksZT0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIFllKHRoaXMuY292ZXIobixlKSxuLGUsdCl9LGlkLmFkZEFsbD1mdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvPXQubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHU9bmV3IEFycmF5KG8pLGY9MS8wLGM9MS8wLHM9LTEvMCxsPS0xLzA7Zm9yKGU9MDtlPG87KytlKWlzTmFOKHI9K3RoaXMuX3guY2FsbChudWxsLG49dFtlXSkpfHxpc05hTihpPSt0aGlzLl95LmNhbGwobnVsbCxuKSl8fChhW2VdPXIsdVtlXT1pLHI8ZiYmKGY9cikscj5zJiYocz1yKSxpPGMmJihjPWkpLGk+bCYmKGw9aSkpO2ZvcihzPGYmJihmPXRoaXMuX3gwLHM9dGhpcy5feDEpLGw8YyYmKGM9dGhpcy5feTAsbD10aGlzLl95MSksdGhpcy5jb3ZlcihmLGMpLmNvdmVyKHMsbCksZT0wO2U8bzsrK2UpWWUodGhpcyxhW2VdLHVbZV0sdFtlXSk7cmV0dXJuIHRoaXN9LGlkLmNvdmVyPWZ1bmN0aW9uKHQsbil7aWYoaXNOYU4odD0rdCl8fGlzTmFOKG49K24pKXJldHVybiB0aGlzO3ZhciBlPXRoaXMuX3gwLHI9dGhpcy5feTAsaT10aGlzLl94MSxvPXRoaXMuX3kxO2lmKGlzTmFOKGUpKWk9KGU9TWF0aC5mbG9vcih0KSkrMSxvPShyPU1hdGguZmxvb3IobikpKzE7ZWxzZXtpZighKGU+dHx8dD5pfHxyPm58fG4+bykpcmV0dXJuIHRoaXM7dmFyIGEsdSxmPWktZSxjPXRoaXMuX3Jvb3Q7c3dpdGNoKHU9KG48KHIrbykvMik8PDF8dDwoZStpKS8yKXtjYXNlIDA6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGk9ZStmLG89citmLHQ+aXx8bj5vKTticmVhaztjYXNlIDE6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGU9aS1mLG89citmLGU+dHx8bj5vKTticmVhaztjYXNlIDI6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGk9ZStmLHI9by1mLHQ+aXx8cj5uKTticmVhaztjYXNlIDM6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGU9aS1mLHI9by1mLGU+dHx8cj5uKX10aGlzLl9yb290JiZ0aGlzLl9yb290Lmxlbmd0aCYmKHRoaXMuX3Jvb3Q9Yyl9cmV0dXJuIHRoaXMuX3gwPWUsdGhpcy5feTA9cix0aGlzLl94MT1pLHRoaXMuX3kxPW8sdGhpc30saWQuZGF0YT1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKG4pe2lmKCFuLmxlbmd0aClkb3t0LnB1c2gobi5kYXRhKX13aGlsZShuPW4ubmV4dCl9KSx0fSxpZC5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LGlkLmZpbmQ9ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbyxhLHUsZixjLHM9dGhpcy5feDAsbD10aGlzLl95MCxoPXRoaXMuX3gxLGQ9dGhpcy5feTEscD1bXSx2PXRoaXMuX3Jvb3Q7Zm9yKHYmJnAucHVzaChuZXcgQmUodixzLGwsaCxkKSksbnVsbD09ZT9lPTEvMDoocz10LWUsbD1uLWUsaD10K2UsZD1uK2UsZSo9ZSk7Zj1wLnBvcCgpOylpZighKCEodj1mLm5vZGUpfHwoaT1mLngwKT5ofHwobz1mLnkwKT5kfHwoYT1mLngxKTxzfHwodT1mLnkxKTxsKSlpZih2Lmxlbmd0aCl7dmFyIGc9KGkrYSkvMix5PShvK3UpLzI7cC5wdXNoKG5ldyBCZSh2WzNdLGcseSxhLHUpLG5ldyBCZSh2WzJdLGkseSxnLHUpLG5ldyBCZSh2WzFdLGcsbyxhLHkpLG5ldyBCZSh2WzBdLGksbyxnLHkpKSwoYz0obj49eSk8PDF8dD49ZykmJihmPXBbcC5sZW5ndGgtMV0scFtwLmxlbmd0aC0xXT1wW3AubGVuZ3RoLTEtY10scFtwLmxlbmd0aC0xLWNdPWYpfWVsc2V7dmFyIF89dC0rdGhpcy5feC5jYWxsKG51bGwsdi5kYXRhKSxiPW4tK3RoaXMuX3kuY2FsbChudWxsLHYuZGF0YSksbT1fKl8rYipiO2lmKG08ZSl7dmFyIHg9TWF0aC5zcXJ0KGU9bSk7cz10LXgsbD1uLXgsaD10K3gsZD1uK3gscj12LmRhdGF9fXJldHVybiByfSxpZC5yZW1vdmU9ZnVuY3Rpb24odCl7aWYoaXNOYU4obz0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihhPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIG4sZSxyLGksbyxhLHUsZixjLHMsbCxoLGQ9dGhpcy5fcm9vdCxwPXRoaXMuX3gwLHY9dGhpcy5feTAsZz10aGlzLl94MSx5PXRoaXMuX3kxO2lmKCFkKXJldHVybiB0aGlzO2lmKGQubGVuZ3RoKWZvcig7Oyl7aWYoKGM9bz49KHU9KHArZykvMikpP3A9dTpnPXUsKHM9YT49KGY9KHYreSkvMikpP3Y9Zjp5PWYsbj1kLCEoZD1kW2w9czw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIWQubGVuZ3RoKWJyZWFrOyhuW2wrMSYzXXx8bltsKzImM118fG5bbCszJjNdKSYmKGU9bixoPWwpfWZvcig7ZC5kYXRhIT09dDspaWYocj1kLCEoZD1kLm5leHQpKXJldHVybiB0aGlzO3JldHVybihpPWQubmV4dCkmJmRlbGV0ZSBkLm5leHQscj8oaT9yLm5leHQ9aTpkZWxldGUgci5uZXh0LHRoaXMpOm4/KGk/bltsXT1pOmRlbGV0ZSBuW2xdLChkPW5bMF18fG5bMV18fG5bMl18fG5bM10pJiZkPT09KG5bM118fG5bMl18fG5bMV18fG5bMF0pJiYhZC5sZW5ndGgmJihlP2VbaF09ZDp0aGlzLl9yb290PWQpLHRoaXMpOih0aGlzLl9yb290PWksdGhpcyl9LGlkLnJlbW92ZUFsbD1mdW5jdGlvbih0KXtmb3IodmFyIG49MCxlPXQubGVuZ3RoO248ZTsrK24pdGhpcy5yZW1vdmUodFtuXSk7cmV0dXJuIHRoaXN9LGlkLnJvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdH0saWQuc2l6ZT1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoZnVuY3Rpb24obil7aWYoIW4ubGVuZ3RoKWRveysrdH13aGlsZShuPW4ubmV4dCl9KSx0fSxpZC52aXNpdD1mdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvLGEsdT1bXSxmPXRoaXMuX3Jvb3Q7Zm9yKGYmJnUucHVzaChuZXcgQmUoZix0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO249dS5wb3AoKTspaWYoIXQoZj1uLm5vZGUscj1uLngwLGk9bi55MCxvPW4ueDEsYT1uLnkxKSYmZi5sZW5ndGgpe3ZhciBjPShyK28pLzIscz0oaSthKS8yOyhlPWZbM10pJiZ1LnB1c2gobmV3IEJlKGUsYyxzLG8sYSkpLChlPWZbMl0pJiZ1LnB1c2gobmV3IEJlKGUscixzLGMsYSkpLChlPWZbMV0pJiZ1LnB1c2gobmV3IEJlKGUsYyxpLG8scykpLChlPWZbMF0pJiZ1LnB1c2gobmV3IEJlKGUscixpLGMscykpfXJldHVybiB0aGlzfSxpZC52aXNpdEFmdGVyPWZ1bmN0aW9uKHQpe3ZhciBuLGU9W10scj1bXTtmb3IodGhpcy5fcm9vdCYmZS5wdXNoKG5ldyBCZSh0aGlzLl9yb290LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7bj1lLnBvcCgpOyl7dmFyIGk9bi5ub2RlO2lmKGkubGVuZ3RoKXt2YXIgbyxhPW4ueDAsdT1uLnkwLGY9bi54MSxjPW4ueTEscz0oYStmKS8yLGw9KHUrYykvMjsobz1pWzBdKSYmZS5wdXNoKG5ldyBCZShvLGEsdSxzLGwpKSwobz1pWzFdKSYmZS5wdXNoKG5ldyBCZShvLHMsdSxmLGwpKSwobz1pWzJdKSYmZS5wdXNoKG5ldyBCZShvLGEsbCxzLGMpKSwobz1pWzNdKSYmZS5wdXNoKG5ldyBCZShvLHMsbCxmLGMpKX1yLnB1c2gobil9Zm9yKDtuPXIucG9wKCk7KXQobi5ub2RlLG4ueDAsbi55MCxuLngxLG4ueTEpO3JldHVybiB0aGlzfSxpZC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl94PXQsdGhpcyk6dGhpcy5feH0saWQueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feT10LHRoaXMpOnRoaXMuX3l9O3ZhciBvZD0xMCxhZD1NYXRoLlBJKigzLU1hdGguc3FydCg1KSksdWQ9L14oPzooLik/KFs8Pj1eXSkpPyhbK1xcLVxcKCBdKT8oWyQjXSk/KDApPyhcXGQrKT8oLCk/KFxcLlxcZCspPyh+KT8oW2EteiVdKT8kL2k7dHIucHJvdG90eXBlPW5yLnByb3RvdHlwZSxuci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/XCIwXCI6XCJcIikrKG51bGw9PXRoaXMud2lkdGg/XCJcIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hP1wiLFwiOlwiXCIpKyhudWxsPT10aGlzLnByZWNpc2lvbj9cIlwiOlwiLlwiK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/XCJ+XCI6XCJcIikrdGhpcy50eXBlfTt2YXIgZmQsY2Qsc2Q9e1wiJVwiOmZ1bmN0aW9uKHQsbil7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKG4pfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0K1wiXCJ9LGQ6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTApfSxlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQudG9FeHBvbmVudGlhbChuKX0sZjpmdW5jdGlvbih0LG4pe3JldHVybiB0LnRvRml4ZWQobil9LGc6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50b1ByZWNpc2lvbihuKX0sbzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZyg4KX0scDpmdW5jdGlvbih0LG4pe3JldHVybiBlcigxMDAqdCxuKX0scjplcixzOmZ1bmN0aW9uKHQsbil7dmFyIGU9SmUodCxuKTtpZighZSlyZXR1cm4gdCtcIlwiO3ZhciByPWVbMF0saT1lWzFdLG89aS0oZmQ9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoaS8zKSkpKSsxLGE9ci5sZW5ndGg7cmV0dXJuIG89PT1hP3I6bz5hP3IrbmV3IEFycmF5KG8tYSsxKS5qb2luKFwiMFwiKTpvPjA/ci5zbGljZSgwLG8pK1wiLlwiK3Iuc2xpY2Uobyk6XCIwLlwiK25ldyBBcnJheSgxLW8pLmpvaW4oXCIwXCIpK0plKHQsTWF0aC5tYXgoMCxuK28tMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19LGxkPVtcInlcIixcInpcIixcImFcIixcImZcIixcInBcIixcIm5cIixcIsK1XCIsXCJtXCIsXCJcIixcImtcIixcIk1cIixcIkdcIixcIlRcIixcIlBcIixcIkVcIixcIlpcIixcIllcIl07b3Ioe2RlY2ltYWw6XCIuXCIsdGhvdXNhbmRzOlwiLFwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbXCIkXCIsXCJcIl19KSxzci5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnNyLHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5zPXRoaXMudD0wfSxhZGQ6ZnVuY3Rpb24odCl7bHIoamQsdCx0aGlzLnQpLGxyKHRoaXMsamQucyx0aGlzLnMpLHRoaXMucz90aGlzLnQrPWpkLnQ6dGhpcy5zPWpkLnR9LHZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zfX07dmFyIGhkLGRkLHBkLHZkLGdkLHlkLF9kLGJkLG1kLHhkLHdkLE1kLEFkLFRkLE5kLFNkLEVkLGtkLENkLFBkLHpkLFJkLExkLERkLFVkLHFkLE9kLFlkLEJkLEZkLElkLGpkPW5ldyBzcixIZD0xZS02LFhkPTFlLTEyLEdkPU1hdGguUEksVmQ9R2QvMiwkZD1HZC80LFdkPTIqR2QsWmQ9MTgwL0dkLFFkPUdkLzE4MCxKZD1NYXRoLmFicyxLZD1NYXRoLmF0YW4sdHA9TWF0aC5hdGFuMixucD1NYXRoLmNvcyxlcD1NYXRoLmNlaWwscnA9TWF0aC5leHAsaXA9TWF0aC5sb2csb3A9TWF0aC5wb3csYXA9TWF0aC5zaW4sdXA9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9LGZwPU1hdGguc3FydCxjcD1NYXRoLnRhbixzcD17RmVhdHVyZTpmdW5jdGlvbih0LG4pe2dyKHQuZ2VvbWV0cnksbil9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZmVhdHVyZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylncihlW3JdLmdlb21ldHJ5LG4pfX0sbHA9e1NwaGVyZTpmdW5jdGlvbih0LG4pe24uc3BoZXJlKCl9LFBvaW50OmZ1bmN0aW9uKHQsbil7dD10LmNvb3JkaW5hdGVzLG4ucG9pbnQodFswXSx0WzFdLHRbMl0pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOyl0PWVbcl0sbi5wb2ludCh0WzBdLHRbMV0sdFsyXSl9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXt5cih0LmNvb3JkaW5hdGVzLG4sMCl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspeXIoZVtyXSxuLDApfSxQb2x5Z29uOmZ1bmN0aW9uKHQsbil7X3IodC5jb29yZGluYXRlcyxuKX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylfcihlW3JdLG4pfSxHZW9tZXRyeUNvbGxlY3Rpb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5nZW9tZXRyaWVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspZ3IoZVtyXSxuKX19LGhwPWNyKCksZHA9Y3IoKSxwcD17cG9pbnQ6dnIsbGluZVN0YXJ0OnZyLGxpbmVFbmQ6dnIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7aHAucmVzZXQoKSxwcC5saW5lU3RhcnQ9bXIscHAubGluZUVuZD14cn0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciB0PStocDtkcC5hZGQodDwwP1dkK3Q6dCksdGhpcy5saW5lU3RhcnQ9dGhpcy5saW5lRW5kPXRoaXMucG9pbnQ9dnJ9LHNwaGVyZTpmdW5jdGlvbigpe2RwLmFkZChXZCl9fSx2cD1jcigpLGdwPXtwb2ludDpQcixsaW5lU3RhcnQ6UnIsbGluZUVuZDpMcixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtncC5wb2ludD1EcixncC5saW5lU3RhcnQ9VXIsZ3AubGluZUVuZD1xcix2cC5yZXNldCgpLHBwLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7cHAucG9seWdvbkVuZCgpLGdwLnBvaW50PVByLGdwLmxpbmVTdGFydD1ScixncC5saW5lRW5kPUxyLGhwPDA/KHlkPS0oYmQ9MTgwKSxfZD0tKG1kPTkwKSk6dnA+SGQ/bWQ9OTA6dnA8LUhkJiYoX2Q9LTkwKSxOZFswXT15ZCxOZFsxXT1iZH19LHlwPXtzcGhlcmU6dnIscG9pbnQ6RnIsbGluZVN0YXJ0OmpyLGxpbmVFbmQ6R3IscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7eXAubGluZVN0YXJ0PVZyLHlwLmxpbmVFbmQ9JHJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt5cC5saW5lU3RhcnQ9anIseXAubGluZUVuZD1Hcn19O0tyLmludmVydD1Lcjt2YXIgX3AsYnAsbXAseHAsd3AsTXAsQXAsVHAsTnAsU3AsRXAsa3A9Y3IoKSxDcD1kaShmdW5jdGlvbigpe3JldHVybiEwfSxmdW5jdGlvbih0KXt2YXIgbixlPU5hTixyPU5hTixpPU5hTjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxuPTF9LHBvaW50OmZ1bmN0aW9uKG8sYSl7dmFyIHU9bz4wP0dkOi1HZCxmPUpkKG8tZSk7SmQoZi1HZCk8SGQ/KHQucG9pbnQoZSxyPShyK2EpLzI+MD9WZDotVmQpLHQucG9pbnQoaSxyKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQodSxyKSx0LnBvaW50KG8sciksbj0wKTppIT09dSYmZj49R2QmJihKZChlLWkpPEhkJiYoZS09aSpIZCksSmQoby11KTxIZCYmKG8tPXUqSGQpLHI9ZnVuY3Rpb24odCxuLGUscil7dmFyIGksbyxhPWFwKHQtZSk7cmV0dXJuIEpkKGEpPkhkP0tkKChhcChuKSoobz1ucChyKSkqYXAoZSktYXAocikqKGk9bnAobikpKmFwKHQpKS8oaSpvKmEpKToobityKS8yfShlLHIsbyxhKSx0LnBvaW50KGksciksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHUsciksbj0wKSx0LnBvaW50KGU9byxyPWEpLGk9dX0sbGluZUVuZDpmdW5jdGlvbigpe3QubGluZUVuZCgpLGU9cj1OYU59LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIDItbn19fSxmdW5jdGlvbih0LG4sZSxyKXt2YXIgaTtpZihudWxsPT10KWk9ZSpWZCxyLnBvaW50KC1HZCxpKSxyLnBvaW50KDAsaSksci5wb2ludChHZCxpKSxyLnBvaW50KEdkLDApLHIucG9pbnQoR2QsLWkpLHIucG9pbnQoMCwtaSksci5wb2ludCgtR2QsLWkpLHIucG9pbnQoLUdkLDApLHIucG9pbnQoLUdkLGkpO2Vsc2UgaWYoSmQodFswXS1uWzBdKT5IZCl7dmFyIG89dFswXTxuWzBdP0dkOi1HZDtpPWUqby8yLHIucG9pbnQoLW8saSksci5wb2ludCgwLGkpLHIucG9pbnQobyxpKX1lbHNlIHIucG9pbnQoblswXSxuWzFdKX0sWy1HZCwtVmRdKSxQcD0xZTksenA9LVBwLFJwPWNyKCksTHA9e3NwaGVyZTp2cixwb2ludDp2cixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtMcC5wb2ludD1iaSxMcC5saW5lRW5kPV9pfSxsaW5lRW5kOnZyLHBvbHlnb25TdGFydDp2cixwb2x5Z29uRW5kOnZyfSxEcD1bbnVsbCxudWxsXSxVcD17dHlwZTpcIkxpbmVTdHJpbmdcIixjb29yZGluYXRlczpEcH0scXA9e0ZlYXR1cmU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gTWkodC5nZW9tZXRyeSxuKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5mZWF0dXJlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE1pKGVbcl0uZ2VvbWV0cnksbikpcmV0dXJuITA7cmV0dXJuITF9fSxPcD17U3BoZXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LFBvaW50OmZ1bmN0aW9uKHQsbil7cmV0dXJuIEFpKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKEFpKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXtyZXR1cm4gVGkodC5jb29yZGluYXRlcyxuKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihUaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfSxQb2x5Z29uOmZ1bmN0aW9uKHQsbil7cmV0dXJuIE5pKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspaWYoTmkoZVtyXSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZ2VvbWV0cmllcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE1pKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9fSxZcD1jcigpLEJwPWNyKCksRnA9e3BvaW50OnZyLGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe0ZwLmxpbmVTdGFydD1SaSxGcC5saW5lRW5kPVVpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7RnAubGluZVN0YXJ0PUZwLmxpbmVFbmQ9RnAucG9pbnQ9dnIsWXAuYWRkKEpkKEJwKSksQnAucmVzZXQoKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9WXAvMjtyZXR1cm4gWXAucmVzZXQoKSx0fX0sSXA9MS8wLGpwPUlwLEhwPS1JcCxYcD1IcCxHcD17cG9pbnQ6ZnVuY3Rpb24odCxuKXt0PElwJiYoSXA9dCksdD5IcCYmKEhwPXQpLG48anAmJihqcD1uKSxuPlhwJiYoWHA9bil9LGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDp2cixwb2x5Z29uRW5kOnZyLHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVtbSXAsanBdLFtIcCxYcF1dO3JldHVybiBIcD1YcD0tKGpwPUlwPTEvMCksdH19LFZwPTAsJHA9MCxXcD0wLFpwPTAsUXA9MCxKcD0wLEtwPTAsdHY9MCxudj0wLGV2PXtwb2ludDpxaSxsaW5lU3RhcnQ6T2ksbGluZUVuZDpGaSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtldi5saW5lU3RhcnQ9SWksZXYubGluZUVuZD1qaX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2V2LnBvaW50PXFpLGV2LmxpbmVTdGFydD1PaSxldi5saW5lRW5kPUZpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1udj9bS3AvbnYsdHYvbnZdOkpwP1tacC9KcCxRcC9KcF06V3A/W1ZwL1dwLCRwL1dwXTpbTmFOLE5hTl07cmV0dXJuIFZwPSRwPVdwPVpwPVFwPUpwPUtwPXR2PW52PTAsdH19O0dpLnByb3RvdHlwZT17X3JhZGl1czo0LjUscG9pbnRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JhZGl1cz10LHRoaXN9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MD09PXRoaXMuX2xpbmUmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fcG9pbnQ9TmFOfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbiksdGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTticmVhaztkZWZhdWx0OnRoaXMuX2NvbnRleHQubW92ZVRvKHQrdGhpcy5fcmFkaXVzLG4pLHRoaXMuX2NvbnRleHQuYXJjKHQsbix0aGlzLl9yYWRpdXMsMCxXZCl9fSxyZXN1bHQ6dnJ9O3ZhciBydixpdixvdixhdix1dixmdj1jcigpLGN2PXtwb2ludDp2cixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtjdi5wb2ludD1WaX0sbGluZUVuZDpmdW5jdGlvbigpe3J2JiYkaShpdixvdiksY3YucG9pbnQ9dnJ9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3J2PSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7cnY9bnVsbH0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9K2Z2O3JldHVybiBmdi5yZXNldCgpLHR9fTtXaS5wcm90b3R5cGU9e19yYWRpdXM6NC41LF9jaXJjbGU6WmkoNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4odD0rdCkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9dCx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fc3RyaW5nLnB1c2goXCJaXCIpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9zdHJpbmcucHVzaChcIk1cIix0LFwiLFwiLG4pLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3N0cmluZy5wdXNoKFwiTFwiLHQsXCIsXCIsbik7YnJlYWs7ZGVmYXVsdDpudWxsPT10aGlzLl9jaXJjbGUmJih0aGlzLl9jaXJjbGU9WmkodGhpcy5fcmFkaXVzKSksdGhpcy5fc3RyaW5nLnB1c2goXCJNXCIsdCxcIixcIixuLHRoaXMuX2NpcmNsZSl9fSxyZXN1bHQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9zdHJpbmcubGVuZ3RoKXt2YXIgdD10aGlzLl9zdHJpbmcuam9pbihcIlwiKTtyZXR1cm4gdGhpcy5fc3RyaW5nPVtdLHR9cmV0dXJuIG51bGx9fSxKaS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkppLHBvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5zdHJlYW0ucG9pbnQodCxuKX0sc3BoZXJlOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25FbmQoKX19O3ZhciBzdj0xNixsdj1ucCgzMCpRZCksaHY9UWkoe3BvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5zdHJlYW0ucG9pbnQodCpRZCxuKlFkKX19KSxkdj1obyhmdW5jdGlvbih0KXtyZXR1cm4gZnAoMi8oMSt0KSl9KTtkdi5pbnZlcnQ9cG8oZnVuY3Rpb24odCl7cmV0dXJuIDIqZHIodC8yKX0pO3ZhciBwdj1obyhmdW5jdGlvbih0KXtyZXR1cm4odD1ocih0KSkmJnQvYXAodCl9KTtwdi5pbnZlcnQ9cG8oZnVuY3Rpb24odCl7cmV0dXJuIHR9KSx2by5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdCwyKktkKHJwKG4pKS1WZF19LGJvLmludmVydD1ibyx4by5pbnZlcnQ9cG8oS2QpLE1vLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlLHI9bixpPTI1O2Rve3ZhciBvPXIqcixhPW8qbztyLT1lPShyKigxLjAwNzIyNitvKiguMDE1MDg1K2EqKC4wMjg4NzQqby0uMDQ0NDc1LS4wMDU5MTYqYSkpKS1uKS8oMS4wMDcyMjYrbyooLjA0NTI1NSthKiguMjU5ODY2Km8tLjMxMTMyNS0uMDA1OTE2KjExKmEpKSl9d2hpbGUoSmQoZSk+SGQmJi0taT4wKTtyZXR1cm5bdC8oLjg3MDcrKG89cipyKSoobyoobypvKm8qKC4wMDM5NzEtLjAwMTUyOSpvKS0uMDEzNzkxKS0uMTMxOTc5KSkscl19LEFvLmludmVydD1wbyhkciksVG8uaW52ZXJ0PXBvKGZ1bmN0aW9uKHQpe3JldHVybiAyKktkKHQpfSksTm8uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuWy1uLDIqS2QocnAodCkpLVZkXX0sRG8ucHJvdG90eXBlPVBvLnByb3RvdHlwZT17Y29uc3RydWN0b3I6RG8sY291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoQ28pfSxlYWNoOmZ1bmN0aW9uKHQpe3ZhciBuLGUscixpLG89dGhpcyxhPVtvXTtkb3tmb3Iobj1hLnJldmVyc2UoKSxhPVtdO289bi5wb3AoKTspaWYodChvKSxlPW8uY2hpbGRyZW4pZm9yKHI9MCxpPWUubGVuZ3RoO3I8aTsrK3IpYS5wdXNoKGVbcl0pfXdoaWxlKGEubGVuZ3RoKTtyZXR1cm4gdGhpc30sZWFjaEFmdGVyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHIsaT10aGlzLG89W2ldLGE9W107aT1vLnBvcCgpOylpZihhLnB1c2goaSksbj1pLmNoaWxkcmVuKWZvcihlPTAscj1uLmxlbmd0aDtlPHI7KytlKW8ucHVzaChuW2VdKTtmb3IoO2k9YS5wb3AoKTspdChpKTtyZXR1cm4gdGhpc30sZWFjaEJlZm9yZTpmdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPXRoaXMsaT1bcl07cj1pLnBvcCgpOylpZih0KHIpLG49ci5jaGlsZHJlbilmb3IoZT1uLmxlbmd0aC0xO2U+PTA7LS1lKWkucHVzaChuW2VdKTtyZXR1cm4gdGhpc30sc3VtOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2hBZnRlcihmdW5jdGlvbihuKXtmb3IodmFyIGU9K3Qobi5kYXRhKXx8MCxyPW4uY2hpbGRyZW4saT1yJiZyLmxlbmd0aDstLWk+PTA7KWUrPXJbaV0udmFsdWU7bi52YWx1ZT1lfSl9LHNvcnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaEJlZm9yZShmdW5jdGlvbihuKXtuLmNoaWxkcmVuJiZuLmNoaWxkcmVuLnNvcnQodCl9KX0scGF0aDpmdW5jdGlvbih0KXtmb3IodmFyIG49dGhpcyxlPWZ1bmN0aW9uKHQsbil7aWYodD09PW4pcmV0dXJuIHQ7dmFyIGU9dC5hbmNlc3RvcnMoKSxyPW4uYW5jZXN0b3JzKCksaT1udWxsO2Zvcih0PWUucG9wKCksbj1yLnBvcCgpO3Q9PT1uOylpPXQsdD1lLnBvcCgpLG49ci5wb3AoKTtyZXR1cm4gaX0obix0KSxyPVtuXTtuIT09ZTspbj1uLnBhcmVudCxyLnB1c2gobik7Zm9yKHZhciBpPXIubGVuZ3RoO3QhPT1lOylyLnNwbGljZShpLDAsdCksdD10LnBhcmVudDtyZXR1cm4gcn0sYW5jZXN0b3JzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsbj1bdF07dD10LnBhcmVudDspbi5wdXNoKHQpO3JldHVybiBufSxkZXNjZW5kYW50czpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24obil7dC5wdXNoKG4pfSksdH0sbGVhdmVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaEJlZm9yZShmdW5jdGlvbihuKXtuLmNoaWxkcmVufHx0LnB1c2gobil9KSx0fSxsaW5rczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1bXTtyZXR1cm4gdC5lYWNoKGZ1bmN0aW9uKGUpe2UhPT10JiZuLnB1c2goe3NvdXJjZTplLnBhcmVudCx0YXJnZXQ6ZX0pfSksbn0sY29weTpmdW5jdGlvbigpe3JldHVybiBQbyh0aGlzKS5lYWNoQmVmb3JlKFJvKX19O3ZhciB2dj1BcnJheS5wcm90b3R5cGUuc2xpY2UsZ3Y9XCIkXCIseXY9e2RlcHRoOi0xfSxfdj17fTtjYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShEby5wcm90b3R5cGUpO3ZhciBidj0oMStNYXRoLnNxcnQoNSkpLzIsbXY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSxyLGksbyl7bGEobix0LGUscixpLG8pfXJldHVybiBlLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiB0KChuPStuKT4xP246MSl9LGV9KGJ2KSx4dj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlLHIsaSxvKXtpZigoYT10Ll9zcXVhcmlmeSkmJmEucmF0aW89PT1uKWZvcih2YXIgYSx1LGYsYyxzLGw9LTEsaD1hLmxlbmd0aCxkPXQudmFsdWU7KytsPGg7KXtmb3IoZj0odT1hW2xdKS5jaGlsZHJlbixjPXUudmFsdWU9MCxzPWYubGVuZ3RoO2M8czsrK2MpdS52YWx1ZSs9ZltjXS52YWx1ZTt1LmRpY2U/bmEodSxlLHIsaSxyKz0oby1yKSp1LnZhbHVlL2QpOnNhKHUsZSxyLGUrPShpLWUpKnUudmFsdWUvZCxvKSxkLT11LnZhbHVlfWVsc2UgdC5fc3F1YXJpZnk9YT1sYShuLHQsZSxyLGksbyksYS5yYXRpbz1ufXJldHVybiBlLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiB0KChuPStuKT4xP246MSl9LGV9KGJ2KSx3dj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlKXtyZXR1cm4gdD1udWxsPT10PzA6K3QsZT1udWxsPT1lPzE6K2UsMT09PWFyZ3VtZW50cy5sZW5ndGg/KGU9dCx0PTApOmUtPXQsZnVuY3Rpb24oKXtyZXR1cm4gbigpKmUrdH19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLE12PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LGUpe3ZhciByLGk7cmV0dXJuIHQ9bnVsbD09dD8wOit0LGU9bnVsbD09ZT8xOitlLGZ1bmN0aW9uKCl7dmFyIG87aWYobnVsbCE9cilvPXIscj1udWxsO2Vsc2UgZG97cj0yKm4oKS0xLG89MipuKCktMSxpPXIqcitvKm99d2hpbGUoIWl8fGk+MSk7cmV0dXJuIHQrZSpvKk1hdGguc3FydCgtMipNYXRoLmxvZyhpKS9pKX19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLEF2PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSgpe3ZhciB0PU12LnNvdXJjZShuKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZXhwKHQoKSl9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxUdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAscj0wO3I8dDsrK3IpZSs9bigpO3JldHVybiBlfX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksTnY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3ZhciBlPVR2LnNvdXJjZShuKSh0KTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSgpL3R9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxTdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuLU1hdGgubG9nKDEtbigpKS90fX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksRXY9QXJyYXkucHJvdG90eXBlLGt2PUV2Lm1hcCxDdj1Fdi5zbGljZSxQdj17bmFtZTpcImltcGxpY2l0XCJ9LHp2PVswLDFdLFJ2PW5ldyBEYXRlLEx2PW5ldyBEYXRlLER2PUlhKGZ1bmN0aW9uKCl7fSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi10fSk7RHYuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9JYShmdW5jdGlvbihuKXtuLnNldFRpbWUoTWF0aC5mbG9vcihuL3QpKnQpfSxmdW5jdGlvbihuLGUpe24uc2V0VGltZSgrbitlKnQpfSxmdW5jdGlvbihuLGUpe3JldHVybihlLW4pL3R9KTpEdjpudWxsfTt2YXIgVXY9RHYucmFuZ2UscXY9NmU0LE92PTYwNDhlNSxZdj1JYShmdW5jdGlvbih0KXt0LnNldFRpbWUoMWUzKk1hdGguZmxvb3IodC8xZTMpKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3QrMWUzKm4pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzFlM30sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDU2Vjb25kcygpfSksQnY9WXYucmFuZ2UsRnY9SWEoZnVuY3Rpb24odCl7dC5zZXRUaW1lKE1hdGguZmxvb3IodC9xdikqcXYpfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKnF2KX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9xdn0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSksSXY9RnYucmFuZ2UsanY9SWEoZnVuY3Rpb24odCl7dmFyIG49dC5nZXRUaW1lem9uZU9mZnNldCgpKnF2JTM2ZTU7bjwwJiYobis9MzZlNSksdC5zZXRUaW1lKDM2ZTUqTWF0aC5mbG9vcigoK3QtbikvMzZlNSkrbil9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0KzM2ZTUqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvMzZlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pLEh2PWp2LnJhbmdlLFh2PUlhKGZ1bmN0aW9uKHQpe3Quc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQtKG4uZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnF2KS84NjRlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpLTF9KSxHdj1Ydi5yYW5nZSxWdj1qYSgwKSwkdj1qYSgxKSxXdj1qYSgyKSxadj1qYSgzKSxRdj1qYSg0KSxKdj1qYSg1KSxLdj1qYSg2KSx0Zz1Wdi5yYW5nZSxuZz0kdi5yYW5nZSxlZz1Xdi5yYW5nZSxyZz1adi5yYW5nZSxpZz1Rdi5yYW5nZSxvZz1Kdi5yYW5nZSxhZz1Ldi5yYW5nZSx1Zz1JYShmdW5jdGlvbih0KXt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldE1vbnRoKHQuZ2V0TW9udGgoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXRNb250aCgpLXQuZ2V0TW9udGgoKSsxMioobi5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKSl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSxmZz11Zy5yYW5nZSxjZz1JYShmdW5jdGlvbih0KXt0LnNldE1vbnRoKDAsMSksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0pO2NnLmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/SWEoZnVuY3Rpb24obil7bi5zZXRGdWxsWWVhcihNYXRoLmZsb29yKG4uZ2V0RnVsbFllYXIoKS90KSp0KSxuLnNldE1vbnRoKDAsMSksbi5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24obixlKXtuLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKStlKnQpfSk6bnVsbH07dmFyIHNnPWNnLnJhbmdlLGxnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDU2Vjb25kcygwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKnF2KX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9xdn0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTWludXRlcygpfSksaGc9bGcucmFuZ2UsZGc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENNaW51dGVzKDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3QrMzZlNSpuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS8zNmU1fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENIb3VycygpfSkscGc9ZGcucmFuZ2Usdmc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvODY0ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSksZ2c9dmcucmFuZ2UseWc9SGEoMCksX2c9SGEoMSksYmc9SGEoMiksbWc9SGEoMykseGc9SGEoNCksd2c9SGEoNSksTWc9SGEoNiksQWc9eWcucmFuZ2UsVGc9X2cucmFuZ2UsTmc9YmcucmFuZ2UsU2c9bWcucmFuZ2UsRWc9eGcucmFuZ2Usa2c9d2cucmFuZ2UsQ2c9TWcucmFuZ2UsUGc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENEYXRlKDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENNb250aCh0LmdldFVUQ01vbnRoKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0VVRDTW9udGgoKS10LmdldFVUQ01vbnRoKCkrMTIqKG4uZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCkpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNb250aCgpfSksemc9UGcucmFuZ2UsUmc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCl9KTtSZy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP0lhKGZ1bmN0aW9uKG4pe24uc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcihuLmdldFVUQ0Z1bGxZZWFyKCkvdCkqdCksbi5zZXRVVENNb250aCgwLDEpLG4uc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKG4sZSl7bi5zZXRVVENGdWxsWWVhcihuLmdldFVUQ0Z1bGxZZWFyKCkrZSp0KX0pOm51bGx9O3ZhciBMZyxEZz1SZy5yYW5nZSxVZz17XCItXCI6XCJcIixfOlwiIFwiLDA6XCIwXCJ9LHFnPS9eXFxzKlxcZCsvLE9nPS9eJS8sWWc9L1tcXFxcXiQqKz98W1xcXSgpLnt9XS9nO25mKHtkYXRlVGltZTpcIiV4LCAlWFwiLGRhdGU6XCIlLW0vJS1kLyVZXCIsdGltZTpcIiUtSTolTTolUyAlcFwiLHBlcmlvZHM6W1wiQU1cIixcIlBNXCJdLGRheXM6W1wiU3VuZGF5XCIsXCJNb25kYXlcIixcIlR1ZXNkYXlcIixcIldlZG5lc2RheVwiLFwiVGh1cnNkYXlcIixcIkZyaWRheVwiLFwiU2F0dXJkYXlcIl0sc2hvcnREYXlzOltcIlN1blwiLFwiTW9uXCIsXCJUdWVcIixcIldlZFwiLFwiVGh1XCIsXCJGcmlcIixcIlNhdFwiXSxtb250aHM6W1wiSmFudWFyeVwiLFwiRmVicnVhcnlcIixcIk1hcmNoXCIsXCJBcHJpbFwiLFwiTWF5XCIsXCJKdW5lXCIsXCJKdWx5XCIsXCJBdWd1c3RcIixcIlNlcHRlbWJlclwiLFwiT2N0b2JlclwiLFwiTm92ZW1iZXJcIixcIkRlY2VtYmVyXCJdLHNob3J0TW9udGhzOltcIkphblwiLFwiRmViXCIsXCJNYXJcIixcIkFwclwiLFwiTWF5XCIsXCJKdW5cIixcIkp1bFwiLFwiQXVnXCIsXCJTZXBcIixcIk9jdFwiLFwiTm92XCIsXCJEZWNcIl19KTt2YXIgQmc9XCIlWS0lbS0lZFQlSDolTTolUy4lTFpcIixGZz1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZz9mdW5jdGlvbih0KXtyZXR1cm4gdC50b0lTT1N0cmluZygpfTp0LnV0Y0Zvcm1hdChCZyksSWc9K25ldyBEYXRlKFwiMjAwMC0wMS0wMVQwMDowMDowMC4wMDBaXCIpP2Z1bmN0aW9uKHQpe3ZhciBuPW5ldyBEYXRlKHQpO3JldHVybiBpc05hTihuKT9udWxsOm59OnQudXRjUGFyc2UoQmcpLGpnPTFlMyxIZz02MCpqZyxYZz02MCpIZyxHZz0yNCpYZyxWZz03KkdnLCRnPTMwKkdnLFdnPTM2NSpHZyxaZz1mZihcIjFmNzdiNGZmN2YwZTJjYTAyY2Q2MjcyODk0NjdiZDhjNTY0YmUzNzdjMjdmN2Y3ZmJjYmQyMjE3YmVjZlwiKSxRZz1mZihcIjdmYzk3ZmJlYWVkNGZkYzA4NmZmZmY5OTM4NmNiMGYwMDI3ZmJmNWIxNzY2NjY2NlwiKSxKZz1mZihcIjFiOWU3N2Q5NWYwMjc1NzBiM2U3Mjk4YTY2YTYxZWU2YWIwMmE2NzYxZDY2NjY2NlwiKSxLZz1mZihcImE2Y2VlMzFmNzhiNGIyZGY4YTMzYTAyY2ZiOWE5OWUzMWExY2ZkYmY2ZmZmN2YwMGNhYjJkNjZhM2Q5YWZmZmY5OWIxNTkyOFwiKSx0eT1mZihcImZiYjRhZWIzY2RlM2NjZWJjNWRlY2JlNGZlZDlhNmZmZmZjY2U1ZDhiZGZkZGFlY2YyZjJmMlwiKSxueT1mZihcImIzZTJjZGZkY2RhY2NiZDVlOGY0Y2FlNGU2ZjVjOWZmZjJhZWYxZTJjY2NjY2NjY1wiKSxleT1mZihcImU0MWExYzM3N2ViODRkYWY0YTk4NGVhM2ZmN2YwMGZmZmYzM2E2NTYyOGY3ODFiZjk5OTk5OVwiKSxyeT1mZihcIjY2YzJhNWZjOGQ2MjhkYTBjYmU3OGFjM2E2ZDg1NGZmZDkyZmU1YzQ5NGIzYjNiM1wiKSxpeT1mZihcIjhkZDNjN2ZmZmZiM2JlYmFkYWZiODA3MjgwYjFkM2ZkYjQ2MmIzZGU2OWZjY2RlNWQ5ZDlkOWJjODBiZGNjZWJjNWZmZWQ2ZlwiKSxveT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZDhiMzY1ZjVmNWY1NWFiNGFjXCIsXCJhNjYxMWFkZmMyN2Q4MGNkYzEwMTg1NzFcIixcImE2NjExYWRmYzI3ZGY1ZjVmNTgwY2RjMTAxODU3MVwiLFwiOGM1MTBhZDhiMzY1ZjZlOGMzYzdlYWU1NWFiNGFjMDE2NjVlXCIsXCI4YzUxMGFkOGIzNjVmNmU4YzNmNWY1ZjVjN2VhZTU1YWI0YWMwMTY2NWVcIixcIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZVwiLFwiOGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzZjVmNWY1YzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlXCIsXCI1NDMwMDU4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUwMDNjMzBcIixcIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMFwiKS5tYXAoZmYpLGF5PWNmKG95KSx1eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiYWY4ZGMzZjdmN2Y3N2ZiZjdiXCIsXCI3YjMyOTRjMmE1Y2ZhNmRiYTAwMDg4MzdcIixcIjdiMzI5NGMyYTVjZmY3ZjdmN2E2ZGJhMDAwODgzN1wiLFwiNzYyYTgzYWY4ZGMzZTdkNGU4ZDlmMGQzN2ZiZjdiMWI3ODM3XCIsXCI3NjJhODNhZjhkYzNlN2Q0ZThmN2Y3ZjdkOWYwZDM3ZmJmN2IxYjc4MzdcIixcIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzN1wiLFwiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZjdmN2Y3ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3XCIsXCI0MDAwNGI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzcwMDQ0MWJcIixcIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYlwiKS5tYXAoZmYpLGZ5PWNmKHV5KSxjeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTlhM2M5ZjdmN2Y3YTFkNzZhXCIsXCJkMDFjOGJmMWI2ZGFiOGUxODY0ZGFjMjZcIixcImQwMWM4YmYxYjZkYWY3ZjdmN2I4ZTE4NjRkYWMyNlwiLFwiYzUxYjdkZTlhM2M5ZmRlMGVmZTZmNWQwYTFkNzZhNGQ5MjIxXCIsXCJjNTFiN2RlOWEzYzlmZGUwZWZmN2Y3ZjdlNmY1ZDBhMWQ3NmE0ZDkyMjFcIixcImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMVwiLFwiYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZjdmN2Y3ZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxXCIsXCI4ZTAxNTJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjEyNzY0MTlcIixcIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOVwiKS5tYXAoZmYpLHN5PWNmKGN5KSxseT1uZXcgQXJyYXkoMykuY29uY2F0KFwiOTk4ZWMzZjdmN2Y3ZjFhMzQwXCIsXCI1ZTNjOTliMmFiZDJmZGI4NjNlNjYxMDFcIixcIjVlM2M5OWIyYWJkMmY3ZjdmN2ZkYjg2M2U2NjEwMVwiLFwiNTQyNzg4OTk4ZWMzZDhkYWViZmVlMGI2ZjFhMzQwYjM1ODA2XCIsXCI1NDI3ODg5OThlYzNkOGRhZWJmN2Y3ZjdmZWUwYjZmMWEzNDBiMzU4MDZcIixcIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNlwiLFwiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZjdmN2Y3ZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2XCIsXCIyZDAwNGI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDY3ZjNiMDhcIixcIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOFwiKS5tYXAoZmYpLGh5PWNmKGx5KSxkeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWY4YTYyZjdmN2Y3NjdhOWNmXCIsXCJjYTAwMjBmNGE1ODI5MmM1ZGUwNTcxYjBcIixcImNhMDAyMGY0YTU4MmY3ZjdmNzkyYzVkZTA1NzFiMFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZDFlNWYwNjdhOWNmMjE2NmFjXCIsXCJiMjE4MmJlZjhhNjJmZGRiYzdmN2Y3ZjdkMWU1ZjA2N2E5Y2YyMTY2YWNcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhY1wiLFwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZjdmN2Y3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWMwNTMwNjFcIixcIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MVwiKS5tYXAoZmYpLHB5PWNmKGR5KSx2eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWY4YTYyZmZmZmZmOTk5OTk5XCIsXCJjYTAwMjBmNGE1ODJiYWJhYmE0MDQwNDBcIixcImNhMDAyMGY0YTU4MmZmZmZmZmJhYmFiYTQwNDA0MFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZTBlMGUwOTk5OTk5NGQ0ZDRkXCIsXCJiMjE4MmJlZjhhNjJmZGRiYzdmZmZmZmZlMGUwZTA5OTk5OTk0ZDRkNGRcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZFwiLFwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZmZmZmZmZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGQxYTFhMWFcIixcIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYVwiKS5tYXAoZmYpLGd5PWNmKHZ5KSx5eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTFiZmRiXCIsXCJkNzE5MWNmZGFlNjFhYmQ5ZTkyYzdiYjZcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZDllOTJjN2JiNlwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDkwZTBmM2Y4OTFiZmRiNDU3NWI0XCIsXCJkNzMwMjdmYzhkNTlmZWUwOTBmZmZmYmZlMGYzZjg5MWJmZGI0NTc1YjRcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNFwiLFwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZmZmZmJmZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0XCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQzMTM2OTVcIixcImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NVwiKS5tYXAoZmYpLF95PWNmKHl5KSxieT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTFjZjYwXCIsXCJkNzE5MWNmZGFlNjFhNmQ5NmExYTk2NDFcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmE2ZDk2YTFhOTY0MVwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDhiZDllZjhiOTFjZjYwMWE5ODUwXCIsXCJkNzMwMjdmYzhkNTlmZWUwOGJmZmZmYmZkOWVmOGI5MWNmNjAxYTk4NTBcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MFwiLFwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwXCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTAwMDY4MzdcIixcImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzN1wiKS5tYXAoZmYpLG15PWNmKGJ5KSx4eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTlkNTk0XCIsXCJkNzE5MWNmZGFlNjFhYmRkYTQyYjgzYmFcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZGRhNDJiODNiYVwiLFwiZDUzZTRmZmM4ZDU5ZmVlMDhiZTZmNTk4OTlkNTk0MzI4OGJkXCIsXCJkNTNlNGZmYzhkNTlmZWUwOGJmZmZmYmZlNmY1OTg5OWQ1OTQzMjg4YmRcIixcImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZFwiLFwiZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkXCIsXCI5ZTAxNDJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmQ1ZTRmYTJcIixcIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMlwiKS5tYXAoZmYpLHd5PWNmKHh5KSxNeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTVmNWY5OTlkOGM5MmNhMjVmXCIsXCJlZGY4ZmJiMmUyZTI2NmMyYTQyMzhiNDVcIixcImVkZjhmYmIyZTJlMjY2YzJhNDJjYTI1ZjAwNmQyY1wiLFwiZWRmOGZiY2NlY2U2OTlkOGM5NjZjMmE0MmNhMjVmMDA2ZDJjXCIsXCJlZGY4ZmJjY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDU4MjRcIixcImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNFwiLFwiZjdmY2ZkZTVmNWY5Y2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA2ZDJjMDA0NDFiXCIpLm1hcChmZiksQXk9Y2YoTXkpLFR5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlMGVjZjQ5ZWJjZGE4ODU2YTdcIixcImVkZjhmYmIzY2RlMzhjOTZjNjg4NDE5ZFwiLFwiZWRmOGZiYjNjZGUzOGM5NmM2ODg1NmE3ODEwZjdjXCIsXCJlZGY4ZmJiZmQzZTY5ZWJjZGE4Yzk2YzY4ODU2YTc4MTBmN2NcIixcImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YlwiLFwiZjdmY2ZkZTBlY2Y0YmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkNmUwMTZiXCIsXCJmN2ZjZmRlMGVjZjRiZmQzZTY5ZWJjZGE4Yzk2YzY4YzZiYjE4ODQxOWQ4MTBmN2M0ZDAwNGJcIikubWFwKGZmKSxOeT1jZihUeSksU3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImUwZjNkYmE4ZGRiNTQzYTJjYVwiLFwiZjBmOWU4YmFlNGJjN2JjY2M0MmI4Y2JlXCIsXCJmMGY5ZThiYWU0YmM3YmNjYzQ0M2EyY2EwODY4YWNcIixcImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDQzYTJjYTA4NjhhY1wiLFwiZjBmOWU4Y2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllXCIsXCJmN2ZjZjBlMGYzZGJjY2ViYzVhOGRkYjU3YmNjYzQ0ZWIzZDMyYjhjYmUwODU4OWVcIixcImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NjhhYzA4NDA4MVwiKS5tYXAoZmYpLEV5PWNmKFN5KSxreT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmVlOGM4ZmRiYjg0ZTM0YTMzXCIsXCJmZWYwZDlmZGNjOGFmYzhkNTlkNzMwMWZcIixcImZlZjBkOWZkY2M4YWZjOGQ1OWUzNGEzM2IzMDAwMFwiLFwiZmVmMGQ5ZmRkNDllZmRiYjg0ZmM4ZDU5ZTM0YTMzYjMwMDAwXCIsXCJmZWYwZDlmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWY5OTAwMDBcIixcImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMFwiLFwiZmZmN2VjZmVlOGM4ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmYjMwMDAwN2YwMDAwXCIpLm1hcChmZiksQ3k9Y2Yoa3kpLFB5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlY2UyZjBhNmJkZGIxYzkwOTlcIixcImY2ZWZmN2JkYzllMTY3YTljZjAyODE4YVwiLFwiZjZlZmY3YmRjOWUxNjdhOWNmMWM5MDk5MDE2YzU5XCIsXCJmNmVmZjdkMGQxZTZhNmJkZGI2N2E5Y2YxYzkwOTkwMTZjNTlcIixcImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MFwiLFwiZmZmN2ZiZWNlMmYwZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2NDUwXCIsXCJmZmY3ZmJlY2UyZjBkMGQxZTZhNmJkZGI2N2E5Y2YzNjkwYzAwMjgxOGEwMTZjNTkwMTQ2MzZcIikubWFwKGZmKSx6eT1jZihQeSksUnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVjZTdmMmE2YmRkYjJiOGNiZVwiLFwiZjFlZWY2YmRjOWUxNzRhOWNmMDU3MGIwXCIsXCJmMWVlZjZiZGM5ZTE3NGE5Y2YyYjhjYmUwNDVhOGRcIixcImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjJiOGNiZTA0NWE4ZFwiLFwiZjFlZWY2ZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiXCIsXCJmZmY3ZmJlY2U3ZjJkMGQxZTZhNmJkZGI3NGE5Y2YzNjkwYzAwNTcwYjAwMzRlN2JcIixcImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDA0NWE4ZDAyMzg1OFwiKS5tYXAoZmYpLEx5PWNmKFJ5KSxEeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTdlMWVmYzk5NGM3ZGQxYzc3XCIsXCJmMWVlZjZkN2I1ZDhkZjY1YjBjZTEyNTZcIixcImYxZWVmNmQ3YjVkOGRmNjViMGRkMWM3Nzk4MDA0M1wiLFwiZjFlZWY2ZDRiOWRhYzk5NGM3ZGY2NWIwZGQxYzc3OTgwMDQzXCIsXCJmMWVlZjZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5MTAwM2ZcIixcImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZlwiLFwiZjdmNGY5ZTdlMWVmZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTgwMDQzNjcwMDFmXCIpLm1hcChmZiksVXk9Y2YoRHkpLHF5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZGUwZGRmYTlmYjVjNTFiOGFcIixcImZlZWJlMmZiYjRiOWY3NjhhMWFlMDE3ZVwiLFwiZmVlYmUyZmJiNGI5Zjc2OGExYzUxYjhhN2EwMTc3XCIsXCJmZWViZTJmY2M1YzBmYTlmYjVmNzY4YTFjNTFiOGE3YTAxNzdcIixcImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3N1wiLFwiZmZmN2YzZmRlMGRkZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3XCIsXCJmZmY3ZjNmZGUwZGRmY2M1YzBmYTlmYjVmNzY4YTFkZDM0OTdhZTAxN2U3YTAxNzc0OTAwNmFcIikubWFwKGZmKSxPeT1jZihxeSksWXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVkZjhiMTdmY2RiYjJjN2ZiOFwiLFwiZmZmZmNjYTFkYWI0NDFiNmM0MjI1ZWE4XCIsXCJmZmZmY2NhMWRhYjQ0MWI2YzQyYzdmYjgyNTM0OTRcIixcImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDJjN2ZiODI1MzQ5NFwiLFwiZmZmZmNjYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0XCIsXCJmZmZmZDllZGY4YjFjN2U5YjQ3ZmNkYmI0MWI2YzQxZDkxYzAyMjVlYTgwYzJjODRcIixcImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODI1MzQ5NDA4MWQ1OFwiKS5tYXAoZmYpLEJ5PWNmKFl5KSxGeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZjdmY2I5YWRkZDhlMzFhMzU0XCIsXCJmZmZmY2NjMmU2OTk3OGM2NzkyMzg0NDNcIixcImZmZmZjY2MyZTY5OTc4YzY3OTMxYTM1NDAwNjgzN1wiLFwiZmZmZmNjZDlmMGEzYWRkZDhlNzhjNjc5MzFhMzU0MDA2ODM3XCIsXCJmZmZmY2NkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDVhMzJcIixcImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMlwiLFwiZmZmZmU1ZjdmY2I5ZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA2ODM3MDA0NTI5XCIpLm1hcChmZiksSXk9Y2YoRnkpLGp5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZmY3YmNmZWM0NGZkOTVmMGVcIixcImZmZmZkNGZlZDk4ZWZlOTkyOWNjNGMwMlwiLFwiZmZmZmQ0ZmVkOThlZmU5OTI5ZDk1ZjBlOTkzNDA0XCIsXCJmZmZmZDRmZWUzOTFmZWM0NGZmZTk5MjlkOTVmMGU5OTM0MDRcIixcImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNFwiLFwiZmZmZmU1ZmZmN2JjZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOGMyZDA0XCIsXCJmZmZmZTVmZmY3YmNmZWUzOTFmZWM0NGZmZTk5MjllYzcwMTRjYzRjMDI5OTM0MDQ2NjI1MDZcIikubWFwKGZmKSxIeT1jZihqeSksWHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZmZWRhMGZlYjI0Y2YwM2IyMFwiLFwiZmZmZmIyZmVjYzVjZmQ4ZDNjZTMxYTFjXCIsXCJmZmZmYjJmZWNjNWNmZDhkM2NmMDNiMjBiZDAwMjZcIixcImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2YwM2IyMGJkMDAyNlwiLFwiZmZmZmIyZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2XCIsXCJmZmZmY2NmZmVkYTBmZWQ5NzZmZWIyNGNmZDhkM2NmYzRlMmFlMzFhMWNiMTAwMjZcIixcImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2JkMDAyNjgwMDAyNlwiKS5tYXAoZmYpLEd5PWNmKFh5KSxWeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZGVlYmY3OWVjYWUxMzE4MmJkXCIsXCJlZmYzZmZiZGQ3ZTc2YmFlZDYyMTcxYjVcIixcImVmZjNmZmJkZDdlNzZiYWVkNjMxODJiZDA4NTE5Y1wiLFwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2MzE4MmJkMDg1MTljXCIsXCJlZmYzZmZjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODQ1OTRcIixcImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NFwiLFwiZjdmYmZmZGVlYmY3YzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg1MTljMDgzMDZiXCIpLm1hcChmZiksJHk9Y2YoVnkpLFd5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlNWY1ZTBhMWQ5OWIzMWEzNTRcIixcImVkZjhlOWJhZTRiMzc0YzQ3NjIzOGI0NVwiLFwiZWRmOGU5YmFlNGIzNzRjNDc2MzFhMzU0MDA2ZDJjXCIsXCJlZGY4ZTljN2U5YzBhMWQ5OWI3NGM0NzYzMWEzNTQwMDZkMmNcIixcImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMlwiLFwiZjdmY2Y1ZTVmNWUwYzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA1YTMyXCIsXCJmN2ZjZjVlNWY1ZTBjN2U5YzBhMWQ5OWI3NGM0NzY0MWFiNWQyMzhiNDUwMDZkMmMwMDQ0MWJcIikubWFwKGZmKSxaeT1jZihXeSksUXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImYwZjBmMGJkYmRiZDYzNjM2M1wiLFwiZjdmN2Y3Y2NjY2NjOTY5Njk2NTI1MjUyXCIsXCJmN2Y3ZjdjY2NjY2M5Njk2OTY2MzYzNjMyNTI1MjVcIixcImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjYzNjM2MzI1MjUyNVwiLFwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1XCIsXCJmZmZmZmZmMGYwZjBkOWQ5ZDliZGJkYmQ5Njk2OTY3MzczNzM1MjUyNTIyNTI1MjVcIixcImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNTAwMDAwMFwiKS5tYXAoZmYpLEp5PWNmKFF5KSxLeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWZlZGY1YmNiZGRjNzU2YmIxXCIsXCJmMmYwZjdjYmM5ZTI5ZTlhYzg2YTUxYTNcIixcImYyZjBmN2NiYzllMjllOWFjODc1NmJiMTU0Mjc4ZlwiLFwiZjJmMGY3ZGFkYWViYmNiZGRjOWU5YWM4NzU2YmIxNTQyNzhmXCIsXCJmMmYwZjdkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM0YTE0ODZcIixcImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NlwiLFwiZmNmYmZkZWZlZGY1ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNTQyNzhmM2YwMDdkXCIpLm1hcChmZiksdF89Y2YoS3kpLG5fPW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZWUwZDJmYzkyNzJkZTJkMjZcIixcImZlZTVkOWZjYWU5MWZiNmE0YWNiMTgxZFwiLFwiZmVlNWQ5ZmNhZTkxZmI2YTRhZGUyZDI2YTUwZjE1XCIsXCJmZWU1ZDlmY2JiYTFmYzkyNzJmYjZhNGFkZTJkMjZhNTBmMTVcIixcImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZFwiLFwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkOTkwMDBkXCIsXCJmZmY1ZjBmZWUwZDJmY2JiYTFmYzkyNzJmYjZhNGFlZjNiMmNjYjE4MWRhNTBmMTU2NzAwMGRcIikubWFwKGZmKSxlXz1jZihuXykscl89bmV3IEFycmF5KDMpLmNvbmNhdChcImZlZTZjZWZkYWU2YmU2NTUwZFwiLFwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZDk0NzAxXCIsXCJmZWVkZGVmZGJlODVmZDhkM2NlNjU1MGRhNjM2MDNcIixcImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2U2NTUwZGE2MzYwM1wiLFwiZmVlZGRlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0XCIsXCJmZmY1ZWJmZWU2Y2VmZGQwYTJmZGFlNmJmZDhkM2NmMTY5MTNkOTQ4MDE4YzJkMDRcIixcImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMWE2MzYwMzdmMjcwNFwiKS5tYXAoZmYpLGlfPWNmKHJfKSxvXz14bChadCgzMDAsLjUsMCksWnQoLTI0MCwuNSwxKSksYV89eGwoWnQoLTEwMCwuNzUsLjM1KSxadCg4MCwxLjUsLjgpKSx1Xz14bChadCgyNjAsLjc1LC4zNSksWnQoODAsMS41LC44KSksZl89WnQoKSxjXz1SdCgpLHNfPU1hdGguUEkvMyxsXz0yKk1hdGguUEkvMyxoXz1zZihmZihcIjQ0MDE1NDQ0MDI1NjQ1MDQ1NzQ1MDU1OTQ2MDc1YTQ2MDg1YzQ2MGE1ZDQ2MGI1ZTQ3MGQ2MDQ3MGU2MTQ3MTA2MzQ3MTE2NDQ3MTM2NTQ4MTQ2NzQ4MTY2ODQ4MTc2OTQ4MTg2YTQ4MWE2YzQ4MWI2ZDQ4MWM2ZTQ4MWQ2ZjQ4MWY3MDQ4MjA3MTQ4MjE3MzQ4MjM3NDQ4MjQ3NTQ4MjU3NjQ4MjY3NzQ4Mjg3ODQ4Mjk3OTQ3MmE3YTQ3MmM3YTQ3MmQ3YjQ3MmU3YzQ3MmY3ZDQ2MzA3ZTQ2MzI3ZTQ2MzM3ZjQ2MzQ4MDQ1MzU4MTQ1Mzc4MTQ1Mzg4MjQ0Mzk4MzQ0M2E4MzQ0M2I4NDQzM2Q4NDQzM2U4NTQyM2Y4NTQyNDA4NjQyNDE4NjQxNDI4NzQxNDQ4NzQwNDU4ODQwNDY4ODNmNDc4ODNmNDg4OTNlNDk4OTNlNGE4OTNlNGM4YTNkNGQ4YTNkNGU4YTNjNGY4YTNjNTA4YjNiNTE4YjNiNTI4YjNhNTM4YjNhNTQ4YzM5NTU4YzM5NTY4YzM4NTg4YzM4NTk4YzM3NWE4YzM3NWI4ZDM2NWM4ZDM2NWQ4ZDM1NWU4ZDM1NWY4ZDM0NjA4ZDM0NjE4ZDMzNjI4ZDMzNjM4ZDMyNjQ4ZTMyNjU4ZTMxNjY4ZTMxNjc4ZTMxNjg4ZTMwNjk4ZTMwNmE4ZTJmNmI4ZTJmNmM4ZTJlNmQ4ZTJlNmU4ZTJlNmY4ZTJkNzA4ZTJkNzE4ZTJjNzE4ZTJjNzI4ZTJjNzM4ZTJiNzQ4ZTJiNzU4ZTJhNzY4ZTJhNzc4ZTJhNzg4ZTI5Nzk4ZTI5N2E4ZTI5N2I4ZTI4N2M4ZTI4N2Q4ZTI3N2U4ZTI3N2Y4ZTI3ODA4ZTI2ODE4ZTI2ODI4ZTI2ODI4ZTI1ODM4ZTI1ODQ4ZTI1ODU4ZTI0ODY4ZTI0ODc4ZTIzODg4ZTIzODk4ZTIzOGE4ZDIyOGI4ZDIyOGM4ZDIyOGQ4ZDIxOGU4ZDIxOGY4ZDIxOTA4ZDIxOTE4YzIwOTI4YzIwOTI4YzIwOTM4YzFmOTQ4YzFmOTU4YjFmOTY4YjFmOTc4YjFmOTg4YjFmOTk4YTFmOWE4YTFlOWI4YTFlOWM4OTFlOWQ4OTFmOWU4OTFmOWY4ODFmYTA4ODFmYTE4ODFmYTE4NzFmYTI4NzIwYTM4NjIwYTQ4NjIxYTU4NTIxYTY4NTIyYTc4NTIyYTg4NDIzYTk4MzI0YWE4MzI1YWI4MjI1YWM4MjI2YWQ4MTI3YWQ4MTI4YWU4MDI5YWY3ZjJhYjA3ZjJjYjE3ZTJkYjI3ZDJlYjM3YzJmYjQ3YzMxYjU3YjMyYjY3YTM0YjY3OTM1Yjc3OTM3Yjg3ODM4Yjk3NzNhYmE3NjNiYmI3NTNkYmM3NDNmYmM3MzQwYmQ3MjQyYmU3MTQ0YmY3MDQ2YzA2ZjQ4YzE2ZTRhYzE2ZDRjYzI2YzRlYzM2YjUwYzQ2YTUyYzU2OTU0YzU2ODU2YzY2NzU4Yzc2NTVhYzg2NDVjYzg2MzVlYzk2MjYwY2E2MDYzY2I1ZjY1Y2I1ZTY3Y2M1YzY5Y2Q1YjZjY2Q1YTZlY2U1ODcwY2Y1NzczZDA1Njc1ZDA1NDc3ZDE1MzdhZDE1MTdjZDI1MDdmZDM0ZTgxZDM0ZDg0ZDQ0Yjg2ZDU0OTg5ZDU0ODhiZDY0NjhlZDY0NTkwZDc0MzkzZDc0MTk1ZDg0MDk4ZDgzZTliZDkzYzlkZDkzYmEwZGEzOWEyZGEzN2E1ZGIzNmE4ZGIzNGFhZGMzMmFkZGMzMGIwZGQyZmIyZGQyZGI1ZGUyYmI4ZGUyOWJhZGUyOGJkZGYyNmMwZGYyNWMyZGYyM2M1ZTAyMWM4ZTAyMGNhZTExZmNkZTExZGQwZTExY2QyZTIxYmQ1ZTIxYWQ4ZTIxOWRhZTMxOWRkZTMxOGRmZTMxOGUyZTQxOGU1ZTQxOWU3ZTQxOWVhZTUxYWVjZTUxYmVmZTUxY2YxZTUxZGY0ZTYxZWY2ZTYyMGY4ZTYyMWZiZTcyM2ZkZTcyNVwiKSksZF89c2YoZmYoXCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMDkwMjAyMGIwMjAyMGQwMzAzMGYwMzAzMTIwNDA0MTQwNTA0MTYwNjA1MTgwNjA1MWEwNzA2MWMwODA3MWUwOTA3MjAwYTA4MjIwYjA5MjQwYzA5MjYwZDBhMjkwZTBiMmIxMDBiMmQxMTBjMmYxMjBkMzExMzBkMzQxNDBlMzYxNTBlMzgxNjBmM2IxODBmM2QxOTEwM2YxYTEwNDIxYzEwNDQxZDExNDcxZTExNDkyMDExNGIyMTExNGUyMjExNTAyNDEyNTMyNTEyNTUyNzEyNTgyOTExNWEyYTExNWMyYzExNWYyZDExNjEyZjExNjMzMTExNjUzMzEwNjczNDEwNjkzNjEwNmIzODEwNmMzOTBmNmUzYjBmNzAzZDBmNzEzZjBmNzI0MDBmNzQ0MjBmNzU0NDBmNzY0NTEwNzc0NzEwNzg0OTEwNzg0YTEwNzk0YzExN2E0ZTExN2I0ZjEyN2I1MTEyN2M1MjEzN2M1NDEzN2Q1NjE0N2Q1NzE1N2U1OTE1N2U1YTE2N2U1YzE2N2Y1ZDE3N2Y1ZjE4N2Y2MDE4ODA2MjE5ODA2NDFhODA2NTFhODA2NzFiODA2ODFjODE2YTFjODE2YjFkODE2ZDFkODE2ZTFlODE3MDFmODE3MjFmODE3MzIwODE3NTIxODE3NjIxODE3ODIyODE3OTIyODI3YjIzODI3YzIzODI3ZTI0ODI4MDI1ODI4MTI1ODE4MzI2ODE4NDI2ODE4NjI3ODE4ODI3ODE4OTI4ODE4YjI5ODE4YzI5ODE4ZTJhODE5MDJhODE5MTJiODE5MzJiODA5NDJjODA5NjJjODA5ODJkODA5OTJkODA5YjJlN2Y5YzJlN2Y5ZTJmN2ZhMDJmN2ZhMTMwN2VhMzMwN2VhNTMxN2VhNjMxN2RhODMyN2RhYTMzN2RhYjMzN2NhZDM0N2NhZTM0N2JiMDM1N2JiMjM1N2JiMzM2N2FiNTM2N2FiNzM3NzliODM3NzliYTM4NzhiYzM5NzhiZDM5NzdiZjNhNzdjMDNhNzZjMjNiNzVjNDNjNzVjNTNjNzRjNzNkNzNjODNlNzNjYTNlNzJjYzNmNzFjZDQwNzFjZjQwNzBkMDQxNmZkMjQyNmZkMzQzNmVkNTQ0NmRkNjQ1NmNkODQ1NmNkOTQ2NmJkYjQ3NmFkYzQ4NjlkZTQ5NjhkZjRhNjhlMDRjNjdlMjRkNjZlMzRlNjVlNDRmNjRlNTUwNjRlNzUyNjNlODUzNjJlOTU0NjJlYTU2NjFlYjU3NjBlYzU4NjBlZDVhNWZlZTViNWVlZjVkNWVmMDVmNWVmMTYwNWRmMjYyNWRmMjY0NWNmMzY1NWNmNDY3NWNmNDY5NWNmNTZiNWNmNjZjNWNmNjZlNWNmNzcwNWNmNzcyNWNmODc0NWNmODc2NWNmOTc4NWRmOTc5NWRmOTdiNWRmYTdkNWVmYTdmNWVmYTgxNWZmYjgzNWZmYjg1NjBmYjg3NjFmYzg5NjFmYzhhNjJmYzhjNjNmYzhlNjRmYzkwNjVmZDkyNjZmZDk0NjdmZDk2NjhmZDk4NjlmZDlhNmFmZDliNmJmZTlkNmNmZTlmNmRmZWExNmVmZWEzNmZmZWE1NzFmZWE3NzJmZWE5NzNmZWFhNzRmZWFjNzZmZWFlNzdmZWIwNzhmZWIyN2FmZWI0N2JmZWI2N2NmZWI3N2VmZWI5N2ZmZWJiODFmZWJkODJmZWJmODRmZWMxODVmZWMyODdmZWM0ODhmZWM2OGFmZWM4OGNmZWNhOGRmZWNjOGZmZWNkOTBmZWNmOTJmZWQxOTRmZWQzOTVmZWQ1OTdmZWQ3OTlmZWQ4OWFmZGRhOWNmZGRjOWVmZGRlYTBmZGUwYTFmZGUyYTNmZGUzYTVmZGU1YTdmZGU3YTlmZGU5YWFmZGViYWNmY2VjYWVmY2VlYjBmY2YwYjJmY2YyYjRmY2Y0YjZmY2Y2YjhmY2Y3YjlmY2Y5YmJmY2ZiYmRmY2ZkYmZcIikpLHBfPXNmKGZmKFwiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTBhMDIwMjBjMDIwMjBlMDMwMjEwMDQwMzEyMDQwMzE0MDUwNDE3MDYwNDE5MDcwNTFiMDgwNTFkMDkwNjFmMGEwNzIyMGIwNzI0MGMwODI2MGQwODI5MGUwOTJiMTAwOTJkMTEwYTMwMTIwYTMyMTQwYjM0MTUwYjM3MTYwYjM5MTgwYzNjMTkwYzNlMWIwYzQxMWMwYzQzMWUwYzQ1MWYwYzQ4MjEwYzRhMjMwYzRjMjQwYzRmMjYwYzUxMjgwYjUzMjkwYjU1MmIwYjU3MmQwYjU5MmYwYTViMzEwYTVjMzIwYTVlMzQwYTVmMzYwOTYxMzgwOTYyMzkwOTYzM2IwOTY0M2QwOTY1M2UwOTY2NDAwYTY3NDIwYTY4NDQwYTY4NDUwYTY5NDcwYjZhNDkwYjZhNGEwYzZiNGMwYzZiNGQwZDZjNGYwZDZjNTEwZTZjNTIwZTZkNTQwZjZkNTUwZjZkNTcxMDZlNTkxMDZlNWExMTZlNWMxMjZlNWQxMjZlNWYxMzZlNjExMzZlNjIxNDZlNjQxNTZlNjUxNTZlNjcxNjZlNjkxNjZlNmExNzZlNmMxODZlNmQxODZlNmYxOTZlNzExOTZlNzIxYTZlNzQxYTZlNzUxYjZlNzcxYzZkNzgxYzZkN2ExZDZkN2MxZDZkN2QxZTZkN2YxZTZjODAxZjZjODIyMDZjODQyMDZiODUyMTZiODcyMTZiODgyMjZhOGEyMjZhOGMyMzY5OGQyMzY5OGYyNDY5OTAyNTY4OTIyNTY4OTMyNjY3OTUyNjY3OTcyNzY2OTgyNzY2OWEyODY1OWIyOTY0OWQyOTY0OWYyYTYzYTAyYTYzYTIyYjYyYTMyYzYxYTUyYzYwYTYyZDYwYTgyZTVmYTkyZTVlYWIyZjVlYWQzMDVkYWUzMDVjYjAzMTViYjEzMjVhYjMzMjVhYjQzMzU5YjYzNDU4YjczNTU3YjkzNTU2YmEzNjU1YmMzNzU0YmQzODUzYmYzOTUyYzAzYTUxYzEzYTUwYzMzYjRmYzQzYzRlYzYzZDRkYzczZTRjYzgzZjRiY2E0MDRhY2I0MTQ5Y2M0MjQ4Y2U0MzQ3Y2Y0NDQ2ZDA0NTQ1ZDI0NjQ0ZDM0NzQzZDQ0ODQyZDU0YTQxZDc0YjNmZDg0YzNlZDk0ZDNkZGE0ZTNjZGI1MDNiZGQ1MTNhZGU1MjM4ZGY1MzM3ZTA1NTM2ZTE1NjM1ZTI1NzM0ZTM1OTMzZTQ1YTMxZTU1YzMwZTY1ZDJmZTc1ZTJlZTg2MDJkZTk2MTJiZWE2MzJhZWI2NDI5ZWI2NjI4ZWM2NzI2ZWQ2OTI1ZWU2YTI0ZWY2YzIzZWY2ZTIxZjA2ZjIwZjE3MTFmZjE3MzFkZjI3NDFjZjM3NjFiZjM3ODE5ZjQ3OTE4ZjU3YjE3ZjU3ZDE1ZjY3ZTE0ZjY4MDEzZjc4MjEyZjc4NDEwZjg4NTBmZjg4NzBlZjg4OTBjZjk4YjBiZjk4YzBhZjk4ZTA5ZmE5MDA4ZmE5MjA3ZmE5NDA3ZmI5NjA2ZmI5NzA2ZmI5OTA2ZmI5YjA2ZmI5ZDA3ZmM5ZjA3ZmNhMTA4ZmNhMzA5ZmNhNTBhZmNhNjBjZmNhODBkZmNhYTBmZmNhYzExZmNhZTEyZmNiMDE0ZmNiMjE2ZmNiNDE4ZmJiNjFhZmJiODFkZmJiYTFmZmJiYzIxZmJiZTIzZmFjMDI2ZmFjMjI4ZmFjNDJhZmFjNjJkZjljNzJmZjljOTMyZjljYjM1ZjhjZDM3ZjhjZjNhZjdkMTNkZjdkMzQwZjZkNTQzZjZkNzQ2ZjVkOTQ5ZjVkYjRjZjRkZDRmZjRkZjUzZjRlMTU2ZjNlMzVhZjNlNTVkZjJlNjYxZjJlODY1ZjJlYTY5ZjFlYzZkZjFlZDcxZjFlZjc1ZjFmMTc5ZjJmMjdkZjJmNDgyZjNmNTg2ZjNmNjhhZjRmODhlZjVmOTkyZjZmYTk2ZjhmYjlhZjlmYzlkZmFmZGExZmNmZmE0XCIpKSx2Xz1zZihmZihcIjBkMDg4NzEwMDc4ODEzMDc4OTE2MDc4YTE5MDY4YzFiMDY4ZDFkMDY4ZTIwMDY4ZjIyMDY5MDI0MDY5MTI2MDU5MTI4MDU5MjJhMDU5MzJjMDU5NDJlMDU5NTJmMDU5NjMxMDU5NzMzMDU5NzM1MDQ5ODM3MDQ5OTM4MDQ5YTNhMDQ5YTNjMDQ5YjNlMDQ5YzNmMDQ5YzQxMDQ5ZDQzMDM5ZTQ0MDM5ZTQ2MDM5ZjQ4MDM5ZjQ5MDNhMDRiMDNhMTRjMDJhMTRlMDJhMjUwMDJhMjUxMDJhMzUzMDJhMzU1MDJhNDU2MDFhNDU4MDFhNDU5MDFhNTViMDFhNTVjMDFhNjVlMDFhNjYwMDFhNjYxMDBhNzYzMDBhNzY0MDBhNzY2MDBhNzY3MDBhODY5MDBhODZhMDBhODZjMDBhODZlMDBhODZmMDBhODcxMDBhODcyMDFhODc0MDFhODc1MDFhODc3MDFhODc4MDFhODdhMDJhODdiMDJhODdkMDNhODdlMDNhODgwMDRhODgxMDRhNzgzMDVhNzg0MDVhNzg2MDZhNjg3MDdhNjg4MDhhNjhhMDlhNThiMGFhNThkMGJhNThlMGNhNDhmMGRhNDkxMGVhMzkyMGZhMzk0MTBhMjk1MTFhMTk2MTNhMTk4MTRhMDk5MTU5ZjlhMTY5ZjljMTc5ZTlkMTg5ZDllMTk5ZGEwMWE5Y2ExMWI5YmEyMWQ5YWEzMWU5YWE1MWY5OWE2MjA5OGE3MjE5N2E4MjI5NmFhMjM5NWFiMjQ5NGFjMjY5NGFkMjc5M2FlMjg5MmIwMjk5MWIxMmE5MGIyMmI4ZmIzMmM4ZWI0MmU4ZGI1MmY4Y2I2MzA4YmI3MzE4YWI4MzI4OWJhMzM4OGJiMzQ4OGJjMzU4N2JkMzc4NmJlMzg4NWJmMzk4NGMwM2E4M2MxM2I4MmMyM2M4MWMzM2Q4MGM0M2U3ZmM1NDA3ZWM2NDE3ZGM3NDI3Y2M4NDM3YmM5NDQ3YWNhNDU3YWNiNDY3OWNjNDc3OGNjNDk3N2NkNGE3NmNlNGI3NWNmNGM3NGQwNGQ3M2QxNGU3MmQyNGY3MWQzNTE3MWQ0NTI3MGQ1NTM2ZmQ1NTQ2ZWQ2NTU2ZGQ3NTY2Y2Q4NTc2YmQ5NTg2YWRhNWE2YWRhNWI2OWRiNWM2OGRjNWQ2N2RkNWU2NmRlNWY2NWRlNjE2NGRmNjI2M2UwNjM2M2UxNjQ2MmUyNjU2MWUyNjY2MGUzNjg1ZmU0Njk1ZWU1NmE1ZGU1NmI1ZGU2NmM1Y2U3NmU1YmU3NmY1YWU4NzA1OWU5NzE1OGU5NzI1N2VhNzQ1N2ViNzU1NmViNzY1NWVjNzc1NGVkNzk1M2VkN2E1MmVlN2I1MWVmN2M1MWVmN2U1MGYwN2Y0ZmYwODA0ZWYxODE0ZGYxODM0Y2YyODQ0YmYzODU0YmYzODc0YWY0ODg0OWY0ODk0OGY1OGI0N2Y1OGM0NmY2OGQ0NWY2OGY0NGY3OTA0NGY3OTE0M2Y3OTM0MmY4OTQ0MWY4OTU0MGY5OTczZmY5OTgzZWY5OWEzZWZhOWIzZGZhOWMzY2ZhOWUzYmZiOWYzYWZiYTEzOWZiYTIzOGZjYTMzOGZjYTUzN2ZjYTYzNmZjYTgzNWZjYTkzNGZkYWIzM2ZkYWMzM2ZkYWUzMmZkYWYzMWZkYjEzMGZkYjIyZmZkYjQyZmZkYjUyZWZlYjcyZGZlYjgyY2ZlYmEyY2ZlYmIyYmZlYmQyYWZlYmUyYWZlYzAyOWZkYzIyOWZkYzMyOGZkYzUyN2ZkYzYyN2ZkYzgyN2ZkY2EyNmZkY2IyNmZjY2QyNWZjY2UyNWZjZDAyNWZjZDIyNWZiZDMyNGZiZDUyNGZiZDcyNGZhZDgyNGZhZGEyNGY5ZGMyNGY5ZGQyNWY4ZGYyNWY4ZTEyNWY3ZTIyNWY3ZTQyNWY2ZTYyNmY2ZTgyNmY1ZTkyNmY1ZWIyN2Y0ZWQyN2YzZWUyN2YzZjAyN2YyZjIyN2YxZjQyNmYxZjUyNWYwZjcyNGYwZjkyMVwiKSksZ189TWF0aC5hYnMseV89TWF0aC5hdGFuMixfXz1NYXRoLmNvcyxiXz1NYXRoLm1heCxtXz1NYXRoLm1pbix4Xz1NYXRoLnNpbix3Xz1NYXRoLnNxcnQsTV89MWUtMTIsQV89TWF0aC5QSSxUXz1BXy8yLE5fPTIqQV87YmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OnRoaXMuX2NvbnRleHQubGluZVRvKHQsbil9fX07dmFyIFNfPUVmKG1mKTtTZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFTdGFydCgpfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYUVuZCgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLl9jdXJ2ZS5wb2ludChuKk1hdGguc2luKHQpLG4qLU1hdGguY29zKHQpKX19O3ZhciBFXz1BcnJheS5wcm90b3R5cGUuc2xpY2Usa189e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi9BXyk7dC5tb3ZlVG8oZSwwKSx0LmFyYygwLDAsZSwwLE5fKX19LENfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4vNSkvMjt0Lm1vdmVUbygtMyplLC1lKSx0LmxpbmVUbygtZSwtZSksdC5saW5lVG8oLWUsLTMqZSksdC5saW5lVG8oZSwtMyplKSx0LmxpbmVUbyhlLC1lKSx0LmxpbmVUbygzKmUsLWUpLHQubGluZVRvKDMqZSxlKSx0LmxpbmVUbyhlLGUpLHQubGluZVRvKGUsMyplKSx0LmxpbmVUbygtZSwzKmUpLHQubGluZVRvKC1lLGUpLHQubGluZVRvKC0zKmUsZSksdC5jbG9zZVBhdGgoKX19LFBfPU1hdGguc3FydCgxLzMpLHpfPTIqUF8sUl89e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi96Xykscj1lKlBfO3QubW92ZVRvKDAsLWUpLHQubGluZVRvKHIsMCksdC5saW5lVG8oMCxlKSx0LmxpbmVUbygtciwwKSx0LmNsb3NlUGF0aCgpfX0sTF89TWF0aC5zaW4oQV8vMTApL01hdGguc2luKDcqQV8vMTApLERfPU1hdGguc2luKE5fLzEwKSpMXyxVXz0tTWF0aC5jb3MoTl8vMTApKkxfLHFfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KC44OTA4MTMwOTE1MjkyODUyKm4pLHI9RF8qZSxpPVVfKmU7dC5tb3ZlVG8oMCwtZSksdC5saW5lVG8ocixpKTtmb3IodmFyIG89MTtvPDU7KytvKXt2YXIgYT1OXypvLzUsdT1NYXRoLmNvcyhhKSxmPU1hdGguc2luKGEpO3QubGluZVRvKGYqZSwtdSplKSx0LmxpbmVUbyh1KnItZippLGYqcit1KmkpfXQuY2xvc2VQYXRoKCl9fSxPXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydChuKSxyPS1lLzI7dC5yZWN0KHIscixlLGUpfX0sWV89TWF0aC5zcXJ0KDMpLEJfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9LU1hdGguc3FydChuLygzKllfKSk7dC5tb3ZlVG8oMCwyKmUpLHQubGluZVRvKC1ZXyplLC1lKSx0LmxpbmVUbyhZXyplLC1lKSx0LmNsb3NlUGF0aCgpfX0sRl89TWF0aC5zcXJ0KDMpLzIsSV89MS9NYXRoLnNxcnQoMTIpLGpfPTMqKElfLzIrMSksSF89e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi9qXykscj1lLzIsaT1lKklfLG89cixhPWUqSV8rZSx1PS1vLGY9YTt0Lm1vdmVUbyhyLGkpLHQubGluZVRvKG8sYSksdC5saW5lVG8odSxmKSx0LmxpbmVUbygtLjUqci1GXyppLEZfKnIrLS41KmkpLHQubGluZVRvKC0uNSpvLUZfKmEsRl8qbystLjUqYSksdC5saW5lVG8oLS41KnUtRl8qZixGXyp1Ky0uNSpmKSx0LmxpbmVUbygtLjUqcitGXyppLC0uNSppLUZfKnIpLHQubGluZVRvKC0uNSpvK0ZfKmEsLS41KmEtRl8qbyksdC5saW5lVG8oLS41KnUrRl8qZiwtLjUqZi1GXyp1KSx0LmNsb3NlUGF0aCgpfX0sWF89W2tfLENfLFJfLE9fLHFfLEJfLEhfXTtGZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAzOkJmKHRoaXMsdGhpcy5feDEsdGhpcy5feTEpO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2NvbnRleHQubGluZVRvKCg1KnRoaXMuX3gwK3RoaXMuX3gxKS82LCg1KnRoaXMuX3kwK3RoaXMuX3kxKS82KTtkZWZhdWx0OkJmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPW59fSxJZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCl9fSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gyPXQsdGhpcy5feTI9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94Mz10LHRoaXMuX3kzPW47YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDQ9dCx0aGlzLl95ND1uLHRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsKHRoaXMuX3kwKzQqdGhpcy5feTErbikvNik7YnJlYWs7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0samYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7dmFyIGU9KHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNixyPSh0aGlzLl95MCs0KnRoaXMuX3kxK24pLzY7dGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhlLHIpOnRoaXMuX2NvbnRleHQubW92ZVRvKGUscik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0sSGYucHJvdG90eXBlPXtsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W10sdGhpcy5fYmFzaXMubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LG49dGhpcy5feSxlPXQubGVuZ3RoLTE7aWYoZT4wKWZvcih2YXIgcixpPXRbMF0sbz1uWzBdLGE9dFtlXS1pLHU9bltlXS1vLGY9LTE7KytmPD1lOylyPWYvZSx0aGlzLl9iYXNpcy5wb2ludCh0aGlzLl9iZXRhKnRbZl0rKDEtdGhpcy5fYmV0YSkqKGkrciphKSx0aGlzLl9iZXRhKm5bZl0rKDEtdGhpcy5fYmV0YSkqKG8rcip1KSk7dGhpcy5feD10aGlzLl95PW51bGwsdGhpcy5fYmFzaXMubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtuKX19O3ZhciBHXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIDE9PT1uP25ldyBGZih0KTpuZXcgSGYodCxuKX1yZXR1cm4gZS5iZXRhPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oLjg1KTtHZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6WGYodGhpcyx0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPXQsdGhpcy5feTE9bjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgVl89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgR2YodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7VmYucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PW4pO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9bjticmVhaztkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgJF89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgVmYodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7JGYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6WGYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBXXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyAkZih0LG4pfXJldHVybiBlLnRlbnNpb249ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSgwKTtaZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mil9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe2lmKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7dmFyIGU9dGhpcy5feDItdCxyPXRoaXMuX3kyLW47dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhlKmUrcipyLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFpfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgWmYodCxuKTpuZXcgR2YodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtRZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsbil7aWYodD0rdCxuPStuLHRoaXMuX3BvaW50KXt2YXIgZT10aGlzLl94Mi10LHI9dGhpcy5feTItbjt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KGUqZStyKnIsdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PW4pO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9bjticmVhaztkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFFfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgUWYodCxuKTpuZXcgVmYodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtKZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtpZih0PSt0LG49K24sdGhpcy5fcG9pbnQpe3ZhciBlPXRoaXMuX3gyLXQscj10aGlzLl95Mi1uO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3coZSplK3Iqcix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6V2YodGhpcyx0LG4pfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgSl89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuP25ldyBKZih0LG4pOm5ldyAkZih0LDApfXJldHVybiBlLmFscGhhPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oLjUpO0tmLnByb3RvdHlwZT17YXJlYVN0YXJ0OllmLGFyZWFFbmQ6WWYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxwb2ludDpmdW5jdGlvbih0LG4pe3Q9K3Qsbj0rbix0aGlzLl9wb2ludD90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOih0aGlzLl9wb2ludD0xLHRoaXMuX2NvbnRleHQubW92ZVRvKHQsbikpfX0saWMucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOnJjKHRoaXMsdGhpcy5fdDAsZWModGhpcyx0aGlzLl90MCkpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt2YXIgZT1OYU47aWYodD0rdCxuPStuLHQhPT10aGlzLl94MXx8biE9PXRoaXMuX3kxKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHJjKHRoaXMsZWModGhpcyxlPW5jKHRoaXMsdCxuKSksZSk7YnJlYWs7ZGVmYXVsdDpyYyh0aGlzLHRoaXMuX3QwLGU9bmModGhpcyx0LG4pKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPW4sdGhpcy5fdDA9ZX19fSwob2MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaWMucHJvdG90eXBlKSkucG9pbnQ9ZnVuY3Rpb24odCxuKXtpYy5wcm90b3R5cGUucG9pbnQuY2FsbCh0aGlzLG4sdCl9LGFjLnByb3RvdHlwZT17bW92ZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fY29udGV4dC5tb3ZlVG8obix0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0sbGluZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fY29udGV4dC5saW5lVG8obix0KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG4sdCxyLGUsbyxpKX19LHVjLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsbj10aGlzLl95LGU9dC5sZW5ndGg7aWYoZSlpZih0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRbMF0sblswXSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odFswXSxuWzBdKSwyPT09ZSl0aGlzLl9jb250ZXh0LmxpbmVUbyh0WzFdLG5bMV0pO2Vsc2UgZm9yKHZhciByPWZjKHQpLGk9ZmMobiksbz0wLGE9MTthPGU7KytvLCsrYSl0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oclswXVtvXSxpWzBdW29dLHJbMV1bb10saVsxXVtvXSx0W2FdLG5bYV0pOyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PWUpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lLHRoaXMuX3g9dGhpcy5feT1udWxsfSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtuKX19LGNjLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiYyPT09dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDppZih0aGlzLl90PD0wKXRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsbiksdGhpcy5fY29udGV4dC5saW5lVG8odCxuKTtlbHNle3ZhciBlPXRoaXMuX3gqKDEtdGhpcy5fdCkrdCp0aGlzLl90O3RoaXMuX2NvbnRleHQubGluZVRvKGUsdGhpcy5feSksdGhpcy5fY29udGV4dC5saW5lVG8oZSxuKX19dGhpcy5feD10LHRoaXMuX3k9bn19LF9jLnByb3RvdHlwZT17Y29uc3RydWN0b3I6X2MsaW5zZXJ0OmZ1bmN0aW9uKHQsbil7dmFyIGUscixpO2lmKHQpe2lmKG4uUD10LG4uTj10Lk4sdC5OJiYodC5OLlA9biksdC5OPW4sdC5SKXtmb3IodD10LlI7dC5MOyl0PXQuTDt0Lkw9bn1lbHNlIHQuUj1uO2U9dH1lbHNlIHRoaXMuXz8odD13Yyh0aGlzLl8pLG4uUD1udWxsLG4uTj10LHQuUD10Lkw9bixlPXQpOihuLlA9bi5OPW51bGwsdGhpcy5fPW4sZT1udWxsKTtmb3Iobi5MPW4uUj1udWxsLG4uVT1lLG4uQz0hMCx0PW47ZSYmZS5DOyllPT09KHI9ZS5VKS5MPyhpPXIuUikmJmkuQz8oZS5DPWkuQz0hMSxyLkM9ITAsdD1yKToodD09PWUuUiYmKG1jKHRoaXMsZSksZT0odD1lKS5VKSxlLkM9ITEsci5DPSEwLHhjKHRoaXMscikpOihpPXIuTCkmJmkuQz8oZS5DPWkuQz0hMSxyLkM9ITAsdD1yKToodD09PWUuTCYmKHhjKHRoaXMsZSksZT0odD1lKS5VKSxlLkM9ITEsci5DPSEwLG1jKHRoaXMscikpLGU9dC5VO3RoaXMuXy5DPSExfSxyZW1vdmU6ZnVuY3Rpb24odCl7dC5OJiYodC5OLlA9dC5QKSx0LlAmJih0LlAuTj10Lk4pLHQuTj10LlA9bnVsbDt2YXIgbixlLHIsaT10LlUsbz10LkwsYT10LlI7aWYoZT1vP2E/d2MoYSk6bzphLGk/aS5MPT09dD9pLkw9ZTppLlI9ZTp0aGlzLl89ZSxvJiZhPyhyPWUuQyxlLkM9dC5DLGUuTD1vLG8uVT1lLGUhPT1hPyhpPWUuVSxlLlU9dC5VLHQ9ZS5SLGkuTD10LGUuUj1hLGEuVT1lKTooZS5VPWksaT1lLHQ9ZS5SKSk6KHI9dC5DLHQ9ZSksdCYmKHQuVT1pKSwhcilpZih0JiZ0LkMpdC5DPSExO2Vsc2V7ZG97aWYodD09PXRoaXMuXylicmVhaztpZih0PT09aS5MKXtpZigobj1pLlIpLkMmJihuLkM9ITEsaS5DPSEwLG1jKHRoaXMsaSksbj1pLlIpLG4uTCYmbi5MLkN8fG4uUiYmbi5SLkMpe24uUiYmbi5SLkN8fChuLkwuQz0hMSxuLkM9ITAseGModGhpcyxuKSxuPWkuUiksbi5DPWkuQyxpLkM9bi5SLkM9ITEsbWModGhpcyxpKSx0PXRoaXMuXzticmVha319ZWxzZSBpZigobj1pLkwpLkMmJihuLkM9ITEsaS5DPSEwLHhjKHRoaXMsaSksbj1pLkwpLG4uTCYmbi5MLkN8fG4uUiYmbi5SLkMpe24uTCYmbi5MLkN8fChuLlIuQz0hMSxuLkM9ITAsbWModGhpcyxuKSxuPWkuTCksbi5DPWkuQyxpLkM9bi5MLkM9ITEseGModGhpcyxpKSx0PXRoaXMuXzticmVha31uLkM9ITAsdD1pLGk9aS5VfXdoaWxlKCF0LkMpO3QmJih0LkM9ITEpfX19O3ZhciBLXyx0YixuYixlYixyYixpYj1bXSxvYj1bXSxhYj0xZS02LHViPTFlLTEyO0JjLnByb3RvdHlwZT17Y29uc3RydWN0b3I6QmMscG9seWdvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLm1hcChmdW5jdGlvbihuKXt2YXIgZT1uLmhhbGZlZGdlcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGtjKG4sdFtlXSl9KTtyZXR1cm4gZS5kYXRhPW4uc2l0ZS5kYXRhLGV9KX0sdHJpYW5nbGVzOmZ1bmN0aW9uKCl7dmFyIHQ9W10sbj10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLmZvckVhY2goZnVuY3Rpb24oZSxyKXtpZihvPShpPWUuaGFsZmVkZ2VzKS5sZW5ndGgpZm9yKHZhciBpLG8sYSx1PWUuc2l0ZSxmPS0xLGM9bltpW28tMV1dLHM9Yy5sZWZ0PT09dT9jLnJpZ2h0OmMubGVmdDsrK2Y8bzspYT1zLHM9KGM9bltpW2ZdXSkubGVmdD09PXU/Yy5yaWdodDpjLmxlZnQsYSYmcyYmcjxhLmluZGV4JiZyPHMuaW5kZXgmJk9jKHUsYSxzKTwwJiZ0LnB1c2goW3UuZGF0YSxhLmRhdGEscy5kYXRhXSl9KSx0fSxsaW5rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZ2VzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5yaWdodH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm57c291cmNlOnQubGVmdC5kYXRhLHRhcmdldDp0LnJpZ2h0LmRhdGF9fSl9LGZpbmQ6ZnVuY3Rpb24odCxuLGUpe2Zvcih2YXIgcixpLG89dGhpcyxhPW8uX2ZvdW5kfHwwLHU9by5jZWxscy5sZW5ndGg7IShpPW8uY2VsbHNbYV0pOylpZigrK2E+PXUpcmV0dXJuIG51bGw7dmFyIGY9dC1pLnNpdGVbMF0sYz1uLWkuc2l0ZVsxXSxzPWYqZitjKmM7ZG97aT1vLmNlbGxzW3I9YV0sYT1udWxsLGkuaGFsZmVkZ2VzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHI9by5lZGdlc1tlXSx1PXIubGVmdDtpZih1IT09aS5zaXRlJiZ1fHwodT1yLnJpZ2h0KSl7dmFyIGY9dC11WzBdLGM9bi11WzFdLGw9ZipmK2MqYztsPHMmJihzPWwsYT11LmluZGV4KX19KX13aGlsZShudWxsIT09YSk7cmV0dXJuIG8uX2ZvdW5kPXIsbnVsbD09ZXx8czw9ZSplP2kuc2l0ZTpudWxsfX0sSWMucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpJYyxzY2FsZTpmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQ/dGhpczpuZXcgSWModGhpcy5rKnQsdGhpcy54LHRoaXMueSl9LHRyYW5zbGF0ZTpmdW5jdGlvbih0LG4pe3JldHVybiAwPT09dCYwPT09bj90aGlzOm5ldyBJYyh0aGlzLmssdGhpcy54K3RoaXMuayp0LHRoaXMueSt0aGlzLmsqbil9LGFwcGx5OmZ1bmN0aW9uKHQpe3JldHVyblt0WzBdKnRoaXMuayt0aGlzLngsdFsxXSp0aGlzLmsrdGhpcy55XX0sYXBwbHlYOmZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMuayt0aGlzLnh9LGFwcGx5WTpmdW5jdGlvbih0KXtyZXR1cm4gdCp0aGlzLmsrdGhpcy55fSxpbnZlcnQ6ZnVuY3Rpb24odCl7cmV0dXJuWyh0WzBdLXRoaXMueCkvdGhpcy5rLCh0WzFdLXRoaXMueSkvdGhpcy5rXX0saW52ZXJ0WDpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLngpL3RoaXMua30saW52ZXJ0WTpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLnkpL3RoaXMua30scmVzY2FsZVg6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weSgpLmRvbWFpbih0LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WCx0aGlzKS5tYXAodC5pbnZlcnQsdCkpfSxyZXNjYWxlWTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KCkuZG9tYWluKHQucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRZLHRoaXMpLm1hcCh0LmludmVydCx0KSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0cmFuc2xhdGUoXCIrdGhpcy54K1wiLFwiK3RoaXMueStcIikgc2NhbGUoXCIrdGhpcy5rK1wiKVwifX07dmFyIGZiPW5ldyBJYygxLDAsMCk7amMucHJvdG90eXBlPUljLnByb3RvdHlwZSx0LnZlcnNpb249XCI1LjUuMFwiLHQuYmlzZWN0PUtjLHQuYmlzZWN0UmlnaHQ9S2MsdC5iaXNlY3RMZWZ0PXRzLHQuYXNjZW5kaW5nPW4sdC5iaXNlY3Rvcj1lLHQuY3Jvc3M9ZnVuY3Rpb24odCxuLGUpe3ZhciBpLG8sYSx1LGY9dC5sZW5ndGgsYz1uLmxlbmd0aCxzPW5ldyBBcnJheShmKmMpO2ZvcihudWxsPT1lJiYoZT1yKSxpPWE9MDtpPGY7KytpKWZvcih1PXRbaV0sbz0wO288YzsrK28sKythKXNbYV09ZSh1LG5bb10pO3JldHVybiBzfSx0LmRlc2NlbmRpbmc9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbjx0Py0xOm4+dD8xOm4+PXQ/MDpOYU59LHQuZGV2aWF0aW9uPWEsdC5leHRlbnQ9dSx0Lmhpc3RvZ3JhbT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGksbyxhPXQubGVuZ3RoLHU9bmV3IEFycmF5KGEpO2ZvcihpPTA7aTxhOysraSl1W2ldPW4odFtpXSxpLHQpO3ZhciBmPWUodSksYz1mWzBdLGw9ZlsxXSxoPXIodSxjLGwpO0FycmF5LmlzQXJyYXkoaCl8fChoPWQoYyxsLGgpLGg9cyhNYXRoLmNlaWwoYy9oKSpoLE1hdGguZmxvb3IobC9oKSpoLGgpKTtmb3IodmFyIHA9aC5sZW5ndGg7aFswXTw9YzspaC5zaGlmdCgpLC0tcDtmb3IoO2hbcC0xXT5sOyloLnBvcCgpLC0tcDt2YXIgdixnPW5ldyBBcnJheShwKzEpO2ZvcihpPTA7aTw9cDsrK2kpKHY9Z1tpXT1bXSkueDA9aT4wP2hbaS0xXTpjLHYueDE9aTxwP2hbaV06bDtmb3IoaT0wO2k8YTsrK2kpYzw9KG89dVtpXSkmJm88PWwmJmdbS2MoaCxvLDAscCldLnB1c2godFtpXSk7cmV0dXJuIGd9dmFyIG49YyxlPXUscj1wO3JldHVybiB0LnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpmKGUpLHQpOm59LHQuZG9tYWluPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpmKFtuWzBdLG5bMV1dKSx0KTplfSx0LnRocmVzaG9sZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOkFycmF5LmlzQXJyYXkobik/Zihlcy5jYWxsKG4pKTpmKG4pLHQpOnJ9LHR9LHQudGhyZXNob2xkRnJlZWRtYW5EaWFjb25pcz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9cnMuY2FsbCh0LGkpLnNvcnQobiksTWF0aC5jZWlsKChyLWUpLygyKih2KHQsLjc1KS12KHQsLjI1KSkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdC50aHJlc2hvbGRTY290dD1mdW5jdGlvbih0LG4sZSl7cmV0dXJuIE1hdGguY2VpbCgoZS1uKS8oMy41KmEodCkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdC50aHJlc2hvbGRTdHVyZ2VzPXAsdC5tYXg9Zyx0Lm1lYW49ZnVuY3Rpb24odCxuKXt2YXIgZSxyPXQubGVuZ3RoLG89cixhPS0xLHU9MDtpZihudWxsPT1uKWZvcig7KythPHI7KWlzTmFOKGU9aSh0W2FdKSk/LS1vOnUrPWU7ZWxzZSBmb3IoOysrYTxyOylpc05hTihlPWkobih0W2FdLGEsdCkpKT8tLW86dSs9ZTtpZihvKXJldHVybiB1L299LHQubWVkaWFuPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbz10Lmxlbmd0aCxhPS0xLHU9W107aWYobnVsbD09ZSlmb3IoOysrYTxvOylpc05hTihyPWkodFthXSkpfHx1LnB1c2gocik7ZWxzZSBmb3IoOysrYTxvOylpc05hTihyPWkoZSh0W2FdLGEsdCkpKXx8dS5wdXNoKHIpO3JldHVybiB2KHUuc29ydChuKSwuNSl9LHQubWVyZ2U9eSx0Lm1pbj1fLHQucGFpcnM9ZnVuY3Rpb24odCxuKXtudWxsPT1uJiYobj1yKTtmb3IodmFyIGU9MCxpPXQubGVuZ3RoLTEsbz10WzBdLGE9bmV3IEFycmF5KGk8MD8wOmkpO2U8aTspYVtlXT1uKG8sbz10WysrZV0pO3JldHVybiBhfSx0LnBlcm11dGU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSk7ZS0tOylyW2VdPXRbbltlXV07cmV0dXJuIHJ9LHQucXVhbnRpbGU9dix0LnJhbmdlPXMsdC5zY2FuPWZ1bmN0aW9uKHQsZSl7aWYocj10Lmxlbmd0aCl7dmFyIHIsaSxvPTAsYT0wLHU9dFthXTtmb3IobnVsbD09ZSYmKGU9bik7KytvPHI7KShlKGk9dFtvXSx1KTwwfHwwIT09ZSh1LHUpKSYmKHU9aSxhPW8pO3JldHVybiAwPT09ZSh1LHUpP2E6dm9pZCAwfX0sdC5zaHVmZmxlPWZ1bmN0aW9uKHQsbixlKXtmb3IodmFyIHIsaSxvPShudWxsPT1lP3QubGVuZ3RoOmUpLShuPW51bGw9PW4/MDorbik7bzspaT1NYXRoLnJhbmRvbSgpKm8tLXwwLHI9dFtvK25dLHRbbytuXT10W2krbl0sdFtpK25dPXI7cmV0dXJuIHR9LHQuc3VtPWZ1bmN0aW9uKHQsbil7dmFyIGUscj10Lmxlbmd0aCxpPS0xLG89MDtpZihudWxsPT1uKWZvcig7KytpPHI7KShlPSt0W2ldKSYmKG8rPWUpO2Vsc2UgZm9yKDsrK2k8cjspKGU9K24odFtpXSxpLHQpKSYmKG8rPWUpO3JldHVybiBvfSx0LnRpY2tzPWwsdC50aWNrSW5jcmVtZW50PWgsdC50aWNrU3RlcD1kLHQudHJhbnNwb3NlPWIsdC52YXJpYW5jZT1vLHQuemlwPWZ1bmN0aW9uKCl7cmV0dXJuIGIoYXJndW1lbnRzKX0sdC5heGlzVG9wPWZ1bmN0aW9uKHQpe3JldHVybiBUKGZzLHQpfSx0LmF4aXNSaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gVChjcyx0KX0sdC5heGlzQm90dG9tPWZ1bmN0aW9uKHQpe3JldHVybiBUKHNzLHQpfSx0LmF4aXNMZWZ0PWZ1bmN0aW9uKHQpe3JldHVybiBUKGxzLHQpfSx0LmJydXNoPWZ1bmN0aW9uKCl7cmV0dXJuIGVlKGJoKX0sdC5icnVzaFg9ZnVuY3Rpb24oKXtyZXR1cm4gZWUoeWgpfSx0LmJydXNoWT1mdW5jdGlvbigpe3JldHVybiBlZShfaCl9LHQuYnJ1c2hTZWxlY3Rpb249ZnVuY3Rpb24odCl7dmFyIG49dC5fX2JydXNoO3JldHVybiBuP24uZGltLm91dHB1dChuLnNlbGVjdGlvbik6bnVsbH0sdC5jaG9yZD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG8sYSx1LGYsYyxsLGg9dC5sZW5ndGgsZD1bXSxwPXMoaCksdj1bXSxnPVtdLHk9Zy5ncm91cHM9bmV3IEFycmF5KGgpLF89bmV3IEFycmF5KGgqaCk7Zm9yKG89MCxjPS0xOysrYzxoOyl7Zm9yKGE9MCxsPS0xOysrbDxoOylhKz10W2NdW2xdO2QucHVzaChhKSx2LnB1c2gocyhoKSksbys9YX1mb3IoZSYmcC5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUoZFt0XSxkW25dKX0pLHImJnYuZm9yRWFjaChmdW5jdGlvbihuLGUpe24uc29ydChmdW5jdGlvbihuLGkpe3JldHVybiByKHRbZV1bbl0sdFtlXVtpXSl9KX0pLGY9KG89Q2goMCxraC1uKmgpL28pP246a2gvaCxhPTAsYz0tMTsrK2M8aDspe2Zvcih1PWEsbD0tMTsrK2w8aDspe3ZhciBiPXBbY10sbT12W2JdW2xdLHg9dFtiXVttXSx3PWEsTT1hKz14Km87X1ttKmgrYl09e2luZGV4OmIsc3ViaW5kZXg6bSxzdGFydEFuZ2xlOncsZW5kQW5nbGU6TSx2YWx1ZTp4fX15W2JdPXtpbmRleDpiLHN0YXJ0QW5nbGU6dSxlbmRBbmdsZTphLHZhbHVlOmRbYl19LGErPWZ9Zm9yKGM9LTE7KytjPGg7KWZvcihsPWMtMTsrK2w8aDspe3ZhciBBPV9bbCpoK2NdLFQ9X1tjKmgrbF07KEEudmFsdWV8fFQudmFsdWUpJiZnLnB1c2goQS52YWx1ZTxULnZhbHVlP3tzb3VyY2U6VCx0YXJnZXQ6QX06e3NvdXJjZTpBLHRhcmdldDpUfSl9cmV0dXJuIGk/Zy5zb3J0KGkpOmd9dmFyIG49MCxlPW51bGwscj1udWxsLGk9bnVsbDtyZXR1cm4gdC5wYWRBbmdsZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1DaCgwLGUpLHQpOm59LHQuc29ydEdyb3Vwcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQuc29ydFN1Ymdyb3Vwcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLHQpOnJ9LHQuc29ydENob3Jkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj9pPW51bGw6KGk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIHQobi5zb3VyY2UudmFsdWUrbi50YXJnZXQudmFsdWUsZS5zb3VyY2UudmFsdWUrZS50YXJnZXQudmFsdWUpfX0obikpLl89bix0KTppJiZpLl99LHR9LHQucmliYm9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0LHU9UGguY2FsbChhcmd1bWVudHMpLGY9bi5hcHBseSh0aGlzLHUpLGM9ZS5hcHBseSh0aGlzLHUpLHM9K3IuYXBwbHkodGhpcywodVswXT1mLHUpKSxsPWkuYXBwbHkodGhpcyx1KS1FaCxoPW8uYXBwbHkodGhpcyx1KS1FaCxkPXMqVGgobCkscD1zKk5oKGwpLHY9K3IuYXBwbHkodGhpcywodVswXT1jLHUpKSxnPWkuYXBwbHkodGhpcyx1KS1FaCx5PW8uYXBwbHkodGhpcyx1KS1FaDtpZihhfHwoYT10PW9lKCkpLGEubW92ZVRvKGQscCksYS5hcmMoMCwwLHMsbCxoKSxsPT09ZyYmaD09PXl8fChhLnF1YWRyYXRpY0N1cnZlVG8oMCwwLHYqVGgoZyksdipOaChnKSksYS5hcmMoMCwwLHYsZyx5KSksYS5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCxkLHApLGEuY2xvc2VQYXRoKCksdClyZXR1cm4gYT1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1hZSxlPXVlLHI9ZmUsaT1jZSxvPXNlLGE9bnVsbDtyZXR1cm4gdC5yYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnJlKCtuKSx0KTpyfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnJlKCtuKSx0KTppfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpyZSgrbiksdCk6b30sdC5zb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ZSx0KTpufSx0LnRhcmdldD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1udWxsPT1uP251bGw6bix0KTphfSx0fSx0Lm5lc3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KG4saSxhLHUpe2lmKGk+PW8ubGVuZ3RoKXJldHVybiBudWxsIT1lJiZuLnNvcnQoZSksbnVsbCE9cj9yKG4pOm47Zm9yKHZhciBmLGMscyxsPS0xLGg9bi5sZW5ndGgsZD1vW2krK10scD1oZSgpLHY9YSgpOysrbDxoOykocz1wLmdldChmPWQoYz1uW2xdKStcIlwiKSk/cy5wdXNoKGMpOnAuc2V0KGYsW2NdKTtyZXR1cm4gcC5lYWNoKGZ1bmN0aW9uKG4sZSl7dSh2LGUsdChuLGksYSx1KSl9KSx2fWZ1bmN0aW9uIG4odCxlKXtpZigrK2U+by5sZW5ndGgpcmV0dXJuIHQ7dmFyIGksdT1hW2UtMV07cmV0dXJuIG51bGwhPXImJmU+PW8ubGVuZ3RoP2k9dC5lbnRyaWVzKCk6KGk9W10sdC5lYWNoKGZ1bmN0aW9uKHQscil7aS5wdXNoKHtrZXk6cix2YWx1ZXM6bih0LGUpfSl9KSksbnVsbCE9dT9pLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gdSh0LmtleSxuLmtleSl9KTppfXZhciBlLHIsaSxvPVtdLGE9W107cmV0dXJuIGk9e29iamVjdDpmdW5jdGlvbihuKXtyZXR1cm4gdChuLDAsZGUscGUpfSxtYXA6ZnVuY3Rpb24obil7cmV0dXJuIHQobiwwLHZlLGdlKX0sZW50cmllczpmdW5jdGlvbihlKXtyZXR1cm4gbih0KGUsMCx2ZSxnZSksMCl9LGtleTpmdW5jdGlvbih0KXtyZXR1cm4gby5wdXNoKHQpLGl9LHNvcnRLZXlzOmZ1bmN0aW9uKHQpe3JldHVybiBhW28ubGVuZ3RoLTFdPXQsaX0sc29ydFZhbHVlczpmdW5jdGlvbih0KXtyZXR1cm4gZT10LGl9LHJvbGx1cDpmdW5jdGlvbih0KXtyZXR1cm4gcj10LGl9fX0sdC5zZXQ9X2UsdC5tYXA9aGUsdC5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2Zvcih2YXIgZSBpbiB0KW4ucHVzaChlKTtyZXR1cm4gbn0sdC52YWx1ZXM9ZnVuY3Rpb24odCl7dmFyIG49W107Zm9yKHZhciBlIGluIHQpbi5wdXNoKHRbZV0pO3JldHVybiBufSx0LmVudHJpZXM9ZnVuY3Rpb24odCl7dmFyIG49W107Zm9yKHZhciBlIGluIHQpbi5wdXNoKHtrZXk6ZSx2YWx1ZTp0W2VdfSk7cmV0dXJuIG59LHQuY29sb3I9a3QsdC5yZ2I9UnQsdC5oc2w9cXQsdC5sYWI9RnQsdC5oY2w9JHQsdC5sY2g9ZnVuY3Rpb24odCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1Z0KHQpOm5ldyBXdChlLG4sdCxudWxsPT1yPzE6cil9LHQuZ3JheT1mdW5jdGlvbih0LG4pe3JldHVybiBuZXcgSXQodCwwLDAsbnVsbD09bj8xOm4pfSx0LmN1YmVoZWxpeD1adCx0LmNvbnRvdXJzPU1lLHQuY29udG91ckRlbnNpdHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlPW5ldyBGbG9hdDMyQXJyYXkodip5KSxyPW5ldyBGbG9hdDMyQXJyYXkodip5KTt0LmZvckVhY2goZnVuY3Rpb24odCxuLHIpe3ZhciBpPWEodCxuLHIpK3A+Pmgsbz11KHQsbixyKStwPj5oO2k+PTAmJmk8diYmbz49MCYmbzx5JiYrK2VbaStvKnZdfSksQWUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LGw+PmgpLFRlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSxsPj5oKSxBZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0sbD4+aCksVGUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LGw+PmgpLEFlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSxsPj5oKSxUZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0sbD4+aCk7dmFyIGk9XyhlKTtpZighQXJyYXkuaXNBcnJheShpKSl7dmFyIG89ZyhlKTtpPWQoMCxvLGkpLChpPXMoMCxNYXRoLmZsb29yKG8vaSkqaSxpKSkuc2hpZnQoKX1yZXR1cm4gTWUoKS50aHJlc2hvbGRzKGkpLnNpemUoW3YseV0pKGUpLm1hcChuKX1mdW5jdGlvbiBuKHQpe3JldHVybiB0LnZhbHVlKj1NYXRoLnBvdygyLC0yKmgpLHQuY29vcmRpbmF0ZXMuZm9yRWFjaChlKSx0fWZ1bmN0aW9uIGUodCl7dC5mb3JFYWNoKHIpfWZ1bmN0aW9uIHIodCl7dC5mb3JFYWNoKGkpfWZ1bmN0aW9uIGkodCl7dFswXT10WzBdKk1hdGgucG93KDIsaCktcCx0WzFdPXRbMV0qTWF0aC5wb3coMixoKS1wfWZ1bmN0aW9uIG8oKXtyZXR1cm4gcD0zKmwsdj1mKzIqcD4+aCx5PWMrMipwPj5oLHR9dmFyIGE9TmUsdT1TZSxmPTk2MCxjPTUwMCxsPTIwLGg9MixwPTMqbCx2PWYrMipwPj5oLHk9YysyKnA+PmgsXz1tZSgyMCk7cmV0dXJuIHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bWUoK24pLHQpOmF9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bWUoK24pLHQpOnV9LHQuc2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bZixjXTt2YXIgbj1NYXRoLmNlaWwodFswXSksZT1NYXRoLmNlaWwodFsxXSk7aWYoIShuPj0wfHxuPj0wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHNpemVcIik7cmV0dXJuIGY9bixjPWUsbygpfSx0LmNlbGxTaXplPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiAxPDxoO2lmKCEoKHQ9K3QpPj0xKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGNlbGwgc2l6ZVwiKTtyZXR1cm4gaD1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4yKSxvKCl9LHQudGhyZXNob2xkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246QXJyYXkuaXNBcnJheShuKT9tZShVaC5jYWxsKG4pKTptZShuKSx0KTpffSx0LmJhbmR3aWR0aD1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gTWF0aC5zcXJ0KGwqKGwrMSkpO2lmKCEoKHQ9K3QpPj0wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGJhbmR3aWR0aFwiKTtyZXR1cm4gbD1NYXRoLnJvdW5kKChNYXRoLnNxcnQoNCp0KnQrMSktMSkvMiksbygpfSx0fSx0LmRpc3BhdGNoPU4sdC5kcmFnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0Lm9uKFwibW91c2Vkb3duLmRyYWdcIixlKS5maWx0ZXIoZykub24oXCJ0b3VjaHN0YXJ0LmRyYWdcIixvKS5vbihcInRvdWNobW92ZS5kcmFnXCIsYSkub24oXCJ0b3VjaGVuZC5kcmFnIHRvdWNoY2FuY2VsLmRyYWdcIix1KS5zdHlsZShcInRvdWNoLWFjdGlvblwiLFwibm9uZVwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKX1mdW5jdGlvbiBlKCl7aWYoIWgmJmQuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbj1mKFwibW91c2VcIixwLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxwdCx0aGlzLGFyZ3VtZW50cyk7biYmKGN0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuZHJhZ1wiLHIsITApLm9uKFwibW91c2V1cC5kcmFnXCIsaSwhMCksX3QodC5ldmVudC52aWV3KSxndCgpLGw9ITEsYz10LmV2ZW50LmNsaWVudFgscz10LmV2ZW50LmNsaWVudFksbihcInN0YXJ0XCIpKX19ZnVuY3Rpb24gcigpe2lmKHl0KCksIWwpe3ZhciBuPXQuZXZlbnQuY2xpZW50WC1jLGU9dC5ldmVudC5jbGllbnRZLXM7bD1uKm4rZSplPm19eS5tb3VzZShcImRyYWdcIil9ZnVuY3Rpb24gaSgpe2N0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuZHJhZyBtb3VzZXVwLmRyYWdcIixudWxsKSxidCh0LmV2ZW50LnZpZXcsbCkseXQoKSx5Lm1vdXNlKFwiZW5kXCIpfWZ1bmN0aW9uIG8oKXtpZihkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIG4sZSxyPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsaT1wLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvPXIubGVuZ3RoO2ZvcihuPTA7bjxvOysrbikoZT1mKHJbbl0uaWRlbnRpZmllcixpLHZ0LHRoaXMsYXJndW1lbnRzKSkmJihndCgpLGUoXCJzdGFydFwiKSl9fWZ1bmN0aW9uIGEoKXt2YXIgbixlLHI9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxpPXIubGVuZ3RoO2ZvcihuPTA7bjxpOysrbikoZT15W3Jbbl0uaWRlbnRpZmllcl0pJiYoeXQoKSxlKFwiZHJhZ1wiKSl9ZnVuY3Rpb24gdSgpe3ZhciBuLGUscj10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGk9ci5sZW5ndGg7Zm9yKGgmJmNsZWFyVGltZW91dChoKSxoPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtoPW51bGx9LDUwMCksbj0wO248aTsrK24pKGU9eVtyW25dLmlkZW50aWZpZXJdKSYmKGd0KCksZShcImVuZFwiKSl9ZnVuY3Rpb24gZihlLHIsaSxvLGEpe3ZhciB1LGYsYyxzPWkocixlKSxsPV8uY29weSgpO2lmKG90KG5ldyB4dChuLFwiYmVmb3Jlc3RhcnRcIix1LGUsYixzWzBdLHNbMV0sMCwwLGwpLGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPSh0LmV2ZW50LnN1YmplY3Q9dT12LmFwcGx5KG8sYSkpJiYoZj11Lngtc1swXXx8MCxjPXUueS1zWzFdfHwwLCEwKX0pKXJldHVybiBmdW5jdGlvbiB0KGgpe3ZhciBkLHA9cztzd2l0Y2goaCl7Y2FzZVwic3RhcnRcIjp5W2VdPXQsZD1iKys7YnJlYWs7Y2FzZVwiZW5kXCI6ZGVsZXRlIHlbZV0sLS1iO2Nhc2VcImRyYWdcIjpzPWkocixlKSxkPWJ9b3QobmV3IHh0KG4saCx1LGUsZCxzWzBdK2Ysc1sxXStjLHNbMF0tcFswXSxzWzFdLXBbMV0sbCksbC5hcHBseSxsLFtoLG8sYV0pfX12YXIgYyxzLGwsaCxkPXd0LHA9TXQsdj1BdCxnPVR0LHk9e30sXz1OKFwic3RhcnRcIixcImRyYWdcIixcImVuZFwiKSxiPTAsbT0wO3JldHVybiBuLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQoISF0KSxuKTpkfSxuLmNvbnRhaW5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQodCksbik6cH0sbi5zdWJqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDptdCh0KSxuKTp2fSxuLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQoISF0KSxuKTpnfSxuLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Xy5vbi5hcHBseShfLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1fP246dH0sbi5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhtPSh0PSt0KSp0LG4pOk1hdGguc3FydChtKX0sbn0sdC5kcmFnRGlzYWJsZT1fdCx0LmRyYWdFbmFibGU9YnQsdC5kc3ZGb3JtYXQ9a2UsdC5jc3ZQYXJzZT1IaCx0LmNzdlBhcnNlUm93cz1YaCx0LmNzdkZvcm1hdD1HaCx0LmNzdkZvcm1hdFJvd3M9VmgsdC50c3ZQYXJzZT1XaCx0LnRzdlBhcnNlUm93cz1aaCx0LnRzdkZvcm1hdD1RaCx0LnRzdkZvcm1hdFJvd3M9SmgsdC5lYXNlTGluZWFyPWZ1bmN0aW9uKHQpe3JldHVybit0fSx0LmVhc2VRdWFkPUZuLHQuZWFzZVF1YWRJbj1mdW5jdGlvbih0KXtyZXR1cm4gdCp0fSx0LmVhc2VRdWFkT3V0PWZ1bmN0aW9uKHQpe3JldHVybiB0KigyLXQpfSx0LmVhc2VRdWFkSW5PdXQ9Rm4sdC5lYXNlQ3ViaWM9SW4sdC5lYXNlQ3ViaWNJbj1mdW5jdGlvbih0KXtyZXR1cm4gdCp0KnR9LHQuZWFzZUN1YmljT3V0PWZ1bmN0aW9uKHQpe3JldHVybi0tdCp0KnQrMX0sdC5lYXNlQ3ViaWNJbk91dD1Jbix0LmVhc2VQb2x5PVhsLHQuZWFzZVBvbHlJbj1qbCx0LmVhc2VQb2x5T3V0PUhsLHQuZWFzZVBvbHlJbk91dD1YbCx0LmVhc2VTaW49am4sdC5lYXNlU2luSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5jb3ModCpWbCl9LHQuZWFzZVNpbk91dD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zaW4odCpWbCl9LHQuZWFzZVNpbkluT3V0PWpuLHQuZWFzZUV4cD1Ibix0LmVhc2VFeHBJbj1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3coMiwxMCp0LTEwKX0sdC5lYXNlRXhwT3V0PWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGgucG93KDIsLTEwKnQpfSx0LmVhc2VFeHBJbk91dD1Ibix0LmVhc2VDaXJjbGU9WG4sdC5lYXNlQ2lyY2xlSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtdCp0KX0sdC5lYXNlQ2lyY2xlT3V0PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoMS0gLS10KnQpfSx0LmVhc2VDaXJjbGVJbk91dD1Ybix0LmVhc2VCb3VuY2U9R24sdC5lYXNlQm91bmNlSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtR24oMS10KX0sdC5lYXNlQm91bmNlT3V0PUduLHQuZWFzZUJvdW5jZUluT3V0PWZ1bmN0aW9uKHQpe3JldHVybigodCo9Mik8PTE/MS1HbigxLXQpOkduKHQtMSkrMSkvMn0sdC5lYXNlQmFjaz1haCx0LmVhc2VCYWNrSW49aWgsdC5lYXNlQmFja091dD1vaCx0LmVhc2VCYWNrSW5PdXQ9YWgsdC5lYXNlRWxhc3RpYz1jaCx0LmVhc2VFbGFzdGljSW49ZmgsdC5lYXNlRWxhc3RpY091dD1jaCx0LmVhc2VFbGFzdGljSW5PdXQ9c2gsdC5ibG9iPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGZldGNoKHQsbikudGhlbihDZSl9LHQuYnVmZmVyPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGZldGNoKHQsbikudGhlbihQZSl9LHQuZHN2PWZ1bmN0aW9uKHQsbixlLHIpezM9PT1hcmd1bWVudHMubGVuZ3RoJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYocj1lLGU9dm9pZCAwKTt2YXIgaT1rZSh0KTtyZXR1cm4gUmUobixlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBpLnBhcnNlKHQscil9KX0sdC5jc3Y9S2gsdC50c3Y9dGQsdC5pbWFnZT1mdW5jdGlvbih0LG4pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLHIpe3ZhciBpPW5ldyBJbWFnZTtmb3IodmFyIG8gaW4gbilpW29dPW5bb107aS5vbmVycm9yPXIsaS5vbmxvYWQ9ZnVuY3Rpb24oKXtlKGkpfSxpLnNyYz10fSl9LHQuanNvbj1mdW5jdGlvbih0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oRGUpfSx0LnRleHQ9UmUsdC54bWw9bmQsdC5odG1sPWVkLHQuc3ZnPXJkLHQuZm9yY2VDZW50ZXI9ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiBlKCl7dmFyIGUsaSxvPXIubGVuZ3RoLGE9MCx1PTA7Zm9yKGU9MDtlPG87KytlKWErPShpPXJbZV0pLngsdSs9aS55O2ZvcihhPWEvby10LHU9dS9vLW4sZT0wO2U8bzsrK2UpKGk9cltlXSkueC09YSxpLnktPXV9dmFyIHI7cmV0dXJuIG51bGw9PXQmJih0PTApLG51bGw9PW4mJihuPTApLGUuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXR9LGUueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rbixlKTp0fSxlLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsZSk6bn0sZX0sdC5mb3JjZUNvbGxpZGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe2Zvcih2YXIgdCxuLHIsZixjLHMsbCxoPWkubGVuZ3RoLGQ9MDtkPHU7KytkKWZvcihuPWplKGksR2UsVmUpLnZpc2l0QWZ0ZXIoZSksdD0wO3Q8aDsrK3Qpcj1pW3RdLHM9b1tyLmluZGV4XSxsPXMqcyxmPXIueCtyLnZ4LGM9ci55K3Iudnksbi52aXNpdChmdW5jdGlvbih0LG4sZSxpLG8pe3ZhciB1PXQuZGF0YSxoPXQucixkPXMraDtpZighdSlyZXR1cm4gbj5mK2R8fGk8Zi1kfHxlPmMrZHx8bzxjLWQ7aWYodS5pbmRleD5yLmluZGV4KXt2YXIgcD1mLXUueC11LnZ4LHY9Yy11LnktdS52eSxnPXAqcCt2KnY7ZzxkKmQmJigwPT09cCYmKHA9T2UoKSxnKz1wKnApLDA9PT12JiYodj1PZSgpLGcrPXYqdiksZz0oZC0oZz1NYXRoLnNxcnQoZykpKS9nKmEsci52eCs9KHAqPWcpKihkPShoKj1oKS8obCtoKSksci52eSs9KHYqPWcpKmQsdS52eC09cCooZD0xLWQpLHUudnktPXYqZCl9fSl9ZnVuY3Rpb24gZSh0KXtpZih0LmRhdGEpcmV0dXJuIHQucj1vW3QuZGF0YS5pbmRleF07Zm9yKHZhciBuPXQucj0wO248NDsrK24pdFtuXSYmdFtuXS5yPnQuciYmKHQucj10W25dLnIpfWZ1bmN0aW9uIHIoKXtpZihpKXt2YXIgbixlLHI9aS5sZW5ndGg7Zm9yKG89bmV3IEFycmF5KHIpLG49MDtuPHI7KytuKWU9aVtuXSxvW2UuaW5kZXhdPSt0KGUsbixpKX19dmFyIGksbyxhPTEsdT0xO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKG51bGw9PXQ/MTordCkpLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtpPXQscigpfSxuLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3Qsbik6dX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxuKTphfSxuLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6cWUoK2UpLHIoKSxuKTp0fSxufSx0LmZvcmNlTGluaz1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKG4pe2Zvcih2YXIgZT0wLHI9dC5sZW5ndGg7ZTxkOysrZSlmb3IodmFyIGksdSxmLHMsbCxoLHAsdj0wO3Y8cjsrK3YpdT0oaT10W3ZdKS5zb3VyY2Uscz0oZj1pLnRhcmdldCkueCtmLnZ4LXUueC11LnZ4fHxPZSgpLGw9Zi55K2YudnktdS55LXUudnl8fE9lKCkscyo9aD0oKGg9TWF0aC5zcXJ0KHMqcytsKmwpKS1hW3ZdKS9oKm4qb1t2XSxsKj1oLGYudngtPXMqKHA9Y1t2XSksZi52eS09bCpwLHUudngrPXMqKHA9MS1wKSx1LnZ5Kz1sKnB9ZnVuY3Rpb24gZSgpe2lmKHUpe3ZhciBuLGUsbD11Lmxlbmd0aCxoPXQubGVuZ3RoLGQ9aGUodSxzKTtmb3Iobj0wLGY9bmV3IEFycmF5KGwpO248aDsrK24pKGU9dFtuXSkuaW5kZXg9bixcIm9iamVjdFwiIT10eXBlb2YgZS5zb3VyY2UmJihlLnNvdXJjZT1XZShkLGUuc291cmNlKSksXCJvYmplY3RcIiE9dHlwZW9mIGUudGFyZ2V0JiYoZS50YXJnZXQ9V2UoZCxlLnRhcmdldCkpLGZbZS5zb3VyY2UuaW5kZXhdPShmW2Uuc291cmNlLmluZGV4XXx8MCkrMSxmW2UudGFyZ2V0LmluZGV4XT0oZltlLnRhcmdldC5pbmRleF18fDApKzE7Zm9yKG49MCxjPW5ldyBBcnJheShoKTtuPGg7KytuKWU9dFtuXSxjW25dPWZbZS5zb3VyY2UuaW5kZXhdLyhmW2Uuc291cmNlLmluZGV4XStmW2UudGFyZ2V0LmluZGV4XSk7bz1uZXcgQXJyYXkoaCkscigpLGE9bmV3IEFycmF5KGgpLGkoKX19ZnVuY3Rpb24gcigpe2lmKHUpZm9yKHZhciBuPTAsZT10Lmxlbmd0aDtuPGU7KytuKW9bbl09K2wodFtuXSxuLHQpfWZ1bmN0aW9uIGkoKXtpZih1KWZvcih2YXIgbj0wLGU9dC5sZW5ndGg7bjxlOysrbilhW25dPStoKHRbbl0sbix0KX12YXIgbyxhLHUsZixjLHM9JGUsbD1mdW5jdGlvbih0KXtyZXR1cm4gMS9NYXRoLm1pbihmW3Quc291cmNlLmluZGV4XSxmW3QudGFyZ2V0LmluZGV4XSl9LGg9cWUoMzApLGQ9MTtyZXR1cm4gbnVsbD09dCYmKHQ9W10pLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXt1PXQsZSgpfSxuLmxpbmtzPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXIsZSgpLG4pOnR9LG4uaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9dCxuKTpzfSxuLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K3Qsbik6ZH0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLHIoKSxuKTpsfSxuLmRpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCksaSgpLG4pOmh9LG59LHQuZm9yY2VNYW55Qm9keT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG4sdT1pLmxlbmd0aCxmPWplKGksWmUsUWUpLnZpc2l0QWZ0ZXIoZSk7Zm9yKGE9dCxuPTA7bjx1OysrbilvPWlbbl0sZi52aXNpdChyKX1mdW5jdGlvbiBuKCl7aWYoaSl7dmFyIHQsbixlPWkubGVuZ3RoO2Zvcih1PW5ldyBBcnJheShlKSx0PTA7dDxlOysrdCluPWlbdF0sdVtuLmluZGV4XT0rZihuLHQsaSl9fWZ1bmN0aW9uIGUodCl7dmFyIG4sZSxyLGksbyxhPTAsZj0wO2lmKHQubGVuZ3RoKXtmb3Iocj1pPW89MDtvPDQ7KytvKShuPXRbb10pJiYoZT1NYXRoLmFicyhuLnZhbHVlKSkmJihhKz1uLnZhbHVlLGYrPWUscis9ZSpuLngsaSs9ZSpuLnkpO3QueD1yL2YsdC55PWkvZn1lbHNleyhuPXQpLng9bi5kYXRhLngsbi55PW4uZGF0YS55O2Rve2ErPXVbbi5kYXRhLmluZGV4XX13aGlsZShuPW4ubmV4dCl9dC52YWx1ZT1hfWZ1bmN0aW9uIHIodCxuLGUscil7aWYoIXQudmFsdWUpcmV0dXJuITA7dmFyIGk9dC54LW8ueCxmPXQueS1vLnksaD1yLW4sZD1pKmkrZipmO2lmKGgqaC9sPGQpcmV0dXJuIGQ8cyYmKDA9PT1pJiYoaT1PZSgpLGQrPWkqaSksMD09PWYmJihmPU9lKCksZCs9ZipmKSxkPGMmJihkPU1hdGguc3FydChjKmQpKSxvLnZ4Kz1pKnQudmFsdWUqYS9kLG8udnkrPWYqdC52YWx1ZSphL2QpLCEwO2lmKCEodC5sZW5ndGh8fGQ+PXMpKXsodC5kYXRhIT09b3x8dC5uZXh0KSYmKDA9PT1pJiYoaT1PZSgpLGQrPWkqaSksMD09PWYmJihmPU9lKCksZCs9ZipmKSxkPGMmJihkPU1hdGguc3FydChjKmQpKSk7ZG97dC5kYXRhIT09byYmKGg9dVt0LmRhdGEuaW5kZXhdKmEvZCxvLnZ4Kz1pKmgsby52eSs9ZipoKX13aGlsZSh0PXQubmV4dCl9fXZhciBpLG8sYSx1LGY9cWUoLTMwKSxjPTEscz0xLzAsbD0uODE7cmV0dXJuIHQuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtpPXQsbigpfSx0LnN0cmVuZ3RoPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpxZSgrZSksbigpLHQpOmZ9LHQuZGlzdGFuY2VNaW49ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9bipuLHQpOk1hdGguc3FydChjKX0sdC5kaXN0YW5jZU1heD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1uKm4sdCk6TWF0aC5zcXJ0KHMpfSx0LnRoZXRhPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPW4qbix0KTpNYXRoLnNxcnQobCl9LHR9LHQuZm9yY2VSYWRpYWw9ZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIodCl7Zm9yKHZhciByPTAsaT1vLmxlbmd0aDtyPGk7KytyKXt2YXIgZj1vW3JdLGM9Zi54LW58fDFlLTYscz1mLnktZXx8MWUtNixsPU1hdGguc3FydChjKmMrcypzKSxoPSh1W3JdLWwpKmFbcl0qdC9sO2YudngrPWMqaCxmLnZ5Kz1zKmh9fWZ1bmN0aW9uIGkoKXtpZihvKXt2YXIgbixlPW8ubGVuZ3RoO2ZvcihhPW5ldyBBcnJheShlKSx1PW5ldyBBcnJheShlKSxuPTA7bjxlOysrbil1W25dPSt0KG9bbl0sbixvKSxhW25dPWlzTmFOKHVbbl0pPzA6K2Yob1tuXSxuLG8pfX12YXIgbyxhLHUsZj1xZSguMSk7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9cWUoK3QpKSxudWxsPT1uJiYobj0wKSxudWxsPT1lJiYoZT0wKSxyLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7bz10LGkoKX0sci5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGkoKSxyKTpmfSxyLnJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246cWUoK24pLGkoKSxyKTp0fSxyLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3Qscik6bn0sci55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0LHIpOmV9LHJ9LHQuZm9yY2VTaW11bGF0aW9uPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXtlKCksZC5jYWxsKFwidGlja1wiLG8pLGE8dSYmKGguc3RvcCgpLGQuY2FsbChcImVuZFwiLG8pKX1mdW5jdGlvbiBlKCl7dmFyIG4sZSxyPXQubGVuZ3RoO2ZvcihhKz0oYy1hKSpmLGwuZWFjaChmdW5jdGlvbih0KXt0KGEpfSksbj0wO248cjsrK24pbnVsbD09KGU9dFtuXSkuZng/ZS54Kz1lLnZ4Kj1zOihlLng9ZS5meCxlLnZ4PTApLG51bGw9PWUuZnk/ZS55Kz1lLnZ5Kj1zOihlLnk9ZS5meSxlLnZ5PTApfWZ1bmN0aW9uIHIoKXtmb3IodmFyIG4sZT0wLHI9dC5sZW5ndGg7ZTxyOysrZSl7aWYobj10W2VdLG4uaW5kZXg9ZSxpc05hTihuLngpfHxpc05hTihuLnkpKXt2YXIgaT1vZCpNYXRoLnNxcnQoZSksbz1lKmFkO24ueD1pKk1hdGguY29zKG8pLG4ueT1pKk1hdGguc2luKG8pfShpc05hTihuLnZ4KXx8aXNOYU4obi52eSkpJiYobi52eD1uLnZ5PTApfX1mdW5jdGlvbiBpKG4pe3JldHVybiBuLmluaXRpYWxpemUmJm4uaW5pdGlhbGl6ZSh0KSxufXZhciBvLGE9MSx1PS4wMDEsZj0xLU1hdGgucG93KHUsMS8zMDApLGM9MCxzPS42LGw9aGUoKSxoPVRuKG4pLGQ9TihcInRpY2tcIixcImVuZFwiKTtyZXR1cm4gbnVsbD09dCYmKHQ9W10pLHIoKSxvPXt0aWNrOmUscmVzdGFydDpmdW5jdGlvbigpe3JldHVybiBoLnJlc3RhcnQobiksb30sc3RvcDpmdW5jdGlvbigpe3JldHVybiBoLnN0b3AoKSxvfSxub2RlczpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uLHIoKSxsLmVhY2goaSksbyk6dH0sYWxwaGE6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3Qsbyk6YX0sYWxwaGFNaW46ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3Qsbyk6dX0sYWxwaGFEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0rdCxvKTorZn0sYWxwaGFUYXJnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9K3Qsbyk6Y30sdmVsb2NpdHlEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0xLXQsbyk6MS1zfSxmb3JjZTpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KG51bGw9PW4/bC5yZW1vdmUodCk6bC5zZXQodCxpKG4pKSxvKTpsLmdldCh0KX0sZmluZDpmdW5jdGlvbihuLGUscil7dmFyIGksbyxhLHUsZixjPTAscz10Lmxlbmd0aDtmb3IobnVsbD09cj9yPTEvMDpyKj1yLGM9MDtjPHM7KytjKShhPShpPW4tKHU9dFtjXSkueCkqaSsobz1lLXUueSkqbyk8ciYmKGY9dSxyPWEpO3JldHVybiBmfSxvbjpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGQub24odCxuKSxvKTpkLm9uKHQpfX19LHQuZm9yY2VYPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBuLGU9MCxhPXIubGVuZ3RoO2U8YTsrK2UpKG49cltlXSkudngrPShvW2VdLW4ueCkqaVtlXSp0fWZ1bmN0aW9uIGUoKXtpZihyKXt2YXIgbixlPXIubGVuZ3RoO2ZvcihpPW5ldyBBcnJheShlKSxvPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilpW25dPWlzTmFOKG9bbl09K3QocltuXSxuLHIpKT8wOithKHJbbl0sbixyKX19dmFyIHIsaSxvLGE9cWUoLjEpO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKG51bGw9PXQ/MDordCkpLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXQsZSgpfSxuLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCksZSgpLG4pOmF9LG4ueD1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByP3I6cWUoK3IpLGUoKSxuKTp0fSxufSx0LmZvcmNlWT1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgbixlPTAsYT1yLmxlbmd0aDtlPGE7KytlKShuPXJbZV0pLnZ5Kz0ob1tlXS1uLnkpKmlbZV0qdH1mdW5jdGlvbiBlKCl7aWYocil7dmFyIG4sZT1yLmxlbmd0aDtmb3IoaT1uZXcgQXJyYXkoZSksbz1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24paVtuXT1pc05hTihvW25dPSt0KHJbbl0sbixyKSk/MDorYShyW25dLG4scil9fXZhciByLGksbyxhPXFlKC4xKTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZShudWxsPT10PzA6K3QpKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10LGUoKX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGUoKSxuKTphfSxuLnk9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOnFlKCtyKSxlKCksbik6dH0sbn0sdC5mb3JtYXREZWZhdWx0TG9jYWxlPW9yLHQuZm9ybWF0TG9jYWxlPWlyLHQuZm9ybWF0U3BlY2lmaWVyPXRyLHQucHJlY2lzaW9uRml4ZWQ9YXIsdC5wcmVjaXNpb25QcmVmaXg9dXIsdC5wcmVjaXNpb25Sb3VuZD1mcix0Lmdlb0FyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIGRwLnJlc2V0KCksYnIodCxwcCksMipkcH0sdC5nZW9Cb3VuZHM9ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbyxhLHU7aWYobWQ9YmQ9LSh5ZD1fZD0xLzApLFRkPVtdLGJyKHQsZ3ApLGU9VGQubGVuZ3RoKXtmb3IoVGQuc29ydChZciksbj0xLG89W3I9VGRbMF1dO248ZTsrK24pQnIociwoaT1UZFtuXSlbMF0pfHxCcihyLGlbMV0pPyhPcihyWzBdLGlbMV0pPk9yKHJbMF0sclsxXSkmJihyWzFdPWlbMV0pLE9yKGlbMF0sclsxXSk+T3IoclswXSxyWzFdKSYmKHJbMF09aVswXSkpOm8ucHVzaChyPWkpO2ZvcihhPS0xLzAsbj0wLHI9b1tlPW8ubGVuZ3RoLTFdO248PWU7cj1pLCsrbilpPW9bbl0sKHU9T3IoclsxXSxpWzBdKSk+YSYmKGE9dSx5ZD1pWzBdLGJkPXJbMV0pfXJldHVybiBUZD1OZD1udWxsLHlkPT09MS8wfHxfZD09PTEvMD9bW05hTixOYU5dLFtOYU4sTmFOXV06W1t5ZCxfZF0sW2JkLG1kXV19LHQuZ2VvQ2VudHJvaWQ9ZnVuY3Rpb24odCl7U2Q9RWQ9a2Q9Q2Q9UGQ9emQ9UmQ9TGQ9RGQ9VWQ9cWQ9MCxicih0LHlwKTt2YXIgbj1EZCxlPVVkLHI9cWQsaT1uKm4rZSplK3IqcjtyZXR1cm4gaTxYZCYmKG49emQsZT1SZCxyPUxkLEVkPEhkJiYobj1rZCxlPUNkLHI9UGQpLChpPW4qbitlKmUrcipyKTxYZCk/W05hTixOYU5dOlt0cChlLG4pKlpkLGRyKHIvZnAoaSkpKlpkXX0sdC5nZW9DaXJjbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdT1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpRZCxmPW8uYXBwbHkodGhpcyxhcmd1bWVudHMpKlFkO3JldHVybiBuPVtdLGU9dGkoLXRbMF0qUWQsLXRbMV0qUWQsMCkuaW52ZXJ0LG9pKGEsdSxmLDEpLHQ9e3R5cGU6XCJQb2x5Z29uXCIsY29vcmRpbmF0ZXM6W25dfSxuPWU9bnVsbCx0fXZhciBuLGUscj1RcihbMCwwXSksaT1Rcig5MCksbz1Rcig2KSxhPXtwb2ludDpmdW5jdGlvbih0LHIpe24ucHVzaCh0PWUodCxyKSksdFswXSo9WmQsdFsxXSo9WmR9fTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOlFyKFsrblswXSwrblsxXV0pLHQpOnJ9LHQucmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpRcigrbiksdCk6aX0sdC5wcmVjaXNpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOlFyKCtuKSx0KTpvfSx0fSx0Lmdlb0NsaXBBbnRpbWVyaWRpYW49Q3AsdC5nZW9DbGlwQ2lyY2xlPWdpLHQuZ2VvQ2xpcEV4dGVudD1mdW5jdGlvbigpe3ZhciB0LG4sZSxyPTAsaT0wLG89OTYwLGE9NTAwO3JldHVybiBlPXtzdHJlYW06ZnVuY3Rpb24oZSl7cmV0dXJuIHQmJm49PT1lP3Q6dD15aShyLGksbyxhKShuPWUpfSxleHRlbnQ6ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K3VbMF1bMF0saT0rdVswXVsxXSxvPSt1WzFdWzBdLGE9K3VbMV1bMV0sdD1uPW51bGwsZSk6W1tyLGldLFtvLGFdXX19fSx0Lmdlb0NsaXBSZWN0YW5nbGU9eWksdC5nZW9Db250YWlucz1mdW5jdGlvbih0LG4pe3JldHVybih0JiZxcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP3FwW3QudHlwZV06TWkpKHQsbil9LHQuZ2VvRGlzdGFuY2U9d2ksdC5nZW9HcmF0aWN1bGU9UGksdC5nZW9HcmF0aWN1bGUxMD1mdW5jdGlvbigpe3JldHVybiBQaSgpKCl9LHQuZ2VvSW50ZXJwb2xhdGU9ZnVuY3Rpb24odCxuKXt2YXIgZT10WzBdKlFkLHI9dFsxXSpRZCxpPW5bMF0qUWQsbz1uWzFdKlFkLGE9bnAociksdT1hcChyKSxmPW5wKG8pLGM9YXAobykscz1hKm5wKGUpLGw9YSphcChlKSxoPWYqbnAoaSksZD1mKmFwKGkpLHA9MipkcihmcChwcihvLXIpK2EqZipwcihpLWUpKSksdj1hcChwKSxnPXA/ZnVuY3Rpb24odCl7dmFyIG49YXAodCo9cCkvdixlPWFwKHAtdCkvdixyPWUqcytuKmgsaT1lKmwrbipkLG89ZSp1K24qYztyZXR1cm5bdHAoaSxyKSpaZCx0cChvLGZwKHIqcitpKmkpKSpaZF19OmZ1bmN0aW9uKCl7cmV0dXJuW2UqWmQscipaZF19O3JldHVybiBnLmRpc3RhbmNlPXAsZ30sdC5nZW9MZW5ndGg9eGksdC5nZW9QYXRoPWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCYmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG8mJmkucG9pbnRSYWRpdXMoK28uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxicih0LHIoaSkpKSxpLnJlc3VsdCgpfXZhciByLGksbz00LjU7cmV0dXJuIGUuYXJlYT1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKEZwKSksRnAucmVzdWx0KCl9LGUubWVhc3VyZT1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKGN2KSksY3YucmVzdWx0KCl9LGUuYm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiBicih0LHIoR3ApKSxHcC5yZXN1bHQoKX0sZS5jZW50cm9pZD1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKGV2KSksZXYucmVzdWx0KCl9LGUucHJvamVjdGlvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uPyh0PW51bGwsemkpOih0PW4pLnN0cmVhbSxlKTp0fSxlLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD8obj1udWxsLG5ldyBXaSk6bmV3IEdpKG49dCksXCJmdW5jdGlvblwiIT10eXBlb2YgbyYmaS5wb2ludFJhZGl1cyhvKSxlKTpufSxlLnBvaW50UmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDooaS5wb2ludFJhZGl1cygrdCksK3QpLGUpOm99LGUucHJvamVjdGlvbih0KS5jb250ZXh0KG4pfSx0Lmdlb0FsYmVycz1sbyx0Lmdlb0FsYmVyc1VzYT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG49dFswXSxlPXRbMV07cmV0dXJuIHU9bnVsbCxpLnBvaW50KG4sZSksdXx8KG8ucG9pbnQobixlKSx1KXx8KGEucG9pbnQobixlKSx1KX1mdW5jdGlvbiBuKCl7cmV0dXJuIGU9cj1udWxsLHR9dmFyIGUscixpLG8sYSx1LGY9bG8oKSxjPXNvKCkucm90YXRlKFsxNTQsMF0pLmNlbnRlcihbLTIsNTguNV0pLnBhcmFsbGVscyhbNTUsNjVdKSxzPXNvKCkucm90YXRlKFsxNTcsMF0pLmNlbnRlcihbLTMsMTkuOV0pLnBhcmFsbGVscyhbOCwxOF0pLGw9e3BvaW50OmZ1bmN0aW9uKHQsbil7dT1bdCxuXX19O3JldHVybiB0LmludmVydD1mdW5jdGlvbih0KXt2YXIgbj1mLnNjYWxlKCksZT1mLnRyYW5zbGF0ZSgpLHI9KHRbMF0tZVswXSkvbixpPSh0WzFdLWVbMV0pL247cmV0dXJuKGk+PS4xMiYmaTwuMjM0JiZyPj0tLjQyNSYmcjwtLjIxND9jOmk+PS4xNjYmJmk8LjIzNCYmcj49LS4yMTQmJnI8LS4xMTU/czpmKS5pbnZlcnQodCl9LHQuc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybiBlJiZyPT09dD9lOmU9ZnVuY3Rpb24odCl7dmFyIG49dC5sZW5ndGg7cmV0dXJue3BvaW50OmZ1bmN0aW9uKGUscil7Zm9yKHZhciBpPS0xOysraTxuOyl0W2ldLnBvaW50KGUscil9LHNwaGVyZTpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLnBvbHlnb25FbmQoKX19fShbZi5zdHJlYW0ocj10KSxjLnN0cmVhbSh0KSxzLnN0cmVhbSh0KV0pfSx0LnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZi5wcmVjaXNpb24odCksYy5wcmVjaXNpb24odCkscy5wcmVjaXNpb24odCksbigpKTpmLnByZWNpc2lvbigpfSx0LnNjYWxlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmLnNjYWxlKG4pLGMuc2NhbGUoLjM1Km4pLHMuc2NhbGUobiksdC50cmFuc2xhdGUoZi50cmFuc2xhdGUoKSkpOmYuc2NhbGUoKX0sdC50cmFuc2xhdGU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGYudHJhbnNsYXRlKCk7dmFyIGU9Zi5zY2FsZSgpLHI9K3RbMF0sdT0rdFsxXTtyZXR1cm4gaT1mLnRyYW5zbGF0ZSh0KS5jbGlwRXh0ZW50KFtbci0uNDU1KmUsdS0uMjM4KmVdLFtyKy40NTUqZSx1Ky4yMzgqZV1dKS5zdHJlYW0obCksbz1jLnRyYW5zbGF0ZShbci0uMzA3KmUsdSsuMjAxKmVdKS5jbGlwRXh0ZW50KFtbci0uNDI1KmUrSGQsdSsuMTIqZStIZF0sW3ItLjIxNCplLUhkLHUrLjIzNCplLUhkXV0pLnN0cmVhbShsKSxhPXMudHJhbnNsYXRlKFtyLS4yMDUqZSx1Ky4yMTIqZV0pLmNsaXBFeHRlbnQoW1tyLS4yMTQqZStIZCx1Ky4xNjYqZStIZF0sW3ItLjExNSplLUhkLHUrLjIzNCplLUhkXV0pLnN0cmVhbShsKSxuKCl9LHQuZml0RXh0ZW50PWZ1bmN0aW9uKG4sZSl7cmV0dXJuIHRvKHQsbixlKX0sdC5maXRTaXplPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIG5vKHQsbixlKX0sdC5maXRXaWR0aD1mdW5jdGlvbihuLGUpe3JldHVybiBlbyh0LG4sZSl9LHQuZml0SGVpZ2h0PWZ1bmN0aW9uKG4sZSl7cmV0dXJuIHJvKHQsbixlKX0sdC5zY2FsZSgxMDcwKX0sdC5nZW9BemltdXRoYWxFcXVhbEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oZHYpLnNjYWxlKDEyNC43NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0F6aW11dGhhbEVxdWFsQXJlYVJhdz1kdix0Lmdlb0F6aW11dGhhbEVxdWlkaXN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIGFvKHB2KS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LHQuZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXc9cHYsdC5nZW9Db25pY0NvbmZvcm1hbD1mdW5jdGlvbigpe3JldHVybiBmbyhfbykuc2NhbGUoMTA5LjUpLnBhcmFsbGVscyhbMzAsMzBdKX0sdC5nZW9Db25pY0NvbmZvcm1hbFJhdz1fbyx0Lmdlb0NvbmljRXF1YWxBcmVhPXNvLHQuZ2VvQ29uaWNFcXVhbEFyZWFSYXc9Y28sdC5nZW9Db25pY0VxdWlkaXN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIGZvKG1vKS5zY2FsZSgxMzEuMTU0KS5jZW50ZXIoWzAsMTMuOTM4OV0pfSx0Lmdlb0NvbmljRXF1aWRpc3RhbnRSYXc9bW8sdC5nZW9FcXVpcmVjdGFuZ3VsYXI9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oYm8pLnNjYWxlKDE1Mi42Myl9LHQuZ2VvRXF1aXJlY3Rhbmd1bGFyUmF3PWJvLHQuZ2VvR25vbW9uaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oeG8pLnNjYWxlKDE0NC4wNDkpLmNsaXBBbmdsZSg2MCl9LHQuZ2VvR25vbW9uaWNSYXc9eG8sdC5nZW9JZGVudGl0eT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtyZXR1cm4gaT1vPW51bGwsYX12YXIgbixlLHIsaSxvLGEsdT0xLGY9MCxjPTAscz0xLGw9MSxoPXppLGQ9bnVsbCxwPXppO3JldHVybiBhPXtzdHJlYW06ZnVuY3Rpb24odCl7cmV0dXJuIGkmJm89PT10P2k6aT1oKHAobz10KSl9LHBvc3RjbGlwOmZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPWksZD1uPWU9cj1udWxsLHQoKSk6cH0sY2xpcEV4dGVudDpmdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1udWxsPT1pPyhkPW49ZT1yPW51bGwsemkpOnlpKGQ9K2lbMF1bMF0sbj0raVswXVsxXSxlPStpWzFdWzBdLHI9K2lbMV1bMV0pLHQoKSk6bnVsbD09ZD9udWxsOltbZCxuXSxbZSxyXV19LHNjYWxlOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKCh1PStuKSpzLHUqbCxmLGMpLHQoKSk6dX0sdHJhbnNsYXRlOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKHUqcyx1KmwsZj0rblswXSxjPStuWzFdKSx0KCkpOltmLGNdfSxyZWZsZWN0WDpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13byh1KihzPW4/LTE6MSksdSpsLGYsYyksdCgpKTpzPDB9LHJlZmxlY3RZOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKHUqcyx1KihsPW4/LTE6MSksZixjKSx0KCkpOmw8MH0sZml0RXh0ZW50OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRvKGEsdCxuKX0sZml0U2l6ZTpmdW5jdGlvbih0LG4pe3JldHVybiBubyhhLHQsbil9LGZpdFdpZHRoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGVvKGEsdCxuKX0sZml0SGVpZ2h0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHJvKGEsdCxuKX19fSx0Lmdlb1Byb2plY3Rpb249YW8sdC5nZW9Qcm9qZWN0aW9uTXV0YXRvcj11byx0Lmdlb01lcmNhdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGdvKHZvKS5zY2FsZSg5NjEvV2QpfSx0Lmdlb01lcmNhdG9yUmF3PXZvLHQuZ2VvTmF0dXJhbEVhcnRoMT1mdW5jdGlvbigpe3JldHVybiBhbyhNbykuc2NhbGUoMTc1LjI5NSl9LHQuZ2VvTmF0dXJhbEVhcnRoMVJhdz1Nbyx0Lmdlb09ydGhvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBhbyhBbykuc2NhbGUoMjQ5LjUpLmNsaXBBbmdsZSg5MCtIZCl9LHQuZ2VvT3J0aG9ncmFwaGljUmF3PUFvLHQuZ2VvU3RlcmVvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBhbyhUbykuc2NhbGUoMjUwKS5jbGlwQW5nbGUoMTQyKX0sdC5nZW9TdGVyZW9ncmFwaGljUmF3PVRvLHQuZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yPWZ1bmN0aW9uKCl7dmFyIHQ9Z28oTm8pLG49dC5jZW50ZXIsZT10LnJvdGF0ZTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihbLXRbMV0sdFswXV0pOih0PW4oKSxbdFsxXSwtdFswXV0pfSx0LnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKFt0WzBdLHRbMV0sdC5sZW5ndGg+Mj90WzJdKzkwOjkwXSk6KHQ9ZSgpLFt0WzBdLHRbMV0sdFsyXS05MF0pfSxlKFswLDAsOTBdKS5zY2FsZSgxNTkuMTU1KX0sdC5nZW9UcmFuc3ZlcnNlTWVyY2F0b3JSYXc9Tm8sdC5nZW9Sb3RhdGlvbj1paSx0Lmdlb1N0cmVhbT1icix0Lmdlb1RyYW5zZm9ybT1mdW5jdGlvbih0KXtyZXR1cm57c3RyZWFtOlFpKHQpfX0sdC5jbHVzdGVyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbyxhPTA7dC5lYWNoQWZ0ZXIoZnVuY3Rpb24odCl7dmFyIGU9dC5jaGlsZHJlbjtlPyh0Lng9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKEVvLDApL3QubGVuZ3RofShlKSx0Lnk9ZnVuY3Rpb24odCl7cmV0dXJuIDErdC5yZWR1Y2Uoa28sMCl9KGUpKToodC54PW8/YSs9bih0LG8pOjAsdC55PTAsbz10KX0pO3ZhciB1PWZ1bmN0aW9uKHQpe2Zvcih2YXIgbjtuPXQuY2hpbGRyZW47KXQ9blswXTtyZXR1cm4gdH0odCksZj1mdW5jdGlvbih0KXtmb3IodmFyIG47bj10LmNoaWxkcmVuOyl0PW5bbi5sZW5ndGgtMV07cmV0dXJuIHR9KHQpLGM9dS54LW4odSxmKS8yLHM9Zi54K24oZix1KS8yO3JldHVybiB0LmVhY2hBZnRlcihpP2Z1bmN0aW9uKG4pe24ueD0obi54LXQueCkqZSxuLnk9KHQueS1uLnkpKnJ9OmZ1bmN0aW9uKG4pe24ueD0obi54LWMpLyhzLWMpKmUsbi55PSgxLSh0Lnk/bi55L3QueToxKSkqcn0pfXZhciBuPVNvLGU9MSxyPTEsaT0hMTtyZXR1cm4gdC5zZXBhcmF0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWUsdCk6bn0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSExLGU9K25bMF0scj0rblsxXSx0KTppP251bGw6W2Uscl19LHQubm9kZVNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITAsZT0rblswXSxyPStuWzFdLHQpOmk/W2Uscl06bnVsbH0sdH0sdC5oaWVyYXJjaHk9UG8sdC5wYWNrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gdC54PWUvMix0Lnk9ci8yLG4/dC5lYWNoQmVmb3JlKFFvKG4pKS5lYWNoQWZ0ZXIoSm8oaSwuNSkpLmVhY2hCZWZvcmUoS28oMSkpOnQuZWFjaEJlZm9yZShRbyhabykpLmVhY2hBZnRlcihKbygkbywxKSkuZWFjaEFmdGVyKEpvKGksdC5yL01hdGgubWluKGUscikpKS5lYWNoQmVmb3JlKEtvKE1hdGgubWluKGUscikvKDIqdC5yKSkpLHR9dmFyIG49bnVsbCxlPTEscj0xLGk9JG87cmV0dXJuIHQucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P251bGw6Vm8odCl9KGUpLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rblswXSxyPStuWzFdLHQpOltlLHJdfSx0LnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTppfSx0fSx0LnBhY2tTaWJsaW5ncz1mdW5jdGlvbih0KXtyZXR1cm4gR28odCksdH0sdC5wYWNrRW5jbG9zZT1Vbyx0LnBhcnRpdGlvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG89dC5oZWlnaHQrMTtyZXR1cm4gdC54MD10LnkwPXIsdC54MT1uLHQueTE9ZS9vLHQuZWFjaEJlZm9yZShmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbihlKXtlLmNoaWxkcmVuJiZuYShlLGUueDAsdCooZS5kZXB0aCsxKS9uLGUueDEsdCooZS5kZXB0aCsyKS9uKTt2YXIgaT1lLngwLG89ZS55MCxhPWUueDEtcix1PWUueTEtcjthPGkmJihpPWE9KGkrYSkvMiksdTxvJiYobz11PShvK3UpLzIpLGUueDA9aSxlLnkwPW8sZS54MT1hLGUueTE9dX19KGUsbykpLGkmJnQuZWFjaEJlZm9yZSh0YSksdH12YXIgbj0xLGU9MSxyPTAsaT0hMTtyZXR1cm4gdC5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hIW4sdCk6aX0sdC5zaXplPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStyWzBdLGU9K3JbMV0sdCk6W24sZV19LHQucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rbix0KTpyfSx0fSx0LnN0cmF0aWZ5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgcixpLG8sYSx1LGYsYyxzPXQubGVuZ3RoLGw9bmV3IEFycmF5KHMpLGg9e307Zm9yKGk9MDtpPHM7KytpKXI9dFtpXSx1PWxbaV09bmV3IERvKHIpLG51bGwhPShmPW4ocixpLHQpKSYmKGYrPVwiXCIpJiYoaFtjPWd2Kyh1LmlkPWYpXT1jIGluIGg/X3Y6dSk7Zm9yKGk9MDtpPHM7KytpKWlmKHU9bFtpXSxudWxsIT0oZj1lKHRbaV0saSx0KSkmJihmKz1cIlwiKSl7aWYoIShhPWhbZ3YrZl0pKXRocm93IG5ldyBFcnJvcihcIm1pc3Npbmc6IFwiK2YpO2lmKGE9PT1fdil0aHJvdyBuZXcgRXJyb3IoXCJhbWJpZ3VvdXM6IFwiK2YpO2EuY2hpbGRyZW4/YS5jaGlsZHJlbi5wdXNoKHUpOmEuY2hpbGRyZW49W3VdLHUucGFyZW50PWF9ZWxzZXtpZihvKXRocm93IG5ldyBFcnJvcihcIm11bHRpcGxlIHJvb3RzXCIpO289dX1pZighbyl0aHJvdyBuZXcgRXJyb3IoXCJubyByb290XCIpO2lmKG8ucGFyZW50PXl2LG8uZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0LmRlcHRoPXQucGFyZW50LmRlcHRoKzEsLS1zfSkuZWFjaEJlZm9yZShMbyksby5wYXJlbnQ9bnVsbCxzPjApdGhyb3cgbmV3IEVycm9yKFwiY3ljbGVcIik7cmV0dXJuIG99dmFyIG49ZWEsZT1yYTtyZXR1cm4gdC5pZD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1WbyhlKSx0KTpufSx0LnBhcmVudElkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVZvKG4pLHQpOmV9LHR9LHQudHJlZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGY9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscixpLG8sYT1uZXcgY2EodCwwKSx1PVthXTtuPXUucG9wKCk7KWlmKHI9bi5fLmNoaWxkcmVuKWZvcihuLmNoaWxkcmVuPW5ldyBBcnJheShvPXIubGVuZ3RoKSxpPW8tMTtpPj0wOy0taSl1LnB1c2goZT1uLmNoaWxkcmVuW2ldPW5ldyBjYShyW2ldLGkpKSxlLnBhcmVudD1uO3JldHVybihhLnBhcmVudD1uZXcgY2EobnVsbCwwKSkuY2hpbGRyZW49W2FdLGF9KHQpO2lmKGYuZWFjaEFmdGVyKG4pLGYucGFyZW50Lm09LWYueixmLmVhY2hCZWZvcmUoZSksdSl0LmVhY2hCZWZvcmUocik7ZWxzZXt2YXIgYz10LHM9dCxsPXQ7dC5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQpe3QueDxjLngmJihjPXQpLHQueD5zLngmJihzPXQpLHQuZGVwdGg+bC5kZXB0aCYmKGw9dCl9KTt2YXIgaD1jPT09cz8xOmkoYyxzKS8yLGQ9aC1jLngscD1vLyhzLngraCtkKSx2PWEvKGwuZGVwdGh8fDEpO3QuZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0Lng9KHQueCtkKSpwLHQueT10LmRlcHRoKnZ9KX1yZXR1cm4gdH1mdW5jdGlvbiBuKHQpe3ZhciBuPXQuY2hpbGRyZW4sZT10LnBhcmVudC5jaGlsZHJlbixyPXQuaT9lW3QuaS0xXTpudWxsO2lmKG4peyhmdW5jdGlvbih0KXtmb3IodmFyIG4sZT0wLHI9MCxpPXQuY2hpbGRyZW4sbz1pLmxlbmd0aDstLW8+PTA7KShuPWlbb10pLnorPWUsbi5tKz1lLGUrPW4ucysocis9bi5jKX0pKHQpO3ZhciBvPShuWzBdLnorbltuLmxlbmd0aC0xXS56KS8yO3I/KHQuej1yLnoraSh0Ll8sci5fKSx0Lm09dC56LW8pOnQuej1vfWVsc2UgciYmKHQuej1yLnoraSh0Ll8sci5fKSk7dC5wYXJlbnQuQT1mdW5jdGlvbih0LG4sZSl7aWYobil7Zm9yKHZhciByLG89dCxhPXQsdT1uLGY9by5wYXJlbnQuY2hpbGRyZW5bMF0sYz1vLm0scz1hLm0sbD11Lm0saD1mLm07dT1hYSh1KSxvPW9hKG8pLHUmJm87KWY9b2EoZiksKGE9YWEoYSkpLmE9dCwocj11LnorbC1vLnotYytpKHUuXyxvLl8pKT4wJiYodWEoZmEodSx0LGUpLHQsciksYys9cixzKz1yKSxsKz11Lm0sYys9by5tLGgrPWYubSxzKz1hLm07dSYmIWFhKGEpJiYoYS50PXUsYS5tKz1sLXMpLG8mJiFvYShmKSYmKGYudD1vLGYubSs9Yy1oLGU9dCl9cmV0dXJuIGV9KHQscix0LnBhcmVudC5BfHxlWzBdKX1mdW5jdGlvbiBlKHQpe3QuXy54PXQueit0LnBhcmVudC5tLHQubSs9dC5wYXJlbnQubX1mdW5jdGlvbiByKHQpe3QueCo9byx0Lnk9dC5kZXB0aCphfXZhciBpPWlhLG89MSxhPTEsdT1udWxsO3JldHVybiB0LnNlcGFyYXRpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bix0KTppfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ITEsbz0rblswXSxhPStuWzFdLHQpOnU/bnVsbDpbbyxhXX0sdC5ub2RlU2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0hMCxvPStuWzBdLGE9K25bMV0sdCk6dT9bbyxhXTpudWxsfSx0fSx0LnRyZWVtYXA9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiB0LngwPXQueTA9MCx0LngxPWksdC55MT1vLHQuZWFjaEJlZm9yZShuKSxhPVswXSxyJiZ0LmVhY2hCZWZvcmUodGEpLHR9ZnVuY3Rpb24gbih0KXt2YXIgbj1hW3QuZGVwdGhdLHI9dC54MCtuLGk9dC55MCtuLG89dC54MS1uLGg9dC55MS1uO288ciYmKHI9bz0ocitvKS8yKSxoPGkmJihpPWg9KGkraCkvMiksdC54MD1yLHQueTA9aSx0LngxPW8sdC55MT1oLHQuY2hpbGRyZW4mJihuPWFbdC5kZXB0aCsxXT11KHQpLzIscis9bCh0KS1uLGkrPWYodCktbixvLT1jKHQpLW4saC09cyh0KS1uLG88ciYmKHI9bz0ocitvKS8yKSxoPGkmJihpPWg9KGkraCkvMiksZSh0LHIsaSxvLGgpKX12YXIgZT1tdixyPSExLGk9MSxvPTEsYT1bMF0sdT0kbyxmPSRvLGM9JG8scz0kbyxsPSRvO3JldHVybiB0LnJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSEhbix0KTpyfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K25bMF0sbz0rblsxXSx0KTpbaSxvXX0sdC50aWxlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVZvKG4pLHQpOmV9LHQucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LnBhZGRpbmdJbm5lcihuKS5wYWRkaW5nT3V0ZXIobik6dC5wYWRkaW5nSW5uZXIoKX0sdC5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTp1fSx0LnBhZGRpbmdPdXRlcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LnBhZGRpbmdUb3AobikucGFkZGluZ1JpZ2h0KG4pLnBhZGRpbmdCb3R0b20obikucGFkZGluZ0xlZnQobik6dC5wYWRkaW5nVG9wKCl9LHQucGFkZGluZ1RvcD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmZ9LHQucGFkZGluZ1JpZ2h0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6Y30sdC5wYWRkaW5nQm90dG9tPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6c30sdC5wYWRkaW5nTGVmdD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmx9LHR9LHQudHJlZW1hcEJpbmFyeT1mdW5jdGlvbih0LG4sZSxyLGkpe2Z1bmN0aW9uIG8odCxuLGUscixpLGEsdSl7aWYodD49bi0xKXt2YXIgYz1mW3RdO3JldHVybiBjLngwPXIsYy55MD1pLGMueDE9YSx2b2lkKGMueTE9dSl9Zm9yKHZhciBsPXNbdF0saD1lLzIrbCxkPXQrMSxwPW4tMTtkPHA7KXt2YXIgdj1kK3A+Pj4xO3Nbdl08aD9kPXYrMTpwPXZ9aC1zW2QtMV08c1tkXS1oJiZ0KzE8ZCYmLS1kO3ZhciBnPXNbZF0tbCx5PWUtZztpZihhLXI+dS1pKXt2YXIgXz0ocip5K2EqZykvZTtvKHQsZCxnLHIsaSxfLHUpLG8oZCxuLHksXyxpLGEsdSl9ZWxzZXt2YXIgYj0oaSp5K3UqZykvZTtvKHQsZCxnLHIsaSxhLGIpLG8oZCxuLHkscixiLGEsdSl9fXZhciBhLHUsZj10LmNoaWxkcmVuLGM9Zi5sZW5ndGgscz1uZXcgQXJyYXkoYysxKTtmb3Ioc1swXT11PWE9MDthPGM7KythKXNbYSsxXT11Kz1mW2FdLnZhbHVlO28oMCxjLHQudmFsdWUsbixlLHIsaSl9LHQudHJlZW1hcERpY2U9bmEsdC50cmVlbWFwU2xpY2U9c2EsdC50cmVlbWFwU2xpY2VEaWNlPWZ1bmN0aW9uKHQsbixlLHIsaSl7KDEmdC5kZXB0aD9zYTpuYSkodCxuLGUscixpKX0sdC50cmVlbWFwU3F1YXJpZnk9bXYsdC50cmVlbWFwUmVzcXVhcmlmeT14dix0LmludGVycG9sYXRlPWRuLHQuaW50ZXJwb2xhdGVBcnJheT1mbix0LmludGVycG9sYXRlQmFzaXM9S3QsdC5pbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkPXRuLHQuaW50ZXJwb2xhdGVEYXRlPWNuLHQuaW50ZXJwb2xhdGVOdW1iZXI9c24sdC5pbnRlcnBvbGF0ZU9iamVjdD1sbix0LmludGVycG9sYXRlUm91bmQ9cG4sdC5pbnRlcnBvbGF0ZVN0cmluZz1obix0LmludGVycG9sYXRlVHJhbnNmb3JtQ3NzPXNsLHQuaW50ZXJwb2xhdGVUcmFuc2Zvcm1Tdmc9bGwsdC5pbnRlcnBvbGF0ZVpvb209X24sdC5pbnRlcnBvbGF0ZVJnYj1ybCx0LmludGVycG9sYXRlUmdiQmFzaXM9aWwsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzQ2xvc2VkPW9sLHQuaW50ZXJwb2xhdGVIc2w9Z2wsdC5pbnRlcnBvbGF0ZUhzbExvbmc9eWwsdC5pbnRlcnBvbGF0ZUxhYj1mdW5jdGlvbih0LG4pe3ZhciBlPWFuKCh0PUZ0KHQpKS5sLChuPUZ0KG4pKS5sKSxyPWFuKHQuYSxuLmEpLGk9YW4odC5iLG4uYiksbz1hbih0Lm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQubD1lKG4pLHQuYT1yKG4pLHQuYj1pKG4pLHQub3BhY2l0eT1vKG4pLHQrXCJcIn19LHQuaW50ZXJwb2xhdGVIY2w9X2wsdC5pbnRlcnBvbGF0ZUhjbExvbmc9YmwsdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeD1tbCx0LmludGVycG9sYXRlQ3ViZWhlbGl4TG9uZz14bCx0LnBpZWNld2lzZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT0wLHI9bi5sZW5ndGgtMSxpPW5bMF0sbz1uZXcgQXJyYXkocjwwPzA6cik7ZTxyOylvW2VdPXQoaSxpPW5bKytlXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPU1hdGgubWF4KDAsTWF0aC5taW4oci0xLE1hdGguZmxvb3IodCo9cikpKTtyZXR1cm4gb1tuXSh0LW4pfX0sdC5xdWFudGl6ZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZVtyXT10KHIvKG4tMSkpO3JldHVybiBlfSx0LnBhdGg9b2UsdC5wb2x5Z29uQXJlYT1mdW5jdGlvbih0KXtmb3IodmFyIG4sZT0tMSxyPXQubGVuZ3RoLGk9dFtyLTFdLG89MDsrK2U8cjspbj1pLGk9dFtlXSxvKz1uWzFdKmlbMF0tblswXSppWzFdO3JldHVybiBvLzJ9LHQucG9seWdvbkNlbnRyb2lkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHI9LTEsaT10Lmxlbmd0aCxvPTAsYT0wLHU9dFtpLTFdLGY9MDsrK3I8aTspbj11LHU9dFtyXSxmKz1lPW5bMF0qdVsxXS11WzBdKm5bMV0sbys9KG5bMF0rdVswXSkqZSxhKz0oblsxXSt1WzFdKSplO3JldHVybiBmKj0zLFtvL2YsYS9mXX0sdC5wb2x5Z29uSHVsbD1mdW5jdGlvbih0KXtpZigoZT10Lmxlbmd0aCk8MylyZXR1cm4gbnVsbDt2YXIgbixlLHI9bmV3IEFycmF5KGUpLGk9bmV3IEFycmF5KGUpO2ZvcihuPTA7bjxlOysrbilyW25dPVsrdFtuXVswXSwrdFtuXVsxXSxuXTtmb3Ioci5zb3J0KGRhKSxuPTA7bjxlOysrbilpW25dPVtyW25dWzBdLC1yW25dWzFdXTt2YXIgbz1wYShyKSxhPXBhKGkpLHU9YVswXT09PW9bMF0sZj1hW2EubGVuZ3RoLTFdPT09b1tvLmxlbmd0aC0xXSxjPVtdO2ZvcihuPW8ubGVuZ3RoLTE7bj49MDstLW4pYy5wdXNoKHRbcltvW25dXVsyXV0pO2ZvcihuPSt1O248YS5sZW5ndGgtZjsrK24pYy5wdXNoKHRbclthW25dXVsyXV0pO3JldHVybiBjfSx0LnBvbHlnb25Db250YWlucz1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZSxyLGk9dC5sZW5ndGgsbz10W2ktMV0sYT1uWzBdLHU9blsxXSxmPW9bMF0sYz1vWzFdLHM9ITEsbD0wO2w8aTsrK2wpZT0obz10W2xdKVswXSwocj1vWzFdKT51IT1jPnUmJmE8KGYtZSkqKHUtcikvKGMtcikrZSYmKHM9IXMpLGY9ZSxjPXI7cmV0dXJuIHN9LHQucG9seWdvbkxlbmd0aD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPS0xLGk9dC5sZW5ndGgsbz10W2ktMV0sYT1vWzBdLHU9b1sxXSxmPTA7KytyPGk7KW49YSxlPXUsbi09YT0obz10W3JdKVswXSxlLT11PW9bMV0sZis9TWF0aC5zcXJ0KG4qbitlKmUpO3JldHVybiBmfSx0LnF1YWR0cmVlPWplLHQucmFuZG9tVW5pZm9ybT13dix0LnJhbmRvbU5vcm1hbD1Ndix0LnJhbmRvbUxvZ05vcm1hbD1Bdix0LnJhbmRvbUJhdGVzPU52LHQucmFuZG9tSXJ3aW5IYWxsPVR2LHQucmFuZG9tRXhwb25lbnRpYWw9U3YsdC5zY2FsZUJhbmQ9eWEsdC5zY2FsZVBvaW50PWZ1bmN0aW9uKCl7cmV0dXJuIF9hKHlhKCkucGFkZGluZ0lubmVyKDEpKX0sdC5zY2FsZUlkZW50aXR5PUVhLHQuc2NhbGVMaW5lYXI9U2EsdC5zY2FsZUxvZz1VYSx0LnNjYWxlT3JkaW5hbD1nYSx0LnNjYWxlSW1wbGljaXQ9UHYsdC5zY2FsZVBvdz1PYSx0LnNjYWxlU3FydD1mdW5jdGlvbigpe3JldHVybiBPYSgpLmV4cG9uZW50KC41KX0sdC5zY2FsZVF1YW50aWxlPVlhLHQuc2NhbGVRdWFudGl6ZT1CYSx0LnNjYWxlVGhyZXNob2xkPUZhLHQuc2NhbGVUaW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG9mKGNnLHVnLFZ2LFh2LGp2LEZ2LFl2LER2LHQudGltZUZvcm1hdCkuZG9tYWluKFtuZXcgRGF0ZSgyZTMsMCwxKSxuZXcgRGF0ZSgyZTMsMCwyKV0pfSx0LnNjYWxlVXRjPWZ1bmN0aW9uKCl7cmV0dXJuIG9mKFJnLFBnLHlnLHZnLGRnLGxnLFl2LER2LHQudXRjRm9ybWF0KS5kb21haW4oW0RhdGUuVVRDKDJlMywwLDEpLERhdGUuVVRDKDJlMywwLDIpXSl9LHQuc2NhbGVTZXF1ZW50aWFsPWFmLHQuc2NhbGVEaXZlcmdpbmc9dWYsdC5zY2hlbWVDYXRlZ29yeTEwPVpnLHQuc2NoZW1lQWNjZW50PVFnLHQuc2NoZW1lRGFyazI9SmcsdC5zY2hlbWVQYWlyZWQ9S2csdC5zY2hlbWVQYXN0ZWwxPXR5LHQuc2NoZW1lUGFzdGVsMj1ueSx0LnNjaGVtZVNldDE9ZXksdC5zY2hlbWVTZXQyPXJ5LHQuc2NoZW1lU2V0Mz1peSx0LmludGVycG9sYXRlQnJCRz1heSx0LnNjaGVtZUJyQkc9b3ksdC5pbnRlcnBvbGF0ZVBSR249ZnksdC5zY2hlbWVQUkduPXV5LHQuaW50ZXJwb2xhdGVQaVlHPXN5LHQuc2NoZW1lUGlZRz1jeSx0LmludGVycG9sYXRlUHVPcj1oeSx0LnNjaGVtZVB1T3I9bHksdC5pbnRlcnBvbGF0ZVJkQnU9cHksdC5zY2hlbWVSZEJ1PWR5LHQuaW50ZXJwb2xhdGVSZEd5PWd5LHQuc2NoZW1lUmRHeT12eSx0LmludGVycG9sYXRlUmRZbEJ1PV95LHQuc2NoZW1lUmRZbEJ1PXl5LHQuaW50ZXJwb2xhdGVSZFlsR249bXksdC5zY2hlbWVSZFlsR249YnksdC5pbnRlcnBvbGF0ZVNwZWN0cmFsPXd5LHQuc2NoZW1lU3BlY3RyYWw9eHksdC5pbnRlcnBvbGF0ZUJ1R249QXksdC5zY2hlbWVCdUduPU15LHQuaW50ZXJwb2xhdGVCdVB1PU55LHQuc2NoZW1lQnVQdT1UeSx0LmludGVycG9sYXRlR25CdT1FeSx0LnNjaGVtZUduQnU9U3ksdC5pbnRlcnBvbGF0ZU9yUmQ9Q3ksdC5zY2hlbWVPclJkPWt5LHQuaW50ZXJwb2xhdGVQdUJ1R249enksdC5zY2hlbWVQdUJ1R249UHksdC5pbnRlcnBvbGF0ZVB1QnU9THksdC5zY2hlbWVQdUJ1PVJ5LHQuaW50ZXJwb2xhdGVQdVJkPVV5LHQuc2NoZW1lUHVSZD1EeSx0LmludGVycG9sYXRlUmRQdT1PeSx0LnNjaGVtZVJkUHU9cXksdC5pbnRlcnBvbGF0ZVlsR25CdT1CeSx0LnNjaGVtZVlsR25CdT1ZeSx0LmludGVycG9sYXRlWWxHbj1JeSx0LnNjaGVtZVlsR249RnksdC5pbnRlcnBvbGF0ZVlsT3JCcj1IeSx0LnNjaGVtZVlsT3JCcj1qeSx0LmludGVycG9sYXRlWWxPclJkPUd5LHQuc2NoZW1lWWxPclJkPVh5LHQuaW50ZXJwb2xhdGVCbHVlcz0keSx0LnNjaGVtZUJsdWVzPVZ5LHQuaW50ZXJwb2xhdGVHcmVlbnM9WnksdC5zY2hlbWVHcmVlbnM9V3ksdC5pbnRlcnBvbGF0ZUdyZXlzPUp5LHQuc2NoZW1lR3JleXM9UXksdC5pbnRlcnBvbGF0ZVB1cnBsZXM9dF8sdC5zY2hlbWVQdXJwbGVzPUt5LHQuaW50ZXJwb2xhdGVSZWRzPWVfLHQuc2NoZW1lUmVkcz1uXyx0LmludGVycG9sYXRlT3Jhbmdlcz1pXyx0LnNjaGVtZU9yYW5nZXM9cl8sdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ9b18sdC5pbnRlcnBvbGF0ZVJhaW5ib3c9ZnVuY3Rpb24odCl7KHQ8MHx8dD4xKSYmKHQtPU1hdGguZmxvb3IodCkpO3ZhciBuPU1hdGguYWJzKHQtLjUpO3JldHVybiBmXy5oPTM2MCp0LTEwMCxmXy5zPTEuNS0xLjUqbixmXy5sPS44LS45Km4sZl8rXCJcIn0sdC5pbnRlcnBvbGF0ZVdhcm09YV8sdC5pbnRlcnBvbGF0ZUNvb2w9dV8sdC5pbnRlcnBvbGF0ZVNpbmVib3c9ZnVuY3Rpb24odCl7dmFyIG47cmV0dXJuIHQ9KC41LXQpKk1hdGguUEksY18ucj0yNTUqKG49TWF0aC5zaW4odCkpKm4sY18uZz0yNTUqKG49TWF0aC5zaW4odCtzXykpKm4sY18uYj0yNTUqKG49TWF0aC5zaW4odCtsXykpKm4sY18rXCJcIn0sdC5pbnRlcnBvbGF0ZVZpcmlkaXM9aF8sdC5pbnRlcnBvbGF0ZU1hZ21hPWRfLHQuaW50ZXJwb2xhdGVJbmZlcm5vPXBfLHQuaW50ZXJwb2xhdGVQbGFzbWE9dl8sdC5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGN0KEModCkuY2FsbChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX0sdC5jcmVhdG9yPUMsdC5sb2NhbD1zdCx0Lm1hdGNoZXI9YnMsdC5tb3VzZT1wdCx0Lm5hbWVzcGFjZT1rLHQubmFtZXNwYWNlcz12cyx0LmNsaWVudFBvaW50PWR0LHQuc2VsZWN0PWN0LHQuc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P25ldyB1dChbZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0KV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB1dChbbnVsbD09dD9bXTp0XSx3cyl9LHQuc2VsZWN0aW9uPWZ0LHQuc2VsZWN0b3I9eix0LnNlbGVjdG9yQWxsPUwsdC5zdHlsZT1GLHQudG91Y2g9dnQsdC50b3VjaGVzPWZ1bmN0aW9uKHQsbil7bnVsbD09biYmKG49aHQoKS50b3VjaGVzKTtmb3IodmFyIGU9MCxyPW4/bi5sZW5ndGg6MCxpPW5ldyBBcnJheShyKTtlPHI7KytlKWlbZV09ZHQodCxuW2VdKTtyZXR1cm4gaX0sdC53aW5kb3c9Qix0LmN1c3RvbUV2ZW50PW90LHQuYXJjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0LGMscz0rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyksbD0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksaD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1UXyxkPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLVRfLHA9Z18oZC1oKSx2PWQ+aDtpZihmfHwoZj10PW9lKCkpLGw8cyYmKGM9bCxsPXMscz1jKSxsPk1fKWlmKHA+Tl8tTV8pZi5tb3ZlVG8obCpfXyhoKSxsKnhfKGgpKSxmLmFyYygwLDAsbCxoLGQsIXYpLHM+TV8mJihmLm1vdmVUbyhzKl9fKGQpLHMqeF8oZCkpLGYuYXJjKDAsMCxzLGQsaCx2KSk7ZWxzZXt2YXIgZyx5LF89aCxiPWQsbT1oLHg9ZCx3PXAsTT1wLEE9dS5hcHBseSh0aGlzLGFyZ3VtZW50cykvMixUPUE+TV8mJihpPytpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp3XyhzKnMrbCpsKSksTj1tXyhnXyhsLXMpLzIsK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxTPU4sRT1OO2lmKFQ+TV8pe3ZhciBrPWhmKFQvcyp4XyhBKSksQz1oZihUL2wqeF8oQSkpOyh3LT0yKmspPk1fPyhrKj12PzE6LTEsbSs9ayx4LT1rKToodz0wLG09eD0oaCtkKS8yKSwoTS09MipDKT5NXz8oQyo9dj8xOi0xLF8rPUMsYi09Qyk6KE09MCxfPWI9KGgrZCkvMil9dmFyIFA9bCpfXyhfKSx6PWwqeF8oXyksUj1zKl9fKHgpLEw9cyp4Xyh4KTtpZihOPk1fKXt2YXIgRD1sKl9fKGIpLFU9bCp4XyhiKSxxPXMqX18obSksTz1zKnhfKG0pO2lmKHA8QV8pe3ZhciBZPXc+TV8/ZnVuY3Rpb24odCxuLGUscixpLG8sYSx1KXt2YXIgZj1lLXQsYz1yLW4scz1hLWksbD11LW8saD0ocyoobi1vKS1sKih0LWkpKS8obCpmLXMqYyk7cmV0dXJuW3QraCpmLG4raCpjXX0oUCx6LHEsTyxELFUsUixMKTpbUixMXSxCPVAtWVswXSxGPXotWVsxXSxJPUQtWVswXSxqPVUtWVsxXSxIPTEveF8oZnVuY3Rpb24odCl7cmV0dXJuIHQ+MT8wOnQ8LTE/QV86TWF0aC5hY29zKHQpfSgoQipJK0YqaikvKHdfKEIqQitGKkYpKndfKEkqSStqKmopKSkvMiksWD13XyhZWzBdKllbMF0rWVsxXSpZWzFdKTtTPW1fKE4sKHMtWCkvKEgtMSkpLEU9bV8oTiwobC1YKS8oSCsxKSl9fU0+TV8/RT5NXz8oZz1fZihxLE8sUCx6LGwsRSx2KSx5PV9mKEQsVSxSLEwsbCxFLHYpLGYubW92ZVRvKGcuY3grZy54MDEsZy5jeStnLnkwMSksRTxOP2YuYXJjKGcuY3gsZy5jeSxFLHlfKGcueTAxLGcueDAxKSx5Xyh5LnkwMSx5LngwMSksIXYpOihmLmFyYyhnLmN4LGcuY3ksRSx5XyhnLnkwMSxnLngwMSkseV8oZy55MTEsZy54MTEpLCF2KSxmLmFyYygwLDAsbCx5XyhnLmN5K2cueTExLGcuY3grZy54MTEpLHlfKHkuY3kreS55MTEseS5jeCt5LngxMSksIXYpLGYuYXJjKHkuY3gseS5jeSxFLHlfKHkueTExLHkueDExKSx5Xyh5LnkwMSx5LngwMSksIXYpKSk6KGYubW92ZVRvKFAseiksZi5hcmMoMCwwLGwsXyxiLCF2KSk6Zi5tb3ZlVG8oUCx6KSxzPk1fJiZ3Pk1fP1M+TV8/KGc9X2YoUixMLEQsVSxzLC1TLHYpLHk9X2YoUCx6LHEsTyxzLC1TLHYpLGYubGluZVRvKGcuY3grZy54MDEsZy5jeStnLnkwMSksUzxOP2YuYXJjKGcuY3gsZy5jeSxTLHlfKGcueTAxLGcueDAxKSx5Xyh5LnkwMSx5LngwMSksIXYpOihmLmFyYyhnLmN4LGcuY3ksUyx5XyhnLnkwMSxnLngwMSkseV8oZy55MTEsZy54MTEpLCF2KSxmLmFyYygwLDAscyx5XyhnLmN5K2cueTExLGcuY3grZy54MTEpLHlfKHkuY3kreS55MTEseS5jeCt5LngxMSksdiksZi5hcmMoeS5jeCx5LmN5LFMseV8oeS55MTEseS54MTEpLHlfKHkueTAxLHkueDAxKSwhdikpKTpmLmFyYygwLDAscyx4LG0sdik6Zi5saW5lVG8oUixMKX1lbHNlIGYubW92ZVRvKDAsMCk7aWYoZi5jbG9zZVBhdGgoKSx0KXJldHVybiBmPW51bGwsdCtcIlwifHxudWxsfXZhciBuPWRmLGU9cGYscj1sZigwKSxpPW51bGwsbz12ZixhPWdmLHU9eWYsZj1udWxsO3JldHVybiB0LmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIHQ9KCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2UuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLHI9KCtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2EuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLUFfLzI7cmV0dXJuW19fKHIpKnQseF8ocikqdF19LHQuaW5uZXJSYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0Lm91dGVyUmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC5jb3JuZXJSYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpyfSx0LnBhZFJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6YX0sdC5wYWRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOnV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1udWxsPT1uP251bGw6bix0KTpmfSx0fSx0LmFyZWE9QWYsdC5saW5lPU1mLHQucGllPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgdSxmLGMscyxsLGg9dC5sZW5ndGgsZD0wLHA9bmV3IEFycmF5KGgpLHY9bmV3IEFycmF5KGgpLGc9K2kuYXBwbHkodGhpcyxhcmd1bWVudHMpLHk9TWF0aC5taW4oTl8sTWF0aC5tYXgoLU5fLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpLWcpKSxfPU1hdGgubWluKE1hdGguYWJzKHkpL2gsYS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGI9XyooeTwwPy0xOjEpO2Zvcih1PTA7dTxoOysrdSkobD12W3BbdV09dV09K24odFt1XSx1LHQpKT4wJiYoZCs9bCk7Zm9yKG51bGwhPWU/cC5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodlt0XSx2W25dKX0pOm51bGwhPXImJnAuc29ydChmdW5jdGlvbihuLGUpe3JldHVybiByKHRbbl0sdFtlXSl9KSx1PTAsYz1kPyh5LWgqYikvZDowO3U8aDsrK3UsZz1zKWY9cFt1XSxzPWcrKChsPXZbZl0pPjA/bCpjOjApK2IsdltmXT17ZGF0YTp0W2ZdLGluZGV4OnUsdmFsdWU6bCxzdGFydEFuZ2xlOmcsZW5kQW5nbGU6cyxwYWRBbmdsZTpffTtyZXR1cm4gdn12YXIgbj1OZixlPVRmLHI9bnVsbCxpPWxmKDApLG89bGYoTl8pLGE9bGYoMCk7cmV0dXJuIHQudmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0LnNvcnRWYWx1ZXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bixyPW51bGwsdCk6ZX0sdC5zb3J0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW4sZT1udWxsLHQpOnJ9LHQuc3RhcnRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQuZW5kQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LnBhZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6YX0sdH0sdC5hcmVhUmFkaWFsPVBmLHQucmFkaWFsQXJlYT1QZix0LmxpbmVSYWRpYWw9Q2YsdC5yYWRpYWxMaW5lPUNmLHQucG9pbnRSYWRpYWw9emYsdC5saW5rSG9yaXpvbnRhbD1mdW5jdGlvbigpe3JldHVybiBEZihVZil9LHQubGlua1ZlcnRpY2FsPWZ1bmN0aW9uKCl7cmV0dXJuIERmKHFmKX0sdC5saW5rUmFkaWFsPWZ1bmN0aW9uKCl7dmFyIHQ9RGYoT2YpO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQucmFkaXVzPXQueSxkZWxldGUgdC55LHR9LHQuc3ltYm9sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0O2lmKHJ8fChyPXQ9b2UoKSksbi5hcHBseSh0aGlzLGFyZ3VtZW50cykuZHJhdyhyLCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdClyZXR1cm4gcj1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1sZihrXyksZT1sZig2NCkscj1udWxsO3JldHVybiB0LnR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKGUpLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6bix0KTpyfSx0fSx0LnN5bWJvbHM9WF8sdC5zeW1ib2xDaXJjbGU9a18sdC5zeW1ib2xDcm9zcz1DXyx0LnN5bWJvbERpYW1vbmQ9Ul8sdC5zeW1ib2xTcXVhcmU9T18sdC5zeW1ib2xTdGFyPXFfLHQuc3ltYm9sVHJpYW5nbGU9Ql8sdC5zeW1ib2xXeWU9SF8sdC5jdXJ2ZUJhc2lzQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSWYodCl9LHQuY3VydmVCYXNpc09wZW49ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBqZih0KX0sdC5jdXJ2ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRmYodCl9LHQuY3VydmVCdW5kbGU9R18sdC5jdXJ2ZUNhcmRpbmFsQ2xvc2VkPSRfLHQuY3VydmVDYXJkaW5hbE9wZW49V18sdC5jdXJ2ZUNhcmRpbmFsPVZfLHQuY3VydmVDYXRtdWxsUm9tQ2xvc2VkPVFfLHQuY3VydmVDYXRtdWxsUm9tT3Blbj1KXyx0LmN1cnZlQ2F0bXVsbFJvbT1aXyx0LmN1cnZlTGluZWFyQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgS2YodCl9LHQuY3VydmVMaW5lYXI9bWYsdC5jdXJ2ZU1vbm90b25lWD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGljKHQpfSx0LmN1cnZlTW9ub3RvbmVZPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgb2ModCl9LHQuY3VydmVOYXR1cmFsPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdWModCl9LHQuY3VydmVTdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY2ModCwuNSl9LHQuY3VydmVTdGVwQWZ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjYyh0LDEpfSx0LmN1cnZlU3RlcEJlZm9yZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGNjKHQsMCl9LHQuc3RhY2s9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvLGEsdT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxmPXQubGVuZ3RoLGM9dS5sZW5ndGgscz1uZXcgQXJyYXkoYyk7Zm9yKG89MDtvPGM7KytvKXtmb3IodmFyIGwsaD11W29dLGQ9c1tvXT1uZXcgQXJyYXkoZikscD0wO3A8ZjsrK3ApZFtwXT1sPVswLCtpKHRbcF0saCxwLHQpXSxsLmRhdGE9dFtwXTtkLmtleT1ofWZvcihvPTAsYT1lKHMpO288YzsrK28pc1thW29dXS5pbmRleD1vO3JldHVybiByKHMsYSksc312YXIgbj1sZihbXSksZT1sYyxyPXNjLGk9aGM7cmV0dXJuIHQua2V5cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bGYoRV8uY2FsbChlKSksdCk6bn0sdC52YWx1ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQub3JkZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09bj9sYzpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoRV8uY2FsbChuKSksdCk6ZX0sdC5vZmZzZXQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9zYzpuLHQpOnJ9LHR9LHQuc3RhY2tPZmZzZXRFeHBhbmQ9ZnVuY3Rpb24odCxuKXtpZigocj10Lmxlbmd0aCk+MCl7Zm9yKHZhciBlLHIsaSxvPTAsYT10WzBdLmxlbmd0aDtvPGE7KytvKXtmb3IoaT1lPTA7ZTxyOysrZSlpKz10W2VdW29dWzFdfHwwO2lmKGkpZm9yKGU9MDtlPHI7KytlKXRbZV1bb11bMV0vPWl9c2ModCxuKX19LHQuc3RhY2tPZmZzZXREaXZlcmdpbmc9ZnVuY3Rpb24odCxuKXtpZigodT10Lmxlbmd0aCk+MSlmb3IodmFyIGUscixpLG8sYSx1LGY9MCxjPXRbblswXV0ubGVuZ3RoO2Y8YzsrK2YpZm9yKG89YT0wLGU9MDtlPHU7KytlKShpPShyPXRbbltlXV1bZl0pWzFdLXJbMF0pPj0wPyhyWzBdPW8sclsxXT1vKz1pKTppPDA/KHJbMV09YSxyWzBdPWErPWkpOnJbMF09b30sdC5zdGFja09mZnNldE5vbmU9c2MsdC5zdGFja09mZnNldFNpbGhvdWV0dGU9ZnVuY3Rpb24odCxuKXtpZigoZT10Lmxlbmd0aCk+MCl7Zm9yKHZhciBlLHI9MCxpPXRbblswXV0sbz1pLmxlbmd0aDtyPG87KytyKXtmb3IodmFyIGE9MCx1PTA7YTxlOysrYSl1Kz10W2FdW3JdWzFdfHwwO2lbcl1bMV0rPWlbcl1bMF09LXUvMn1zYyh0LG4pfX0sdC5zdGFja09mZnNldFdpZ2dsZT1mdW5jdGlvbih0LG4pe2lmKChpPXQubGVuZ3RoKT4wJiYocj0oZT10W25bMF1dKS5sZW5ndGgpPjApe2Zvcih2YXIgZSxyLGksbz0wLGE9MTthPHI7KythKXtmb3IodmFyIHU9MCxmPTAsYz0wO3U8aTsrK3Upe2Zvcih2YXIgcz10W25bdV1dLGw9c1thXVsxXXx8MCxoPShsLShzW2EtMV1bMV18fDApKS8yLGQ9MDtkPHU7KytkKXt2YXIgcD10W25bZF1dO2grPShwW2FdWzFdfHwwKS0ocFthLTFdWzFdfHwwKX1mKz1sLGMrPWgqbH1lW2EtMV1bMV0rPWVbYS0xXVswXT1vLGYmJihvLT1jL2YpfWVbYS0xXVsxXSs9ZVthLTFdWzBdPW8sc2ModCxuKX19LHQuc3RhY2tPcmRlckFzY2VuZGluZz1kYyx0LnN0YWNrT3JkZXJEZXNjZW5kaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBkYyh0KS5yZXZlcnNlKCl9LHQuc3RhY2tPcmRlckluc2lkZU91dD1mdW5jdGlvbih0KXt2YXIgbixlLHI9dC5sZW5ndGgsaT10Lm1hcChwYyksbz1sYyh0KS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGlbbl0taVt0XX0pLGE9MCx1PTAsZj1bXSxjPVtdO2ZvcihuPTA7bjxyOysrbillPW9bbl0sYTx1PyhhKz1pW2VdLGYucHVzaChlKSk6KHUrPWlbZV0sYy5wdXNoKGUpKTtyZXR1cm4gYy5yZXZlcnNlKCkuY29uY2F0KGYpfSx0LnN0YWNrT3JkZXJOb25lPWxjLHQuc3RhY2tPcmRlclJldmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGxjKHQpLnJldmVyc2UoKX0sdC50aW1lSW50ZXJ2YWw9SWEsdC50aW1lTWlsbGlzZWNvbmQ9RHYsdC50aW1lTWlsbGlzZWNvbmRzPVV2LHQudXRjTWlsbGlzZWNvbmQ9RHYsdC51dGNNaWxsaXNlY29uZHM9VXYsdC50aW1lU2Vjb25kPVl2LHQudGltZVNlY29uZHM9QnYsdC51dGNTZWNvbmQ9WXYsdC51dGNTZWNvbmRzPUJ2LHQudGltZU1pbnV0ZT1Gdix0LnRpbWVNaW51dGVzPUl2LHQudGltZUhvdXI9anYsdC50aW1lSG91cnM9SHYsdC50aW1lRGF5PVh2LHQudGltZURheXM9R3YsdC50aW1lV2Vlaz1Wdix0LnRpbWVXZWVrcz10Zyx0LnRpbWVTdW5kYXk9VnYsdC50aW1lU3VuZGF5cz10Zyx0LnRpbWVNb25kYXk9JHYsdC50aW1lTW9uZGF5cz1uZyx0LnRpbWVUdWVzZGF5PVd2LHQudGltZVR1ZXNkYXlzPWVnLHQudGltZVdlZG5lc2RheT1adix0LnRpbWVXZWRuZXNkYXlzPXJnLHQudGltZVRodXJzZGF5PVF2LHQudGltZVRodXJzZGF5cz1pZyx0LnRpbWVGcmlkYXk9SnYsdC50aW1lRnJpZGF5cz1vZyx0LnRpbWVTYXR1cmRheT1Ldix0LnRpbWVTYXR1cmRheXM9YWcsdC50aW1lTW9udGg9dWcsdC50aW1lTW9udGhzPWZnLHQudGltZVllYXI9Y2csdC50aW1lWWVhcnM9c2csdC51dGNNaW51dGU9bGcsdC51dGNNaW51dGVzPWhnLHQudXRjSG91cj1kZyx0LnV0Y0hvdXJzPXBnLHQudXRjRGF5PXZnLHQudXRjRGF5cz1nZyx0LnV0Y1dlZWs9eWcsdC51dGNXZWVrcz1BZyx0LnV0Y1N1bmRheT15Zyx0LnV0Y1N1bmRheXM9QWcsdC51dGNNb25kYXk9X2csdC51dGNNb25kYXlzPVRnLHQudXRjVHVlc2RheT1iZyx0LnV0Y1R1ZXNkYXlzPU5nLHQudXRjV2VkbmVzZGF5PW1nLHQudXRjV2VkbmVzZGF5cz1TZyx0LnV0Y1RodXJzZGF5PXhnLHQudXRjVGh1cnNkYXlzPUVnLHQudXRjRnJpZGF5PXdnLHQudXRjRnJpZGF5cz1rZyx0LnV0Y1NhdHVyZGF5PU1nLHQudXRjU2F0dXJkYXlzPUNnLHQudXRjTW9udGg9UGcsdC51dGNNb250aHM9emcsdC51dGNZZWFyPVJnLHQudXRjWWVhcnM9RGcsdC50aW1lRm9ybWF0RGVmYXVsdExvY2FsZT1uZix0LnRpbWVGb3JtYXRMb2NhbGU9JGEsdC5pc29Gb3JtYXQ9RmcsdC5pc29QYXJzZT1JZyx0Lm5vdz13bix0LnRpbWVyPVRuLHQudGltZXJGbHVzaD1Obix0LnRpbWVvdXQ9Q24sdC5pbnRlcnZhbD1mdW5jdGlvbih0LG4sZSl7dmFyIHI9bmV3IEFuLGk9bjtyZXR1cm4gbnVsbD09bj8oci5yZXN0YXJ0KHQsbixlKSxyKToobj0rbixlPW51bGw9PWU/d24oKTorZSxyLnJlc3RhcnQoZnVuY3Rpb24gbyhhKXthKz1pLHIucmVzdGFydChvLGkrPW4sZSksdChhKX0sbixlKSxyKX0sdC50cmFuc2l0aW9uPVluLHQuYWN0aXZlPWZ1bmN0aW9uKHQsbil7dmFyIGUscixpPXQuX190cmFuc2l0aW9uO2lmKGkpe249bnVsbD09bj9udWxsOm4rXCJcIjtmb3IociBpbiBpKWlmKChlPWlbcl0pLnN0YXRlPkxsJiZlLm5hbWU9PT1uKXJldHVybiBuZXcgT24oW1t0XV0saGgsbiwrcil9cmV0dXJuIG51bGx9LHQuaW50ZXJydXB0PURuLHQudm9yb25vaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIG5ldyBCYyh0Lm1hcChmdW5jdGlvbihyLGkpe3ZhciBvPVtNYXRoLnJvdW5kKG4ocixpLHQpL2FiKSphYixNYXRoLnJvdW5kKGUocixpLHQpL2FiKSphYl07cmV0dXJuIG8uaW5kZXg9aSxvLmRhdGE9cixvfSkscil9dmFyIG49Z2MsZT15YyxyPW51bGw7cmV0dXJuIHQucG9seWdvbnM9ZnVuY3Rpb24obil7cmV0dXJuIHQobikucG9seWdvbnMoKX0sdC5saW5rcz1mdW5jdGlvbihuKXtyZXR1cm4gdChuKS5saW5rcygpfSx0LnRyaWFuZ2xlcz1mdW5jdGlvbihuKXtyZXR1cm4gdChuKS50cmlhbmdsZXMoKX0sdC54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTp2YygrZSksdCk6bn0sdC55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjp2YygrbiksdCk6ZX0sdC5leHRlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOltbK25bMF1bMF0sK25bMF1bMV1dLFsrblsxXVswXSwrblsxXVsxXV1dLHQpOnImJltbclswXVswXSxyWzBdWzFdXSxbclsxXVswXSxyWzFdWzFdXV19LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6W1swLDBdLFsrblswXSwrblsxXV1dLHQpOnImJltyWzFdWzBdLXJbMF1bMF0sclsxXVsxXS1yWzBdWzFdXX0sdH0sdC56b29tPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0LnByb3BlcnR5KFwiX196b29tXCIsJGMpLm9uKFwid2hlZWwuem9vbVwiLGYpLm9uKFwibW91c2Vkb3duLnpvb21cIixjKS5vbihcImRibGNsaWNrLnpvb21cIixzKS5maWx0ZXIobSkub24oXCJ0b3VjaHN0YXJ0Lnpvb21cIixsKS5vbihcInRvdWNobW92ZS56b29tXCIsaCkub24oXCJ0b3VjaGVuZC56b29tIHRvdWNoY2FuY2VsLnpvb21cIixkKS5zdHlsZShcInRvdWNoLWFjdGlvblwiLFwibm9uZVwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKX1mdW5jdGlvbiBlKHQsbil7cmV0dXJuKG49TWF0aC5tYXgoeFswXSxNYXRoLm1pbih4WzFdLG4pKSk9PT10Lms/dDpuZXcgSWMobix0LngsdC55KX1mdW5jdGlvbiByKHQsbixlKXt2YXIgcj1uWzBdLWVbMF0qdC5rLGk9blsxXS1lWzFdKnQuaztyZXR1cm4gcj09PXQueCYmaT09PXQueT90Om5ldyBJYyh0LmsscixpKX1mdW5jdGlvbiBpKHQpe3JldHVyblsoK3RbMF1bMF0rICt0WzFdWzBdKS8yLCgrdFswXVsxXSsgK3RbMV1bMV0pLzJdfWZ1bmN0aW9uIG8odCxuLGUpe3Qub24oXCJzdGFydC56b29tXCIsZnVuY3Rpb24oKXthKHRoaXMsYXJndW1lbnRzKS5zdGFydCgpfSkub24oXCJpbnRlcnJ1cHQuem9vbSBlbmQuem9vbVwiLGZ1bmN0aW9uKCl7YSh0aGlzLGFyZ3VtZW50cykuZW5kKCl9KS50d2VlbihcInpvb21cIixmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cyxyPWEodGhpcyx0KSxvPXkuYXBwbHkodGhpcyx0KSx1PWV8fGkobyksZj1NYXRoLm1heChvWzFdWzBdLW9bMF1bMF0sb1sxXVsxXS1vWzBdWzFdKSxjPXRoaXMuX196b29tLHM9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsdCk6bixsPUEoYy5pbnZlcnQodSkuY29uY2F0KGYvYy5rKSxzLmludmVydCh1KS5jb25jYXQoZi9zLmspKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYoMT09PXQpdD1zO2Vsc2V7dmFyIG49bCh0KSxlPWYvblsyXTt0PW5ldyBJYyhlLHVbMF0tblswXSplLHVbMV0tblsxXSplKX1yLnpvb20obnVsbCx0KX19KX1mdW5jdGlvbiBhKHQsbil7Zm9yKHZhciBlLHI9MCxpPVQubGVuZ3RoO3I8aTsrK3IpaWYoKGU9VFtyXSkudGhhdD09PXQpcmV0dXJuIGU7cmV0dXJuIG5ldyB1KHQsbil9ZnVuY3Rpb24gdSh0LG4pe3RoaXMudGhhdD10LHRoaXMuYXJncz1uLHRoaXMuaW5kZXg9LTEsdGhpcy5hY3RpdmU9MCx0aGlzLmV4dGVudD15LmFwcGx5KHQsbil9ZnVuY3Rpb24gZigpe2lmKGcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD1hKHRoaXMsYXJndW1lbnRzKSxuPXRoaXMuX196b29tLGk9TWF0aC5tYXgoeFswXSxNYXRoLm1pbih4WzFdLG4uaypNYXRoLnBvdygyLGIuYXBwbHkodGhpcyxhcmd1bWVudHMpKSkpLG89cHQodGhpcyk7aWYodC53aGVlbCl0Lm1vdXNlWzBdWzBdPT09b1swXSYmdC5tb3VzZVswXVsxXT09PW9bMV18fCh0Lm1vdXNlWzFdPW4uaW52ZXJ0KHQubW91c2VbMF09bykpLGNsZWFyVGltZW91dCh0LndoZWVsKTtlbHNle2lmKG4uaz09PWkpcmV0dXJuO3QubW91c2U9W28sbi5pbnZlcnQobyldLERuKHRoaXMpLHQuc3RhcnQoKX1YYygpLHQud2hlZWw9c2V0VGltZW91dChmdW5jdGlvbigpe3Qud2hlZWw9bnVsbCx0LmVuZCgpfSxrKSx0Lnpvb20oXCJtb3VzZVwiLF8ocihlKG4saSksdC5tb3VzZVswXSx0Lm1vdXNlWzFdKSx0LmV4dGVudCx3KSl9fWZ1bmN0aW9uIGMoKXtpZighdiYmZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuPWEodGhpcyxhcmd1bWVudHMpLGU9Y3QodC5ldmVudC52aWV3KS5vbihcIm1vdXNlbW92ZS56b29tXCIsZnVuY3Rpb24oKXtpZihYYygpLCFuLm1vdmVkKXt2YXIgZT10LmV2ZW50LmNsaWVudFgtbyxpPXQuZXZlbnQuY2xpZW50WS11O24ubW92ZWQ9ZSplK2kqaT5DfW4uem9vbShcIm1vdXNlXCIsXyhyKG4udGhhdC5fX3pvb20sbi5tb3VzZVswXT1wdChuLnRoYXQpLG4ubW91c2VbMV0pLG4uZXh0ZW50LHcpKX0sITApLm9uKFwibW91c2V1cC56b29tXCIsZnVuY3Rpb24oKXtlLm9uKFwibW91c2Vtb3ZlLnpvb20gbW91c2V1cC56b29tXCIsbnVsbCksYnQodC5ldmVudC52aWV3LG4ubW92ZWQpLFhjKCksbi5lbmQoKX0sITApLGk9cHQodGhpcyksbz10LmV2ZW50LmNsaWVudFgsdT10LmV2ZW50LmNsaWVudFk7X3QodC5ldmVudC52aWV3KSxIYygpLG4ubW91c2U9W2ksdGhpcy5fX3pvb20uaW52ZXJ0KGkpXSxEbih0aGlzKSxuLnN0YXJ0KCl9fWZ1bmN0aW9uIHMoKXtpZihnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGk9dGhpcy5fX3pvb20sYT1wdCh0aGlzKSx1PWkuaW52ZXJ0KGEpLGY9aS5rKih0LmV2ZW50LnNoaWZ0S2V5Py41OjIpLGM9XyhyKGUoaSxmKSxhLHUpLHkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHcpO1hjKCksTT4wP2N0KHRoaXMpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihNKS5jYWxsKG8sYyxhKTpjdCh0aGlzKS5jYWxsKG4udHJhbnNmb3JtLGMpfX1mdW5jdGlvbiBsKCl7aWYoZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuLGUscixpLG89YSh0aGlzLGFyZ3VtZW50cyksdT10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGY9dS5sZW5ndGg7Zm9yKEhjKCksZT0wO2U8ZjsrK2UpaT1baT12dCh0aGlzLHUsKHI9dVtlXSkuaWRlbnRpZmllciksdGhpcy5fX3pvb20uaW52ZXJ0KGkpLHIuaWRlbnRpZmllcl0sby50b3VjaDA/by50b3VjaDF8fChvLnRvdWNoMT1pKTooby50b3VjaDA9aSxuPSEwKTtpZihwJiYocD1jbGVhclRpbWVvdXQocCksIW8udG91Y2gxKSlyZXR1cm4gby5lbmQoKSx2b2lkKChpPWN0KHRoaXMpLm9uKFwiZGJsY2xpY2suem9vbVwiKSkmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKTtuJiYocD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cD1udWxsfSxFKSxEbih0aGlzKSxvLnN0YXJ0KCkpfX1mdW5jdGlvbiBoKCl7dmFyIG4saSxvLHUsZj1hKHRoaXMsYXJndW1lbnRzKSxjPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMscz1jLmxlbmd0aDtmb3IoWGMoKSxwJiYocD1jbGVhclRpbWVvdXQocCkpLG49MDtuPHM7KytuKW89dnQodGhpcyxjLChpPWNbbl0pLmlkZW50aWZpZXIpLGYudG91Y2gwJiZmLnRvdWNoMFsyXT09PWkuaWRlbnRpZmllcj9mLnRvdWNoMFswXT1vOmYudG91Y2gxJiZmLnRvdWNoMVsyXT09PWkuaWRlbnRpZmllciYmKGYudG91Y2gxWzBdPW8pO2lmKGk9Zi50aGF0Ll9fem9vbSxmLnRvdWNoMSl7dmFyIGw9Zi50b3VjaDBbMF0saD1mLnRvdWNoMFsxXSxkPWYudG91Y2gxWzBdLHY9Zi50b3VjaDFbMV0sZz0oZz1kWzBdLWxbMF0pKmcrKGc9ZFsxXS1sWzFdKSpnLHk9KHk9dlswXS1oWzBdKSp5Kyh5PXZbMV0taFsxXSkqeTtpPWUoaSxNYXRoLnNxcnQoZy95KSksbz1bKGxbMF0rZFswXSkvMiwobFsxXStkWzFdKS8yXSx1PVsoaFswXSt2WzBdKS8yLChoWzFdK3ZbMV0pLzJdfWVsc2V7aWYoIWYudG91Y2gwKXJldHVybjtvPWYudG91Y2gwWzBdLHU9Zi50b3VjaDBbMV19Zi56b29tKFwidG91Y2hcIixfKHIoaSxvLHUpLGYuZXh0ZW50LHcpKX1mdW5jdGlvbiBkKCl7dmFyIG4sZSxyPWEodGhpcyxhcmd1bWVudHMpLGk9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxvPWkubGVuZ3RoO2ZvcihIYygpLHYmJmNsZWFyVGltZW91dCh2KSx2PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PW51bGx9LEUpLG49MDtuPG87KytuKWU9aVtuXSxyLnRvdWNoMCYmci50b3VjaDBbMl09PT1lLmlkZW50aWZpZXI/ZGVsZXRlIHIudG91Y2gwOnIudG91Y2gxJiZyLnRvdWNoMVsyXT09PWUuaWRlbnRpZmllciYmZGVsZXRlIHIudG91Y2gxO3IudG91Y2gxJiYhci50b3VjaDAmJihyLnRvdWNoMD1yLnRvdWNoMSxkZWxldGUgci50b3VjaDEpLHIudG91Y2gwP3IudG91Y2gwWzFdPXRoaXMuX196b29tLmludmVydChyLnRvdWNoMFswXSk6ci5lbmQoKX12YXIgcCx2LGc9R2MseT1WYyxfPVFjLGI9V2MsbT1aYyx4PVswLDEvMF0sdz1bWy0xLzAsLTEvMF0sWzEvMCwxLzBdXSxNPTI1MCxBPV9uLFQ9W10sUz1OKFwic3RhcnRcIixcInpvb21cIixcImVuZFwiKSxFPTUwMCxrPTE1MCxDPTA7cmV0dXJuIG4udHJhbnNmb3JtPWZ1bmN0aW9uKHQsbil7dmFyIGU9dC5zZWxlY3Rpb24/dC5zZWxlY3Rpb24oKTp0O2UucHJvcGVydHkoXCJfX3pvb21cIiwkYyksdCE9PWU/byh0LG4pOmUuaW50ZXJydXB0KCkuZWFjaChmdW5jdGlvbigpe2EodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCkuem9vbShudWxsLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bikuZW5kKCl9KX0sbi5zY2FsZUJ5PWZ1bmN0aW9uKHQsZSl7bi5zY2FsZVRvKHQsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3pvb20uayooXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplKX0pfSxuLnNjYWxlVG89ZnVuY3Rpb24odCxvKXtuLnRyYW5zZm9ybSh0LGZ1bmN0aW9uKCl7dmFyIHQ9eS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxhPWkodCksdT1uLmludmVydChhKSxmPVwiZnVuY3Rpb25cIj09dHlwZW9mIG8/by5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bztyZXR1cm4gXyhyKGUobixmKSxhLHUpLHQsdyl9KX0sbi50cmFuc2xhdGVCeT1mdW5jdGlvbih0LGUscil7bi50cmFuc2Zvcm0odCxmdW5jdGlvbigpe3JldHVybiBfKHRoaXMuX196b29tLnRyYW5zbGF0ZShcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsXCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpyKSx5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3KX0pfSxuLnRyYW5zbGF0ZVRvPWZ1bmN0aW9uKHQsZSxyKXtuLnRyYW5zZm9ybSh0LGZ1bmN0aW9uKCl7dmFyIHQ9eS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxvPWkodCk7cmV0dXJuIF8oZmIudHJhbnNsYXRlKG9bMF0sb1sxXSkuc2NhbGUobi5rKS50cmFuc2xhdGUoXCJmdW5jdGlvblwiPT10eXBlb2YgZT8tZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LWUsXCJmdW5jdGlvblwiPT10eXBlb2Ygcj8tci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LXIpLHQsdyl9KX0sdS5wcm90b3R5cGU9e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLmluZGV4PVQucHVzaCh0aGlzKS0xLHRoaXMuZW1pdChcInN0YXJ0XCIpKSx0aGlzfSx6b29tOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMubW91c2UmJlwibW91c2VcIiE9PXQmJih0aGlzLm1vdXNlWzFdPW4uaW52ZXJ0KHRoaXMubW91c2VbMF0pKSx0aGlzLnRvdWNoMCYmXCJ0b3VjaFwiIT09dCYmKHRoaXMudG91Y2gwWzFdPW4uaW52ZXJ0KHRoaXMudG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJlwidG91Y2hcIiE9PXQmJih0aGlzLnRvdWNoMVsxXT1uLmludmVydCh0aGlzLnRvdWNoMVswXSkpLHRoaXMudGhhdC5fX3pvb209bix0aGlzLmVtaXQoXCJ6b29tXCIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoVC5zcGxpY2UodGhpcy5pbmRleCwxKSx0aGlzLmluZGV4PS0xLHRoaXMuZW1pdChcImVuZFwiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXtvdChuZXcgZnVuY3Rpb24odCxuLGUpe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPW4sdGhpcy50cmFuc2Zvcm09ZX0obix0LHRoaXMudGhhdC5fX3pvb20pLFMuYXBwbHksUyxbdCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxuLndoZWVsRGVsdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKCt0KSxuKTpifSxuLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoISF0KSxuKTpnfSxuLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoISF0KSxuKTptfSxuLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoW1srdFswXVswXSwrdFswXVsxXV0sWyt0WzFdWzBdLCt0WzFdWzFdXV0pLG4pOnl9LG4uc2NhbGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHhbMF09K3RbMF0seFsxXT0rdFsxXSxuKTpbeFswXSx4WzFdXX0sbi50cmFuc2xhdGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHdbMF1bMF09K3RbMF1bMF0sd1sxXVswXT0rdFsxXVswXSx3WzBdWzFdPSt0WzBdWzFdLHdbMV1bMV09K3RbMV1bMV0sbik6W1t3WzBdWzBdLHdbMF1bMV1dLFt3WzFdWzBdLHdbMV1bMV1dXX0sbi5jb25zdHJhaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89dCxuKTpffSxuLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPSt0LG4pOk19LG4uaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9dCxuKTpBfSxuLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Uy5vbi5hcHBseShTLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1TP246dH0sbi5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhDPSh0PSt0KSp0LG4pOk1hdGguc3FydChDKX0sbn0sdC56b29tVHJhbnNmb3JtPWpjLHQuem9vbUlkZW50aXR5PWZiLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSk7IiwiLyohXG4gKiBMaWdodGJveCBmb3IgQm9vdHN0cmFwIGJ5IEBhc2hsZXlkd1xuICogaHR0cHM6Ly9naXRodWIuY29tL2FzaGxleWR3L2xpZ2h0Ym94XG4gKlxuICogTGljZW5zZTogaHR0cHM6Ly9naXRodWIuY29tL2FzaGxleWR3L2xpZ2h0Ym94L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuK2Z1bmN0aW9uICgkKSB7XG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBMaWdodGJveCA9IChmdW5jdGlvbiAoJCkge1xuXG5cdHZhciBOQU1FID0gJ2Vra29MaWdodGJveCc7XG5cdHZhciBKUVVFUllfTk9fQ09ORkxJQ1QgPSAkLmZuW05BTUVdO1xuXG5cdHZhciBEZWZhdWx0ID0ge1xuXHRcdHRpdGxlOiAnJyxcblx0XHRmb290ZXI6ICcnLFxuXHRcdG1heFdpZHRoOiA5OTk5LFxuXHRcdG1heEhlaWdodDogOTk5OSxcblx0XHRzaG93QXJyb3dzOiB0cnVlLCAvL2Rpc3BsYXkgdGhlIGxlZnQgLyByaWdodCBhcnJvd3Mgb3Igbm90XG5cdFx0d3JhcHBpbmc6IHRydWUsIC8vaWYgdHJ1ZSwgZ2FsbGVyeSBsb29wcyBpbmZpbml0ZWx5XG5cdFx0dHlwZTogbnVsbCwgLy9mb3JjZSB0aGUgbGlnaHRib3ggaW50byBpbWFnZSAvIHlvdXR1YmUgbW9kZS4gaWYgbnVsbCwgb3Igbm90IGltYWdlfHlvdXR1YmV8dmltZW87IGRldGVjdCBpdFxuXHRcdGFsd2F5c1Nob3dDbG9zZTogZmFsc2UsIC8vYWx3YXlzIHNob3cgdGhlIGNsb3NlIGJ1dHRvbiwgZXZlbiBpZiB0aGVyZSBpcyBubyB0aXRsZVxuXHRcdGxvYWRpbmdNZXNzYWdlOiAnPGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtbG9hZGVyXCI+PGRpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PC9kaXY+JywgLy8gaHR0cDovL3RvYmlhc2FobGluLmNvbS9zcGlua2l0L1xuXHRcdGxlZnRBcnJvdzogJzxzcGFuPiYjMTAwOTQ7PC9zcGFuPicsXG5cdFx0cmlnaHRBcnJvdzogJzxzcGFuPiYjMTAwOTU7PC9zcGFuPicsXG5cdFx0c3RyaW5nczoge1xuXHRcdFx0Y2xvc2U6ICdDbG9zZScsXG5cdFx0XHRmYWlsOiAnRmFpbGVkIHRvIGxvYWQgaW1hZ2U6Jyxcblx0XHRcdHR5cGU6ICdDb3VsZCBub3QgZGV0ZWN0IHJlbW90ZSB0YXJnZXQgdHlwZS4gRm9yY2UgdGhlIHR5cGUgdXNpbmcgZGF0YS10eXBlJ1xuXHRcdH0sXG5cdFx0ZG9jOiBkb2N1bWVudCwgLy8gaWYgaW4gYW4gaWZyYW1lIGNhbiBzcGVjaWZ5IHRvcC5kb2N1bWVudFxuXHRcdG9uU2hvdzogZnVuY3Rpb24gb25TaG93KCkge30sXG5cdFx0b25TaG93bjogZnVuY3Rpb24gb25TaG93bigpIHt9LFxuXHRcdG9uSGlkZTogZnVuY3Rpb24gb25IaWRlKCkge30sXG5cdFx0b25IaWRkZW46IGZ1bmN0aW9uIG9uSGlkZGVuKCkge30sXG5cdFx0b25OYXZpZ2F0ZTogZnVuY3Rpb24gb25OYXZpZ2F0ZSgpIHt9LFxuXHRcdG9uQ29udGVudExvYWRlZDogZnVuY3Rpb24gb25Db250ZW50TG9hZGVkKCkge31cblx0fTtcblxuXHR2YXIgTGlnaHRib3ggPSAoZnVuY3Rpb24gKCkge1xuXHRcdF9jcmVhdGVDbGFzcyhMaWdodGJveCwgbnVsbCwgW3tcblx0XHRcdGtleTogJ0RlZmF1bHQnLFxuXG5cdFx0XHQvKipcbiAgICAgICBDbGFzcyBwcm9wZXJ0aWVzOlxuICAgXHQgXyRlbGVtZW50OiBudWxsIC0+IHRoZSA8YT4gZWxlbWVudCBjdXJyZW50bHkgYmVpbmcgZGlzcGxheWVkXG4gICAgXyRtb2RhbDogVGhlIGJvb3RzdHJhcCBtb2RhbCBnZW5lcmF0ZWRcbiAgICAgICBfJG1vZGFsRGlhbG9nOiBUaGUgLm1vZGFsLWRpYWxvZ1xuICAgICAgIF8kbW9kYWxDb250ZW50OiBUaGUgLm1vZGFsLWNvbnRlbnRcbiAgICAgICBfJG1vZGFsQm9keTogVGhlIC5tb2RhbC1ib2R5XG4gICAgICAgXyRtb2RhbEhlYWRlcjogVGhlIC5tb2RhbC1oZWFkZXJcbiAgICAgICBfJG1vZGFsRm9vdGVyOiBUaGUgLm1vZGFsLWZvb3RlclxuICAgIF8kbGlnaHRib3hDb250YWluZXJPbmU6IENvbnRhaW5lciBvZiB0aGUgZmlyc3QgbGlnaHRib3ggZWxlbWVudFxuICAgIF8kbGlnaHRib3hDb250YWluZXJUd286IENvbnRhaW5lciBvZiB0aGUgc2Vjb25kIGxpZ2h0Ym94IGVsZW1lbnRcbiAgICBfJGxpZ2h0Ym94Qm9keTogRmlyc3QgZWxlbWVudCBpbiB0aGUgY29udGFpbmVyXG4gICAgXyRtb2RhbEFycm93czogVGhlIG92ZXJsYXllZCBhcnJvd3MgY29udGFpbmVyXG4gICBcdCBfJGdhbGxlcnlJdGVtczogT3RoZXIgPGE+J3MgYXZhaWxhYmxlIGZvciB0aGlzIGdhbGxlcnlcbiAgICBfZ2FsbGVyeU5hbWU6IE5hbWUgb2YgdGhlIGN1cnJlbnQgZGF0YSgnZ2FsbGVyeScpIHNob3dpbmdcbiAgICBfZ2FsbGVyeUluZGV4OiBUaGUgY3VycmVudCBpbmRleCBvZiB0aGUgXyRnYWxsZXJ5SXRlbXMgYmVpbmcgc2hvd25cbiAgIFx0IF9jb25maWc6IHt9IHRoZSBvcHRpb25zIGZvciB0aGUgbW9kYWxcbiAgICBfbW9kYWxJZDogdW5pcXVlIGlkIGZvciB0aGUgY3VycmVudCBsaWdodGJveFxuICAgIF9wYWRkaW5nIC8gX2JvcmRlcjogQ1NTIHByb3BlcnRpZXMgZm9yIHRoZSBtb2RhbCBjb250YWluZXI7IHRoZXNlIGFyZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgYXZhaWxhYmxlIHNwYWNlIGZvciB0aGUgY29udGVudFxuICAgXHQgKi9cblxuXHRcdFx0Z2V0OiBmdW5jdGlvbiBnZXQoKSB7XG5cdFx0XHRcdHJldHVybiBEZWZhdWx0O1xuXHRcdFx0fVxuXHRcdH1dKTtcblxuXHRcdGZ1bmN0aW9uIExpZ2h0Ym94KCRlbGVtZW50LCBjb25maWcpIHtcblx0XHRcdHZhciBfdGhpcyA9IHRoaXM7XG5cblx0XHRcdF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaWdodGJveCk7XG5cblx0XHRcdHRoaXMuX2NvbmZpZyA9ICQuZXh0ZW5kKHt9LCBEZWZhdWx0LCBjb25maWcpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQXJyb3dzID0gbnVsbDtcblx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IDA7XG5cdFx0XHR0aGlzLl9nYWxsZXJ5TmFtZSA9IG51bGw7XG5cdFx0XHR0aGlzLl9wYWRkaW5nID0gbnVsbDtcblx0XHRcdHRoaXMuX2JvcmRlciA9IG51bGw7XG5cdFx0XHR0aGlzLl90aXRsZUlzU2hvd24gPSBmYWxzZTtcblx0XHRcdHRoaXMuX2Zvb3RlcklzU2hvd24gPSBmYWxzZTtcblx0XHRcdHRoaXMuX3dhbnRlZFdpZHRoID0gMDtcblx0XHRcdHRoaXMuX3dhbnRlZEhlaWdodCA9IDA7XG5cdFx0XHR0aGlzLl90b3VjaHN0YXJ0WCA9IDA7XG5cdFx0XHR0aGlzLl90b3VjaGVuZFggPSAwO1xuXG5cdFx0XHR0aGlzLl9tb2RhbElkID0gJ2Vra29MaWdodGJveC0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMCArIDEpO1xuXHRcdFx0dGhpcy5fJGVsZW1lbnQgPSAkZWxlbWVudCBpbnN0YW5jZW9mIGpRdWVyeSA/ICRlbGVtZW50IDogJCgkZWxlbWVudCk7XG5cblx0XHRcdHRoaXMuX2lzQm9vdHN0cmFwMyA9ICQuZm4ubW9kYWwuQ29uc3RydWN0b3IuVkVSU0lPTlswXSA9PSAzO1xuXG5cdFx0XHR2YXIgaDQgPSAnPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj4nICsgKHRoaXMuX2NvbmZpZy50aXRsZSB8fCBcIiZuYnNwO1wiKSArICc8L2g0Pic7XG5cdFx0XHR2YXIgYnRuID0gJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCInICsgdGhpcy5fY29uZmlnLnN0cmluZ3MuY2xvc2UgKyAnXCI+PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj48L2J1dHRvbj4nO1xuXG5cdFx0XHR2YXIgaGVhZGVyID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXInICsgKHRoaXMuX2NvbmZpZy50aXRsZSB8fCB0aGlzLl9jb25maWcuYWx3YXlzU2hvd0Nsb3NlID8gJycgOiAnIGhpZGUnKSArICdcIj4nICsgKHRoaXMuX2lzQm9vdHN0cmFwMyA/IGJ0biArIGg0IDogaDQgKyBidG4pICsgJzwvZGl2Pic7XG5cdFx0XHR2YXIgZm9vdGVyID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXInICsgKHRoaXMuX2NvbmZpZy5mb290ZXIgPyAnJyA6ICcgaGlkZScpICsgJ1wiPicgKyAodGhpcy5fY29uZmlnLmZvb3RlciB8fCBcIiZuYnNwO1wiKSArICc8L2Rpdj4nO1xuXHRcdFx0dmFyIGJvZHkgPSAnPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1jb250YWluZXJcIj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1pdGVtIGZhZGUgaW4gc2hvd1wiPjwvZGl2PjxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LWl0ZW0gZmFkZVwiPjwvZGl2PjwvZGl2PjwvZGl2Pic7XG5cdFx0XHR2YXIgZGlhbG9nID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiByb2xlPVwiZG9jdW1lbnRcIj48ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPicgKyBoZWFkZXIgKyBib2R5ICsgZm9vdGVyICsgJzwvZGl2PjwvZGl2Pic7XG5cdFx0XHQkKHRoaXMuX2NvbmZpZy5kb2MuYm9keSkuYXBwZW5kKCc8ZGl2IGlkPVwiJyArIHRoaXMuX21vZGFsSWQgKyAnXCIgY2xhc3M9XCJla2tvLWxpZ2h0Ym94IG1vZGFsIGZhZGVcIiB0YWJpbmRleD1cIi0xXCIgdGFiaW5kZXg9XCItMVwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4nICsgZGlhbG9nICsgJzwvZGl2PicpO1xuXG5cdFx0XHR0aGlzLl8kbW9kYWwgPSAkKCcjJyArIHRoaXMuX21vZGFsSWQsIHRoaXMuX2NvbmZpZy5kb2MpO1xuXHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1kaWFsb2cnKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQ29udGVudCA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtY29udGVudCcpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxCb2R5ID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1ib2R5JykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbEhlYWRlciA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtaGVhZGVyJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbEZvb3RlciA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtZm9vdGVyJykuZmlyc3QoKTtcblxuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyID0gdGhpcy5fJG1vZGFsQm9keS5maW5kKCcuZWtrby1saWdodGJveC1jb250YWluZXInKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Qm9keU9uZSA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCc+IGRpdjpmaXJzdC1jaGlsZCcpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbGlnaHRib3hCb2R5VHdvID0gdGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmZpbmQoJz4gZGl2Omxhc3QtY2hpbGQnKS5maXJzdCgpO1xuXG5cdFx0XHR0aGlzLl9ib3JkZXIgPSB0aGlzLl9jYWxjdWxhdGVCb3JkZXJzKCk7XG5cdFx0XHR0aGlzLl9wYWRkaW5nID0gdGhpcy5fY2FsY3VsYXRlUGFkZGluZygpO1xuXG5cdFx0XHR0aGlzLl9nYWxsZXJ5TmFtZSA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2dhbGxlcnknKTtcblx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5TmFtZSkge1xuXHRcdFx0XHR0aGlzLl8kZ2FsbGVyeUl0ZW1zID0gJChkb2N1bWVudC5ib2R5KS5maW5kKCcqW2RhdGEtZ2FsbGVyeT1cIicgKyB0aGlzLl9nYWxsZXJ5TmFtZSArICdcIl0nKTtcblx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4ID0gdGhpcy5fJGdhbGxlcnlJdGVtcy5pbmRleCh0aGlzLl8kZWxlbWVudCk7XG5cdFx0XHRcdCQoZG9jdW1lbnQpLm9uKCdrZXlkb3duLmVra29MaWdodGJveCcsIHRoaXMuX25hdmlnYXRpb25hbEJpbmRlci5iaW5kKHRoaXMpKTtcblxuXHRcdFx0XHQvLyBhZGQgdGhlIGRpcmVjdGlvbmFsIGFycm93cyB0byB0aGUgbW9kYWxcblx0XHRcdFx0aWYgKHRoaXMuX2NvbmZpZy5zaG93QXJyb3dzICYmIHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5hcHBlbmQoJzxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5XCI+PGEgaHJlZj1cIiNcIj4nICsgdGhpcy5fY29uZmlnLmxlZnRBcnJvdyArICc8L2E+PGEgaHJlZj1cIiNcIj4nICsgdGhpcy5fY29uZmlnLnJpZ2h0QXJyb3cgKyAnPC9hPjwvZGl2PicpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEFycm93cyA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCdkaXYuZWtrby1saWdodGJveC1uYXYtb3ZlcmxheScpLmZpcnN0KCk7XG5cdFx0XHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLm9uKCdjbGljaycsICdhOmZpcnN0LWNoaWxkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5vbignY2xpY2snLCAnYTpsYXN0LWNoaWxkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzLm5hdmlnYXRlUmlnaHQoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZU5hdmlnYXRpb24oKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLl8kbW9kYWwub24oJ3Nob3cuYnMubW9kYWwnLCB0aGlzLl9jb25maWcub25TaG93LmJpbmQodGhpcykpLm9uKCdzaG93bi5icy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0X3RoaXMuX3RvZ2dsZUxvYWRpbmcodHJ1ZSk7XG5cdFx0XHRcdF90aGlzLl9oYW5kbGUoKTtcblx0XHRcdFx0cmV0dXJuIF90aGlzLl9jb25maWcub25TaG93bi5jYWxsKF90aGlzKTtcblx0XHRcdH0pLm9uKCdoaWRlLmJzLm1vZGFsJywgdGhpcy5fY29uZmlnLm9uSGlkZS5iaW5kKHRoaXMpKS5vbignaGlkZGVuLmJzLm1vZGFsJywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRpZiAoX3RoaXMuX2dhbGxlcnlOYW1lKSB7XG5cdFx0XHRcdFx0JChkb2N1bWVudCkub2ZmKCdrZXlkb3duLmVra29MaWdodGJveCcpO1xuXHRcdFx0XHRcdCQod2luZG93KS5vZmYoJ3Jlc2l6ZS5la2tvTGlnaHRib3gnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRfdGhpcy5fJG1vZGFsLnJlbW92ZSgpO1xuXHRcdFx0XHRyZXR1cm4gX3RoaXMuX2NvbmZpZy5vbkhpZGRlbi5jYWxsKF90aGlzKTtcblx0XHRcdH0pLm1vZGFsKHRoaXMuX2NvbmZpZyk7XG5cblx0XHRcdCQod2luZG93KS5vbigncmVzaXplLmVra29MaWdodGJveCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0X3RoaXMuX3Jlc2l6ZShfdGhpcy5fd2FudGVkV2lkdGgsIF90aGlzLl93YW50ZWRIZWlnaHQpO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIub24oJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b3VjaHN0YXJ0WCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnNjcmVlblg7XG5cdFx0XHR9KS5vbigndG91Y2hlbmQnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b3VjaGVuZFggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5zY3JlZW5YO1xuXHRcdFx0XHRfdGhpcy5fc3dpcGVHZXN1cmUoKTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdF9jcmVhdGVDbGFzcyhMaWdodGJveCwgW3tcblx0XHRcdGtleTogJ2VsZW1lbnQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIGVsZW1lbnQoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kZWxlbWVudDtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdtb2RhbCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbW9kYWwoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kbW9kYWw7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbmF2aWdhdGVUbycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbmF2aWdhdGVUbyhpbmRleCkge1xuXG5cdFx0XHRcdGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDEpIHJldHVybiB0aGlzO1xuXG5cdFx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IGluZGV4O1xuXG5cdFx0XHRcdHRoaXMudXBkYXRlTmF2aWdhdGlvbigpO1xuXG5cdFx0XHRcdHRoaXMuXyRlbGVtZW50ID0gJCh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmdldCh0aGlzLl9nYWxsZXJ5SW5kZXgpKTtcblx0XHRcdFx0dGhpcy5faGFuZGxlKCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbmF2aWdhdGVMZWZ0Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBuYXZpZ2F0ZUxlZnQoKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID09PSAxKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gMCkge1xuXHRcdFx0XHRcdGlmICh0aGlzLl9jb25maWcud3JhcHBpbmcpIHRoaXMuX2dhbGxlcnlJbmRleCA9IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMTtlbHNlIHJldHVybjtcblx0XHRcdFx0fSBlbHNlIC8vY2lyY3VsYXJcblx0XHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXgtLTtcblxuXHRcdFx0XHR0aGlzLl9jb25maWcub25OYXZpZ2F0ZS5jYWxsKHRoaXMsICdsZWZ0JywgdGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdFx0cmV0dXJuIHRoaXMubmF2aWdhdGVUbyh0aGlzLl9nYWxsZXJ5SW5kZXgpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ25hdmlnYXRlUmlnaHQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG5hdmlnYXRlUmlnaHQoKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID09PSAxKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gdGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggLSAxKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX2NvbmZpZy53cmFwcGluZykgdGhpcy5fZ2FsbGVyeUluZGV4ID0gMDtlbHNlIHJldHVybjtcblx0XHRcdFx0fSBlbHNlIC8vY2lyY3VsYXJcblx0XHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXgrKztcblxuXHRcdFx0XHR0aGlzLl9jb25maWcub25OYXZpZ2F0ZS5jYWxsKHRoaXMsICdyaWdodCcsIHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlVG8odGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICd1cGRhdGVOYXZpZ2F0aW9uJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiB1cGRhdGVOYXZpZ2F0aW9uKCkge1xuXHRcdFx0XHRpZiAoIXRoaXMuX2NvbmZpZy53cmFwcGluZykge1xuXHRcdFx0XHRcdHZhciAkbmF2ID0gdGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmZpbmQoJ2Rpdi5la2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5Jyk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gMCkgJG5hdi5maW5kKCdhOmZpcnN0LWNoaWxkJykuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7ZWxzZSAkbmF2LmZpbmQoJ2E6Zmlyc3QtY2hpbGQnKS5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMSkgJG5hdi5maW5kKCdhOmxhc3QtY2hpbGQnKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtlbHNlICRuYXYuZmluZCgnYTpsYXN0LWNoaWxkJykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdjbG9zZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gY2xvc2UoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kbW9kYWwubW9kYWwoJ2hpZGUnKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gaGVscGVyIHByaXZhdGUgbWV0aG9kc1xuXHRcdH0sIHtcblx0XHRcdGtleTogJ19uYXZpZ2F0aW9uYWxCaW5kZXInLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9uYXZpZ2F0aW9uYWxCaW5kZXIoZXZlbnQpIHtcblx0XHRcdFx0ZXZlbnQgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7XG5cdFx0XHRcdGlmIChldmVudC5rZXlDb2RlID09PSAzOSkgcmV0dXJuIHRoaXMubmF2aWdhdGVSaWdodCgpO1xuXHRcdFx0XHRpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzcpIHJldHVybiB0aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB0eXBlIGRldGVjdGlvbiBwcml2YXRlIG1ldGhvZHNcblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZGV0ZWN0UmVtb3RlVHlwZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2RldGVjdFJlbW90ZVR5cGUoc3JjLCB0eXBlKSB7XG5cblx0XHRcdFx0dHlwZSA9IHR5cGUgfHwgZmFsc2U7XG5cblx0XHRcdFx0aWYgKCF0eXBlICYmIHRoaXMuX2lzSW1hZ2Uoc3JjKSkgdHlwZSA9ICdpbWFnZSc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRZb3V0dWJlSWQoc3JjKSkgdHlwZSA9ICd5b3V0dWJlJztcblx0XHRcdFx0aWYgKCF0eXBlICYmIHRoaXMuX2dldFZpbWVvSWQoc3JjKSkgdHlwZSA9ICd2aW1lbyc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRJbnN0YWdyYW1JZChzcmMpKSB0eXBlID0gJ2luc3RhZ3JhbSc7XG5cblx0XHRcdFx0aWYgKCF0eXBlIHx8IFsnaW1hZ2UnLCAneW91dHViZScsICd2aW1lbycsICdpbnN0YWdyYW0nLCAndmlkZW8nLCAndXJsJ10uaW5kZXhPZih0eXBlKSA8IDApIHR5cGUgPSAndXJsJztcblxuXHRcdFx0XHRyZXR1cm4gdHlwZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfaXNJbWFnZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2lzSW1hZ2Uoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLm1hdGNoKC8oXmRhdGE6aW1hZ2VcXC8uKiwpfChcXC4oanAoZXxnfGVnKXxnaWZ8cG5nfGJtcHx3ZWJwfHN2ZykoKFxcP3wjKS4qKT8kKS9pKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfY29udGFpbmVyVG9Vc2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9jb250YWluZXJUb1VzZSgpIHtcblx0XHRcdFx0dmFyIF90aGlzMiA9IHRoaXM7XG5cblx0XHRcdFx0Ly8gaWYgY3VycmVudGx5IHNob3dpbmcgYW4gaW1hZ2UsIGZhZGUgaXQgb3V0IGFuZCByZW1vdmVcblx0XHRcdFx0dmFyICR0b1VzZSA9IHRoaXMuXyRsaWdodGJveEJvZHlUd287XG5cdFx0XHRcdHZhciAkY3VycmVudCA9IHRoaXMuXyRsaWdodGJveEJvZHlPbmU7XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRsaWdodGJveEJvZHlUd28uaGFzQ2xhc3MoJ2luJykpIHtcblx0XHRcdFx0XHQkdG9Vc2UgPSB0aGlzLl8kbGlnaHRib3hCb2R5T25lO1xuXHRcdFx0XHRcdCRjdXJyZW50ID0gdGhpcy5fJGxpZ2h0Ym94Qm9keVR3bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCRjdXJyZW50LnJlbW92ZUNsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdGlmICghX3RoaXMyLl8kbGlnaHRib3hCb2R5VHdvLmhhc0NsYXNzKCdpbicpKSBfdGhpczIuXyRsaWdodGJveEJvZHlUd28uZW1wdHkoKTtcblx0XHRcdFx0XHRpZiAoIV90aGlzMi5fJGxpZ2h0Ym94Qm9keU9uZS5oYXNDbGFzcygnaW4nKSkgX3RoaXMyLl8kbGlnaHRib3hCb2R5T25lLmVtcHR5KCk7XG5cdFx0XHRcdH0sIDUwMCk7XG5cblx0XHRcdFx0JHRvVXNlLmFkZENsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdHJldHVybiAkdG9Vc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2hhbmRsZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2hhbmRsZSgpIHtcblxuXHRcdFx0XHR2YXIgJHRvVXNlID0gdGhpcy5fY29udGFpbmVyVG9Vc2UoKTtcblx0XHRcdFx0dGhpcy5fdXBkYXRlVGl0bGVBbmRGb290ZXIoKTtcblxuXHRcdFx0XHR2YXIgY3VycmVudFJlbW90ZSA9IHRoaXMuXyRlbGVtZW50LmF0dHIoJ2RhdGEtcmVtb3RlJykgfHwgdGhpcy5fJGVsZW1lbnQuYXR0cignaHJlZicpO1xuXHRcdFx0XHR2YXIgY3VycmVudFR5cGUgPSB0aGlzLl9kZXRlY3RSZW1vdGVUeXBlKGN1cnJlbnRSZW1vdGUsIHRoaXMuXyRlbGVtZW50LmF0dHIoJ2RhdGEtdHlwZScpIHx8IGZhbHNlKTtcblxuXHRcdFx0XHRpZiAoWydpbWFnZScsICd5b3V0dWJlJywgJ3ZpbWVvJywgJ2luc3RhZ3JhbScsICd2aWRlbycsICd1cmwnXS5pbmRleE9mKGN1cnJlbnRUeXBlKSA8IDApIHJldHVybiB0aGlzLl9lcnJvcih0aGlzLl9jb25maWcuc3RyaW5ncy50eXBlKTtcblxuXHRcdFx0XHRzd2l0Y2ggKGN1cnJlbnRUeXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSAnaW1hZ2UnOlxuXHRcdFx0XHRcdFx0dGhpcy5fcHJlbG9hZEltYWdlKGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9wcmVsb2FkSW1hZ2VCeUluZGV4KHRoaXMuX2dhbGxlcnlJbmRleCwgMyk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICd5b3V0dWJlJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dZb3V0dWJlVmlkZW8oY3VycmVudFJlbW90ZSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ3ZpbWVvJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dWaW1lb1ZpZGVvKHRoaXMuX2dldFZpbWVvSWQoY3VycmVudFJlbW90ZSksICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdpbnN0YWdyYW0nOlxuXHRcdFx0XHRcdFx0dGhpcy5fc2hvd0luc3RhZ3JhbVZpZGVvKHRoaXMuX2dldEluc3RhZ3JhbUlkKGN1cnJlbnRSZW1vdGUpLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAndmlkZW8nOlxuXHRcdFx0XHRcdFx0dGhpcy5fc2hvd0h0bWw1VmlkZW8oY3VycmVudFJlbW90ZSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHQvLyB1cmxcblx0XHRcdFx0XHRcdHRoaXMuX2xvYWRSZW1vdGVDb250ZW50KGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19nZXRZb3V0dWJlSWQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9nZXRZb3V0dWJlSWQoc3RyaW5nKSB7XG5cdFx0XHRcdGlmICghc3RyaW5nKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdHZhciBtYXRjaGVzID0gc3RyaW5nLm1hdGNoKC9eLiooeW91dHUuYmVcXC98dlxcL3x1XFwvXFx3XFwvfGVtYmVkXFwvfHdhdGNoXFw/dj18XFwmdj0pKFteI1xcJlxcP10qKS4qLyk7XG5cdFx0XHRcdHJldHVybiBtYXRjaGVzICYmIG1hdGNoZXNbMl0ubGVuZ3RoID09PSAxMSA/IG1hdGNoZXNbMl0gOiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZ2V0VmltZW9JZCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2dldFZpbWVvSWQoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLmluZGV4T2YoJ3ZpbWVvJykgPiAwID8gc3RyaW5nIDogZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2dldEluc3RhZ3JhbUlkJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZ2V0SW5zdGFncmFtSWQoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLmluZGV4T2YoJ2luc3RhZ3JhbScpID4gMCA/IHN0cmluZyA6IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBsYXlvdXQgcHJpdmF0ZSBtZXRob2RzXG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3RvZ2dsZUxvYWRpbmcnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF90b2dnbGVMb2FkaW5nKHNob3cpIHtcblx0XHRcdFx0c2hvdyA9IHNob3cgfHwgZmFsc2U7XG5cdFx0XHRcdGlmIChzaG93KSB7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsLnJlbW92ZUNsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdFx0JCgnLm1vZGFsLWJhY2tkcm9wJykuYXBwZW5kKHRoaXMuX2NvbmZpZy5sb2FkaW5nTWVzc2FnZSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZGlzcGxheScsICdibG9jaycpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbC5hZGRDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRcdCQoJy5tb2RhbC1iYWNrZHJvcCcpLmZpbmQoJy5la2tvLWxpZ2h0Ym94LWxvYWRlcicpLnJlbW92ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19jYWxjdWxhdGVCb3JkZXJzJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY2FsY3VsYXRlQm9yZGVycygpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0b3A6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci10b3Atd2lkdGgnKSxcblx0XHRcdFx0XHRyaWdodDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLXJpZ2h0LXdpZHRoJyksXG5cdFx0XHRcdFx0Ym90dG9tOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdib3JkZXItYm90dG9tLXdpZHRoJyksXG5cdFx0XHRcdFx0bGVmdDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLWxlZnQtd2lkdGgnKVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19jYWxjdWxhdGVQYWRkaW5nJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY2FsY3VsYXRlUGFkZGluZygpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0b3A6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctdG9wJyksXG5cdFx0XHRcdFx0cmlnaHQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctcmlnaHQnKSxcblx0XHRcdFx0XHRib3R0b206IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctYm90dG9tJyksXG5cdFx0XHRcdFx0bGVmdDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgncGFkZGluZy1sZWZ0Jylcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfdG90YWxDc3NCeUF0dHJpYnV0ZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoYXR0cmlidXRlKSB7XG5cdFx0XHRcdHJldHVybiBwYXJzZUludCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKGF0dHJpYnV0ZSksIDEwKSArIHBhcnNlSW50KHRoaXMuXyRtb2RhbENvbnRlbnQuY3NzKGF0dHJpYnV0ZSksIDEwKSArIHBhcnNlSW50KHRoaXMuXyRtb2RhbEJvZHkuY3NzKGF0dHJpYnV0ZSksIDEwKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfdXBkYXRlVGl0bGVBbmRGb290ZXInLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF91cGRhdGVUaXRsZUFuZEZvb3RlcigpIHtcblx0XHRcdFx0dmFyIHRpdGxlID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgndGl0bGUnKSB8fCBcIlwiO1xuXHRcdFx0XHR2YXIgY2FwdGlvbiA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2Zvb3RlcicpIHx8IFwiXCI7XG5cblx0XHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gZmFsc2U7XG5cdFx0XHRcdGlmICh0aXRsZSB8fCB0aGlzLl9jb25maWcuYWx3YXlzU2hvd0Nsb3NlKSB7XG5cdFx0XHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxIZWFkZXIuY3NzKCdkaXNwbGF5JywgJycpLmZpbmQoJy5tb2RhbC10aXRsZScpLmh0bWwodGl0bGUgfHwgXCImbmJzcDtcIik7XG5cdFx0XHRcdH0gZWxzZSB0aGlzLl8kbW9kYWxIZWFkZXIuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuXHRcdFx0XHR0aGlzLl9mb290ZXJJc1Nob3duID0gZmFsc2U7XG5cdFx0XHRcdGlmIChjYXB0aW9uKSB7XG5cdFx0XHRcdFx0dGhpcy5fZm9vdGVySXNTaG93biA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRm9vdGVyLmNzcygnZGlzcGxheScsICcnKS5odG1sKGNhcHRpb24pO1xuXHRcdFx0XHR9IGVsc2UgdGhpcy5fJG1vZGFsRm9vdGVyLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dZb3V0dWJlVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93WW91dHViZVZpZGVvKHJlbW90ZSwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIGlkID0gdGhpcy5fZ2V0WW91dHViZUlkKHJlbW90ZSk7XG5cdFx0XHRcdHZhciBxdWVyeSA9IHJlbW90ZS5pbmRleE9mKCcmJykgPiAwID8gcmVtb3RlLnN1YnN0cihyZW1vdGUuaW5kZXhPZignJicpKSA6ICcnO1xuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDU2MDtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2hlaWdodCcpIHx8IHdpZHRoIC8gKDU2MCAvIDMxNSk7XG5cdFx0XHRcdHJldHVybiB0aGlzLl9zaG93VmlkZW9JZnJhbWUoJy8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/YmFkZ2U9MCZhdXRvcGxheT0xJmh0bWw1PTEnICsgcXVlcnksIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd1ZpbWVvVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93VmltZW9WaWRlbyhpZCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1MDA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fc2hvd1ZpZGVvSWZyYW1lKGlkICsgJz9hdXRvcGxheT0xJywgd2lkdGgsIGhlaWdodCwgJGNvbnRhaW5lckZvckVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93SW5zdGFncmFtVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93SW5zdGFncmFtVmlkZW8oaWQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIGluc3RhZ3JhbSBsb2FkIHRoZWlyIGNvbnRlbnQgaW50byBpZnJhbWUncyBzbyB0aGlzIGNhbiBiZSBwdXQgc3RyYWlnaHQgaW50byB0aGUgZWxlbWVudFxuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDYxMjtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHdpZHRoICsgODA7XG5cdFx0XHRcdGlkID0gaWQuc3Vic3RyKC0xKSAhPT0gJy8nID8gaWQgKyAnLycgOiBpZDsgLy8gZW5zdXJlIGlkIGhhcyB0cmFpbGluZyBzbGFzaFxuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8aWZyYW1lIHdpZHRoPVwiJyArIHdpZHRoICsgJ1wiIGhlaWdodD1cIicgKyBoZWlnaHQgKyAnXCIgc3JjPVwiJyArIGlkICsgJ2VtYmVkL1wiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gc2hvd2luZyB2aWRlb1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXHRcdFx0XHR0aGlzLl90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dWaWRlb0lmcmFtZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Nob3dWaWRlb0lmcmFtZSh1cmwsIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIHNob3VsZCBiZSB1c2VkIGZvciB2aWRlb3Mgb25seS4gZm9yIHJlbW90ZSBjb250ZW50IHVzZSBsb2FkUmVtb3RlQ29udGVudCAoZGF0YS10eXBlPXVybClcblx0XHRcdFx0aGVpZ2h0ID0gaGVpZ2h0IHx8IHdpZHRoOyAvLyBkZWZhdWx0IHRvIHNxdWFyZVxuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8ZGl2IGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZC1yZXNwb25zaXZlLTE2Ynk5XCI+PGlmcmFtZSB3aWR0aD1cIicgKyB3aWR0aCArICdcIiBoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiIHNyYz1cIicgKyB1cmwgKyAnXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3dmdWxsc2NyZWVuIGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZS1pdGVtXCI+PC9pZnJhbWU+PC9kaXY+Jyk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSB0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsgLy9oaWRlIHRoZSBhcnJvd3Mgd2hlbiBzaG93aW5nIHZpZGVvXG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd0h0bWw1VmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93SHRtbDVWaWRlbyh1cmwsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIHNob3VsZCBiZSB1c2VkIGZvciB2aWRlb3Mgb25seS4gZm9yIHJlbW90ZSBjb250ZW50IHVzZSBsb2FkUmVtb3RlQ29udGVudCAoZGF0YS10eXBlPXVybClcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8ZGl2IGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZC1yZXNwb25zaXZlLTE2Ynk5XCI+PHZpZGVvIHdpZHRoPVwiJyArIHdpZHRoICsgJ1wiIGhlaWdodD1cIicgKyBoZWlnaHQgKyAnXCIgc3JjPVwiJyArIHVybCArICdcIiBwcmVsb2FkPVwiYXV0b1wiIGF1dG9wbGF5IGNvbnRyb2xzIGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZS1pdGVtXCI+PC92aWRlbz48L2Rpdj4nKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIHRoaXMuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOyAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHNob3dpbmcgdmlkZW9cblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19sb2FkUmVtb3RlQ29udGVudCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2xvYWRSZW1vdGVDb250ZW50KHVybCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIF90aGlzMyA9IHRoaXM7XG5cblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCA1NjA7XG5cblx0XHRcdFx0dmFyIGRpc2FibGVFeHRlcm5hbENoZWNrID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnZGlzYWJsZUV4dGVybmFsQ2hlY2snKSB8fCBmYWxzZTtcblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cblx0XHRcdFx0Ly8gZXh0ZXJuYWwgdXJscyBhcmUgbG9hZGluZyBpbnRvIGFuIGlmcmFtZVxuXHRcdFx0XHQvLyBsb2NhbCBhamF4IGNhbiBiZSBsb2FkZWQgaW50byB0aGUgY29udGFpbmVyIGl0c2VsZlxuXHRcdFx0XHRpZiAoIWRpc2FibGVFeHRlcm5hbENoZWNrICYmICF0aGlzLl9pc0V4dGVybmFsKHVybCkpIHtcblx0XHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5sb2FkKHVybCwgJC5wcm94eShmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXMzLl8kZWxlbWVudC50cmlnZ2VyKCdsb2FkZWQuYnMubW9kYWwnKTtsO1xuXHRcdFx0XHRcdH0pKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8aWZyYW1lIHNyYz1cIicgKyB1cmwgKyAnXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpO1xuXHRcdFx0XHRcdHRoaXMuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbCh0aGlzKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gcmVtb3RlIGNvbnRlbnRcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuXHRcdFx0XHR0aGlzLl9yZXNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19pc0V4dGVybmFsJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfaXNFeHRlcm5hbCh1cmwpIHtcblx0XHRcdFx0dmFyIG1hdGNoID0gdXJsLm1hdGNoKC9eKFteOlxcLz8jXSs6KT8oPzpcXC9cXC8oW15cXC8/I10qKSk/KFtePyNdKyk/KFxcP1teI10qKT8oIy4qKT8vKTtcblx0XHRcdFx0aWYgKHR5cGVvZiBtYXRjaFsxXSA9PT0gXCJzdHJpbmdcIiAmJiBtYXRjaFsxXS5sZW5ndGggPiAwICYmIG1hdGNoWzFdLnRvTG93ZXJDYXNlKCkgIT09IGxvY2F0aW9uLnByb3RvY29sKSByZXR1cm4gdHJ1ZTtcblxuXHRcdFx0XHRpZiAodHlwZW9mIG1hdGNoWzJdID09PSBcInN0cmluZ1wiICYmIG1hdGNoWzJdLmxlbmd0aCA+IDAgJiYgbWF0Y2hbMl0ucmVwbGFjZShuZXcgUmVnRXhwKCc6KCcgKyAoe1xuXHRcdFx0XHRcdFwiaHR0cDpcIjogODAsXG5cdFx0XHRcdFx0XCJodHRwczpcIjogNDQzXG5cdFx0XHRcdH0pW2xvY2F0aW9uLnByb3RvY29sXSArICcpPyQnKSwgXCJcIikgIT09IGxvY2F0aW9uLmhvc3QpIHJldHVybiB0cnVlO1xuXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZXJyb3InLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9lcnJvcihtZXNzYWdlKSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG5cdFx0XHRcdHRoaXMuX2NvbnRhaW5lclRvVXNlKCkuaHRtbChtZXNzYWdlKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKDMwMCwgMzAwKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3ByZWxvYWRJbWFnZUJ5SW5kZXgnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9wcmVsb2FkSW1hZ2VCeUluZGV4KHN0YXJ0SW5kZXgsIG51bWJlck9mVGltZXMpIHtcblxuXHRcdFx0XHRpZiAoIXRoaXMuXyRnYWxsZXJ5SXRlbXMpIHJldHVybjtcblxuXHRcdFx0XHR2YXIgbmV4dCA9ICQodGhpcy5fJGdhbGxlcnlJdGVtcy5nZXQoc3RhcnRJbmRleCksIGZhbHNlKTtcblx0XHRcdFx0aWYgKHR5cGVvZiBuZXh0ID09ICd1bmRlZmluZWQnKSByZXR1cm47XG5cblx0XHRcdFx0dmFyIHNyYyA9IG5leHQuYXR0cignZGF0YS1yZW1vdGUnKSB8fCBuZXh0LmF0dHIoJ2hyZWYnKTtcblx0XHRcdFx0aWYgKG5leHQuYXR0cignZGF0YS10eXBlJykgPT09ICdpbWFnZScgfHwgdGhpcy5faXNJbWFnZShzcmMpKSB0aGlzLl9wcmVsb2FkSW1hZ2Uoc3JjLCBmYWxzZSk7XG5cblx0XHRcdFx0aWYgKG51bWJlck9mVGltZXMgPiAwKSByZXR1cm4gdGhpcy5fcHJlbG9hZEltYWdlQnlJbmRleChzdGFydEluZGV4ICsgMSwgbnVtYmVyT2ZUaW1lcyAtIDEpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19wcmVsb2FkSW1hZ2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9wcmVsb2FkSW1hZ2Uoc3JjLCAkY29udGFpbmVyRm9ySW1hZ2UpIHtcblx0XHRcdFx0dmFyIF90aGlzNCA9IHRoaXM7XG5cblx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlID0gJGNvbnRhaW5lckZvckltYWdlIHx8IGZhbHNlO1xuXG5cdFx0XHRcdHZhciBpbWcgPSBuZXcgSW1hZ2UoKTtcblx0XHRcdFx0aWYgKCRjb250YWluZXJGb3JJbWFnZSkge1xuXHRcdFx0XHRcdChmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0XHRcdC8vIGlmIGxvYWRpbmcgdGFrZXMgPiAyMDBtcyBzaG93IGEgbG9hZGVyXG5cdFx0XHRcdFx0XHR2YXIgbG9hZGluZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlLmFwcGVuZChfdGhpczQuX2NvbmZpZy5sb2FkaW5nTWVzc2FnZSk7XG5cdFx0XHRcdFx0XHR9LCAyMDApO1xuXG5cdFx0XHRcdFx0XHRpbWcub25sb2FkID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRpZiAobG9hZGluZ1RpbWVvdXQpIGNsZWFyVGltZW91dChsb2FkaW5nVGltZW91dCk7XG5cdFx0XHRcdFx0XHRcdGxvYWRpbmdUaW1lb3V0ID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0dmFyIGltYWdlID0gJCgnPGltZyAvPicpO1xuXHRcdFx0XHRcdFx0XHRpbWFnZS5hdHRyKCdzcmMnLCBpbWcuc3JjKTtcblx0XHRcdFx0XHRcdFx0aW1hZ2UuYWRkQ2xhc3MoJ2ltZy1mbHVpZCcpO1xuXG5cdFx0XHRcdFx0XHRcdC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGJvb3RzdHJhcCB2M1xuXHRcdFx0XHRcdFx0XHRpbWFnZS5jc3MoJ3dpZHRoJywgJzEwMCUnKTtcblxuXHRcdFx0XHRcdFx0XHQkY29udGFpbmVyRm9ySW1hZ2UuaHRtbChpbWFnZSk7XG5cdFx0XHRcdFx0XHRcdGlmIChfdGhpczQuXyRtb2RhbEFycm93cykgX3RoaXM0Ll8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJycpOyAvLyByZW1vdmUgZGlzcGxheSB0byBkZWZhdWx0IHRvIGNzcyBwcm9wZXJ0eVxuXG5cdFx0XHRcdFx0XHRcdF90aGlzNC5fcmVzaXplKGltZy53aWR0aCwgaW1nLmhlaWdodCk7XG5cdFx0XHRcdFx0XHRcdF90aGlzNC5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBfdGhpczQuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbChfdGhpczQpO1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdGltZy5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRfdGhpczQuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXM0Ll9lcnJvcihfdGhpczQuX2NvbmZpZy5zdHJpbmdzLmZhaWwgKyAoJyAgJyArIHNyYykpO1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9KSgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aW1nLnNyYyA9IHNyYztcblx0XHRcdFx0cmV0dXJuIGltZztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc3dpcGVHZXN1cmUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zd2lwZUdlc3VyZSgpIHtcblx0XHRcdFx0aWYgKHRoaXMuX3RvdWNoZW5kWCA8IHRoaXMuX3RvdWNoc3RhcnRYKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMubmF2aWdhdGVSaWdodCgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLl90b3VjaGVuZFggPiB0aGlzLl90b3VjaHN0YXJ0WCkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Jlc2l6ZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KSB7XG5cblx0XHRcdFx0aGVpZ2h0ID0gaGVpZ2h0IHx8IHdpZHRoO1xuXHRcdFx0XHR0aGlzLl93YW50ZWRXaWR0aCA9IHdpZHRoO1xuXHRcdFx0XHR0aGlzLl93YW50ZWRIZWlnaHQgPSBoZWlnaHQ7XG5cblx0XHRcdFx0dmFyIGltYWdlQXNwZWNSYXRpbyA9IHdpZHRoIC8gaGVpZ2h0O1xuXG5cdFx0XHRcdC8vIGlmIHdpZHRoID4gdGhlIGF2YWlsYWJsZSBzcGFjZSwgc2NhbGUgZG93biB0aGUgZXhwZWN0ZWQgd2lkdGggYW5kIGhlaWdodFxuXHRcdFx0XHR2YXIgd2lkdGhCb3JkZXJBbmRQYWRkaW5nID0gdGhpcy5fcGFkZGluZy5sZWZ0ICsgdGhpcy5fcGFkZGluZy5yaWdodCArIHRoaXMuX2JvcmRlci5sZWZ0ICsgdGhpcy5fYm9yZGVyLnJpZ2h0O1xuXG5cdFx0XHRcdC8vIGZvcmNlIDEwcHggbWFyZ2luIGlmIHdpbmRvdyBzaXplID4gNTc1cHhcblx0XHRcdFx0dmFyIGFkZE1hcmdpbiA9IHRoaXMuX2NvbmZpZy5kb2MuYm9keS5jbGllbnRXaWR0aCA+IDU3NSA/IDIwIDogMDtcblx0XHRcdFx0dmFyIGRpc2NvdW50TWFyZ2luID0gdGhpcy5fY29uZmlnLmRvYy5ib2R5LmNsaWVudFdpZHRoID4gNTc1ID8gMCA6IDIwO1xuXG5cdFx0XHRcdHZhciBtYXhXaWR0aCA9IE1hdGgubWluKHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nLCB0aGlzLl9jb25maWcuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBhZGRNYXJnaW4sIHRoaXMuX2NvbmZpZy5tYXhXaWR0aCk7XG5cblx0XHRcdFx0aWYgKHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nID4gbWF4V2lkdGgpIHtcblx0XHRcdFx0XHRoZWlnaHQgPSAobWF4V2lkdGggLSB3aWR0aEJvcmRlckFuZFBhZGRpbmcgLSBkaXNjb3VudE1hcmdpbikgLyBpbWFnZUFzcGVjUmF0aW87XG5cdFx0XHRcdFx0d2lkdGggPSBtYXhXaWR0aDtcblx0XHRcdFx0fSBlbHNlIHdpZHRoID0gd2lkdGggKyB3aWR0aEJvcmRlckFuZFBhZGRpbmc7XG5cblx0XHRcdFx0dmFyIGhlYWRlckhlaWdodCA9IDAsXG5cdFx0XHRcdCAgICBmb290ZXJIZWlnaHQgPSAwO1xuXG5cdFx0XHRcdC8vIGFzIHRoZSByZXNpemUgaXMgcGVyZm9ybWVkIHRoZSBtb2RhbCBpcyBzaG93LCB0aGUgY2FsY3VsYXRlIG1pZ2h0IGZhaWxcblx0XHRcdFx0Ly8gaWYgc28sIGRlZmF1bHQgdG8gdGhlIGRlZmF1bHQgc2l6ZXNcblx0XHRcdFx0aWYgKHRoaXMuX2Zvb3RlcklzU2hvd24pIGZvb3RlckhlaWdodCA9IHRoaXMuXyRtb2RhbEZvb3Rlci5vdXRlckhlaWdodCh0cnVlKSB8fCA1NTtcblxuXHRcdFx0XHRpZiAodGhpcy5fdGl0bGVJc1Nob3duKSBoZWFkZXJIZWlnaHQgPSB0aGlzLl8kbW9kYWxIZWFkZXIub3V0ZXJIZWlnaHQodHJ1ZSkgfHwgNjc7XG5cblx0XHRcdFx0dmFyIGJvcmRlclBhZGRpbmcgPSB0aGlzLl9wYWRkaW5nLnRvcCArIHRoaXMuX3BhZGRpbmcuYm90dG9tICsgdGhpcy5fYm9yZGVyLmJvdHRvbSArIHRoaXMuX2JvcmRlci50b3A7XG5cblx0XHRcdFx0Ly9jYWxjdWxhdGVkIGVhY2ggdGltZSBhcyByZXNpemluZyB0aGUgd2luZG93IGNhbiBjYXVzZSB0aGVtIHRvIGNoYW5nZSBkdWUgdG8gQm9vdHN0cmFwcyBmbHVpZCBtYXJnaW5zXG5cdFx0XHRcdHZhciBtYXJnaW5zID0gcGFyc2VGbG9hdCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdtYXJnaW4tdG9wJykpICsgcGFyc2VGbG9hdCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdtYXJnaW4tYm90dG9tJykpO1xuXG5cdFx0XHRcdHZhciBtYXhIZWlnaHQgPSBNYXRoLm1pbihoZWlnaHQsICQod2luZG93KS5oZWlnaHQoKSAtIGJvcmRlclBhZGRpbmcgLSBtYXJnaW5zIC0gaGVhZGVySGVpZ2h0IC0gZm9vdGVySGVpZ2h0LCB0aGlzLl9jb25maWcubWF4SGVpZ2h0IC0gYm9yZGVyUGFkZGluZyAtIGhlYWRlckhlaWdodCAtIGZvb3RlckhlaWdodCk7XG5cblx0XHRcdFx0aWYgKGhlaWdodCA+IG1heEhlaWdodCkge1xuXHRcdFx0XHRcdC8vIGlmIGhlaWdodCA+IHRoZSBhdmFpbGFibGUgaGVpZ2h0LCBzY2FsZSBkb3duIHRoZSB3aWR0aFxuXHRcdFx0XHRcdHdpZHRoID0gTWF0aC5jZWlsKG1heEhlaWdodCAqIGltYWdlQXNwZWNSYXRpbykgKyB3aWR0aEJvcmRlckFuZFBhZGRpbmc7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIuY3NzKCdoZWlnaHQnLCBtYXhIZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdmbGV4JywgMSkuY3NzKCdtYXhXaWR0aCcsIHdpZHRoKTtcblxuXHRcdFx0XHR2YXIgbW9kYWwgPSB0aGlzLl8kbW9kYWwuZGF0YSgnYnMubW9kYWwnKTtcblx0XHRcdFx0aWYgKG1vZGFsKSB7XG5cdFx0XHRcdFx0Ly8gdjQgbWV0aG9kIGlzIG1pc3Rha2VubHkgcHJvdGVjdGVkXG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdG1vZGFsLl9oYW5kbGVVcGRhdGUoKTtcblx0XHRcdFx0XHR9IGNhdGNoIChFeGNlcHRpb24pIHtcblx0XHRcdFx0XHRcdG1vZGFsLmhhbmRsZVVwZGF0ZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9XSwgW3tcblx0XHRcdGtleTogJ19qUXVlcnlJbnRlcmZhY2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9qUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG5cdFx0XHRcdHZhciBfdGhpczUgPSB0aGlzO1xuXG5cdFx0XHRcdGNvbmZpZyA9IGNvbmZpZyB8fCB7fTtcblx0XHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dmFyICR0aGlzID0gJChfdGhpczUpO1xuXHRcdFx0XHRcdHZhciBfY29uZmlnID0gJC5leHRlbmQoe30sIExpZ2h0Ym94LkRlZmF1bHQsICR0aGlzLmRhdGEoKSwgdHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcgJiYgY29uZmlnKTtcblxuXHRcdFx0XHRcdG5ldyBMaWdodGJveChfdGhpczUsIF9jb25maWcpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XSk7XG5cblx0XHRyZXR1cm4gTGlnaHRib3g7XG5cdH0pKCk7XG5cblx0JC5mbltOQU1FXSA9IExpZ2h0Ym94Ll9qUXVlcnlJbnRlcmZhY2U7XG5cdCQuZm5bTkFNRV0uQ29uc3RydWN0b3IgPSBMaWdodGJveDtcblx0JC5mbltOQU1FXS5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xuXHRcdCQuZm5bTkFNRV0gPSBKUVVFUllfTk9fQ09ORkxJQ1Q7XG5cdFx0cmV0dXJuIExpZ2h0Ym94Ll9qUXVlcnlJbnRlcmZhY2U7XG5cdH07XG5cblx0cmV0dXJuIExpZ2h0Ym94O1xufSkoalF1ZXJ5KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVra28tbGlnaHRib3guanMubWFwXG5cbn0oalF1ZXJ5KTtcbiIsIiIsIlxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG5cdHZhciBwcmV2aW91cyA9IFwiIFwiO1xuICAgICQoXCIjaW1hZ2VfZ2FsbGVyeVwiKS5jbGljayhmdW5jdGlvbihldmVudCkge1xuICAgICAgICB2YXIgaWRfbmFtZSA9IGV2ZW50LnRhcmdldC5pZDtcbiAgICAgICAgaWRfbmFtZSA9IGlkX25hbWUucmVwbGFjZSgvWzAtOV0vZywgJycpOyAvL3JlZ2V4IGZvciBhbHBoYWJldHMsIG5vIG51bWJlcnNcbiAgICAgICAgdmFyIGlkX3RvZ2dsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkX25hbWUpOyAvL2dldCBJRCBvZiBuYW1lcyB1bmRlciBjbGFzcyBcInRlYW0tYmlvXCJcbiAgICAgICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRfbmFtZSkpeyAvL2lmIElEIGV4aXN0c1xuXHRcdFx0aWYoKHByZXZpb3VzICE9IGlkX25hbWUpICYmIChwcmV2aW91cyAhPSBcIiBcIikpeyAvL2lmIHlvdSBjbGljayBhIGRpZmYgaW1hZ2Vcblx0XHRcdFx0dmFyIGlkX3ByZXZpb3VzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlvdXMpO1xuXHRcdFx0XHQkKGlkX3ByZXZpb3VzKS50b2dnbGUoXCJoaWRkZW5cIik7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGlkX3ByZXZpb3VzKTtcblxuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZihwcmV2aW91cyA9PSBpZF9uYW1lKXsgLy9jbGlja2luZyBvbiB0aGUgc2FtZSBpbWFnZVxuXHRcdFx0XHQkKGlkX3RvZ2dsZSkudG9nZ2xlKFwidW5oaWRkZW5cIik7XG5cdFx0XHR9XG5cdFx0XHQkKGlkX3RvZ2dsZSkudG9nZ2xlKFwidW5oaWRkZW5cIik7IC8vdG9nZ2xlcyB0eHRib3ggdG8gYXBwZWFyXG4gICAgICAgIFx0IHByZXZpb3VzID0gaWRfbmFtZTsvL2NoZWNrcyB0byBzZWUgaWYgeW91IGNsaWNrZWQgZGlmZmVyZW50IGltYWdlc1xuICAgICAgICB9XG4gICAgICAgIGVsc2V7XG4gICAgICAgIFx0YWxlcnQoXCJUaGlzIHBlcnNvbiBkb2VzIG5vdCBleGlzdC4gVHJ5IGFnYWluLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcbn0pOyIsIihmdW5jdGlvbigkKSB7XHJcblxyXG4gICAgJC5mbi52aXNpYmxlID0gZnVuY3Rpb24oKSB7XHJcblxyXG4gICAgICAgIHZhciAkdCAgICAgICAgICAgID0gJCh0aGlzKSxcclxuICAgICAgICAgICAgJHcgICAgICAgICAgICA9ICQod2luZG93KSxcclxuICAgICAgICAgICAgd2luZG93SGVpZ2h0ICA9IHdpbmRvdy5pbm5lckhlaWdodCxcclxuICAgICAgICAgICAgd2luZG93VG9wICAgICA9ICR3LnNjcm9sbFRvcCgpLFxyXG4gICAgICAgICAgICB3aW5kb3dCb3R0b20gID0gd2luZG93VG9wICsgd2luZG93SGVpZ2h0LFxyXG4gICAgICAgICAgICBfaGVpZ2h0ICAgICAgID0gJHQub3V0ZXJIZWlnaHQoKSxcclxuICAgICAgICAgICAgX3RvcCAgICAgICAgICA9ICR0Lm9mZnNldCgpLnRvcCxcclxuICAgICAgICAgICAgX2JvdHRvbSAgICAgICA9IF90b3AgKyBfaGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gKChfYm90dG9tID49IHdpbmRvd1RvcCkgJiYgKF90b3AgPD0gd2luZG93Qm90dG9tKSk7XHJcbiAgICB9O1xyXG5cclxufSkoalF1ZXJ5KTtcclxuXHJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuXHJcbiAgICAkKHdpbmRvdykub24oXCJzY3JvbGxcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwICYmICEkKFwiLm5hdmJhclwiKS5oYXNDbGFzcyhcImZpeGVkXCIpKSB7XHJcbiAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmFkZENsYXNzKFwiZml4ZWRcIikuYWRkQ2xhc3MoXCJmaXhlZC10b3BcIikuYW5pbWF0ZSh7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDE1LFxyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMVxyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpIDw9IDUwKSB7XHJcbiAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmNzcyhcInRvcFwiLCBcIlwiKS5yZW1vdmVDbGFzcyhcImZpeGVkXCIpLnJlbW92ZUNsYXNzKFwiZml4ZWQtdG9wXCIpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgLy9vbiBvciBzY3JvbGwsIGRldGVjdCBlbGVtZW50cyBpbiB2aWV3XHJcbiAgICAkKHdpbmRvdykub24oJ3Njcm9sbCByZXNpemUnLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAkKCcuZmx5LWluJykuZWFjaChmdW5jdGlvbiAoaSwgdmFsKSB7XHJcbiAgICAgICAgICAgIGlmKCQodmFsKS52aXNpYmxlKCkpe1xyXG4gICAgICAgICAgICAgICAgJCh2YWwpLmFkZENsYXNzKFwiY29tZS1pblwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9KTtcclxuICAgIC8vdHJpZ2dlciBvdXIgc2Nyb2xsIGV2ZW50IG9uIGluaXRpYWwgbG9hZFxyXG4gICAgJCh3aW5kb3cpLnRyaWdnZXIoJ3Njcm9sbCcpO1xyXG5cclxuXHJcbn0pO1xyXG5cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xyXG5cclxuXHJcbiAgICBsZXQgd2lkdGhQb2wgPSAxOTIwLFxyXG4gICAgICAgIGhlaWdodFBvbCA9IDEwMDtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJQb2x5ID0gW1xyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aFBvbCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aFBvbCwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBsZXQgd2lkdGhJbWdPdmVybGF5ID0gMTkyMCxcclxuICAgICAgICBoZWlnaHRJbWdPdmVybGF5ID0gMTAwO1xyXG5cclxuXHJcbiAgICBjb25zdCBpbWFnZVBvbHlUb3AgPSBbXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IGltYWdlUG9seUJvdHRvbSA9IFtcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhJbWdPdmVybGF5LCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgXTtcclxuXHJcblxyXG4gICAgbGV0IGltZ0hlYWRlckhvbGRlciA9IGQzLnNlbGVjdChcImJvZHlcIikuc2VsZWN0KFwiI2JvdHRvbS1sYW5kaW5nLW92ZXJsYXlcIikuc2VsZWN0KCcjbGFuZGluZy1zdmcnKVxyXG4gICAgICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGhQb2wpXHJcbiAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0UG9sKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhkMy5zZWxlY3QoXCJib2R5XCIpKTtcclxuXHJcbiAgICBsZXQgaW1nQm90dG9tSG9sZGVyID0gZDMuc2VsZWN0KFwiYm9keVwiKS5zZWxlY3RBbGwoXCIuc3ZnLWltYWdlLW92ZXJsYXktYm90dG9tXCIpXHJcbiAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aEltZ092ZXJsYXkpXHJcbiAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0SW1nT3ZlcmxheSk7XHJcblxyXG5cclxuICAgIGxldCBpbWdUb3BIb2xkZXIgPSBkMy5zZWxlY3QoXCJib2R5XCIpLnNlbGVjdEFsbChcIi5zdmctaW1hZ2Utb3ZlcmxheS10b3BcIilcclxuICAgICAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoSW1nT3ZlcmxheSlcclxuICAgICAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHRJbWdPdmVybGF5KTtcclxuXHJcbiAgICBjcmVhdGVQb2x5Z29uKGhlYWRlclBvbHksIHdpZHRoUG9sLCBoZWlnaHRQb2wsIGltZ0hlYWRlckhvbGRlcik7XHJcbiAgICBjcmVhdGVQb2x5Z29uKGltYWdlUG9seUJvdHRvbSwgd2lkdGhJbWdPdmVybGF5LCBoZWlnaHRJbWdPdmVybGF5LCBpbWdCb3R0b21Ib2xkZXIpO1xyXG4gICAgY3JlYXRlUG9seWdvbihpbWFnZVBvbHlUb3AsIHdpZHRoSW1nT3ZlcmxheSwgaGVpZ2h0SW1nT3ZlcmxheSwgaW1nVG9wSG9sZGVyKTtcclxuXHJcblxyXG4gICAgZnVuY3Rpb24gY3JlYXRlUG9seWdvbihwb2x5Z29uLCB3aWR0aCwgaGVpZ2h0LCB2aXMpIHtcclxuXHJcbiAgICAgICAgbGV0IHN2ZyA9IHZpcy5zZWxlY3RBbGwoXCJwYXRoXCIpLmRhdGEoW3BvbHlnb25dKTtcclxuXHJcbiAgICAgICAgc3ZnLmV4aXQoKS5yZW1vdmUoKTtcclxuXHJcbiAgICAgICAgbGV0IGxpbmVGdW5jdGlvbiA9IGQzLmxpbmUoKVxyXG4gICAgICAgICAgICAueChmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGQueFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAueShmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGQueVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc3ZnLmVudGVyKCkuYXBwZW5kKFwicGF0aFwiKVxyXG4gICAgICAgICAgICAuYXR0cihcImRcIiwgbGluZUZ1bmN0aW9uKHBvbHlnb24pKVxyXG4gICAgICAgICAgICAuYXR0cihcImZpbGxcIiwgXCIjZmZmXCIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdG9nZ2xlPVwibGlnaHRib3hcIl0nLCBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgJCh0aGlzKS5la2tvTGlnaHRib3goe1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICAkKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkKCdbZGF0YS10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBJbnN0YW50aWF0ZSB0aGUgQm9vdHN0cmFwIGNhcm91c2VsXHJcbiAgICAkKCcjdGhlQ2Fyb3VzZWwnKS5jYXJvdXNlbCh7XHJcbiAgICAgICAgaW50ZXJ2YWw6IGZhbHNlXHJcbiAgICB9KTtcclxuXHJcbi8vIGZvciBldmVyeSBzbGlkZSBpbiBjYXJvdXNlbCwgY29weSB0aGUgbmV4dCBzbGlkZSdzIGl0ZW0gaW4gdGhlIHNsaWRlLlxyXG4vLyBEbyB0aGUgc2FtZSBmb3IgdGhlIG5leHQsIG5leHQgaXRlbS5cclxuICAgICQoJyN0aGVDYXJvdXNlbCAuaXRlbScpLmVhY2goZnVuY3Rpb24oKXtcclxuICAgICAgICB2YXIgbmV4dCA9ICQodGhpcykubmV4dCgpO1xyXG4gICAgICAgIGlmICghbmV4dC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbmV4dCA9ICQodGhpcykuc2libGluZ3MoJzpmaXJzdCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBuZXh0LmNoaWxkcmVuKCc6Zmlyc3QtY2hpbGQnKS5jbG9uZSgpLmFwcGVuZFRvKCQodGhpcykpO1xyXG5cclxuICAgICAgICBpZiAobmV4dC5uZXh0KCkubGVuZ3RoPjApIHtcclxuICAgICAgICAgICAgbmV4dC5uZXh0KCkuY2hpbGRyZW4oJzpmaXJzdC1jaGlsZCcpLmNsb25lKCkuYXBwZW5kVG8oJCh0aGlzKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJCh0aGlzKS5zaWJsaW5ncygnOmZpcnN0JykuY2hpbGRyZW4oJzpmaXJzdC1jaGlsZCcpLmNsb25lKCkuYXBwZW5kVG8oJCh0aGlzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG59KTsiLCIkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG5cbiAgICBsZXQgZHVyYXRpb24gPSA3NTA7XG5cbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCgnLnNwaW5uZXInKS5lYWNoKGZ1bmN0aW9uIChrLHYpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICQodikuZmFkZUluKGR1cmF0aW9uKS5jc3MoXCJkaXNwbGF5XCIsIFwiZmxleFwiKTtcbiAgICAgICAgICAgICAgICAkKHtkZWc6IDB9KS5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgZGVnOiAzNjBcbiAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXA6IGZ1bmN0aW9uIChub3csIGZ4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHYpLmNzcyh7XCJ0cmFuc2Zvcm1cIjogXCJyb3RhdGVZKFwiICsgbm93ICsgXCJkZWcpXCJ9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICdsaW5lYXInLFxuICAgICAgICAgICAgICAgICAgICBxdWV1ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAnbGluZWFyJyk7XG4gICAgICAgICAgICB9LCBrICogZHVyYXRpb24qMi8zKTtcbiAgICAgICAgfSlcbiAgICB9LCAyMDApO1xuXG4gICAgJChcIi5tYWluLWJhY2tncm91bmRcIikub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoJy5zcGlubmVyJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKHRoaXMpLmZhZGVJbigpLmNzcyhcImRpc3BsYXlcIiwgXCJmbGV4XCIpO1xuICAgICAgICB9KVxuICAgIH0pXG5cbn0pOyIsImxldCBtb2RlbEluaXREYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLFxuICAgICAgICByb2ZmOiAwLFxuICAgICAgICByb246IDBcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAsXG4gICAgICAgIGdmcDogMC41MDMzMDgsXG4gICAgICAgIHJvZmY6IDAuMDA1MTEzLFxuICAgICAgICByb246IDAuNDIzOTAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMCxcbiAgICAgICAgZ2ZwOiAwLjY5MDU4MSxcbiAgICAgICAgcm9mZjogMC4wMDQ5MTM2LFxuICAgICAgICByb246IDAuNzkyODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MCxcbiAgICAgICAgZ2ZwOiAwLjc2NzU4NixcbiAgICAgICAgcm9mZjogMC4wMDQ3MTYzNyxcbiAgICAgICAgcm9uOiAwLjg4OTIwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAsXG4gICAgICAgIGdmcDogMC44MDM0MyxcbiAgICAgICAgcm9mZjogMC4wMDQ1MzQ4NSxcbiAgICAgICAgcm9uOiAwLjg3MzEyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAsXG4gICAgICAgIGdmcDogMC44MjM1MTYsXG4gICAgICAgIHJvZmY6IDAuMDA0MzY0ODgsXG4gICAgICAgIHJvbjogMC44NDcyODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwLFxuICAgICAgICBnZnA6IDAuODM3MzEzLFxuICAgICAgICByb2ZmOiAwLjAwNDIwNDQ5LFxuICAgICAgICByb246IDAuODI0ODA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MCxcbiAgICAgICAgZ2ZwOiAwLjg0ODM2MSxcbiAgICAgICAgcm9mZjogMC4wMDQwNTI2NixcbiAgICAgICAgcm9uOiAwLjgwODAyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAsXG4gICAgICAgIGdmcDogMC44NTgsXG4gICAgICAgIHJvZmY6IDAuMDAzOTA4NTksXG4gICAgICAgIHJvbjogMC43OTY2NDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwLFxuICAgICAgICBnZnA6IDAuODY2NzU2LFxuICAgICAgICByb2ZmOiAwLjAwMzc3MTU3LFxuICAgICAgICByb246IDAuNzg5NTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMCxcbiAgICAgICAgZ2ZwOiAwLjg3NDg1MSxcbiAgICAgICAgcm9mZjogMC4wMDM2NDEwMixcbiAgICAgICAgcm9uOiAwLjc4NTUzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAsXG4gICAgICAgIGdmcDogMC44ODIzOTMsXG4gICAgICAgIHJvZmY6IDAuMDAzNTE2NDcsXG4gICAgICAgIHJvbjogMC43ODM1NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwLFxuICAgICAgICBnZnA6IDAuODg5NDQyLFxuICAgICAgICByb2ZmOiAwLjAwMzM5NzUzLFxuICAgICAgICByb246IDAuNzgyOTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MCxcbiAgICAgICAgZ2ZwOiAwLjg5NjAzOSxcbiAgICAgICAgcm9mZjogMC4wMDMyODM4OCxcbiAgICAgICAgcm9uOiAwLjc4MzAxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAsXG4gICAgICAgIGdmcDogMC45MDIyMTQsXG4gICAgICAgIHJvZmY6IDAuMDAzMTc1MjUsXG4gICAgICAgIHJvbjogMC43ODM1MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwLFxuICAgICAgICBnZnA6IDAuOTA3OTk2LFxuICAgICAgICByb2ZmOiAwLjAwMzA3MTQsXG4gICAgICAgIHJvbjogMC43ODQyNzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwLFxuICAgICAgICBnZnA6IDAuOTEzNDA3LFxuICAgICAgICByb2ZmOiAwLjAwMjk3MjExLFxuICAgICAgICByb246IDAuNzg1MTAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MCxcbiAgICAgICAgZ2ZwOiAwLjkxODQ2OSxcbiAgICAgICAgcm9mZjogMC4wMDI4NzcxNyxcbiAgICAgICAgcm9uOiAwLjc4NTk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMCxcbiAgICAgICAgZ2ZwOiAwLjkyMzIwNSxcbiAgICAgICAgcm9mZjogMC4wMDI3ODYzOCxcbiAgICAgICAgcm9uOiAwLjc4Njc3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAsXG4gICAgICAgIGdmcDogMC45Mjc2MzMsXG4gICAgICAgIHJvZmY6IDAuMDAyNjk5NTcsXG4gICAgICAgIHJvbjogMC43ODc1NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjkzMTc3MixcbiAgICAgICAgcm9mZjogMC4wMDI2MTY1NyxcbiAgICAgICAgcm9uOiAwLjc4ODMxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwLFxuICAgICAgICBnZnA6IDAuOTM1NjQxLFxuICAgICAgICByb2ZmOiAwLjAwMjUzNzIsXG4gICAgICAgIHJvbjogMC43ODkwMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjkzOTI1NixcbiAgICAgICAgcm9mZjogMC4wMDI0NjEzMSxcbiAgICAgICAgcm9uOiAwLjc4OTY2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwLFxuICAgICAgICBnZnA6IDAuOTQyNjM0LFxuICAgICAgICByb2ZmOiAwLjAwMjM4ODc1LFxuICAgICAgICByb246IDAuNzkwMjc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAsXG4gICAgICAgIGdmcDogMC45NDU3ODksXG4gICAgICAgIHJvZmY6IDAuMDAyMzE5MzcsXG4gICAgICAgIHJvbjogMC43OTA4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk0ODczNixcbiAgICAgICAgcm9mZjogMC4wMDIyNTMwNCxcbiAgICAgICAgcm9uOiAwLjc5MTM2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwLFxuICAgICAgICBnZnA6IDAuOTUxNDg5LFxuICAgICAgICByb2ZmOiAwLjAwMjE4OTYyLFxuICAgICAgICByb246IDAuNzkxODQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAsXG4gICAgICAgIGdmcDogMC45NTQwNjEsXG4gICAgICAgIHJvZmY6IDAuMDAyMTI4OTgsXG4gICAgICAgIHJvbjogMC43OTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDAsXG4gICAgICAgIGdmcDogMC45NTY0NjQsXG4gICAgICAgIHJvZmY6IDAuMDAyMDcxMDEsXG4gICAgICAgIHJvbjogMC43OTI3MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk1ODcwOSxcbiAgICAgICAgcm9mZjogMC4wMDIwMTU1OSxcbiAgICAgICAgcm9uOiAwLjc5MzExMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwLFxuICAgICAgICBnZnA6IDAuOTYwODA3LFxuICAgICAgICByb2ZmOiAwLjAwMTk2MjYsXG4gICAgICAgIHJvbjogMC43OTM0NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk2Mjc2OCxcbiAgICAgICAgcm9mZjogMC4wMDE5MTE5NCxcbiAgICAgICAgcm9uOiAwLjc5MzgxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwLFxuICAgICAgICBnZnA6IDAuOTY0NjAxLFxuICAgICAgICByb2ZmOiAwLjAwMTg2MzUxLFxuICAgICAgICByb246IDAuNzk0MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk2NjMxNCxcbiAgICAgICAgcm9mZjogMC4wMDE4MTcyMSxcbiAgICAgICAgcm9uOiAwLjc5NDQyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwLFxuICAgICAgICBnZnA6IDAuOTY3OTE3LFxuICAgICAgICByb2ZmOiAwLjAwMTc3Mjk1LFxuICAgICAgICByb246IDAuNzk0Njk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAsXG4gICAgICAgIGdmcDogMC45Njk0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAxNzMwNjMsXG4gICAgICAgIHJvbjogMC43OTQ5NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MDgxOSxcbiAgICAgICAgcm9mZjogMC4wMDE2OTAxOCxcbiAgICAgICAgcm9uOiAwLjc5NTE5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODUwLFxuICAgICAgICBnZnA6IDAuOTcyMTMyLFxuICAgICAgICByb2ZmOiAwLjAwMTY1MTUxLFxuICAgICAgICByb246IDAuNzk1NDE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAsXG4gICAgICAgIGdmcDogMC45NzMzNjEsXG4gICAgICAgIHJvZmY6IDAuMDAxNjE0NTQsXG4gICAgICAgIHJvbjogMC43OTU2MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NDUxMixcbiAgICAgICAgcm9mZjogMC4wMDE1NzkyMSxcbiAgICAgICAgcm9uOiAwLjc5NTgxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAwLFxuICAgICAgICBnZnA6IDAuOTc1NTkxLFxuICAgICAgICByb2ZmOiAwLjAwMTU0NTQyLFxuICAgICAgICByb246IDAuNzk1OTk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAsXG4gICAgICAgIGdmcDogMC45NzY2MDIsXG4gICAgICAgIHJvZmY6IDAuMDAxNTEzMTMsXG4gICAgICAgIHJvbjogMC43OTYxNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NzU0OSxcbiAgICAgICAgcm9mZjogMC4wMDE0ODIyNixcbiAgICAgICAgcm9uOiAwLjc5NjMyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwLFxuICAgICAgICBnZnA6IDAuOTc4NDM4LFxuICAgICAgICByb2ZmOiAwLjAwMTQ1Mjc1LFxuICAgICAgICByb246IDAuNzk2NDc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAsXG4gICAgICAgIGdmcDogMC45NzkyNzIsXG4gICAgICAgIHJvZmY6IDAuMDAxNDI0NTQsXG4gICAgICAgIHJvbjogMC43OTY2MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk4MDA1NSxcbiAgICAgICAgcm9mZjogMC4wMDEzOTc1NyxcbiAgICAgICAgcm9uOiAwLjc5Njc0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwLFxuICAgICAgICBnZnA6IDAuOTgwNzksXG4gICAgICAgIHJvZmY6IDAuMDAxMzcxNzksXG4gICAgICAgIHJvbjogMC43OTY4NjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk4MTQ4MSxcbiAgICAgICAgcm9mZjogMC4wMDEzNDcxNSxcbiAgICAgICAgcm9uOiAwLjc5Njk4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwLFxuICAgICAgICBnZnA6IDAuOTgyMTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMzIzNixcbiAgICAgICAgcm9uOiAwLjc5NzA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAsXG4gICAgICAgIGdmcDogMC45ODI3NCxcbiAgICAgICAgcm9mZjogMC4wMDEzMDEwOSxcbiAgICAgICAgcm9uOiAwLjc5NzE5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAwLFxuICAgICAgICBnZnA6IDAuOTgzMzE0LFxuICAgICAgICByb2ZmOiAwLjAwMTI3OTU3LFxuICAgICAgICByb246IDAuNzk3Mjg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAsXG4gICAgICAgIGdmcDogMC45ODM4NTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMjU4OTksXG4gICAgICAgIHJvbjogMC43OTczNzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NDM2MixcbiAgICAgICAgcm9mZjogMC4wMDEyMzkzMyxcbiAgICAgICAgcm9uOiAwLjc5NzQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAsXG4gICAgICAgIGdmcDogMC45ODQ4NCxcbiAgICAgICAgcm9mZjogMC4wMDEyMjA1MyxcbiAgICAgICAgcm9uOiAwLjc5NzUzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzAwLFxuICAgICAgICBnZnA6IDAuOTg1MjkxLFxuICAgICAgICByb2ZmOiAwLjAwMTIwMjU3LFxuICAgICAgICByb246IDAuNzk3NjEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3NTAsXG4gICAgICAgIGdmcDogMC45ODU3MTUsXG4gICAgICAgIHJvZmY6IDAuMDAxMTg1MzksXG4gICAgICAgIHJvbjogMC43OTc2ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NjExNixcbiAgICAgICAgcm9mZjogMC4wMDExNjg5OCxcbiAgICAgICAgcm9uOiAwLjc5Nzc0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODUwLFxuICAgICAgICBnZnA6IDAuOTg2NDkzLFxuICAgICAgICByb2ZmOiAwLjAwMTE1MzI5LFxuICAgICAgICByb246IDAuNzk3ODExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5MDAsXG4gICAgICAgIGdmcDogMC45ODY4NSxcbiAgICAgICAgcm9mZjogMC4wMDExMzgyOSxcbiAgICAgICAgcm9uOiAwLjc5Nzg2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTUwLFxuICAgICAgICBnZnA6IDAuOTg3MTg2LFxuICAgICAgICByb2ZmOiAwLjAwMTEyMzk1LFxuICAgICAgICByb246IDAuNzk3OTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMDAsXG4gICAgICAgIGdmcDogMC45ODc1MDMsXG4gICAgICAgIHJvZmY6IDAuMDAxMTEwMjUsXG4gICAgICAgIHJvbjogMC43OTc5NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NzgwMyxcbiAgICAgICAgcm9mZjogMC4wMDEwOTcxNSxcbiAgICAgICAgcm9uOiAwLjc5ODAyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTAwLFxuICAgICAgICBnZnA6IDAuOTg4MDg3LFxuICAgICAgICByb2ZmOiAwLjAwMTA4NDYzLFxuICAgICAgICByb246IDAuNzk4MDcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxNTAsXG4gICAgICAgIGdmcDogMC45ODgzNTQsXG4gICAgICAgIHJvZmY6IDAuMDAxMDcyNjcsXG4gICAgICAgIHJvbjogMC43OTgxMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk4ODYwOCxcbiAgICAgICAgcm9mZjogMC4wMDEwNjEyMyxcbiAgICAgICAgcm9uOiAwLjc5ODE1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjUwLFxuICAgICAgICBnZnA6IDAuOTg4ODQ3LFxuICAgICAgICByb2ZmOiAwLjAwMTA1MDMsXG4gICAgICAgIHJvbjogMC43OTgxOTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTA3NCxcbiAgICAgICAgcm9mZjogMC4wMDEwMzk4NSxcbiAgICAgICAgcm9uOiAwLjc5ODIzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzUwLFxuICAgICAgICBnZnA6IDAuOTg5Mjg5LFxuICAgICAgICByb2ZmOiAwLjAwMTAyOTg2LFxuICAgICAgICByb246IDAuNzk4MjY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0MDAsXG4gICAgICAgIGdmcDogMC45ODk0OTIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDIwMzEsXG4gICAgICAgIHJvbjogMC43OTgzMDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk4OTY4NCxcbiAgICAgICAgcm9mZjogMC4wMDEwMTExOSxcbiAgICAgICAgcm9uOiAwLjc5ODMzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAwLFxuICAgICAgICBnZnA6IDAuOTg5ODY2LFxuICAgICAgICByb2ZmOiAwLjAwMTAwMjQ3LFxuICAgICAgICByb246IDAuNzk4MzY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1NTAsXG4gICAgICAgIGdmcDogMC45OTAwMzksXG4gICAgICAgIHJvZmY6IDAuMDAwOTk0MTMsXG4gICAgICAgIHJvbjogMC43OTgzOTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDIwMyxcbiAgICAgICAgcm9mZjogMC4wMDA5ODYxNjIsXG4gICAgICAgIHJvbjogMC43OTg0MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDM1OCxcbiAgICAgICAgcm9mZjogMC4wMDA5Nzg1NDYsXG4gICAgICAgIHJvbjogMC43OTg0NDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDUwNixcbiAgICAgICAgcm9mZjogMC4wMDA5NzEyNjYsXG4gICAgICAgIHJvbjogMC43OTg0NjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDY0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5NjQzMDgsXG4gICAgICAgIHJvbjogMC43OTg0OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDc3OCxcbiAgICAgICAgcm9mZjogMC4wMDA5NTc2NTcsXG4gICAgICAgIHJvbjogMC43OTg1MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDkwNCxcbiAgICAgICAgcm9mZjogMC4wMDA5NTEzLFxuICAgICAgICByb246IDAuNzk4NTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5MDAsXG4gICAgICAgIGdmcDogMC45OTEwMjQsXG4gICAgICAgIHJvZmY6IDAuMDAwOTQ1MjI0LFxuICAgICAgICByb246IDAuNzk4NTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5NTAsXG4gICAgICAgIGdmcDogMC45OTExMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwOTM5NDE3LFxuICAgICAgICByb246IDAuNzk4NTcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMDAsXG4gICAgICAgIGdmcDogMC45OTEyNDUsXG4gICAgICAgIHJvZmY6IDAuMDAwOTMzODY2LFxuICAgICAgICByb246IDAuNzk4NTg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwNTAsXG4gICAgICAgIGdmcDogMC45OTEzNDgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTI4NTYxLFxuICAgICAgICByb246IDAuNzk4NjA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxMDAsXG4gICAgICAgIGdmcDogMC45OTE0NDUsXG4gICAgICAgIHJvZmY6IDAuMDAwOTIzNDksXG4gICAgICAgIHJvbjogMC43OTg2MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTUzOCxcbiAgICAgICAgcm9mZjogMC4wMDA5MTg2NDMsXG4gICAgICAgIHJvbjogMC43OTg2MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTYyNixcbiAgICAgICAgcm9mZjogMC4wMDA5MTQwMTEsXG4gICAgICAgIHJvbjogMC43OTg2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjUwLFxuICAgICAgICBnZnA6IDAuOTkxNzEsXG4gICAgICAgIHJvZmY6IDAuMDAwOTA5NTgzLFxuICAgICAgICByb246IDAuNzk4NjY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzMDAsXG4gICAgICAgIGdmcDogMC45OTE3ODksXG4gICAgICAgIHJvZmY6IDAuMDAwOTA1MzUxLFxuICAgICAgICByb246IDAuNzk4Njc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzNTAsXG4gICAgICAgIGdmcDogMC45OTE4NjUsXG4gICAgICAgIHJvZmY6IDAuMDAwOTAxMzA2LFxuICAgICAgICByb246IDAuNzk4Njg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0MDAsXG4gICAgICAgIGdmcDogMC45OTE5MzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODk3NDQsXG4gICAgICAgIHJvbjogMC43OTg3MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjAwNixcbiAgICAgICAgcm9mZjogMC4wMDA4OTM3NDUsXG4gICAgICAgIHJvbjogMC43OTg3MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjA3MSxcbiAgICAgICAgcm9mZjogMC4wMDA4OTAyMTMsXG4gICAgICAgIHJvbjogMC43OTg3MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjEzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4ODY4MzcsXG4gICAgICAgIHJvbjogMC43OTg3MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjE5MyxcbiAgICAgICAgcm9mZjogMC4wMDA4ODM2MSxcbiAgICAgICAgcm9uOiAwLjc5ODc0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjUwLFxuICAgICAgICBnZnA6IDAuOTkyMjQ5LFxuICAgICAgICByb2ZmOiAwLjAwMDg4MDUyNixcbiAgICAgICAgcm9uOiAwLjc5ODc1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzAwLFxuICAgICAgICBnZnA6IDAuOTkyMzAzLFxuICAgICAgICByb2ZmOiAwLjAwMDg3NzU3OSxcbiAgICAgICAgcm9uOiAwLjc5ODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3NTAsXG4gICAgICAgIGdmcDogMC45OTIzNTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODc0NzYxLFxuICAgICAgICByb246IDAuNzk4NzY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4MDAsXG4gICAgICAgIGdmcDogMC45OTI0MDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODcyMDY5LFxuICAgICAgICByb246IDAuNzk4Nzc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4NTAsXG4gICAgICAgIGdmcDogMC45OTI0NDksXG4gICAgICAgIHJvZmY6IDAuMDAwODY5NDk1LFxuICAgICAgICByb246IDAuNzk4Nzg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5MDAsXG4gICAgICAgIGdmcDogMC45OTI0OTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODY3MDM1LFxuICAgICAgICByb246IDAuNzk4NzkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5NTAsXG4gICAgICAgIGdmcDogMC45OTI1MzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODY0Njg0LFxuICAgICAgICByb246IDAuNzk4Nzk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMDAsXG4gICAgICAgIGdmcDogMC45OTI1NzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODYyNDM3LFxuICAgICAgICByb246IDAuNzk4ODA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwNTAsXG4gICAgICAgIGdmcDogMC45OTI2MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODYwMjksXG4gICAgICAgIHJvbjogMC43OTg4MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjY1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTgyMzcsXG4gICAgICAgIHJvbjogMC43OTg4MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjY4NixcbiAgICAgICAgcm9mZjogMC4wMDA4NTYyNzUsXG4gICAgICAgIHJvbjogMC43OTg4MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjcxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTQ0LFxuICAgICAgICByb246IDAuNzk4ODI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyNTAsXG4gICAgICAgIGdmcDogMC45OTI3NTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODUyNjA3LFxuICAgICAgICByb246IDAuNzk4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzMDAsXG4gICAgICAgIGdmcDogMC45OTI3ODEsXG4gICAgICAgIHJvZmY6IDAuMDAwODUwODk0LFxuICAgICAgICByb246IDAuNzk4ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzNTAsXG4gICAgICAgIGdmcDogMC45OTI4MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NDkyNTcsXG4gICAgICAgIHJvbjogMC43OTg4NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgzOCxcbiAgICAgICAgcm9mZjogMC4wMDA4NDc2OTIsXG4gICAgICAgIHJvbjogMC43OTg4NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjg2NCxcbiAgICAgICAgcm9mZjogMC4wMDA4NDYxOTYsXG4gICAgICAgIHJvbjogMC43OTg4NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjg4OSxcbiAgICAgICAgcm9mZjogMC4wMDA4NDQ3NjYsXG4gICAgICAgIHJvbjogMC43OTg4NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjkxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4NDMzOTksXG4gICAgICAgIHJvbjogMC43OTg4NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjkzNixcbiAgICAgICAgcm9mZjogMC4wMDA4NDIwOTMsXG4gICAgICAgIHJvbjogMC43OTg4NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk1NyxcbiAgICAgICAgcm9mZjogMC4wMDA4NDA4NDUsXG4gICAgICAgIHJvbjogMC43OTg4NjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk3OCxcbiAgICAgICAgcm9mZjogMC4wMDA4Mzk2NTIsXG4gICAgICAgIHJvbjogMC43OTg4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzUwLFxuICAgICAgICBnZnA6IDAuOTkyOTk4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzODUxMixcbiAgICAgICAgcm9uOiAwLjc5ODg3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNzQyMixcbiAgICAgICAgcm9uOiAwLjc5ODg3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMDM1LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNjM4LFxuICAgICAgICByb246IDAuNzk4ODc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5MDAsXG4gICAgICAgIGdmcDogMC45OTMwNTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODM1Mzg1LFxuICAgICAgICByb246IDAuNzk4ODgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5NTAsXG4gICAgICAgIGdmcDogMC45OTMwNjksXG4gICAgICAgIHJvZmY6IDAuMDAwODM0NDMzLFxuICAgICAgICByb246IDAuNzk4ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMDAsXG4gICAgICAgIGdmcDogMC45OTMwODQsXG4gICAgICAgIHJvZmY6IDAuMDAwODMzNTI0LFxuICAgICAgICByb246IDAuNzk4ODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwNTAsXG4gICAgICAgIGdmcDogMC45OTMwOTksXG4gICAgICAgIHJvZmY6IDAuMDAwODMyNjU0LFxuICAgICAgICByb246IDAuNzk4ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzExNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzE4MjQsXG4gICAgICAgIHJvbjogMC43OTg4OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzEyNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MzEwMyxcbiAgICAgICAgcm9uOiAwLjc5ODg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODMwMjcxLFxuICAgICAgICByb246IDAuNzk4ODk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyNTAsXG4gICAgICAgIGdmcDogMC45OTMxNTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODI5NTQ1LFxuICAgICAgICByb246IDAuNzk4ODk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzMDAsXG4gICAgICAgIGdmcDogMC45OTMxNjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI4ODUyLFxuICAgICAgICByb246IDAuNzk4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMTc2LFxuICAgICAgICByb2ZmOiAwLjAwMDgyODE4OSxcbiAgICAgICAgcm9uOiAwLjc5ODkwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMTg3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNzU1NSxcbiAgICAgICAgcm9uOiAwLjc5ODkwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMTk3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNjk1LFxuICAgICAgICByb246IDAuNzk4OTA2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MDAsXG4gICAgICAgIGdmcDogMC45OTMyMDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI2MzcxLFxuICAgICAgICByb246IDAuNzk4OTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1NTAsXG4gICAgICAgIGdmcDogMC45OTMyMTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI1ODE4LFxuICAgICAgICByb246IDAuNzk4OTA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2MDAsXG4gICAgICAgIGdmcDogMC45OTMyMjYsXG4gICAgICAgIHJvZmY6IDAuMDAwODI1Mjg5LFxuICAgICAgICByb246IDAuNzk4OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIzNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjQ3ODMsXG4gICAgICAgIHJvbjogMC43OTg5MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI0MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjQzLFxuICAgICAgICByb246IDAuNzk4OTEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3NTAsXG4gICAgICAgIGdmcDogMC45OTMyNTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIzODM5LFxuICAgICAgICByb246IDAuNzk4OTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4MDAsXG4gICAgICAgIGdmcDogMC45OTMyNTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODIzMzk4LFxuICAgICAgICByb246IDAuNzk4OTE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4NTAsXG4gICAgICAgIGdmcDogMC45OTMyNjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODIyOTc2LFxuICAgICAgICByb246IDAuNzk4OTE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5MDAsXG4gICAgICAgIGdmcDogMC45OTMyNzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODIyNTczLFxuICAgICAgICByb246IDAuNzk4OTE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5NTAsXG4gICAgICAgIGdmcDogMC45OTMyNzksXG4gICAgICAgIHJvZmY6IDAuMDAwODIyMTg4LFxuICAgICAgICByb246IDAuNzk4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMDAsXG4gICAgICAgIGdmcDogMC45OTMyODUsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxODIsXG4gICAgICAgIHJvbjogMC43OTg5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMjkxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTQ2OCxcbiAgICAgICAgcm9uOiAwLjc5ODkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMjk3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTEzMixcbiAgICAgICAgcm9uOiAwLjc5ODkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzAyLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDgxLFxuICAgICAgICByb246IDAuNzk4OTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyMDAsXG4gICAgICAgIGdmcDogMC45OTMzMDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwNTAzLFxuICAgICAgICByb246IDAuNzk4OTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyNTAsXG4gICAgICAgIGdmcDogMC45OTMzMTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwMjA5LFxuICAgICAgICByb246IDAuNzk4OTI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczMDAsXG4gICAgICAgIGdmcDogMC45OTMzMTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5OTI5LFxuICAgICAgICByb246IDAuNzk4OTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczNTAsXG4gICAgICAgIGdmcDogMC45OTMzMjIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5NjYsXG4gICAgICAgIHJvbjogMC43OTg5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTk0MDQsXG4gICAgICAgIHJvbjogMC43OTg5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTE1OSxcbiAgICAgICAgcm9uOiAwLjc5ODkyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzM0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODkyNSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzM4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODcwMSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxODQ4NyxcbiAgICAgICAgcm9uOiAwLjc5ODkyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODI4MixcbiAgICAgICAgcm9uOiAwLjc5ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3MDAsXG4gICAgICAgIGdmcDogMC45OTMzNDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4MDg3LFxuICAgICAgICByb246IDAuNzk4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTc5LFxuICAgICAgICByb246IDAuNzk4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4MDAsXG4gICAgICAgIGdmcDogMC45OTMzNTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NzIyLFxuICAgICAgICByb246IDAuNzk4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4NTAsXG4gICAgICAgIGdmcDogMC45OTMzNTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NTUxLFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5MDAsXG4gICAgICAgIGdmcDogMC45OTMzNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTczODgsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTcyMzIsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTcwODMsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY5NDEsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjgwNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzcyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjY3NCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzc0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjU1LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyNTAsXG4gICAgICAgIGdmcDogMC45OTMzNzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NDMxLFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzMDAsXG4gICAgICAgIGdmcDogMC45OTMzNzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MzE4LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzNTAsXG4gICAgICAgIGdmcDogMC45OTMzOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYyMDksXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTYxMDUsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYwMDYsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU5MTEsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU4MjEsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU3MzQsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTY1MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzkxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTU3MixcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzkyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTQ5NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzk0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTQyNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTM1NixcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzk2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTI5LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5NTAsXG4gICAgICAgIGdmcDogMC45OTMzOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MjI3LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MTY2LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MTA5LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxMDAsXG4gICAgICAgIGdmcDogMC45OTM0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTA1NCxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDAxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTAwMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDAyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDk1MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDAyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDkwMyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDAzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDg1NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDgxMyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDc3MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDczMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDY5MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDY1NixcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDYyMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTg3LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1NTUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDUyNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDksXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDk2LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0NDEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDExLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQxNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDExLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM5MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDExLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM0NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDMyNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDMwNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyNDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjMxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIxNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxOTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTg0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE1NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTMxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwOTcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDg3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA3NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNjgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDU5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA0MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMzQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDI3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAxOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDA2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5OTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTg4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk4MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTcyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NjMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTU4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTMzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTIxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTAxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfVxuXVxubGV0IG1vZGVsT2ZmRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOFxuICAgIH1cbl07XG5sZXQgbW9kZWxPZmZPbkRhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAuMDAwMTYzNjk4LFxuICAgICAgICByb2ZmOiAwLjY5NzcwMSxcbiAgICAgICAgcm9uOiAwLjgzMjY3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIxMTA3NCxcbiAgICAgICAgcm9mZjogMC42MTIzNjMsXG4gICAgICAgIHJvbjogMC45NDg1MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMjY3NTI2LFxuICAgICAgICByb2ZmOiAwLjU1MDc3NyxcbiAgICAgICAgcm9uOiAwLjkxOTYyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAsXG4gICAgICAgIGdmcDogMC4wMDAzMjk2NzYsXG4gICAgICAgIHJvZmY6IDAuNTAxNTE2LFxuICAgICAgICByb246IDAuODcwODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDM5NzU4NCxcbiAgICAgICAgcm9mZjogMC40NjAzMTksXG4gICAgICAgIHJvbjogMC44MDk5NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwLFxuICAgICAgICBnZnA6IDAuMDAwNDcyMDI4LFxuICAgICAgICByb2ZmOiAwLjQyNDk0NSxcbiAgICAgICAgcm9uOiAwLjc0NDQ3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAsXG4gICAgICAgIGdmcDogMC4wMDA1NTM5NSxcbiAgICAgICAgcm9mZjogMC4zOTQwMTUsXG4gICAgICAgIHJvbjogMC42ODAzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAsXG4gICAgICAgIGdmcDogMC4wMDA2NDQzNCxcbiAgICAgICAgcm9mZjogMC4zNjY2MSxcbiAgICAgICAgcm9uOiAwLjYyMTAyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAsXG4gICAgICAgIGdmcDogMC4wMDA3NDQyMjIsXG4gICAgICAgIHJvZmY6IDAuMzQyMDgyLFxuICAgICAgICByb246IDAuNTY3ODA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDg1NDY2NCxcbiAgICAgICAgcm9mZjogMC4zMTk5NTgsXG4gICAgICAgIHJvbjogMC41MjA3NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwLFxuICAgICAgICBnZnA6IDAuMDAwOTc2Nzg3LFxuICAgICAgICByb2ZmOiAwLjI5OTg3NyxcbiAgICAgICAgcm9uOiAwLjQ3OTMyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAsXG4gICAgICAgIGdmcDogMC4wMDExMTE3OCxcbiAgICAgICAgcm9mZjogMC4yODE1NTYsXG4gICAgICAgIHJvbjogMC40NDI4MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwLFxuICAgICAgICBnZnA6IDAuMDAxMjYwOTEsXG4gICAgICAgIHJvZmY6IDAuMjY0NzcxLFxuICAgICAgICByb246IDAuNDEwNTA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTQyNTUyLFxuICAgICAgICByb2ZmOiAwLjI0OTMzOCxcbiAgICAgICAgcm9uOiAwLjM4MTc1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAsXG4gICAgICAgIGdmcDogMC4wMDE2MDcwNCxcbiAgICAgICAgcm9mZjogMC4yMzUxMDYsXG4gICAgICAgIHJvbjogMC4zNTYwMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwLFxuICAgICAgICBnZnA6IDAuMDAxODA3LFxuICAgICAgICByb2ZmOiAwLjIyMTk0OCxcbiAgICAgICAgcm9uOiAwLjMzMjg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjAyNzAxLFxuICAgICAgICByb2ZmOiAwLjIwOTc1NyxcbiAgICAgICAgcm9uOiAwLjMxMTg3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAsXG4gICAgICAgIGdmcDogMC4wMDIyNjg3NCxcbiAgICAgICAgcm9mZjogMC4xOTg0NDIsXG4gICAgICAgIHJvbjogMC4yOTI4MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwLFxuICAgICAgICBnZnA6IDAuMDAyNTMzOTUsXG4gICAgICAgIHJvZmY6IDAuMTg3OTI1LFxuICAgICAgICByb246IDAuMjc1NDM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjgyNDQzLFxuICAgICAgICByb2ZmOiAwLjE3ODEzNyxcbiAgICAgICAgcm9uOiAwLjI1OTUyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwLFxuICAgICAgICBnZnA6IDAuMDAzMTQyMDMsXG4gICAgICAgIHJvZmY6IDAuMTY5MDIxLFxuICAgICAgICByb246IDAuMjQ0OTE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAsXG4gICAgICAgIGdmcDogMC4wMDM0ODg1NCxcbiAgICAgICAgcm9mZjogMC4xNjA1MjMsXG4gICAgICAgIHJvbjogMC4yMzE0NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzg2NTc2LFxuICAgICAgICByb2ZmOiAwLjE1MjYsXG4gICAgICAgIHJvbjogMC4yMTkwOTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDI3NTM2LFxuICAgICAgICByb2ZmOiAwLjE0NTIxLFxuICAgICAgICByb246IDAuMjA3NjY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAsXG4gICAgICAgIGdmcDogMC4wMDQ3MTg4NixcbiAgICAgICAgcm9mZjogMC4xMzgzMTksXG4gICAgICAgIHJvbjogMC4xOTcxMDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNTE5NzU2LFxuICAgICAgICByb2ZmOiAwLjEzMTg5NSxcbiAgICAgICAgcm9uOiAwLjE4NzM0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwLFxuICAgICAgICBnZnA6IDAuMDA1NzEyNDIsXG4gICAgICAgIHJvZmY6IDAuMTI1OTA5LFxuICAgICAgICByb246IDAuMTc4MzI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAsXG4gICAgICAgIGdmcDogMC4wMDYyNjQwMSxcbiAgICAgICAgcm9mZjogMC4xMjAzMzYsXG4gICAgICAgIHJvbjogMC4xNjk5OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNjg1MjM5LFxuICAgICAgICByb2ZmOiAwLjExNTE1NCxcbiAgICAgICAgcm9uOiAwLjE2MjI4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwLFxuICAgICAgICBnZnA6IDAuMDA3NDc3MDQsXG4gICAgICAgIHJvZmY6IDAuMTEwMzQxLFxuICAgICAgICByb246IDAuMTU1MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwODEzNjY4LFxuICAgICAgICByb2ZmOiAwLjEwNTg3OCxcbiAgICAgICAgcm9uOiAwLjE0ODYyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwLFxuICAgICAgICBnZnA6IDAuMDA4ODI5MjksXG4gICAgICAgIHJvZmY6IDAuMTAxNzQ4LFxuICAgICAgICByb246IDAuMTQyNTkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAsXG4gICAgICAgIGdmcDogMC4wMDk1NTE5OCxcbiAgICAgICAgcm9mZjogMC4wOTc5MzI2LFxuICAgICAgICByb246IDAuMTM3MDQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAsXG4gICAgICAgIGdmcDogMC4wMTAzMDEsXG4gICAgICAgIHJvZmY6IDAuMDk0NDE3NCxcbiAgICAgICAgcm9uOiAwLjEzMTk2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwLFxuICAgICAgICBnZnA6IDAuMDExMDcxOCxcbiAgICAgICAgcm9mZjogMC4wOTExODY2LFxuICAgICAgICByb246IDAuMTI3MzE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAsXG4gICAgICAgIGdmcDogMC4wMTE4NTg5LFxuICAgICAgICByb2ZmOiAwLjA4ODIyNTIsXG4gICAgICAgIHJvbjogMC4xMjMwNzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY1NjQsXG4gICAgICAgIHJvZmY6IDAuMDg1NTE4OCxcbiAgICAgICAgcm9uOiAwLjExOTIxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODUwLFxuICAgICAgICBnZnA6IDAuMDEzNDU3NixcbiAgICAgICAgcm9mZjogMC4wODMwNTI4LFxuICAgICAgICByb246IDAuMTE1NzEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAsXG4gICAgICAgIGdmcDogMC4wMTQyNTU3LFxuICAgICAgICByb2ZmOiAwLjA4MDgxMjcsXG4gICAgICAgIHJvbjogMC4xMTI1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwLFxuICAgICAgICBnZnA6IDAuMDE1MDQzOSxcbiAgICAgICAgcm9mZjogMC4wNzg3ODQyLFxuICAgICAgICByb246IDAuMTA5NzAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAsXG4gICAgICAgIGdmcDogMC4wMTU4MTU2LFxuICAgICAgICByb2ZmOiAwLjA3Njk1MyxcbiAgICAgICAgcm9uOiAwLjEwNzE0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwLFxuICAgICAgICBnZnA6IDAuMDE2NTY0NSxcbiAgICAgICAgcm9mZjogMC4wNzUzMDQ5LFxuICAgICAgICByb246IDAuMTA0ODU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAsXG4gICAgICAgIGdmcDogMC4wMTcyODUzLFxuICAgICAgICByb2ZmOiAwLjA3MzgyNTcsXG4gICAgICAgIHJvbjogMC4xMDI4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwLFxuICAgICAgICBnZnA6IDAuMDE3OTczMyxcbiAgICAgICAgcm9mZjogMC4wNzI1MDE4LFxuICAgICAgICByb246IDAuMTAxMDEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAsXG4gICAgICAgIGdmcDogMC4wMTg2MjQ4LFxuICAgICAgICByb2ZmOiAwLjA3MTMxOTYsXG4gICAgICAgIHJvbjogMC4wOTk0MTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAsXG4gICAgICAgIGdmcDogMC4wMTkyMzczLFxuICAgICAgICByb2ZmOiAwLjA3MDI2NjMsXG4gICAgICAgIHJvbjogMC4wOTgwMDQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAsXG4gICAgICAgIGdmcDogMC4wMTk4MDkxLFxuICAgICAgICByb2ZmOiAwLjA2OTMyOTQsXG4gICAgICAgIHJvbjogMC4wOTY3NjgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAsXG4gICAgICAgIGdmcDogMC4wMjAzMzk4LFxuICAgICAgICByb2ZmOiAwLjA2ODQ5NzIsXG4gICAgICAgIHJvbjogMC4wOTU2ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMDgyOTYsXG4gICAgICAgIHJvZmY6IDAuMDY3NzU4NyxcbiAgICAgICAgcm9uOiAwLjA5NDc0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDUwLFxuICAgICAgICBnZnA6IDAuMDIxMjc5NCxcbiAgICAgICAgcm9mZjogMC4wNjcxMDM2LFxuICAgICAgICByb246IDAuMDkzOTMzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAwLFxuICAgICAgICBnZnA6IDAuMDIxNjkwOSxcbiAgICAgICAgcm9mZjogMC4wNjY1MjI1LFxuICAgICAgICByb246IDAuMDkzMjMxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTUwLFxuICAgICAgICBnZnA6IDAuMDIyMDY2MyxcbiAgICAgICAgcm9mZjogMC4wNjYwMDY2LFxuICAgICAgICByb246IDAuMDkyNjI4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjAwLFxuICAgICAgICBnZnA6IDAuMDIyNDA3OCxcbiAgICAgICAgcm9mZjogMC4wNjU1NDgsXG4gICAgICAgIHJvbjogMC4wOTIxMTU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAsXG4gICAgICAgIGdmcDogMC4wMjI3MTgzLFxuICAgICAgICByb2ZmOiAwLjA2NTEzOTUsXG4gICAgICAgIHJvbjogMC4wOTE2ODA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3MDAsXG4gICAgICAgIGdmcDogMC4wMjMwMDAzLFxuICAgICAgICByb2ZmOiAwLjA2NDc3NDYsXG4gICAgICAgIHJvbjogMC4wOTEzMTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3NTAsXG4gICAgICAgIGdmcDogMC4wMjMyNTY3LFxuICAgICAgICByb2ZmOiAwLjA2NDQ0NzYsXG4gICAgICAgIHJvbjogMC4wOTEwMTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4MDAsXG4gICAgICAgIGdmcDogMC4wMjM0OTAyLFxuICAgICAgICByb2ZmOiAwLjA2NDE1MzMsXG4gICAgICAgIHJvbjogMC4wOTA3NjU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4NTAsXG4gICAgICAgIGdmcDogMC4wMjM3MDMzLFxuICAgICAgICByb2ZmOiAwLjA2Mzg4NzEsXG4gICAgICAgIHJvbjogMC4wOTA1NjYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5MDAsXG4gICAgICAgIGdmcDogMC4wMjM4OTg2LFxuICAgICAgICByb2ZmOiAwLjA2MzY0NDgsXG4gICAgICAgIHJvbjogMC4wOTA0MTAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5NTAsXG4gICAgICAgIGdmcDogMC4wMjQwNzgzLFxuICAgICAgICByb2ZmOiAwLjA2MzQyMjksXG4gICAgICAgIHJvbjogMC4wOTAyOTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMDAsXG4gICAgICAgIGdmcDogMC4wMjQyNDQ2LFxuICAgICAgICByb2ZmOiAwLjA2MzIxODIsXG4gICAgICAgIHJvbjogMC4wOTAyMDg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwNTAsXG4gICAgICAgIGdmcDogMC4wMjQzOTk1LFxuICAgICAgICByb2ZmOiAwLjA2MzAyNzksXG4gICAgICAgIHJvbjogMC4wOTAxNTU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxMDAsXG4gICAgICAgIGdmcDogMC4wMjQ1NDQ3LFxuICAgICAgICByb2ZmOiAwLjA2Mjg0OTUsXG4gICAgICAgIHJvbjogMC4wOTAxMzAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxNTAsXG4gICAgICAgIGdmcDogMC4wMjQ2ODIsXG4gICAgICAgIHJvZmY6IDAuMDYyNjgwNyxcbiAgICAgICAgcm9uOiAwLjA5MDEyOTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNDgxMjcsXG4gICAgICAgIHJvZmY6IDAuMDYyNTE5OCxcbiAgICAgICAgcm9uOiAwLjA5MDE1MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDkzODMsXG4gICAgICAgIHJvZmY6IDAuMDYyMzY0OSxcbiAgICAgICAgcm9uOiAwLjA5MDE5MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTA2LFxuICAgICAgICByb2ZmOiAwLjA2MjIxNDcsXG4gICAgICAgIHJvbjogMC4wOTAyNTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzNTAsXG4gICAgICAgIGdmcDogMC4wMjUxNzg3LFxuICAgICAgICByb2ZmOiAwLjA2MjA2NzcsXG4gICAgICAgIHJvbjogMC4wOTAzMzA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0MDAsXG4gICAgICAgIGdmcDogMC4wMjUyOTU3LFxuICAgICAgICByb2ZmOiAwLjA2MTkyMjksXG4gICAgICAgIHJvbjogMC4wOTA0MjQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0NTAsXG4gICAgICAgIGdmcDogMC4wMjU0MTE2LFxuICAgICAgICByb2ZmOiAwLjA2MTc3OTEsXG4gICAgICAgIHJvbjogMC4wOTA1MzQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MDAsXG4gICAgICAgIGdmcDogMC4wMjU1Mjc0LFxuICAgICAgICByb2ZmOiAwLjA2MTYzNTQsXG4gICAgICAgIHJvbjogMC4wOTA2NTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1NTAsXG4gICAgICAgIGdmcDogMC4wMjU2NDM4LFxuICAgICAgICByb2ZmOiAwLjA2MTQ5MTEsXG4gICAgICAgIHJvbjogMC4wOTA3OTYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2MDAsXG4gICAgICAgIGdmcDogMC4wMjU3NjE2LFxuICAgICAgICByb2ZmOiAwLjA2MTM0NTMsXG4gICAgICAgIHJvbjogMC4wOTA5NDc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2NTAsXG4gICAgICAgIGdmcDogMC4wMjU4ODEyLFxuICAgICAgICByb2ZmOiAwLjA2MTE5NzMsXG4gICAgICAgIHJvbjogMC4wOTExMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNjAwMzUsXG4gICAgICAgIHJvZmY6IDAuMDYxMDQ2NyxcbiAgICAgICAgcm9uOiAwLjA5MTI4OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNjEyODgsXG4gICAgICAgIHJvZmY6IDAuMDYwODkyNyxcbiAgICAgICAgcm9uOiAwLjA5MTQ3OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNjI1NzgsXG4gICAgICAgIHJvZmY6IDAuMDYwNzM0OCxcbiAgICAgICAgcm9uOiAwLjA5MTY4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNjM5MDksXG4gICAgICAgIHJvZmY6IDAuMDYwNTcyNyxcbiAgICAgICAgcm9uOiAwLjA5MTg5OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNjUyODcsXG4gICAgICAgIHJvZmY6IDAuMDYwNDA1NyxcbiAgICAgICAgcm9uOiAwLjA5MjEyODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNjY3MTcsXG4gICAgICAgIHJvZmY6IDAuMDYwMjMzNixcbiAgICAgICAgcm9uOiAwLjA5MjM3MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNjgyMDMsXG4gICAgICAgIHJvZmY6IDAuMDYwMDU1OSxcbiAgICAgICAgcm9uOiAwLjA5MjYyNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNjk3NSxcbiAgICAgICAgcm9mZjogMC4wNTk4NzIxLFxuICAgICAgICByb246IDAuMDkyODk4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTAwLFxuICAgICAgICBnZnA6IDAuMDI3MTM2MyxcbiAgICAgICAgcm9mZjogMC4wNTk2ODE5LFxuICAgICAgICByb246IDAuMDkzMTgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTUwLFxuICAgICAgICBnZnA6IDAuMDI3MzA0NyxcbiAgICAgICAgcm9mZjogMC4wNTk0ODUsXG4gICAgICAgIHJvbjogMC4wOTM0ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyMDAsXG4gICAgICAgIGdmcDogMC4wMjc0ODA4LFxuICAgICAgICByb2ZmOiAwLjA1OTI4MSxcbiAgICAgICAgcm9uOiAwLjA5Mzc5OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNzY2NSxcbiAgICAgICAgcm9mZjogMC4wNTkwNjk1LFxuICAgICAgICByb246IDAuMDk0MTMxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzAwLFxuICAgICAgICBnZnA6IDAuMDI3ODU3OCxcbiAgICAgICAgcm9mZjogMC4wNTg4NTAzLFxuICAgICAgICByb246IDAuMDk0NDc5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzUwLFxuICAgICAgICBnZnA6IDAuMDI4MDU5OSxcbiAgICAgICAgcm9mZjogMC4wNTg2MjI5LFxuICAgICAgICByb246IDAuMDk0ODQ2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDAwLFxuICAgICAgICBnZnA6IDAuMDI4MjcxNyxcbiAgICAgICAgcm9mZjogMC4wNTgzODcsXG4gICAgICAgIHJvbjogMC4wOTUyMzE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0NTAsXG4gICAgICAgIGdmcDogMC4wMjg0OTQsXG4gICAgICAgIHJvZmY6IDAuMDU4MTQyMyxcbiAgICAgICAgcm9uOiAwLjA5NTYzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAwLFxuICAgICAgICBnZnA6IDAuMDI4NzI3MyxcbiAgICAgICAgcm9mZjogMC4wNTc4ODg1LFxuICAgICAgICByb246IDAuMDk2MDYwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTUwLFxuICAgICAgICBnZnA6IDAuMDI4OTcyNCxcbiAgICAgICAgcm9mZjogMC4wNTc2MjUyLFxuICAgICAgICByb246IDAuMDk2NTA2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjAwLFxuICAgICAgICBnZnA6IDAuMDI5MjI5OSxcbiAgICAgICAgcm9mZjogMC4wNTczNTIyLFxuICAgICAgICByb246IDAuMDk2OTc1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjUwLFxuICAgICAgICBnZnA6IDAuMDI5NTAwNSxcbiAgICAgICAgcm9mZjogMC4wNTcwNjg5LFxuICAgICAgICByb246IDAuMDk3NDY3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzAwLFxuICAgICAgICBnZnA6IDAuMDI5Nzg1MixcbiAgICAgICAgcm9mZjogMC4wNTY3NzUzLFxuICAgICAgICByb246IDAuMDk3OTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3NTAsXG4gICAgICAgIGdmcDogMC4wMzAwODQ3LFxuICAgICAgICByb2ZmOiAwLjA1NjQ3MDgsXG4gICAgICAgIHJvbjogMC4wOTg1MjY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4MDAsXG4gICAgICAgIGdmcDogMC4wMzAzOTk5LFxuICAgICAgICByb2ZmOiAwLjA1NjE1NTIsXG4gICAgICAgIHJvbjogMC4wOTkwOTcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4NTAsXG4gICAgICAgIGdmcDogMC4wMzA3MzE5LFxuICAgICAgICByb2ZmOiAwLjA1NTgyODIsXG4gICAgICAgIHJvbjogMC4wOTk2OTY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5MDAsXG4gICAgICAgIGdmcDogMC4wMzEwODE2LFxuICAgICAgICByb2ZmOiAwLjA1NTQ4OTQsXG4gICAgICAgIHJvbjogMC4xMDAzMjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMTQ1MDIsXG4gICAgICAgIHJvZmY6IDAuMDU1MTM4NixcbiAgICAgICAgcm9uOiAwLjEwMDk4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAwLFxuICAgICAgICBnZnA6IDAuMDMxODM4NyxcbiAgICAgICAgcm9mZjogMC4wNTQ3NzU0LFxuICAgICAgICByb246IDAuMTAxNjg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwNTAsXG4gICAgICAgIGdmcDogMC4wMzIyNDg2LFxuICAgICAgICByb2ZmOiAwLjA1NDM5OTUsXG4gICAgICAgIHJvbjogMC4xMDI0MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMjY4MSxcbiAgICAgICAgcm9mZjogMC4wNTQwMTA1LFxuICAgICAgICByb246IDAuMTAzMTg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxNTAsXG4gICAgICAgIGdmcDogMC4wMzMxMzc1LFxuICAgICAgICByb2ZmOiAwLjA1MzYwODMsXG4gICAgICAgIHJvbjogMC4xMDM5OTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMzYxOTcsXG4gICAgICAgIHJvZmY6IDAuMDUzMTkyNixcbiAgICAgICAgcm9uOiAwLjEwNDg1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjUwLFxuICAgICAgICBnZnA6IDAuMDM0MTI5MSxcbiAgICAgICAgcm9mZjogMC4wNTI3NjMsXG4gICAgICAgIHJvbjogMC4xMDU3NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAzNDY2NzcsXG4gICAgICAgIHJvZmY6IDAuMDUyMzE5MixcbiAgICAgICAgcm9uOiAwLjEwNjY5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzUwLFxuICAgICAgICBnZnA6IDAuMDM1MjM3MixcbiAgICAgICAgcm9mZjogMC4wNTE4NjEyLFxuICAgICAgICByb246IDAuMTA3Njk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0MDAsXG4gICAgICAgIGdmcDogMC4wMzU4Mzk4LFxuICAgICAgICByb2ZmOiAwLjA1MTM4ODYsXG4gICAgICAgIHJvbjogMC4xMDg3NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAzNjQ3NzcsXG4gICAgICAgIHJvZmY6IDAuMDUwOTAxMixcbiAgICAgICAgcm9uOiAwLjEwOTg1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAwLFxuICAgICAgICBnZnA6IDAuMDM3MTUzNCxcbiAgICAgICAgcm9mZjogMC4wNTAzOTg5LFxuICAgICAgICByb246IDAuMTExMDIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1NTAsXG4gICAgICAgIGdmcDogMC4wMzc4NjkzLFxuICAgICAgICByb2ZmOiAwLjA0OTg4MTQsXG4gICAgICAgIHJvbjogMC4xMTIyNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAzODYyODQsXG4gICAgICAgIHJvZmY6IDAuMDQ5MzQ4NyxcbiAgICAgICAgcm9uOiAwLjExMzU1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjUwLFxuICAgICAgICBnZnA6IDAuMDM5NDMzNixcbiAgICAgICAgcm9mZjogMC4wNDg4MDA3LFxuICAgICAgICByb246IDAuMTE0OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3MDAsXG4gICAgICAgIGdmcDogMC4wNDAyODgyLFxuICAgICAgICByb2ZmOiAwLjA0ODIzNzIsXG4gICAgICAgIHJvbjogMC4xMTYzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzUwLFxuICAgICAgICBnZnA6IDAuMDQxMTk1OCxcbiAgICAgICAgcm9mZjogMC4wNDc2NTgzLFxuICAgICAgICByb246IDAuMTE3OTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4MDAsXG4gICAgICAgIGdmcDogMC4wNDIxNjAxLFxuICAgICAgICByb2ZmOiAwLjA0NzA2NCxcbiAgICAgICAgcm9uOiAwLjExOTUzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODUwLFxuICAgICAgICBnZnA6IDAuMDQzMTg1MixcbiAgICAgICAgcm9mZjogMC4wNDY0NTQyLFxuICAgICAgICByb246IDAuMTIxMjQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5MDAsXG4gICAgICAgIGdmcDogMC4wNDQyNzU2LFxuICAgICAgICByb2ZmOiAwLjA0NTgyOTIsXG4gICAgICAgIHJvbjogMC4xMjMwNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjA0NTQzNjIsXG4gICAgICAgIHJvZmY6IDAuMDQ1MTg5LFxuICAgICAgICByb246IDAuMTI0OTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMDAsXG4gICAgICAgIGdmcDogMC4wNDY2NzIxLFxuICAgICAgICByb2ZmOiAwLjA0NDUzMzgsXG4gICAgICAgIHJvbjogMC4xMjcwMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjA0Nzk4OSxcbiAgICAgICAgcm9mZjogMC4wNDM4NjM5LFxuICAgICAgICByb246IDAuMTI5MTY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxMDAsXG4gICAgICAgIGdmcDogMC4wNDkzOTI5LFxuICAgICAgICByb2ZmOiAwLjA0MzE3OTUsXG4gICAgICAgIHJvbjogMC4xMzE0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTUwLFxuICAgICAgICBnZnA6IDAuMDUwODkwNixcbiAgICAgICAgcm9mZjogMC4wNDI0ODExLFxuICAgICAgICByb246IDAuMTMzODY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyMDAsXG4gICAgICAgIGdmcDogMC4wNTI0ODksXG4gICAgICAgIHJvZmY6IDAuMDQxNzY5LFxuICAgICAgICByb246IDAuMTM2NDM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyNTAsXG4gICAgICAgIGdmcDogMC4wNTQxOTYsXG4gICAgICAgIHJvZmY6IDAuMDQxMDQzOCxcbiAgICAgICAgcm9uOiAwLjEzOTE1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzAwLFxuICAgICAgICBnZnA6IDAuMDU2MDE5OCxcbiAgICAgICAgcm9mZjogMC4wNDAzMDYsXG4gICAgICAgIHJvbjogMC4xNDIwNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjA1Nzk2OTUsXG4gICAgICAgIHJvZmY6IDAuMDM5NTU2MSxcbiAgICAgICAgcm9uOiAwLjE0NTExOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDAwLFxuICAgICAgICBnZnA6IDAuMDYwMDU0NyxcbiAgICAgICAgcm9mZjogMC4wMzg3OTUsXG4gICAgICAgIHJvbjogMC4xNDgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDUwLFxuICAgICAgICBnZnA6IDAuMDYyMjg2MSxcbiAgICAgICAgcm9mZjogMC4wMzgwMjMyLFxuICAgICAgICByb246IDAuMTUxODQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MDAsXG4gICAgICAgIGdmcDogMC4wNjQ2NzQ4LFxuICAgICAgICByb2ZmOiAwLjAzNzI0MTcsXG4gICAgICAgIHJvbjogMC4xNTU1MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjA2NzIzMzEsXG4gICAgICAgIHJvZmY6IDAuMDM2NDUxNCxcbiAgICAgICAgcm9uOiAwLjE1OTQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2MDAsXG4gICAgICAgIGdmcDogMC4wNjk5NzM5LFxuICAgICAgICByb2ZmOiAwLjAzNTY1MyxcbiAgICAgICAgcm9uOiAwLjE2MzYxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjUwLFxuICAgICAgICBnZnA6IDAuMDcyOTExNCxcbiAgICAgICAgcm9mZjogMC4wMzQ4NDc4LFxuICAgICAgICByb246IDAuMTY4MDUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3MDAsXG4gICAgICAgIGdmcDogMC4wNzYwNjA1LFxuICAgICAgICByb2ZmOiAwLjAzNDAzNjYsXG4gICAgICAgIHJvbjogMC4xNzI3NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjA3OTQzNzIsXG4gICAgICAgIHJvZmY6IDAuMDMzMjIwNyxcbiAgICAgICAgcm9uOiAwLjE3Nzc5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODAwLFxuICAgICAgICBnZnA6IDAuMDgzMDU4NixcbiAgICAgICAgcm9mZjogMC4wMzI0MDEyLFxuICAgICAgICByb246IDAuMTgzMTQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4NTAsXG4gICAgICAgIGdmcDogMC4wODY5NDMsXG4gICAgICAgIHJvZmY6IDAuMDMxNTc5MixcbiAgICAgICAgcm9uOiAwLjE4ODgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTAwLFxuICAgICAgICBnZnA6IDAuMDkxMTA5NSxcbiAgICAgICAgcm9mZjogMC4wMzA3NTYsXG4gICAgICAgIHJvbjogMC4xOTQ4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjA5NTU3ODQsXG4gICAgICAgIHJvZmY6IDAuMDI5OTMyOSxcbiAgICAgICAgcm9uOiAwLjIwMTM0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAwLFxuICAgICAgICBnZnA6IDAuMTAwMzcxLFxuICAgICAgICByb2ZmOiAwLjAyOTExMTEsXG4gICAgICAgIHJvbjogMC4yMDgyMDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjEwNTUxLFxuICAgICAgICByb2ZmOiAwLjAyODI5MixcbiAgICAgICAgcm9uOiAwLjIxNTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjExMTAxOSxcbiAgICAgICAgcm9mZjogMC4wMjc0NzY3LFxuICAgICAgICByb246IDAuMjIzMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzE1MCxcbiAgICAgICAgZ2ZwOiAwLjExNjkyMSxcbiAgICAgICAgcm9mZjogMC4wMjY2NjY1LFxuICAgICAgICByb246IDAuMjMxNTA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyMDAsXG4gICAgICAgIGdmcDogMC4xMjMyNDEsXG4gICAgICAgIHJvZmY6IDAuMDI1ODYyOCxcbiAgICAgICAgcm9uOiAwLjI0MDI2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjUwLFxuICAgICAgICBnZnA6IDAuMTMwMDA1LFxuICAgICAgICByb2ZmOiAwLjAyNTA2NjgsXG4gICAgICAgIHJvbjogMC4yNDk1NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjEzNzIzOCxcbiAgICAgICAgcm9mZjogMC4wMjQyNzk1LFxuICAgICAgICByb246IDAuMjU5Mzk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczNTAsXG4gICAgICAgIGdmcDogMC4xNDQ5NjcsXG4gICAgICAgIHJvZmY6IDAuMDIzNTAyMixcbiAgICAgICAgcm9uOiAwLjI2OTgyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDAwLFxuICAgICAgICBnZnA6IDAuMTUzMjE1LFxuICAgICAgICByb2ZmOiAwLjAyMjczNTksXG4gICAgICAgIHJvbjogMC4yODA4NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjE2MjAwOSxcbiAgICAgICAgcm9mZjogMC4wMjE5ODE3LFxuICAgICAgICByb246IDAuMjkyNDgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MDAsXG4gICAgICAgIGdmcDogMC4xNzEzNzEsXG4gICAgICAgIHJvZmY6IDAuMDIxMjQwNSxcbiAgICAgICAgcm9uOiAwLjMwNDc0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTUwLFxuICAgICAgICBnZnA6IDAuMTgxMzI1LFxuICAgICAgICByb2ZmOiAwLjAyMDUxMzIsXG4gICAgICAgIHJvbjogMC4zMTc2MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzYwMCxcbiAgICAgICAgZ2ZwOiAwLjE5MTg4OSxcbiAgICAgICAgcm9mZjogMC4wMTk4MDA2LFxuICAgICAgICByb246IDAuMzMxMTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2NTAsXG4gICAgICAgIGdmcDogMC4yMDMwODMsXG4gICAgICAgIHJvZmY6IDAuMDE5MTAzMyxcbiAgICAgICAgcm9uOiAwLjM0NTMxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzAwLFxuICAgICAgICBnZnA6IDAuMjE0OTIxLFxuICAgICAgICByb2ZmOiAwLjAxODQyMjEsXG4gICAgICAgIHJvbjogMC4zNjAwODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzc1MCxcbiAgICAgICAgZ2ZwOiAwLjIyNzQxNCxcbiAgICAgICAgcm9mZjogMC4wMTc3NTc0LFxuICAgICAgICByb246IDAuMzc1NDQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4MDAsXG4gICAgICAgIGdmcDogMC4yNDA1NjgsXG4gICAgICAgIHJvZmY6IDAuMDE3MTA5NyxcbiAgICAgICAgcm9uOiAwLjM5MTM1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODUwLFxuICAgICAgICBnZnA6IDAuMjU0Mzg3LFxuICAgICAgICByb2ZmOiAwLjAxNjQ3OTMsXG4gICAgICAgIHJvbjogMC40MDc3ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjI2ODg2NixcbiAgICAgICAgcm9mZjogMC4wMTU4NjY3LFxuICAgICAgICByb246IDAuNDI0NjY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5NTAsXG4gICAgICAgIGdmcDogMC4yODM5OTcsXG4gICAgICAgIHJvZmY6IDAuMDE1MjcxOSxcbiAgICAgICAgcm9uOiAwLjQ0MTkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAwLFxuICAgICAgICBnZnA6IDAuMjk5NzY1LFxuICAgICAgICByb2ZmOiAwLjAxNDY5NTEsXG4gICAgICAgIHJvbjogMC40NTk0OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODA1MCxcbiAgICAgICAgZ2ZwOiAwLjMxNjE0NixcbiAgICAgICAgcm9mZjogMC4wMTQxMzYzLFxuICAgICAgICByb246IDAuNDc3MjU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxMDAsXG4gICAgICAgIGdmcDogMC4zMzMxMTMsXG4gICAgICAgIHJvZmY6IDAuMDEzNTk1NixcbiAgICAgICAgcm9uOiAwLjQ5NTExNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTUwLFxuICAgICAgICBnZnA6IDAuMzUwNjMsXG4gICAgICAgIHJvZmY6IDAuMDEzMDcyOSxcbiAgICAgICAgcm9uOiAwLjUxMjk0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjAwLFxuICAgICAgICBnZnA6IDAuMzY4NjU0LFxuICAgICAgICByb2ZmOiAwLjAxMjU2OCxcbiAgICAgICAgcm9uOiAwLjUzMDYzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjUwLFxuICAgICAgICBnZnA6IDAuMzg3MTM2LFxuICAgICAgICByb2ZmOiAwLjAxMjA4MDgsXG4gICAgICAgIHJvbjogMC41NDgwMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODMwMCxcbiAgICAgICAgZ2ZwOiAwLjQwNjAyMSxcbiAgICAgICAgcm9mZjogMC4wMTE2MTExLFxuICAgICAgICByb246IDAuNTY1MDM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzNTAsXG4gICAgICAgIGdmcDogMC40MjUyNDgsXG4gICAgICAgIHJvZmY6IDAuMDExMTU4NSxcbiAgICAgICAgcm9uOiAwLjU4MTUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDAwLFxuICAgICAgICBnZnA6IDAuNDQ0NzUyLFxuICAgICAgICByb2ZmOiAwLjAxMDcyMjgsXG4gICAgICAgIHJvbjogMC41OTczM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDUwLFxuICAgICAgICBnZnA6IDAuNDY0NDY0LFxuICAgICAgICByb2ZmOiAwLjAxMDMwMzYsXG4gICAgICAgIHJvbjogMC42MTI0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAwLFxuICAgICAgICBnZnA6IDAuNDg0MzEsXG4gICAgICAgIHJvZmY6IDAuMDA5OTAwNTQsXG4gICAgICAgIHJvbjogMC42MjY2OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODU1MCxcbiAgICAgICAgZ2ZwOiAwLjUwNDIxOCxcbiAgICAgICAgcm9mZjogMC4wMDk1MTMyNixcbiAgICAgICAgcm9uOiAwLjY0MDEwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjAwLFxuICAgICAgICBnZnA6IDAuNTI0MTE0LFxuICAgICAgICByb2ZmOiAwLjAwOTE0MTMzLFxuICAgICAgICByb246IDAuNjUyNjI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2NTAsXG4gICAgICAgIGdmcDogMC41NDM5MjMsXG4gICAgICAgIHJvZmY6IDAuMDA4Nzg0MyxcbiAgICAgICAgcm9uOiAwLjY2NDI0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzAwLFxuICAgICAgICBnZnA6IDAuNTYzNTc1LFxuICAgICAgICByb2ZmOiAwLjAwODQ0MTczLFxuICAgICAgICByb246IDAuNjc0OTc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3NTAsXG4gICAgICAgIGdmcDogMC41ODMwMDEsXG4gICAgICAgIHJvZmY6IDAuMDA4MTEzMTYsXG4gICAgICAgIHJvbjogMC42ODQ4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODAwLFxuICAgICAgICBnZnA6IDAuNjAyMTM2LFxuICAgICAgICByb2ZmOiAwLjAwNzc5ODEyLFxuICAgICAgICByb246IDAuNjkzOTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4NTAsXG4gICAgICAgIGdmcDogMC42MjA5MTksXG4gICAgICAgIHJvZmY6IDAuMDA3NDk2MTUsXG4gICAgICAgIHJvbjogMC43MDIyMjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODkwMCxcbiAgICAgICAgZ2ZwOiAwLjYzOTI5NyxcbiAgICAgICAgcm9mZjogMC4wMDcyMDY3OSxcbiAgICAgICAgcm9uOiAwLjcwOTgyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTUwLFxuICAgICAgICBnZnA6IDAuNjU3MjIxLFxuICAgICAgICByb2ZmOiAwLjAwNjkyOTU3LFxuICAgICAgICByb246IDAuNzE2Nzg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMDAsXG4gICAgICAgIGdmcDogMC42NzQ2NDcsXG4gICAgICAgIHJvZmY6IDAuMDA2NjY0MDMsXG4gICAgICAgIHJvbjogMC43MjMxNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjY5MTUzOSxcbiAgICAgICAgcm9mZjogMC4wMDY0MDk3MyxcbiAgICAgICAgcm9uOiAwLjcyOTAwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTAwLFxuICAgICAgICBnZnA6IDAuNzA3ODY2LFxuICAgICAgICByb2ZmOiAwLjAwNjE2NjIzLFxuICAgICAgICByb246IDAuNzM0MzU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxNTAsXG4gICAgICAgIGdmcDogMC43MjM2MDQsXG4gICAgICAgIHJvZmY6IDAuMDA1OTMzMTEsXG4gICAgICAgIHJvbjogMC43MzkyNzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTIwMCxcbiAgICAgICAgZ2ZwOiAwLjczODczNixcbiAgICAgICAgcm9mZjogMC4wMDU3MDk5NSxcbiAgICAgICAgcm9uOiAwLjc0Mzc4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjUwLFxuICAgICAgICBnZnA6IDAuNzUzMjQ5LFxuICAgICAgICByb2ZmOiAwLjAwNTQ5NjM0LFxuICAgICAgICByb246IDAuNzQ3OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzMDAsXG4gICAgICAgIGdmcDogMC43NjcxMzUsXG4gICAgICAgIHJvZmY6IDAuMDA1MjkxOTEsXG4gICAgICAgIHJvbjogMC43NTE3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzUwLFxuICAgICAgICBnZnA6IDAuNzgwMzkyLFxuICAgICAgICByb2ZmOiAwLjAwNTA5NjI2LFxuICAgICAgICByb246IDAuNzU1MjYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0MDAsXG4gICAgICAgIGdmcDogMC43OTMwMjMsXG4gICAgICAgIHJvZmY6IDAuMDA0OTA5MDQsXG4gICAgICAgIHJvbjogMC43NTg0OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjgwNTAzNCxcbiAgICAgICAgcm9mZjogMC4wMDQ3Mjk5LFxuICAgICAgICByb246IDAuNzYxNDc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MDAsXG4gICAgICAgIGdmcDogMC44MTY0MzQsXG4gICAgICAgIHJvZmY6IDAuMDA0NTU4NSxcbiAgICAgICAgcm9uOiAwLjc2NDIyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTUwLFxuICAgICAgICBnZnA6IDAuODI3MjM1LFxuICAgICAgICByb2ZmOiAwLjAwNDM5NDUyLFxuICAgICAgICByb246IDAuNzY2NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTYwMCxcbiAgICAgICAgZ2ZwOiAwLjgzNzQ1NCxcbiAgICAgICAgcm9mZjogMC4wMDQyMzc2NCxcbiAgICAgICAgcm9uOiAwLjc2OTA5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjUwLFxuICAgICAgICBnZnA6IDAuODQ3MTA4LFxuICAgICAgICByb2ZmOiAwLjAwNDA4NzU2LFxuICAgICAgICByb246IDAuNzcxMjU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3MDAsXG4gICAgICAgIGdmcDogMC44NTYyMTUsXG4gICAgICAgIHJvZmY6IDAuMDAzOTQ0LFxuICAgICAgICByb246IDAuNzczMjQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3NTAsXG4gICAgICAgIGdmcDogMC44NjQ3OTUsXG4gICAgICAgIHJvZmY6IDAuMDAzODA2NjgsXG4gICAgICAgIHJvbjogMC43NzUwODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjg3Mjg3MSxcbiAgICAgICAgcm9mZjogMC4wMDM2NzUzNCxcbiAgICAgICAgcm9uOiAwLjc3Njc4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODUwLFxuICAgICAgICBnZnA6IDAuODgwNDYyLFxuICAgICAgICByb2ZmOiAwLjAwMzU0OTcxLFxuICAgICAgICByb246IDAuNzc4MzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5MDAsXG4gICAgICAgIGdmcDogMC44ODc1OTMsXG4gICAgICAgIHJvZmY6IDAuMDAzNDI5NTYsXG4gICAgICAgIHJvbjogMC43Nzk3OTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjg5NDI4NSxcbiAgICAgICAgcm9mZjogMC4wMDMzMTQ2NCxcbiAgICAgICAgcm9uOiAwLjc4MTEzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwMCxcbiAgICAgICAgZ2ZwOiAwLjkwMDU2LFxuICAgICAgICByb2ZmOiAwLjAwMzIwNDc0LFxuICAgICAgICByb246IDAuNzgyMzc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDUwLFxuICAgICAgICBnZnA6IDAuOTA2NDQxLFxuICAgICAgICByb2ZmOiAwLjAwMzA5OTY0LFxuICAgICAgICByb246IDAuNzgzNTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTAwLFxuICAgICAgICBnZnA6IDAuOTExOTQ4LFxuICAgICAgICByb2ZmOiAwLjAwMjk5OTE0LFxuICAgICAgICByb246IDAuNzg0NTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTUwLFxuICAgICAgICBnZnA6IDAuOTE3MTAzLFxuICAgICAgICByb2ZmOiAwLjAwMjkwMzAyLFxuICAgICAgICByb246IDAuNzg1NTY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjAwLFxuICAgICAgICBnZnA6IDAuOTIxOTI2LFxuICAgICAgICByb2ZmOiAwLjAwMjgxMTExLFxuICAgICAgICByb246IDAuNzg2NDczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjUwLFxuICAgICAgICBnZnA6IDAuOTI2NDM3LFxuICAgICAgICByb2ZmOiAwLjAwMjcyMzIzLFxuICAgICAgICByb246IDAuNzg3MzE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzAwLFxuICAgICAgICBnZnA6IDAuOTMwNjU0LFxuICAgICAgICByb2ZmOiAwLjAwMjYzOTE5LFxuICAgICAgICByb246IDAuNzg4MDk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzUwLFxuICAgICAgICBnZnA6IDAuOTM0NTk2LFxuICAgICAgICByb2ZmOiAwLjAwMjU1ODgzLFxuICAgICAgICByb246IDAuNzg4ODE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDAwLFxuICAgICAgICBnZnA6IDAuOTM4Mjc5LFxuICAgICAgICByb2ZmOiAwLjAwMjQ4MTk5LFxuICAgICAgICByb246IDAuNzg5NDg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDUwLFxuICAgICAgICBnZnA6IDAuOTQxNzIxLFxuICAgICAgICByb2ZmOiAwLjAwMjQwODUyLFxuICAgICAgICByb246IDAuNzkwMTA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAwLFxuICAgICAgICBnZnA6IDAuOTQ0OTM2LFxuICAgICAgICByb2ZmOiAwLjAwMjMzODI4LFxuICAgICAgICByb246IDAuNzkwNjg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTUwLFxuICAgICAgICBnZnA6IDAuOTQ3OTQsXG4gICAgICAgIHJvZmY6IDAuMDAyMjcxMTIsXG4gICAgICAgIHJvbjogMC43OTEyMTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2MDAsXG4gICAgICAgIGdmcDogMC45NTA3NDUsXG4gICAgICAgIHJvZmY6IDAuMDAyMjA2OSxcbiAgICAgICAgcm9uOiAwLjc5MTcxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk1MzM2NixcbiAgICAgICAgcm9mZjogMC4wMDIxNDU1MSxcbiAgICAgICAgcm9uOiAwLjc5MjE3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk1NTgxNSxcbiAgICAgICAgcm9mZjogMC4wMDIwODY4MSxcbiAgICAgICAgcm9uOiAwLjc5MjYwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk1ODEwMyxcbiAgICAgICAgcm9mZjogMC4wMDIwMzA2OSxcbiAgICAgICAgcm9uOiAwLjc5MzAwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk2MDI0LFxuICAgICAgICByb2ZmOiAwLjAwMTk3NzA0LFxuICAgICAgICByb246IDAuNzkzMzc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODUwLFxuICAgICAgICBnZnA6IDAuOTYyMjM4LFxuICAgICAgICByb2ZmOiAwLjAwMTkyNTc1LFxuICAgICAgICByb246IDAuNzkzNzIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTAwLFxuICAgICAgICBnZnA6IDAuOTY0MTA1LFxuICAgICAgICByb2ZmOiAwLjAwMTg3NjcxLFxuICAgICAgICByb246IDAuNzk0MDQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTUwLFxuICAgICAgICBnZnA6IDAuOTY1ODUxLFxuICAgICAgICByb2ZmOiAwLjAwMTgyOTgzLFxuICAgICAgICByb246IDAuNzk0MzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAwLFxuICAgICAgICBnZnA6IDAuOTY3NDg0LFxuICAgICAgICByb2ZmOiAwLjAwMTc4NTAxLFxuICAgICAgICByb246IDAuNzk0NjI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDUwLFxuICAgICAgICBnZnA6IDAuOTY5MDExLFxuICAgICAgICByb2ZmOiAwLjAwMTc0MjE2LFxuICAgICAgICByb246IDAuNzk0ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTAwLFxuICAgICAgICBnZnA6IDAuOTcwNDQsXG4gICAgICAgIHJvZmY6IDAuMDAxNzAxMjEsXG4gICAgICAgIHJvbjogMC43OTUxMjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExNTAsXG4gICAgICAgIGdmcDogMC45NzE3NzcsXG4gICAgICAgIHJvZmY6IDAuMDAxNjYyMDUsXG4gICAgICAgIHJvbjogMC43OTUzNTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyMDAsXG4gICAgICAgIGdmcDogMC45NzMwMjksXG4gICAgICAgIHJvZmY6IDAuMDAxNjI0NjIsXG4gICAgICAgIHJvbjogMC43OTU1NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyNTAsXG4gICAgICAgIGdmcDogMC45NzQyMDEsXG4gICAgICAgIHJvZmY6IDAuMDAxNTg4ODMsXG4gICAgICAgIHJvbjogMC43OTU3NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzMDAsXG4gICAgICAgIGdmcDogMC45NzUyOTksXG4gICAgICAgIHJvZmY6IDAuMDAxNTU0NjMsXG4gICAgICAgIHJvbjogMC43OTU5NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzNTAsXG4gICAgICAgIGdmcDogMC45NzYzMjgsXG4gICAgICAgIHJvZmY6IDAuMDAxNTIxOTMsXG4gICAgICAgIHJvbjogMC43OTYxMjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0MDAsXG4gICAgICAgIGdmcDogMC45NzcyOTMsXG4gICAgICAgIHJvZmY6IDAuMDAxNDkwNjcsXG4gICAgICAgIHJvbjogMC43OTYyODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0NTAsXG4gICAgICAgIGdmcDogMC45NzgxOTgsXG4gICAgICAgIHJvZmY6IDAuMDAxNDYwNzgsXG4gICAgICAgIHJvbjogMC43OTY0MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MDAsXG4gICAgICAgIGdmcDogMC45NzkwNDcsXG4gICAgICAgIHJvZmY6IDAuMDAxNDMyMjIsXG4gICAgICAgIHJvbjogMC43OTY1NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1NTAsXG4gICAgICAgIGdmcDogMC45Nzk4NDQsXG4gICAgICAgIHJvZmY6IDAuMDAxNDA0OTIsXG4gICAgICAgIHJvbjogMC43OTY3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MDU5MixcbiAgICAgICAgcm9mZjogMC4wMDEzNzg4MixcbiAgICAgICAgcm9uOiAwLjc5NjgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk4MTI5NCxcbiAgICAgICAgcm9mZjogMC4wMDEzNTM4NyxcbiAgICAgICAgcm9uOiAwLjc5Njk1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MTk1NCxcbiAgICAgICAgcm9mZjogMC4wMDEzMzAwMixcbiAgICAgICAgcm9uOiAwLjc5NzA2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk4MjU3NSxcbiAgICAgICAgcm9mZjogMC4wMDEzMDcyMixcbiAgICAgICAgcm9uOiAwLjc5NzE2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MzE1OCxcbiAgICAgICAgcm9mZjogMC4wMDEyODU0MyxcbiAgICAgICAgcm9uOiAwLjc5NzI2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk4MzcwNyxcbiAgICAgICAgcm9mZjogMC4wMDEyNjQ2LFxuICAgICAgICByb246IDAuNzk3MzUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTAwLFxuICAgICAgICBnZnA6IDAuOTg0MjI0LFxuICAgICAgICByb2ZmOiAwLjAwMTI0NDY5LFxuICAgICAgICByb246IDAuNzk3NDM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTUwLFxuICAgICAgICBnZnA6IDAuOTg0NzEsXG4gICAgICAgIHJvZmY6IDAuMDAxMjI1NjUsXG4gICAgICAgIHJvbjogMC43OTc1MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMDAsXG4gICAgICAgIGdmcDogMC45ODUxNjgsXG4gICAgICAgIHJvZmY6IDAuMDAxMjA3NDYsXG4gICAgICAgIHJvbjogMC43OTc1OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwNTAsXG4gICAgICAgIGdmcDogMC45ODU2LFxuICAgICAgICByb2ZmOiAwLjAwMTE5MDA3LFxuICAgICAgICByb246IDAuNzk3NjY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTAwLFxuICAgICAgICBnZnA6IDAuOTg2MDA3LFxuICAgICAgICByb2ZmOiAwLjAwMTE3MzQ1LFxuICAgICAgICByb246IDAuNzk3NzMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTUwLFxuICAgICAgICBnZnA6IDAuOTg2MzkxLFxuICAgICAgICByb2ZmOiAwLjAwMTE1NzU2LFxuICAgICAgICByb246IDAuNzk3Nzk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjAwLFxuICAgICAgICBnZnA6IDAuOTg2NzUzLFxuICAgICAgICByb2ZmOiAwLjAwMTE0MjM4LFxuICAgICAgICByb246IDAuNzk3ODU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjUwLFxuICAgICAgICBnZnA6IDAuOTg3MDk1LFxuICAgICAgICByb2ZmOiAwLjAwMTEyNzg2LFxuICAgICAgICByb246IDAuNzk3OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzMDAsXG4gICAgICAgIGdmcDogMC45ODc0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAxMTEzOTgsXG4gICAgICAgIHJvbjogMC43OTc5NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzNTAsXG4gICAgICAgIGdmcDogMC45ODc3MjIsXG4gICAgICAgIHJvZmY6IDAuMDAxMTAwNzIsXG4gICAgICAgIHJvbjogMC43OTgwMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0MDAsXG4gICAgICAgIGdmcDogMC45ODgwMSxcbiAgICAgICAgcm9mZjogMC4wMDEwODgwNCxcbiAgICAgICAgcm9uOiAwLjc5ODA2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDUwLFxuICAgICAgICBnZnA6IDAuOTg4MjgyLFxuICAgICAgICByb2ZmOiAwLjAwMTA3NTkzLFxuICAgICAgICByb246IDAuNzk4MTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAwLFxuICAgICAgICBnZnA6IDAuOTg4NTM5LFxuICAgICAgICByb2ZmOiAwLjAwMTA2NDM1LFxuICAgICAgICByb246IDAuNzk4MTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTUwLFxuICAgICAgICBnZnA6IDAuOTg4NzgyLFxuICAgICAgICByb2ZmOiAwLjAwMTA1MzI4LFxuICAgICAgICByb246IDAuNzk4MTg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjAwLFxuICAgICAgICBnZnA6IDAuOTg5MDEyLFxuICAgICAgICByb2ZmOiAwLjAwMTA0MjY5LFxuICAgICAgICByb246IDAuNzk4MjI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjUwLFxuICAgICAgICBnZnA6IDAuOTg5MjMsXG4gICAgICAgIHJvZmY6IDAuMDAxMDMyNTgsXG4gICAgICAgIHJvbjogMC43OTgyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTQzNyxcbiAgICAgICAgcm9mZjogMC4wMDEwMjI5MSxcbiAgICAgICAgcm9uOiAwLjc5ODI5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk4OTYzMixcbiAgICAgICAgcm9mZjogMC4wMDEwMTM2NyxcbiAgICAgICAgcm9uOiAwLjc5ODMyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTgxNyxcbiAgICAgICAgcm9mZjogMC4wMDEwMDQ4NCxcbiAgICAgICAgcm9uOiAwLjc5ODM1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk4OTk5MixcbiAgICAgICAgcm9mZjogMC4wMDA5OTY0MDEsXG4gICAgICAgIHJvbjogMC43OTgzODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5MDAsXG4gICAgICAgIGdmcDogMC45OTAxNTgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTg4MzMzLFxuICAgICAgICByb246IDAuNzk4NDExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTUwLFxuICAgICAgICBnZnA6IDAuOTkwMzE2LFxuICAgICAgICByb2ZmOiAwLjAwMDk4MDYyMSxcbiAgICAgICAgcm9uOiAwLjc5ODQzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDQ2NixcbiAgICAgICAgcm9mZjogMC4wMDA5NzMyNDksXG4gICAgICAgIHJvbjogMC43OTg0NjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwNTAsXG4gICAgICAgIGdmcDogMC45OTA2MDcsXG4gICAgICAgIHJvZmY6IDAuMDAwOTY2MjAzLFxuICAgICAgICByb246IDAuNzk4NDg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTAwLFxuICAgICAgICBnZnA6IDAuOTkwNzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDk1OTQ2OSxcbiAgICAgICAgcm9uOiAwLjc5ODUwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDg3LFxuICAgICAgICByb2ZmOiAwLjAwMDk1MzAzMixcbiAgICAgICAgcm9uOiAwLjc5ODUyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDk5MSxcbiAgICAgICAgcm9mZjogMC4wMDA5NDY4NzksXG4gICAgICAgIHJvbjogMC43OTg1NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyNTAsXG4gICAgICAgIGdmcDogMC45OTExMDYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTQwOTk5LFxuICAgICAgICByb246IDAuNzk4NTY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzAwLFxuICAgICAgICBnZnA6IDAuOTkxMjE2LFxuICAgICAgICByb2ZmOiAwLjAwMDkzNTM3OCxcbiAgICAgICAgcm9uOiAwLjc5ODU4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTMyLFxuICAgICAgICByb2ZmOiAwLjAwMDkzMDAwNixcbiAgICAgICAgcm9uOiAwLjc5ODYwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA5MjQ4NzEsXG4gICAgICAgIHJvbjogMC43OTg2MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0NTAsXG4gICAgICAgIGdmcDogMC45OTE1MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwOTE5OTY0LFxuICAgICAgICByb246IDAuNzk4NjMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAwLFxuICAgICAgICBnZnA6IDAuOTkxNjAyLFxuICAgICAgICByb2ZmOiAwLjAwMDkxNTI3MyxcbiAgICAgICAgcm9uOiAwLjc5ODY0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTY4NyxcbiAgICAgICAgcm9mZjogMC4wMDA5MTA3ODksXG4gICAgICAgIHJvbjogMC43OTg2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTc2OCxcbiAgICAgICAgcm9mZjogMC4wMDA5MDY1MDQsXG4gICAgICAgIHJvbjogMC43OTg2NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2NTAsXG4gICAgICAgIGdmcDogMC45OTE4NDUsXG4gICAgICAgIHJvZmY6IDAuMDAwOTAyNDA4LFxuICAgICAgICByb246IDAuNzk4Njg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNzAwLFxuICAgICAgICBnZnA6IDAuOTkxOTE4LFxuICAgICAgICByb2ZmOiAwLjAwMDg5ODQ5MyxcbiAgICAgICAgcm9uOiAwLjc5ODY5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTk4NyxcbiAgICAgICAgcm9mZjogMC4wMDA4OTQ3NTEsXG4gICAgICAgIHJvbjogMC43OTg3MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM4MDAsXG4gICAgICAgIGdmcDogMC45OTIwNTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODkxMTc0LFxuICAgICAgICByb246IDAuNzk4NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM4NTAsXG4gICAgICAgIGdmcDogMC45OTIxMTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODg3NzU2LFxuICAgICAgICByb246IDAuNzk4NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM5MDAsXG4gICAgICAgIGdmcDogMC45OTIxNzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODg0NDg5LFxuICAgICAgICByb246IDAuNzk4NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM5NTAsXG4gICAgICAgIGdmcDogMC45OTIyMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODgxMzY2LFxuICAgICAgICByb246IDAuNzk4NzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDAwLFxuICAgICAgICBnZnA6IDAuOTkyMjg4LFxuICAgICAgICByb2ZmOiAwLjAwMDg3ODM4MSxcbiAgICAgICAgcm9uOiAwLjc5ODc1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjM0LFxuICAgICAgICByb2ZmOiAwLjAwMDg3NTUyOSxcbiAgICAgICAgcm9uOiAwLjc5ODc2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjM5LFxuICAgICAgICByb2ZmOiAwLjAwMDg3MjgwMixcbiAgICAgICAgcm9uOiAwLjc5ODc3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4NzAxOTYsXG4gICAgICAgIHJvbjogMC43OTg3ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyMDAsXG4gICAgICAgIGdmcDogMC45OTI0ODIsXG4gICAgICAgIHJvZmY6IDAuMDAwODY3NzA2LFxuICAgICAgICByb246IDAuNzk4Nzg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MjUwLFxuICAgICAgICBnZnA6IDAuOTkyNTI0LFxuICAgICAgICByb2ZmOiAwLjAwMDg2NTMyNSxcbiAgICAgICAgcm9uOiAwLjc5ODc5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjU2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4NjMwNSxcbiAgICAgICAgcm9uOiAwLjc5ODgwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjYwNCxcbiAgICAgICAgcm9mZjogMC4wMDA4NjA4NzUsXG4gICAgICAgIHJvbjogMC43OTg4MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0MDAsXG4gICAgICAgIGdmcDogMC45OTI2NDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODU4Nzk2LFxuICAgICAgICByb246IDAuNzk4ODE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NDUwLFxuICAgICAgICBnZnA6IDAuOTkyNjc2LFxuICAgICAgICByb2ZmOiAwLjAwMDg1NjgwOSxcbiAgICAgICAgcm9uOiAwLjc5ODgyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjcxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1NDkxLFxuICAgICAgICByb246IDAuNzk4ODI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTUwLFxuICAgICAgICBnZnA6IDAuOTkyNzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDg1MzA5NSxcbiAgICAgICAgcm9uOiAwLjc5ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc3MyxcbiAgICAgICAgcm9mZjogMC4wMDA4NTEzNjEsXG4gICAgICAgIHJvbjogMC43OTg4MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ2NTAsXG4gICAgICAgIGdmcDogMC45OTI4MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ5NzAyLFxuICAgICAgICByb246IDAuNzk4ODQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NzAwLFxuICAgICAgICBnZnA6IDAuOTkyODMsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ4MTE4LFxuICAgICAgICByb246IDAuNzk4ODQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NzUwLFxuICAgICAgICBnZnA6IDAuOTkyODU3LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NjYwMyxcbiAgICAgICAgcm9uOiAwLjc5ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODAwLFxuICAgICAgICBnZnA6IDAuOTkyODgyLFxuICAgICAgICByb2ZmOiAwLjAwMDg0NTE1NSxcbiAgICAgICAgcm9uOiAwLjc5ODg1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjkwNixcbiAgICAgICAgcm9mZjogMC4wMDA4NDM3NzIsXG4gICAgICAgIHJvbjogMC43OTg4NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5MDAsXG4gICAgICAgIGdmcDogMC45OTI5MjksXG4gICAgICAgIHJvZmY6IDAuMDAwODQyNDQ5LFxuICAgICAgICByb246IDAuNzk4ODYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0OTUwLFxuICAgICAgICBnZnA6IDAuOTkyOTUxLFxuICAgICAgICByb2ZmOiAwLjAwMDg0MTE4NSxcbiAgICAgICAgcm9uOiAwLjc5ODg2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk3MixcbiAgICAgICAgcm9mZjogMC4wMDA4Mzk5NzcsXG4gICAgICAgIHJvbjogMC43OTg4NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwNTAsXG4gICAgICAgIGdmcDogMC45OTI5OTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODM4ODIyLFxuICAgICAgICByb246IDAuNzk4ODcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgzNzcxOSxcbiAgICAgICAgcm9uOiAwLjc5ODg3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzAzLFxuICAgICAgICByb2ZmOiAwLjAwMDgzNjY2NCxcbiAgICAgICAgcm9uOiAwLjc5ODg3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA0OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzU2NTYsXG4gICAgICAgIHJvbjogMC43OTg4ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUyNTAsXG4gICAgICAgIGdmcDogMC45OTMwNjQsXG4gICAgICAgIHJvZmY6IDAuMDAwODM0NjkyLFxuICAgICAgICByb246IDAuNzk4ODg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODMzNzcxLFxuICAgICAgICByb246IDAuNzk4ODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMDk1LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMjg5MSxcbiAgICAgICAgcm9uOiAwLjc5ODg4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzExLFxuICAgICAgICByb2ZmOiAwLjAwMDgzMjA0OSxcbiAgICAgICAgcm9uOiAwLjc5ODg5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzEyNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzEyNDUsXG4gICAgICAgIHJvbjogMC43OTg4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MDAsXG4gICAgICAgIGdmcDogMC45OTMxMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODMwNDc2LFxuICAgICAgICByb246IDAuNzk4ODk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI5NzQyLFxuICAgICAgICByb246IDAuNzk4ODk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMTYyLFxuICAgICAgICByb2ZmOiAwLjAwMDgyOTA0LFxuICAgICAgICByb246IDAuNzk4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE3MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjgzNjksXG4gICAgICAgIHJvbjogMC43OTg5MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU3MDAsXG4gICAgICAgIGdmcDogMC45OTMxODQsXG4gICAgICAgIHJvZmY6IDAuMDAwODI3NzI3LFxuICAgICAgICByb246IDAuNzk4OTAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMTk1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNzExNCxcbiAgICAgICAgcm9uOiAwLjc5ODkwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIwNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjY1MjgsXG4gICAgICAgIHJvbjogMC43OTg5MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4NTAsXG4gICAgICAgIGdmcDogMC45OTMyMTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODI1OTY4LFxuICAgICAgICByb246IDAuNzk4OTA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMjIzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNTQzMyxcbiAgICAgICAgcm9uOiAwLjc5ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMjMyLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDkyMSxcbiAgICAgICAgcm9uOiAwLjc5ODkxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjQ0MzIsXG4gICAgICAgIHJvbjogMC43OTg5MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwNTAsXG4gICAgICAgIGdmcDogMC45OTMyNDksXG4gICAgICAgIHJvZmY6IDAuMDAwODIzOTY1LFxuICAgICAgICByb246IDAuNzk4OTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMjU2LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzUxOCxcbiAgICAgICAgcm9uOiAwLjc5ODkxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI2MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjMwOTEsXG4gICAgICAgIHJvbjogMC43OTg5MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYyMDAsXG4gICAgICAgIGdmcDogMC45OTMyNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjI2ODMsXG4gICAgICAgIHJvbjogMC43OTg5MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYyNTAsXG4gICAgICAgIGdmcDogMC45OTMyNzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODIyMjkzLFxuICAgICAgICByb246IDAuNzk4OTE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMjgzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTkyLFxuICAgICAgICByb246IDAuNzk4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMjg5LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTU2NCxcbiAgICAgICAgcm9uOiAwLjc5ODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMjk1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTIyNCxcbiAgICAgICAgcm9uOiAwLjc5ODkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjA4OTgsXG4gICAgICAgIHJvbjogMC43OTg5MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MDAsXG4gICAgICAgIGdmcDogMC45OTMzMDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwNTg3LFxuICAgICAgICByb246IDAuNzk4OTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzExLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDI5LFxuICAgICAgICByb246IDAuNzk4OTI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDAwNixcbiAgICAgICAgcm9uOiAwLjc5ODkyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTk3MzQsXG4gICAgICAgIHJvbjogMC43OTg5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3MDAsXG4gICAgICAgIGdmcDogMC45OTMzMjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5NDc0LFxuICAgICAgICByb246IDAuNzk4OTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzI5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTIyNixcbiAgICAgICAgcm9uOiAwLjc5ODkyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg5ODksXG4gICAgICAgIHJvbjogMC43OTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY4NTAsXG4gICAgICAgIGdmcDogMC45OTMzMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NzYzLFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxODU0NixcbiAgICAgICAgcm9uOiAwLjc5ODkyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgzMzksXG4gICAgICAgIHJvbjogMC43OTg5MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMDAsXG4gICAgICAgIGdmcDogMC45OTMzNDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4MTQxLFxuICAgICAgICByb246IDAuNzk4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwNTAsXG4gICAgICAgIGdmcDogMC45OTMzNTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3OTUyLFxuICAgICAgICByb246IDAuNzk4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxMDAsXG4gICAgICAgIGdmcDogMC45OTMzNTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NzcxLFxuICAgICAgICByb246IDAuNzk4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzU3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzU5OCxcbiAgICAgICAgcm9uOiAwLjc5ODkzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzQzMyxcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTcyNzYsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczMDAsXG4gICAgICAgIGdmcDogMC45OTMzNjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3MTI1LFxuICAgICAgICByb246IDAuNzk4OTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzY3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjk4LFxuICAgICAgICByb246IDAuNzk4OTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2ODQzLFxuICAgICAgICByb246IDAuNzk4OTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzcyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjcxMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY1ODUsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1NTAsXG4gICAgICAgIGdmcDogMC45OTMzNzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NDY1LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzc4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjM1LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MjQsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3MDAsXG4gICAgICAgIGdmcDogMC45OTMzODIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MTM1LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzgzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjAzNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU5MzgsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc4NTAsXG4gICAgICAgIGdmcDogMC45OTMzODYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1ODQ3LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTc1OSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU2NzUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NTk1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzkyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTUxOCxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU0NDUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgxNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1Mzc1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzk1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTMwOSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUyNDUsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MTg0LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTEyNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDcsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg0NTAsXG4gICAgICAgIGdmcDogMC45OTM0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTAxNixcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ5NjUsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTE3LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDAzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDg3LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDgyNixcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3ODMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzQzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDcwNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2NjcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjMxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTk3LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTY1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDksXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTM0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDksXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTA0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0NzYsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ0OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDIzLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0Mzk4LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0Mzc1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzUyLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzMxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI3MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI1MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMzYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjA0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNzQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTYxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE0OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMzUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTIzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDExMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMDEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDcxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA2MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNTMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDQ0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAzNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMjksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDIyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAxNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDAyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk5NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTc5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk3NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NjksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjExNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTY0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQ4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTM0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTI1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTAxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODgzLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODgyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODgxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH1cbl07XG5sZXQgbW9kZWxPbkRhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfVxuXTtcbmxldCBtb2RlbE9uT2ZmRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC40MDAzMjksXG4gICAgICAgIHJvZmY6IDAuNDYwMjk4LFxuICAgICAgICByb246IDAuNjgxNjMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwLFxuICAgICAgICBnZnA6IDAuMTQ3NDk5LFxuICAgICAgICByb2ZmOiAwLjU1ODYzOCxcbiAgICAgICAgcm9uOiAwLjYwMTg1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAsXG4gICAgICAgIGdmcDogMC4wNTQ0Njk0LFxuICAgICAgICByb2ZmOiAwLjUzOTExMyxcbiAgICAgICAgcm9uOiAwLjU0MjUxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAsXG4gICAgICAgIGdmcDogMC4wMjAyNzQ2LFxuICAgICAgICByb2ZmOiAwLjQ5ODUyNSxcbiAgICAgICAgcm9uOiAwLjQ5NDY3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAsXG4gICAgICAgIGdmcDogMC4wMDc3MzY5NCxcbiAgICAgICAgcm9mZjogMC40NTkxNDIsXG4gICAgICAgIHJvbjogMC40NTQ0ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwLFxuICAgICAgICBnZnA6IDAuMDAzMTczMzUsXG4gICAgICAgIHJvZmY6IDAuNDI0MjA2LFxuICAgICAgICByb246IDAuNDE5ODUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTU0ODksXG4gICAgICAgIHJvZmY6IDAuMzkzNDQyLFxuICAgICAgICByb246IDAuMzg5NTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTAxMTU0LFxuICAgICAgICByb2ZmOiAwLjM2NjE1NCxcbiAgICAgICAgcm9uOiAwLjM2MjYwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAsXG4gICAgICAgIGdmcDogMC4wMDA4ODA0MzEsXG4gICAgICAgIHJvZmY6IDAuMzQxNzQ0LFxuICAgICAgICByb246IDAuMzM4NTAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDkwNTcxNyxcbiAgICAgICAgcm9mZjogMC4zMTk3NDgsXG4gICAgICAgIHJvbjogMC4zMTY3NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwLFxuICAgICAgICBnZnA6IDAuMDAwOTk2MTQ0LFxuICAgICAgICByb2ZmOiAwLjI5OTgwNCxcbiAgICAgICAgcm9uOiAwLjI5NzAyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAsXG4gICAgICAgIGdmcDogMC4wMDExMTg4NSxcbiAgICAgICAgcm9mZjogMC4yODE2MzMsXG4gICAgICAgIHJvbjogMC4yNzkwMThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwLFxuICAgICAgICBnZnA6IDAuMDAxMjYyNDcsXG4gICAgICAgIHJvZmY6IDAuMjY1MDA5LFxuICAgICAgICByb246IDAuMjYyNTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTQyMzYsXG4gICAgICAgIHJvZmY6IDAuMjQ5NzQ4LFxuICAgICAgICByb246IDAuMjQ3Mzc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTYwMTc2LFxuICAgICAgICByb2ZmOiAwLjIzNTcwMSxcbiAgICAgICAgcm9uOiAwLjIzMzQwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAsXG4gICAgICAgIGdmcDogMC4wMDE3OTc1OSxcbiAgICAgICAgcm9mZjogMC4yMjI3NDIsXG4gICAgICAgIHJvbjogMC4yMjA1MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwLFxuICAgICAgICBnZnA6IDAuMDAyMDEyMSxcbiAgICAgICAgcm9mZjogMC4yMTA3NjQsXG4gICAgICAgIHJvbjogMC4yMDg1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAsXG4gICAgICAgIGdmcDogMC4wMDIyNDY0NixcbiAgICAgICAgcm9mZjogMC4xOTk2NzksXG4gICAgICAgIHJvbjogMC4xOTc0ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwLFxuICAgICAgICBnZnA6IDAuMDAyNTAxODQsXG4gICAgICAgIHJvZmY6IDAuMTg5NDA5LFxuICAgICAgICByb246IDAuMTg3MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwLFxuICAgICAgICBnZnA6IDAuMDAyNzc5MzQsXG4gICAgICAgIHJvZmY6IDAuMTc5ODg5LFxuICAgICAgICByb246IDAuMTc3NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzA3OTk0LFxuICAgICAgICByb2ZmOiAwLjE3MTA2LFxuICAgICAgICByb246IDAuMTY4NzgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAsXG4gICAgICAgIGdmcDogMC4wMDM0MDQ0NCxcbiAgICAgICAgcm9mZjogMC4xNjI4NzIsXG4gICAgICAgIHJvbjogMC4xNjA1MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzc1MzM3LFxuICAgICAgICByb2ZmOiAwLjE1NTI4MyxcbiAgICAgICAgcm9uOiAwLjE1MjgzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwLFxuICAgICAgICBnZnA6IDAuMDA0MTI2OTUsXG4gICAgICAgIHJvZmY6IDAuMTQ4MjUyLFxuICAgICAgICByb246IDAuMTQ1NjkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAsXG4gICAgICAgIGdmcDogMC4wMDQ1MjQ5OCxcbiAgICAgICAgcm9mZjogMC4xNDE3NDcsXG4gICAgICAgIHJvbjogMC4xMzkwNDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDk0Njc2LFxuICAgICAgICByb2ZmOiAwLjEzNTczNyxcbiAgICAgICAgcm9uOiAwLjEzMjg3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwLFxuICAgICAgICBnZnA6IDAuMDA1MzkxMDMsXG4gICAgICAgIHJvZmY6IDAuMTMwMTk0LFxuICAgICAgICByb246IDAuMTI3MTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAsXG4gICAgICAgIGdmcDogMC4wMDU4NTU4NyxcbiAgICAgICAgcm9mZjogMC4xMjUwOTMsXG4gICAgICAgIHJvbjogMC4xMjE4MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNjMzODY2LFxuICAgICAgICByb2ZmOiAwLjEyMDQxNCxcbiAgICAgICAgcm9uOiAwLjExNjg4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwLFxuICAgICAgICBnZnA6IDAuMDA2ODM2MDUsXG4gICAgICAgIHJvZmY6IDAuMTE2MTMzLFxuICAgICAgICByb246IDAuMTEyMzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAsXG4gICAgICAgIGdmcDogMC4wMDczNDM5NyxcbiAgICAgICAgcm9mZjogMC4xMTIyMzMsXG4gICAgICAgIHJvbjogMC4xMDgwOTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNzg1NzY1LFxuICAgICAgICByb2ZmOiAwLjEwODY5NSxcbiAgICAgICAgcm9uOiAwLjEwNDE5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwLFxuICAgICAgICBnZnA6IDAuMDA4MzcxNzQsXG4gICAgICAgIHJvZmY6IDAuMTA1NTAxLFxuICAgICAgICByb246IDAuMTAwNjA2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAsXG4gICAgICAgIGdmcDogMC4wMDg4ODA0LFxuICAgICAgICByb2ZmOiAwLjEwMjYzNCxcbiAgICAgICAgcm9uOiAwLjA5NzI5ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwOTM3NzU0LFxuICAgICAgICByb2ZmOiAwLjEwMDA3OCxcbiAgICAgICAgcm9uOiAwLjA5NDI1NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwOTg1NyxcbiAgICAgICAgcm9mZjogMC4wOTc4MTY0LFxuICAgICAgICByb246IDAuMDkxNDU4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwLFxuICAgICAgICBnZnA6IDAuMDEwMzEyNyxcbiAgICAgICAgcm9mZjogMC4wOTU4MzM0LFxuICAgICAgICByb246IDAuMDg4ODg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODUwLFxuICAgICAgICBnZnA6IDAuMDEwNzM5MSxcbiAgICAgICAgcm9mZjogMC4wOTQxMTM1LFxuICAgICAgICByb246IDAuMDg2NTI2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwLFxuICAgICAgICBnZnA6IDAuMDExMTMxLFxuICAgICAgICByb2ZmOiAwLjA5MjY0MTMsXG4gICAgICAgIHJvbjogMC4wODQzNTUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAsXG4gICAgICAgIGdmcDogMC4wMTE0ODQxLFxuICAgICAgICByb2ZmOiAwLjA5MTQwMTgsXG4gICAgICAgIHJvbjogMC4wODIzNTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAsXG4gICAgICAgIGdmcDogMC4wMTE3OTUxLFxuICAgICAgICByb2ZmOiAwLjA5MDM4MDksXG4gICAgICAgIHJvbjogMC4wODA1MTI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAsXG4gICAgICAgIGdmcDogMC4wMTIwNjEzLFxuICAgICAgICByb2ZmOiAwLjA4OTU2NDYsXG4gICAgICAgIHJvbjogMC4wNzg4MDY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAsXG4gICAgICAgIGdmcDogMC4wMTIyODEzLFxuICAgICAgICByb2ZmOiAwLjA4ODk0MDIsXG4gICAgICAgIHJvbjogMC4wNzcyMjQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAsXG4gICAgICAgIGdmcDogMC4wMTI0NTQ0LFxuICAgICAgICByb2ZmOiAwLjA4ODQ5NTMsXG4gICAgICAgIHJvbjogMC4wNzU3NDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAsXG4gICAgICAgIGdmcDogMC4wMTI1ODA3LFxuICAgICAgICByb2ZmOiAwLjA4ODIxODksXG4gICAgICAgIHJvbjogMC4wNzQzNjc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAsXG4gICAgICAgIGdmcDogMC4wMTI2NjEyLFxuICAgICAgICByb2ZmOiAwLjA4ODEwMDUsXG4gICAgICAgIHJvbjogMC4wNzMwNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY5NzUsXG4gICAgICAgIHJvZmY6IDAuMDg4MTMxMixcbiAgICAgICAgcm9uOiAwLjA3MTgzNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY5MTUsXG4gICAgICAgIHJvZmY6IDAuMDg4MzAyNyxcbiAgICAgICAgcm9uOiAwLjA3MDY2MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY0NTYsXG4gICAgICAgIHJvZmY6IDAuMDg4NjA4MixcbiAgICAgICAgcm9uOiAwLjA2OTUzMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjU2MjMsXG4gICAgICAgIHJvZmY6IDAuMDg5MDQxNyxcbiAgICAgICAgcm9uOiAwLjA2ODQ0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAwLFxuICAgICAgICBnZnA6IDAuMDEyNDQ0MyxcbiAgICAgICAgcm9mZjogMC4wODk1OTg1LFxuICAgICAgICByb246IDAuMDY3Mzg5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTUwLFxuICAgICAgICBnZnA6IDAuMDEyMjk0NSxcbiAgICAgICAgcm9mZjogMC4wOTAyNzQ4LFxuICAgICAgICByb246IDAuMDY2MzU2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjAwLFxuICAgICAgICBnZnA6IDAuMDEyMTE1NSxcbiAgICAgICAgcm9mZjogMC4wOTEwNjgxLFxuICAgICAgICByb246IDAuMDY1MzQwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjUwLFxuICAgICAgICBnZnA6IDAuMDExOTEwMSxcbiAgICAgICAgcm9mZjogMC4wOTE5NzY4LFxuICAgICAgICByb246IDAuMDY0MzM3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzAwLFxuICAgICAgICBnZnA6IDAuMDExNjgwNyxcbiAgICAgICAgcm9mZjogMC4wOTMwMDAzLFxuICAgICAgICByb246IDAuMDYzMzQyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzUwLFxuICAgICAgICBnZnA6IDAuMDExNDMsXG4gICAgICAgIHJvZmY6IDAuMDk0MTM4OCxcbiAgICAgICAgcm9uOiAwLjA2MjM1MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTE2MDEsXG4gICAgICAgIHJvZmY6IDAuMDk1MzkzNyxcbiAgICAgICAgcm9uOiAwLjA2MTM1ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMDg3MzMsXG4gICAgICAgIHJvZmY6IDAuMDk2NzY3MyxcbiAgICAgICAgcm9uOiAwLjA2MDM2NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMDU3MTgsXG4gICAgICAgIHJvZmY6IDAuMDk4MjYyNixcbiAgICAgICAgcm9uOiAwLjA1OTM2NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMDI1NzMsXG4gICAgICAgIHJvZmY6IDAuMDk5ODgzOSxcbiAgICAgICAgcm9uOiAwLjA1ODM1NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwOTkzMTg0LFxuICAgICAgICByb2ZmOiAwLjEwMTYzNixcbiAgICAgICAgcm9uOiAwLjA1NzM0MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwOTU5NzA3LFxuICAgICAgICByb2ZmOiAwLjEwMzUyNSxcbiAgICAgICAgcm9uOiAwLjA1NjMxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTAwLFxuICAgICAgICBnZnA6IDAuMDA5MjU0NjcsXG4gICAgICAgIHJvZmY6IDAuMTA1NTU3LFxuICAgICAgICByb246IDAuMDU1MjgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTUwLFxuICAgICAgICBnZnA6IDAuMDA4OTA2MjEsXG4gICAgICAgIHJvZmY6IDAuMTA3NzQyLFxuICAgICAgICByb246IDAuMDU0MjM0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjAwLFxuICAgICAgICBnZnA6IDAuMDA4NTUzMTgsXG4gICAgICAgIHJvZmY6IDAuMTEwMDg2LFxuICAgICAgICByb246IDAuMDUzMTc2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjUwLFxuICAgICAgICBnZnA6IDAuMDA4MTk3MDMsXG4gICAgICAgIHJvZmY6IDAuMTEyNixcbiAgICAgICAgcm9uOiAwLjA1MjEwNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzgzOTEzLFxuICAgICAgICByb2ZmOiAwLjExNTI5NixcbiAgICAgICAgcm9uOiAwLjA1MTAyNjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNzQ4MDg0LFxuICAgICAgICByb2ZmOiAwLjExODE4NSxcbiAgICAgICAgcm9uOiAwLjA0OTkzNTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzEyMzQzLFxuICAgICAgICByb2ZmOiAwLjEyMTI4LFxuICAgICAgICByb246IDAuMDQ4ODM0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDUwLFxuICAgICAgICBnZnA6IDAuMDA2NzY4MTUsXG4gICAgICAgIHJvZmY6IDAuMTI0NTk2LFxuICAgICAgICByb246IDAuMDQ3NzI0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAwLFxuICAgICAgICBnZnA6IDAuMDA2NDE2MixcbiAgICAgICAgcm9mZjogMC4xMjgxNDksXG4gICAgICAgIHJvbjogMC4wNDY2MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNjA2ODc1LFxuICAgICAgICByb2ZmOiAwLjEzMTk1NSxcbiAgICAgICAgcm9uOiAwLjA0NTQ4MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNTcyNjg4LFxuICAgICAgICByb2ZmOiAwLjEzNjAzMyxcbiAgICAgICAgcm9uOiAwLjA0NDM1MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNTM5MTY2LFxuICAgICAgICByb2ZmOiAwLjE0MDQwNCxcbiAgICAgICAgcm9uOiAwLjA0MzIxNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNTA2NDA3LFxuICAgICAgICByb2ZmOiAwLjE0NTA4OCxcbiAgICAgICAgcm9uOiAwLjA0MjA4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzUwLFxuICAgICAgICBnZnA6IDAuMDA0NzQ1MDUsXG4gICAgICAgIHJvZmY6IDAuMTUwMTA5LFxuICAgICAgICByb246IDAuMDQwOTQzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODAwLFxuICAgICAgICBnZnA6IDAuMDA0NDM1NDYsXG4gICAgICAgIHJvZmY6IDAuMTU1NDksXG4gICAgICAgIHJvbjogMC4wMzk4MDYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4NTAsXG4gICAgICAgIGdmcDogMC4wMDQxMzYwOSxcbiAgICAgICAgcm9mZjogMC4xNjEyNTksXG4gICAgICAgIHJvbjogMC4wMzg2NzEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5MDAsXG4gICAgICAgIGdmcDogMC4wMDM4NDc2MyxcbiAgICAgICAgcm9mZjogMC4xNjc0NDQsXG4gICAgICAgIHJvbjogMC4wMzc1NDA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5NTAsXG4gICAgICAgIGdmcDogMC4wMDM1NzA3LFxuICAgICAgICByb2ZmOiAwLjE3NDA3MixcbiAgICAgICAgcm9uOiAwLjAzNjQxNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzMwNTgsXG4gICAgICAgIHJvZmY6IDAuMTgxMTc2LFxuICAgICAgICByb246IDAuMDM1Mjk5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDUwLFxuICAgICAgICBnZnA6IDAuMDAzMDUzMzcsXG4gICAgICAgIHJvZmY6IDAuMTg4Nzg3LFxuICAgICAgICByb246IDAuMDM0MTkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTAwLFxuICAgICAgICBnZnA6IDAuMDAyODEzNzEsXG4gICAgICAgIHJvZmY6IDAuMTk2OTM4LFxuICAgICAgICByb246IDAuMDMzMDk2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTUwLFxuICAgICAgICBnZnA6IDAuMDAyNTg3MDQsXG4gICAgICAgIHJvZmY6IDAuMjA1NjY0LFxuICAgICAgICByb246IDAuMDMyMDEzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjAwLFxuICAgICAgICBnZnA6IDAuMDAyMzczNDYsXG4gICAgICAgIHJvZmY6IDAuMjE0OTk4LFxuICAgICAgICByb246IDAuMDMwOTQ0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjUwLFxuICAgICAgICBnZnA6IDAuMDAyMTczLFxuICAgICAgICByb2ZmOiAwLjIyNDk3NyxcbiAgICAgICAgcm9uOiAwLjAyOTg5MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTk4NTU1LFxuICAgICAgICByb2ZmOiAwLjIzNTYzMixcbiAgICAgICAgcm9uOiAwLjAyODg1NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTgxMDk0LFxuICAgICAgICByb2ZmOiAwLjI0Njk5OSxcbiAgICAgICAgcm9uOiAwLjAyNzg0MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTY0ODg5LFxuICAgICAgICByb2ZmOiAwLjI1OTEwOCxcbiAgICAgICAgcm9uOiAwLjAyNjg0NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTQ5OTA3LFxuICAgICAgICByb2ZmOiAwLjI3MTk4NyxcbiAgICAgICAgcm9uOiAwLjAyNTg3MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTM2MTA2LFxuICAgICAgICByb2ZmOiAwLjI4NTY2MSxcbiAgICAgICAgcm9uOiAwLjAyNDkxODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTIzNDM4LFxuICAgICAgICByb2ZmOiAwLjMwMDE0NyxcbiAgICAgICAgcm9uOiAwLjAyMzk4ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTExODUzLFxuICAgICAgICByb2ZmOiAwLjMxNTQ1OCxcbiAgICAgICAgcm9uOiAwLjAyMzA4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTAxMjkzLFxuICAgICAgICByb2ZmOiAwLjMzMTU5NyxcbiAgICAgICAgcm9uOiAwLjAyMjIwMThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDkxNzAwMSxcbiAgICAgICAgcm9mZjogMC4zNDg1NTcsXG4gICAgICAgIHJvbjogMC4wMjEzNDU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3NTAsXG4gICAgICAgIGdmcDogMC4wMDA4MzAxNDksXG4gICAgICAgIHJvZmY6IDAuMzY2MzE3LFxuICAgICAgICByb246IDAuMDIwNTE0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODAwLFxuICAgICAgICBnZnA6IDAuMDAwNzUxNzYyLFxuICAgICAgICByb2ZmOiAwLjM4NDg0MyxcbiAgICAgICAgcm9uOiAwLjAxOTcwODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDY4MTIzNixcbiAgICAgICAgcm9mZjogMC40MDQwODQsXG4gICAgICAgIHJvbjogMC4wMTg5Mjc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5MDAsXG4gICAgICAgIGdmcDogMC4wMDA2MTc5NzIsXG4gICAgICAgIHJvZmY6IDAuNDIzOTY5LFxuICAgICAgICByb246IDAuMDE4MTczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5NTAsXG4gICAgICAgIGdmcDogMC4wMDA1NjEzOTMsXG4gICAgICAgIHJvZmY6IDAuNDQ0NDA4LFxuICAgICAgICByb246IDAuMDE3NDQzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAwLFxuICAgICAgICBnZnA6IDAuMDAwNTEwOTQxLFxuICAgICAgICByb2ZmOiAwLjQ2NTI4OSxcbiAgICAgICAgcm9uOiAwLjAxNjczOTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDQ2NjA4NCxcbiAgICAgICAgcm9mZjogMC40ODY0NzgsXG4gICAgICAgIHJvbjogMC4wMTYwNjAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxMDAsXG4gICAgICAgIGdmcDogMC4wMDA0MjYzMTgsXG4gICAgICAgIHJvZmY6IDAuNTA3ODIsXG4gICAgICAgIHJvbjogMC4wMTU0MDU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxNTAsXG4gICAgICAgIGdmcDogMC4wMDAzOTExNjgsXG4gICAgICAgIHJvZmY6IDAuNTI5MTQ0LFxuICAgICAgICByb246IDAuMDE0Nzc1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMzYwMTkzLFxuICAgICAgICByb2ZmOiAwLjU1MDI2MSxcbiAgICAgICAgcm9uOiAwLjAxNDE2OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDMzMjk4MixcbiAgICAgICAgcm9mZjogMC41NzA5NzgsXG4gICAgICAgIHJvbjogMC4wMTM1ODYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzMDAsXG4gICAgICAgIGdmcDogMC4wMDAzMDkxNTIsXG4gICAgICAgIHJvZmY6IDAuNTkxMTAxLFxuICAgICAgICByb246IDAuMDEzMDI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzNTAsXG4gICAgICAgIGdmcDogMC4wMDAyODgzNDksXG4gICAgICAgIHJvZmY6IDAuNjEwNDQ2LFxuICAgICAgICByb246IDAuMDEyNDg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0MDAsXG4gICAgICAgIGdmcDogMC4wMDAyNzAyNDYsXG4gICAgICAgIHJvZmY6IDAuNjI4ODUxLFxuICAgICAgICByb246IDAuMDExOTcxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMjU0NTM4LFxuICAgICAgICByb2ZmOiAwLjY0NjE4NSxcbiAgICAgICAgcm9uOiAwLjAxMTQ3NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI0MDk0MyxcbiAgICAgICAgcm9mZjogMC42NjIzNTcsXG4gICAgICAgIHJvbjogMC4wMTEwMDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1NTAsXG4gICAgICAgIGdmcDogMC4wMDAyMjkyMDEsXG4gICAgICAgIHJvZmY6IDAuNjc3MzE3LFxuICAgICAgICByb246IDAuMDEwNTQ2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMjE5MDcyLFxuICAgICAgICByb2ZmOiAwLjY5MTA1NixcbiAgICAgICAgcm9uOiAwLjAxMDExMDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIxMDMzNyxcbiAgICAgICAgcm9mZjogMC43MDM2MDUsXG4gICAgICAgIHJvbjogMC4wMDk2OTMyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMjAyNzk4LFxuICAgICAgICByb2ZmOiAwLjcxNTAyNCxcbiAgICAgICAgcm9uOiAwLjAwOTI5MzUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxOTYyNzgsXG4gICAgICAgIHJvZmY6IDAuNzI1Mzk1LFxuICAgICAgICByb246IDAuMDA4OTEwODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE5MDYyMyxcbiAgICAgICAgcm9mZjogMC43MzQ4MDYsXG4gICAgICAgIHJvbjogMC4wMDg1NDQ2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTg1Njk4LFxuICAgICAgICByb2ZmOiAwLjc0MzM1MSxcbiAgICAgICAgcm9uOiAwLjAwODE5NDI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxODEzOSxcbiAgICAgICAgcm9mZjogMC43NTExMTgsXG4gICAgICAgIHJvbjogMC4wMDc4NTkwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTc3NjA0LFxuICAgICAgICByb2ZmOiAwLjc1ODE5MSxcbiAgICAgICAgcm9uOiAwLjAwNzUzODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNzQyNjEsXG4gICAgICAgIHJvZmY6IDAuNzY0NjQyLFxuICAgICAgICByb246IDAuMDA3MjMxNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE3MTI5NSxcbiAgICAgICAgcm9mZjogMC43NzA1MzUsXG4gICAgICAgIHJvbjogMC4wMDY5MzgxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTY4NjUzLFxuICAgICAgICByb2ZmOiAwLjc3NTkyNyxcbiAgICAgICAgcm9uOiAwLjAwNjY1NzU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNjYyOSxcbiAgICAgICAgcm9mZjogMC43ODA4NjYsXG4gICAgICAgIHJvbjogMC4wMDYzODkxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTY0MTcsXG4gICAgICAgIHJvZmY6IDAuNzg1Mzk0LFxuICAgICAgICByb246IDAuMDA2MTMyNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2MjI2MyxcbiAgICAgICAgcm9mZjogMC43ODk1NSxcbiAgICAgICAgcm9uOiAwLjAwNTg4NzE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjA1NDIsXG4gICAgICAgIHJvZmY6IDAuNzkzMzY1LFxuICAgICAgICByb246IDAuMDA1NjUyNTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1ODk4NyxcbiAgICAgICAgcm9mZjogMC43OTY4NjksXG4gICAgICAgIHJvbjogMC4wMDU0MjgxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTU3NTc5LFxuICAgICAgICByb2ZmOiAwLjgwMDA4OSxcbiAgICAgICAgcm9uOiAwLjAwNTIxMzY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTYzMDIsXG4gICAgICAgIHJvZmY6IDAuODAzMDQ5LFxuICAgICAgICByb246IDAuMDA1MDA4NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1NTE0MixcbiAgICAgICAgcm9mZjogMC44MDU3NzEsXG4gICAgICAgIHJvbjogMC4wMDQ4MTI1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTU0MDg3LFxuICAgICAgICByb2ZmOiAwLjgwODI3MyxcbiAgICAgICAgcm9uOiAwLjAwNDYyNTA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTMxMjYsXG4gICAgICAgIHJvZmY6IDAuODEwNTc1LFxuICAgICAgICByb246IDAuMDA0NDQ1ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MjI1MSxcbiAgICAgICAgcm9mZjogMC44MTI2OTMsXG4gICAgICAgIHJvbjogMC4wMDQyNzQ1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTUxNDUyLFxuICAgICAgICByb2ZmOiAwLjgxNDY0MSxcbiAgICAgICAgcm9uOiAwLjAwNDExMDczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTA3MjMsXG4gICAgICAgIHJvZmY6IDAuODE2NDM0LFxuICAgICAgICByb246IDAuMDAzOTU0MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MDA1NixcbiAgICAgICAgcm9mZjogMC44MTgwODUsXG4gICAgICAgIHJvbjogMC4wMDM4MDQ0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ5NDQ3LFxuICAgICAgICByb2ZmOiAwLjgxOTYwNCxcbiAgICAgICAgcm9uOiAwLjAwMzY2MTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDg4ODksXG4gICAgICAgIHJvZmY6IDAuODIxMDAzLFxuICAgICAgICByb246IDAuMDAzNTI0NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0ODM3OCxcbiAgICAgICAgcm9mZjogMC44MjIyOTIsXG4gICAgICAgIHJvbjogMC4wMDMzOTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDc5MSxcbiAgICAgICAgcm9mZjogMC44MjM0NzksXG4gICAgICAgIHJvbjogMC4wMDMyNjg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ3NDgxLFxuICAgICAgICByb2ZmOiAwLjgyNDU3MixcbiAgICAgICAgcm9uOiAwLjAwMzE0OTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDcwODcsXG4gICAgICAgIHJvZmY6IDAuODI1NTgsXG4gICAgICAgIHJvbjogMC4wMDMwMzUyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ2NzI1LFxuICAgICAgICByb2ZmOiAwLjgyNjUwOSxcbiAgICAgICAgcm9uOiAwLjAwMjkyNjE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDYzOTMsXG4gICAgICAgIHJvZmY6IDAuODI3MzY1LFxuICAgICAgICByb246IDAuMDAyODIxODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NjA4OCxcbiAgICAgICAgcm9mZjogMC44MjgxNTUsXG4gICAgICAgIHJvbjogMC4wMDI3MjIxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ1ODA4LFxuICAgICAgICByb2ZmOiAwLjgyODg4NCxcbiAgICAgICAgcm9uOiAwLjAwMjYyNjc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDU1NSxcbiAgICAgICAgcm9mZjogMC44Mjk1NTYsXG4gICAgICAgIHJvbjogMC4wMDI1MzU2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ1MzEyLFxuICAgICAgICByb2ZmOiAwLjgzMDE3NyxcbiAgICAgICAgcm9uOiAwLjAwMjQ0ODYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDUwOTMsXG4gICAgICAgIHJvZmY6IDAuODMwNzUsXG4gICAgICAgIHJvbjogMC4wMDIzNjUzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0ODkyLFxuICAgICAgICByb2ZmOiAwLjgzMTI3OSxcbiAgICAgICAgcm9uOiAwLjAwMjI4NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQ3MDYsXG4gICAgICAgIHJvZmY6IDAuODMxNzY5LFxuICAgICAgICByb246IDAuMDAyMjA5ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDUzNSxcbiAgICAgICAgcm9mZjogMC44MzIyMjEsXG4gICAgICAgIHJvbjogMC4wMDIxMzcxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0Mzc3LFxuICAgICAgICByb2ZmOiAwLjgzMjYzOCxcbiAgICAgICAgcm9uOiAwLjAwMjA2NzY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQyMzEsXG4gICAgICAgIHJvZmY6IDAuODMzMDI1LFxuICAgICAgICByb246IDAuMDAyMDAxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0MDk2LFxuICAgICAgICByb2ZmOiAwLjgzMzM4MyxcbiAgICAgICAgcm9uOiAwLjAwMTkzNzg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM5NzIsXG4gICAgICAgIHJvZmY6IDAuODMzNzE0LFxuICAgICAgICByb246IDAuMDAxODc3MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mzg1NyxcbiAgICAgICAgcm9mZjogMC44MzQwMixcbiAgICAgICAgcm9uOiAwLjAwMTgxOTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM3NTEsXG4gICAgICAgIHJvZmY6IDAuODM0MzA0LFxuICAgICAgICByb246IDAuMDAxNzYzODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzY1MixcbiAgICAgICAgcm9mZjogMC44MzQ1NjcsXG4gICAgICAgIHJvbjogMC4wMDE3MTA5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzNTYxLFxuICAgICAgICByb2ZmOiAwLjgzNDgxMSxcbiAgICAgICAgcm9uOiAwLjAwMTY2MDMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM0NzcsXG4gICAgICAgIHJvZmY6IDAuODM1MDM3LFxuICAgICAgICByb246IDAuMDAxNjExOTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzM5OCxcbiAgICAgICAgcm9mZjogMC44MzUyNDcsXG4gICAgICAgIHJvbjogMC4wMDE1NjU3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMzI2LFxuICAgICAgICByb2ZmOiAwLjgzNTQ0MixcbiAgICAgICAgcm9uOiAwLjAwMTUyMTU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMyNTksXG4gICAgICAgIHJvZmY6IDAuODM1NjIzLFxuICAgICAgICByb246IDAuMDAxNDc5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzE5NixcbiAgICAgICAgcm9mZjogMC44MzU3OTEsXG4gICAgICAgIHJvbjogMC4wMDE0MzkwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMTM4LFxuICAgICAgICByb2ZmOiAwLjgzNTk0OCxcbiAgICAgICAgcm9uOiAwLjAwMTQwMDQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMwODQsXG4gICAgICAgIHJvZmY6IDAuODM2MDkzLFxuICAgICAgICByb246IDAuMDAxMzYzNTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzAzNCxcbiAgICAgICAgcm9mZjogMC44MzYyMjgsXG4gICAgICAgIHJvbjogMC4wMDEzMjgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyOTg4LFxuICAgICAgICByb2ZmOiAwLjgzNjM1NCxcbiAgICAgICAgcm9uOiAwLjAwMTI5NDcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI5NDQsXG4gICAgICAgIHJvZmY6IDAuODM2NDcyLFxuICAgICAgICByb246IDAuMDAxMjYyNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjkwNCxcbiAgICAgICAgcm9mZjogMC44MzY1ODEsXG4gICAgICAgIHJvbjogMC4wMDEyMzE3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyODY2LFxuICAgICAgICByb2ZmOiAwLjgzNjY4MyxcbiAgICAgICAgcm9uOiAwLjAwMTIwMjQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI4MzEsXG4gICAgICAgIHJvZmY6IDAuODM2Nzc4LFxuICAgICAgICByb246IDAuMDAxMTc0MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjc5OSxcbiAgICAgICAgcm9mZjogMC44MzY4NjcsXG4gICAgICAgIHJvbjogMC4wMDExNDc0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzY4LFxuICAgICAgICByb2ZmOiAwLjgzNjk1LFxuICAgICAgICByb246IDAuMDAxMTIxODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjc0LFxuICAgICAgICByb2ZmOiAwLjgzNzAyNyxcbiAgICAgICAgcm9uOiAwLjAwMTA5NzMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI3MTMsXG4gICAgICAgIHJvZmY6IDAuODM3MDk5LFxuICAgICAgICByb246IDAuMDAxMDczOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjg5LFxuICAgICAgICByb2ZmOiAwLjgzNzE2NyxcbiAgICAgICAgcm9uOiAwLjAwMTA1MTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2NjUsXG4gICAgICAgIHJvZmY6IDAuODM3MjMsXG4gICAgICAgIHJvbjogMC4wMDEwMzAxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjQ0LFxuICAgICAgICByb2ZmOiAwLjgzNzI5LFxuICAgICAgICByb246IDAuMDAxMDA5NjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjYyMyxcbiAgICAgICAgcm9mZjogMC44MzczNDUsXG4gICAgICAgIHJvbjogMC4wMDA5OTAxMjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjYwNCxcbiAgICAgICAgcm9mZjogMC44MzczOTcsXG4gICAgICAgIHJvbjogMC4wMDA5NzE0NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU4NyxcbiAgICAgICAgcm9mZjogMC44Mzc0NDYsXG4gICAgICAgIHJvbjogMC4wMDA5NTM1OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU3LFxuICAgICAgICByb2ZmOiAwLjgzNzQ5MixcbiAgICAgICAgcm9uOiAwLjAwMDkzNjU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1NTQsXG4gICAgICAgIHJvZmY6IDAuODM3NTM1LFxuICAgICAgICByb246IDAuMDAwOTIwMjM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1NCxcbiAgICAgICAgcm9mZjogMC44Mzc1NzUsXG4gICAgICAgIHJvbjogMC4wMDA5MDQ2NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjUyNixcbiAgICAgICAgcm9mZjogMC44Mzc2MTMsXG4gICAgICAgIHJvbjogMC4wMDA4ODk3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTEzLFxuICAgICAgICByb2ZmOiAwLjgzNzY0OCxcbiAgICAgICAgcm9uOiAwLjAwMDg3NTU0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTAxLFxuICAgICAgICByb2ZmOiAwLjgzNzY4MixcbiAgICAgICAgcm9uOiAwLjAwMDg2MTk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDg5LFxuICAgICAgICByb2ZmOiAwLjgzNzcxMyxcbiAgICAgICAgcm9uOiAwLjAwMDg0ODk0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDc5LFxuICAgICAgICByb2ZmOiAwLjgzNzc0MyxcbiAgICAgICAgcm9uOiAwLjAwMDgzNjUyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDY4LFxuICAgICAgICByb2ZmOiAwLjgzNzc3MSxcbiAgICAgICAgcm9uOiAwLjAwMDgyNDY1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDU5LFxuICAgICAgICByb2ZmOiAwLjgzNzc5NyxcbiAgICAgICAgcm9uOiAwLjAwMDgxMzMxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDUsXG4gICAgICAgIHJvZmY6IDAuODM3ODIyLFxuICAgICAgICByb246IDAuMDAwODAyNDc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NDIsXG4gICAgICAgIHJvZmY6IDAuODM3ODQ1LFxuICAgICAgICByb246IDAuMDAwNzkyMTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MzQsXG4gICAgICAgIHJvZmY6IDAuODM3ODY3LFxuICAgICAgICByb246IDAuMDAwNzgyMjE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MjYsXG4gICAgICAgIHJvZmY6IDAuODM3ODg4LFxuICAgICAgICByb246IDAuMDAwNzcyNzU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MTksXG4gICAgICAgIHJvZmY6IDAuODM3OTA3LFxuICAgICAgICByb246IDAuMDAwNzYzNzEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MTIsXG4gICAgICAgIHJvZmY6IDAuODM3OTI2LFxuICAgICAgICByb246IDAuMDAwNzU1MDcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDA2LFxuICAgICAgICByb2ZmOiAwLjgzNzk0MyxcbiAgICAgICAgcm9uOiAwLjAwMDc0NjgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQsXG4gICAgICAgIHJvZmY6IDAuODM3OTYsXG4gICAgICAgIHJvbjogMC4wMDA3Mzg5MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzOTQsXG4gICAgICAgIHJvZmY6IDAuODM3OTc2LFxuICAgICAgICByb246IDAuMDAwNzMxMzc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzg5LFxuICAgICAgICByb2ZmOiAwLjgzNzk5LFxuICAgICAgICByb246IDAuMDAwNzI0MTcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzg0LFxuICAgICAgICByb2ZmOiAwLjgzODAwNCxcbiAgICAgICAgcm9uOiAwLjAwMDcxNzI4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM3OSxcbiAgICAgICAgcm9mZjogMC44MzgwMTgsXG4gICAgICAgIHJvbjogMC4wMDA3MTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzc1LFxuICAgICAgICByb2ZmOiAwLjgzODAzLFxuICAgICAgICByb246IDAuMDAwNzA0NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNyxcbiAgICAgICAgcm9mZjogMC44MzgwNDIsXG4gICAgICAgIHJvbjogMC4wMDA2OTgzOThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNjYsXG4gICAgICAgIHJvZmY6IDAuODM4MDUzLFxuICAgICAgICByb246IDAuMDAwNjkyNjUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzYzLFxuICAgICAgICByb2ZmOiAwLjgzODA2NCxcbiAgICAgICAgcm9uOiAwLjAwMDY4NzE2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM1OSxcbiAgICAgICAgcm9mZjogMC44MzgwNzQsXG4gICAgICAgIHJvbjogMC4wMDA2ODE5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNTUsXG4gICAgICAgIHJvZmY6IDAuODM4MDg0LFxuICAgICAgICByb246IDAuMDAwNjc2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM1MixcbiAgICAgICAgcm9mZjogMC44MzgwOTMsXG4gICAgICAgIHJvbjogMC4wMDA2NzIxMDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNDksXG4gICAgICAgIHJvZmY6IDAuODM4MTAxLFxuICAgICAgICByb246IDAuMDAwNjY3NTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzQ2LFxuICAgICAgICByb2ZmOiAwLjgzODEwOSxcbiAgICAgICAgcm9uOiAwLjAwMDY2MzE1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0MyxcbiAgICAgICAgcm9mZjogMC44MzgxMTcsXG4gICAgICAgIHJvbjogMC4wMDA2NTg5NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNDEsXG4gICAgICAgIHJvZmY6IDAuODM4MTI1LFxuICAgICAgICByb246IDAuMDAwNjU0OTcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzM4LFxuICAgICAgICByb2ZmOiAwLjgzODEzMixcbiAgICAgICAgcm9uOiAwLjAwMDY1MTE1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMzNixcbiAgICAgICAgcm9mZjogMC44MzgxMzgsXG4gICAgICAgIHJvbjogMC4wMDA2NDc1MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzQsXG4gICAgICAgIHJvZmY6IDAuODM4MTQ1LFxuICAgICAgICByb246IDAuMDAwNjQ0MDEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzMxLFxuICAgICAgICByb2ZmOiAwLjgzODE1MSxcbiAgICAgICAgcm9uOiAwLjAwMDY0MDY3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyOSxcbiAgICAgICAgcm9mZjogMC44MzgxNTYsXG4gICAgICAgIHJvbjogMC4wMDA2Mzc0OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjcsXG4gICAgICAgIHJvZmY6IDAuODM4MTYyLFxuICAgICAgICByb246IDAuMDAwNjM0NDQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI2LFxuICAgICAgICByb2ZmOiAwLjgzODE2NyxcbiAgICAgICAgcm9uOiAwLjAwMDYzMTUzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyNCxcbiAgICAgICAgcm9mZjogMC44MzgxNzIsXG4gICAgICAgIHJvbjogMC4wMDA2Mjg3NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjIsXG4gICAgICAgIHJvZmY6IDAuODM4MTc2LFxuICAgICAgICByb246IDAuMDAwNjI2MDk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzIxLFxuICAgICAgICByb2ZmOiAwLjgzODE4MSxcbiAgICAgICAgcm9uOiAwLjAwMDYyMzU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE5LFxuICAgICAgICByb2ZmOiAwLjgzODE4NSxcbiAgICAgICAgcm9uOiAwLjAwMDYyMTEzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxOCxcbiAgICAgICAgcm9mZjogMC44MzgxODksXG4gICAgICAgIHJvbjogMC4wMDA2MTg4MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTYsXG4gICAgICAgIHJvZmY6IDAuODM4MTkzLFxuICAgICAgICByb246IDAuMDAwNjE2NTk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE1LFxuICAgICAgICByb2ZmOiAwLjgzODE5NyxcbiAgICAgICAgcm9uOiAwLjAwMDYxNDQ3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxNCxcbiAgICAgICAgcm9mZjogMC44MzgyLFxuICAgICAgICByb246IDAuMDAwNjEyNDU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzEyLFxuICAgICAgICByb2ZmOiAwLjgzODIwMyxcbiAgICAgICAgcm9uOiAwLjAwMDYxMDUxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxMSxcbiAgICAgICAgcm9mZjogMC44MzgyMDcsXG4gICAgICAgIHJvbjogMC4wMDA2MDg2NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMSxcbiAgICAgICAgcm9mZjogMC44MzgyMSxcbiAgICAgICAgcm9uOiAwLjAwMDYwNjkwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwOSxcbiAgICAgICAgcm9mZjogMC44MzgyMTIsXG4gICAgICAgIHJvbjogMC4wMDA2MDUyMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDgsXG4gICAgICAgIHJvZmY6IDAuODM4MjE1LFxuICAgICAgICByb246IDAuMDAwNjAzNjAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA3LFxuICAgICAgICByb2ZmOiAwLjgzODIxOCxcbiAgICAgICAgcm9uOiAwLjAwMDYwMjA2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA2LFxuICAgICAgICByb2ZmOiAwLjgzODIyLFxuICAgICAgICByb246IDAuMDAwNjAwNTg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA2LFxuICAgICAgICByb2ZmOiAwLjgzODIyMyxcbiAgICAgICAgcm9uOiAwLjAwMDU5OTE3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNSxcbiAgICAgICAgcm9mZjogMC44MzgyMjUsXG4gICAgICAgIHJvbjogMC4wMDA1OTc4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDQsXG4gICAgICAgIHJvZmY6IDAuODM4MjI3LFxuICAgICAgICByb246IDAuMDAwNTk2NTQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAzLFxuICAgICAgICByb2ZmOiAwLjgzODIyOSxcbiAgICAgICAgcm9uOiAwLjAwMDU5NTMxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMyxcbiAgICAgICAgcm9mZjogMC44MzgyMzEsXG4gICAgICAgIHJvbjogMC4wMDA1OTQxNDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDIsXG4gICAgICAgIHJvZmY6IDAuODM4MjMzLFxuICAgICAgICByb246IDAuMDAwNTkzMDE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAxLFxuICAgICAgICByb2ZmOiAwLjgzODIzNSxcbiAgICAgICAgcm9uOiAwLjAwMDU5MTk0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMSxcbiAgICAgICAgcm9mZjogMC44MzgyMzYsXG4gICAgICAgIHJvbjogMC4wMDA1OTA5MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzLFxuICAgICAgICByb2ZmOiAwLjgzODIzOCxcbiAgICAgICAgcm9uOiAwLjAwMDU4OTk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMsXG4gICAgICAgIHJvZmY6IDAuODM4MjQsXG4gICAgICAgIHJvbjogMC4wMDA1ODkwMDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTksXG4gICAgICAgIHJvZmY6IDAuODM4MjQxLFxuICAgICAgICByb246IDAuMDAwNTg4MTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk5LFxuICAgICAgICByb2ZmOiAwLjgzODI0MixcbiAgICAgICAgcm9uOiAwLjAwMDU4NzI1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OCxcbiAgICAgICAgcm9mZjogMC44MzgyNDQsXG4gICAgICAgIHJvbjogMC4wMDA1ODY0MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTgsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ1LFxuICAgICAgICByb246IDAuMDAwNTg1NjU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk3LFxuICAgICAgICByb2ZmOiAwLjgzODI0NixcbiAgICAgICAgcm9uOiAwLjAwMDU4NDkxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NyxcbiAgICAgICAgcm9mZjogMC44MzgyNDcsXG4gICAgICAgIHJvbjogMC4wMDA1ODQxOThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTYsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ5LFxuICAgICAgICByb246IDAuMDAwNTgzNTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk2LFxuICAgICAgICByb2ZmOiAwLjgzODI1LFxuICAgICAgICByb246IDAuMDAwNTgyODY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk2LFxuICAgICAgICByb2ZmOiAwLjgzODI1MSxcbiAgICAgICAgcm9uOiAwLjAwMDU4MjI0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NSxcbiAgICAgICAgcm9mZjogMC44MzgyNTIsXG4gICAgICAgIHJvbjogMC4wMDA1ODE2NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTUsXG4gICAgICAgIHJvZmY6IDAuODM4MjUzLFxuICAgICAgICByb246IDAuMDAwNTgxMDc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk1LFxuICAgICAgICByb2ZmOiAwLjgzODI1MyxcbiAgICAgICAgcm9uOiAwLjAwMDU4MDUzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NCxcbiAgICAgICAgcm9mZjogMC44MzgyNTQsXG4gICAgICAgIHJvbjogMC4wMDA1ODAwMTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTQsXG4gICAgICAgIHJvZmY6IDAuODM4MjU1LFxuICAgICAgICByb246IDAuMDAwNTc5NTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NixcbiAgICAgICAgcm9uOiAwLjAwMDU3OTA0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NCxcbiAgICAgICAgcm9mZjogMC44MzgyNTcsXG4gICAgICAgIHJvbjogMC4wMDA1Nzg1OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTMsXG4gICAgICAgIHJvZmY6IDAuODM4MjU3LFxuICAgICAgICByb246IDAuMDAwNTc4MTYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkzLFxuICAgICAgICByb2ZmOiAwLjgzODI1OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3Nzc0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTksXG4gICAgICAgIHJvbjogMC4wMDA1NzczNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTMsXG4gICAgICAgIHJvZmY6IDAuODM4MjU5LFxuICAgICAgICByb246IDAuMDAwNTc2OTczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2LFxuICAgICAgICByb246IDAuMDAwNTc2NjEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2LFxuICAgICAgICByb246IDAuMDAwNTc2MjY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2MSxcbiAgICAgICAgcm9uOiAwLjAwMDU3NTkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNjEsXG4gICAgICAgIHJvbjogMC4wMDA1NzU2MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYyLFxuICAgICAgICByb246IDAuMDAwNTc1MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjYyLFxuICAgICAgICByb246IDAuMDAwNTc1MDMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2MyxcbiAgICAgICAgcm9uOiAwLjAwMDU3NDc1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjMsXG4gICAgICAgIHJvbjogMC4wMDA1NzQ0OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY0LFxuICAgICAgICByb246IDAuMDAwNTc0MjQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NCxcbiAgICAgICAgcm9uOiAwLjAwMDU3NDAwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjQsXG4gICAgICAgIHJvbjogMC4wMDA1NzM3NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY1LFxuICAgICAgICByb246IDAuMDAwNTczNTU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MzM0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MzE0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NixcbiAgICAgICAgcm9uOiAwLjAwMDU3Mjk1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NixcbiAgICAgICAgcm9uOiAwLjAwMDU3Mjc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyNTk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyNDI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY3LFxuICAgICAgICByb246IDAuMDAwNTcyMjY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY3LFxuICAgICAgICByb246IDAuMDAwNTcyMTE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY3LFxuICAgICAgICByb246IDAuMDAwNTcxOTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzE4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTY5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzE1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzE0NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxMzMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTIyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzExMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcxMDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDkxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA4MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwNzM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDU2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDQ5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDQxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDM0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMjE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMTU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMDk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMDM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTY5OTg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTY5OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTg4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NzkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTcwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk2MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NTk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTU2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0OTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NDQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTQxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkzODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5MzYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTMzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkzMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5Mjk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTI3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MjM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTIxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTE4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTEzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTAzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwMjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTAwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOFxuICAgIH1cbl07IiwidmFyIHNpdGVtYXAgPSB7XHJcbiAgICAnJzogJ2hvbWUnLFxyXG4gICAgXHJcbiAgICAnT3ZlcnZpZXdfUHJvamVjdCc6ICdxdW9ydXMnLFxyXG4gICAgJ0Rlc2NyaXB0aW9uJzogJ3F1b3J1cycsXHJcbiAgICAnRGVzaWduJzogJ3F1b3J1cycsXHJcbiAgICAnRXhwZXJpbWVudHMnOiAncXVvcnVzJyxcclxuICAgICdOb3RlYm9vayc6ICdxdW9ydXMnLFxyXG4gICAgJ0ludGVyTGFiJzogJ3F1b3J1cycsXHJcbiAgICAnTW9kZWwnOiAncXVvcnVzJyxcclxuICAgICdSZXN1bHRzJzogJ3F1b3J1cycsXHJcbiAgICAnRGVtb25zdHJhdGUnOiAncXVvcnVzJyxcclxuICAgICdJbXByb3ZlJzogJ3F1b3J1cycsXHJcblxyXG4gICAgJ1BhcnRzJzogJ3F1b3J1cycsXHJcbiAgICAnQmFzaWNfUGFydCc6ICdxdW9ydXMnLFxyXG4gICAgJ0NvbXBvc2l0ZV9QYXJ0JzogJ3F1b3J1cycsXHJcbiAgICAnUGFydF9Db2xsZWN0aW9uJzogJ3F1b3J1cycsXHJcblxyXG4gICAgJ1NhZmV0eSc6ICdxdW9ydXMnLFxyXG5cclxuICAgICdPdmVydmlld19IUCc6ICdocCcsXHJcbiAgICAnSHVtYW5fUHJhY3RpY2VzJzogJ2hwJyxcclxuICAgICdQdWJsaWNfRW5nYWdlbWVudCc6ICdocCcsXHJcblxyXG4gICAgJ1RlYW0nOiAndGVhbScsXHJcbiAgICAnQ29sbGFib3JhdGlvbnMnOiAndGVhbScsXHJcbiAgICAnQXR0cmlidXRpb25zJzogJ3RlYW0nLFxyXG5cclxuICAgICdBcHBsaWVkX0Rlc2lnbic6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnRW50cmVwcmVuZXVyc2hpcCc6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnSGFyZHdhcmUnOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ01lYXN1cmVtZW50JzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdNb2RlbCc6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnU29mdHdhcmUnOiAnY29tcGV0aXRpb24nXHJcbn1cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XHJcbiAgICB2YXIgY3VybmF2aXRlbSA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xyXG4gICAgaWYoY3VybmF2aXRlbS5tYXRjaCgvaWdlbVxcLm9yZy9pKSkgeyAvLyBXZSBrbm93IHdlJ3JlIGxpdmVcclxuICAgICAgICBjdXJuYXZpdGVtID0gY3VybmF2aXRlbS5yZXBsYWNlKC8oaHR0cDpcXC9cXC8pP1xcZHs0fVxcLmlnZW1cXC5vcmdcXC5UZWFtOlxcdytcXC8/L2ksICcnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGN1cm5hdml0ZW0gPSBjdXJuYXZpdGVtLnJlcGxhY2UoLyhodHRwOlxcL1xcLyk/bG9jYWxob3N0OlxcZCtcXC8/LywgJycpO1xyXG4gICAgICAgIGN1cm5hdml0ZW0gPSBjdXJuYXZpdGVtLnJlcGxhY2UoL1xcLmh0bWwvaSwgJycpO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coY3VybmF2aXRlbSk7XHJcbiAgICAkKCcuJyArIHNpdGVtYXBbY3VybmF2aXRlbV0pLmFkZENsYXNzKCdjdXJyZW50Jyk7XHJcbn0pIiwiLy8gQ29kZSBjb3VydGVzeSBvZiBNb2hhbWVkIEhhc2FuXHJcbi8vIGh0dHBzOi8vY29kZXBlbi5pby9NaG1kaGFzYW4vcGVuL21BZGFRRVxyXG5cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xyXG4gIFxyXG4gICd1c2Ugc3RyaWN0JztcclxuICBcclxuICAgdmFyIGMsIGN1cnJlbnRTY3JvbGxUb3AgPSAwLFxyXG4gICAgICAgbmF2YmFyID0gJCgnaGVhZGVyJyk7XHJcblxyXG4gICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIGEgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCk7XHJcbiAgICAgIHZhciBiID0gbmF2YmFyLmhlaWdodCgpO1xyXG4gICAgIFxyXG4gICAgICBjdXJyZW50U2Nyb2xsVG9wID0gYTtcclxuICAgICBcclxuICAgICAgaWYgKGMgPCBjdXJyZW50U2Nyb2xsVG9wICYmIGEgPiBiICsgYikge1xyXG4gICAgICAgIG5hdmJhci5hZGRDbGFzcyhcInNjcm9sbFVwXCIpO1xyXG4gICAgICB9IGVsc2UgaWYgKGMgPiBjdXJyZW50U2Nyb2xsVG9wICYmICEoYSA8PSBiKSkge1xyXG4gICAgICAgIG5hdmJhci5yZW1vdmVDbGFzcyhcInNjcm9sbFVwXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGMgPSBjdXJyZW50U2Nyb2xsVG9wO1xyXG4gIH0pO1xyXG4gIFxyXG59KTsiLCIvL0NvZGUgY291cnRlc3kgb2YgaHR0cHM6Ly9jb2RlcGVuLmlvL2tydXhvci9wZW4vQ3dwRnFcblxuJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbigpIHtcbiAgICBpZiAoJCh0aGlzKS5zY3JvbGxUb3AoKSA+IDUwICkge1xuICAgICAgICAkKCcuc2Nyb2xsdG9wOmhpZGRlbicpLnN0b3AodHJ1ZSwgdHJ1ZSkuZmFkZUluKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgJCgnLnNjcm9sbHRvcCcpLnN0b3AodHJ1ZSwgdHJ1ZSkuZmFkZU91dCgpO1xuICAgIH1cbn0pO1xuJChmdW5jdGlvbigpeyQoXCIuc2Nyb2xsXCIpLmNsaWNrKGZ1bmN0aW9uKCl7JChcImh0bWwsYm9keVwiKS5hbmltYXRlKHtzY3JvbGxUb3A6JChcIiN0b3BcIikub2Zmc2V0KCkudG9wfSxcIjEwMDBcIik7cmV0dXJuIGZhbHNlfSl9KTsiXX0=

Revision as of 23:41, 17 October 2018

/**

* This page and wiki was built with the help of igem-wikibrick, a tool created by Virginia iGEM 2018
* @version v0.7.3
* @version v0.7.3
* @link https://github.com/Virginia-iGEM/igem-wikibrick
* @license MIT
*/

/*

Copyright (C) Federico Zivolo 2018
Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
*/(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function h(e,t,o,n){return J(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?parseInt(o['offset'+e])+parseInt(n['margin'+('Height'===e?'Top':'Left')])+parseInt(n['margin'+('Height'===e?'Bottom':'Right')]):0)}function c(e){var t=e.body,o=e.documentElement,n=r(10)&&getComputedStyle(o);return{height:h('Height',t,o,n),width:h('Width',t,o,n)}}function g(e){return le({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c(e.ownerDocument):{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var u=t(e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&s&&(a.top=J(a.top,0),a.left=J(a.left,0));var b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var y=parseFloat(m.marginTop,10),w=parseFloat(m.marginLeft,10);b.top-=h-y,b.bottom-=h-y,b.left-=c-w,b.right-=c-w,b.marginTop=y,b.marginLeft=w}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function y(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=J(o.clientWidth,window.innerWidth||0),r=J(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return g(d)}function w(e){var n=e.nodeName;return'BODY'===n||'HTML'===n?!1:'fixed'===t(e,'position')||w(o(e))}function E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=y(d,p);else{var l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var f=b(l,d,p);if('HTML'===l.nodeName&&!w(d)){var m=c(e.ownerDocument),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else s=f}i=i||0;var u='number'==typeof i;return s.left+=u?i:i.left||0,s.top+=u?i:i.top||0,s.right-=u?i:i.right||0,s.bottom-=u?i:i.bottom||0,s}function x(e){var t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return le({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:)}function L(e,t,o){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=n?E(t):a(t,o);return b(o,i,n)}function S(e){var t=getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),n=parseFloat(t.marginLeft)+parseFloat(t.marginRight),i={width:e.offsetWidth+n,height:e.offsetHeight+o};return i}function T(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function D(e,t,o){o=o.split('-')[0];var n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function C(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=C(e,function(e){return e[t]===o});return e.indexOf(n)}function P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return i.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=D(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function H(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var i=t[n],r=i?+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function B(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position=,this.popper.style.top=,this.popper.style.left=,this.popper.style.right=,this.popper.style.bottom=,this.popper.style.willChange=,this.popper.style[H('transform')]=),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function A(e){var t=e.ownerDocument;return t?t.defaultView:window}function M(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function F(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=F(this.reference,this.options,this.state,this.scheduleUpdate))}function R(e,t){return A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.reference,this.state))}function Y(e){return!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function j(e,t){Object.keys(t).forEach(function(o){var n=;-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function K(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function q(e,t,o){var n=C(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return i}function G(e){return'end'===e?'start':'start'===e?'end':e}function V(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=me.indexOf(e),n=me.slice(o+1).concat(me.slice(0,o));return t?n.reverse():n}function z(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?J(document.documentElement.clientHeight,window.innerHeight||0):J(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function _(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(C(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return z(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function X(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return o=Y(+n)?[+n,0]:_(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var Q=Math.min,Z=Math.round,$=Math.floor,J=Math.max,ee='undefined'!=typeof window&&'undefined'!=typeof document,te=['Edge','Trident','Firefox'],oe=0,ne=0;ne<te.length;ne+=1)if(ee&&0<=navigator.userAgent.indexOf(te[ne])){oe=1;break}var i=ee&&window.Promise,ie=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},oe))}},re=ee&&!!(window.MSInputMethodContext&&document.documentMode),pe=ee&&/MSIE 10/.test(navigator.userAgent),se=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},de=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),ae=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},le=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},fe=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],me=fe.slice(3),he={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ce=function(){function t(o,n){var i=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};se(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=ie(this.update.bind(this)),this.options=le({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(le({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=le({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return le({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return de(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return B.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return U.call(this)}}]),t}();return ce.Utils=('undefined'==typeof window?global:window).PopperUtils,ce.placements=fe,ce.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:ae({},d,r[d]),end:ae({},d,r[d]+r[a]-p[a])};e.offsets.popper=le({},p,l[n])}return e}},offset:{order:200,enabled:!0,fn:X,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var n=H('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top=,i.left=,i[n]=;var a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];return f[e]<a[e]&&!t.escapeWithReference&&(o=J(f[e],a[e])),ae({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=f[o];return f[e]>a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=$,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!q(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,y=t(e.instance.popper),w=parseFloat(y['margin'+f],10),E=parseFloat(y['border'+f+'Width'],10),v=b-e.offsets.popper[m]-w-E;return v=J(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,Z(v)),ae(n,h,),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||,p=[];switch(t.behavior){case he.FLIP:p=[n,i];break;case he.CLOCKWISE:p=V(n);break;case he.COUNTERCLOCKWISE:p=V(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=$,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=G(r)),e.placement=n+(r?'-'+r:),e.offsets.popper=le({},e.offsets.popper,D(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=C(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,n=t.y,i=e.offsets.popper,r=C(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==r&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h={left:$(i.left),top:Z(i.top),bottom:Z(i.bottom),right:$(i.right)},c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=H('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var y='bottom'==c?-1:1,w='right'==g?-1:1;m[c]=d*y,m[g]=s*w,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return j(e.instance.popper,e.styles),K(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ce});

//# sourceMappingURL=popper.min.js.map /*!

 * Bootstrap v4.1.0 (https://getbootstrap.com/)
 * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,c){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function h(r){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{},e=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(s).filter(function(t){return Object.getOwnPropertyDescriptor(s,t).enumerable}))),e.forEach(function(t){var e,n,i;e=r,i=s[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return r}e=e&&e.hasOwnProperty("default")?e.default:e,c=c&&c.hasOwnProperty("default")?c.default:c;var r,n,s,a,l,u,f,d,_,g,m,p,v,E,y,T,C,I,A,D,b,S,w,N,O,k,P,L,j,R,H,W,M,x,U,K,F,V,Q,B,Y,G,q,z,X,J,Z,$,tt,et,nt,it,rt,st,ot,at,lt,ht,ct,ut,ft,dt,_t,gt,mt,pt,vt,Et,yt,Tt,Ct,It,At,Dt,bt,St,wt,Nt,Ot,kt,Pt,Lt,jt,Rt,Ht,Wt,Mt,xt,Ut,Kt,Ft,Vt,Qt,Bt,Yt,Gt,qt,zt,Xt,Jt,Zt,$t,te,ee,ne,ie,re,se,oe,ae,le,he,ce,ue,fe,de,_e,ge,me,pe,ve,Ee,ye,Te,Ce,Ie,Ae,De,be,Se,we,Ne,Oe,ke,Pe,Le,je,Re,He,We,Me,xe,Ue,Ke,Fe,Ve,Qe,Be,Ye,Ge,qe,ze,Xe,Je,Ze,$e,tn,en,nn,rn,sn,on,an,ln,hn,cn,un,fn,dn,_n,gn,mn,pn,vn,En,yn,Tn,Cn=function(i){var e="transitionend";function t(t){var e=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(e)},t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");e&&"#"!==e||(e=t.getAttribute("href")||"");try{return 0<i(document).find(e).length?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=i(t).css("transition-duration");return parseFloat(e)?(e=e.split(",")[0],1e3*parseFloat(e)):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){i(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],s=e[i],o=s&&l.isElement(s)?"element":(a=s,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(o))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+o+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=t,i.event.special[l.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(i(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},l}(e),In=(n="alert",a="."+(s="bs.alert"),l=(r=e).fn[n],u={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",d="fade",_="show",g=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){r.removeData(this._element,s),this._element=null},t._getRootElement=function(t){var e=Cn.getSelectorFromElement(t),n=!1;return e&&(n=r(e)[0]),n||(n=r(t).closest("."+f)[0]),n},t._triggerCloseEvent=function(t){var e=r.Event(u.CLOSE);return r(t).trigger(e),e},t._removeElement=function(e){var n=this;if(r(e).removeClass(_),r(e).hasClass(d)){var t=Cn.getTransitionDurationFromElement(e);r(e).one(Cn.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){r(t).detach().trigger(u.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=r(this),e=t.data(s);e||(e=new i(this),t.data(s,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),r(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),r.fn[n]=g._jQueryInterface,r.fn[n].Constructor=g,r.fn[n].noConflict=function(){return r.fn[n]=l,g._jQueryInterface},g),An=(p="button",E="."+(v="bs.button"),y=".data-api",T=(m=e).fn[p],C="active",I="btn",D='[data-toggle^="button"]',b='[data-toggle="buttons"]',S="input",w=".active",N=".btn",O={CLICK_DATA_API:"click"+E+y,FOCUS_BLUR_DATA_API:(A="focus")+E+y+" blur"+E+y},k=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=m(this._element).closest(b)[0];if(n){var i=m(this._element).find(S)[0];if(i){if("radio"===i.type)if(i.checked&&m(this._element).hasClass(C))t=!1;else{var r=m(n).find(w)[0];r&&m(r).removeClass(C)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!m(this._element).hasClass(C),m(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!m(this._element).hasClass(C)),t&&m(this._element).toggleClass(C)},t.dispose=function(){m.removeData(this._element,v),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=m(this).data(v);t||(t=new n(this),m(this).data(v,t)),"toggle"===e&&t[e]()})},o(n,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),n}(),m(document).on(O.CLICK_DATA_API,D,function(t){t.preventDefault();var e=t.target;m(e).hasClass(I)||(e=m(e).closest(N)),k._jQueryInterface.call(m(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,D,function(t){var e=m(t.target).closest(N)[0];m(e).toggleClass(A,/^focus(in)?$/.test(t.type))}),m.fn[p]=k._jQueryInterface,m.fn[p].Constructor=k,m.fn[p].noConflict=function(){return m.fn[p]=T,k._jQueryInterface},k),Dn=(L="carousel",R="."+(j="bs.carousel"),H=".data-api",W=(P=e).fn[L],M={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},x={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},U="next",K="prev",F="left",V="right",Q={SLIDE:"slide"+R,SLID:"slid"+R,KEYDOWN:"keydown"+R,MOUSEENTER:"mouseenter"+R,MOUSELEAVE:"mouseleave"+R,TOUCHEND:"touchend"+R,LOAD_DATA_API:"load"+R+H,CLICK_DATA_API:"click"+R+H},B="carousel",Y="active",G="slide",q="carousel-item-right",z="carousel-item-left",X="carousel-item-next",J="carousel-item-prev",Z={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},$=function(){function s(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(e),this._element=P(t)[0],this._indicatorsElement=P(this._element).find(Z.INDICATORS)[0],this._addEventListeners()}var t=s.prototype;return t.next=function(){this._isSliding||this._slide(U)},t.nextWhenVisible=function(){!document.hidden&&P(this._element).is(":visible")&&"hidden"!==P(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(K)},t.pause=function(t){t||(this._isPaused=!0),P(this._element).find(Z.NEXT_PREV)[0]&&(Cn.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=P(this._element).find(Z.ACTIVE_ITEM)[0];var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?U:K;this._slide(i,this._items[t])}},t.dispose=function(){P(this._element).off(R),P.removeData(this._element,j),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=h({},M,t),Cn.typeCheckConfig(L,t,x),t},t._addEventListeners=function(){var e=this;this._config.keyboard&&P(this._element).on(Q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(P(this._element).on(Q.MOUSEENTER,function(t){return e.pause(t)}).on(Q.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&P(this._element).on(Q.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=P.makeArray(P(t).parent().find(Z.ITEM)),this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===U,i=t===K,r=this._getItemIndex(e),s=this._items.length-1;if((i&&0===r||n&&r===s)&&!this._config.wrap)return e;var o=(r+(t===K?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(P(this._element).find(Z.ACTIVE_ITEM)[0]),r=P.Event(Q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return P(this._element).trigger(r),r},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){P(this._indicatorsElement).find(Z.ACTIVE).removeClass(Y);var e=this._indicatorsElement.children[this._getItemIndex(t)];e&&P(e).addClass(Y)}},t._slide=function(t,e){var n,i,r,s=this,o=P(this._element).find(Z.ACTIVE_ITEM)[0],a=this._getItemIndex(o),l=e||o&&this._getItemByDirection(t,o),h=this._getItemIndex(l),c=Boolean(this._interval);if(t===U?(n=z,i=X,r=F):(n=q,i=J,r=V),l&&P(l).hasClass(Y))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&o&&l){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(l);var u=P.Event(Q.SLID,{relatedTarget:l,direction:r,from:a,to:h});if(P(this._element).hasClass(G)){P(l).addClass(i),Cn.reflow(l),P(o).addClass(n),P(l).addClass(n);var f=Cn.getTransitionDurationFromElement(o);P(o).one(Cn.TRANSITION_END,function(){P(l).removeClass(n+" "+i).addClass(Y),P(o).removeClass(Y+" "+i+" "+n),s._isSliding=!1,setTimeout(function(){return P(s._element).trigger(u)},0)}).emulateTransitionEnd(f)}else P(o).removeClass(Y),P(l).addClass(Y),this._isSliding=!1,P(this._element).trigger(u);c&&this.cycle()}},s._jQueryInterface=function(i){return this.each(function(){var t=P(this).data(j),e=h({},M,P(this).data());"object"==typeof i&&(e=h({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new s(this,e),P(this).data(j,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&(t.pause(),t.cycle())})},s._dataApiClickHandler=function(t){var e=Cn.getSelectorFromElement(this);if(e){var n=P(e)[0];if(n&&P(n).hasClass(B)){var i=h({},P(n).data(),P(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),s._jQueryInterface.call(P(n),i),r&&P(n).data(j).to(r),t.preventDefault()}}},o(s,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return M}}]),s}(),P(document).on(Q.CLICK_DATA_API,Z.DATA_SLIDE,$._dataApiClickHandler),P(window).on(Q.LOAD_DATA_API,function(){P(Z.DATA_RIDE).each(function(){var t=P(this);$._jQueryInterface.call(t,t.data())})}),P.fn[L]=$._jQueryInterface,P.fn[L].Constructor=$,P.fn[L].noConflict=function(){return P.fn[L]=W,$._jQueryInterface},$),bn=(et="collapse",it="."+(nt="bs.collapse"),rt=(tt=e).fn[et],st={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},at={SHOW:"show"+it,SHOWN:"shown"+it,HIDE:"hide"+it,HIDDEN:"hidden"+it,CLICK_DATA_API:"click"+it+".data-api"},lt="show",ht="collapse",ct="collapsing",ut="collapsed",ft="width",dt="height",_t={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},gt=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=tt.makeArray(tt('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=tt(_t.DATA_TOGGLE),i=0;i<n.length;i++){var r=n[i],s=Cn.getSelectorFromElement(r);null!==s&&0<tt(s).filter(t).length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){tt(this._element).hasClass(lt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!tt(this._element).hasClass(lt)&&(this._parent&&0===(t=tt.makeArray(tt(this._parent).find(_t.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(t=null),!(t&&(e=tt(t).not(this._selector).data(nt))&&e._isTransitioning))){var i=tt.Event(at.SHOW);if(tt(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(tt(t).not(this._selector),"hide"),e||tt(t).data(nt,null));var r=this._getDimension();tt(this._element).removeClass(ht).addClass(ct),(this._element.style[r]=0)<this._triggerArray.length&&tt(this._triggerArray).removeClass(ut).attr("aria-expanded",!0),this.setTransitioning(!0);var s="scroll"+(r[0].toUpperCase()+r.slice(1)),o=Cn.getTransitionDurationFromElement(this._element);tt(this._element).one(Cn.TRANSITION_END,function(){tt(n._element).removeClass(ct).addClass(ht).addClass(lt),n._element.style[r]="",n.setTransitioning(!1),tt(n._element).trigger(at.SHOWN)}).emulateTransitionEnd(o),this._element.style[r]=this._element[s]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&tt(this._element).hasClass(lt)){var e=tt.Event(at.HIDE);if(tt(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();if(this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",Cn.reflow(this._element),tt(this._element).addClass(ct).removeClass(ht).removeClass(lt),0<this._triggerArray.length)for(var i=0;i<this._triggerArray.length;i++){var r=this._triggerArray[i],s=Cn.getSelectorFromElement(r);if(null!==s)tt(s).hasClass(lt)||tt(r).addClass(ut).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var o=Cn.getTransitionDurationFromElement(this._element);tt(this._element).one(Cn.TRANSITION_END,function(){t.setTransitioning(!1),tt(t._element).removeClass(ct).addClass(ht).trigger(at.HIDDEN)}).emulateTransitionEnd(o)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){tt.removeData(this._element,nt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=h({},st,t)).toggle=Boolean(t.toggle),Cn.typeCheckConfig(et,t,ot),t},t._getDimension=function(){return tt(this._element).hasClass(ft)?ft:dt},t._getParent=function(){var n=this,t=null;Cn.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=tt(this._config.parent)[0];var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return tt(t).find(e).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){if(t){var n=tt(t).hasClass(lt);0<e.length&&tt(e).toggleClass(ut,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(t){var e=Cn.getSelectorFromElement(t);return e?tt(e)[0]:null},a._jQueryInterface=function(i){return this.each(function(){var t=tt(this),e=t.data(nt),n=h({},st,t.data(),"object"==typeof i&&i);if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(nt,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},o(a,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return st}}]),a}(),tt(document).on(at.CLICK_DATA_API,_t.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=tt(this),e=Cn.getSelectorFromElement(this);tt(e).each(function(){var t=tt(this),e=t.data(nt)?"toggle":n.data();gt._jQueryInterface.call(t,e)})}),tt.fn[et]=gt._jQueryInterface,tt.fn[et].Constructor=gt,tt.fn[et].noConflict=function(){return tt.fn[et]=rt,gt._jQueryInterface},gt),Sn=(pt="dropdown",Et="."+(vt="bs.dropdown"),yt=".data-api",Tt=(mt=e).fn[pt],Ct=new RegExp("38|40|27"),It={HIDE:"hide"+Et,HIDDEN:"hidden"+Et,SHOW:"show"+Et,SHOWN:"shown"+Et,CLICK:"click"+Et,CLICK_DATA_API:"click"+Et+yt,KEYDOWN_DATA_API:"keydown"+Et+yt,KEYUP_DATA_API:"keyup"+Et+yt},At="disabled",Dt="show",bt="dropup",St="dropright",wt="dropleft",Nt="dropdown-menu-right",Ot="position-static",kt='[data-toggle="dropdown"]',Pt=".dropdown form",Lt=".dropdown-menu",jt=".navbar-nav",Rt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Ht="top-start",Wt="top-end",Mt="bottom-start",xt="bottom-end",Ut="right-start",Kt="left-start",Ft={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Vt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Qt=function(){function l(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=l.prototype;return t.toggle=function(){if(!this._element.disabled&&!mt(this._element).hasClass(At)){var t=l._getParentFromElement(this._element),e=mt(this._menu).hasClass(Dt);if(l._clearMenus(),!e){var n={relatedTarget:this._element},i=mt.Event(It.SHOW,n);if(mt(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof c)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:Cn.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&mt(t).addClass(Ot),this._popper=new c(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===mt(t).closest(jt).length&&mt(document.body).children().on("mouseover",null,mt.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),mt(this._menu).toggleClass(Dt),mt(t).toggleClass(Dt).trigger(mt.Event(It.SHOWN,n))}}}},t.dispose=function(){mt.removeData(this._element,vt),mt(this._element).off(Et),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;mt(this._element).on(It.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=h({},this.constructor.Default,mt(this._element).data(),t),Cn.typeCheckConfig(pt,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=l._getParentFromElement(this._element);this._menu=mt(t).find(Lt)[0]}return this._menu},t._getPlacement=function(){var t=mt(this._element).parent(),e=Mt;return t.hasClass(bt)?(e=Ht,mt(this._menu).hasClass(Nt)&&(e=Wt)):t.hasClass(St)?e=Ut:t.hasClass(wt)?e=Kt:mt(this._menu).hasClass(Nt)&&(e=xt),e},t._detectNavbar=function(){return 0<mt(this._element).closest(".navbar").length},t._getPopperConfig=function(){var e=this,t={};"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=h({},t.offsets,e._config.offset(t.offsets)||{}),t}:t.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:t,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},l._jQueryInterface=function(e){return this.each(function(){var t=mt(this).data(vt);if(t||(t=new l(this,"object"==typeof e?e:null),mt(this).data(vt,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},l._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=mt.makeArray(mt(kt)),n=0;n<e.length;n++){var i=l._getParentFromElement(e[n]),r=mt(e[n]).data(vt),s={relatedTarget:e[n]};if(r){var o=r._menu;if(mt(i).hasClass(Dt)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&mt.contains(i,t.target))){var a=mt.Event(It.HIDE,s);mt(i).trigger(a),a.isDefaultPrevented()||("ontouchstart"in document.documentElement&&mt(document.body).children().off("mouseover",null,mt.noop),e[n].setAttribute("aria-expanded","false"),mt(o).removeClass(Dt),mt(i).removeClass(Dt).trigger(mt.Event(It.HIDDEN,s)))}}}},l._getParentFromElement=function(t){var e,n=Cn.getSelectorFromElement(t);return n&&(e=mt(n)[0]),e||t.parentNode},l._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||mt(t.target).closest(Lt).length)):Ct.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!mt(this).hasClass(At))){var e=l._getParentFromElement(this),n=mt(e).hasClass(Dt);if((n||27===t.which&&32===t.which)&&(!n||27!==t.which&&32!==t.which)){var i=mt(e).find(Rt).get();if(0!==i.length){var r=i.indexOf(t.target);38===t.which&&0<r&&r--,40===t.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===t.which){var s=mt(e).find(kt)[0];mt(s).trigger("focus")}mt(this).trigger("click")}}},o(l,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Ft}},{key:"DefaultType",get:function(){return Vt}}]),l}(),mt(document).on(It.KEYDOWN_DATA_API,kt,Qt._dataApiKeydownHandler).on(It.KEYDOWN_DATA_API,Lt,Qt._dataApiKeydownHandler).on(It.CLICK_DATA_API+" "+It.KEYUP_DATA_API,Qt._clearMenus).on(It.CLICK_DATA_API,kt,function(t){t.preventDefault(),t.stopPropagation(),Qt._jQueryInterface.call(mt(this),"toggle")}).on(It.CLICK_DATA_API,Pt,function(t){t.stopPropagation()}),mt.fn[pt]=Qt._jQueryInterface,mt.fn[pt].Constructor=Qt,mt.fn[pt].noConflict=function(){return mt.fn[pt]=Tt,Qt._jQueryInterface},Qt),wn=(Yt="modal",qt="."+(Gt="bs.modal"),zt=(Bt=e).fn[Yt],Xt={backdrop:!0,keyboard:!0,focus:!0,show:!0},Jt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Zt={HIDE:"hide"+qt,HIDDEN:"hidden"+qt,SHOW:"show"+qt,SHOWN:"shown"+qt,FOCUSIN:"focusin"+qt,RESIZE:"resize"+qt,CLICK_DISMISS:"click.dismiss"+qt,KEYDOWN_DISMISS:"keydown.dismiss"+qt,MOUSEUP_DISMISS:"mouseup.dismiss"+qt,MOUSEDOWN_DISMISS:"mousedown.dismiss"+qt,CLICK_DATA_API:"click"+qt+".data-api"},$t="modal-scrollbar-measure",te="modal-backdrop",ee="modal-open",ne="fade",ie="show",re={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"},se=function(){function r(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=Bt(t).find(re.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var t=r.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isTransitioning&&!this._isShown){Bt(this._element).hasClass(ne)&&(this._isTransitioning=!0);var n=Bt.Event(Zt.SHOW,{relatedTarget:t});Bt(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),Bt(document.body).addClass(ee),this._setEscapeEvent(),this._setResizeEvent(),Bt(this._element).on(Zt.CLICK_DISMISS,re.DATA_DISMISS,function(t){return e.hide(t)}),Bt(this._dialog).on(Zt.MOUSEDOWN_DISMISS,function(){Bt(e._element).one(Zt.MOUSEUP_DISMISS,function(t){Bt(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var n=Bt.Event(Zt.HIDE);if(Bt(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=Bt(this._element).hasClass(ne);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Bt(document).off(Zt.FOCUSIN),Bt(this._element).removeClass(ie),Bt(this._element).off(Zt.CLICK_DISMISS),Bt(this._dialog).off(Zt.MOUSEDOWN_DISMISS),i){var r=Cn.getTransitionDurationFromElement(this._element);Bt(this._element).one(Cn.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},t.dispose=function(){Bt.removeData(this._element,Gt),Bt(window,document,this._element,this._backdrop).off(qt),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=h({},Xt,t),Cn.typeCheckConfig(Yt,t,Jt),t},t._showElement=function(t){var e=this,n=Bt(this._element).hasClass(ne);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,n&&Cn.reflow(this._element),Bt(this._element).addClass(ie),this._config.focus&&this._enforceFocus();var i=Bt.Event(Zt.SHOWN,{relatedTarget:t}),r=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Bt(e._element).trigger(i)};if(n){var s=Cn.getTransitionDurationFromElement(this._element);Bt(this._dialog).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r()},t._enforceFocus=function(){var e=this;Bt(document).off(Zt.FOCUSIN).on(Zt.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===Bt(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?Bt(this._element).on(Zt.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||Bt(this._element).off(Zt.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?Bt(window).on(Zt.RESIZE,function(t){return e.handleUpdate(t)}):Bt(window).off(Zt.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){Bt(document.body).removeClass(ee),t._resetAdjustments(),t._resetScrollbar(),Bt(t._element).trigger(Zt.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(Bt(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=Bt(this._element).hasClass(ne)?ne:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=te,n&&Bt(this._backdrop).addClass(n),Bt(this._backdrop).appendTo(document.body),Bt(this._element).on(Zt.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&Cn.reflow(this._backdrop),Bt(this._backdrop).addClass(ie),!t)return;if(!n)return void t();var i=Cn.getTransitionDurationFromElement(this._backdrop);Bt(this._backdrop).one(Cn.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){Bt(this._backdrop).removeClass(ie);var r=function(){e._removeBackdrop(),t&&t()};if(Bt(this._element).hasClass(ne)){var s=Cn.getTransitionDurationFromElement(this._backdrop);Bt(this._backdrop).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){Bt(re.FIXED_CONTENT).each(function(t,e){var n=Bt(e)[0].style.paddingRight,i=Bt(e).css("padding-right");Bt(e).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),Bt(re.STICKY_CONTENT).each(function(t,e){var n=Bt(e)[0].style.marginRight,i=Bt(e).css("margin-right");Bt(e).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")}),Bt(re.NAVBAR_TOGGLER).each(function(t,e){var n=Bt(e)[0].style.marginRight,i=Bt(e).css("margin-right");Bt(e).data("margin-right",n).css("margin-right",parseFloat(i)+r._scrollbarWidth+"px")});var t=document.body.style.paddingRight,e=Bt(document.body).css("padding-right");Bt(document.body).data("padding-right",t).css("padding-right",parseFloat(e)+this._scrollbarWidth+"px")}},t._resetScrollbar=function(){Bt(re.FIXED_CONTENT).each(function(t,e){var n=Bt(e).data("padding-right");"undefined"!=typeof n&&Bt(e).css("padding-right",n).removeData("padding-right")}),Bt(re.STICKY_CONTENT+", "+re.NAVBAR_TOGGLER).each(function(t,e){var n=Bt(e).data("margin-right");"undefined"!=typeof n&&Bt(e).css("margin-right",n).removeData("margin-right")});var t=Bt(document.body).data("padding-right");"undefined"!=typeof t&&Bt(document.body).css("padding-right",t).removeData("padding-right")},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=$t,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},r._jQueryInterface=function(n,i){return this.each(function(){var t=Bt(this).data(Gt),e=h({},r.Default,Bt(this).data(),"object"==typeof n&&n);if(t||(t=new r(this,e),Bt(this).data(Gt,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},o(r,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Xt}}]),r}(),Bt(document).on(Zt.CLICK_DATA_API,re.DATA_TOGGLE,function(t){var e,n=this,i=Cn.getSelectorFromElement(this);i&&(e=Bt(i)[0]);var r=Bt(e).data(Gt)?"toggle":h({},Bt(e).data(),Bt(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var s=Bt(e).one(Zt.SHOW,function(t){t.isDefaultPrevented()||s.one(Zt.HIDDEN,function(){Bt(n).is(":visible")&&n.focus()})});se._jQueryInterface.call(Bt(e),r,this)}),Bt.fn[Yt]=se._jQueryInterface,Bt.fn[Yt].Constructor=se,Bt.fn[Yt].noConflict=function(){return Bt.fn[Yt]=zt,se._jQueryInterface},se),Nn=(ae="tooltip",he="."+(le="bs.tooltip"),ce=(oe=e).fn[ae],ue="bs-tooltip",fe=new RegExp("(^|\\s)"+ue+"\\S+","g"),ge={animation:!0,template:'
',trigger:"hover focus",title:"",delay:0,html:!(_e={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(de={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},pe="out",ve={HIDE:"hide"+he,HIDDEN:"hidden"+he,SHOW:(me="show")+he,SHOWN:"shown"+he,INSERTED:"inserted"+he,CLICK:"click"+he,FOCUSIN:"focusin"+he,FOCUSOUT:"focusout"+he,MOUSEENTER:"mouseenter"+he,MOUSELEAVE:"mouseleave"+he},Ee="fade",ye="show",Te=".tooltip-inner",Ce=".arrow",Ie="hover",Ae="focus",De="click",be="manual",Se=function(){function i(t,e){if("undefined"==typeof c)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=oe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(oe(this.getTipElement()).hasClass(ye))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),oe.removeData(this.element,this.constructor.DATA_KEY),oe(this.element).off(this.constructor.EVENT_KEY),oe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&oe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===oe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=oe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){oe(this.element).trigger(t);var n=oe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Cn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&oe(i).addClass(Ee);var s="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,o=this._getAttachment(s);this.addAttachmentClass(o);var a=!1===this.config.container?document.body:oe(this.config.container);oe(i).data(this.constructor.DATA_KEY,this),oe.contains(this.element.ownerDocument.documentElement,this.tip)||oe(i).appendTo(a),oe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new c(this.element,i,{placement:o,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Ce},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),oe(i).addClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().on("mouseover",null,oe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,oe(e.element).trigger(e.constructor.Event.SHOWN),t===pe&&e._leave(null,e)};if(oe(this.tip).hasClass(Ee)){var h=Cn.getTransitionDurationFromElement(this.tip);oe(this.tip).one(Cn.TRANSITION_END,l).emulateTransitionEnd(h)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=oe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==me&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),oe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(oe(this.element).trigger(i),!i.isDefaultPrevented()){if(oe(n).removeClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().off("mouseover",null,oe.noop),this._activeTrigger[De]=!1,this._activeTrigger[Ae]=!1,this._activeTrigger[Ie]=!1,oe(this.tip).hasClass(Ee)){var s=Cn.getTransitionDurationFromElement(n);oe(n).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){oe(this.getTipElement()).addClass(ue+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||oe(this.config.template)[0],this.tip},t.setContent=function(){var t=oe(this.getTipElement());this.setElementContent(t.find(Te),this.getTitle()),t.removeClass(Ee+" "+ye)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?oe(e).parent().is(t)||t.empty().append(e):t.text(oe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return _e[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)oe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==be){var e=t===Ie?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Ie?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;oe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}oe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=h({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ae:Ie]=!0),oe(e.getTipElement()).hasClass(ye)||e._hoverState===me?e._hoverState=me:(clearTimeout(e._timeout),e._hoverState=me,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===me&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ae:Ie]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=pe,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===pe&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=h({},this.constructor.Default,oe(this.element).data(),t)).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Cn.typeCheckConfig(ae,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=oe(this.getTipElement()),e=t.attr("class").match(fe);null!==e&&0<e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(oe(t).removeClass(Ee),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=oe(this).data(le),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),oe(this).data(le,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return ge}},{key:"NAME",get:function(){return ae}},{key:"DATA_KEY",get:function(){return le}},{key:"Event",get:function(){return ve}},{key:"EVENT_KEY",get:function(){return he}},{key:"DefaultType",get:function(){return de}}]),i}(),oe.fn[ae]=Se._jQueryInterface,oe.fn[ae].Constructor=Se,oe.fn[ae].noConflict=function(){return oe.fn[ae]=ce,Se._jQueryInterface},Se),On=(Ne="popover",ke="."+(Oe="bs.popover"),Pe=(we=e).fn[Ne],Le="bs-popover",je=new RegExp("(^|\\s)"+Le+"\\S+","g"),Re=h({},Nn.Default,{placement:"right",trigger:"click",content:"",template:'

'}),He=h({},Nn.DefaultType,{content:"(string|element|function)"}),We="fade",xe=".popover-header",Ue=".popover-body",Ke={HIDE:"hide"+ke,HIDDEN:"hidden"+ke,SHOW:(Me="show")+ke,SHOWN:"shown"+ke,INSERTED:"inserted"+ke,CLICK:"click"+ke,FOCUSIN:"focusin"+ke,FOCUSOUT:"focusout"+ke,MOUSEENTER:"mouseenter"+ke,MOUSELEAVE:"mouseleave"+ke},Fe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){we(this.getTipElement()).addClass(Le+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||we(this.config.template)[0],this.tip},r.setContent=function(){var t=we(this.getTipElement());this.setElementContent(t.find(xe),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ue),e),t.removeClass(We+" "+Me)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=we(this.getTipElement()),e=t.attr("class").match(je);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=we(this).data(Oe),e="object"==typeof n?n:null;if((t||!/destroy|hide/.test(n))&&(t||(t=new i(this,e),we(this).data(Oe,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Re}},{key:"NAME",get:function(){return Ne}},{key:"DATA_KEY",get:function(){return Oe}},{key:"Event",get:function(){return Ke}},{key:"EVENT_KEY",get:function(){return ke}},{key:"DefaultType",get:function(){return He}}]),i}(Nn),we.fn[Ne]=Fe._jQueryInterface,we.fn[Ne].Constructor=Fe,we.fn[Ne].noConflict=function(){return we.fn[Ne]=Pe,Fe._jQueryInterface},Fe),kn=(Qe="scrollspy",Ye="."+(Be="bs.scrollspy"),Ge=(Ve=e).fn[Qe],qe={offset:10,method:"auto",target:""},ze={offset:"number",method:"string",target:"(string|element)"},Xe={ACTIVATE:"activate"+Ye,SCROLL:"scroll"+Ye,LOAD_DATA_API:"load"+Ye+".data-api"},Je="dropdown-item",Ze="active",$e={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},tn="offset",en="position",nn=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+$e.NAV_LINKS+","+this._config.target+" "+$e.LIST_ITEMS+","+this._config.target+" "+$e.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Ve(this._scrollElement).on(Xe.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?tn:en,r="auto"===this._config.method?t:this._config.method,s=r===en?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),Ve.makeArray(Ve(this._selector)).map(function(t){var e,n=Cn.getSelectorFromElement(t);if(n&&(e=Ve(n)[0]),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[Ve(e)[r]().top+s,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){Ve.removeData(this._element,Be),Ve(this._scrollElement).off(Ye),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=h({},qe,t)).target){var e=Ve(t.target).attr("id");e||(e=Cn.getUID(Qe),Ve(t.target).attr("id",e)),t.target="#"+e}return Cn.typeCheckConfig(Qe,t,ze),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",");t=t.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var n=Ve(t.join(","));n.hasClass(Je)?(n.closest($e.DROPDOWN).find($e.DROPDOWN_TOGGLE).addClass(Ze),n.addClass(Ze)):(n.addClass(Ze),n.parents($e.NAV_LIST_GROUP).prev($e.NAV_LINKS+", "+$e.LIST_ITEMS).addClass(Ze),n.parents($e.NAV_LIST_GROUP).prev($e.NAV_ITEMS).children($e.NAV_LINKS).addClass(Ze)),Ve(this._scrollElement).trigger(Xe.ACTIVATE,{relatedTarget:e})},t._clear=function(){Ve(this._selector).filter($e.ACTIVE).removeClass(Ze)},n._jQueryInterface=function(e){return this.each(function(){var t=Ve(this).data(Be);if(t||(t=new n(this,"object"==typeof e&&e),Ve(this).data(Be,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},o(n,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return qe}}]),n}(),Ve(window).on(Xe.LOAD_DATA_API,function(){for(var t=Ve.makeArray(Ve($e.DATA_SPY)),e=t.length;e--;){var n=Ve(t[e]);nn._jQueryInterface.call(n,n.data())}}),Ve.fn[Qe]=nn._jQueryInterface,Ve.fn[Qe].Constructor=nn,Ve.fn[Qe].noConflict=function(){return Ve.fn[Qe]=Ge,nn._jQueryInterface},nn),Pn=(on="."+(sn="bs.tab"),an=(rn=e).fn.tab,ln={HIDE:"hide"+on,HIDDEN:"hidden"+on,SHOW:"show"+on,SHOWN:"shown"+on,CLICK_DATA_API:"click"+on+".data-api"},hn="dropdown-menu",cn="active",un="disabled",fn="fade",dn="show",_n=".dropdown",gn=".nav, .list-group",mn=".active",pn="> li > .active",vn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',En=".dropdown-toggle",yn="> .dropdown-menu .active",Tn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&rn(this._element).hasClass(cn)||rn(this._element).hasClass(un))){var t,i,e=rn(this._element).closest(gn)[0],r=Cn.getSelectorFromElement(this._element);if(e){var s="UL"===e.nodeName?pn:mn;i=(i=rn.makeArray(rn(e).find(s)))[i.length-1]}var o=rn.Event(ln.HIDE,{relatedTarget:this._element}),a=rn.Event(ln.SHOW,{relatedTarget:i});if(i&&rn(i).trigger(o),rn(this._element).trigger(a),!a.isDefaultPrevented()&&!o.isDefaultPrevented()){r&&(t=rn(r)[0]),this._activate(this._element,e);var l=function(){var t=rn.Event(ln.HIDDEN,{relatedTarget:n._element}),e=rn.Event(ln.SHOWN,{relatedTarget:i});rn(i).trigger(t),rn(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){rn.removeData(this._element,sn),this._element=null},t._activate=function(t,e,n){var i=this,r=("UL"===e.nodeName?rn(e).find(pn):rn(e).children(mn))[0],s=n&&r&&rn(r).hasClass(fn),o=function(){return i._transitionComplete(t,r,n)};if(r&&s){var a=Cn.getTransitionDurationFromElement(r);rn(r).one(Cn.TRANSITION_END,o).emulateTransitionEnd(a)}else o()},t._transitionComplete=function(t,e,n){if(e){rn(e).removeClass(dn+" "+cn);var i=rn(e.parentNode).find(yn)[0];i&&rn(i).removeClass(cn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(rn(t).addClass(cn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),Cn.reflow(t),rn(t).addClass(dn),t.parentNode&&rn(t.parentNode).hasClass(hn)){var r=rn(t).closest(_n)[0];r&&rn(r).find(En).addClass(cn),t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=rn(this),e=t.data(sn);if(e||(e=new i(this),t.data(sn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),rn(document).on(ln.CLICK_DATA_API,vn,function(t){t.preventDefault(),Tn._jQueryInterface.call(rn(this),"show")}),rn.fn.tab=Tn._jQueryInterface,rn.fn.tab.Constructor=Tn,rn.fn.tab.noConflict=function(){return rn.fn.tab=an,Tn._jQueryInterface},Tn);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||4<=e[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=Cn,t.Alert=In,t.Button=An,t.Carousel=Dn,t.Collapse=bn,t.Dropdown=Sn,t.Modal=wn,t.Popover=On,t.Scrollspy=kn,t.Tab=Pn,t.Tooltip=Nn,Object.defineProperty(t,"__esModule",{value:!0})});

//# sourceMappingURL=bootstrap.min.js.map // https://d3js.org Version 5.5.0. Copyright 2018 Mike Bostock. (function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})})(this,function(t){"use strict";function n(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function e(t){return 1===t.length&&(t=function(t){return function(e,r){return n(t(e),r)}}(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)>0?i=o:r=o+1}return r}}}function r(t,n){return[t,n]}function i(t){return null===t?NaN:+t}function o(t,n){var e,r,o=t.length,a=0,u=-1,f=0,c=0;if(null==n)for(;++u<o;)isNaN(e=i(t[u]))||(c+=(r=e-f)*(e-(f+=r/++a)));else for(;++u<o;)isNaN(e=i(n(t[u],u,t)))||(c+=(r=e-f)*(e-(f+=r/++a)));if(a>1)return c/(a-1)}function a(t,n){var e=o(t,n);return e?Math.sqrt(e):e}function u(t,n){var e,r,i,o=t.length,a=-1;if(null==n){for(;++a<o;)if(null!=(e=t[a])&&e>=e)for(r=i=e;++a<o;)null!=(e=t[a])&&(r>e&&(r=e),i<e&&(i=e))}else for(;++a<o;)if(null!=(e=n(t[a],a,t))&&e>=e)for(r=i=e;++a<o;)null!=(e=n(t[a],a,t))&&(r>e&&(r=e),i<e&&(i=e));return[r,i]}function f(t){return function(){return t}}function c(t){return t}function s(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o}function l(t,n,e){var r,i,o,a,u=-1;if(n=+n,t=+t,e=+e,t===n&&e>0)return[t];if((r=n<t)&&(i=t,t=n,n=i),0===(a=h(t,n,e))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),n=Math.floor(n/a),o=new Array(i=Math.ceil(n-t+1));++u<i;)o[u]=(t+u)*a;else for(t=Math.floor(t*a),n=Math.ceil(n*a),o=new Array(i=Math.ceil(t-n+1));++u<i;)o[u]=(t-u)/a;return r&&o.reverse(),o}function h(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=is?10:o>=os?5:o>=as?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=is?10:o>=os?5:o>=as?2:1)}function d(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=is?i*=10:o>=os?i*=5:o>=as&&(i*=2),n<t?-i:i}function p(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}function v(t,n,e){if(null==e&&(e=i),r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,o=(r-1)*n,a=Math.floor(o),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(o-a)}}function g(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&e>r&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&e>r&&(r=e);return r}function y(t){for(var n,e,r,i=t.length,o=-1,a=0;++o<i;)a+=t[o].length;for(e=new Array(a);--i>=0;)for(n=(r=t[i]).length;--n>=0;)e[--a]=r[n];return e}function _(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&r>e&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&r>e&&(r=e);return r}function b(t){if(!(i=t.length))return[];for(var n=-1,e=_(t,m),r=new Array(e);++n<e;)for(var i,o=-1,a=r[n]=new Array(i);++o<i;)a[o]=t[o][n];return r}function m(t){return t.length}function x(t){return t}function w(t){return"translate("+(t+.5)+",0)"}function M(t){return"translate(0,"+(t+.5)+")"}function A(){return!this.__axis}function T(t,n){function e(e){var h=null==i?n.ticks?n.ticks.apply(n,r):n.domain():i,d=null==o?n.tickFormat?n.tickFormat.apply(n,r):x:o,p=Math.max(a,0)+f,v=n.range(),g=+v[0]+.5,y=+v[v.length-1]+.5,_=(n.bandwidth?function(t){var n=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(n=Math.round(n)),function(e){return+t(e)+n}}:function(t){return function(n){return+t(n)}})(n.copy()),b=e.selection?e.selection():e,m=b.selectAll(".domain").data([null]),w=b.selectAll(".tick").data(h,n).order(),M=w.exit(),T=w.enter().append("g").attr("class","tick"),N=w.select("line"),S=w.select("text");m=m.merge(m.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),w=w.merge(T),N=N.merge(T.append("line").attr("stroke","#000").attr(s+"2",c*a)),S=S.merge(T.append("text").attr("fill","#000").attr(s,c*p).attr("dy",t===fs?"0em":t===ss?"0.71em":"0.32em")),e!==b&&(m=m.transition(e),w=w.transition(e),N=N.transition(e),S=S.transition(e),M=M.transition(e).attr("opacity",hs).attr("transform",function(t){return isFinite(t=_(t))?l(t):this.getAttribute("transform")}),T.attr("opacity",hs).attr("transform",function(t){var n=this.parentNode.__axis;return l(n&&isFinite(n=n(t))?n:_(t))})),M.remove(),m.attr("d",t===ls||t==cs?"M"+c*u+","+g+"H0.5V"+y+"H"+c*u:"M"+g+","+c*u+"V0.5H"+y+"V"+c*u),w.attr("opacity",1).attr("transform",function(t){return l(_(t))}),N.attr(s+"2",c*a),S.attr(s,c*p).text(d),b.filter(A).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===cs?"start":t===ls?"end":"middle"),b.each(function(){this.__axis=_})}var r=[],i=null,o=null,a=6,u=6,f=3,c=t===fs||t===ls?-1:1,s=t===ls||t===cs?"x":"y",l=t===fs||t===ss?w:M;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return r=us.call(arguments),e},e.tickArguments=function(t){return arguments.length?(r=null==t?[]:us.call(t),e):r.slice()},e.tickValues=function(t){return arguments.length?(i=null==t?null:us.call(t),e):i&&i.slice()},e.tickFormat=function(t){return arguments.length?(o=t,e):o},e.tickSize=function(t){return arguments.length?(a=u=+t,e):a},e.tickSizeInner=function(t){return arguments.length?(a=+t,e):a},e.tickSizeOuter=function(t){return arguments.length?(u=+t,e):u},e.tickPadding=function(t){return arguments.length?(f=+t,e):f},e}function N(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new S(r)}function S(t){this._=t}function E(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=ds,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}function k(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),vs.hasOwnProperty(n)?{space:vs[n],local:t}:t}function C(t){var n=k(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===ps&&n.documentElement.namespaceURI===ps?n.createElement(t):n.createElementNS(e,t)}})(n)}function P(){}function z(t){return null==t?P:function(){return this.querySelector(t)}}function R(){return[]}function L(t){return null==t?R:function(){return this.querySelectorAll(t)}}function D(t){return new Array(t.length)}function U(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function q(t,n,e,r,i,o){for(var a,u=0,f=n.length,c=o.length;u<c;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new U(t,o[u]);for(;u<f;++u)(a=n[u])&&(i[u]=a)}function O(t,n,e,r,i,o,a){var u,f,c,s={},l=n.length,h=o.length,d=new Array(l);for(u=0;u<l;++u)(f=n[u])&&(d[u]=c=ms+a.call(f,f.__data__,u,n),c in s?i[u]=f:s[c]=f);for(u=0;u<h;++u)(f=s[c=ms+a.call(t,o[u],u,o)])?(r[u]=f,f.__data__=o[u],s[c]=null):e[u]=new U(t,o[u]);for(u=0;u<l;++u)(f=n[u])&&s[d[u]]===f&&(i[u]=f)}function Y(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function B(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function F(t,n){return t.style.getPropertyValue(n)||B(t).getComputedStyle(t,null).getPropertyValue(n)}function I(t){return t.trim().split(/^|\s+/)}function j(t){return t.classList||new H(t)}function H(t){this._node=t,this._names=I(t.getAttribute("class")||"")}function X(t,n){for(var e=j(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function G(t,n){for(var e=j(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function V(){this.textContent=""}function $(){this.innerHTML=""}function W(){this.nextSibling&&this.parentNode.appendChild(this)}function Z(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Q(){return null}function J(){var t=this.parentNode;t&&t.removeChild(this)}function K(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function tt(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}function nt(t,n,e){return t=et(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function et(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function rt(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function it(t,n,e){var r=xs.hasOwnProperty(t.type)?nt:et;return function(i,o,a){var u,f=this.__on,c=r(n,o,a);if(f)for(var s=0,l=f.length;s<l;++s)if((u=f[s]).type===t.type&&u.name===t.name)return this.removeEventListener(u.type,u.listener,u.capture),this.addEventListener(u.type,u.listener=c,u.capture=e),void(u.value=n);this.addEventListener(t.type,c,e),u={type:t.type,name:t.name,value:n,listener:c,capture:e},f?f.push(u):this.__on=[u]}}function ot(n,e,r,i){var o=t.event;n.sourceEvent=t.event,t.event=n;try{return e.apply(r,i)}finally{t.event=o}}function at(t,n,e){var r=B(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function ut(t,n){this._groups=t,this._parents=n}function ft(){return new ut(document.documentElement,ws)}function ct(t){return"string"==typeof t?new ut(document.querySelector(t),[document.documentElement]):new ut(t,ws)}function st(){return new lt}function lt(){this._="@"+(++Ms).toString(36)}function ht(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e}function dt(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]}function pt(t){var n=ht();return n.changedTouches&&(n=n.changedTouches[0]),dt(t,n)}function vt(t,n,e){arguments.length<3&&(e=n,n=ht().changedTouches);for(var r,i=0,o=n?n.length:0;i<o;++i)if((r=n[i]).identifier===e)return dt(t,r);return null}function gt(){t.event.stopImmediatePropagation()}function yt(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function _t(t){var n=t.document.documentElement,e=ct(t).on("dragstart.drag",yt,!0);"onselectstart"in n?e.on("selectstart.drag",yt,!0):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function bt(t,n){var e=t.document.documentElement,r=ct(t).on("dragstart.drag",null);n&&(r.on("click.drag",yt,!0),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function mt(t){return function(){return t}}function xt(t,n,e,r,i,o,a,u,f,c){this.target=t,this.type=n,this.subject=e,this.identifier=r,this.active=i,this.x=o,this.y=a,this.dx=u,this.dy=f,this._=c}function wt(){return!t.event.button}function Mt(){return this.parentNode}function At(n){return null==n?{x:t.event.x,y:t.event.y}:n}function Tt(){return"ontouchstart"in this}function Nt(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function St(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Et(){}function kt(t){var n;return t=(t+"").trim().toLowerCase(),(n=Ss.exec(t))?(n=parseInt(n[1],16),new Lt(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=Es.exec(t))?Ct(parseInt(n[1],16)):(n=ks.exec(t))?new Lt(n[1],n[2],n[3],1):(n=Cs.exec(t))?new Lt(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Ps.exec(t))?Pt(n[1],n[2],n[3],n[4]):(n=zs.exec(t))?Pt(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Rs.exec(t))?Ut(n[1],n[2]/100,n[3]/100,1):(n=Ls.exec(t))?Ut(n[1],n[2]/100,n[3]/100,n[4]):Ds.hasOwnProperty(t)?Ct(Ds[t]):"transparent"===t?new Lt(NaN,NaN,NaN,0):null}function Ct(t){return new Lt(t>>16&255,t>>8&255,255&t,1)}function Pt(t,n,e,r){return r<=0&&(t=n=e=NaN),new Lt(t,n,e,r)}function zt(t){return t instanceof Et||(t=kt(t)),t?(t=t.rgb(),new Lt(t.r,t.g,t.b,t.opacity)):new Lt}function Rt(t,n,e,r){return 1===arguments.length?zt(t):new Lt(t,n,e,null==r?1:r)}function Lt(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Dt(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function Ut(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Ot(t,n,e,r)}function qt(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Ot)return new Ot(t.h,t.s,t.l,t.opacity);if(t instanceof Et||(t=kt(t)),!t)return new Ot;if(t instanceof Ot)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,f=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e<r):e===o?(r-n)/u+2:(n-e)/u+4,u/=f<.5?o+i:2-o-i,a*=60):u=f>0&&f<1?0:a,new Ot(a,u,f,t.opacity)}(t):new Ot(t,n,e,null==r?1:r)}function Ot(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Yt(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function Bt(t){if(t instanceof It)return new It(t.l,t.a,t.b,t.opacity);if(t instanceof Wt){if(isNaN(t.h))return new It(t.l,0,0,t.opacity);var n=t.h*Us;return new It(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof Lt||(t=zt(t));var e,r,i=Gt(t.r),o=Gt(t.g),a=Gt(t.b),u=jt((.2225045*i+.7168786*o+.0606169*a)/Ys);return i===o&&o===a?e=r=u:(e=jt((.4360747*i+.3850649*o+.1430804*a)/Os),r=jt((.0139322*i+.0971045*o+.7141733*a)/Bs)),new It(116*u-16,500*(e-u),200*(u-r),t.opacity)}function Ft(t,n,e,r){return 1===arguments.length?Bt(t):new It(t,n,e,null==r?1:r)}function It(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function jt(t){return t>Hs?Math.pow(t,1/3):t/js+Fs}function Ht(t){return t>Is?t*t*t:js*(t-Fs)}function Xt(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Gt(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Vt(t){if(t instanceof Wt)return new Wt(t.h,t.c,t.l,t.opacity);if(t instanceof It||(t=Bt(t)),0===t.a&&0===t.b)return new Wt(NaN,0,t.l,t.opacity);var n=Math.atan2(t.b,t.a)*qs;return new Wt(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function $t(t,n,e,r){return 1===arguments.length?Vt(t):new Wt(t,n,e,null==r?1:r)}function Wt(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function Zt(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Qt)return new Qt(t.h,t.s,t.l,t.opacity);t instanceof Lt||(t=zt(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Zs*r+$s*n-Ws*e)/(Zs+$s-Ws),o=r-i,a=(Vs*(e-i)-Xs*o)/Gs,u=Math.sqrt(a*a+o*o)/(Vs*i*(1-i)),f=u?Math.atan2(a,o)*qs-120:NaN;return new Qt(f<0?f+360:f,u,i,t.opacity)}(t):new Qt(t,n,e,null==r?1:r)}function Qt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Jt(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}function Kt(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<n-1?t[r+2]:2*o-i;return Jt((e-r/n)*n,a,i,o,u)}}function tn(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],u=t[(r+2)%n];return Jt((e-r/n)*n,i,o,a,u)}}function nn(t){return function(){return t}}function en(t,n){return function(e){return t+e*n}}function rn(t,n){var e=n-t;return e?en(t,e>180||e<-180?e-360*Math.round(e/360):e):nn(isNaN(t)?n:t)}function on(t){return 1==(t=+t)?an:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):nn(isNaN(n)?e:n)}}function an(t,n){var e=n-t;return e?en(t,e):nn(isNaN(t)?n:t)}function un(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;e<i;++e)r=Rt(n[e]),o[e]=r.r||0,a[e]=r.g||0,u[e]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}function fn(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(i),a=new Array(r);for(e=0;e<i;++e)o[e]=dn(t[e],n[e]);for(;e<r;++e)a[e]=n[e];return function(t){for(e=0;e<i;++e)a[e]=o[e](t);return a}}function cn(t,n){var e=new Date;return t=+t,n-=t,function(r){return e.setTime(t+n*r),e}}function sn(t,n){return t=+t,n-=t,function(e){return t+n*e}}function ln(t,n){var e,r={},i={};null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={});for(e in n)e in t?r[e]=dn(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}}function hn(t,n){var e,r,i,o=al.lastIndex=ul.lastIndex=0,a=-1,u=[],f=[];for(t+="",n+="";(e=al.exec(t))&&(r=ul.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,f.push({i:a,x:sn(e,r)})),o=ul.lastIndex;return o<n.length&&(i=n.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?f[0]?function(t){return function(n){return t(n)+""}}(f[0].x):function(t){return function(){return t}}(n):(n=f.length,function(t){for(var e,r=0;r<n;++r)u[(e=f[r]).i]=e.x(t);return u.join("")})}function dn(t,n){var e,r=typeof n;return null==n||"boolean"===r?nn(n):("number"===r?sn:"string"===r?(e=kt(n))?(n=e,rl):hn:n instanceof kt?rl:n instanceof Date?cn:Array.isArray(n)?fn:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?ln:sn)(t,n)}function pn(t,n){return t=+t,n-=t,function(e){return Math.round(t+n*e)}}function vn(t,n,e,r,i,o){var a,u,f;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(f=t*e+n*r)&&(e-=t*f,r-=n*f),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,f/=u),t*r<n*e&&(t=-t,n=-n,f=-f,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*fl,skewX:Math.atan(f)*fl,scaleX:a,scaleY:u}}function gn(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u=[],f=[];return o=t(o),a=t(a),function(t,r,i,o,a,u){if(t!==i||r!==o){var f=a.push("translate(",null,n,null,e);u.push({i:f-4,x:sn(t,i)},{i:f-2,x:sn(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,u,f),function(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:sn(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,f),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:sn(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,f),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:sn(t,e)},{i:u-2,x:sn(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,f),o=a=null,function(t){for(var n,e=-1,r=f.length;++e<r;)u[(n=f[e]).i]=n.x(t);return u.join("")}}}function yn(t){return((t=Math.exp(t))+1/t)/2}function _n(t,n){var e,r,i=t[0],o=t[1],a=t[2],u=n[0],f=n[1],c=n[2],s=u-i,l=f-o,h=s*s+l*l;if(h<vl)r=Math.log(c/a)/hl,e=function(t){return[i+t*s,o+t*l,a*Math.exp(hl*t*r)]};else{var d=Math.sqrt(h),p=(c*c-a*a+pl*h)/(2*a*dl*d),v=(c*c-a*a-pl*h)/(2*c*dl*d),g=Math.log(Math.sqrt(p*p+1)-p),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-g)/hl,e=function(t){var n=t*r,e=yn(g),u=a/(dl*d)*(e*function(t){return((t=Math.exp(2*t))-1)/(t+1)}(hl*n+g)-function(t){return((t=Math.exp(t))-1/t)/2}(g));return[i+u*s,o+u*l,a*e/yn(hl*n+g)]}}return e.duration=1e3*r,e}function bn(t){return function(n,e){var r=t((n=qt(n)).h,(e=qt(e)).h),i=an(n.s,e.s),o=an(n.l,e.l),a=an(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=a(t),n+""}}}function mn(t){return function(n,e){var r=t((n=$t(n)).h,(e=$t(e)).h),i=an(n.c,e.c),o=an(n.l,e.l),a=an(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=a(t),n+""}}}function xn(t){return function n(e){function r(n,r){var i=t((n=Zt(n)).h,(r=Zt(r)).h),o=an(n.s,r.s),a=an(n.l,r.l),u=an(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=a(Math.pow(t,e)),n.opacity=u(t),n+""}}return e=+e,r.gamma=n,r}(1)}function wn(){return Sl||(Cl(Mn),Sl=kl.now()+El)}function Mn(){Sl=0}function An(){this._call=this._time=this._next=null}function Tn(t,n,e){var r=new An;return r.restart(t,n,e),r}function Nn(){wn(),++wl;for(var t,n=nl;n;)(t=Sl-n._time)>=0&&n._call.call(null,t),n=n._next;--wl}function Sn(){Sl=(Nl=kl.now())+El,wl=Ml=0;try{Nn()}finally{wl=0,function(){var t,n,e=nl,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:nl=n);el=t,kn(r)}(),Sl=0}}function En(){var t=kl.now(),n=t-Nl;n>Tl&&(El-=n,Nl=t)}function kn(t){if(!wl){Ml&&(Ml=clearTimeout(Ml));t-Sl>24?(t<1/0&&(Ml=setTimeout(Sn,t-kl.now()-El)),Al&&(Al=clearInterval(Al))):(Al||(Nl=kl.now(),Al=setInterval(En,Tl)),wl=1,Cl(Sn))}}function Cn(t,n,e){var r=new An;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r}function Pn(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};(function(t,n,e){function r(f){var c,s,l,h;if(e.state!==Ll)return o();for(c in u)if((h=u[c]).name===e.name){if(h.state===Ul)return Cn(r);h.state===ql?(h.state=Yl,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete u[c]):+c<n&&(h.state=Yl,h.timer.stop(),delete u[c])}if(Cn(function(){e.state===Ul&&(e.state=ql,e.timer.restart(i,e.delay,e.time),i(f))}),e.state=Dl,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Dl){for(e.state=Ul,a=new Array(l=e.tween.length),c=0,s=-1;c<l;++c)(h=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(a[++s]=h);a.length=s+1}}function i(n){for(var r=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(o),e.state=Ol,1),i=-1,u=a.length;++i<u;)a[i].call(null,r);e.state===Ol&&(e.on.call("end",t,t.__data__,e.index,e.group),o())}function o(){e.state=Yl,e.timer.stop(),delete u[n];for(var r in u)return;delete t.__transition}var a,u=t.__transition;u[n]=e,e.timer=Tn(function(t){e.state=Ll,e.timer.restart(r,e.delay,e.time),e.delay<=t&&r(t-e.delay)},0,e.time)})(t,e,{name:n,index:r,group:i,on:Pl,tween:zl,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Rl})}function zn(t,n){var e=Ln(t,n);if(e.state>Rl)throw new Error("too late; already scheduled");return e}function Rn(t,n){var e=Ln(t,n);if(e.state>Dl)throw new Error("too late; already started");return e}function Ln(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Dn(t,n){var e,r,i,o=t.__transition,a=!0;if(o){n=null==n?null:n+"";for(i in o)(e=o[i]).name===n?(r=e.state>Dl&&e.state<Ol,e.state=Yl,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function Un(t,n,e){var r=t._id;return t.each(function(){var t=Rn(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return Ln(t,r).value[n]}}function qn(t,n){var e;return("number"==typeof n?sn:n instanceof kt?rl:(e=kt(n))?(n=e,rl):hn)(t,n)}function On(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Yn(t){return ft().transition(t)}function Bn(){return++Fl}function Fn(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function In(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function jn(t){return(1-Math.cos(Gl*t))/2}function Hn(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function Xn(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}function Gn(t){return(t=+t)<$l?rh*t*t:t<Zl?rh*(t-=Wl)*t+Ql:t<Kl?rh*(t-=Jl)*t+th:rh*(t-=nh)*t+eh}function Vn(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return lh.time=wn(),lh;return e}function $n(t){return function(){return t}}function Wn(){t.event.stopImmediatePropagation()}function Zn(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function Qn(t){return{type:t}}function Jn(){return!t.event.button}function Kn(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function te(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function ne(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function ee(n){function e(t){var e=t.property("__brush",u).selectAll(".overlay").data([Qn("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",mh.overlay).merge(e).each(function(){var t=te(this).extent;ct(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),t.selectAll(".selection").data([Qn("selection")]).enter().append("rect").attr("class","selection").attr("cursor",mh.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var i=t.selectAll(".handle").data(n.handles,function(t){return t.type});i.exit().remove(),i.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return mh[t.type]}),t.each(r).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",a)}function r(){var t=ct(this),n=te(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-h/2:n[0][0]-h/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-h/2:n[0][1]-h/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+h:h}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+h:h})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function i(t,n){return t.__brush.emitter||new o(t,n)}function o(t,n){this.that=t,this.args=n,this.state=t.__brush,this.active=0}function a(){function e(){var t=pt(w);!L||m||x||(Math.abs(t[0]-U[0])>Math.abs(t[1]-U[1])?x=!0:m=!0),U=t,b=!0,Zn(),o()}function o(){var t;switch(y=U[0]-D[0],_=U[1]-D[1],A){case ph:case dh:T&&(y=Math.max(C-u,Math.min(z-d,y)),c=u+y,p=d+y),N&&(_=Math.max(P-l,Math.min(R-v,_)),h=l+_,g=v+_);break;case vh:T<0?(y=Math.max(C-u,Math.min(z-u,y)),c=u+y,p=d):T>0&&(y=Math.max(C-d,Math.min(z-d,y)),c=u,p=d+y),N<0?(_=Math.max(P-l,Math.min(R-l,_)),h=l+_,g=v):N>0&&(_=Math.max(P-v,Math.min(R-v,_)),h=l,g=v+_);break;case gh:T&&(c=Math.max(C,Math.min(z,u-y*T)),p=Math.max(C,Math.min(z,d+y*T))),N&&(h=Math.max(P,Math.min(R,l-_*N)),g=Math.max(P,Math.min(R,v+_*N)))}p<c&&(T*=-1,t=u,u=d,d=t,t=c,c=p,p=t,M in xh&&Y.attr("cursor",mh[M=xh[M]])),g<h&&(N*=-1,t=l,l=v,v=t,t=h,h=g,g=t,M in wh&&Y.attr("cursor",mh[M=wh[M]])),S.selection&&(k=S.selection),m&&(c=k[0][0],p=k[1][0]),x&&(h=k[0][1],g=k[1][1]),k[0][0]===c&&k[0][1]===h&&k[1][0]===p&&k[1][1]===g||(S.selection=[[c,h],[p,g]],r.call(w),q.brush())}function a(){if(Wn(),t.event.touches){if(t.event.touches.length)return;f&&clearTimeout(f),f=setTimeout(function(){f=null},500),O.on("touchmove.brush touchend.brush touchcancel.brush",null)}else bt(t.event.view,b),B.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);O.attr("pointer-events","all"),Y.attr("cursor",mh.overlay),S.selection&&(k=S.selection),ne(k)&&(S.selection=null,r.call(w)),q.end()}if(t.event.touches){if(t.event.changedTouches.length<t.event.touches.length)return Zn()}else if(f)return;if(s.apply(this,arguments)){var u,c,l,h,d,p,v,g,y,_,b,m,x,w=this,M=t.event.target.__data__.type,A="selection"===(t.event.metaKey?M="overlay":M)?dh:t.event.altKey?gh:vh,T=n===_h?null:Mh[M],N=n===yh?null:Ah[M],S=te(w),E=S.extent,k=S.selection,C=E[0][0],P=E[0][1],z=E[1][0],R=E[1][1],L=T&&N&&t.event.shiftKey,D=pt(w),U=D,q=i(w,arguments).beforestart();"overlay"===M?S.selection=k=[[u=n===_h?C:D[0],l=n===yh?P:D[1]],[d=n===_h?z:u,v=n===yh?R:l]]:(u=k[0][0],l=k[0][1],d=k[1][0],v=k[1][1]),c=u,h=l,p=d,g=v;var O=ct(w).attr("pointer-events","none"),Y=O.selectAll(".overlay").attr("cursor",mh[M]);if(t.event.touches)O.on("touchmove.brush",e,!0).on("touchend.brush touchcancel.brush",a,!0);else{var B=ct(t.event.view).on("keydown.brush",function(){switch(t.event.keyCode){case 16:L=T&&N;break;case 18:A===vh&&(T&&(d=p-y*T,u=c+y*T),N&&(v=g-_*N,l=h+_*N),A=gh,o());break;case 32:A!==vh&&A!==gh||(T<0?d=p-y:T>0&&(u=c-y),N<0?v=g-_:N>0&&(l=h-_),A=ph,Y.attr("cursor",mh.selection),o());break;default:return}Zn()},!0).on("keyup.brush",function(){switch(t.event.keyCode){case 16:L&&(m=x=L=!1,o());break;case 18:A===gh&&(T<0?d=p:T>0&&(u=c),N<0?v=g:N>0&&(l=h),A=vh,o());break;case 32:A===ph&&(t.event.altKey?(T&&(d=p-y*T,u=c+y*T),N&&(v=g-_*N,l=h+_*N),A=gh):(T<0?d=p:T>0&&(u=c),N<0?v=g:N>0&&(l=h),A=vh),Y.attr("cursor",mh[M]),o());break;default:return}Zn()},!0).on("mousemove.brush",e,!0).on("mouseup.brush",a,!0);_t(t.event.view)}Wn(),Dn(w),r.call(w),q.start()}}function u(){var t=this.__brush||{selection:null};return t.extent=c.apply(this,arguments),t.dim=n,t}var f,c=Kn,s=Jn,l=N(e,"start","brush","end"),h=6;return e.move=function(t,e){t.selection?t.on("start.brush",function(){i(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){i(this,arguments).end()}).tween("brush",function(){function t(t){a.selection=1===t&&ne(c)?null:s(t),r.call(o),u.brush()}var o=this,a=o.__brush,u=i(o,arguments),f=a.selection,c=n.input("function"==typeof e?e.apply(this,arguments):e,a.extent),s=dn(f,c);return f&&c?t:t(1)}):t.each(function(){var t=arguments,o=this.__brush,a=n.input("function"==typeof e?e.apply(this,t):e,o.extent),u=i(this,t).beforestart();Dn(this),o.selection=null==a||ne(a)?null:a,r.call(this),u.start().brush().end()})},o.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(t){ot(new function(t,n,e){this.target=t,this.type=n,this.selection=e}(e,t,n.output(this.state.selection)),l.apply,l,[t,this.that,this.args])}},e.extent=function(t){return arguments.length?(c="function"==typeof t?t:$n([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),e):c},e.filter=function(t){return arguments.length?(s="function"==typeof t?t:$n(!!t),e):s},e.handleSize=function(t){return arguments.length?(h=+t,e):h},e.on=function(){var t=l.on.apply(l,arguments);return t===l?e:t},e}function re(t){return function(){return t}}function ie(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function oe(){return new ie}function ae(t){return t.source}function ue(t){return t.target}function fe(t){return t.radius}function ce(t){return t.startAngle}function se(t){return t.endAngle}function le(){}function he(t,n){var e=new le;if(t instanceof le)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i<o;)e.set(i,t[i]);else for(;++i<o;)e.set(n(r=t[i],i,t),r)}else if(t)for(var a in t)e.set(a,t[a]);return e}function de(){return{}}function pe(t,n,e){t[n]=e}function ve(){return he()}function ge(t,n,e){t.set(n,e)}function ye(){}function _e(t,n){var e=new ye;if(t instanceof ye)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r<i;)e.add(t[r]);else for(;++r<i;)e.add(n(t[r],r,t))}return e}function be(t,n){return t-n}function me(t){return function(){return t}}function xe(t,n){for(var e,r=-1,i=n.length;++r<i;)if(e=function(t,n){for(var e=n[0],r=n[1],i=-1,o=0,a=t.length,u=a-1;o<a;u=o++){var f=t[o],c=f[0],s=f[1],l=t[u],h=l[0],d=l[1];if(function(t,n,e){var r;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&function(t,n,e){return t<=n&&n<=e||e<=n&&n<=t}(t[r=+(t[0]===n[0])],e[r],n[r])}(f,l,n))return 0;s>r!=d>r&&e<(h-c)*(r-s)/(d-s)+c&&(i=-i)}return i}(t,n[r]))return e;return 0}function we(){}function Me(){function t(t){var e=a(t);if(Array.isArray(e))e=e.slice().sort(be);else{var r=u(t),i=r[0],o=r[1];e=d(i,o,e),e=s(Math.floor(i/e)*e,Math.floor(o/e)*e,e)}return e.map(function(e){return n(t,e)})}function n(t,n){var r=[],a=[];return function(t,n,r){function a(t){var n,i,o=[t[0][0]+u,t[0][1]+f],a=[t[1][0]+u,t[1][1]+f],c=e(o),s=e(a);(n=p[c])?(i=d[s])?(delete p[n.end],delete d[i.start],n===i?(n.ring.push(a),r(n.ring)):d[n.start]=p[i.end]={start:n.start,end:i.end,ring:n.ring.concat(i.ring)}):(delete p[n.end],n.ring.push(a),p[n.end=s]=n):(n=d[s])?(i=p[c])?(delete d[n.start],delete p[i.end],n===i?(n.ring.push(a),r(n.ring)):d[i.start]=p[n.end]={start:i.start,end:n.end,ring:i.ring.concat(n.ring)}):(delete d[n.start],n.ring.unshift(o),d[n.start=c]=n):d[c]=p[s]={start:c,end:s,ring:[o,a]}}var u,f,c,s,l,h,d=new Array,p=new Array;u=f=-1,s=t[0]>=n,qh[s<<1].forEach(a);for(;++u<i-1;)c=s,s=t[u+1]>=n,qh[c|s<<1].forEach(a);qh[s<<0].forEach(a);for(;++f<o-1;){for(u=-1,s=t[f*i+i]>=n,l=t[f*i]>=n,qh[s<<1|l<<2].forEach(a);++u<i-1;)c=s,s=t[f*i+i+u+1]>=n,h=l,l=t[f*i+u+1]>=n,qh[c|s<<1|l<<2|h<<3].forEach(a);qh[s|l<<3].forEach(a)}u=-1,l=t[f*i]>=n,qh[l<<2].forEach(a);for(;++u<i-1;)h=l,l=t[f*i+u+1]>=n,qh[l<<2|h<<3].forEach(a);qh[l<<3].forEach(a)}(t,n,function(e){f(e,t,n),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n<e;)r+=t[n-1][1]*t[n][0]-t[n-1][0]*t[n][1];return r}(e)>0?r.push([e]):a.push(e)}),a.forEach(function(t){for(var n,e=0,i=r.length;e<i;++e)if(-1!==xe((n=r[e])[0],t))return void n.push(t)}),{type:"MultiPolygon",value:n,coordinates:r}}function e(t){return 2*t[0]+t[1]*(i+1)*4}function r(t,n,e){t.forEach(function(t){var r,a=t[0],u=t[1],f=0|a,c=0|u,s=n[c*i+f];a>0&&a<i&&f===a&&(r=n[c*i+f-1],t[0]=a+(e-r)/(s-r)-.5),u>0&&u<o&&c===u&&(r=n[(c-1)*i+f],t[1]=u+(e-r)/(s-r)-.5)})}var i=1,o=1,a=p,f=r;return t.contour=n,t.size=function(n){if(!arguments.length)return[i,o];var e=Math.ceil(n[0]),r=Math.ceil(n[1]);if(!(e>0&&r>0))throw new Error("invalid size");return i=e,o=r,t},t.thresholds=function(n){return arguments.length?(a="function"==typeof n?n:Array.isArray(n)?me(Uh.call(n)):me(n),t):a},t.smooth=function(n){return arguments.length?(f=n?r:we,t):f===r},t}function Ae(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a<i;++a)for(var u=0,f=0;u<r+e;++u)u<r&&(f+=t.data[u+a*r]),u>=e&&(u>=o&&(f-=t.data[u-o+a*r]),n.data[u-e+a*r]=f/Math.min(u+1,r-1+o-u,o))}function Te(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a<r;++a)for(var u=0,f=0;u<i+e;++u)u<i&&(f+=t.data[a+u*r]),u>=e&&(u>=o&&(f-=t.data[a+(u-o)*r]),n.data[a+(u-e)*r]=f/Math.min(u+1,i-1+o-u,o))}function Ne(t){return t[0]}function Se(t){return t[1]}function Ee(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function ke(t){function n(t,n){function e(){if(c)return Yh;if(s)return s=!1,Oh;var n,e,r=u;if(t.charCodeAt(r)===Bh){for(;u++<a&&t.charCodeAt(u)!==Bh||t.charCodeAt(++u)===Bh;);return(n=u)>=a?c=!0:(e=t.charCodeAt(u++))===Fh?s=!0:e===Ih&&(s=!0,t.charCodeAt(u)===Fh&&++u),t.slice(r+1,n-1).replace(/""/g,'"')}for(;u<a;){if((e=t.charCodeAt(n=u++))===Fh)s=!0;else if(e===Ih)s=!0,t.charCodeAt(u)===Fh&&++u;else if(e!==o)continue;return t.slice(r,n)}return c=!0,t.slice(r,a)}var r,i=[],a=t.length,u=0,f=0,c=a<=0,s=!1;for(t.charCodeAt(a-1)===Fh&&--a,t.charCodeAt(a-1)===Ih&&--a;(r=e())!==Yh;){for(var l=[];r!==Oh&&r!==Yh;)l.push(r),r=e();n&&null==(l=n(l,f++))||i.push(l)}return i}function e(n){return n.map(r).join(t)}function r(t){return null==t?"":i.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}var i=new RegExp('["'+t+"\n\r]"),o=t.charCodeAt(0);return{parse:function(t,e){var r,i,o=n(t,function(t,n){if(r)return r(t,n-1);i=t,r=e?function(t,n){var e=Ee(t);return function(r,i){return n(e(r),i,t)}}(t,e):Ee(t)});return o.columns=i||[],o},parseRows:n,format:function(n,e){return null==e&&(e=function(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}(n)),[e.map(r).join(t)].concat(n.map(function(n){return e.map(function(t){return r(n[t])}).join(t)})).join("\n")},formatRows:function(t){return t.map(e).join("\n")}}}function Ce(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function Pe(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function ze(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Re(t,n){return fetch(t,n).then(ze)}function Le(t){return function(n,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=void 0),Re(n,e).then(function(n){return t(n,r)})}}function De(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.json()}function Ue(t){return function(n,e){return Re(n,e).then(function(n){return(new DOMParser).parseFromString(n,t)})}}function qe(t){return function(){return t}}function Oe(){return 1e-6*(Math.random()-.5)}function Ye(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,f,c,s,l,h,d=t._root,p={data:r},v=t._x0,g=t._y0,y=t._x1,_=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((c=n>=(o=(v+y)/2))?v=o:y=o,(s=e>=(a=(g+_)/2))?g=a:_=a,i=d,!(d=d[l=s<<1|c]))return i[l]=p,t;if(u=+t._x.call(null,d.data),f=+t._y.call(null,d.data),n===u&&e===f)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(c=n>=(o=(v+y)/2))?v=o:y=o,(s=e>=(a=(g+_)/2))?g=a:_=a}while((l=s<<1|c)==(h=(f>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function Be(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Fe(t){return t[0]}function Ie(t){return t[1]}function je(t,n,e){var r=new He(null==n?Fe:n,null==e?Ie:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function He(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Xe(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}function Ge(t){return t.x+t.vx}function Ve(t){return t.y+t.vy}function $e(t){return t.index}function We(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function Ze(t){return t.x}function Qe(t){return t.y}function Je(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function Ke(t){return(t=Je(Math.abs(t)))?t[1]:NaN}function tr(t){return new nr(t)}function nr(t){if(!(n=ud.exec(t)))throw new Error("invalid format: "+t);var n;this.fill=n[1]||" ",this.align=n[2]||">",this.sign=n[3]||"-",this.symbol=n[4]||"",this.zero=!!n[5],this.width=n[6]&&+n[6],this.comma=!!n[7],this.precision=n[8]&&+n[8].slice(1),this.trim=!!n[9],this.type=n[10]||""}function er(t,n){var e=Je(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}function rr(t){return t}function ir(t){function n(t){function n(t){var n,r,a,s=y,x=_;if("c"===g)x=b(t)+x,t="";else{var w=(t=+t)<0;if(t=b(Math.abs(t),p),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(i>0){if(!+t[r])break t;i=0}}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),w&&0==+t&&(w=!1),s=(w?"("===c?c:"-":"-"===c||"("===c?"":c)+s,x=("s"===g?ld[8+fd/3]:"")+x+(w&&"("===c?")":""),m)for(n=-1,r=t.length;++n<r;)if(48>(a=t.charCodeAt(n))||a>57){x=(46===a?i+t.slice(n+1):t.slice(n))+x,t=t.slice(0,n);break}}d&&!l&&(t=e(t,1/0));var M=s.length+t.length+x.length,A=M<h?new Array(h-M+1).join(u):"";switch(d&&l&&(t=e(A+t,A.length?h-x.length:1/0),A=""),f){case"<":t=s+t+x+A;break;case"=":t=s+A+t+x;break;case"^":t=A.slice(0,M=A.length>>1)+s+t+x+A.slice(M);break;default:t=A+s+t+x}return o(t)}var u=(t=tr(t)).fill,f=t.align,c=t.sign,s=t.symbol,l=t.zero,h=t.width,d=t.comma,p=t.precision,v=t.trim,g=t.type;"n"===g?(d=!0,g="g"):sd[g]||(null==p&&(p=12),v=!0,g="g"),(l||"0"===u&&"="===f)&&(l=!0,u="0",f="=");var y="$"===s?r[0]:"#"===s&&/[boxX]/.test(g)?"0"+g.toLowerCase():"",_="$"===s?r[1]:/[%p]/.test(g)?a:"",b=sd[g],m=/[defgprs%]/.test(g);return p=null==p?6:/[gprs]/.test(g)?Math.max(1,Math.min(21,p)):Math.max(0,Math.min(20,p)),n.toString=function(){return t+""},n}var e=t.grouping&&t.thousands?function(t,n){return function(e,r){for(var i=e.length,o=[],a=0,u=t[0],f=0;i>0&&u>0&&(f+u+1>r&&(u=Math.max(1,r-f)),o.push(e.substring(i-=u,i+u)),!((f+=u+1)>r));)u=t[a=(a+1)%t.length];return o.reverse().join(n)}}(t.grouping,t.thousands):rr,r=t.currency,i=t.decimal,o=t.numerals?function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}}(t.numerals):rr,a=t.percent||"%";return{format:n,formatPrefix:function(t,e){var r=n((t=tr(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Ke(e)/3))),o=Math.pow(10,-i),a=ld[8+i/3];return function(t){return r(o*t)+a}}}}function or(n){return cd=ir(n),t.format=cd.format,t.formatPrefix=cd.formatPrefix,cd}function ar(t){return Math.max(0,-Ke(Math.abs(t)))}function ur(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Ke(n)/3)))-Ke(Math.abs(t)))}function fr(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Ke(n)-Ke(t))+1}function cr(){return new sr}function sr(){this.reset()}function lr(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}function hr(t){return t>1?0:t<-1?Gd:Math.acos(t)}function dr(t){return t>1?Vd:t<-1?-Vd:Math.asin(t)}function pr(t){return(t=ap(t/2))*t}function vr(){}function gr(t,n){t&&lp.hasOwnProperty(t.type)&&lp[t.type](t,n)}function yr(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function _r(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)yr(t[e],n,1);n.polygonEnd()}function br(t,n){t&&sp.hasOwnProperty(t.type)?sp[t.type](t,n):gr(t,n)}function mr(){pp.point=wr}function xr(){Mr(hd,dd)}function wr(t,n){pp.point=Mr,hd=t,dd=n,pd=t*=Qd,vd=np(n=(n*=Qd)/2+$d),gd=ap(n)}function Mr(t,n){n=(n*=Qd)/2+$d;var e=(t*=Qd)-pd,r=e>=0?1:-1,i=r*e,o=np(n),a=ap(n),u=gd*a,f=vd*o+u*np(i),c=u*r*ap(i);hp.add(tp(c,f)),pd=t,vd=o,gd=a}function Ar(t){return[tp(t[1],t[0]),dr(t[2])]}function Tr(t){var n=t[0],e=t[1],r=np(e);return[r*np(n),r*ap(n),ap(e)]}function Nr(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Sr(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Er(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function kr(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Cr(t){var n=fp(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Pr(t,n){Td.push(Nd=[yd=t,bd=t]),n<_d&&(_d=n),n>md&&(md=n)}function zr(t,n){var e=Tr([t*Qd,n*Qd]);if(Ad){var r=Sr(Ad,e),i=Sr([r[1],-r[0],0],r);Cr(i),i=Ar(i);var o,a=t-xd,u=a>0?1:-1,f=i[0]*Zd*u,c=Jd(a)>180;c^(u*xd<f&&f<u*t)?(o=i[1]*Zd)>md&&(md=o):(f=(f+360)%360-180,c^(u*xd<f&&f<u*t)?(o=-i[1]*Zd)<_d&&(_d=o):(n<_d&&(_d=n),n>md&&(md=n))),c?t<xd?Or(yd,t)>Or(yd,bd)&&(bd=t):Or(t,bd)>Or(yd,bd)&&(yd=t):bd>=yd?(t<yd&&(yd=t),t>bd&&(bd=t)):t>xd?Or(yd,t)>Or(yd,bd)&&(bd=t):Or(t,bd)>Or(yd,bd)&&(yd=t)}else Td.push(Nd=[yd=t,bd=t]);n<_d&&(_d=n),n>md&&(md=n),Ad=e,xd=t}function Rr(){gp.point=zr}function Lr(){Nd[0]=yd,Nd[1]=bd,gp.point=Pr,Ad=null}function Dr(t,n){if(Ad){var e=t-xd;vp.add(Jd(e)>180?e+(e>0?360:-360):e)}else wd=t,Md=n;pp.point(t,n),zr(t,n)}function Ur(){pp.lineStart()}function qr(){Dr(wd,Md),pp.lineEnd(),Jd(vp)>Hd&&(yd=-(bd=180)),Nd[0]=yd,Nd[1]=bd,Ad=null}function Or(t,n){return(n-=t)<0?n+360:n}function Yr(t,n){return t[0]-n[0]}function Br(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function Fr(t,n){t*=Qd;var e=np(n*=Qd);Ir(e*np(t),e*ap(t),ap(n))}function Ir(t,n,e){kd+=(t-kd)/++Sd,Cd+=(n-Cd)/Sd,Pd+=(e-Pd)/Sd}function jr(){yp.point=Hr}function Hr(t,n){t*=Qd;var e=np(n*=Qd);Bd=e*np(t),Fd=e*ap(t),Id=ap(n),yp.point=Xr,Ir(Bd,Fd,Id)}function Xr(t,n){t*=Qd;var e=np(n*=Qd),r=e*np(t),i=e*ap(t),o=ap(n),a=tp(fp((a=Fd*o-Id*i)*a+(a=Id*r-Bd*o)*a+(a=Bd*i-Fd*r)*a),Bd*r+Fd*i+Id*o);Ed+=a,zd+=a*(Bd+(Bd=r)),Rd+=a*(Fd+(Fd=i)),Ld+=a*(Id+(Id=o)),Ir(Bd,Fd,Id)}function Gr(){yp.point=Fr}function Vr(){yp.point=Wr}function $r(){Zr(Od,Yd),yp.point=Fr}function Wr(t,n){Od=t,Yd=n,t*=Qd,n*=Qd,yp.point=Zr;var e=np(n);Bd=e*np(t),Fd=e*ap(t),Id=ap(n),Ir(Bd,Fd,Id)}function Zr(t,n){t*=Qd;var e=np(n*=Qd),r=e*np(t),i=e*ap(t),o=ap(n),a=Fd*o-Id*i,u=Id*r-Bd*o,f=Bd*i-Fd*r,c=fp(a*a+u*u+f*f),s=dr(c),l=c&&-s/c;Dd+=l*a,Ud+=l*u,qd+=l*f,Ed+=s,zd+=s*(Bd+(Bd=r)),Rd+=s*(Fd+(Fd=i)),Ld+=s*(Id+(Id=o)),Ir(Bd,Fd,Id)}function Qr(t){return function(){return t}}function Jr(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e}function Kr(t,n){return[t>Gd?t-Wd:t<-Gd?t+Wd:t,n]}function ti(t,n,e){return(t%=Wd)?n||e?Jr(ei(t),ri(n,e)):ei(t):n||e?ri(n,e):Kr}function ni(t){return function(n,e){return n+=t,[n>Gd?n-Wd:n<-Gd?n+Wd:n,e]}}function ei(t){var n=ni(t);return n.invert=ni(-t),n}function ri(t,n){function e(t,n){var e=np(n),u=np(t)*e,f=ap(t)*e,c=ap(n),s=c*r+u*i;return[tp(f*o-s*a,u*r-c*i),dr(s*o+f*a)]}var r=np(t),i=ap(t),o=np(n),a=ap(n);return e.invert=function(t,n){var e=np(n),u=np(t)*e,f=ap(t)*e,c=ap(n),s=c*o-f*a;return[tp(f*o+c*a,u*r+s*i),dr(s*r-u*i)]},e}function ii(t){function n(n){return n=t(n[0]*Qd,n[1]*Qd),n[0]*=Zd,n[1]*=Zd,n}return t=ti(t[0]*Qd,t[1]*Qd,t.length>2?t[2]*Qd:0),n.invert=function(n){return n=t.invert(n[0]*Qd,n[1]*Qd),n[0]*=Zd,n[1]*=Zd,n},n}function oi(t,n,e,r,i,o){if(e){var a=np(n),u=ap(n),f=r*e;null==i?(i=n+r*Wd,o=n-f/2):(i=ai(a,i),o=ai(a,o),(r>0?i<o:i>o)&&(i+=r*Wd));for(var c,s=i;r>0?s>o:s<o;s-=f)c=Ar([a,-u*np(s),-u*ap(s)]),t.point(c[0],c[1])}}function ai(t,n){(n=Tr(n))[0]-=t,Cr(n);var e=hr(-n[1]);return((-n[2]<0?-e:e)+Wd-Hd)%Wd}function ui(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:vr,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function fi(t,n){return Jd(t[0]-n[0])<Hd&&Jd(t[1]-n[1])<Hd}function ci(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function si(t,n,e,r,i){var o,a,u=[],f=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],a=t[n];if(fi(r,a)){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);i.lineEnd()}else u.push(e=new ci(r,t,null,!0)),f.push(e.o=new ci(r,null,e,!1)),u.push(e=new ci(a,t,null,!1)),f.push(e.o=new ci(a,null,e,!0))}}),u.length){for(f.sort(n),li(u),li(f),o=0,a=f.length;o<a;++o)f[o].e=e=!e;for(var c,s,l=u[0];;){for(var h=l,d=!0;h.v;)if((h=h.n)===l)return;c=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(d)for(o=0,a=c.length;o<a;++o)i.point((s=c[o])[0],s[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(d)for(c=h.p.z,o=c.length-1;o>=0;--o)i.point((s=c[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}c=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function li(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function hi(t,n){var e=n[0],r=n[1],i=ap(r),o=[ap(e),-np(e),0],a=0,u=0;kp.reset(),1===i?r=Vd+Hd:-1===i&&(r=-Vd-Hd);for(var f=0,c=t.length;f<c;++f)if(l=(s=t[f]).length)for(var s,l,h=s[l-1],d=h[0],p=h[1]/2+$d,v=ap(p),g=np(p),y=0;y<l;++y,d=b,v=x,g=w,h=_){var _=s[y],b=_[0],m=_[1]/2+$d,x=ap(m),w=np(m),M=b-d,A=M>=0?1:-1,T=A*M,N=T>Gd,S=v*x;if(kp.add(tp(S*A*ap(T),g*w+S*np(T))),a+=N?M+A*Wd:M,N^d>=e^b>=e){var E=Sr(Tr(h),Tr(_));Cr(E);var k=Sr(o,E);Cr(k);var C=(N^M>=0?-1:1)*dr(k[2]);(r>C||r===C&&(E[0]||E[1]))&&(u+=N^M>=0?1:-1)}}return(a<-Hd||a<Hd&&kp<-Hd)^1&u}function di(t,n,e,r){return function(i){function o(n,e){t(n,e)&&i.point(n,e)}function a(t,n){v.point(t,n)}function u(){m.point=a,v.lineStart()}function f(){m.point=o,v.lineEnd()}function c(t,n){p.push([t,n]),_.point(t,n)}function s(){_.lineStart(),p=[]}function l(){c(p[0][0],p[0][1]),_.lineEnd();var t,n,e,r,o=_.clean(),a=g.result(),u=a.length;if(p.pop(),h.push(p),p=null,u)if(1&o){if(e=a[0],(n=e.length-1)>0){for(b||(i.polygonStart(),b=!0),i.lineStart(),t=0;t<n;++t)i.point((r=e[t])[0],r[1]);i.lineEnd()}}else u>1&&2&o&&a.push(a.pop().concat(a.shift())),d.push(a.filter(pi))}var h,d,p,v=n(i),g=ui(),_=n(g),b=!1,m={point:o,lineStart:u,lineEnd:f,polygonStart:function(){m.point=c,m.lineStart=s,m.lineEnd=l,d=[],h=[]},polygonEnd:function(){m.point=o,m.lineStart=u,m.lineEnd=f,d=y(d);var t=hi(h,r);d.length?(b||(i.polygonStart(),b=!0),si(d,vi,t,e,i)):t&&(b||(i.polygonStart(),b=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),b&&(i.polygonEnd(),b=!1),d=h=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};return m}}function pi(t){return t.length>1}function vi(t,n){return((t=t.x)[0]<0?t[1]-Vd-Hd:Vd-t[1])-((n=n.x)[0]<0?n[1]-Vd-Hd:Vd-n[1])}function gi(t){function n(t,n){return np(t)*np(n)>i}function e(t,n,e){var r=[1,0,0],o=Sr(Tr(t),Tr(n)),a=Nr(o,o),u=o[0],f=a-u*u;if(!f)return!e&&t;var c=i*a/f,s=-i*u/f,l=Sr(r,o),h=kr(r,c);Er(h,kr(o,s));var d=l,p=Nr(h,d),v=Nr(d,d),g=p*p-v*(Nr(h,h)-1);if(!(g<0)){var y=fp(g),_=kr(d,(-p-y)/v);if(Er(_,h),_=Ar(_),!e)return _;var b,m=t[0],x=n[0],w=t[1],M=n[1];x<m&&(b=m,m=x,x=b);var A=x-m,T=Jd(A-Gd)<Hd;if(!T&&M<w&&(b=w,w=M,M=b),T||A<Hd?T?w+M>0^_[1]<(Jd(_[0]-m)<Hd?w:M):w<=_[1]&&_[1]<=M:A>Gd^(m<=_[0]&&_[0]<=x)){var N=kr(d,(-p+y)/v);return Er(N,h),[_,Ar(N)]}}}function r(n,e){var r=a?t:Gd-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var i=np(t),o=6*Qd,a=i>0,u=Jd(i)>Hd;return di(n,function(t){var i,o,f,c,s;return{lineStart:function(){c=f=!1,s=1},point:function(l,h){var d,p=[l,h],v=n(l,h),g=a?v?0:r(l,h):v?r(l+(l<0?Gd:-Gd),h):0;if(!i&&(c=f=v)&&t.lineStart(),v!==f&&(!(d=e(i,p))||fi(i,d)||fi(p,d))&&(p[0]+=Hd,p[1]+=Hd,v=n(p[0],p[1])),v!==f)s=0,v?(t.lineStart(),d=e(p,i),t.point(d[0],d[1])):(d=e(i,p),t.point(d[0],d[1]),t.lineEnd()),i=d;else if(u&&i&&a^v){var y;g&o||!(y=e(p,i,!0))||(s=0,a?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||i&&fi(i,p)||t.point(p[0],p[1]),i=p,f=v,o=g},lineEnd:function(){f&&t.lineEnd(),i=null},clean:function(){return s|(c&&f)<<1}}},function(n,e,r,i){oi(i,t,o,r,n,e)},a?[0,-t]:[-Gd,t-Gd])}function yi(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,c){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||f(i,o)<0^u>0)do{c.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else c.point(o[0],o[1])}function a(r,i){return Jd(r[0]-t)<Hd?i>0?0:3:Jd(r[0]-e)<Hd?i>0?2:1:Jd(r[1]-n)<Hd?i>0?1:0:i>0?3:2}function u(t,n){return f(t.x,n.x)}function f(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){function f(t,n){i(t,n)&&w.point(t,n)}function c(o,a){var u=i(o,a);if(l&&h.push([o,a]),m)d=o,p=a,v=u,m=!1,u&&(w.lineStart(),w.point(o,a));else if(u&&b)w.point(o,a);else{var f=[g=Math.max(zp,Math.min(Pp,g)),_=Math.max(zp,Math.min(Pp,_))],c=[o=Math.max(zp,Math.min(Pp,o)),a=Math.max(zp,Math.min(Pp,a))];!function(t,n,e,r,i,o){var a,u=t[0],f=t[1],c=0,s=1,l=n[0]-u,h=n[1]-f;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a<c)return;a<s&&(s=a)}else if(l>0){if(a>s)return;a>c&&(c=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>c&&(c=a)}else if(l>0){if(a<c)return;a<s&&(s=a)}if(a=r-f,h||!(a>0)){if(a/=h,h<0){if(a<c)return;a<s&&(s=a)}else if(h>0){if(a>s)return;a>c&&(c=a)}if(a=o-f,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>c&&(c=a)}else if(h>0){if(a<c)return;a<s&&(s=a)}return c>0&&(t[0]=u+c*l,t[1]=f+c*h),s<1&&(n[0]=u+s*l,n[1]=f+s*h),!0}}}}}(f,c,t,n,e,r)?u&&(w.lineStart(),w.point(o,a),x=!1):(b||(w.lineStart(),w.point(f[0],f[1])),w.point(c[0],c[1]),u||w.lineEnd(),x=!1)}g=o,_=a,b=u}var s,l,h,d,p,v,g,_,b,m,x,w=a,M=ui(),A={point:f,lineStart:function(){A.point=c,l&&l.push(h=[]),m=!0,b=!1,g=_=NaN},lineEnd:function(){s&&(c(d,p),v&&b&&M.rejoin(),s.push(M.result())),A.point=f,b&&w.lineEnd()},polygonStart:function(){w=M,s=[],l=[],x=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=l.length;e<i;++e)for(var o,a,u=l[e],f=1,c=u.length,s=u[0],h=s[0],d=s[1];f<c;++f)o=h,a=d,h=(s=u[f])[0],d=s[1],a<=r?d>r&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=x&&n,i=(s=y(s)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&si(s,u,n,o,a),a.polygonEnd()),w=a,s=l=h=null}};return A}}function _i(){Lp.point=Lp.lineEnd=vr}function bi(t,n){_p=t*=Qd,bp=ap(n*=Qd),mp=np(n),Lp.point=mi}function mi(t,n){t*=Qd;var e=ap(n*=Qd),r=np(n),i=Jd(t-_p),o=np(i),a=r*ap(i),u=mp*e-bp*r*o,f=bp*e+mp*r*o;Rp.add(tp(fp(a*a+u*u),f)),_p=t,bp=e,mp=r}function xi(t){return Rp.reset(),br(t,Lp),+Rp}function wi(t,n){return Dp[0]=t,Dp[1]=n,xi(Up)}function Mi(t,n){return!(!t||!Op.hasOwnProperty(t.type))&&Op[t.type](t,n)}function Ai(t,n){return 0===wi(t,n)}function Ti(t,n){var e=wi(t[0],t[1]);return wi(t[0],n)+wi(n,t[1])<=e+Hd}function Ni(t,n){return!!hi(t.map(Si),Ei(n))}function Si(t){return(t=t.map(Ei)).pop(),t}function Ei(t){return[t[0]*Qd,t[1]*Qd]}function ki(t,n,e){var r=s(t,n-Hd,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function Ci(t,n,e){var r=s(t,n-Hd,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function Pi(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return s(ep(o/y)*y,i,y).map(d).concat(s(ep(c/_)*_,f,_).map(p)).concat(s(ep(r/v)*v,e,v).filter(function(t){return Jd(t%y)>Hd}).map(l)).concat(s(ep(u/g)*g,a,g).filter(function(t){return Jd(t%_)>Hd}).map(h))}var e,r,i,o,a,u,f,c,l,h,d,p,v=10,g=v,y=90,_=360,b=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[d(o).concat(p(f).slice(1),d(i).reverse().slice(1),p(c).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],c=+n[0][1],f=+n[1][1],o>i&&(n=o,o=i,i=n),c>f&&(n=c,c=f,f=n),t.precision(b)):[[o,c],[i,f]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],u=+n[0][1],a=+n[1][1],r>e&&(n=r,r=e,e=n),u>a&&(n=u,u=a,a=n),t.precision(b)):[[r,u],[e,a]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(y=+n[0],_=+n[1],t):[y,_]},t.stepMinor=function(n){return arguments.length?(v=+n[0],g=+n[1],t):[v,g]},t.precision=function(n){return arguments.length?(b=+n,l=ki(u,a,90),h=Ci(r,e,b),d=ki(c,f,90),p=Ci(o,i,b),t):b},t.extentMajor([[-180,-90+Hd],[180,90-Hd]]).extentMinor([[-180,-80-Hd],[180,80+Hd]])}function zi(t){return t}function Ri(){Fp.point=Li}function Li(t,n){Fp.point=Di,xp=Mp=t,wp=Ap=n}function Di(t,n){Bp.add(Ap*t-Mp*n),Mp=t,Ap=n}function Ui(){Di(xp,wp)}function qi(t,n){Vp+=t,$p+=n,++Wp}function Oi(){ev.point=Yi}function Yi(t,n){ev.point=Bi,qi(Sp=t,Ep=n)}function Bi(t,n){var e=t-Sp,r=n-Ep,i=fp(e*e+r*r);Zp+=i*(Sp+t)/2,Qp+=i*(Ep+n)/2,Jp+=i,qi(Sp=t,Ep=n)}function Fi(){ev.point=qi}function Ii(){ev.point=Hi}function ji(){Xi(Tp,Np)}function Hi(t,n){ev.point=Xi,qi(Tp=Sp=t,Np=Ep=n)}function Xi(t,n){var e=t-Sp,r=n-Ep,i=fp(e*e+r*r);Zp+=i*(Sp+t)/2,Qp+=i*(Ep+n)/2,Jp+=i,Kp+=(i=Ep*t-Sp*n)*(Sp+t),tv+=i*(Ep+n),nv+=3*i,qi(Sp=t,Ep=n)}function Gi(t){this._context=t}function Vi(t,n){cv.point=$i,iv=av=t,ov=uv=n}function $i(t,n){av-=t,uv-=n,fv.add(fp(av*av+uv*uv)),av=t,uv=n}function Wi(){this._string=[]}function Zi(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Qi(t){return function(n){var e=new Ji;for(var r in t)e[r]=t[r];return e.stream=n,e}}function Ji(){}function Ki(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),br(e,t.stream(Gp)),n(Gp.result()),null!=r&&t.clipExtent(r),t}function to(t,n,e){return Ki(t,function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])},e)}function no(t,n,e){return to(t,[[0,0],n],e)}function eo(t,n,e){return Ki(t,function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])},e)}function ro(t,n,e){return Ki(t,function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])},e)}function io(t,n){return+n?function(t,n){function e(r,i,o,a,u,f,c,s,l,h,d,p,v,g){var y=c-r,_=s-i,b=y*y+_*_;if(b>4*n&&v--){var m=a+h,x=u+d,w=f+p,M=fp(m*m+x*x+w*w),A=dr(w/=M),T=Jd(Jd(w)-1)<Hd||Jd(o-l)<Hd?(o+l)/2:tp(x,m),N=t(T,A),S=N[0],E=N[1],k=S-r,C=E-i,P=_*k-y*C;(P*P/b>n||Jd((y*k+_*C)/b-.5)>.3||a*h+u*d+f*p<lv)&&(e(r,i,o,a,u,f,S,E,T,m/=M,x/=M,w,v,g),g.point(S,E),e(S,E,T,m,x,w,c,s,l,h,d,p,v,g))}}return function(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){y=NaN,w.point=o,n.lineStart()}function o(r,i){var o=Tr([r,i]),a=t(r,i);e(y,_,g,b,m,x,y=a[0],_=a[1],g=r,b=o[0],m=o[1],x=o[2],sv,n),n.point(y,_)}function a(){w.point=r,n.lineEnd()}function u(){i(),w.point=f,w.lineEnd=c}function f(t,n){o(s=t,n),l=y,h=_,d=b,p=m,v=x,w.point=o}function c(){e(y,_,g,b,m,x,l,h,s,d,p,v,sv,n),w.lineEnd=a,a()}var s,l,h,d,p,v,g,y,_,b,m,x,w={point:r,lineStart:i,lineEnd:a,polygonStart:function(){n.polygonStart(),w.lineStart=u},polygonEnd:function(){n.polygonEnd(),w.lineStart=i}};return w}}(t,n):function(t){return Qi({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}(t)}function oo(t,n,e,r){function i(t,r){return[u*t-f*r+n,e-f*t-u*r]}var o=np(r),a=ap(r),u=o*t,f=a*t,c=o/t,s=a/t,l=(a*e-o*n)/t,h=(a*n+o*e)/t;return i.invert=function(t,n){return[c*t-s*n+l,h-s*t-c*n]},i}function ao(t){return uo(function(){return t})()}function uo(t){function n(t){return l(t[0]*Qd,t[1]*Qd)}function e(){var t=oo(p,0,0,w).apply(null,i(y,_)),n=(w?oo:function(t,n,e){function r(r,i){return[n+t*r,e-t*i]}return r.invert=function(r,i){return[(r-n)/t,(e-i)/t]},r})(p,v-t[0],g-t[1],w);return o=ti(b,m,x),s=Jr(i,n),l=Jr(o,s),c=io(s,S),r()}function r(){return h=d=null,n}var i,o,a,u,f,c,s,l,h,d,p=150,v=480,g=250,y=0,_=0,b=0,m=0,x=0,w=0,M=null,A=Cp,T=null,N=zi,S=.5;return n.stream=function(t){return h&&d===t?h:h=hv(function(t){return Qi({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}(o)(A(c(N(d=t)))))},n.preclip=function(t){return arguments.length?(A=t,M=void 0,r()):A},n.postclip=function(t){return arguments.length?(N=t,T=a=u=f=null,r()):N},n.clipAngle=function(t){return arguments.length?(A=+t?gi(M=t*Qd):(M=null,Cp),r()):M*Zd},n.clipExtent=function(t){return arguments.length?(N=null==t?(T=a=u=f=null,zi):yi(T=+t[0][0],a=+t[0][1],u=+t[1][0],f=+t[1][1]),r()):null==T?null:[[T,a],[u,f]]},n.scale=function(t){return arguments.length?(p=+t,e()):p},n.translate=function(t){return arguments.length?(v=+t[0],g=+t[1],e()):[v,g]},n.center=function(t){return arguments.length?(y=t[0]%360*Qd,_=t[1]%360*Qd,e()):[y*Zd,_*Zd]},n.rotate=function(t){return arguments.length?(b=t[0]%360*Qd,m=t[1]%360*Qd,x=t.length>2?t[2]%360*Qd:0,e()):[b*Zd,m*Zd,x*Zd]},n.angle=function(t){return arguments.length?(w=t%360*Qd,e()):w*Zd},n.precision=function(t){return arguments.length?(c=io(s,S=t*t),r()):fp(S)},n.fitExtent=function(t,e){return to(n,t,e)},n.fitSize=function(t,e){return no(n,t,e)},n.fitWidth=function(t,e){return eo(n,t,e)},n.fitHeight=function(t,e){return ro(n,t,e)},function(){return i=t.apply(this,arguments),n.invert=i.invert&&function(t){return(t=l.invert(t[0],t[1]))&&[t[0]*Zd,t[1]*Zd]},e()}}function fo(t){var n=0,e=Gd/3,r=uo(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Qd,e=t[1]*Qd):[n*Zd,e*Zd]},i}function co(t,n){function e(t,n){var e=fp(o-2*i*ap(n))/i;return[e*ap(t*=i),a-e*np(t)]}var r=ap(t),i=(r+ap(n))/2;if(Jd(i)<Hd)return function(t){function n(t,n){return[t*e,ap(n)/e]}var e=np(t);return n.invert=function(t,n){return[t/e,dr(n*e)]},n}(t);var o=1+r*(2*i-r),a=fp(o)/i;return e.invert=function(t,n){var e=a-n;return[tp(t,Jd(e))/i*up(e),dr((o-(t*t+e*e)*i*i)/(2*i))]},e}function so(){return fo(co).scale(155.424).center([0,33.6442])}function lo(){return so().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function ho(t){return function(n,e){var r=np(n),i=np(e),o=t(r*i);return[o*i*ap(n),o*ap(e)]}}function po(t){return function(n,e){var r=fp(n*n+e*e),i=t(r),o=ap(i),a=np(i);return[tp(n*o,r*a),dr(r&&e*o/r)]}}function vo(t,n){return[t,ip(cp((Vd+n)/2))]}function go(t){function n(){var n=Gd*u(),a=o(ii(o.rotate()).invert([0,0]));return c(null==s?[[a[0]-n,a[1]-n],[a[0]+n,a[1]+n]]:t===vo?[[Math.max(a[0]-n,s),e],[Math.min(a[0]+n,r),i]]:[[s,Math.max(a[1]-n,e)],[r,Math.min(a[1]+n,i)]])}var e,r,i,o=ao(t),a=o.center,u=o.scale,f=o.translate,c=o.clipExtent,s=null;return o.scale=function(t){return arguments.length?(u(t),n()):u()},o.translate=function(t){return arguments.length?(f(t),n()):f()},o.center=function(t){return arguments.length?(a(t),n()):a()},o.clipExtent=function(t){return arguments.length?(null==t?s=e=r=i=null:(s=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),n()):null==s?null:[[s,e],[r,i]]},n()}function yo(t){return cp((Vd+t)/2)}function _o(t,n){function e(t,n){o>0?n<-Vd+Hd&&(n=-Vd+Hd):n>Vd-Hd&&(n=Vd-Hd);var e=o/op(yo(n),i);return[e*ap(i*t),o-e*np(i*t)]}var r=np(t),i=t===n?ap(t):ip(r/np(n))/ip(yo(n)/yo(t)),o=r*op(yo(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=up(i)*fp(t*t+e*e);return[tp(t,Jd(e))/i*up(e),2*Kd(op(o/r,1/i))-Vd]},e):vo}function bo(t,n){return[t,n]}function mo(t,n){function e(t,n){var e=o-n,r=i*t;return[e*ap(r),o-e*np(r)]}var r=np(t),i=t===n?ap(t):(r-np(n))/(n-t),o=r/i+t;return Jd(i)<Hd?bo:(e.invert=function(t,n){var e=o-n;return[tp(t,Jd(e))/i*up(e),o-up(i)*fp(t*t+e*e)]},e)}function xo(t,n){var e=np(n),r=np(t)*e;return[e*ap(t)/r,ap(n)/r]}function wo(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?zi:Qi({point:function(i,o){this.stream.point(i*t+e,o*n+r)}})}function Mo(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function Ao(t,n){return[np(n)*ap(t),ap(n)]}function To(t,n){var e=np(n),r=1+np(t)*e;return[e*ap(t)/r,ap(n)/r]}function No(t,n){return[ip(cp((Vd+n)/2)),-t]}function So(t,n){return t.parent===n.parent?1:2}function Eo(t,n){return t+n.x}function ko(t,n){return Math.max(t,n.y)}function Co(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Po(t,n){var e,r,i,o,a,u=new Do(t),f=+t.value&&(u.value=t.value),c=[u];for(null==n&&(n=zo);e=c.pop();)if(f&&(e.value=+e.data.value),(i=n(e.data))&&(a=i.length))for(e.children=new Array(a),o=a-1;o>=0;--o)c.push(r=e.children[o]=new Do(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Lo)}function zo(t){return t.children}function Ro(t){t.data=t.data.data}function Lo(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Do(t){this.data=t,this.depth=this.height=0,this.parent=null}function Uo(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(vv.call(t))).length,o=[];r<i;)n=t[r],e&&Oo(e,n)?++r:(e=function(t){switch(t.length){case 1:return function(t){return{x:t.x,y:t.y,r:t.r}}(t[0]);case 2:return Bo(t[0],t[1]);case 3:return Fo(t[0],t[1],t[2])}}(o=function(t,n){var e,r;if(Yo(n,t))return[n];for(e=0;e<t.length;++e)if(qo(n,t[e])&&Yo(Bo(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(qo(Bo(t[e],t[r]),n)&&qo(Bo(t[e],n),t[r])&&qo(Bo(t[r],n),t[e])&&Yo(Fo(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}(o,n)),r=0);return e}function qo(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function Oo(t,n){var e=t.r-n.r+1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function Yo(t,n){for(var e=0;e<n.length;++e)if(!Oo(t,n[e]))return!1;return!0}function Bo(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,a=n.y,u=n.r,f=o-e,c=a-r,s=u-i,l=Math.sqrt(f*f+c*c);return{x:(e+o+f/l*s)/2,y:(r+a+c/l*s)/2,r:(l+i+u)/2}}function Fo(t,n,e){var r=t.x,i=t.y,o=t.r,a=n.x,u=n.y,f=n.r,c=e.x,s=e.y,l=e.r,h=r-a,d=r-c,p=i-u,v=i-s,g=f-o,y=l-o,_=r*r+i*i-o*o,b=_-a*a-u*u+f*f,m=_-c*c-s*s+l*l,x=d*p-h*v,w=(p*m-v*b)/(2*x)-r,M=(v*g-p*y)/x,A=(d*b-h*m)/(2*x)-i,T=(h*y-d*g)/x,N=M*M+T*T-1,S=2*(o+w*M+A*T),E=w*w+A*A-o*o,k=-(N?(S+Math.sqrt(S*S-4*N*E))/(2*N):E/S);return{x:r+w+M*k,y:i+A+T*k,r:k}}function Io(t,n,e){var r,i,o,a,u=t.x-n.x,f=t.y-n.y,c=u*u+f*f;c?(i=n.r+e.r,i*=i,a=t.r+e.r,i>(a*=a)?(r=(c+a-i)/(2*c),o=Math.sqrt(Math.max(0,a/c-r*r)),e.x=t.x-r*u-o*f,e.y=t.y-r*f+o*u):(r=(c+i-a)/(2*c),o=Math.sqrt(Math.max(0,i/c-r*r)),e.x=n.x+r*u-o*f,e.y=n.y+r*f+o*u)):(e.x=n.x+e.r,e.y=n.y)}function jo(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function Ho(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function Xo(t){this._=t,this.next=null,this.previous=null}function Go(t){if(!(i=t.length))return 0;var n,e,r,i,o,a,u,f,c,s,l;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;Io(e,n,r=t[2]),n=new Xo(n),e=new Xo(e),r=new Xo(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(u=3;u<i;++u){Io(n._,e._,r=t[u]),r=new Xo(r),f=e.next,c=n.previous,s=e._.r,l=n._.r;do{if(s<=l){if(jo(f._,r._)){e=f,n.next=e,e.previous=n,--u;continue t}s+=f._.r,f=f.next}else{if(jo(c._,r._)){(n=c).next=e,e.previous=n,--u;continue t}l+=c._.r,c=c.previous}}while(f!==c.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,o=Ho(n);(r=r.next)!==e;)(a=Ho(r))<o&&(n=r,o=a);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=Uo(n),u=0;u<i;++u)n=t[u],n.x-=r.x,n.y-=r.y;return r.r}function Vo(t){if("function"!=typeof t)throw new Error;return t}function $o(){return 0}function Wo(t){return function(){return t}}function Zo(t){return Math.sqrt(t.value)}function Qo(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Jo(t,n){return function(e){if(r=e.children){var r,i,o,a=r.length,u=t(e)*n||0;if(u)for(i=0;i<a;++i)r[i].r+=u;if(o=Go(r),u)for(i=0;i<a;++i)r[i].r-=u;e.r=o+u}}}function Ko(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function ta(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function na(t,n,e,r,i){for(var o,a=t.children,u=-1,f=a.length,c=t.value&&(r-n)/t.value;++u<f;)(o=a[u]).y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*c}function ea(t){return t.id}function ra(t){return t.parentId}function ia(t,n){return t.parent===n.parent?1:2}function oa(t){var n=t.children;return n?n[0]:t.t}function aa(t){var n=t.children;return n?n[n.length-1]:t.t}function ua(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function fa(t,n,e){return t.a.parent===n.parent?t.a:e}function ca(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function sa(t,n,e,r,i){for(var o,a=t.children,u=-1,f=a.length,c=t.value&&(i-e)/t.value;++u<f;)(o=a[u]).x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*c}function la(t,n,e,r,i,o){for(var a,u,f,c,s,l,h,d,p,v,g,y=[],_=n.children,b=0,m=0,x=_.length,w=n.value;b<x;){f=i-e,c=o-r;do{s=_[m++].value}while(!s&&m<x);for(l=h=s,g=s*s*(v=Math.max(c/f,f/c)/(w*t)),p=Math.max(h/g,g/l);m<x;++m){if(s+=u=_[m].value,u<l&&(l=u),u>h&&(h=u),g=s*s*v,(d=Math.max(h/g,g/l))>p){s-=u;break}p=d}y.push(a={value:s,dice:f<c,children:_.slice(b,m)}),a.dice?na(a,e,r,i,w?r+=c*s/w:o):sa(a,e,r,w?e+=f*s/w:i,o),w-=s,b=m}return y}function ha(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])}function da(t,n){return t[0]-n[0]||t[1]-n[1]}function pa(t){for(var n=t.length,e=[0,1],r=2,i=2;i<n;++i){for(;r>1&&ha(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function va(){return Math.random()}function ga(t){function n(n){var o=n+"",a=e.get(o);if(!a){if(i!==Pv)return i;e.set(o,a=r.push(n))}return t[(a-1)%t.length]}var e=he(),r=[],i=Pv;return t=null==t?[]:Cv.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=he();for(var i,o,a=-1,u=t.length;++a<u;)e.has(o=(i=t[a])+"")||e.set(o,r.push(i));return n},n.range=function(e){return arguments.length?(t=Cv.call(e),n):t.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return ga().domain(r).range(t).unknown(i)},n}function ya(){function t(){var t=i().length,r=a[1]<a[0],h=a[r-0],d=a[1-r];n=(d-h)/Math.max(1,t-f+2*c),u&&(n=Math.floor(n)),h+=(d-h-n*(t-f))*l,e=n*(1-f),u&&(h=Math.round(h),e=Math.round(e));var p=s(t).map(function(t){return h+n*t});return o(r?p.reverse():p)}var n,e,r=ga().unknown(void 0),i=r.domain,o=r.range,a=[0,1],u=!1,f=0,c=0,l=.5;return delete r.unknown,r.domain=function(n){return arguments.length?(i(n),t()):i()},r.range=function(n){return arguments.length?(a=[+n[0],+n[1]],t()):a.slice()},r.rangeRound=function(n){return a=[+n[0],+n[1]],u=!0,t()},r.bandwidth=function(){return e},r.step=function(){return n},r.round=function(n){return arguments.length?(u=!!n,t()):u},r.padding=function(n){return arguments.length?(f=c=Math.max(0,Math.min(1,n)),t()):f},r.paddingInner=function(n){return arguments.length?(f=Math.max(0,Math.min(1,n)),t()):f},r.paddingOuter=function(n){return arguments.length?(c=Math.max(0,Math.min(1,n)),t()):c},r.align=function(n){return arguments.length?(l=Math.max(0,Math.min(1,n)),t()):l},r.copy=function(){return ya().domain(i()).range(a).round(u).paddingInner(f).paddingOuter(c).align(l)},t()}function _a(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return _a(n())},t}function ba(t){return function(){return t}}function ma(t){return+t}function xa(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:ba(n)}function wa(t,n,e,r){var i=t[0],o=t[1],a=n[0],u=n[1];return o<i?(i=e(o,i),a=r(u,a)):(i=e(i,o),a=r(a,u)),function(t){return a(i(t))}}function Ma(t,n,e,r){var i=Math.min(t.length,n.length)-1,o=new Array(i),a=new Array(i),u=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++u<i;)o[u]=e(t[u],t[u+1]),a[u]=r(n[u],n[u+1]);return function(n){var e=Kc(t,n,1,i)-1;return a[e](o[e](n))}}function Aa(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function Ta(t,n){function e(){return i=Math.min(u.length,f.length)>2?Ma:wa,o=a=null,r}function r(n){return(o||(o=i(u,f,s?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}(t):t,c)))(+n)}var i,o,a,u=zv,f=zv,c=dn,s=!1;return r.invert=function(t){return(a||(a=i(f,u,xa,s?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}(n):n)))(+t)},r.domain=function(t){return arguments.length?(u=kv.call(t,ma),e()):u.slice()},r.range=function(t){return arguments.length?(f=Cv.call(t),e()):f.slice()},r.rangeRound=function(t){return f=Cv.call(t),c=pn,e()},r.clamp=function(t){return arguments.length?(s=!!t,e()):s},r.interpolate=function(t){return arguments.length?(c=t,e()):c},e()}function Na(n){var e=n.domain;return n.ticks=function(t){var n=e();return l(n[0],n[n.length-1],null==t?10:t)},n.tickFormat=function(n,r){return function(n,e,r){var i,o=n[0],a=n[n.length-1],u=d(o,a,null==e?10:e);switch((r=tr(null==r?",f":r)).type){case"s":var f=Math.max(Math.abs(o),Math.abs(a));return null!=r.precision||isNaN(i=ur(u,f))||(r.precision=i),t.formatPrefix(r,f);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=fr(u,Math.max(Math.abs(o),Math.abs(a))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=ar(u))||(r.precision=i-2*("%"===r.type))}return t.format(r)}(e(),n,r)},n.nice=function(t){null==t&&(t=10);var r,i=e(),o=0,a=i.length-1,u=i[o],f=i[a];return f<u&&(r=u,u=f,f=r,r=o,o=a,a=r),(r=h(u,f,t))>0?r=h(u=Math.floor(u/r)*r,f=Math.ceil(f/r)*r,t):r<0&&(r=h(u=Math.ceil(u*r)/r,f=Math.floor(f*r)/r,t)),r>0?(i[o]=Math.floor(u/r)*r,i[a]=Math.ceil(f/r)*r,e(i)):r<0&&(i[o]=Math.ceil(u*r)/r,i[a]=Math.floor(f*r)/r,e(i)),n},n}function Sa(){var t=Ta(xa,sn);return t.copy=function(){return Aa(t,Sa())},Na(t)}function Ea(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=kv.call(e,ma),t):n.slice()},t.copy=function(){return Ea().domain(n)},Na(t)}function ka(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a<o&&(e=r,r=i,i=e,e=o,o=a,a=e),t[r]=n.floor(o),t[i]=n.ceil(a),t}function Ca(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:ba(n)}function Pa(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function za(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Ra(t){return 10===t?za:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function La(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function Da(t){return function(n){return-t(-n)}}function Ua(){function n(){return o=La(i),a=Ra(i),r()[0]<0&&(o=Da(o),a=Da(a)),e}var e=Ta(Ca,Pa).domain([1,10]),r=e.domain,i=10,o=La(10),a=Ra(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),u=e[0],f=e[e.length-1];(n=f<u)&&(d=u,u=f,f=d);var c,s,h,d=o(u),p=o(f),v=null==t?10:+t,g=[];if(!(i%1)&&p-d<v){if(d=Math.round(d)-1,p=Math.round(p)+1,u>0){for(;d<p;++d)for(s=1,c=a(d);s<i;++s)if(!((h=c*s)<u)){if(h>f)break;g.push(h)}}else for(;d<p;++d)for(s=i-1,c=a(d);s>=1;--s)if(!((h=c*s)<u)){if(h>f)break;g.push(h)}}else g=l(d,p,Math.min(p-d,v)).map(a);return n?g.reverse():g},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var u=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/a(Math.round(o(t)));return n*i<i-.5&&(n*=i),n<=u?r(t):""}},e.nice=function(){return r(ka(r(),{floor:function(t){return a(Math.floor(o(t)))},ceil:function(t){return a(Math.ceil(o(t)))}}))},e.copy=function(){return Aa(e,Ua().base(i))},e}function qa(t,n){return t<0?-Math.pow(-t,n):Math.pow(t,n)}function Oa(){var t=1,n=Ta(function(n,e){return(e=qa(e,t)-(n=qa(n,t)))?function(r){return(qa(r,t)-n)/e}:ba(e)},function(n,e){return e=qa(e,t)-(n=qa(n,t)),function(r){return qa(n+e*r,1/t)}}),e=n.domain;return n.exponent=function(n){return arguments.length?(t=+n,e(e())):t},n.copy=function(){return Aa(n,Oa().exponent(t))},Na(n)}function Ya(){function t(){var t=0,n=Math.max(1,i.length);for(o=new Array(n-1);++t<n;)o[t-1]=v(r,t/n);return e}function e(t){if(!isNaN(t=+t))return i[Kc(o,t)]}var r=[],i=[],o=[];return e.invertExtent=function(t){var n=i.indexOf(t);return n<0?[NaN,NaN]:[n>0?o[n-1]:r[0],n<o.length?o[n]:r[r.length-1]]},e.domain=function(e){if(!arguments.length)return r.slice();r=[];for(var i,o=0,a=e.length;o<a;++o)null==(i=e[o])||isNaN(i=+i)||r.push(i);return r.sort(n),t()},e.range=function(n){return arguments.length?(i=Cv.call(n),t()):i.slice()},e.quantiles=function(){return o.slice()},e.copy=function(){return Ya().domain(r).range(i)},e}function Ba(){function t(t){if(t<=t)return a[Kc(o,t,0,i)]}function n(){var n=-1;for(o=new Array(i);++n<i;)o[n]=((n+1)*r-(n-i)*e)/(i+1);return t}var e=0,r=1,i=1,o=[.5],a=[0,1];return t.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n()):[e,r]},t.range=function(t){return arguments.length?(i=(a=Cv.call(t)).length-1,n()):a.slice()},t.invertExtent=function(t){var n=a.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Ba().domain([e,r]).range(a)},Na(t)}function Fa(){function t(t){if(t<=t)return e[Kc(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=Cv.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=Cv.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return Fa().domain(n).range(e)},t}function Ia(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,o){var a,u=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return u;do{u.push(a=new Date(+e)),n(e,o),t(e)}while(a<e&&e<r);return u},i.filter=function(e){return Ia(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return Rv.setTime(+n),Lv.setTime(+r),t(Rv),t(Lv),Math.floor(e(Rv,Lv))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}function ja(t){return Ia(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*qv)/Ov})}function Ha(t){return Ia(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Ov})}function Xa(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Ga(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Va(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function $a(t){function n(t,n){return function(e){var r,i,o,a=[],u=-1,f=0,c=t.length;for(e instanceof Date||(e=new Date(+e));++u<c;)37===t.charCodeAt(u)&&(a.push(t.slice(f,u)),null!=(i=Ug[r=t.charAt(++u)])?r=t.charAt(++u):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),a.push(r),f=u+1);return a.push(t.slice(f,u)),a.join("")}}function e(t,n){return function(e){var i,o,a=Va(1900);if(r(a,t,e+="",0)!=e.length)return null;if("Q"in a)return new Date(a.Q);if("p"in a&&(a.H=a.H%12+12*a.p),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(o=(i=Ga(Va(a.y))).getUTCDay())>4||0===o?_g.ceil(i):_g(i),i=vg.offset(i,7*(a.V-1)),a.y=i.getUTCFullYear(),a.m=i.getUTCMonth(),a.d=i.getUTCDate()+(a.w+6)%7):(i=(o=(i=n(Va(a.y))).getDay())>4||0===o?$v.ceil(i):$v(i),i=Xv.offset(i,7*(a.V-1)),a.y=i.getFullYear(),a.m=i.getMonth(),a.d=i.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),o="Z"in a?Ga(Va(a.y)).getUTCDay():n(Va(a.y)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(o+5)%7:a.w+7*a.U-(o+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,Ga(a)):n(a)}}function r(t,n,e,r){for(var i,o,a=0,u=n.length,f=e.length;a<u;){if(r>=f)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=A[i in Ug?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}var i=t.dateTime,o=t.date,a=t.time,u=t.periods,f=t.days,c=t.shortDays,s=t.months,l=t.shortMonths,h=Qa(u),d=Ja(u),p=Qa(f),v=Ja(f),g=Qa(c),y=Ja(c),_=Qa(s),b=Ja(s),m=Qa(l),x=Ja(l),w={a:function(t){return c[t.getDay()]},A:function(t){return f[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:_u,e:_u,f:Mu,H:bu,I:mu,j:xu,L:wu,m:Au,M:Tu,p:function(t){return u[+(t.getHours()>=12)]},Q:Ku,s:tf,S:Nu,u:Su,U:Eu,V:ku,w:Cu,W:Pu,x:null,X:null,y:zu,Y:Ru,Z:Lu,"%":Ju},M={a:function(t){return c[t.getUTCDay()]},A:function(t){return f[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:Du,e:Du,f:Bu,H:Uu,I:qu,j:Ou,L:Yu,m:Fu,M:Iu,p:function(t){return u[+(t.getUTCHours()>=12)]},Q:Ku,s:tf,S:ju,u:Hu,U:Xu,V:Gu,w:Vu,W:$u,x:null,X:null,y:Wu,Y:Zu,Z:Qu,"%":Ju},A={a:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.w=y[r[0].toLowerCase()],e+r[0].length):-1},A:function(t,n,e){var r=p.exec(n.slice(e));return r?(t.w=v[r[0].toLowerCase()],e+r[0].length):-1},b:function(t,n,e){var r=m.exec(n.slice(e));return r?(t.m=x[r[0].toLowerCase()],e+r[0].length):-1},B:function(t,n,e){var r=_.exec(n.slice(e));return r?(t.m=b[r[0].toLowerCase()],e+r[0].length):-1},c:function(t,n,e){return r(t,i,n,e)},d:fu,e:fu,f:pu,H:su,I:su,j:cu,L:du,m:uu,M:lu,p:function(t,n,e){var r=h.exec(n.slice(e));return r?(t.p=d[r[0].toLowerCase()],e+r[0].length):-1},Q:gu,s:yu,S:hu,u:tu,U:nu,V:eu,w:Ka,W:ru,x:function(t,n,e){return r(t,o,n,e)},X:function(t,n,e){return r(t,a,n,e)},y:ou,Y:iu,Z:au,"%":vu};return w.x=n(o,w),w.X=n(a,w),w.c=n(i,w),M.x=n(o,M),M.X=n(a,M),M.c=n(i,M),{format:function(t){var e=n(t+="",w);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",Xa);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",M);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,Ga);return n.toString=function(){return t},n}}}function Wa(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function Za(t){return t.replace(Yg,"\\$&")}function Qa(t){return new RegExp("^(?:"+t.map(Za).join("|")+")","i")}function Ja(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function Ka(t,n,e){var r=qg.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function tu(t,n,e){var r=qg.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function nu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function eu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function ru(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function iu(t,n,e){var r=qg.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function ou(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function au(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function uu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function fu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function cu(t,n,e){var r=qg.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function su(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function lu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function hu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function du(t,n,e){var r=qg.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function pu(t,n,e){var r=qg.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function vu(t,n,e){var r=Og.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function gu(t,n,e){var r=qg.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function yu(t,n,e){var r=qg.exec(n.slice(e));return r?(t.Q=1e3*+r[0],e+r[0].length):-1}function _u(t,n){return Wa(t.getDate(),n,2)}function bu(t,n){return Wa(t.getHours(),n,2)}function mu(t,n){return Wa(t.getHours()%12||12,n,2)}function xu(t,n){return Wa(1+Xv.count(cg(t),t),n,3)}function wu(t,n){return Wa(t.getMilliseconds(),n,3)}function Mu(t,n){return wu(t,n)+"000"}function Au(t,n){return Wa(t.getMonth()+1,n,2)}function Tu(t,n){return Wa(t.getMinutes(),n,2)}function Nu(t,n){return Wa(t.getSeconds(),n,2)}function Su(t){var n=t.getDay();return 0===n?7:n}function Eu(t,n){return Wa(Vv.count(cg(t),t),n,2)}function ku(t,n){var e=t.getDay();return t=e>=4||0===e?Qv(t):Qv.ceil(t),Wa(Qv.count(cg(t),t)+(4===cg(t).getDay()),n,2)}function Cu(t){return t.getDay()}function Pu(t,n){return Wa($v.count(cg(t),t),n,2)}function zu(t,n){return Wa(t.getFullYear()%100,n,2)}function Ru(t,n){return Wa(t.getFullYear()%1e4,n,4)}function Lu(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+Wa(n/60|0,"0",2)+Wa(n%60,"0",2)}function Du(t,n){return Wa(t.getUTCDate(),n,2)}function Uu(t,n){return Wa(t.getUTCHours(),n,2)}function qu(t,n){return Wa(t.getUTCHours()%12||12,n,2)}function Ou(t,n){return Wa(1+vg.count(Rg(t),t),n,3)}function Yu(t,n){return Wa(t.getUTCMilliseconds(),n,3)}function Bu(t,n){return Yu(t,n)+"000"}function Fu(t,n){return Wa(t.getUTCMonth()+1,n,2)}function Iu(t,n){return Wa(t.getUTCMinutes(),n,2)}function ju(t,n){return Wa(t.getUTCSeconds(),n,2)}function Hu(t){var n=t.getUTCDay();return 0===n?7:n}function Xu(t,n){return Wa(yg.count(Rg(t),t),n,2)}function Gu(t,n){var e=t.getUTCDay();return t=e>=4||0===e?xg(t):xg.ceil(t),Wa(xg.count(Rg(t),t)+(4===Rg(t).getUTCDay()),n,2)}function Vu(t){return t.getUTCDay()}function $u(t,n){return Wa(_g.count(Rg(t),t),n,2)}function Wu(t,n){return Wa(t.getUTCFullYear()%100,n,2)}function Zu(t,n){return Wa(t.getUTCFullYear()%1e4,n,4)}function Qu(){return"+0000"}function Ju(){return"%"}function Ku(t){return+t}function tf(t){return Math.floor(+t/1e3)}function nf(n){return Lg=$a(n),t.timeFormat=Lg.format,t.timeParse=Lg.parse,t.utcFormat=Lg.utcFormat,t.utcParse=Lg.utcParse,Lg}function ef(t){return new Date(t)}function rf(t){return t instanceof Date?+t:+new Date(+t)}function of(t,n,r,i,o,a,u,f,c){function s(e){return(u(e)<e?g:a(e)<e?y:o(e)<e?_:i(e)<e?b:n(e)<e?r(e)<e?m:x:t(e)<e?w:M)(e)}function l(n,r,i,o){if(null==n&&(n=10),"number"==typeof n){var a=Math.abs(i-r)/n,u=e(function(t){return t[2]}).right(A,a);u===A.length?(o=d(r/Wg,i/Wg,n),n=t):u?(o=(u=A[a/A[u-1][2]<A[u][2]/a?u-1:u])[1],n=u[0]):(o=Math.max(d(r,i,n),1),n=f)}return null==o?n:n.every(o)}var h=Ta(xa,sn),p=h.invert,v=h.domain,g=c(".%L"),y=c(":%S"),_=c("%I:%M"),b=c("%I %p"),m=c("%a %d"),x=c("%b %d"),w=c("%B"),M=c("%Y"),A=[[u,1,jg],[u,5,5*jg],[u,15,15*jg],[u,30,30*jg],[a,1,Hg],[a,5,5*Hg],[a,15,15*Hg],[a,30,30*Hg],[o,1,Xg],[o,3,3*Xg],[o,6,6*Xg],[o,12,12*Xg],[i,1,Gg],[i,2,2*Gg],[r,1,Vg],[n,1,$g],[n,3,3*$g],[t,1,Wg]];return h.invert=function(t){return new Date(p(t))},h.domain=function(t){return arguments.length?v(kv.call(t,rf)):v().map(ef)},h.ticks=function(t,n){var e,r=v(),i=r[0],o=r[r.length-1],a=o<i;return a&&(e=i,i=o,o=e),e=l(t,i,o,n),e=e?e.range(i,o+1):[],a?e.reverse():e},h.tickFormat=function(t,n){return null==n?s:c(n)},h.nice=function(t,n){var e=v();return(t=l(t,e[0],e[e.length-1],n))?v(ka(e,t)):h},h.copy=function(){return Aa(h,of(t,n,r,i,o,a,u,f,c))},h}function af(t){function n(n){var r=(n-e)*i;return t(o?Math.max(0,Math.min(1,r)):r)}var e=0,r=1,i=1,o=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],i=e===r?0:1/(r-e),n):[e,r]},n.clamp=function(t){return arguments.length?(o=!!t,n):o},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return af(t).domain([e,r]).clamp(o)},Na(n)}function uf(t){function n(n){var e=.5+((n=+n)-r)*(n<r?o:a);return t(u?Math.max(0,Math.min(1,e)):e)}var e=0,r=.5,i=1,o=1,a=1,u=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],i=+t[2],o=e===r?0:.5/(r-e),a=r===i?0:.5/(i-r),n):[e,r,i]},n.clamp=function(t){return arguments.length?(u=!!t,n):u},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return uf(t).domain([e,r,i]).clamp(u)},Na(n)}function ff(t){for(var n=t.length/6|0,e=new Array(n),r=0;r<n;)e[r]="#"+t.slice(6*r,6*++r);return e}function cf(t){return il(t[t.length-1])}function sf(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}function lf(t){return function(){return t}}function hf(t){return t>=1?T_:t<=-1?-T_:Math.asin(t)}function df(t){return t.innerRadius}function pf(t){return t.outerRadius}function vf(t){return t.startAngle}function gf(t){return t.endAngle}function yf(t){return t&&t.padAngle}function _f(t,n,e,r,i,o,a){var u=t-e,f=n-r,c=(a?o:-o)/w_(u*u+f*f),s=c*f,l=-c*u,h=t+s,d=n+l,p=e+s,v=r+l,g=(h+p)/2,y=(d+v)/2,_=p-h,b=v-d,m=_*_+b*b,x=i-o,w=h*v-p*d,M=(b<0?-1:1)*w_(b_(0,x*x*m-w*w)),A=(w*b-_*M)/m,T=(-w*_-b*M)/m,N=(w*b+_*M)/m,S=(-w*_+b*M)/m,E=A-g,k=T-y,C=N-g,P=S-y;return E*E+k*k>C*C+P*P&&(A=N,T=S),{cx:A,cy:T,x01:-s,y01:-l,x11:A*(i/x-1),y11:T*(i/x-1)}}function bf(t){this._context=t}function mf(t){return new bf(t)}function xf(t){return t[0]}function wf(t){return t[1]}function Mf(){function t(t){var u,f,c,s=t.length,l=!1;for(null==i&&(a=o(c=oe())),u=0;u<=s;++u)!(u<s&&r(f=t[u],u,t))===l&&((l=!l)?a.lineStart():a.lineEnd()),l&&a.point(+n(f,u,t),+e(f,u,t));if(c)return a=null,c+""||null}var n=xf,e=wf,r=lf(!0),i=null,o=mf,a=null;return t.x=function(e){return arguments.length?(n="function"==typeof e?e:lf(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.defined=function(n){return arguments.length?(r="function"==typeof n?n:lf(!!n),t):r},t.curve=function(n){return arguments.length?(o=n,null!=i&&(a=o(i)),t):o},t.context=function(n){return arguments.length?(null==n?i=a=null:a=o(i=n),t):i},t}function Af(){function t(t){var n,s,l,h,d,p=t.length,v=!1,g=new Array(p),y=new Array(p);for(null==u&&(c=f(d=oe())),n=0;n<=p;++n){if(!(n<p&&a(h=t[n],n,t))===v)if(v=!v)s=n,c.areaStart(),c.lineStart();else{for(c.lineEnd(),c.lineStart(),l=n-1;l>=s;--l)c.point(g[l],y[l]);c.lineEnd(),c.areaEnd()}v&&(g[n]=+e(h,n,t),y[n]=+i(h,n,t),c.point(r?+r(h,n,t):g[n],o?+o(h,n,t):y[n]))}if(d)return c=null,d+""||null}function n(){return Mf().defined(a).curve(f).context(u)}var e=xf,r=null,i=lf(0),o=wf,a=lf(!0),u=null,f=mf,c=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:lf(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:lf(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(a="function"==typeof n?n:lf(!!n),t):a},t.curve=function(n){return arguments.length?(f=n,null!=u&&(c=f(u)),t):f},t.context=function(n){return arguments.length?(null==n?u=c=null:c=f(u=n),t):u},t}function Tf(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function Nf(t){return t}function Sf(t){this._curve=t}function Ef(t){function n(n){return new Sf(t(n))}return n._curve=t,n}function kf(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Ef(t)):n()._curve},t}function Cf(){return kf(Mf().curve(S_))}function Pf(){var t=Af().curve(S_),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return kf(e())},delete t.lineX0,t.lineEndAngle=function(){return kf(r())},delete t.lineX1,t.lineInnerRadius=function(){return kf(i())},delete t.lineY0,t.lineOuterRadius=function(){return kf(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Ef(t)):n()._curve},t}function zf(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}function Rf(t){return t.source}function Lf(t){return t.target}function Df(t){function n(){var n,u=E_.call(arguments),f=e.apply(this,u),c=r.apply(this,u);if(a||(a=n=oe()),t(a,+i.apply(this,(u[0]=f,u)),+o.apply(this,u),+i.apply(this,(u[0]=c,u)),+o.apply(this,u)),n)return a=null,n+""||null}var e=Rf,r=Lf,i=xf,o=wf,a=null;return n.source=function(t){return arguments.length?(e=t,n):e},n.target=function(t){return arguments.length?(r=t,n):r},n.x=function(t){return arguments.length?(i="function"==typeof t?t:lf(+t),n):i},n.y=function(t){return arguments.length?(o="function"==typeof t?t:lf(+t),n):o},n.context=function(t){return arguments.length?(a=null==t?null:t,n):a},n}function Uf(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function qf(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function Of(t,n,e,r,i){var o=zf(n,e),a=zf(n,e=(e+i)/2),u=zf(r,e),f=zf(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],u[0],u[1],f[0],f[1])}function Yf(){}function Bf(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function Ff(t){this._context=t}function If(t){this._context=t}function jf(t){this._context=t}function Hf(t,n){this._basis=new Ff(t),this._beta=n}function Xf(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function Gf(t,n){this._context=t,this._k=(1-n)/6}function Vf(t,n){this._context=t,this._k=(1-n)/6}function $f(t,n){this._context=t,this._k=(1-n)/6}function Wf(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>M_){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,f=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/f,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/f}if(t._l23_a>M_){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*c+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*c+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Zf(t,n){this._context=t,this._alpha=n}function Qf(t,n){this._context=t,this._alpha=n}function Jf(t,n){this._context=t,this._alpha=n}function Kf(t){this._context=t}function tc(t){return t<0?-1:1}function nc(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(tc(o)+tc(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function ec(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function rc(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function ic(t){this._context=t}function oc(t){this._context=new ac(t)}function ac(t){this._context=t}function uc(t){this._context=t}function fc(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,a[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,a[n]-=e*a[n-1];for(i[r-1]=a[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function cc(t,n){this._context=t,this._t=n}function sc(t,n){if((i=t.length)>1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o<i;++o)for(r=a,a=t[n[o]],e=0;e<u;++e)a[e][1]+=a[e][0]=isNaN(r[e][1])?r[e][0]:r[e][1]}function lc(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e}function hc(t,n){return t[n]}function dc(t){var n=t.map(pc);return lc(t).sort(function(t,e){return n[t]-n[e]})}function pc(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}function vc(t){return function(){return t}}function gc(t){return t[0]}function yc(t){return t[1]}function _c(){this._=null}function bc(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function mc(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function xc(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function wc(t){for(;t.L;)t=t.L;return t}function Mc(t,n,e,r){var i=[null,null],o=rb.push(i)-1;return i.left=t,i.right=n,e&&Tc(i,t,n,e),r&&Tc(i,n,t,r),nb[t.index].halfedges.push(o),nb[n.index].halfedges.push(o),i}function Ac(t,n,e){var r=[n,e];return r.left=t,r}function Tc(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function Nc(t,n,e,r,i){var o,a=t[0],u=t[1],f=a[0],c=a[1],s=0,l=1,h=u[0]-f,d=u[1]-c;if(o=n-f,h||!(o>0)){if(o/=h,h<0){if(o<s)return;o<l&&(l=o)}else if(h>0){if(o>l)return;o>s&&(s=o)}if(o=r-f,h||!(o<0)){if(o/=h,h<0){if(o>l)return;o>s&&(s=o)}else if(h>0){if(o<s)return;o<l&&(l=o)}if(o=e-c,d||!(o>0)){if(o/=d,d<0){if(o<s)return;o<l&&(l=o)}else if(d>0){if(o>l)return;o>s&&(s=o)}if(o=i-c,d||!(o<0)){if(o/=d,d<0){if(o>l)return;o>s&&(s=o)}else if(d>0){if(o<s)return;o<l&&(l=o)}return!(s>0||l<1)||(s>0&&(t[0]=[f+s*h,c+s*d]),l<1&&(t[1]=[f+l*h,c+l*d]),!0)}}}}}function Sc(t,n,e,r,i){var o=t[1];if(o)return!0;var a,u,f=t[0],c=t.left,s=t.right,l=c[0],h=c[1],d=s[0],p=s[1],v=(l+d)/2,g=(h+p)/2;if(p===h){if(v<n||v>=r)return;if(l>d){if(f){if(f[1]>=i)return}else f=[v,e];o=[v,i]}else{if(f){if(f[1]<e)return}else f=[v,i];o=[v,e]}}else if(a=(l-d)/(p-h),u=g-a*v,a<-1||a>1)if(l>d){if(f){if(f[1]>=i)return}else f=[(e-u)/a,e];o=[(i-u)/a,i]}else{if(f){if(f[1]<e)return}else f=[(i-u)/a,i];o=[(e-u)/a,e]}else if(h<p){if(f){if(f[0]>=r)return}else f=[n,a*n+u];o=[r,a*r+u]}else{if(f){if(f[0]<n)return}else f=[r,a*r+u];o=[n,a*n+u]}return t[0]=f,t[1]=o,!0}function Ec(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function kc(t,n){return n[+(n.left!==t.site)]}function Cc(t,n){return n[+(n.left===t.site)]}function Pc(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var a=i[0],u=i[1],f=r[0]-a,c=r[1]-u,s=o[0]-a,l=o[1]-u,h=2*(f*l-c*s);if(!(h>=-ub)){var d=f*f+c*c,p=s*s+l*l,v=(l*d-c*p)/h,g=(f*p-s*d)/h,y=ib.pop()||new function(){bc(this),this.x=this.y=this.arc=this.site=this.cy=null};y.arc=t,y.site=i,y.x=v+a,y.y=(y.cy=g+u)+Math.sqrt(v*v+g*g),t.circle=y;for(var _=null,b=eb._;b;)if(y.y<b.y||y.y===b.y&&y.x<=b.x){if(!b.L){_=b.P;break}b=b.L}else{if(!b.R){_=b;break}b=b.R}eb.insert(_,y),_||(K_=y)}}}}function zc(t){var n=t.circle;n&&(n.P||(K_=n.N),eb.remove(n),ib.push(n),bc(n),t.circle=null)}function Rc(t){var n=ob.pop()||new function(){bc(this),this.edge=this.site=this.circle=null};return n.site=t,n}function Lc(t){zc(t),tb.remove(t),ob.push(t),bc(t)}function Dc(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,a=t.N,u=[t];Lc(t);for(var f=o;f.circle&&Math.abs(e-f.circle.x)<ab&&Math.abs(r-f.circle.cy)<ab;)o=f.P,u.unshift(f),Lc(f),f=o;u.unshift(f),zc(f);for(var c=a;c.circle&&Math.abs(e-c.circle.x)<ab&&Math.abs(r-c.circle.cy)<ab;)a=c.N,u.push(c),Lc(c),c=a;u.push(c),zc(c);var s,l=u.length;for(s=1;s<l;++s)c=u[s],f=u[s-1],Tc(c.edge,f.site,c.site,i);f=u[0],(c=u[l-1]).edge=Mc(f.site,c.site,null,i),Pc(f),Pc(c)}function Uc(t){for(var n,e,r,i,o=t[0],a=t[1],u=tb._;u;)if((r=qc(u,a)-o)>ab)u=u.L;else{if(!((i=o-function(t,n){var e=t.N;if(e)return qc(e,n);var r=t.site;return r[1]===n?r[0]:1/0}(u,a))>ab)){r>-ab?(n=u.P,e=u):i>-ab?(n=u,e=u.N):n=e=u;break}if(!u.R){n=u;break}u=u.R}(function(t){nb[t.index]={site:t,halfedges:[]}})(t);var f=Rc(t);if(tb.insert(n,f),n||e){if(n===e)return zc(n),e=Rc(n.site),tb.insert(f,e),f.edge=e.edge=Mc(n.site,f.site),Pc(n),void Pc(e);if(e){zc(n),zc(e);var c=n.site,s=c[0],l=c[1],h=t[0]-s,d=t[1]-l,p=e.site,v=p[0]-s,g=p[1]-l,y=2*(h*g-d*v),_=h*h+d*d,b=v*v+g*g,m=[(g*_-d*b)/y+s,(h*b-v*_)/y+l];Tc(e.edge,c,p,m),f.edge=Mc(c,t,null,m),e.edge=Mc(t,p,null,m),Pc(n),Pc(e)}else f.edge=Mc(n.site,f.site)}}function qc(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var a=t.P;if(!a)return-1/0;var u=(e=a.site)[0],f=e[1],c=f-n;if(!c)return u;var s=u-r,l=1/o-1/c,h=s/c;return l?(-h+Math.sqrt(h*h-2*l*(s*s/(-2*c)-f+c/2+i-o/2)))/l+r:(r+u)/2}function Oc(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function Yc(t,n){return n[1]-t[1]||n[0]-t[0]}function Bc(t,n){var e,r,i,o=t.sort(Yc).pop();for(rb=[],nb=new Array(t.length),tb=new _c,eb=new _c;;)if(i=K_,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===e&&o[1]===r||(Uc(o),e=o[0],r=o[1]),o=t.pop();else{if(!i)break;Dc(i.arc)}if(function(){for(var t,n,e,r,i=0,o=nb.length;i<o;++i)if((t=nb[i])&&(r=(n=t.halfedges).length)){var a=new Array(r),u=new Array(r);for(e=0;e<r;++e)a[e]=e,u[e]=Ec(t,rb[n[e]]);for(a.sort(function(t,n){return u[n]-u[t]}),e=0;e<r;++e)u[e]=n[a[e]];for(e=0;e<r;++e)n[e]=u[e]}}(),n){var a=+n[0][0],u=+n[0][1],f=+n[1][0],c=+n[1][1];(function(t,n,e,r){for(var i,o=rb.length;o--;)Sc(i=rb[o],t,n,e,r)&&Nc(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>ab||Math.abs(i[0][1]-i[1][1])>ab)||delete rb[o]})(a,u,f,c),function(t,n,e,r){var i,o,a,u,f,c,s,l,h,d,p,v,g=nb.length,y=!0;for(i=0;i<g;++i)if(o=nb[i]){for(a=o.site,u=(f=o.halfedges).length;u--;)rb[f[u]]||f.splice(u,1);for(u=0,c=f.length;u<c;)p=(d=Cc(o,rb[f[u]]))[0],v=d[1],l=(s=kc(o,rb[f[++u%c]]))[0],h=s[1],(Math.abs(p-l)>ab||Math.abs(v-h)>ab)&&(f.splice(u,0,rb.push(Ac(a,d,Math.abs(p-t)<ab&&r-v>ab?[t,Math.abs(l-t)<ab?h:r]:Math.abs(v-r)<ab&&e-p>ab?[Math.abs(h-r)<ab?l:e,r]:Math.abs(p-e)<ab&&v-n>ab?[e,Math.abs(l-e)<ab?h:n]:Math.abs(v-n)<ab&&p-t>ab?[Math.abs(h-n)<ab?l:t,n]:null))-1),++c);c&&(y=!1)}if(y){var _,b,m,x=1/0;for(i=0,y=null;i<g;++i)(o=nb[i])&&(m=(_=(a=o.site)[0]-t)*_+(b=a[1]-n)*b)<x&&(x=m,y=o);if(y){var w=[t,n],M=[t,r],A=[e,r],T=[e,n];y.halfedges.push(rb.push(Ac(a=y.site,w,M))-1,rb.push(Ac(a,M,A))-1,rb.push(Ac(a,A,T))-1,rb.push(Ac(a,T,w))-1)}}for(i=0;i<g;++i)(o=nb[i])&&(o.halfedges.length||delete nb[i])}(a,u,f,c)}this.edges=rb,this.cells=nb,tb=eb=rb=nb=null}function Fc(t){return function(){return t}}function Ic(t,n,e){this.k=t,this.x=n,this.y=e}function jc(t){return t.__zoom||fb}function Hc(){t.event.stopImmediatePropagation()}function Xc(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function Gc(){return!t.event.button}function Vc(){var t,n,e=this;return e instanceof SVGElement?(t=(e=e.ownerSVGElement||e).width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function $c(){return this.__zoom||fb}function Wc(){return-t.event.deltaY*(t.event.deltaMode?120:1)/500}function Zc(){return"ontouchstart"in this}function Qc(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}var Jc=e(n),Kc=Jc.right,ts=Jc.left,ns=Array.prototype,es=ns.slice,rs=ns.map,is=Math.sqrt(50),os=Math.sqrt(10),as=Math.sqrt(2),us=Array.prototype.slice,fs=1,cs=2,ss=3,ls=4,hs=1e-6,ds={value:function(){}};S.prototype=N.prototype={constructor:S,on:function(t,n){var e,r=this._,i=function(t,n){return t.trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}(t+"",r),o=-1,a=i.length;{if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o<a;)if(e=(t=i[o]).type)r[e]=E(r[e],t.name,n);else if(null==n)for(e in r)r[e]=E(r[e],t.name,null);return this}for(;++o<a;)if((e=(t=i[o]).type)&&(e=function(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}(r[e],t.name)))return e}},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new S(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var ps="http://www.w3.org/1999/xhtml",vs={svg:"http://www.w3.org/2000/svg",xhtml:ps,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},gs=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var ys=document.documentElement;if(!ys.matches){var _s=ys.webkitMatchesSelector||ys.msMatchesSelector||ys.mozMatchesSelector||ys.oMatchesSelector;gs=function(t){return function(){return _s.call(this,t)}}}}var bs=gs;U.prototype={constructor:U,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var ms="$";H.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var xs={};if(t.event=null,"undefined"!=typeof document){"onmouseenter"in document.documentElement||(xs={mouseenter:"mouseover",mouseleave:"mouseout"})}var ws=[null];ut.prototype=ft.prototype={constructor:ut,select:function(t){"function"!=typeof t&&(t=z(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a,u=n[i],f=u.length,c=r[i]=new Array(f),s=0;s<f;++s)(o=u[s])&&(a=t.call(o,o.__data__,s,u))&&("__data__"in o&&(a.__data__=o.__data__),c[s]=a);return new ut(r,this._parents)},selectAll:function(t){"function"!=typeof t&&(t=L(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var a,u=n[o],f=u.length,c=0;c<f;++c)(a=u[c])&&(r.push(t.call(a,a.__data__,c,u)),i.push(a));return new ut(r,i)},filter:function(t){"function"!=typeof t&&(t=bs(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,f=r[i]=[],c=0;c<u;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&f.push(o);return new ut(r,this._parents)},data:function(t,n){if(!t)return d=new Array(this.size()),c=-1,this.each(function(t){d[++c]=t}),d;var e=n?O:q,r=this._parents,i=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var o=i.length,a=new Array(o),u=new Array(o),f=new Array(o),c=0;c<o;++c){var s=r[c],l=i[c],h=l.length,d=t.call(s,s&&s.__data__,c,r),p=d.length,v=u[c]=new Array(p),g=a[c]=new Array(p);e(s,l,v,g,f[c]=new Array(h),d,n);for(var y,_,b=0,m=0;b<p;++b)if(y=v[b]){for(b>=m&&(m=b+1);!(_=g[m])&&++m<p;);y._next=_||null}}return a=new ut(a,r),a._enter=u,a._exit=f,a},enter:function(){return new ut(this._enter||this._groups.map(D),this._parents)},exit:function(){return new ut(this._exit||this._groups.map(D),this._parents)},merge:function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var f,c=n[u],s=e[u],l=c.length,h=a[u]=new Array(l),d=0;d<l;++d)(f=c[d]||s[d])&&(h[d]=f);for(;u<r;++u)a[u]=n[u];return new ut(a,this._parents)},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Y);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var a,u=e[o],f=u.length,c=i[o]=new Array(f),s=0;s<f;++s)(a=u[s])&&(c[s]=a);c.sort(n)}return new ut(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){var t=0;return this.each(function(){++t}),t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=k(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?e.local?function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}:function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}:e.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):F(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=I(t+"");if(arguments.length<2){for(var r=j(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?X:G)(this,t)}}:n?function(t){return function(){X(this,t)}}:function(t){return function(){G(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?V:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?$:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(W)},lower:function(){return this.each(Z)},append:function(t){var n="function"==typeof t?t:C(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:C(t),r=null==n?Q:"function"==typeof n?n:z(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(J)},clone:function(t){return this.select(t?tt:K)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=function(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}(t+""),a=o.length;if(!(arguments.length<2)){for(u=n?it:rt,null==e&&(e=!1),r=0;r<a;++r)this.each(u(o[r],n,e));return this}var u=this.node().__on;if(u)for(var f,c=0,s=u.length;c<s;++c)for(r=0,f=u[c];r<a;++r)if((i=o[r]).type===f.type&&i.name===f.name)return f.value},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return at(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return at(this,t,n)}})(t,n))}};var Ms=0;lt.prototype=st.prototype={constructor:lt,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}},xt.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var As="\\s*([+-]?\\d+)\\s*",Ts="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ns="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ss=/^#([0-9a-f]{3})$/,Es=/^#([0-9a-f]{6})$/,ks=new RegExp("^rgb\\("+[As,As,As]+"\\)$"),Cs=new RegExp("^rgb\\("+[Ns,Ns,Ns]+"\\)$"),Ps=new RegExp("^rgba\\("+[As,As,As,Ts]+"\\)$"),zs=new RegExp("^rgba\\("+[Ns,Ns,Ns,Ts]+"\\)$"),Rs=new RegExp("^hsl\\("+[Ts,Ns,Ns]+"\\)$"),Ls=new RegExp("^hsla\\("+[Ts,Ns,Ns,Ts]+"\\)$"),Ds={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Nt(Et,kt,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}}),Nt(Lt,Rt,St(Et,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Lt(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Lt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return"#"+Dt(this.r)+Dt(this.g)+Dt(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),Nt(Ot,qt,St(Et,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Ot(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Ot(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Lt(Yt(t>=240?t-240:t+120,i,r),Yt(t,i,r),Yt(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Us=Math.PI/180,qs=180/Math.PI,Os=.96422,Ys=1,Bs=.82521,Fs=4/29,Is=6/29,js=3*Is*Is,Hs=Is*Is*Is;Nt(It,Ft,St(Et,{brighter:function(t){return new It(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new It(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return n=Os*Ht(n),t=Ys*Ht(t),e=Bs*Ht(e),new Lt(Xt(3.1338561*n-1.6168667*t-.4906146*e),Xt(-.9787684*n+1.9161415*t+.033454*e),Xt(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}})),Nt(Wt,$t,St(Et,{brighter:function(t){return new Wt(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Wt(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return Bt(this).rgb()}}));var Xs=-.29227,Gs=-.90649,Vs=1.97294,$s=Vs*Gs,Ws=1.78277*Vs,Zs=1.78277*Xs- -.14861*Gs;Nt(Qt,Zt,St(Et,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Qt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Qt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Us,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Lt(255*(n+e*(-.14861*r+1.78277*i)),255*(n+e*(Xs*r+Gs*i)),255*(n+e*(Vs*r)),this.opacity)}}));var Qs,Js,Ks,tl,nl,el,rl=function t(n){function e(t,n){var e=r((t=Rt(t)).r,(n=Rt(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),a=an(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}var r=on(n);return e.gamma=t,e}(1),il=un(Kt),ol=un(tn),al=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ul=new RegExp(al.source,"g"),fl=180/Math.PI,cl={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},sl=gn(function(t){return"none"===t?cl:(Qs||(Qs=document.createElement("DIV"),Js=document.documentElement,Ks=document.defaultView),Qs.style.transform=t,t=Ks.getComputedStyle(Js.appendChild(Qs),null).getPropertyValue("transform"),Js.removeChild(Qs),t=t.slice(7,-1).split(","),vn(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},"px, ","px)","deg)"),ll=gn(function(t){return null==t?cl:(tl||(tl=document.createElementNS("http://www.w3.org/2000/svg","g")),tl.setAttribute("transform",t),(t=tl.transform.baseVal.consolidate())?(t=t.matrix,vn(t.a,t.b,t.c,t.d,t.e,t.f)):cl)},", ",")",")"),hl=Math.SQRT2,dl=2,pl=4,vl=1e-12,gl=bn(rn),yl=bn(an),_l=mn(rn),bl=mn(an),ml=xn(rn),xl=xn(an),wl=0,Ml=0,Al=0,Tl=1e3,Nl=0,Sl=0,El=0,kl="object"==typeof performance&&performance.now?performance:Date,Cl="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};An.prototype=Tn.prototype={constructor:An,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?wn():+e)+(null==n?0:+n),this._next||el===this||(el?el._next=this:nl=this,el=this),this._call=t,this._time=e,kn()},stop:function(){this._call&&(this._call=null,this._time=1/0,kn())}};var Pl=N("start","end","interrupt"),zl=[],Rl=0,Ll=1,Dl=2,Ul=3,ql=4,Ol=5,Yl=6,Bl=ft.prototype.constructor,Fl=0,Il=ft.prototype;On.prototype=Yn.prototype={constructor:On,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=z(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var u,f,c=r[a],s=c.length,l=o[a]=new Array(s),h=0;h<s;++h)(u=c[h])&&(f=t.call(u,u.__data__,h,c))&&("__data__"in u&&(f.__data__=u.__data__),l[h]=f,Pn(l[h],n,e,h,l,Ln(u,e)));return new On(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=L(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var f,c=r[u],s=c.length,l=0;l<s;++l)if(f=c[l]){for(var h,d=t.call(f,f.__data__,l,c),p=Ln(f,e),v=0,g=d.length;v<g;++v)(h=d[v])&&Pn(h,n,e,v,d,p);o.push(d),a.push(f)}return new On(o,a,n,e)},filter:function(t){"function"!=typeof t&&(t=bs(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,f=r[i]=[],c=0;c<u;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&f.push(o);return new On(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var f,c=n[u],s=e[u],l=c.length,h=a[u]=new Array(l),d=0;d<l;++d)(f=c[d]||s[d])&&(h[d]=f);for(;u<r;++u)a[u]=n[u];return new On(a,this._parents,this._name,this._id)},selection:function(){return new Bl(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=Bn(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],f=u.length,c=0;c<f;++c)if(a=u[c]){var s=Ln(a,n);Pn(a,t,e,c,u,{time:s.time+s.delay+s.duration,delay:0,duration:s.duration,ease:s.ease})}return new On(r,this._parents,t,e)},call:Il.call,nodes:Il.nodes,node:Il.node,size:Il.size,empty:Il.empty,each:Il.each,on:function(t,n){var e=this._id;return arguments.length<2?Ln(this.node(),e).on.on(t):this.each(function(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})}(n)?zn:Rn;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}(e,t,n))},attr:function(t,n){var e=k(t),r="transform"===e?ll:qn;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,o;return function(){var a,u=e(this);if(null!=u)return(a=this.getAttributeNS(t.space,t.local))===u?null:a===r&&u===i?o:o=n(r=a,i=u);this.removeAttributeNS(t.space,t.local)}}:function(t,n,e){var r,i,o;return function(){var a,u=e(this);if(null!=u)return(a=this.getAttribute(t))===u?null:a===r&&u===i?o:o=n(r=a,i=u);this.removeAttribute(t)}})(e,r,Un(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}:function(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}})(e,r,n+""))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=k(t);return this.tween(e,(r.local?function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}:function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e})(r,n))},style:function(t,n,e){var r="transform"==(t+="")?sl:qn;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=F(this,t),a=(this.style.removeProperty(t),F(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,function(t){return function(){this.style.removeProperty(t)}}(t)):this.styleTween(t,"function"==typeof n?function(t,n,e){var r,i,o;return function(){var a=F(this,t),u=e(this);return null==u&&(this.style.removeProperty(t),u=F(this,t)),a===u?null:a===r&&u===i?o:o=n(r=a,i=u)}}(t,r,Un(this,"style."+t,n)):function(t,n,e){var r,i;return function(){var o=F(this,t);return o===e?null:o===r?i:i=n(r=o,e)}}(t,r,n+""),e)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(Un(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},remove:function(){return this.on("end.remove",function(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=Ln(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(t,n){var e,r;return function(){var i=Rn(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}i.tween=r}}:function(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Rn(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},f=0,c=i.length;f<c;++f)if(i[f].name===n){i[f]=u;break}f===c&&i.push(u)}o.tween=i}})(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){zn(this,t).delay=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){zn(this,t).delay=n}})(n,t)):Ln(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){Rn(this,t).duration=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){Rn(this,t).duration=n}})(n,t)):Ln(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw new Error;return function(){Rn(this,t).ease=n}}(n,t)):Ln(this.node(),n).ease}};var jl=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),Hl=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),Xl=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),Gl=Math.PI,Vl=Gl/2,$l=4/11,Wl=6/11,Zl=8/11,Ql=.75,Jl=9/11,Kl=10/11,th=.9375,nh=21/22,eh=63/64,rh=1/$l/$l,ih=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(1.70158),oh=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(1.70158),ah=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(1.70158),uh=2*Math.PI,fh=function t(n,e){function r(t){return n*Math.pow(2,10*--t)*Math.sin((i-t)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=uh);return r.amplitude=function(n){return t(n,e*uh)},r.period=function(e){return t(n,e)},r}(1,.3),ch=function t(n,e){function r(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=uh);return r.amplitude=function(n){return t(n,e*uh)},r.period=function(e){return t(n,e)},r}(1,.3),sh=function t(n,e){function r(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((i-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((i+t)/e))/2}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=uh);return r.amplitude=function(n){return t(n,e*uh)},r.period=function(e){return t(n,e)},r}(1,.3),lh={time:null,delay:0,duration:250,ease:In};ft.prototype.interrupt=function(t){return this.each(function(){Dn(this,t)})},ft.prototype.transition=function(t){var n,e;t instanceof On?(n=t._id,t=t._name):(n=Bn(),(e=lh).time=wn(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],f=u.length,c=0;c<f;++c)(a=u[c])&&Pn(a,t,n,c,u,e||Vn(a,n));return new On(r,this._parents,t,n)};var hh=[null],dh={name:"drag"},ph={name:"space"},vh={name:"handle"},gh={name:"center"},yh={name:"x",handles:["e","w"].map(Qn),input:function(t,n){return t&&[[t[0],n[0][1]],[t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},_h={name:"y",handles:["n","s"].map(Qn),input:function(t,n){return t&&[[n[0][0],t[0]],[n[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},bh={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(Qn),input:function(t){return t},output:function(t){return t}},mh={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},xh={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},wh={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Mh={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Ah={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1},Th=Math.cos,Nh=Math.sin,Sh=Math.PI,Eh=Sh/2,kh=2*Sh,Ch=Math.max,Ph=Array.prototype.slice,zh=Math.PI,Rh=2*zh,Lh=Rh-1e-6;ie.prototype=oe.prototype={constructor:ie,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._+="C"+ +t+","+ +n+","+ +e+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,a=this._y1,u=e-t,f=r-n,c=o-t,s=a-n,l=c*c+s*s;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(l>1e-6)if(Math.abs(s*u-f*c)>1e-6&&i){var h=e-o,d=r-a,p=u*u+f*f,v=h*h+d*d,g=Math.sqrt(p),y=Math.sqrt(l),_=i*Math.tan((zh-Math.acos((p+l-v)/(2*g*y)))/2),b=_/y,m=_/g;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*c)+","+(n+b*s)),this._+="A"+i+","+i+",0,0,"+ +(s*h>c*d)+","+(this._x1=t+m*u)+","+(this._y1=n+m*f)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n;var a=(e=+e)*Math.cos(r),u=e*Math.sin(r),f=t+a,c=n+u,s=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+f+","+c:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-c)>1e-6)&&(this._+="L"+f+","+c),e&&(l<0&&(l=l%Rh+Rh),l>Lh?this._+="A"+e+","+e+",0,1,"+s+","+(t-a)+","+(n-u)+"A"+e+","+e+",0,1,"+s+","+(this._x1=f)+","+(this._y1=c):l>1e-6&&(this._+="A"+e+","+e+",0,"+ +(l>=zh)+","+s+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};le.prototype=he.prototype={constructor:le,has:function(t){return"$"+t in this},get:function(t){return this["$"+t]},set:function(t,n){return this["$"+t]=n,this},remove:function(t){var n="$"+t;return n in this&&delete this[n]},clear:function(){for(var t in this)"$"===t[0]&&delete this[t]},keys:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)"$"===n[0]&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)"$"===n[0]&&++t;return t},empty:function(){for(var t in this)if("$"===t[0])return!1;return!0},each:function(t){for(var n in this)"$"===n[0]&&t(this[n],n.slice(1),this)}};var Dh=he.prototype;ye.prototype=_e.prototype={constructor:ye,has:Dh.has,add:function(t){return t+="",this["$"+t]=t,this},remove:Dh.remove,clear:Dh.clear,values:Dh.keys,size:Dh.size,empty:Dh.empty,each:Dh.each};var Uh=Array.prototype.slice,qh=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]],Oh={},Yh={},Bh=34,Fh=10,Ih=13,jh=ke(","),Hh=jh.parse,Xh=jh.parseRows,Gh=jh.format,Vh=jh.formatRows,$h=ke("\t"),Wh=$h.parse,Zh=$h.parseRows,Qh=$h.format,Jh=$h.formatRows,Kh=Le(Hh),td=Le(Wh),nd=Ue("application/xml"),ed=Ue("text/html"),rd=Ue("image/svg+xml"),id=je.prototype=He.prototype;id.copy=function(){var t,n,e=new He(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Xe(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Xe(n));return e},id.add=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Ye(this.cover(n,e),n,e,t)},id.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),f=1/0,c=1/0,s=-1/0,l=-1/0;for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(a[e]=r,u[e]=i,r<f&&(f=r),r>s&&(s=r),i<c&&(c=i),i>l&&(l=i));for(s<f&&(f=this._x0,s=this._x1),l<c&&(c=this._y0,l=this._y1),this.cover(f,c).cover(s,l),e=0;e<o;++e)Ye(this,a[e],u[e],t[e]);return this},id.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var a,u,f=i-e,c=this._root;switch(u=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{a=new Array(4),a[u]=c,c=a}while(f*=2,i=e+f,o=r+f,t>i||n>o);break;case 1:do{a=new Array(4),a[u]=c,c=a}while(f*=2,e=i-f,o=r+f,e>t||n>o);break;case 2:do{a=new Array(4),a[u]=c,c=a}while(f*=2,i=e+f,r=o-f,t>i||r>n);break;case 3:do{a=new Array(4),a[u]=c,c=a}while(f*=2,e=i-f,r=o-f,e>t||r>n)}this._root&&this._root.length&&(this._root=c)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},id.data=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},id.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},id.find=function(t,n,e){var r,i,o,a,u,f,c,s=this._x0,l=this._y0,h=this._x1,d=this._y1,p=[],v=this._root;for(v&&p.push(new Be(v,s,l,h,d)),null==e?e=1/0:(s=t-e,l=n-e,h=t+e,d=n+e,e*=e);f=p.pop();)if(!(!(v=f.node)||(i=f.x0)>h||(o=f.y0)>d||(a=f.x1)<s||(u=f.y1)<l))if(v.length){var g=(i+a)/2,y=(o+u)/2;p.push(new Be(v[3],g,y,a,u),new Be(v[2],i,y,g,u),new Be(v[1],g,o,a,y),new Be(v[0],i,o,g,y)),(c=(n>=y)<<1|t>=g)&&(f=p[p.length-1],p[p.length-1]=p[p.length-1-c],p[p.length-1-c]=f)}else{var _=t-+this._x.call(null,v.data),b=n-+this._y.call(null,v.data),m=_*_+b*b;if(m<e){var x=Math.sqrt(e=m);s=t-x,l=n-x,h=t+x,d=n+x,r=v.data}}return r},id.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var n,e,r,i,o,a,u,f,c,s,l,h,d=this._root,p=this._x0,v=this._y0,g=this._x1,y=this._y1;if(!d)return this;if(d.length)for(;;){if((c=o>=(u=(p+g)/2))?p=u:g=u,(s=a>=(f=(v+y)/2))?v=f:y=f,n=d,!(d=d[l=s<<1|c]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},id.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},id.root=function(){return this._root},id.size=function(){var t=0;return this.visit(function(n){if(!n.length)do{++t}while(n=n.next)}),t},id.visit=function(t){var n,e,r,i,o,a,u=[],f=this._root;for(f&&u.push(new Be(f,this._x0,this._y0,this._x1,this._y1));n=u.pop();)if(!t(f=n.node,r=n.x0,i=n.y0,o=n.x1,a=n.y1)&&f.length){var c=(r+o)/2,s=(i+a)/2;(e=f[3])&&u.push(new Be(e,c,s,o,a)),(e=f[2])&&u.push(new Be(e,r,s,c,a)),(e=f[1])&&u.push(new Be(e,c,i,o,s)),(e=f[0])&&u.push(new Be(e,r,i,c,s))}return this},id.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new Be(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,a=n.x0,u=n.y0,f=n.x1,c=n.y1,s=(a+f)/2,l=(u+c)/2;(o=i[0])&&e.push(new Be(o,a,u,s,l)),(o=i[1])&&e.push(new Be(o,s,u,f,l)),(o=i[2])&&e.push(new Be(o,a,l,s,c)),(o=i[3])&&e.push(new Be(o,s,l,f,c))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},id.x=function(t){return arguments.length?(this._x=t,this):this._x},id.y=function(t){return arguments.length?(this._y=t,this):this._y};var od=10,ad=Math.PI*(3-Math.sqrt(5)),ud=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;tr.prototype=nr.prototype,nr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var fd,cd,sd={"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return er(100*t,n)},r:er,s:function(t,n){var e=Je(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(fd=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Je(t,Math.max(0,n+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},ld=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];or({decimal:".",thousands:",",grouping:[3],currency:["$",""]}),sr.prototype={constructor:sr,reset:function(){this.s=this.t=0},add:function(t){lr(jd,t,this.t),lr(this,jd.s,this.s),this.s?this.t+=jd.t:this.s=jd.t},valueOf:function(){return this.s}};var hd,dd,pd,vd,gd,yd,_d,bd,md,xd,wd,Md,Ad,Td,Nd,Sd,Ed,kd,Cd,Pd,zd,Rd,Ld,Dd,Ud,qd,Od,Yd,Bd,Fd,Id,jd=new sr,Hd=1e-6,Xd=1e-12,Gd=Math.PI,Vd=Gd/2,$d=Gd/4,Wd=2*Gd,Zd=180/Gd,Qd=Gd/180,Jd=Math.abs,Kd=Math.atan,tp=Math.atan2,np=Math.cos,ep=Math.ceil,rp=Math.exp,ip=Math.log,op=Math.pow,ap=Math.sin,up=Math.sign||function(t){return t>0?1:t<0?-1:0},fp=Math.sqrt,cp=Math.tan,sp={Feature:function(t,n){gr(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)gr(e[r].geometry,n)}},lp={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){yr(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)yr(e[r],n,0)},Polygon:function(t,n){_r(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)_r(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)gr(e[r],n)}},hp=cr(),dp=cr(),pp={point:vr,lineStart:vr,lineEnd:vr,polygonStart:function(){hp.reset(),pp.lineStart=mr,pp.lineEnd=xr},polygonEnd:function(){var t=+hp;dp.add(t<0?Wd+t:t),this.lineStart=this.lineEnd=this.point=vr},sphere:function(){dp.add(Wd)}},vp=cr(),gp={point:Pr,lineStart:Rr,lineEnd:Lr,polygonStart:function(){gp.point=Dr,gp.lineStart=Ur,gp.lineEnd=qr,vp.reset(),pp.polygonStart()},polygonEnd:function(){pp.polygonEnd(),gp.point=Pr,gp.lineStart=Rr,gp.lineEnd=Lr,hp<0?(yd=-(bd=180),_d=-(md=90)):vp>Hd?md=90:vp<-Hd&&(_d=-90),Nd[0]=yd,Nd[1]=bd}},yp={sphere:vr,point:Fr,lineStart:jr,lineEnd:Gr,polygonStart:function(){yp.lineStart=Vr,yp.lineEnd=$r},polygonEnd:function(){yp.lineStart=jr,yp.lineEnd=Gr}};Kr.invert=Kr;var _p,bp,mp,xp,wp,Mp,Ap,Tp,Np,Sp,Ep,kp=cr(),Cp=di(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?Gd:-Gd,f=Jd(o-e);Jd(f-Gd)<Hd?(t.point(e,r=(r+a)/2>0?Vd:-Vd),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&f>=Gd&&(Jd(e-i)<Hd&&(e-=i*Hd),Jd(o-u)<Hd&&(o-=u*Hd),r=function(t,n,e,r){var i,o,a=ap(t-e);return Jd(a)>Hd?Kd((ap(n)*(o=np(r))*ap(e)-ap(r)*(i=np(n))*ap(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(null==t)i=e*Vd,r.point(-Gd,i),r.point(0,i),r.point(Gd,i),r.point(Gd,0),r.point(Gd,-i),r.point(0,-i),r.point(-Gd,-i),r.point(-Gd,0),r.point(-Gd,i);else if(Jd(t[0]-n[0])>Hd){var o=t[0]<n[0]?Gd:-Gd;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])},[-Gd,-Vd]),Pp=1e9,zp=-Pp,Rp=cr(),Lp={sphere:vr,point:vr,lineStart:function(){Lp.point=bi,Lp.lineEnd=_i},lineEnd:vr,polygonStart:vr,polygonEnd:vr},Dp=[null,null],Up={type:"LineString",coordinates:Dp},qp={Feature:function(t,n){return Mi(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(Mi(e[r].geometry,n))return!0;return!1}},Op={Sphere:function(){return!0},Point:function(t,n){return Ai(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Ai(e[r],n))return!0;return!1},LineString:function(t,n){return Ti(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Ti(e[r],n))return!0;return!1},Polygon:function(t,n){return Ni(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Ni(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(Mi(e[r],n))return!0;return!1}},Yp=cr(),Bp=cr(),Fp={point:vr,lineStart:vr,lineEnd:vr,polygonStart:function(){Fp.lineStart=Ri,Fp.lineEnd=Ui},polygonEnd:function(){Fp.lineStart=Fp.lineEnd=Fp.point=vr,Yp.add(Jd(Bp)),Bp.reset()},result:function(){var t=Yp/2;return Yp.reset(),t}},Ip=1/0,jp=Ip,Hp=-Ip,Xp=Hp,Gp={point:function(t,n){t<Ip&&(Ip=t),t>Hp&&(Hp=t),n<jp&&(jp=n),n>Xp&&(Xp=n)},lineStart:vr,lineEnd:vr,polygonStart:vr,polygonEnd:vr,result:function(){var t=[[Ip,jp],[Hp,Xp]];return Hp=Xp=-(jp=Ip=1/0),t}},Vp=0,$p=0,Wp=0,Zp=0,Qp=0,Jp=0,Kp=0,tv=0,nv=0,ev={point:qi,lineStart:Oi,lineEnd:Fi,polygonStart:function(){ev.lineStart=Ii,ev.lineEnd=ji},polygonEnd:function(){ev.point=qi,ev.lineStart=Oi,ev.lineEnd=Fi},result:function(){var t=nv?[Kp/nv,tv/nv]:Jp?[Zp/Jp,Qp/Jp]:Wp?[Vp/Wp,$p/Wp]:[NaN,NaN];return Vp=$p=Wp=Zp=Qp=Jp=Kp=tv=nv=0,t}};Gi.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Wd)}},result:vr};var rv,iv,ov,av,uv,fv=cr(),cv={point:vr,lineStart:function(){cv.point=Vi},lineEnd:function(){rv&&$i(iv,ov),cv.point=vr},polygonStart:function(){rv=!0},polygonEnd:function(){rv=null},result:function(){var t=+fv;return fv.reset(),t}};Wi.prototype={_radius:4.5,_circle:Zi(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=Zi(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},Ji.prototype={constructor:Ji,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var sv=16,lv=np(30*Qd),hv=Qi({point:function(t,n){this.stream.point(t*Qd,n*Qd)}}),dv=ho(function(t){return fp(2/(1+t))});dv.invert=po(function(t){return 2*dr(t/2)});var pv=ho(function(t){return(t=hr(t))&&t/ap(t)});pv.invert=po(function(t){return t}),vo.invert=function(t,n){return[t,2*Kd(rp(n))-Vd]},bo.invert=bo,xo.invert=po(Kd),Mo.invert=function(t,n){var e,r=n,i=25;do{var o=r*r,a=o*o;r-=e=(r*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-n)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(Jd(e)>Hd&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},Ao.invert=po(dr),To.invert=po(function(t){return 2*Kd(t)}),No.invert=function(t,n){return[-n,2*Kd(rp(t))-Vd]},Do.prototype=Po.prototype={constructor:Do,count:function(){return this.eachAfter(Co)},each:function(t){var n,e,r,i,o=this,a=[o];do{for(n=a.reverse(),a=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)a.push(e[r])}while(a.length);return this},eachAfter:function(t){for(var n,e,r,i=this,o=[i],a=[];i=o.pop();)if(a.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=a.pop();)t(i);return this},eachBefore:function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},sort:function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each(function(n){t.push(n)}),t},leaves:function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},links:function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n},copy:function(){return Po(this).eachBefore(Ro)}};var vv=Array.prototype.slice,gv="$",yv={depth:-1},_v={};ca.prototype=Object.create(Do.prototype);var bv=(1+Math.sqrt(5))/2,mv=function t(n){function e(t,e,r,i,o){la(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(bv),xv=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,f,c,s,l=-1,h=a.length,d=t.value;++l<h;){for(f=(u=a[l]).children,c=u.value=0,s=f.length;c<s;++c)u.value+=f[c].value;u.dice?na(u,e,r,i,r+=(o-r)*u.value/d):sa(u,e,r,e+=(i-e)*u.value/d,o),d-=u.value}else t._squarify=a=la(n,t,e,r,i,o),a.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(bv),wv=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(va),Mv=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(va),Av=function t(n){function e(){var t=Mv.source(n).apply(this,arguments);return function(){return Math.exp(t())}}return e.source=t,e}(va),Tv=function t(n){function e(t){return function(){for(var e=0,r=0;r<t;++r)e+=n();return e}}return e.source=t,e}(va),Nv=function t(n){function e(t){var e=Tv.source(n)(t);return function(){return e()/t}}return e.source=t,e}(va),Sv=function t(n){function e(t){return function(){return-Math.log(1-n())/t}}return e.source=t,e}(va),Ev=Array.prototype,kv=Ev.map,Cv=Ev.slice,Pv={name:"implicit"},zv=[0,1],Rv=new Date,Lv=new Date,Dv=Ia(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});Dv.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Ia(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):Dv:null};var Uv=Dv.range,qv=6e4,Ov=6048e5,Yv=Ia(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),Bv=Yv.range,Fv=Ia(function(t){t.setTime(Math.floor(t/qv)*qv)},function(t,n){t.setTime(+t+n*qv)},function(t,n){return(n-t)/qv},function(t){return t.getMinutes()}),Iv=Fv.range,jv=Ia(function(t){var n=t.getTimezoneOffset()*qv%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),Hv=jv.range,Xv=Ia(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*qv)/864e5},function(t){return t.getDate()-1}),Gv=Xv.range,Vv=ja(0),$v=ja(1),Wv=ja(2),Zv=ja(3),Qv=ja(4),Jv=ja(5),Kv=ja(6),tg=Vv.range,ng=$v.range,eg=Wv.range,rg=Zv.range,ig=Qv.range,og=Jv.range,ag=Kv.range,ug=Ia(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),fg=ug.range,cg=Ia(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});cg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ia(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var sg=cg.range,lg=Ia(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*qv)},function(t,n){return(n-t)/qv},function(t){return t.getUTCMinutes()}),hg=lg.range,dg=Ia(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),pg=dg.range,vg=Ia(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),gg=vg.range,yg=Ha(0),_g=Ha(1),bg=Ha(2),mg=Ha(3),xg=Ha(4),wg=Ha(5),Mg=Ha(6),Ag=yg.range,Tg=_g.range,Ng=bg.range,Sg=mg.range,Eg=xg.range,kg=wg.range,Cg=Mg.range,Pg=Ia(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),zg=Pg.range,Rg=Ia(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Rg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ia(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Lg,Dg=Rg.range,Ug={"-":"",_:" ",0:"0"},qg=/^\s*\d+/,Og=/^%/,Yg=/[\\^$*+?|[\]().{}]/g;nf({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Bg="%Y-%m-%dT%H:%M:%S.%LZ",Fg=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat(Bg),Ig=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse(Bg),jg=1e3,Hg=60*jg,Xg=60*Hg,Gg=24*Xg,Vg=7*Gg,$g=30*Gg,Wg=365*Gg,Zg=ff("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Qg=ff("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Jg=ff("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),Kg=ff("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),ty=ff("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),ny=ff("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),ey=ff("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),ry=ff("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),iy=ff("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),oy=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(ff),ay=cf(oy),uy=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(ff),fy=cf(uy),cy=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(ff),sy=cf(cy),ly=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(ff),hy=cf(ly),dy=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(ff),py=cf(dy),vy=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(ff),gy=cf(vy),yy=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(ff),_y=cf(yy),by=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(ff),my=cf(by),xy=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(ff),wy=cf(xy),My=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(ff),Ay=cf(My),Ty=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(ff),Ny=cf(Ty),Sy=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(ff),Ey=cf(Sy),ky=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(ff),Cy=cf(ky),Py=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(ff),zy=cf(Py),Ry=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(ff),Ly=cf(Ry),Dy=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(ff),Uy=cf(Dy),qy=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(ff),Oy=cf(qy),Yy=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(ff),By=cf(Yy),Fy=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(ff),Iy=cf(Fy),jy=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(ff),Hy=cf(jy),Xy=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(ff),Gy=cf(Xy),Vy=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(ff),$y=cf(Vy),Wy=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(ff),Zy=cf(Wy),Qy=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(ff),Jy=cf(Qy),Ky=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(ff),t_=cf(Ky),n_=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(ff),e_=cf(n_),r_=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(ff),i_=cf(r_),o_=xl(Zt(300,.5,0),Zt(-240,.5,1)),a_=xl(Zt(-100,.75,.35),Zt(80,1.5,.8)),u_=xl(Zt(260,.75,.35),Zt(80,1.5,.8)),f_=Zt(),c_=Rt(),s_=Math.PI/3,l_=2*Math.PI/3,h_=sf(ff("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),d_=sf(ff("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),p_=sf(ff("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),v_=sf(ff("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),g_=Math.abs,y_=Math.atan2,__=Math.cos,b_=Math.max,m_=Math.min,x_=Math.sin,w_=Math.sqrt,M_=1e-12,A_=Math.PI,T_=A_/2,N_=2*A_;bf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var S_=Ef(mf);Sf.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var E_=Array.prototype.slice,k_={draw:function(t,n){var e=Math.sqrt(n/A_);t.moveTo(e,0),t.arc(0,0,e,0,N_)}},C_={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},P_=Math.sqrt(1/3),z_=2*P_,R_={draw:function(t,n){var e=Math.sqrt(n/z_),r=e*P_;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},L_=Math.sin(A_/10)/Math.sin(7*A_/10),D_=Math.sin(N_/10)*L_,U_=-Math.cos(N_/10)*L_,q_={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=D_*e,i=U_*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var a=N_*o/5,u=Math.cos(a),f=Math.sin(a);t.lineTo(f*e,-u*e),t.lineTo(u*r-f*i,f*r+u*i)}t.closePath()}},O_={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},Y_=Math.sqrt(3),B_={draw:function(t,n){var e=-Math.sqrt(n/(3*Y_));t.moveTo(0,2*e),t.lineTo(-Y_*e,-e),t.lineTo(Y_*e,-e),t.closePath()}},F_=Math.sqrt(3)/2,I_=1/Math.sqrt(12),j_=3*(I_/2+1),H_={draw:function(t,n){var e=Math.sqrt(n/j_),r=e/2,i=e*I_,o=r,a=e*I_+e,u=-o,f=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,f),t.lineTo(-.5*r-F_*i,F_*r+-.5*i),t.lineTo(-.5*o-F_*a,F_*o+-.5*a),t.lineTo(-.5*u-F_*f,F_*u+-.5*f),t.lineTo(-.5*r+F_*i,-.5*i-F_*r),t.lineTo(-.5*o+F_*a,-.5*a-F_*o),t.lineTo(-.5*u+F_*f,-.5*f-F_*u),t.closePath()}},X_=[k_,C_,R_,O_,q_,B_,H_];Ff.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Bf(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Bf(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},If.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:Bf(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},jf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:Bf(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Hf.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,f=-1;++f<=e;)r=f/e,this._basis.point(this._beta*t[f]+(1-this._beta)*(i+r*a),this._beta*n[f]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var G_=function t(n){function e(t){return 1===n?new Ff(t):new Hf(t,n)}return e.beta=function(n){return t(+n)},e}(.85);Gf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Xf(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Xf(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var V_=function t(n){function e(t){return new Gf(t,n)}return e.tension=function(n){return t(+n)},e}(0);Vf.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Xf(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var $_=function t(n){function e(t){return new Vf(t,n)}return e.tension=function(n){return t(+n)},e}(0);$f.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Xf(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var W_=function t(n){function e(t){return new $f(t,n)}return e.tension=function(n){return t(+n)},e}(0);Zf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Wf(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Z_=function t(n){function e(t){return n?new Zf(t,n):new Gf(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Qf.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Wf(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Q_=function t(n){function e(t){return n?new Qf(t,n):new Vf(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Jf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Wf(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var J_=function t(n){function e(t){return n?new Jf(t,n):new $f(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Kf.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}},ic.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:rc(this,this._t0,ec(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,t!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,rc(this,ec(this,e=nc(this,t,n)),e);break;default:rc(this,this._t0,e=nc(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(oc.prototype=Object.create(ic.prototype)).point=function(t,n){ic.prototype.point.call(this,n,t)},ac.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},uc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=fc(t),i=fc(n),o=0,a=1;a<e;++o,++a)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[a],n[a]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}},cc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}},_c.prototype={constructor:_c,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=wc(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)e===(r=e.U).L?(i=r.R)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(mc(this,e),e=(t=e).U),e.C=!1,r.C=!0,xc(this,r)):(i=r.L)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(xc(this,e),e=(t=e).U),e.C=!1,r.C=!0,mc(this,r)),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,a=t.R;if(e=o?a?wc(a):o:a,i?i.L===t?i.L=e:i.R=e:this._=e,o&&a?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==a?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=a,a.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((n=i.R).C&&(n.C=!1,i.C=!0,mc(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,xc(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,mc(this,i),t=this._;break}}else if((n=i.L).C&&(n.C=!1,i.C=!0,xc(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,mc(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,xc(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var K_,tb,nb,eb,rb,ib=[],ob=[],ab=1e-6,ub=1e-12;Bc.prototype={constructor:Bc,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return kc(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(o=(i=e.halfedges).length)for(var i,o,a,u=e.site,f=-1,c=n[i[o-1]],s=c.left===u?c.right:c.left;++f<o;)a=s,s=(c=n[i[f]]).left===u?c.right:c.left,a&&s&&r<a.index&&r<s.index&&Oc(u,a,s)<0&&t.push([u.data,a.data,s.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,o=this,a=o._found||0,u=o.cells.length;!(i=o.cells[a]);)if(++a>=u)return null;var f=t-i.site[0],c=n-i.site[1],s=f*f+c*c;do{i=o.cells[r=a],a=null,i.halfedges.forEach(function(e){var r=o.edges[e],u=r.left;if(u!==i.site&&u||(u=r.right)){var f=t-u[0],c=n-u[1],l=f*f+c*c;l<s&&(s=l,a=u.index)}})}while(null!==a);return o._found=r,null==e||s<=e*e?i.site:null}},Ic.prototype={constructor:Ic,scale:function(t){return 1===t?this:new Ic(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new Ic(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var fb=new Ic(1,0,0);jc.prototype=Ic.prototype,t.version="5.5.0",t.bisect=Kc,t.bisectRight=Kc,t.bisectLeft=ts,t.ascending=n,t.bisector=e,t.cross=function(t,n,e){var i,o,a,u,f=t.length,c=n.length,s=new Array(f*c);for(null==e&&(e=r),i=a=0;i<f;++i)for(u=t[i],o=0;o<c;++o,++a)s[a]=e(u,n[o]);return s},t.descending=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},t.deviation=a,t.extent=u,t.histogram=function(){function t(t){var i,o,a=t.length,u=new Array(a);for(i=0;i<a;++i)u[i]=n(t[i],i,t);var f=e(u),c=f[0],l=f[1],h=r(u,c,l);Array.isArray(h)||(h=d(c,l,h),h=s(Math.ceil(c/h)*h,Math.floor(l/h)*h,h));for(var p=h.length;h[0]<=c;)h.shift(),--p;for(;h[p-1]>l;)h.pop(),--p;var v,g=new Array(p+1);for(i=0;i<=p;++i)(v=g[i]=[]).x0=i>0?h[i-1]:c,v.x1=i<p?h[i]:l;for(i=0;i<a;++i)c<=(o=u[i])&&o<=l&&g[Kc(h,o,0,p)].push(t[i]);return g}var n=c,e=u,r=p;return t.value=function(e){return arguments.length?(n="function"==typeof e?e:f(e),t):n},t.domain=function(n){return arguments.length?(e="function"==typeof n?n:f([n[0],n[1]]),t):e},t.thresholds=function(n){return arguments.length?(r="function"==typeof n?n:Array.isArray(n)?f(es.call(n)):f(n),t):r},t},t.thresholdFreedmanDiaconis=function(t,e,r){return t=rs.call(t,i).sort(n),Math.ceil((r-e)/(2*(v(t,.75)-v(t,.25))*Math.pow(t.length,-1/3)))},t.thresholdScott=function(t,n,e){return Math.ceil((e-n)/(3.5*a(t)*Math.pow(t.length,-1/3)))},t.thresholdSturges=p,t.max=g,t.mean=function(t,n){var e,r=t.length,o=r,a=-1,u=0;if(null==n)for(;++a<r;)isNaN(e=i(t[a]))?--o:u+=e;else for(;++a<r;)isNaN(e=i(n(t[a],a,t)))?--o:u+=e;if(o)return u/o},t.median=function(t,e){var r,o=t.length,a=-1,u=[];if(null==e)for(;++a<o;)isNaN(r=i(t[a]))||u.push(r);else for(;++a<o;)isNaN(r=i(e(t[a],a,t)))||u.push(r);return v(u.sort(n),.5)},t.merge=y,t.min=_,t.pairs=function(t,n){null==n&&(n=r);for(var e=0,i=t.length-1,o=t[0],a=new Array(i<0?0:i);e<i;)a[e]=n(o,o=t[++e]);return a},t.permute=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},t.quantile=v,t.range=s,t.scan=function(t,e){if(r=t.length){var r,i,o=0,a=0,u=t[a];for(null==e&&(e=n);++o<r;)(e(i=t[o],u)<0||0!==e(u,u))&&(u=i,a=o);return 0===e(u,u)?a:void 0}},t.shuffle=function(t,n,e){for(var r,i,o=(null==e?t.length:e)-(n=null==n?0:+n);o;)i=Math.random()*o--|0,r=t[o+n],t[o+n]=t[i+n],t[i+n]=r;return t},t.sum=function(t,n){var e,r=t.length,i=-1,o=0;if(null==n)for(;++i<r;)(e=+t[i])&&(o+=e);else for(;++i<r;)(e=+n(t[i],i,t))&&(o+=e);return o},t.ticks=l,t.tickIncrement=h,t.tickStep=d,t.transpose=b,t.variance=o,t.zip=function(){return b(arguments)},t.axisTop=function(t){return T(fs,t)},t.axisRight=function(t){return T(cs,t)},t.axisBottom=function(t){return T(ss,t)},t.axisLeft=function(t){return T(ls,t)},t.brush=function(){return ee(bh)},t.brushX=function(){return ee(yh)},t.brushY=function(){return ee(_h)},t.brushSelection=function(t){var n=t.__brush;return n?n.dim.output(n.selection):null},t.chord=function(){function t(t){var o,a,u,f,c,l,h=t.length,d=[],p=s(h),v=[],g=[],y=g.groups=new Array(h),_=new Array(h*h);for(o=0,c=-1;++c<h;){for(a=0,l=-1;++l<h;)a+=t[c][l];d.push(a),v.push(s(h)),o+=a}for(e&&p.sort(function(t,n){return e(d[t],d[n])}),r&&v.forEach(function(n,e){n.sort(function(n,i){return r(t[e][n],t[e][i])})}),f=(o=Ch(0,kh-n*h)/o)?n:kh/h,a=0,c=-1;++c<h;){for(u=a,l=-1;++l<h;){var b=p[c],m=v[b][l],x=t[b][m],w=a,M=a+=x*o;_[m*h+b]={index:b,subindex:m,startAngle:w,endAngle:M,value:x}}y[b]={index:b,startAngle:u,endAngle:a,value:d[b]},a+=f}for(c=-1;++c<h;)for(l=c-1;++l<h;){var A=_[l*h+c],T=_[c*h+l];(A.value||T.value)&&g.push(A.value<T.value?{source:T,target:A}:{source:A,target:T})}return i?g.sort(i):g}var n=0,e=null,r=null,i=null;return t.padAngle=function(e){return arguments.length?(n=Ch(0,e),t):n},t.sortGroups=function(n){return arguments.length?(e=n,t):e},t.sortSubgroups=function(n){return arguments.length?(r=n,t):r},t.sortChords=function(n){return arguments.length?(null==n?i=null:(i=function(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}(n))._=n,t):i&&i._},t},t.ribbon=function(){function t(){var t,u=Ph.call(arguments),f=n.apply(this,u),c=e.apply(this,u),s=+r.apply(this,(u[0]=f,u)),l=i.apply(this,u)-Eh,h=o.apply(this,u)-Eh,d=s*Th(l),p=s*Nh(l),v=+r.apply(this,(u[0]=c,u)),g=i.apply(this,u)-Eh,y=o.apply(this,u)-Eh;if(a||(a=t=oe()),a.moveTo(d,p),a.arc(0,0,s,l,h),l===g&&h===y||(a.quadraticCurveTo(0,0,v*Th(g),v*Nh(g)),a.arc(0,0,v,g,y)),a.quadraticCurveTo(0,0,d,p),a.closePath(),t)return a=null,t+""||null}var n=ae,e=ue,r=fe,i=ce,o=se,a=null;return t.radius=function(n){return arguments.length?(r="function"==typeof n?n:re(+n),t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:re(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:re(+n),t):o},t.source=function(e){return arguments.length?(n=e,t):n},t.target=function(n){return arguments.length?(e=n,t):e},t.context=function(n){return arguments.length?(a=null==n?null:n,t):a},t},t.nest=function(){function t(n,i,a,u){if(i>=o.length)return null!=e&&n.sort(e),null!=r?r(n):n;for(var f,c,s,l=-1,h=n.length,d=o[i++],p=he(),v=a();++l<h;)(s=p.get(f=d(c=n[l])+""))?s.push(c):p.set(f,[c]);return p.each(function(n,e){u(v,e,t(n,i,a,u))}),v}function n(t,e){if(++e>o.length)return t;var i,u=a[e-1];return null!=r&&e>=o.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=u?i.sort(function(t,n){return u(t.key,n.key)}):i}var e,r,i,o=[],a=[];return i={object:function(n){return t(n,0,de,pe)},map:function(n){return t(n,0,ve,ge)},entries:function(e){return n(t(e,0,ve,ge),0)},key:function(t){return o.push(t),i},sortKeys:function(t){return a[o.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},t.set=_e,t.map=he,t.keys=function(t){var n=[];for(var e in t)n.push(e);return n},t.values=function(t){var n=[];for(var e in t)n.push(t[e]);return n},t.entries=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},t.color=kt,t.rgb=Rt,t.hsl=qt,t.lab=Ft,t.hcl=$t,t.lch=function(t,n,e,r){return 1===arguments.length?Vt(t):new Wt(e,n,t,null==r?1:r)},t.gray=function(t,n){return new It(t,0,0,null==n?1:n)},t.cubehelix=Zt,t.contours=Me,t.contourDensity=function(){function t(t){var e=new Float32Array(v*y),r=new Float32Array(v*y);t.forEach(function(t,n,r){var i=a(t,n,r)+p>>h,o=u(t,n,r)+p>>h;i>=0&&i<v&&o>=0&&o<y&&++e[i+o*v]}),Ae({width:v,height:y,data:e},{width:v,height:y,data:r},l>>h),Te({width:v,height:y,data:r},{width:v,height:y,data:e},l>>h),Ae({width:v,height:y,data:e},{width:v,height:y,data:r},l>>h),Te({width:v,height:y,data:r},{width:v,height:y,data:e},l>>h),Ae({width:v,height:y,data:e},{width:v,height:y,data:r},l>>h),Te({width:v,height:y,data:r},{width:v,height:y,data:e},l>>h);var i=_(e);if(!Array.isArray(i)){var o=g(e);i=d(0,o,i),(i=s(0,Math.floor(o/i)*i,i)).shift()}return Me().thresholds(i).size([v,y])(e).map(n)}function n(t){return t.value*=Math.pow(2,-2*h),t.coordinates.forEach(e),t}function e(t){t.forEach(r)}function r(t){t.forEach(i)}function i(t){t[0]=t[0]*Math.pow(2,h)-p,t[1]=t[1]*Math.pow(2,h)-p}function o(){return p=3*l,v=f+2*p>>h,y=c+2*p>>h,t}var a=Ne,u=Se,f=960,c=500,l=20,h=2,p=3*l,v=f+2*p>>h,y=c+2*p>>h,_=me(20);return t.x=function(n){return arguments.length?(a="function"==typeof n?n:me(+n),t):a},t.y=function(n){return arguments.length?(u="function"==typeof n?n:me(+n),t):u},t.size=function(t){if(!arguments.length)return[f,c];var n=Math.ceil(t[0]),e=Math.ceil(t[1]);if(!(n>=0||n>=0))throw new Error("invalid size");return f=n,c=e,o()},t.cellSize=function(t){if(!arguments.length)return 1<<h;if(!((t=+t)>=1))throw new Error("invalid cell size");return h=Math.floor(Math.log(t)/Math.LN2),o()},t.thresholds=function(n){return arguments.length?(_="function"==typeof n?n:Array.isArray(n)?me(Uh.call(n)):me(n),t):_},t.bandwidth=function(t){if(!arguments.length)return Math.sqrt(l*(l+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return l=Math.round((Math.sqrt(4*t*t+1)-1)/2),o()},t},t.dispatch=N,t.drag=function(){function n(t){t.on("mousedown.drag",e).filter(g).on("touchstart.drag",o).on("touchmove.drag",a).on("touchend.drag touchcancel.drag",u).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(){if(!h&&d.apply(this,arguments)){var n=f("mouse",p.apply(this,arguments),pt,this,arguments);n&&(ct(t.event.view).on("mousemove.drag",r,!0).on("mouseup.drag",i,!0),_t(t.event.view),gt(),l=!1,c=t.event.clientX,s=t.event.clientY,n("start"))}}function r(){if(yt(),!l){var n=t.event.clientX-c,e=t.event.clientY-s;l=n*n+e*e>m}y.mouse("drag")}function i(){ct(t.event.view).on("mousemove.drag mouseup.drag",null),bt(t.event.view,l),yt(),y.mouse("end")}function o(){if(d.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=p.apply(this,arguments),o=r.length;for(n=0;n<o;++n)(e=f(r[n].identifier,i,vt,this,arguments))&&(gt(),e("start"))}}function a(){var n,e,r=t.event.changedTouches,i=r.length;for(n=0;n<i;++n)(e=y[r[n].identifier])&&(yt(),e("drag"))}function u(){var n,e,r=t.event.changedTouches,i=r.length;for(h&&clearTimeout(h),h=setTimeout(function(){h=null},500),n=0;n<i;++n)(e=y[r[n].identifier])&&(gt(),e("end"))}function f(e,r,i,o,a){var u,f,c,s=i(r,e),l=_.copy();if(ot(new xt(n,"beforestart",u,e,b,s[0],s[1],0,0,l),function(){return null!=(t.event.subject=u=v.apply(o,a))&&(f=u.x-s[0]||0,c=u.y-s[1]||0,!0)}))return function t(h){var d,p=s;switch(h){case"start":y[e]=t,d=b++;break;case"end":delete y[e],--b;case"drag":s=i(r,e),d=b}ot(new xt(n,h,u,e,d,s[0]+f,s[1]+c,s[0]-p[0],s[1]-p[1],l),l.apply,l,[h,o,a])}}var c,s,l,h,d=wt,p=Mt,v=At,g=Tt,y={},_=N("start","drag","end"),b=0,m=0;return n.filter=function(t){return arguments.length?(d="function"==typeof t?t:mt(!!t),n):d},n.container=function(t){return arguments.length?(p="function"==typeof t?t:mt(t),n):p},n.subject=function(t){return arguments.length?(v="function"==typeof t?t:mt(t),n):v},n.touchable=function(t){return arguments.length?(g="function"==typeof t?t:mt(!!t),n):g},n.on=function(){var t=_.on.apply(_,arguments);return t===_?n:t},n.clickDistance=function(t){return arguments.length?(m=(t=+t)*t,n):Math.sqrt(m)},n},t.dragDisable=_t,t.dragEnable=bt,t.dsvFormat=ke,t.csvParse=Hh,t.csvParseRows=Xh,t.csvFormat=Gh,t.csvFormatRows=Vh,t.tsvParse=Wh,t.tsvParseRows=Zh,t.tsvFormat=Qh,t.tsvFormatRows=Jh,t.easeLinear=function(t){return+t},t.easeQuad=Fn,t.easeQuadIn=function(t){return t*t},t.easeQuadOut=function(t){return t*(2-t)},t.easeQuadInOut=Fn,t.easeCubic=In,t.easeCubicIn=function(t){return t*t*t},t.easeCubicOut=function(t){return--t*t*t+1},t.easeCubicInOut=In,t.easePoly=Xl,t.easePolyIn=jl,t.easePolyOut=Hl,t.easePolyInOut=Xl,t.easeSin=jn,t.easeSinIn=function(t){return 1-Math.cos(t*Vl)},t.easeSinOut=function(t){return Math.sin(t*Vl)},t.easeSinInOut=jn,t.easeExp=Hn,t.easeExpIn=function(t){return Math.pow(2,10*t-10)},t.easeExpOut=function(t){return 1-Math.pow(2,-10*t)},t.easeExpInOut=Hn,t.easeCircle=Xn,t.easeCircleIn=function(t){return 1-Math.sqrt(1-t*t)},t.easeCircleOut=function(t){return Math.sqrt(1- --t*t)},t.easeCircleInOut=Xn,t.easeBounce=Gn,t.easeBounceIn=function(t){return 1-Gn(1-t)},t.easeBounceOut=Gn,t.easeBounceInOut=function(t){return((t*=2)<=1?1-Gn(1-t):Gn(t-1)+1)/2},t.easeBack=ah,t.easeBackIn=ih,t.easeBackOut=oh,t.easeBackInOut=ah,t.easeElastic=ch,t.easeElasticIn=fh,t.easeElasticOut=ch,t.easeElasticInOut=sh,t.blob=function(t,n){return fetch(t,n).then(Ce)},t.buffer=function(t,n){return fetch(t,n).then(Pe)},t.dsv=function(t,n,e,r){3===arguments.length&&"function"==typeof e&&(r=e,e=void 0);var i=ke(t);return Re(n,e).then(function(t){return i.parse(t,r)})},t.csv=Kh,t.tsv=td,t.image=function(t,n){return new Promise(function(e,r){var i=new Image;for(var o in n)i[o]=n[o];i.onerror=r,i.onload=function(){e(i)},i.src=t})},t.json=function(t,n){return fetch(t,n).then(De)},t.text=Re,t.xml=nd,t.html=ed,t.svg=rd,t.forceCenter=function(t,n){function e(){var e,i,o=r.length,a=0,u=0;for(e=0;e<o;++e)a+=(i=r[e]).x,u+=i.y;for(a=a/o-t,u=u/o-n,e=0;e<o;++e)(i=r[e]).x-=a,i.y-=u}var r;return null==t&&(t=0),null==n&&(n=0),e.initialize=function(t){r=t},e.x=function(n){return arguments.length?(t=+n,e):t},e.y=function(t){return arguments.length?(n=+t,e):n},e},t.forceCollide=function(t){function n(){for(var t,n,r,f,c,s,l,h=i.length,d=0;d<u;++d)for(n=je(i,Ge,Ve).visitAfter(e),t=0;t<h;++t)r=i[t],s=o[r.index],l=s*s,f=r.x+r.vx,c=r.y+r.vy,n.visit(function(t,n,e,i,o){var u=t.data,h=t.r,d=s+h;if(!u)return n>f+d||i<f-d||e>c+d||o<c-d;if(u.index>r.index){var p=f-u.x-u.vx,v=c-u.y-u.vy,g=p*p+v*v;g<d*d&&(0===p&&(p=Oe(),g+=p*p),0===v&&(v=Oe(),g+=v*v),g=(d-(g=Math.sqrt(g)))/g*a,r.vx+=(p*=g)*(d=(h*=h)/(l+h)),r.vy+=(v*=g)*d,u.vx-=p*(d=1-d),u.vy-=v*d)}})}function e(t){if(t.data)return t.r=o[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function r(){if(i){var n,e,r=i.length;for(o=new Array(r),n=0;n<r;++n)e=i[n],o[e.index]=+t(e,n,i)}}var i,o,a=1,u=1;return"function"!=typeof t&&(t=qe(null==t?1:+t)),n.initialize=function(t){i=t,r()},n.iterations=function(t){return arguments.length?(u=+t,n):u},n.strength=function(t){return arguments.length?(a=+t,n):a},n.radius=function(e){return arguments.length?(t="function"==typeof e?e:qe(+e),r(),n):t},n},t.forceLink=function(t){function n(n){for(var e=0,r=t.length;e<d;++e)for(var i,u,f,s,l,h,p,v=0;v<r;++v)u=(i=t[v]).source,s=(f=i.target).x+f.vx-u.x-u.vx||Oe(),l=f.y+f.vy-u.y-u.vy||Oe(),s*=h=((h=Math.sqrt(s*s+l*l))-a[v])/h*n*o[v],l*=h,f.vx-=s*(p=c[v]),f.vy-=l*p,u.vx+=s*(p=1-p),u.vy+=l*p}function e(){if(u){var n,e,l=u.length,h=t.length,d=he(u,s);for(n=0,f=new Array(l);n<h;++n)(e=t[n]).index=n,"object"!=typeof e.source&&(e.source=We(d,e.source)),"object"!=typeof e.target&&(e.target=We(d,e.target)),f[e.source.index]=(f[e.source.index]||0)+1,f[e.target.index]=(f[e.target.index]||0)+1;for(n=0,c=new Array(h);n<h;++n)e=t[n],c[n]=f[e.source.index]/(f[e.source.index]+f[e.target.index]);o=new Array(h),r(),a=new Array(h),i()}}function r(){if(u)for(var n=0,e=t.length;n<e;++n)o[n]=+l(t[n],n,t)}function i(){if(u)for(var n=0,e=t.length;n<e;++n)a[n]=+h(t[n],n,t)}var o,a,u,f,c,s=$e,l=function(t){return 1/Math.min(f[t.source.index],f[t.target.index])},h=qe(30),d=1;return null==t&&(t=[]),n.initialize=function(t){u=t,e()},n.links=function(r){return arguments.length?(t=r,e(),n):t},n.id=function(t){return arguments.length?(s=t,n):s},n.iterations=function(t){return arguments.length?(d=+t,n):d},n.strength=function(t){return arguments.length?(l="function"==typeof t?t:qe(+t),r(),n):l},n.distance=function(t){return arguments.length?(h="function"==typeof t?t:qe(+t),i(),n):h},n},t.forceManyBody=function(){function t(t){var n,u=i.length,f=je(i,Ze,Qe).visitAfter(e);for(a=t,n=0;n<u;++n)o=i[n],f.visit(r)}function n(){if(i){var t,n,e=i.length;for(u=new Array(e),t=0;t<e;++t)n=i[t],u[n.index]=+f(n,t,i)}}function e(t){var n,e,r,i,o,a=0,f=0;if(t.length){for(r=i=o=0;o<4;++o)(n=t[o])&&(e=Math.abs(n.value))&&(a+=n.value,f+=e,r+=e*n.x,i+=e*n.y);t.x=r/f,t.y=i/f}else{(n=t).x=n.data.x,n.y=n.data.y;do{a+=u[n.data.index]}while(n=n.next)}t.value=a}function r(t,n,e,r){if(!t.value)return!0;var i=t.x-o.x,f=t.y-o.y,h=r-n,d=i*i+f*f;if(h*h/l<d)return d<s&&(0===i&&(i=Oe(),d+=i*i),0===f&&(f=Oe(),d+=f*f),d<c&&(d=Math.sqrt(c*d)),o.vx+=i*t.value*a/d,o.vy+=f*t.value*a/d),!0;if(!(t.length||d>=s)){(t.data!==o||t.next)&&(0===i&&(i=Oe(),d+=i*i),0===f&&(f=Oe(),d+=f*f),d<c&&(d=Math.sqrt(c*d)));do{t.data!==o&&(h=u[t.data.index]*a/d,o.vx+=i*h,o.vy+=f*h)}while(t=t.next)}}var i,o,a,u,f=qe(-30),c=1,s=1/0,l=.81;return t.initialize=function(t){i=t,n()},t.strength=function(e){return arguments.length?(f="function"==typeof e?e:qe(+e),n(),t):f},t.distanceMin=function(n){return arguments.length?(c=n*n,t):Math.sqrt(c)},t.distanceMax=function(n){return arguments.length?(s=n*n,t):Math.sqrt(s)},t.theta=function(n){return arguments.length?(l=n*n,t):Math.sqrt(l)},t},t.forceRadial=function(t,n,e){function r(t){for(var r=0,i=o.length;r<i;++r){var f=o[r],c=f.x-n||1e-6,s=f.y-e||1e-6,l=Math.sqrt(c*c+s*s),h=(u[r]-l)*a[r]*t/l;f.vx+=c*h,f.vy+=s*h}}function i(){if(o){var n,e=o.length;for(a=new Array(e),u=new Array(e),n=0;n<e;++n)u[n]=+t(o[n],n,o),a[n]=isNaN(u[n])?0:+f(o[n],n,o)}}var o,a,u,f=qe(.1);return"function"!=typeof t&&(t=qe(+t)),null==n&&(n=0),null==e&&(e=0),r.initialize=function(t){o=t,i()},r.strength=function(t){return arguments.length?(f="function"==typeof t?t:qe(+t),i(),r):f},r.radius=function(n){return arguments.length?(t="function"==typeof n?n:qe(+n),i(),r):t},r.x=function(t){return arguments.length?(n=+t,r):n},r.y=function(t){return arguments.length?(e=+t,r):e},r},t.forceSimulation=function(t){function n(){e(),d.call("tick",o),a<u&&(h.stop(),d.call("end",o))}function e(){var n,e,r=t.length;for(a+=(c-a)*f,l.each(function(t){t(a)}),n=0;n<r;++n)null==(e=t[n]).fx?e.x+=e.vx*=s:(e.x=e.fx,e.vx=0),null==e.fy?e.y+=e.vy*=s:(e.y=e.fy,e.vy=0)}function r(){for(var n,e=0,r=t.length;e<r;++e){if(n=t[e],n.index=e,isNaN(n.x)||isNaN(n.y)){var i=od*Math.sqrt(e),o=e*ad;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function i(n){return n.initialize&&n.initialize(t),n}var o,a=1,u=.001,f=1-Math.pow(u,1/300),c=0,s=.6,l=he(),h=Tn(n),d=N("tick","end");return null==t&&(t=[]),r(),o={tick:e,restart:function(){return h.restart(n),o},stop:function(){return h.stop(),o},nodes:function(n){return arguments.length?(t=n,r(),l.each(i),o):t},alpha:function(t){return arguments.length?(a=+t,o):a},alphaMin:function(t){return arguments.length?(u=+t,o):u},alphaDecay:function(t){return arguments.length?(f=+t,o):+f},alphaTarget:function(t){return arguments.length?(c=+t,o):c},velocityDecay:function(t){return arguments.length?(s=1-t,o):1-s},force:function(t,n){return arguments.length>1?(null==n?l.remove(t):l.set(t,i(n)),o):l.get(t)},find:function(n,e,r){var i,o,a,u,f,c=0,s=t.length;for(null==r?r=1/0:r*=r,c=0;c<s;++c)(a=(i=n-(u=t[c]).x)*i+(o=e-u.y)*o)<r&&(f=u,r=a);return f},on:function(t,n){return arguments.length>1?(d.on(t,n),o):d.on(t)}}},t.forceX=function(t){function n(t){for(var n,e=0,a=r.length;e<a;++e)(n=r[e]).vx+=(o[e]-n.x)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+a(r[n],n,r)}}var r,i,o,a=qe(.1);return"function"!=typeof t&&(t=qe(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(a="function"==typeof t?t:qe(+t),e(),n):a},n.x=function(r){return arguments.length?(t="function"==typeof r?r:qe(+r),e(),n):t},n},t.forceY=function(t){function n(t){for(var n,e=0,a=r.length;e<a;++e)(n=r[e]).vy+=(o[e]-n.y)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+a(r[n],n,r)}}var r,i,o,a=qe(.1);return"function"!=typeof t&&(t=qe(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(a="function"==typeof t?t:qe(+t),e(),n):a},n.y=function(r){return arguments.length?(t="function"==typeof r?r:qe(+r),e(),n):t},n},t.formatDefaultLocale=or,t.formatLocale=ir,t.formatSpecifier=tr,t.precisionFixed=ar,t.precisionPrefix=ur,t.precisionRound=fr,t.geoArea=function(t){return dp.reset(),br(t,pp),2*dp},t.geoBounds=function(t){var n,e,r,i,o,a,u;if(md=bd=-(yd=_d=1/0),Td=[],br(t,gp),e=Td.length){for(Td.sort(Yr),n=1,o=[r=Td[0]];n<e;++n)Br(r,(i=Td[n])[0])||Br(r,i[1])?(Or(r[0],i[1])>Or(r[0],r[1])&&(r[1]=i[1]),Or(i[0],r[1])>Or(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=Or(r[1],i[0]))>a&&(a=u,yd=i[0],bd=r[1])}return Td=Nd=null,yd===1/0||_d===1/0?[[NaN,NaN],[NaN,NaN]]:[[yd,_d],[bd,md]]},t.geoCentroid=function(t){Sd=Ed=kd=Cd=Pd=zd=Rd=Ld=Dd=Ud=qd=0,br(t,yp);var n=Dd,e=Ud,r=qd,i=n*n+e*e+r*r;return i<Xd&&(n=zd,e=Rd,r=Ld,Ed<Hd&&(n=kd,e=Cd,r=Pd),(i=n*n+e*e+r*r)<Xd)?[NaN,NaN]:[tp(e,n)*Zd,dr(r/fp(i))*Zd]},t.geoCircle=function(){function t(){var t=r.apply(this,arguments),u=i.apply(this,arguments)*Qd,f=o.apply(this,arguments)*Qd;return n=[],e=ti(-t[0]*Qd,-t[1]*Qd,0).invert,oi(a,u,f,1),t={type:"Polygon",coordinates:[n]},n=e=null,t}var n,e,r=Qr([0,0]),i=Qr(90),o=Qr(6),a={point:function(t,r){n.push(t=e(t,r)),t[0]*=Zd,t[1]*=Zd}};return t.center=function(n){return arguments.length?(r="function"==typeof n?n:Qr([+n[0],+n[1]]),t):r},t.radius=function(n){return arguments.length?(i="function"==typeof n?n:Qr(+n),t):i},t.precision=function(n){return arguments.length?(o="function"==typeof n?n:Qr(+n),t):o},t},t.geoClipAntimeridian=Cp,t.geoClipCircle=gi,t.geoClipExtent=function(){var t,n,e,r=0,i=0,o=960,a=500;return e={stream:function(e){return t&&n===e?t:t=yi(r,i,o,a)(n=e)},extent:function(u){return arguments.length?(r=+u[0][0],i=+u[0][1],o=+u[1][0],a=+u[1][1],t=n=null,e):[[r,i],[o,a]]}}},t.geoClipRectangle=yi,t.geoContains=function(t,n){return(t&&qp.hasOwnProperty(t.type)?qp[t.type]:Mi)(t,n)},t.geoDistance=wi,t.geoGraticule=Pi,t.geoGraticule10=function(){return Pi()()},t.geoInterpolate=function(t,n){var e=t[0]*Qd,r=t[1]*Qd,i=n[0]*Qd,o=n[1]*Qd,a=np(r),u=ap(r),f=np(o),c=ap(o),s=a*np(e),l=a*ap(e),h=f*np(i),d=f*ap(i),p=2*dr(fp(pr(o-r)+a*f*pr(i-e))),v=ap(p),g=p?function(t){var n=ap(t*=p)/v,e=ap(p-t)/v,r=e*s+n*h,i=e*l+n*d,o=e*u+n*c;return[tp(i,r)*Zd,tp(o,fp(r*r+i*i))*Zd]}:function(){return[e*Zd,r*Zd]};return g.distance=p,g},t.geoLength=xi,t.geoPath=function(t,n){function e(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),br(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return br(t,r(Fp)),Fp.result()},e.measure=function(t){return br(t,r(cv)),cv.result()},e.bounds=function(t){return br(t,r(Gp)),Gp.result()},e.centroid=function(t){return br(t,r(ev)),ev.result()},e.projection=function(n){return arguments.length?(r=null==n?(t=null,zi):(t=n).stream,e):t},e.context=function(t){return arguments.length?(i=null==t?(n=null,new Wi):new Gi(n=t),"function"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},t.geoAlbers=lo,t.geoAlbersUsa=function(){function t(t){var n=t[0],e=t[1];return u=null,i.point(n,e),u||(o.point(n,e),u)||(a.point(n,e),u)}function n(){return e=r=null,t}var e,r,i,o,a,u,f=lo(),c=so().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=so().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){u=[t,n]}};return t.invert=function(t){var n=f.scale(),e=f.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?c:i>=.166&&i<.234&&r>=-.214&&r<-.115?s:f).invert(t)},t.stream=function(t){return e&&r===t?e:e=function(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}([f.stream(r=t),c.stream(t),s.stream(t)])},t.precision=function(t){return arguments.length?(f.precision(t),c.precision(t),s.precision(t),n()):f.precision()},t.scale=function(n){return arguments.length?(f.scale(n),c.scale(.35*n),s.scale(n),t.translate(f.translate())):f.scale()},t.translate=function(t){if(!arguments.length)return f.translate();var e=f.scale(),r=+t[0],u=+t[1];return i=f.translate(t).clipExtent([[r-.455*e,u-.238*e],[r+.455*e,u+.238*e]]).stream(l),o=c.translate([r-.307*e,u+.201*e]).clipExtent([[r-.425*e+Hd,u+.12*e+Hd],[r-.214*e-Hd,u+.234*e-Hd]]).stream(l),a=s.translate([r-.205*e,u+.212*e]).clipExtent([[r-.214*e+Hd,u+.166*e+Hd],[r-.115*e-Hd,u+.234*e-Hd]]).stream(l),n()},t.fitExtent=function(n,e){return to(t,n,e)},t.fitSize=function(n,e){return no(t,n,e)},t.fitWidth=function(n,e){return eo(t,n,e)},t.fitHeight=function(n,e){return ro(t,n,e)},t.scale(1070)},t.geoAzimuthalEqualArea=function(){return ao(dv).scale(124.75).clipAngle(179.999)},t.geoAzimuthalEqualAreaRaw=dv,t.geoAzimuthalEquidistant=function(){return ao(pv).scale(79.4188).clipAngle(179.999)},t.geoAzimuthalEquidistantRaw=pv,t.geoConicConformal=function(){return fo(_o).scale(109.5).parallels([30,30])},t.geoConicConformalRaw=_o,t.geoConicEqualArea=so,t.geoConicEqualAreaRaw=co,t.geoConicEquidistant=function(){return fo(mo).scale(131.154).center([0,13.9389])},t.geoConicEquidistantRaw=mo,t.geoEquirectangular=function(){return ao(bo).scale(152.63)},t.geoEquirectangularRaw=bo,t.geoGnomonic=function(){return ao(xo).scale(144.049).clipAngle(60)},t.geoGnomonicRaw=xo,t.geoIdentity=function(){function t(){return i=o=null,a}var n,e,r,i,o,a,u=1,f=0,c=0,s=1,l=1,h=zi,d=null,p=zi;return a={stream:function(t){return i&&o===t?i:i=h(p(o=t))},postclip:function(i){return arguments.length?(p=i,d=n=e=r=null,t()):p},clipExtent:function(i){return arguments.length?(p=null==i?(d=n=e=r=null,zi):yi(d=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==d?null:[[d,n],[e,r]]},scale:function(n){return arguments.length?(h=wo((u=+n)*s,u*l,f,c),t()):u},translate:function(n){return arguments.length?(h=wo(u*s,u*l,f=+n[0],c=+n[1]),t()):[f,c]},reflectX:function(n){return arguments.length?(h=wo(u*(s=n?-1:1),u*l,f,c),t()):s<0},reflectY:function(n){return arguments.length?(h=wo(u*s,u*(l=n?-1:1),f,c),t()):l<0},fitExtent:function(t,n){return to(a,t,n)},fitSize:function(t,n){return no(a,t,n)},fitWidth:function(t,n){return eo(a,t,n)},fitHeight:function(t,n){return ro(a,t,n)}}},t.geoProjection=ao,t.geoProjectionMutator=uo,t.geoMercator=function(){return go(vo).scale(961/Wd)},t.geoMercatorRaw=vo,t.geoNaturalEarth1=function(){return ao(Mo).scale(175.295)},t.geoNaturalEarth1Raw=Mo,t.geoOrthographic=function(){return ao(Ao).scale(249.5).clipAngle(90+Hd)},t.geoOrthographicRaw=Ao,t.geoStereographic=function(){return ao(To).scale(250).clipAngle(142)},t.geoStereographicRaw=To,t.geoTransverseMercator=function(){var t=go(No),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=No,t.geoRotation=ii,t.geoStream=br,t.geoTransform=function(t){return{stream:Qi(t)}},t.cluster=function(){function t(t){var o,a=0;t.eachAfter(function(t){var e=t.children;e?(t.x=function(t){return t.reduce(Eo,0)/t.length}(e),t.y=function(t){return 1+t.reduce(ko,0)}(e)):(t.x=o?a+=n(t,o):0,t.y=0,o=t)});var u=function(t){for(var n;n=t.children;)t=n[0];return t}(t),f=function(t){for(var n;n=t.children;)t=n[n.length-1];return t}(t),c=u.x-n(u,f)/2,s=f.x+n(f,u)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-c)/(s-c)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=So,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},t.hierarchy=Po,t.pack=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Qo(n)).eachAfter(Jo(i,.5)).eachBefore(Ko(1)):t.eachBefore(Qo(Zo)).eachAfter(Jo($o,1)).eachAfter(Jo(i,t.r/Math.min(e,r))).eachBefore(Ko(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=$o;return t.radius=function(e){return arguments.length?(n=function(t){return null==t?null:Vo(t)}(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:Wo(+n),t):i},t},t.packSiblings=function(t){return Go(t),t},t.packEnclose=Uo,t.partition=function(){function t(t){var o=t.height+1;return t.x0=t.y0=r,t.x1=n,t.y1=e/o,t.eachBefore(function(t,n){return function(e){e.children&&na(e,e.x0,t*(e.depth+1)/n,e.x1,t*(e.depth+2)/n);var i=e.x0,o=e.y0,a=e.x1-r,u=e.y1-r;a<i&&(i=a=(i+a)/2),u<o&&(o=u=(o+u)/2),e.x0=i,e.y0=o,e.x1=a,e.y1=u}}(e,o)),i&&t.eachBefore(ta),t}var n=1,e=1,r=0,i=!1;return t.round=function(n){return arguments.length?(i=!!n,t):i},t.size=function(r){return arguments.length?(n=+r[0],e=+r[1],t):[n,e]},t.padding=function(n){return arguments.length?(r=+n,t):r},t},t.stratify=function(){function t(t){var r,i,o,a,u,f,c,s=t.length,l=new Array(s),h={};for(i=0;i<s;++i)r=t[i],u=l[i]=new Do(r),null!=(f=n(r,i,t))&&(f+="")&&(h[c=gv+(u.id=f)]=c in h?_v:u);for(i=0;i<s;++i)if(u=l[i],null!=(f=e(t[i],i,t))&&(f+="")){if(!(a=h[gv+f]))throw new Error("missing: "+f);if(a===_v)throw new Error("ambiguous: "+f);a.children?a.children.push(u):a.children=[u],u.parent=a}else{if(o)throw new Error("multiple roots");o=u}if(!o)throw new Error("no root");if(o.parent=yv,o.eachBefore(function(t){t.depth=t.parent.depth+1,--s}).eachBefore(Lo),o.parent=null,s>0)throw new Error("cycle");return o}var n=ea,e=ra;return t.id=function(e){return arguments.length?(n=Vo(e),t):n},t.parentId=function(n){return arguments.length?(e=Vo(n),t):e},t},t.tree=function(){function t(t){var f=function(t){for(var n,e,r,i,o,a=new ca(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new ca(r[i],i)),e.parent=n;return(a.parent=new ca(null,0)).children=[a],a}(t);if(f.eachAfter(n),f.parent.m=-f.z,f.eachBefore(e),u)t.eachBefore(r);else{var c=t,s=t,l=t;t.eachBefore(function(t){t.x<c.x&&(c=t),t.x>s.x&&(s=t),t.depth>l.depth&&(l=t)});var h=c===s?1:i(c,s)/2,d=h-c.x,p=o/(s.x+h+d),v=a/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+d)*p,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,r=t.i?e[t.i-1]:null;if(n){(function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)})(t);var o=(n[0].z+n[n.length-1].z)/2;r?(t.z=r.z+i(t._,r._),t.m=t.z-o):t.z=o}else r&&(t.z=r.z+i(t._,r._));t.parent.A=function(t,n,e){if(n){for(var r,o=t,a=t,u=n,f=o.parent.children[0],c=o.m,s=a.m,l=u.m,h=f.m;u=aa(u),o=oa(o),u&&o;)f=oa(f),(a=aa(a)).a=t,(r=u.z+l-o.z-c+i(u._,o._))>0&&(ua(fa(u,t,e),t,r),c+=r,s+=r),l+=u.m,c+=o.m,h+=f.m,s+=a.m;u&&!aa(a)&&(a.t=u,a.m+=l-s),o&&!oa(f)&&(f.t=o,f.m+=c-h,e=t)}return e}(t,r,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t){t.x*=o,t.y=t.depth*a}var i=ia,o=1,a=1,u=null;return t.separation=function(n){return arguments.length?(i=n,t):i},t.size=function(n){return arguments.length?(u=!1,o=+n[0],a=+n[1],t):u?null:[o,a]},t.nodeSize=function(n){return arguments.length?(u=!0,o=+n[0],a=+n[1],t):u?[o,a]:null},t},t.treemap=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),a=[0],r&&t.eachBefore(ta),t}function n(t){var n=a[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),t.x0=r,t.y0=i,t.x1=o,t.y1=h,t.children&&(n=a[t.depth+1]=u(t)/2,r+=l(t)-n,i+=f(t)-n,o-=c(t)-n,h-=s(t)-n,o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),e(t,r,i,o,h))}var e=mv,r=!1,i=1,o=1,a=[0],u=$o,f=$o,c=$o,s=$o,l=$o;return t.round=function(n){return arguments.length?(r=!!n,t):r},t.size=function(n){return arguments.length?(i=+n[0],o=+n[1],t):[i,o]},t.tile=function(n){return arguments.length?(e=Vo(n),t):e},t.padding=function(n){return arguments.length?t.paddingInner(n).paddingOuter(n):t.paddingInner()},t.paddingInner=function(n){return arguments.length?(u="function"==typeof n?n:Wo(+n),t):u},t.paddingOuter=function(n){return arguments.length?t.paddingTop(n).paddingRight(n).paddingBottom(n).paddingLeft(n):t.paddingTop()},t.paddingTop=function(n){return arguments.length?(f="function"==typeof n?n:Wo(+n),t):f},t.paddingRight=function(n){return arguments.length?(c="function"==typeof n?n:Wo(+n),t):c},t.paddingBottom=function(n){return arguments.length?(s="function"==typeof n?n:Wo(+n),t):s},t.paddingLeft=function(n){return arguments.length?(l="function"==typeof n?n:Wo(+n),t):l},t},t.treemapBinary=function(t,n,e,r,i){function o(t,n,e,r,i,a,u){if(t>=n-1){var c=f[t];return c.x0=r,c.y0=i,c.x1=a,void(c.y1=u)}for(var l=s[t],h=e/2+l,d=t+1,p=n-1;d<p;){var v=d+p>>>1;s[v]<h?d=v+1:p=v}h-s[d-1]<s[d]-h&&t+1<d&&--d;var g=s[d]-l,y=e-g;if(a-r>u-i){var _=(r*y+a*g)/e;o(t,d,g,r,i,_,u),o(d,n,y,_,i,a,u)}else{var b=(i*y+u*g)/e;o(t,d,g,r,i,a,b),o(d,n,y,r,b,a,u)}}var a,u,f=t.children,c=f.length,s=new Array(c+1);for(s[0]=u=a=0;a<c;++a)s[a+1]=u+=f[a].value;o(0,c,t.value,n,e,r,i)},t.treemapDice=na,t.treemapSlice=sa,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?sa:na)(t,n,e,r,i)},t.treemapSquarify=mv,t.treemapResquarify=xv,t.interpolate=dn,t.interpolateArray=fn,t.interpolateBasis=Kt,t.interpolateBasisClosed=tn,t.interpolateDate=cn,t.interpolateNumber=sn,t.interpolateObject=ln,t.interpolateRound=pn,t.interpolateString=hn,t.interpolateTransformCss=sl,t.interpolateTransformSvg=ll,t.interpolateZoom=_n,t.interpolateRgb=rl,t.interpolateRgbBasis=il,t.interpolateRgbBasisClosed=ol,t.interpolateHsl=gl,t.interpolateHslLong=yl,t.interpolateLab=function(t,n){var e=an((t=Ft(t)).l,(n=Ft(n)).l),r=an(t.a,n.a),i=an(t.b,n.b),o=an(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateHcl=_l,t.interpolateHclLong=bl,t.interpolateCubehelix=ml,t.interpolateCubehelixLong=xl,t.piecewise=function(t,n){for(var e=0,r=n.length-1,i=n[0],o=new Array(r<0?0:r);e<r;)o[e]=t(i,i=n[++e]);return function(t){var n=Math.max(0,Math.min(r-1,Math.floor(t*=r)));return o[n](t-n)}},t.quantize=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},t.path=oe,t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},t.polygonCentroid=function(t){for(var n,e,r=-1,i=t.length,o=0,a=0,u=t[i-1],f=0;++r<i;)n=u,u=t[r],f+=e=n[0]*u[1]-u[0]*n[1],o+=(n[0]+u[0])*e,a+=(n[1]+u[1])*e;return f*=3,[o/f,a/f]},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(da),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=pa(r),a=pa(i),u=a[0]===o[0],f=a[a.length-1]===o[o.length-1],c=[];for(n=o.length-1;n>=0;--n)c.push(t[r[o[n]][2]]);for(n=+u;n<a.length-f;++n)c.push(t[r[a[n]][2]]);return c},t.polygonContains=function(t,n){for(var e,r,i=t.length,o=t[i-1],a=n[0],u=n[1],f=o[0],c=o[1],s=!1,l=0;l<i;++l)e=(o=t[l])[0],(r=o[1])>u!=c>u&&a<(f-e)*(u-r)/(c-r)+e&&(s=!s),f=e,c=r;return s},t.polygonLength=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],a=o[0],u=o[1],f=0;++r<i;)n=a,e=u,n-=a=(o=t[r])[0],e-=u=o[1],f+=Math.sqrt(n*n+e*e);return f},t.quadtree=je,t.randomUniform=wv,t.randomNormal=Mv,t.randomLogNormal=Av,t.randomBates=Nv,t.randomIrwinHall=Tv,t.randomExponential=Sv,t.scaleBand=ya,t.scalePoint=function(){return _a(ya().paddingInner(1))},t.scaleIdentity=Ea,t.scaleLinear=Sa,t.scaleLog=Ua,t.scaleOrdinal=ga,t.scaleImplicit=Pv,t.scalePow=Oa,t.scaleSqrt=function(){return Oa().exponent(.5)},t.scaleQuantile=Ya,t.scaleQuantize=Ba,t.scaleThreshold=Fa,t.scaleTime=function(){return of(cg,ug,Vv,Xv,jv,Fv,Yv,Dv,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},t.scaleUtc=function(){return of(Rg,Pg,yg,vg,dg,lg,Yv,Dv,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},t.scaleSequential=af,t.scaleDiverging=uf,t.schemeCategory10=Zg,t.schemeAccent=Qg,t.schemeDark2=Jg,t.schemePaired=Kg,t.schemePastel1=ty,t.schemePastel2=ny,t.schemeSet1=ey,t.schemeSet2=ry,t.schemeSet3=iy,t.interpolateBrBG=ay,t.schemeBrBG=oy,t.interpolatePRGn=fy,t.schemePRGn=uy,t.interpolatePiYG=sy,t.schemePiYG=cy,t.interpolatePuOr=hy,t.schemePuOr=ly,t.interpolateRdBu=py,t.schemeRdBu=dy,t.interpolateRdGy=gy,t.schemeRdGy=vy,t.interpolateRdYlBu=_y,t.schemeRdYlBu=yy,t.interpolateRdYlGn=my,t.schemeRdYlGn=by,t.interpolateSpectral=wy,t.schemeSpectral=xy,t.interpolateBuGn=Ay,t.schemeBuGn=My,t.interpolateBuPu=Ny,t.schemeBuPu=Ty,t.interpolateGnBu=Ey,t.schemeGnBu=Sy,t.interpolateOrRd=Cy,t.schemeOrRd=ky,t.interpolatePuBuGn=zy,t.schemePuBuGn=Py,t.interpolatePuBu=Ly,t.schemePuBu=Ry,t.interpolatePuRd=Uy,t.schemePuRd=Dy,t.interpolateRdPu=Oy,t.schemeRdPu=qy,t.interpolateYlGnBu=By,t.schemeYlGnBu=Yy,t.interpolateYlGn=Iy,t.schemeYlGn=Fy,t.interpolateYlOrBr=Hy,t.schemeYlOrBr=jy,t.interpolateYlOrRd=Gy,t.schemeYlOrRd=Xy,t.interpolateBlues=$y,t.schemeBlues=Vy,t.interpolateGreens=Zy,t.schemeGreens=Wy,t.interpolateGreys=Jy,t.schemeGreys=Qy,t.interpolatePurples=t_,t.schemePurples=Ky,t.interpolateReds=e_,t.schemeReds=n_,t.interpolateOranges=i_,t.schemeOranges=r_,t.interpolateCubehelixDefault=o_,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return f_.h=360*t-100,f_.s=1.5-1.5*n,f_.l=.8-.9*n,f_+""},t.interpolateWarm=a_,t.interpolateCool=u_,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,c_.r=255*(n=Math.sin(t))*n,c_.g=255*(n=Math.sin(t+s_))*n,c_.b=255*(n=Math.sin(t+l_))*n,c_+""},t.interpolateViridis=h_,t.interpolateMagma=d_,t.interpolateInferno=p_,t.interpolatePlasma=v_,t.create=function(t){return ct(C(t).call(document.documentElement))},t.creator=C,t.local=st,t.matcher=bs,t.mouse=pt,t.namespace=k,t.namespaces=vs,t.clientPoint=dt,t.select=ct,t.selectAll=function(t){return"string"==typeof t?new ut([document.querySelectorAll(t)],[document.documentElement]):new ut([null==t?[]:t],ws)},t.selection=ft,t.selector=z,t.selectorAll=L,t.style=F,t.touch=vt,t.touches=function(t,n){null==n&&(n=ht().touches);for(var e=0,r=n?n.length:0,i=new Array(r);e<r;++e)i[e]=dt(t,n[e]);return i},t.window=B,t.customEvent=ot,t.arc=function(){function t(){var t,c,s=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-T_,d=a.apply(this,arguments)-T_,p=g_(d-h),v=d>h;if(f||(f=t=oe()),l<s&&(c=l,l=s,s=c),l>M_)if(p>N_-M_)f.moveTo(l*__(h),l*x_(h)),f.arc(0,0,l,h,d,!v),s>M_&&(f.moveTo(s*__(d),s*x_(d)),f.arc(0,0,s,d,h,v));else{var g,y,_=h,b=d,m=h,x=d,w=p,M=p,A=u.apply(this,arguments)/2,T=A>M_&&(i?+i.apply(this,arguments):w_(s*s+l*l)),N=m_(g_(l-s)/2,+r.apply(this,arguments)),S=N,E=N;if(T>M_){var k=hf(T/s*x_(A)),C=hf(T/l*x_(A));(w-=2*k)>M_?(k*=v?1:-1,m+=k,x-=k):(w=0,m=x=(h+d)/2),(M-=2*C)>M_?(C*=v?1:-1,_+=C,b-=C):(M=0,_=b=(h+d)/2)}var P=l*__(_),z=l*x_(_),R=s*__(x),L=s*x_(x);if(N>M_){var D=l*__(b),U=l*x_(b),q=s*__(m),O=s*x_(m);if(p<A_){var Y=w>M_?function(t,n,e,r,i,o,a,u){var f=e-t,c=r-n,s=a-i,l=u-o,h=(s*(n-o)-l*(t-i))/(l*f-s*c);return[t+h*f,n+h*c]}(P,z,q,O,D,U,R,L):[R,L],B=P-Y[0],F=z-Y[1],I=D-Y[0],j=U-Y[1],H=1/x_(function(t){return t>1?0:t<-1?A_:Math.acos(t)}((B*I+F*j)/(w_(B*B+F*F)*w_(I*I+j*j)))/2),X=w_(Y[0]*Y[0]+Y[1]*Y[1]);S=m_(N,(s-X)/(H-1)),E=m_(N,(l-X)/(H+1))}}M>M_?E>M_?(g=_f(q,O,P,z,l,E,v),y=_f(D,U,R,L,l,E,v),f.moveTo(g.cx+g.x01,g.cy+g.y01),E<N?f.arc(g.cx,g.cy,E,y_(g.y01,g.x01),y_(y.y01,y.x01),!v):(f.arc(g.cx,g.cy,E,y_(g.y01,g.x01),y_(g.y11,g.x11),!v),f.arc(0,0,l,y_(g.cy+g.y11,g.cx+g.x11),y_(y.cy+y.y11,y.cx+y.x11),!v),f.arc(y.cx,y.cy,E,y_(y.y11,y.x11),y_(y.y01,y.x01),!v))):(f.moveTo(P,z),f.arc(0,0,l,_,b,!v)):f.moveTo(P,z),s>M_&&w>M_?S>M_?(g=_f(R,L,D,U,s,-S,v),y=_f(P,z,q,O,s,-S,v),f.lineTo(g.cx+g.x01,g.cy+g.y01),S<N?f.arc(g.cx,g.cy,S,y_(g.y01,g.x01),y_(y.y01,y.x01),!v):(f.arc(g.cx,g.cy,S,y_(g.y01,g.x01),y_(g.y11,g.x11),!v),f.arc(0,0,s,y_(g.cy+g.y11,g.cx+g.x11),y_(y.cy+y.y11,y.cx+y.x11),v),f.arc(y.cx,y.cy,S,y_(y.y11,y.x11),y_(y.y01,y.x01),!v))):f.arc(0,0,s,x,m,v):f.lineTo(R,L)}else f.moveTo(0,0);if(f.closePath(),t)return f=null,t+""||null}var n=df,e=pf,r=lf(0),i=null,o=vf,a=gf,u=yf,f=null;return t.centroid=function(){var t=(+n.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-A_/2;return[__(r)*t,x_(r)*t]},t.innerRadius=function(e){return arguments.length?(n="function"==typeof e?e:lf(+e),t):n},t.outerRadius=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.cornerRadius=function(n){return arguments.length?(r="function"==typeof n?n:lf(+n),t):r},t.padRadius=function(n){return arguments.length?(i=null==n?null:"function"==typeof n?n:lf(+n),t):i},t.startAngle=function(n){return arguments.length?(o="function"==typeof n?n:lf(+n),t):o},t.endAngle=function(n){return arguments.length?(a="function"==typeof n?n:lf(+n),t):a},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:lf(+n),t):u},t.context=function(n){return arguments.length?(f=null==n?null:n,t):f},t},t.area=Af,t.line=Mf,t.pie=function(){function t(t){var u,f,c,s,l,h=t.length,d=0,p=new Array(h),v=new Array(h),g=+i.apply(this,arguments),y=Math.min(N_,Math.max(-N_,o.apply(this,arguments)-g)),_=Math.min(Math.abs(y)/h,a.apply(this,arguments)),b=_*(y<0?-1:1);for(u=0;u<h;++u)(l=v[p[u]=u]=+n(t[u],u,t))>0&&(d+=l);for(null!=e?p.sort(function(t,n){return e(v[t],v[n])}):null!=r&&p.sort(function(n,e){return r(t[n],t[e])}),u=0,c=d?(y-h*b)/d:0;u<h;++u,g=s)f=p[u],s=g+((l=v[f])>0?l*c:0)+b,v[f]={data:t[f],index:u,value:l,startAngle:g,endAngle:s,padAngle:_};return v}var n=Nf,e=Tf,r=null,i=lf(0),o=lf(N_),a=lf(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:lf(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:lf(+n),t):o},t.padAngle=function(n){return arguments.length?(a="function"==typeof n?n:lf(+n),t):a},t},t.areaRadial=Pf,t.radialArea=Pf,t.lineRadial=Cf,t.radialLine=Cf,t.pointRadial=zf,t.linkHorizontal=function(){return Df(Uf)},t.linkVertical=function(){return Df(qf)},t.linkRadial=function(){var t=Df(Of);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.symbol=function(){function t(){var t;if(r||(r=t=oe()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=lf(k_),e=lf(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:lf(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},t.symbols=X_,t.symbolCircle=k_,t.symbolCross=C_,t.symbolDiamond=R_,t.symbolSquare=O_,t.symbolStar=q_,t.symbolTriangle=B_,t.symbolWye=H_,t.curveBasisClosed=function(t){return new If(t)},t.curveBasisOpen=function(t){return new jf(t)},t.curveBasis=function(t){return new Ff(t)},t.curveBundle=G_,t.curveCardinalClosed=$_,t.curveCardinalOpen=W_,t.curveCardinal=V_,t.curveCatmullRomClosed=Q_,t.curveCatmullRomOpen=J_,t.curveCatmullRom=Z_,t.curveLinearClosed=function(t){return new Kf(t)},t.curveLinear=mf,t.curveMonotoneX=function(t){return new ic(t)},t.curveMonotoneY=function(t){return new oc(t)},t.curveNatural=function(t){return new uc(t)},t.curveStep=function(t){return new cc(t,.5)},t.curveStepAfter=function(t){return new cc(t,1)},t.curveStepBefore=function(t){return new cc(t,0)},t.stack=function(){function t(t){var o,a,u=n.apply(this,arguments),f=t.length,c=u.length,s=new Array(c);for(o=0;o<c;++o){for(var l,h=u[o],d=s[o]=new Array(f),p=0;p<f;++p)d[p]=l=[0,+i(t[p],h,p,t)],l.data=t[p];d.key=h}for(o=0,a=e(s);o<c;++o)s[a[o]].index=o;return r(s,a),s}var n=lf([]),e=lc,r=sc,i=hc;return t.keys=function(e){return arguments.length?(n="function"==typeof e?e:lf(E_.call(e)),t):n},t.value=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),t):i},t.order=function(n){return arguments.length?(e=null==n?lc:"function"==typeof n?n:lf(E_.call(n)),t):e},t.offset=function(n){return arguments.length?(r=null==n?sc:n,t):r},t},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,a=t[0].length;o<a;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}sc(t,n)}},t.stackOffsetDiverging=function(t,n){if((u=t.length)>1)for(var e,r,i,o,a,u,f=0,c=t[n[0]].length;f<c;++f)for(o=a=0,e=0;e<u;++e)(i=(r=t[n[e]][f])[1]-r[0])>=0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):r[0]=o},t.stackOffsetNone=sc,t.stackOffsetSilhouette=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var a=0,u=0;a<e;++a)u+=t[a][r][1]||0;i[r][1]+=i[r][0]=-u/2}sc(t,n)}},t.stackOffsetWiggle=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a<r;++a){for(var u=0,f=0,c=0;u<i;++u){for(var s=t[n[u]],l=s[a][1]||0,h=(l-(s[a-1][1]||0))/2,d=0;d<u;++d){var p=t[n[d]];h+=(p[a][1]||0)-(p[a-1][1]||0)}f+=l,c+=h*l}e[a-1][1]+=e[a-1][0]=o,f&&(o-=c/f)}e[a-1][1]+=e[a-1][0]=o,sc(t,n)}},t.stackOrderAscending=dc,t.stackOrderDescending=function(t){return dc(t).reverse()},t.stackOrderInsideOut=function(t){var n,e,r=t.length,i=t.map(pc),o=lc(t).sort(function(t,n){return i[n]-i[t]}),a=0,u=0,f=[],c=[];for(n=0;n<r;++n)e=o[n],a<u?(a+=i[e],f.push(e)):(u+=i[e],c.push(e));return c.reverse().concat(f)},t.stackOrderNone=lc,t.stackOrderReverse=function(t){return lc(t).reverse()},t.timeInterval=Ia,t.timeMillisecond=Dv,t.timeMilliseconds=Uv,t.utcMillisecond=Dv,t.utcMilliseconds=Uv,t.timeSecond=Yv,t.timeSeconds=Bv,t.utcSecond=Yv,t.utcSeconds=Bv,t.timeMinute=Fv,t.timeMinutes=Iv,t.timeHour=jv,t.timeHours=Hv,t.timeDay=Xv,t.timeDays=Gv,t.timeWeek=Vv,t.timeWeeks=tg,t.timeSunday=Vv,t.timeSundays=tg,t.timeMonday=$v,t.timeMondays=ng,t.timeTuesday=Wv,t.timeTuesdays=eg,t.timeWednesday=Zv,t.timeWednesdays=rg,t.timeThursday=Qv,t.timeThursdays=ig,t.timeFriday=Jv,t.timeFridays=og,t.timeSaturday=Kv,t.timeSaturdays=ag,t.timeMonth=ug,t.timeMonths=fg,t.timeYear=cg,t.timeYears=sg,t.utcMinute=lg,t.utcMinutes=hg,t.utcHour=dg,t.utcHours=pg,t.utcDay=vg,t.utcDays=gg,t.utcWeek=yg,t.utcWeeks=Ag,t.utcSunday=yg,t.utcSundays=Ag,t.utcMonday=_g,t.utcMondays=Tg,t.utcTuesday=bg,t.utcTuesdays=Ng,t.utcWednesday=mg,t.utcWednesdays=Sg,t.utcThursday=xg,t.utcThursdays=Eg,t.utcFriday=wg,t.utcFridays=kg,t.utcSaturday=Mg,t.utcSaturdays=Cg,t.utcMonth=Pg,t.utcMonths=zg,t.utcYear=Rg,t.utcYears=Dg,t.timeFormatDefaultLocale=nf,t.timeFormatLocale=$a,t.isoFormat=Fg,t.isoParse=Ig,t.now=wn,t.timer=Tn,t.timerFlush=Nn,t.timeout=Cn,t.interval=function(t,n,e){var r=new An,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?wn():+e,r.restart(function o(a){a+=i,r.restart(o,i+=n,e),t(a)},n,e),r)},t.transition=Yn,t.active=function(t,n){var e,r,i=t.__transition;if(i){n=null==n?null:n+"";for(r in i)if((e=i[r]).state>Ll&&e.name===n)return new On(t,hh,n,+r)}return null},t.interrupt=Dn,t.voronoi=function(){function t(t){return new Bc(t.map(function(r,i){var o=[Math.round(n(r,i,t)/ab)*ab,Math.round(e(r,i,t)/ab)*ab];return o.index=i,o.data=r,o}),r)}var n=gc,e=yc,r=null;return t.polygons=function(n){return t(n).polygons()},t.links=function(n){return t(n).links()},t.triangles=function(n){return t(n).triangles()},t.x=function(e){return arguments.length?(n="function"==typeof e?e:vc(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:vc(+n),t):e},t.extent=function(n){return arguments.length?(r=null==n?null:[[+n[0][0],+n[0][1]],[+n[1][0],+n[1][1]]],t):r&&[[r[0][0],r[0][1]],[r[1][0],r[1][1]]]},t.size=function(n){return arguments.length?(r=null==n?null:[[0,0],[+n[0],+n[1]]],t):r&&[r[1][0]-r[0][0],r[1][1]-r[0][1]]},t},t.zoom=function(){function n(t){t.property("__zoom",$c).on("wheel.zoom",f).on("mousedown.zoom",c).on("dblclick.zoom",s).filter(m).on("touchstart.zoom",l).on("touchmove.zoom",h).on("touchend.zoom touchcancel.zoom",d).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(t,n){return(n=Math.max(x[0],Math.min(x[1],n)))===t.k?t:new Ic(n,t.x,t.y)}function r(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new Ic(t.k,r,i)}function i(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function o(t,n,e){t.on("start.zoom",function(){a(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){a(this,arguments).end()}).tween("zoom",function(){var t=arguments,r=a(this,t),o=y.apply(this,t),u=e||i(o),f=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),c=this.__zoom,s="function"==typeof n?n.apply(this,t):n,l=A(c.invert(u).concat(f/c.k),s.invert(u).concat(f/s.k));return function(t){if(1===t)t=s;else{var n=l(t),e=f/n[2];t=new Ic(e,u[0]-n[0]*e,u[1]-n[1]*e)}r.zoom(null,t)}})}function a(t,n){for(var e,r=0,i=T.length;r<i;++r)if((e=T[r]).that===t)return e;return new u(t,n)}function u(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=y.apply(t,n)}function f(){if(g.apply(this,arguments)){var t=a(this,arguments),n=this.__zoom,i=Math.max(x[0],Math.min(x[1],n.k*Math.pow(2,b.apply(this,arguments)))),o=pt(this);if(t.wheel)t.mouse[0][0]===o[0]&&t.mouse[0][1]===o[1]||(t.mouse[1]=n.invert(t.mouse[0]=o)),clearTimeout(t.wheel);else{if(n.k===i)return;t.mouse=[o,n.invert(o)],Dn(this),t.start()}Xc(),t.wheel=setTimeout(function(){t.wheel=null,t.end()},k),t.zoom("mouse",_(r(e(n,i),t.mouse[0],t.mouse[1]),t.extent,w))}}function c(){if(!v&&g.apply(this,arguments)){var n=a(this,arguments),e=ct(t.event.view).on("mousemove.zoom",function(){if(Xc(),!n.moved){var e=t.event.clientX-o,i=t.event.clientY-u;n.moved=e*e+i*i>C}n.zoom("mouse",_(r(n.that.__zoom,n.mouse[0]=pt(n.that),n.mouse[1]),n.extent,w))},!0).on("mouseup.zoom",function(){e.on("mousemove.zoom mouseup.zoom",null),bt(t.event.view,n.moved),Xc(),n.end()},!0),i=pt(this),o=t.event.clientX,u=t.event.clientY;_t(t.event.view),Hc(),n.mouse=[i,this.__zoom.invert(i)],Dn(this),n.start()}}function s(){if(g.apply(this,arguments)){var i=this.__zoom,a=pt(this),u=i.invert(a),f=i.k*(t.event.shiftKey?.5:2),c=_(r(e(i,f),a,u),y.apply(this,arguments),w);Xc(),M>0?ct(this).transition().duration(M).call(o,c,a):ct(this).call(n.transform,c)}}function l(){if(g.apply(this,arguments)){var n,e,r,i,o=a(this,arguments),u=t.event.changedTouches,f=u.length;for(Hc(),e=0;e<f;++e)i=[i=vt(this,u,(r=u[e]).identifier),this.__zoom.invert(i),r.identifier],o.touch0?o.touch1||(o.touch1=i):(o.touch0=i,n=!0);if(p&&(p=clearTimeout(p),!o.touch1))return o.end(),void((i=ct(this).on("dblclick.zoom"))&&i.apply(this,arguments));n&&(p=setTimeout(function(){p=null},E),Dn(this),o.start())}}function h(){var n,i,o,u,f=a(this,arguments),c=t.event.changedTouches,s=c.length;for(Xc(),p&&(p=clearTimeout(p)),n=0;n<s;++n)o=vt(this,c,(i=c[n]).identifier),f.touch0&&f.touch0[2]===i.identifier?f.touch0[0]=o:f.touch1&&f.touch1[2]===i.identifier&&(f.touch1[0]=o);if(i=f.that.__zoom,f.touch1){var l=f.touch0[0],h=f.touch0[1],d=f.touch1[0],v=f.touch1[1],g=(g=d[0]-l[0])*g+(g=d[1]-l[1])*g,y=(y=v[0]-h[0])*y+(y=v[1]-h[1])*y;i=e(i,Math.sqrt(g/y)),o=[(l[0]+d[0])/2,(l[1]+d[1])/2],u=[(h[0]+v[0])/2,(h[1]+v[1])/2]}else{if(!f.touch0)return;o=f.touch0[0],u=f.touch0[1]}f.zoom("touch",_(r(i,o,u),f.extent,w))}function d(){var n,e,r=a(this,arguments),i=t.event.changedTouches,o=i.length;for(Hc(),v&&clearTimeout(v),v=setTimeout(function(){v=null},E),n=0;n<o;++n)e=i[n],r.touch0&&r.touch0[2]===e.identifier?delete r.touch0:r.touch1&&r.touch1[2]===e.identifier&&delete r.touch1;r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0?r.touch0[1]=this.__zoom.invert(r.touch0[0]):r.end()}var p,v,g=Gc,y=Vc,_=Qc,b=Wc,m=Zc,x=[0,1/0],w=[[-1/0,-1/0],[1/0,1/0]],M=250,A=_n,T=[],S=N("start","zoom","end"),E=500,k=150,C=0;return n.transform=function(t,n){var e=t.selection?t.selection():t;e.property("__zoom",$c),t!==e?o(t,n):e.interrupt().each(function(){a(this,arguments).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},n.scaleBy=function(t,e){n.scaleTo(t,function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)})},n.scaleTo=function(t,o){n.transform(t,function(){var t=y.apply(this,arguments),n=this.__zoom,a=i(t),u=n.invert(a),f="function"==typeof o?o.apply(this,arguments):o;return _(r(e(n,f),a,u),t,w)})},n.translateBy=function(t,e,r){n.transform(t,function(){return _(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof r?r.apply(this,arguments):r),y.apply(this,arguments),w)})},n.translateTo=function(t,e,r){n.transform(t,function(){var t=y.apply(this,arguments),n=this.__zoom,o=i(t);return _(fb.translate(o[0],o[1]).scale(n.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof r?-r.apply(this,arguments):-r),t,w)})},u.prototype={start:function(){return 1==++this.active&&(this.index=T.push(this)-1,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(T.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){ot(new function(t,n,e){this.target=t,this.type=n,this.transform=e}(n,t,this.that.__zoom),S.apply,S,[t,this.that,this.args])}},n.wheelDelta=function(t){return arguments.length?(b="function"==typeof t?t:Fc(+t),n):b},n.filter=function(t){return arguments.length?(g="function"==typeof t?t:Fc(!!t),n):g},n.touchable=function(t){return arguments.length?(m="function"==typeof t?t:Fc(!!t),n):m},n.extent=function(t){return arguments.length?(y="function"==typeof t?t:Fc([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),n):y},n.scaleExtent=function(t){return arguments.length?(x[0]=+t[0],x[1]=+t[1],n):[x[0],x[1]]},n.translateExtent=function(t){return arguments.length?(w[0][0]=+t[0][0],w[1][0]=+t[1][0],w[0][1]=+t[0][1],w[1][1]=+t[1][1],n):[[w[0][0],w[0][1]],[w[1][0],w[1][1]]]},n.constrain=function(t){return arguments.length?(_=t,n):_},n.duration=function(t){return arguments.length?(M=+t,n):M},n.interpolate=function(t){return arguments.length?(A=t,n):A},n.on=function(){var t=S.on.apply(S,arguments);return t===S?n:t},n.clickDistance=function(t){return arguments.length?(C=(t=+t)*t,n):Math.sqrt(C)},n},t.zoomTransform=jc,t.zoomIdentity=fb,Object.defineProperty(t,"__esModule",{value:!0})}); /*!

* Lightbox for Bootstrap by @ashleydw
* https://github.com/ashleydw/lightbox
*
* License: https://github.com/ashleydw/lightbox/blob/master/LICENSE
*/

+function ($) {

'use strict';

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }

var Lightbox = (function ($) {

var NAME = 'ekkoLightbox'; var JQUERY_NO_CONFLICT = $.fn[NAME];

var Default = { title: , footer: , maxWidth: 9999, maxHeight: 9999, showArrows: true, //display the left / right arrows or not wrapping: true, //if true, gallery loops infinitely type: null, //force the lightbox into image / youtube mode. if null, or not image|youtube|vimeo; detect it alwaysShowClose: false, //always show the close button, even if there is no title

loadingMessage: '
', // http://tobiasahlin.com/spinkit/

leftArrow: '', rightArrow: '', strings: { close: 'Close', fail: 'Failed to load image:', type: 'Could not detect remote target type. Force the type using data-type' }, doc: document, // if in an iframe can specify top.document onShow: function onShow() {}, onShown: function onShown() {}, onHide: function onHide() {}, onHidden: function onHidden() {}, onNavigate: function onNavigate() {}, onContentLoaded: function onContentLoaded() {} };

var Lightbox = (function () { _createClass(Lightbox, null, [{ key: 'Default',

/**

      Class properties:
  	 _$element: null -> the <a> element currently being displayed
   _$modal: The bootstrap modal generated
      _$modalDialog: The .modal-dialog
      _$modalContent: The .modal-content
      _$modalBody: The .modal-body
      _$modalHeader: The .modal-header
      _$modalFooter: The .modal-footer
   _$lightboxContainerOne: Container of the first lightbox element
   _$lightboxContainerTwo: Container of the second lightbox element
   _$lightboxBody: First element in the container
   _$modalArrows: The overlayed arrows container
  	 _$galleryItems: Other <a>'s available for this gallery
   _galleryName: Name of the current data('gallery') showing
   _galleryIndex: The current index of the _$galleryItems being shown
  	 _config: {} the options for the modal
   _modalId: unique id for the current lightbox
   _padding / _border: CSS properties for the modal container; these are used to calculate the available space for the content
  	 */

get: function get() { return Default; } }]);

function Lightbox($element, config) { var _this = this;

_classCallCheck(this, Lightbox);

this._config = $.extend({}, Default, config); this._$modalArrows = null; this._galleryIndex = 0; this._galleryName = null; this._padding = null; this._border = null; this._titleIsShown = false; this._footerIsShown = false; this._wantedWidth = 0; this._wantedHeight = 0; this._touchstartX = 0; this._touchendX = 0;

this._modalId = 'ekkoLightbox-' + Math.floor(Math.random() * 1000 + 1); this._$element = $element instanceof jQuery ? $element : $($element);

this._isBootstrap3 = $.fn.modal.Constructor.VERSION[0] == 3;

var h4 = '';

var btn = '<button type="button" class="close" data-dismiss="modal" aria-label="' + this._config.strings.close + '">×</button>';

var header = ''; var footer = ''; var body = ''; var dialog = ''; $(this._config.doc.body).append('');

this._$modal = $('#' + this._modalId, this._config.doc); this._$modalDialog = this._$modal.find('.modal-dialog').first(); this._$modalContent = this._$modal.find('.modal-content').first(); this._$modalBody = this._$modal.find('.modal-body').first(); this._$modalHeader = this._$modal.find('.modal-header').first(); this._$modalFooter = this._$modal.find('.modal-footer').first();

this._$lightboxContainer = this._$modalBody.find('.ekko-lightbox-container').first(); this._$lightboxBodyOne = this._$lightboxContainer.find('> div:first-child').first(); this._$lightboxBodyTwo = this._$lightboxContainer.find('> div:last-child').first();

this._border = this._calculateBorders(); this._padding = this._calculatePadding();

this._galleryName = this._$element.data('gallery'); if (this._galleryName) { this._$galleryItems = $(document.body).find('*[data-gallery="' + this._galleryName + '"]'); this._galleryIndex = this._$galleryItems.index(this._$element); $(document).on('keydown.ekkoLightbox', this._navigationalBinder.bind(this));

// add the directional arrows to the modal if (this._config.showArrows && this._$galleryItems.length > 1) {

this._$lightboxContainer.append('
<a href="#">' + this._config.leftArrow + '</a><a href="#">' + this._config.rightArrow + '</a>
');

this._$modalArrows = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay').first(); this._$lightboxContainer.on('click', 'a:first-child', function (event) { event.preventDefault(); return _this.navigateLeft(); }); this._$lightboxContainer.on('click', 'a:last-child', function (event) { event.preventDefault(); return _this.navigateRight(); }); this.updateNavigation(); } }

this._$modal.on('show.bs.modal', this._config.onShow.bind(this)).on('shown.bs.modal', function () { _this._toggleLoading(true); _this._handle(); return _this._config.onShown.call(_this); }).on('hide.bs.modal', this._config.onHide.bind(this)).on('hidden.bs.modal', function () { if (_this._galleryName) { $(document).off('keydown.ekkoLightbox'); $(window).off('resize.ekkoLightbox'); } _this._$modal.remove(); return _this._config.onHidden.call(_this); }).modal(this._config);

$(window).on('resize.ekkoLightbox', function () { _this._resize(_this._wantedWidth, _this._wantedHeight); }); this._$lightboxContainer.on('touchstart', function () { _this._touchstartX = event.changedTouches[0].screenX; }).on('touchend', function () { _this._touchendX = event.changedTouches[0].screenX; _this._swipeGesure(); }); }

_createClass(Lightbox, [{ key: 'element', value: function element() { return this._$element; } }, { key: 'modal', value: function modal() { return this._$modal; } }, { key: 'navigateTo', value: function navigateTo(index) {

if (index < 0 || index > this._$galleryItems.length - 1) return this;

this._galleryIndex = index;

this.updateNavigation();

this._$element = $(this._$galleryItems.get(this._galleryIndex)); this._handle(); } }, { key: 'navigateLeft', value: function navigateLeft() {

if (!this._$galleryItems) return;

if (this._$galleryItems.length === 1) return;

if (this._galleryIndex === 0) { if (this._config.wrapping) this._galleryIndex = this._$galleryItems.length - 1;else return; } else //circular this._galleryIndex--;

this._config.onNavigate.call(this, 'left', this._galleryIndex); return this.navigateTo(this._galleryIndex); } }, { key: 'navigateRight', value: function navigateRight() {

if (!this._$galleryItems) return;

if (this._$galleryItems.length === 1) return;

if (this._galleryIndex === this._$galleryItems.length - 1) { if (this._config.wrapping) this._galleryIndex = 0;else return; } else //circular this._galleryIndex++;

this._config.onNavigate.call(this, 'right', this._galleryIndex); return this.navigateTo(this._galleryIndex); } }, { key: 'updateNavigation', value: function updateNavigation() { if (!this._config.wrapping) { var $nav = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay'); if (this._galleryIndex === 0) $nav.find('a:first-child').addClass('disabled');else $nav.find('a:first-child').removeClass('disabled');

if (this._galleryIndex === this._$galleryItems.length - 1) $nav.find('a:last-child').addClass('disabled');else $nav.find('a:last-child').removeClass('disabled'); } } }, { key: 'close', value: function close() { return this._$modal.modal('hide'); }

// helper private methods }, { key: '_navigationalBinder', value: function _navigationalBinder(event) { event = event || window.event; if (event.keyCode === 39) return this.navigateRight(); if (event.keyCode === 37) return this.navigateLeft(); }

// type detection private methods }, { key: '_detectRemoteType', value: function _detectRemoteType(src, type) {

type = type || false;

if (!type && this._isImage(src)) type = 'image'; if (!type && this._getYoutubeId(src)) type = 'youtube'; if (!type && this._getVimeoId(src)) type = 'vimeo'; if (!type && this._getInstagramId(src)) type = 'instagram';

if (!type || ['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(type) < 0) type = 'url';

return type; } }, { key: '_isImage', value: function _isImage(string) { return string && string.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); } }, { key: '_containerToUse', value: function _containerToUse() { var _this2 = this;

// if currently showing an image, fade it out and remove var $toUse = this._$lightboxBodyTwo; var $current = this._$lightboxBodyOne;

if (this._$lightboxBodyTwo.hasClass('in')) { $toUse = this._$lightboxBodyOne; $current = this._$lightboxBodyTwo; }

$current.removeClass('in show'); setTimeout(function () { if (!_this2._$lightboxBodyTwo.hasClass('in')) _this2._$lightboxBodyTwo.empty(); if (!_this2._$lightboxBodyOne.hasClass('in')) _this2._$lightboxBodyOne.empty(); }, 500);

$toUse.addClass('in show'); return $toUse; } }, { key: '_handle', value: function _handle() {

var $toUse = this._containerToUse(); this._updateTitleAndFooter();

var currentRemote = this._$element.attr('data-remote') || this._$element.attr('href'); var currentType = this._detectRemoteType(currentRemote, this._$element.attr('data-type') || false);

if (['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(currentType) < 0) return this._error(this._config.strings.type);

switch (currentType) { case 'image': this._preloadImage(currentRemote, $toUse); this._preloadImageByIndex(this._galleryIndex, 3); break; case 'youtube': this._showYoutubeVideo(currentRemote, $toUse); break; case 'vimeo': this._showVimeoVideo(this._getVimeoId(currentRemote), $toUse); break; case 'instagram': this._showInstagramVideo(this._getInstagramId(currentRemote), $toUse); break; case 'video': this._showHtml5Video(currentRemote, $toUse); break; default: // url this._loadRemoteContent(currentRemote, $toUse); break; }

return this; } }, { key: '_getYoutubeId', value: function _getYoutubeId(string) { if (!string) return false; var matches = string.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/); return matches && matches[2].length === 11 ? matches[2] : false; } }, { key: '_getVimeoId', value: function _getVimeoId(string) { return string && string.indexOf('vimeo') > 0 ? string : false; } }, { key: '_getInstagramId', value: function _getInstagramId(string) { return string && string.indexOf('instagram') > 0 ? string : false; }

// layout private methods }, { key: '_toggleLoading', value: function _toggleLoading(show) { show = show || false; if (show) { this._$modalDialog.css('display', 'none'); this._$modal.removeClass('in show'); $('.modal-backdrop').append(this._config.loadingMessage); } else { this._$modalDialog.css('display', 'block'); this._$modal.addClass('in show'); $('.modal-backdrop').find('.ekko-lightbox-loader').remove(); } return this; } }, { key: '_calculateBorders', value: function _calculateBorders() { return { top: this._totalCssByAttribute('border-top-width'), right: this._totalCssByAttribute('border-right-width'), bottom: this._totalCssByAttribute('border-bottom-width'), left: this._totalCssByAttribute('border-left-width') }; } }, { key: '_calculatePadding', value: function _calculatePadding() { return { top: this._totalCssByAttribute('padding-top'), right: this._totalCssByAttribute('padding-right'), bottom: this._totalCssByAttribute('padding-bottom'), left: this._totalCssByAttribute('padding-left') }; } }, { key: '_totalCssByAttribute', value: function _totalCssByAttribute(attribute) { return parseInt(this._$modalDialog.css(attribute), 10) + parseInt(this._$modalContent.css(attribute), 10) + parseInt(this._$modalBody.css(attribute), 10); } }, { key: '_updateTitleAndFooter', value: function _updateTitleAndFooter() { var title = this._$element.data('title') || ""; var caption = this._$element.data('footer') || "";

this._titleIsShown = false; if (title || this._config.alwaysShowClose) { this._titleIsShown = true; this._$modalHeader.css('display', ).find('.modal-title').html(title || " "); } else this._$modalHeader.css('display', 'none');

this._footerIsShown = false; if (caption) { this._footerIsShown = true; this._$modalFooter.css('display', ).html(caption); } else this._$modalFooter.css('display', 'none');

return this; } }, { key: '_showYoutubeVideo', value: function _showYoutubeVideo(remote, $containerForElement) { var id = this._getYoutubeId(remote); var query = remote.indexOf('&') > 0 ? remote.substr(remote.indexOf('&')) : ; var width = this._$element.data('width') || 560; var height = this._$element.data('height') || width / (560 / 315); return this._showVideoIframe('//www.youtube.com/embed/' + id + '?badge=0&autoplay=1&html5=1' + query, width, height, $containerForElement); } }, { key: '_showVimeoVideo', value: function _showVimeoVideo(id, $containerForElement) { var width = this._$element.data('width') || 500; var height = this._$element.data('height') || width / (560 / 315); return this._showVideoIframe(id + '?autoplay=1', width, height, $containerForElement); } }, { key: '_showInstagramVideo', value: function _showInstagramVideo(id, $containerForElement) { // instagram load their content into iframe's so this can be put straight into the element var width = this._$element.data('width') || 612; var height = width + 80; id = id.substr(-1) !== '/' ? id + '/' : id; // ensure id has trailing slash $containerForElement.html('<iframe width="' + width + '" height="' + height + '" src="' + id + 'embed/" frameborder="0" allowfullscreen></iframe>'); this._resize(width, height); this._config.onContentLoaded.call(this); if (this._$modalArrows) //hide the arrows when showing video this._$modalArrows.css('display', 'none'); this._toggleLoading(false); return this; } }, { key: '_showVideoIframe', value: function _showVideoIframe(url, width, height, $containerForElement) { // should be used for videos only. for remote content use loadRemoteContent (data-type=url) height = height || width; // default to square

$containerForElement.html('
<iframe width="' + width + '" height="' + height + '" src="' + url + '" frameborder="0" allowfullscreen class="embed-responsive-item"></iframe>
');

this._resize(width, height); this._config.onContentLoaded.call(this); if (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video this._toggleLoading(false); return this; } }, { key: '_showHtml5Video', value: function _showHtml5Video(url, $containerForElement) { // should be used for videos only. for remote content use loadRemoteContent (data-type=url) var width = this._$element.data('width') || 560; var height = this._$element.data('height') || width / (560 / 315);

$containerForElement.html('
<video width="' + width + '" height="' + height + '" src="' + url + '" preload="auto" autoplay controls class="embed-responsive-item"></video>
');

this._resize(width, height); this._config.onContentLoaded.call(this); if (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video this._toggleLoading(false); return this; } }, { key: '_loadRemoteContent', value: function _loadRemoteContent(url, $containerForElement) { var _this3 = this;

var width = this._$element.data('width') || 560; var height = this._$element.data('height') || 560;

var disableExternalCheck = this._$element.data('disableExternalCheck') || false; this._toggleLoading(false);

// external urls are loading into an iframe // local ajax can be loaded into the container itself if (!disableExternalCheck && !this._isExternal(url)) { $containerForElement.load(url, $.proxy(function () { return _this3._$element.trigger('loaded.bs.modal');l; })); } else { $containerForElement.html('<iframe src="' + url + '" frameborder="0" allowfullscreen></iframe>'); this._config.onContentLoaded.call(this); }

if (this._$modalArrows) //hide the arrows when remote content this._$modalArrows.css('display', 'none');

this._resize(width, height); return this; } }, { key: '_isExternal', value: function _isExternal(url) { var match = url.match(/^([^:\/?#]+:)?(?:\/\/([^\/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/); if (typeof match[1] === "string" && match[1].length > 0 && match[1].toLowerCase() !== location.protocol) return true;

if (typeof match[2] === "string" && match[2].length > 0 && match[2].replace(new RegExp(':(' + ({ "http:": 80, "https:": 443 })[location.protocol] + ')?$'), "") !== location.host) return true;

return false; } }, { key: '_error', value: function _error(message) { console.error(message); this._containerToUse().html(message); this._resize(300, 300); return this; } }, { key: '_preloadImageByIndex', value: function _preloadImageByIndex(startIndex, numberOfTimes) {

if (!this._$galleryItems) return;

var next = $(this._$galleryItems.get(startIndex), false); if (typeof next == 'undefined') return;

var src = next.attr('data-remote') || next.attr('href'); if (next.attr('data-type') === 'image' || this._isImage(src)) this._preloadImage(src, false);

if (numberOfTimes > 0) return this._preloadImageByIndex(startIndex + 1, numberOfTimes - 1); } }, { key: '_preloadImage', value: function _preloadImage(src, $containerForImage) { var _this4 = this;

$containerForImage = $containerForImage || false;

var img = new Image(); if ($containerForImage) { (function () {

// if loading takes > 200ms show a loader var loadingTimeout = setTimeout(function () { $containerForImage.append(_this4._config.loadingMessage); }, 200);

img.onload = function () { if (loadingTimeout) clearTimeout(loadingTimeout); loadingTimeout = null; var image = $('<img />'); image.attr('src', img.src); image.addClass('img-fluid');

// backward compatibility for bootstrap v3 image.css('width', '100%');

$containerForImage.html(image); if (_this4._$modalArrows) _this4._$modalArrows.css('display', ); // remove display to default to css property

_this4._resize(img.width, img.height); _this4._toggleLoading(false); return _this4._config.onContentLoaded.call(_this4); }; img.onerror = function () { _this4._toggleLoading(false); return _this4._error(_this4._config.strings.fail + (' ' + src)); }; })(); }

img.src = src; return img; } }, { key: '_swipeGesure', value: function _swipeGesure() { if (this._touchendX < this._touchstartX) { return this.navigateRight(); } if (this._touchendX > this._touchstartX) { return this.navigateLeft(); } } }, { key: '_resize', value: function _resize(width, height) {

height = height || width; this._wantedWidth = width; this._wantedHeight = height;

var imageAspecRatio = width / height;

// if width > the available space, scale down the expected width and height var widthBorderAndPadding = this._padding.left + this._padding.right + this._border.left + this._border.right;

// force 10px margin if window size > 575px var addMargin = this._config.doc.body.clientWidth > 575 ? 20 : 0; var discountMargin = this._config.doc.body.clientWidth > 575 ? 0 : 20;

var maxWidth = Math.min(width + widthBorderAndPadding, this._config.doc.body.clientWidth - addMargin, this._config.maxWidth);

if (width + widthBorderAndPadding > maxWidth) { height = (maxWidth - widthBorderAndPadding - discountMargin) / imageAspecRatio; width = maxWidth; } else width = width + widthBorderAndPadding;

var headerHeight = 0, footerHeight = 0;

// as the resize is performed the modal is show, the calculate might fail // if so, default to the default sizes if (this._footerIsShown) footerHeight = this._$modalFooter.outerHeight(true) || 55;

if (this._titleIsShown) headerHeight = this._$modalHeader.outerHeight(true) || 67;

var borderPadding = this._padding.top + this._padding.bottom + this._border.bottom + this._border.top;

//calculated each time as resizing the window can cause them to change due to Bootstraps fluid margins var margins = parseFloat(this._$modalDialog.css('margin-top')) + parseFloat(this._$modalDialog.css('margin-bottom'));

var maxHeight = Math.min(height, $(window).height() - borderPadding - margins - headerHeight - footerHeight, this._config.maxHeight - borderPadding - headerHeight - footerHeight);

if (height > maxHeight) { // if height > the available height, scale down the width width = Math.ceil(maxHeight * imageAspecRatio) + widthBorderAndPadding; }

this._$lightboxContainer.css('height', maxHeight); this._$modalDialog.css('flex', 1).css('maxWidth', width);

var modal = this._$modal.data('bs.modal'); if (modal) { // v4 method is mistakenly protected try { modal._handleUpdate(); } catch (Exception) { modal.handleUpdate(); } } return this; } }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { var _this5 = this;

config = config || {}; return this.each(function () { var $this = $(_this5); var _config = $.extend({}, Lightbox.Default, $this.data(), typeof config === 'object' && config);

new Lightbox(_this5, _config); }); } }]);

return Lightbox; })();

$.fn[NAME] = Lightbox._jQueryInterface; $.fn[NAME].Constructor = Lightbox; $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT; return Lightbox._jQueryInterface; };

return Lightbox; })(jQuery); //# sourceMappingURL=ekko-lightbox.js.map

}(jQuery);


$(document).ready(function() { var previous = " ";

   $("#image_gallery").click(function(event) {
       var id_name = event.target.id;
       id_name = id_name.replace(/[0-9]/g, ); //regex for alphabets, no numbers
       var id_toggle = document.getElementById(id_name); //get ID of names under class "team-bio"
       if(document.getElementById(id_name)){ //if ID exists

if((previous != id_name) && (previous != " ")){ //if you click a diff image var id_previous = document.getElementById(previous); $(id_previous).toggle("hidden"); console.log(id_previous);

} else if(previous == id_name){ //clicking on the same image $(id_toggle).toggle("unhidden"); } $(id_toggle).toggle("unhidden"); //toggles txtbox to appear

       	 previous = id_name;//checks to see if you clicked different images
       }
       else{
       	alert("This person does not exist. Try again.");
       }
       }
   );

}); (function($) {

   $.fn.visible = function() {
       var $t            = $(this),
           $w            = $(window),
           windowHeight  = window.innerHeight,
           windowTop     = $w.scrollTop(),
           windowBottom  = windowTop + windowHeight,
           _height       = $t.outerHeight(),
           _top          = $t.offset().top,
           _bottom       = _top + _height;
       return ((_bottom >= windowTop) && (_top <= windowBottom));
   };

})(jQuery);

$(document).ready(function () {

   $(window).on("scroll", function () {
       if ($(window).scrollTop() >= 100 && !$(".navbar").hasClass("fixed")) {
           $(".navbar").addClass("fixed").addClass("fixed-top").animate({
               top: 15,
               opacity: 1
           }, 1000);


       } else if ($(window).scrollTop() <= 50) {
           $(".navbar").css("top", "").removeClass("fixed").removeClass("fixed-top");
       }
   });
   
   //on or scroll, detect elements in view
   $(window).on('scroll resize', function() {
       $('.fly-in').each(function (i, val) {
           if($(val).visible()){
               $(val).addClass("come-in");
           }
       })
   });
   //trigger our scroll event on initial load
   $(window).trigger('scroll');


});

$(document).ready(function () {


   let widthPol = 1920,
       heightPol = 100;
   const headerPoly = [
       {"x": 0, "y": 100},
       {"x": widthPol, "y": 100},
       {"x": widthPol, "y": 0},
       {"x": 0, "y": 50},
       {"x": 0, "y": 100},
   ];
   let widthImgOverlay = 1920,
       heightImgOverlay = 100;


   const imagePolyTop = [
       {"x": 0, "y": 100},
       {"x": widthImgOverlay, "y": 50},
       {"x": widthImgOverlay, "y": 0},
       {"x": 0, "y": 0},
       {"x": 0, "y": 100},
   ];
   const imagePolyBottom = [
       {"x": 0, "y": 100},
       {"x": widthImgOverlay, "y": 100},
       {"x": widthImgOverlay, "y": 0},
       {"x": 0, "y": 50},
       {"x": 0, "y": 100},
   ];


   let imgHeaderHolder = d3.select("body").select("#bottom-landing-overlay").select('#landing-svg')
       .attr("width", widthPol)
       .attr("height", heightPol);
   console.log(d3.select("body"));
   let imgBottomHolder = d3.select("body").selectAll(".svg-image-overlay-bottom")
       .attr("width", widthImgOverlay)
       .attr("height", heightImgOverlay);


   let imgTopHolder = d3.select("body").selectAll(".svg-image-overlay-top")
       .attr("width", widthImgOverlay)
       .attr("height", heightImgOverlay);
   createPolygon(headerPoly, widthPol, heightPol, imgHeaderHolder);
   createPolygon(imagePolyBottom, widthImgOverlay, heightImgOverlay, imgBottomHolder);
   createPolygon(imagePolyTop, widthImgOverlay, heightImgOverlay, imgTopHolder);


   function createPolygon(polygon, width, height, vis) {
       let svg = vis.selectAll("path").data([polygon]);
       svg.exit().remove();
       let lineFunction = d3.line()
           .x(function (d) {
               return d.x
           })
           .y(function (d) {
               return d.y
           });
       svg.enter().append("path")
           .attr("d", lineFunction(polygon))
           .attr("fill", "#fff");
   }


   $(document).on('click', '[data-toggle="lightbox"]', function(event) {
       event.preventDefault();
       $(this).ekkoLightbox({
       });
   });
   $(function () {
       $('[data-toggle="tooltip"]').tooltip()
   });
   // Instantiate the Bootstrap carousel
   $('#theCarousel').carousel({
       interval: false
   });

// for every slide in carousel, copy the next slide's item in the slide. // Do the same for the next, next item.

   $('#theCarousel .item').each(function(){
       var next = $(this).next();
       if (!next.length) {
           next = $(this).siblings(':first');
       }
       next.children(':first-child').clone().appendTo($(this));
       if (next.next().length>0) {
           next.next().children(':first-child').clone().appendTo($(this));
       } else {
           $(this).siblings(':first').children(':first-child').clone().appendTo($(this));
       }
   });

}); $(document).ready(function () {

   let duration = 750;
   setTimeout(function () {
       $('.spinner').each(function (k,v) {
           setTimeout(function () {
               $(v).fadeIn(duration).css("display", "flex");
               $({deg: 0}).animate({
                   deg: 360
               }, {
                   step: function (now, fx) {
                       $(v).css({"transform": "rotateY(" + now + "deg)"});
                   },
                   duration: duration,
                   easing: 'linear',
                   queue: false,
                   complete: function () {
                   }
               }, 'linear');
           }, k * duration*2/3);
       })
   }, 200);
   $(".main-background").on("click", function () {
       $('.spinner').each(function () {
           $(this).fadeIn().css("display", "flex");
       })
   })

}); let modelInitData = [

   {
       time: 0,
       gfp: 0,
       roff: 0,
       ron: 0
   },
   {
       time: 50,
       gfp: 0.503308,
       roff: 0.005113,
       ron: 0.423903
   },
   {
       time: 100,
       gfp: 0.690581,
       roff: 0.0049136,
       ron: 0.792887
   },
   {
       time: 150,
       gfp: 0.767586,
       roff: 0.00471637,
       ron: 0.889209
   },
   {
       time: 200,
       gfp: 0.80343,
       roff: 0.00453485,
       ron: 0.873127
   },
   {
       time: 250,
       gfp: 0.823516,
       roff: 0.00436488,
       ron: 0.847286
   },
   {
       time: 300,
       gfp: 0.837313,
       roff: 0.00420449,
       ron: 0.824804
   },
   {
       time: 350,
       gfp: 0.848361,
       roff: 0.00405266,
       ron: 0.808024
   },
   {
       time: 400,
       gfp: 0.858,
       roff: 0.00390859,
       ron: 0.796644
   },
   {
       time: 450,
       gfp: 0.866756,
       roff: 0.00377157,
       ron: 0.789551
   },
   {
       time: 500,
       gfp: 0.874851,
       roff: 0.00364102,
       ron: 0.785535
   },
   {
       time: 550,
       gfp: 0.882393,
       roff: 0.00351647,
       ron: 0.783577
   },
   {
       time: 600,
       gfp: 0.889442,
       roff: 0.00339753,
       ron: 0.782911
   },
   {
       time: 650,
       gfp: 0.896039,
       roff: 0.00328388,
       ron: 0.783012
   },
   {
       time: 700,
       gfp: 0.902214,
       roff: 0.00317525,
       ron: 0.783537
   },
   {
       time: 750,
       gfp: 0.907996,
       roff: 0.0030714,
       ron: 0.784275
   },
   {
       time: 800,
       gfp: 0.913407,
       roff: 0.00297211,
       ron: 0.785103
   },
   {
       time: 850,
       gfp: 0.918469,
       roff: 0.00287717,
       ron: 0.78595
   },
   {
       time: 900,
       gfp: 0.923205,
       roff: 0.00278638,
       ron: 0.786779
   },
   {
       time: 950,
       gfp: 0.927633,
       roff: 0.00269957,
       ron: 0.787571
   },
   {
       time: 1000,
       gfp: 0.931772,
       roff: 0.00261657,
       ron: 0.788317
   },
   {
       time: 1050,
       gfp: 0.935641,
       roff: 0.0025372,
       ron: 0.789016
   },
   {
       time: 1100,
       gfp: 0.939256,
       roff: 0.00246131,
       ron: 0.789668
   },
   {
       time: 1150,
       gfp: 0.942634,
       roff: 0.00238875,
       ron: 0.790274
   },
   {
       time: 1200,
       gfp: 0.945789,
       roff: 0.00231937,
       ron: 0.790838
   },
   {
       time: 1250,
       gfp: 0.948736,
       roff: 0.00225304,
       ron: 0.791361
   },
   {
       time: 1300,
       gfp: 0.951489,
       roff: 0.00218962,
       ron: 0.791848
   },
   {
       time: 1350,
       gfp: 0.954061,
       roff: 0.00212898,
       ron: 0.7923
   },
   {
       time: 1400,
       gfp: 0.956464,
       roff: 0.00207101,
       ron: 0.792721
   },
   {
       time: 1450,
       gfp: 0.958709,
       roff: 0.00201559,
       ron: 0.793112
   },
   {
       time: 1500,
       gfp: 0.960807,
       roff: 0.0019626,
       ron: 0.793476
   },
   {
       time: 1550,
       gfp: 0.962768,
       roff: 0.00191194,
       ron: 0.793815
   },
   {
       time: 1600,
       gfp: 0.964601,
       roff: 0.00186351,
       ron: 0.79413
   },
   {
       time: 1650,
       gfp: 0.966314,
       roff: 0.00181721,
       ron: 0.794424
   },
   {
       time: 1700,
       gfp: 0.967917,
       roff: 0.00177295,
       ron: 0.794698
   },
   {
       time: 1750,
       gfp: 0.969416,
       roff: 0.00173063,
       ron: 0.794954
   },
   {
       time: 1800,
       gfp: 0.970819,
       roff: 0.00169018,
       ron: 0.795192
   },
   {
       time: 1850,
       gfp: 0.972132,
       roff: 0.00165151,
       ron: 0.795415
   },
   {
       time: 1900,
       gfp: 0.973361,
       roff: 0.00161454,
       ron: 0.795622
   },
   {
       time: 1950,
       gfp: 0.974512,
       roff: 0.00157921,
       ron: 0.795817
   },
   {
       time: 2000,
       gfp: 0.975591,
       roff: 0.00154542,
       ron: 0.795998
   },
   {
       time: 2050,
       gfp: 0.976602,
       roff: 0.00151313,
       ron: 0.796168
   },
   {
       time: 2100,
       gfp: 0.977549,
       roff: 0.00148226,
       ron: 0.796327
   },
   {
       time: 2150,
       gfp: 0.978438,
       roff: 0.00145275,
       ron: 0.796475
   },
   {
       time: 2200,
       gfp: 0.979272,
       roff: 0.00142454,
       ron: 0.796615
   },
   {
       time: 2250,
       gfp: 0.980055,
       roff: 0.00139757,
       ron: 0.796745
   },
   {
       time: 2300,
       gfp: 0.98079,
       roff: 0.00137179,
       ron: 0.796868
   },
   {
       time: 2350,
       gfp: 0.981481,
       roff: 0.00134715,
       ron: 0.796982
   },
   {
       time: 2400,
       gfp: 0.98213,
       roff: 0.0013236,
       ron: 0.79709
   },
   {
       time: 2450,
       gfp: 0.98274,
       roff: 0.00130109,
       ron: 0.797191
   },
   {
       time: 2500,
       gfp: 0.983314,
       roff: 0.00127957,
       ron: 0.797286
   },
   {
       time: 2550,
       gfp: 0.983853,
       roff: 0.00125899,
       ron: 0.797376
   },
   {
       time: 2600,
       gfp: 0.984362,
       roff: 0.00123933,
       ron: 0.79746
   },
   {
       time: 2650,
       gfp: 0.98484,
       roff: 0.00122053,
       ron: 0.797539
   },
   {
       time: 2700,
       gfp: 0.985291,
       roff: 0.00120257,
       ron: 0.797613
   },
   {
       time: 2750,
       gfp: 0.985715,
       roff: 0.00118539,
       ron: 0.797683
   },
   {
       time: 2800,
       gfp: 0.986116,
       roff: 0.00116898,
       ron: 0.797749
   },
   {
       time: 2850,
       gfp: 0.986493,
       roff: 0.00115329,
       ron: 0.797811
   },
   {
       time: 2900,
       gfp: 0.98685,
       roff: 0.00113829,
       ron: 0.797869
   },
   {
       time: 2950,
       gfp: 0.987186,
       roff: 0.00112395,
       ron: 0.797925
   },
   {
       time: 3000,
       gfp: 0.987503,
       roff: 0.00111025,
       ron: 0.797977
   },
   {
       time: 3050,
       gfp: 0.987803,
       roff: 0.00109715,
       ron: 0.798026
   },
   {
       time: 3100,
       gfp: 0.988087,
       roff: 0.00108463,
       ron: 0.798072
   },
   {
       time: 3150,
       gfp: 0.988354,
       roff: 0.00107267,
       ron: 0.798116
   },
   {
       time: 3200,
       gfp: 0.988608,
       roff: 0.00106123,
       ron: 0.798158
   },
   {
       time: 3250,
       gfp: 0.988847,
       roff: 0.0010503,
       ron: 0.798197
   },
   {
       time: 3300,
       gfp: 0.989074,
       roff: 0.00103985,
       ron: 0.798234
   },
   {
       time: 3350,
       gfp: 0.989289,
       roff: 0.00102986,
       ron: 0.798269
   },
   {
       time: 3400,
       gfp: 0.989492,
       roff: 0.00102031,
       ron: 0.798302
   },
   {
       time: 3450,
       gfp: 0.989684,
       roff: 0.00101119,
       ron: 0.798334
   },
   {
       time: 3500,
       gfp: 0.989866,
       roff: 0.00100247,
       ron: 0.798364
   },
   {
       time: 3550,
       gfp: 0.990039,
       roff: 0.00099413,
       ron: 0.798392
   },
   {
       time: 3600,
       gfp: 0.990203,
       roff: 0.000986162,
       ron: 0.798419
   },
   {
       time: 3650,
       gfp: 0.990358,
       roff: 0.000978546,
       ron: 0.798444
   },
   {
       time: 3700,
       gfp: 0.990506,
       roff: 0.000971266,
       ron: 0.798468
   },
   {
       time: 3750,
       gfp: 0.990645,
       roff: 0.000964308,
       ron: 0.798491
   },
   {
       time: 3800,
       gfp: 0.990778,
       roff: 0.000957657,
       ron: 0.798512
   },
   {
       time: 3850,
       gfp: 0.990904,
       roff: 0.0009513,
       ron: 0.798533
   },
   {
       time: 3900,
       gfp: 0.991024,
       roff: 0.000945224,
       ron: 0.798552
   },
   {
       time: 3950,
       gfp: 0.991137,
       roff: 0.000939417,
       ron: 0.798571
   },
   {
       time: 4000,
       gfp: 0.991245,
       roff: 0.000933866,
       ron: 0.798588
   },
   {
       time: 4050,
       gfp: 0.991348,
       roff: 0.000928561,
       ron: 0.798605
   },
   {
       time: 4100,
       gfp: 0.991445,
       roff: 0.00092349,
       ron: 0.798621
   },
   {
       time: 4150,
       gfp: 0.991538,
       roff: 0.000918643,
       ron: 0.798636
   },
   {
       time: 4200,
       gfp: 0.991626,
       roff: 0.000914011,
       ron: 0.79865
   },
   {
       time: 4250,
       gfp: 0.99171,
       roff: 0.000909583,
       ron: 0.798664
   },
   {
       time: 4300,
       gfp: 0.991789,
       roff: 0.000905351,
       ron: 0.798677
   },
   {
       time: 4350,
       gfp: 0.991865,
       roff: 0.000901306,
       ron: 0.798689
   },
   {
       time: 4400,
       gfp: 0.991937,
       roff: 0.00089744,
       ron: 0.798701
   },
   {
       time: 4450,
       gfp: 0.992006,
       roff: 0.000893745,
       ron: 0.798712
   },
   {
       time: 4500,
       gfp: 0.992071,
       roff: 0.000890213,
       ron: 0.798723
   },
   {
       time: 4550,
       gfp: 0.992134,
       roff: 0.000886837,
       ron: 0.798733
   },
   {
       time: 4600,
       gfp: 0.992193,
       roff: 0.00088361,
       ron: 0.798743
   },
   {
       time: 4650,
       gfp: 0.992249,
       roff: 0.000880526,
       ron: 0.798752
   },
   {
       time: 4700,
       gfp: 0.992303,
       roff: 0.000877579,
       ron: 0.79876
   },
   {
       time: 4750,
       gfp: 0.992354,
       roff: 0.000874761,
       ron: 0.798769
   },
   {
       time: 4800,
       gfp: 0.992403,
       roff: 0.000872069,
       ron: 0.798777
   },
   {
       time: 4850,
       gfp: 0.992449,
       roff: 0.000869495,
       ron: 0.798784
   },
   {
       time: 4900,
       gfp: 0.992494,
       roff: 0.000867035,
       ron: 0.798791
   },
   {
       time: 4950,
       gfp: 0.992536,
       roff: 0.000864684,
       ron: 0.798798
   },
   {
       time: 5000,
       gfp: 0.992576,
       roff: 0.000862437,
       ron: 0.798805
   },
   {
       time: 5050,
       gfp: 0.992615,
       roff: 0.00086029,
       ron: 0.798811
   },
   {
       time: 5100,
       gfp: 0.992651,
       roff: 0.000858237,
       ron: 0.798817
   },
   {
       time: 5150,
       gfp: 0.992686,
       roff: 0.000856275,
       ron: 0.798823
   },
   {
       time: 5200,
       gfp: 0.992719,
       roff: 0.0008544,
       ron: 0.798828
   },
   {
       time: 5250,
       gfp: 0.992751,
       roff: 0.000852607,
       ron: 0.798833
   },
   {
       time: 5300,
       gfp: 0.992781,
       roff: 0.000850894,
       ron: 0.798838
   },
   {
       time: 5350,
       gfp: 0.99281,
       roff: 0.000849257,
       ron: 0.798843
   },
   {
       time: 5400,
       gfp: 0.992838,
       roff: 0.000847692,
       ron: 0.798847
   },
   {
       time: 5450,
       gfp: 0.992864,
       roff: 0.000846196,
       ron: 0.798851
   },
   {
       time: 5500,
       gfp: 0.992889,
       roff: 0.000844766,
       ron: 0.798856
   },
   {
       time: 5550,
       gfp: 0.992913,
       roff: 0.000843399,
       ron: 0.798859
   },
   {
       time: 5600,
       gfp: 0.992936,
       roff: 0.000842093,
       ron: 0.798863
   },
   {
       time: 5650,
       gfp: 0.992957,
       roff: 0.000840845,
       ron: 0.798867
   },
   {
       time: 5700,
       gfp: 0.992978,
       roff: 0.000839652,
       ron: 0.79887
   },
   {
       time: 5750,
       gfp: 0.992998,
       roff: 0.000838512,
       ron: 0.798873
   },
   {
       time: 5800,
       gfp: 0.993017,
       roff: 0.000837422,
       ron: 0.798876
   },
   {
       time: 5850,
       gfp: 0.993035,
       roff: 0.00083638,
       ron: 0.798879
   },
   {
       time: 5900,
       gfp: 0.993052,
       roff: 0.000835385,
       ron: 0.798882
   },
   {
       time: 5950,
       gfp: 0.993069,
       roff: 0.000834433,
       ron: 0.798885
   },
   {
       time: 6000,
       gfp: 0.993084,
       roff: 0.000833524,
       ron: 0.798887
   },
   {
       time: 6050,
       gfp: 0.993099,
       roff: 0.000832654,
       ron: 0.79889
   },
   {
       time: 6100,
       gfp: 0.993114,
       roff: 0.000831824,
       ron: 0.798892
   },
   {
       time: 6150,
       gfp: 0.993127,
       roff: 0.00083103,
       ron: 0.798894
   },
   {
       time: 6200,
       gfp: 0.99314,
       roff: 0.000830271,
       ron: 0.798896
   },
   {
       time: 6250,
       gfp: 0.993153,
       roff: 0.000829545,
       ron: 0.798898
   },
   {
       time: 6300,
       gfp: 0.993165,
       roff: 0.000828852,
       ron: 0.7989
   },
   {
       time: 6350,
       gfp: 0.993176,
       roff: 0.000828189,
       ron: 0.798902
   },
   {
       time: 6400,
       gfp: 0.993187,
       roff: 0.000827555,
       ron: 0.798904
   },
   {
       time: 6450,
       gfp: 0.993197,
       roff: 0.00082695,
       ron: 0.798906
   },
   {
       time: 6500,
       gfp: 0.993207,
       roff: 0.000826371,
       ron: 0.798907
   },
   {
       time: 6550,
       gfp: 0.993217,
       roff: 0.000825818,
       ron: 0.798909
   },
   {
       time: 6600,
       gfp: 0.993226,
       roff: 0.000825289,
       ron: 0.79891
   },
   {
       time: 6650,
       gfp: 0.993235,
       roff: 0.000824783,
       ron: 0.798912
   },
   {
       time: 6700,
       gfp: 0.993243,
       roff: 0.0008243,
       ron: 0.798913
   },
   {
       time: 6750,
       gfp: 0.993251,
       roff: 0.000823839,
       ron: 0.798914
   },
   {
       time: 6800,
       gfp: 0.993258,
       roff: 0.000823398,
       ron: 0.798915
   },
   {
       time: 6850,
       gfp: 0.993265,
       roff: 0.000822976,
       ron: 0.798917
   },
   {
       time: 6900,
       gfp: 0.993272,
       roff: 0.000822573,
       ron: 0.798918
   },
   {
       time: 6950,
       gfp: 0.993279,
       roff: 0.000822188,
       ron: 0.798919
   },
   {
       time: 7000,
       gfp: 0.993285,
       roff: 0.00082182,
       ron: 0.79892
   },
   {
       time: 7050,
       gfp: 0.993291,
       roff: 0.000821468,
       ron: 0.798921
   },
   {
       time: 7100,
       gfp: 0.993297,
       roff: 0.000821132,
       ron: 0.798922
   },
   {
       time: 7150,
       gfp: 0.993302,
       roff: 0.00082081,
       ron: 0.798923
   },
   {
       time: 7200,
       gfp: 0.993307,
       roff: 0.000820503,
       ron: 0.798923
   },
   {
       time: 7250,
       gfp: 0.993312,
       roff: 0.000820209,
       ron: 0.798924
   },
   {
       time: 7300,
       gfp: 0.993317,
       roff: 0.000819929,
       ron: 0.798925
   },
   {
       time: 7350,
       gfp: 0.993322,
       roff: 0.00081966,
       ron: 0.798926
   },
   {
       time: 7400,
       gfp: 0.993326,
       roff: 0.000819404,
       ron: 0.798926
   },
   {
       time: 7450,
       gfp: 0.99333,
       roff: 0.000819159,
       ron: 0.798927
   },
   {
       time: 7500,
       gfp: 0.993334,
       roff: 0.000818925,
       ron: 0.798928
   },
   {
       time: 7550,
       gfp: 0.993338,
       roff: 0.000818701,
       ron: 0.798928
   },
   {
       time: 7600,
       gfp: 0.993342,
       roff: 0.000818487,
       ron: 0.798929
   },
   {
       time: 7650,
       gfp: 0.993345,
       roff: 0.000818282,
       ron: 0.79893
   },
   {
       time: 7700,
       gfp: 0.993348,
       roff: 0.000818087,
       ron: 0.79893
   },
   {
       time: 7750,
       gfp: 0.993352,
       roff: 0.0008179,
       ron: 0.798931
   },
   {
       time: 7800,
       gfp: 0.993355,
       roff: 0.000817722,
       ron: 0.798931
   },
   {
       time: 7850,
       gfp: 0.993358,
       roff: 0.000817551,
       ron: 0.798932
   },
   {
       time: 7900,
       gfp: 0.99336,
       roff: 0.000817388,
       ron: 0.798932
   },
   {
       time: 7950,
       gfp: 0.993363,
       roff: 0.000817232,
       ron: 0.798932
   },
   {
       time: 8000,
       gfp: 0.993365,
       roff: 0.000817083,
       ron: 0.798933
   },
   {
       time: 8050,
       gfp: 0.993368,
       roff: 0.000816941,
       ron: 0.798933
   },
   {
       time: 8100,
       gfp: 0.99337,
       roff: 0.000816804,
       ron: 0.798934
   },
   {
       time: 8150,
       gfp: 0.993372,
       roff: 0.000816674,
       ron: 0.798934
   },
   {
       time: 8200,
       gfp: 0.993374,
       roff: 0.00081655,
       ron: 0.798934
   },
   {
       time: 8250,
       gfp: 0.993376,
       roff: 0.000816431,
       ron: 0.798935
   },
   {
       time: 8300,
       gfp: 0.993378,
       roff: 0.000816318,
       ron: 0.798935
   },
   {
       time: 8350,
       gfp: 0.99338,
       roff: 0.000816209,
       ron: 0.798935
   },
   {
       time: 8400,
       gfp: 0.993382,
       roff: 0.000816105,
       ron: 0.798935
   },
   {
       time: 8450,
       gfp: 0.993384,
       roff: 0.000816006,
       ron: 0.798936
   },
   {
       time: 8500,
       gfp: 0.993385,
       roff: 0.000815911,
       ron: 0.798936
   },
   {
       time: 8550,
       gfp: 0.993387,
       roff: 0.000815821,
       ron: 0.798936
   },
   {
       time: 8600,
       gfp: 0.993388,
       roff: 0.000815734,
       ron: 0.798936
   },
   {
       time: 8650,
       gfp: 0.99339,
       roff: 0.000815651,
       ron: 0.798937
   },
   {
       time: 8700,
       gfp: 0.993391,
       roff: 0.000815572,
       ron: 0.798937
   },
   {
       time: 8750,
       gfp: 0.993392,
       roff: 0.000815497,
       ron: 0.798937
   },
   {
       time: 8800,
       gfp: 0.993394,
       roff: 0.000815425,
       ron: 0.798937
   },
   {
       time: 8850,
       gfp: 0.993395,
       roff: 0.000815356,
       ron: 0.798938
   },
   {
       time: 8900,
       gfp: 0.993396,
       roff: 0.00081529,
       ron: 0.798938
   },
   {
       time: 8950,
       gfp: 0.993397,
       roff: 0.000815227,
       ron: 0.798938
   },
   {
       time: 9000,
       gfp: 0.993398,
       roff: 0.000815166,
       ron: 0.798938
   },
   {
       time: 9050,
       gfp: 0.993399,
       roff: 0.000815109,
       ron: 0.798938
   },
   {
       time: 9100,
       gfp: 0.9934,
       roff: 0.000815054,
       ron: 0.798938
   },
   {
       time: 9150,
       gfp: 0.993401,
       roff: 0.000815001,
       ron: 0.798938
   },
   {
       time: 9200,
       gfp: 0.993402,
       roff: 0.000814951,
       ron: 0.798939
   },
   {
       time: 9250,
       gfp: 0.993402,
       roff: 0.000814903,
       ron: 0.798939
   },
   {
       time: 9300,
       gfp: 0.993403,
       roff: 0.000814857,
       ron: 0.798939
   },
   {
       time: 9350,
       gfp: 0.993404,
       roff: 0.000814813,
       ron: 0.798939
   },
   {
       time: 9400,
       gfp: 0.993405,
       roff: 0.000814771,
       ron: 0.798939
   },
   {
       time: 9450,
       gfp: 0.993405,
       roff: 0.000814731,
       ron: 0.798939
   },
   {
       time: 9500,
       gfp: 0.993406,
       roff: 0.000814693,
       ron: 0.798939
   },
   {
       time: 9550,
       gfp: 0.993406,
       roff: 0.000814656,
       ron: 0.798939
   },
   {
       time: 9600,
       gfp: 0.993407,
       roff: 0.000814621,
       ron: 0.79894
   },
   {
       time: 9650,
       gfp: 0.993408,
       roff: 0.000814587,
       ron: 0.79894
   },
   {
       time: 9700,
       gfp: 0.993408,
       roff: 0.000814555,
       ron: 0.79894
   },
   {
       time: 9750,
       gfp: 0.993409,
       roff: 0.000814525,
       ron: 0.79894
   },
   {
       time: 9800,
       gfp: 0.993409,
       roff: 0.000814496,
       ron: 0.79894
   },
   {
       time: 9850,
       gfp: 0.99341,
       roff: 0.000814468,
       ron: 0.79894
   },
   {
       time: 9900,
       gfp: 0.99341,
       roff: 0.000814441,
       ron: 0.79894
   },
   {
       time: 9950,
       gfp: 0.993411,
       roff: 0.000814415,
       ron: 0.79894
   },
   {
       time: 10000,
       gfp: 0.993411,
       roff: 0.000814391,
       ron: 0.79894
   },
   {
       time: 10050,
       gfp: 0.993411,
       roff: 0.000814368,
       ron: 0.79894
   },
   {
       time: 10100,
       gfp: 0.993412,
       roff: 0.000814345,
       ron: 0.79894
   },
   {
       time: 10150,
       gfp: 0.993412,
       roff: 0.000814324,
       ron: 0.79894
   },
   {
       time: 10200,
       gfp: 0.993412,
       roff: 0.000814304,
       ron: 0.79894
   },
   {
       time: 10250,
       gfp: 0.993413,
       roff: 0.000814284,
       ron: 0.79894
   },
   {
       time: 10300,
       gfp: 0.993413,
       roff: 0.000814266,
       ron: 0.798941
   },
   {
       time: 10350,
       gfp: 0.993413,
       roff: 0.000814248,
       ron: 0.798941
   },
   {
       time: 10400,
       gfp: 0.993414,
       roff: 0.000814231,
       ron: 0.798941
   },
   {
       time: 10450,
       gfp: 0.993414,
       roff: 0.000814215,
       ron: 0.798941
   },
   {
       time: 10500,
       gfp: 0.993414,
       roff: 0.000814199,
       ron: 0.798941
   },
   {
       time: 10550,
       gfp: 0.993414,
       roff: 0.000814184,
       ron: 0.798941
   },
   {
       time: 10600,
       gfp: 0.993415,
       roff: 0.00081417,
       ron: 0.798941
   },
   {
       time: 10650,
       gfp: 0.993415,
       roff: 0.000814157,
       ron: 0.798941
   },
   {
       time: 10700,
       gfp: 0.993415,
       roff: 0.000814144,
       ron: 0.798941
   },
   {
       time: 10750,
       gfp: 0.993415,
       roff: 0.000814131,
       ron: 0.798941
   },
   {
       time: 10800,
       gfp: 0.993416,
       roff: 0.00081412,
       ron: 0.798941
   },
   {
       time: 10850,
       gfp: 0.993416,
       roff: 0.000814108,
       ron: 0.798941
   },
   {
       time: 10900,
       gfp: 0.993416,
       roff: 0.000814097,
       ron: 0.798941
   },
   {
       time: 10950,
       gfp: 0.993416,
       roff: 0.000814087,
       ron: 0.798941
   },
   {
       time: 11000,
       gfp: 0.993416,
       roff: 0.000814077,
       ron: 0.798941
   },
   {
       time: 11050,
       gfp: 0.993416,
       roff: 0.000814068,
       ron: 0.798941
   },
   {
       time: 11100,
       gfp: 0.993417,
       roff: 0.000814059,
       ron: 0.798941
   },
   {
       time: 11150,
       gfp: 0.993417,
       roff: 0.00081405,
       ron: 0.798941
   },
   {
       time: 11200,
       gfp: 0.993417,
       roff: 0.000814042,
       ron: 0.798941
   },
   {
       time: 11250,
       gfp: 0.993417,
       roff: 0.000814034,
       ron: 0.798941
   },
   {
       time: 11300,
       gfp: 0.993417,
       roff: 0.000814027,
       ron: 0.798941
   },
   {
       time: 11350,
       gfp: 0.993417,
       roff: 0.000814019,
       ron: 0.798941
   },
   {
       time: 11400,
       gfp: 0.993417,
       roff: 0.000814012,
       ron: 0.798941
   },
   {
       time: 11450,
       gfp: 0.993417,
       roff: 0.000814006,
       ron: 0.798941
   },
   {
       time: 11500,
       gfp: 0.993418,
       roff: 0.000814,
       ron: 0.798941
   },
   {
       time: 11550,
       gfp: 0.993418,
       roff: 0.000813994,
       ron: 0.798941
   },
   {
       time: 11600,
       gfp: 0.993418,
       roff: 0.000813988,
       ron: 0.798941
   },
   {
       time: 11650,
       gfp: 0.993418,
       roff: 0.000813982,
       ron: 0.798941
   },
   {
       time: 11700,
       gfp: 0.993418,
       roff: 0.000813977,
       ron: 0.798941
   },
   {
       time: 11750,
       gfp: 0.993418,
       roff: 0.000813972,
       ron: 0.798941
   },
   {
       time: 11800,
       gfp: 0.993418,
       roff: 0.000813967,
       ron: 0.798941
   },
   {
       time: 11850,
       gfp: 0.993418,
       roff: 0.000813963,
       ron: 0.798941
   },
   {
       time: 11900,
       gfp: 0.993418,
       roff: 0.000813958,
       ron: 0.798941
   },
   {
       time: 11950,
       gfp: 0.993418,
       roff: 0.000813954,
       ron: 0.798941
   },
   {
       time: 12000,
       gfp: 0.993418,
       roff: 0.00081395,
       ron: 0.798941
   },
   {
       time: 12050,
       gfp: 0.993418,
       roff: 0.000813946,
       ron: 0.798941
   },
   {
       time: 12100,
       gfp: 0.993419,
       roff: 0.000813943,
       ron: 0.798941
   },
   {
       time: 12150,
       gfp: 0.993419,
       roff: 0.000813939,
       ron: 0.798941
   },
   {
       time: 12200,
       gfp: 0.993419,
       roff: 0.000813936,
       ron: 0.798941
   },
   {
       time: 12250,
       gfp: 0.993419,
       roff: 0.000813933,
       ron: 0.798941
   },
   {
       time: 12300,
       gfp: 0.993419,
       roff: 0.00081393,
       ron: 0.798941
   },
   {
       time: 12350,
       gfp: 0.993419,
       roff: 0.000813927,
       ron: 0.798941
   },
   {
       time: 12400,
       gfp: 0.993419,
       roff: 0.000813924,
       ron: 0.798941
   },
   {
       time: 12450,
       gfp: 0.993419,
       roff: 0.000813921,
       ron: 0.798941
   },
   {
       time: 12500,
       gfp: 0.993419,
       roff: 0.000813919,
       ron: 0.798941
   },
   {
       time: 12550,
       gfp: 0.993419,
       roff: 0.000813916,
       ron: 0.798941
   },
   {
       time: 12600,
       gfp: 0.993419,
       roff: 0.000813914,
       ron: 0.798941
   },
   {
       time: 12650,
       gfp: 0.993419,
       roff: 0.000813912,
       ron: 0.798941
   },
   {
       time: 12700,
       gfp: 0.993419,
       roff: 0.00081391,
       ron: 0.798941
   },
   {
       time: 12750,
       gfp: 0.993419,
       roff: 0.000813908,
       ron: 0.798941
   },
   {
       time: 12800,
       gfp: 0.993419,
       roff: 0.000813906,
       ron: 0.798941
   },
   {
       time: 12850,
       gfp: 0.993419,
       roff: 0.000813904,
       ron: 0.798941
   },
   {
       time: 12900,
       gfp: 0.993419,
       roff: 0.000813903,
       ron: 0.798941
   },
   {
       time: 12950,
       gfp: 0.993419,
       roff: 0.000813901,
       ron: 0.798942
   },
   {
       time: 13000,
       gfp: 0.993419,
       roff: 0.000813899,
       ron: 0.798942
   },
   {
       time: 13050,
       gfp: 0.993419,
       roff: 0.000813898,
       ron: 0.798942
   },
   {
       time: 13100,
       gfp: 0.993419,
       roff: 0.000813896,
       ron: 0.798942
   },
   {
       time: 13150,
       gfp: 0.993419,
       roff: 0.000813895,
       ron: 0.798942
   },
   {
       time: 13200,
       gfp: 0.993419,
       roff: 0.000813893,
       ron: 0.798942
   },
   {
       time: 13250,
       gfp: 0.993419,
       roff: 0.000813892,
       ron: 0.798942
   },
   {
       time: 13300,
       gfp: 0.993419,
       roff: 0.000813891,
       ron: 0.798942
   },
   {
       time: 13350,
       gfp: 0.993419,
       roff: 0.00081389,
       ron: 0.798942
   },
   {
       time: 13400,
       gfp: 0.993419,
       roff: 0.000813889,
       ron: 0.798942
   },
   {
       time: 13450,
       gfp: 0.993419,
       roff: 0.000813888,
       ron: 0.798942
   },
   {
       time: 13500,
       gfp: 0.993419,
       roff: 0.000813887,
       ron: 0.798942
   },
   {
       time: 13550,
       gfp: 0.993419,
       roff: 0.000813886,
       ron: 0.798942
   },
   {
       time: 13600,
       gfp: 0.993419,
       roff: 0.000813885,
       ron: 0.798942
   }

] let modelOffData = [

   {
       time: 0,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568828
   },
   {
       time: 13600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568828
   }

]; let modelOffOnData = [

   {
       time: 0,
       gfp: 0.000163698,
       roff: 0.697701,
       ron: 0.832674
   },
   {
       time: 50,
       gfp: 0.000211074,
       roff: 0.612363,
       ron: 0.948521
   },
   {
       time: 100,
       gfp: 0.000267526,
       roff: 0.550777,
       ron: 0.919628
   },
   {
       time: 150,
       gfp: 0.000329676,
       roff: 0.501516,
       ron: 0.870831
   },
   {
       time: 200,
       gfp: 0.000397584,
       roff: 0.460319,
       ron: 0.809957
   },
   {
       time: 250,
       gfp: 0.000472028,
       roff: 0.424945,
       ron: 0.744471
   },
   {
       time: 300,
       gfp: 0.00055395,
       roff: 0.394015,
       ron: 0.68035
   },
   {
       time: 350,
       gfp: 0.00064434,
       roff: 0.36661,
       ron: 0.621023
   },
   {
       time: 400,
       gfp: 0.000744222,
       roff: 0.342082,
       ron: 0.567804
   },
   {
       time: 450,
       gfp: 0.000854664,
       roff: 0.319958,
       ron: 0.520748
   },
   {
       time: 500,
       gfp: 0.000976787,
       roff: 0.299877,
       ron: 0.479326
   },
   {
       time: 550,
       gfp: 0.00111178,
       roff: 0.281556,
       ron: 0.442819
   },
   {
       time: 600,
       gfp: 0.00126091,
       roff: 0.264771,
       ron: 0.410508
   },
   {
       time: 650,
       gfp: 0.00142552,
       roff: 0.249338,
       ron: 0.381752
   },
   {
       time: 700,
       gfp: 0.00160704,
       roff: 0.235106,
       ron: 0.356011
   },
   {
       time: 750,
       gfp: 0.001807,
       roff: 0.221948,
       ron: 0.33284
   },
   {
       time: 800,
       gfp: 0.00202701,
       roff: 0.209757,
       ron: 0.311876
   },
   {
       time: 850,
       gfp: 0.00226874,
       roff: 0.198442,
       ron: 0.292823
   },
   {
       time: 900,
       gfp: 0.00253395,
       roff: 0.187925,
       ron: 0.275439
   },
   {
       time: 950,
       gfp: 0.00282443,
       roff: 0.178137,
       ron: 0.259525
   },
   {
       time: 1000,
       gfp: 0.00314203,
       roff: 0.169021,
       ron: 0.244918
   },
   {
       time: 1050,
       gfp: 0.00348854,
       roff: 0.160523,
       ron: 0.231479
   },
   {
       time: 1100,
       gfp: 0.00386576,
       roff: 0.1526,
       ron: 0.219094
   },
   {
       time: 1150,
       gfp: 0.00427536,
       roff: 0.14521,
       ron: 0.207664
   },
   {
       time: 1200,
       gfp: 0.00471886,
       roff: 0.138319,
       ron: 0.197106
   },
   {
       time: 1250,
       gfp: 0.00519756,
       roff: 0.131895,
       ron: 0.187348
   },
   {
       time: 1300,
       gfp: 0.00571242,
       roff: 0.125909,
       ron: 0.178328
   },
   {
       time: 1350,
       gfp: 0.00626401,
       roff: 0.120336,
       ron: 0.169991
   },
   {
       time: 1400,
       gfp: 0.00685239,
       roff: 0.115154,
       ron: 0.162289
   },
   {
       time: 1450,
       gfp: 0.00747704,
       roff: 0.110341,
       ron: 0.15518
   },
   {
       time: 1500,
       gfp: 0.00813668,
       roff: 0.105878,
       ron: 0.148626
   },
   {
       time: 1550,
       gfp: 0.00882929,
       roff: 0.101748,
       ron: 0.142592
   },
   {
       time: 1600,
       gfp: 0.00955198,
       roff: 0.0979326,
       ron: 0.137048
   },
   {
       time: 1650,
       gfp: 0.010301,
       roff: 0.0944174,
       ron: 0.131964
   },
   {
       time: 1700,
       gfp: 0.0110718,
       roff: 0.0911866,
       ron: 0.127314
   },
   {
       time: 1750,
       gfp: 0.0118589,
       roff: 0.0882252,
       ron: 0.123072
   },
   {
       time: 1800,
       gfp: 0.0126564,
       roff: 0.0855188,
       ron: 0.119213
   },
   {
       time: 1850,
       gfp: 0.0134576,
       roff: 0.0830528,
       ron: 0.115713
   },
   {
       time: 1900,
       gfp: 0.0142557,
       roff: 0.0808127,
       ron: 0.11255
   },
   {
       time: 1950,
       gfp: 0.0150439,
       roff: 0.0787842,
       ron: 0.109701
   },
   {
       time: 2000,
       gfp: 0.0158156,
       roff: 0.076953,
       ron: 0.107144
   },
   {
       time: 2050,
       gfp: 0.0165645,
       roff: 0.0753049,
       ron: 0.104857
   },
   {
       time: 2100,
       gfp: 0.0172853,
       roff: 0.0738257,
       ron: 0.10282
   },
   {
       time: 2150,
       gfp: 0.0179733,
       roff: 0.0725018,
       ron: 0.101012
   },
   {
       time: 2200,
       gfp: 0.0186248,
       roff: 0.0713196,
       ron: 0.0994126
   },
   {
       time: 2250,
       gfp: 0.0192373,
       roff: 0.0702663,
       ron: 0.0980041
   },
   {
       time: 2300,
       gfp: 0.0198091,
       roff: 0.0693294,
       ron: 0.0967681
   },
   {
       time: 2350,
       gfp: 0.0203398,
       roff: 0.0684972,
       ron: 0.095688
   },
   {
       time: 2400,
       gfp: 0.0208296,
       roff: 0.0677587,
       ron: 0.094748
   },
   {
       time: 2450,
       gfp: 0.0212794,
       roff: 0.0671036,
       ron: 0.0939335
   },
   {
       time: 2500,
       gfp: 0.0216909,
       roff: 0.0665225,
       ron: 0.0932313
   },
   {
       time: 2550,
       gfp: 0.0220663,
       roff: 0.0660066,
       ron: 0.0926289
   },
   {
       time: 2600,
       gfp: 0.0224078,
       roff: 0.065548,
       ron: 0.0921154
   },
   {
       time: 2650,
       gfp: 0.0227183,
       roff: 0.0651395,
       ron: 0.0916808
   },
   {
       time: 2700,
       gfp: 0.0230003,
       roff: 0.0647746,
       ron: 0.0913162
   },
   {
       time: 2750,
       gfp: 0.0232567,
       roff: 0.0644476,
       ron: 0.0910134
   },
   {
       time: 2800,
       gfp: 0.0234902,
       roff: 0.0641533,
       ron: 0.0907656
   },
   {
       time: 2850,
       gfp: 0.0237033,
       roff: 0.0638871,
       ron: 0.0905663
   },
   {
       time: 2900,
       gfp: 0.0238986,
       roff: 0.0636448,
       ron: 0.0904102
   },
   {
       time: 2950,
       gfp: 0.0240783,
       roff: 0.0634229,
       ron: 0.0902925
   },
   {
       time: 3000,
       gfp: 0.0242446,
       roff: 0.0632182,
       ron: 0.0902089
   },
   {
       time: 3050,
       gfp: 0.0243995,
       roff: 0.0630279,
       ron: 0.0901558
   },
   {
       time: 3100,
       gfp: 0.0245447,
       roff: 0.0628495,
       ron: 0.0901301
   },
   {
       time: 3150,
       gfp: 0.024682,
       roff: 0.0626807,
       ron: 0.0901291
   },
   {
       time: 3200,
       gfp: 0.0248127,
       roff: 0.0625198,
       ron: 0.0901504
   },
   {
       time: 3250,
       gfp: 0.0249383,
       roff: 0.0623649,
       ron: 0.0901922
   },
   {
       time: 3300,
       gfp: 0.02506,
       roff: 0.0622147,
       ron: 0.0902528
   },
   {
       time: 3350,
       gfp: 0.0251787,
       roff: 0.0620677,
       ron: 0.0903307
   },
   {
       time: 3400,
       gfp: 0.0252957,
       roff: 0.0619229,
       ron: 0.0904248
   },
   {
       time: 3450,
       gfp: 0.0254116,
       roff: 0.0617791,
       ron: 0.0905343
   },
   {
       time: 3500,
       gfp: 0.0255274,
       roff: 0.0616354,
       ron: 0.0906582
   },
   {
       time: 3550,
       gfp: 0.0256438,
       roff: 0.0614911,
       ron: 0.0907961
   },
   {
       time: 3600,
       gfp: 0.0257616,
       roff: 0.0613453,
       ron: 0.0909475
   },
   {
       time: 3650,
       gfp: 0.0258812,
       roff: 0.0611973,
       ron: 0.091112
   },
   {
       time: 3700,
       gfp: 0.0260035,
       roff: 0.0610467,
       ron: 0.0912895
   },
   {
       time: 3750,
       gfp: 0.0261288,
       roff: 0.0608927,
       ron: 0.0914798
   },
   {
       time: 3800,
       gfp: 0.0262578,
       roff: 0.0607348,
       ron: 0.0916831
   },
   {
       time: 3850,
       gfp: 0.0263909,
       roff: 0.0605727,
       ron: 0.0918993
   },
   {
       time: 3900,
       gfp: 0.0265287,
       roff: 0.0604057,
       ron: 0.0921286
   },
   {
       time: 3950,
       gfp: 0.0266717,
       roff: 0.0602336,
       ron: 0.0923714
   },
   {
       time: 4000,
       gfp: 0.0268203,
       roff: 0.0600559,
       ron: 0.0926278
   },
   {
       time: 4050,
       gfp: 0.026975,
       roff: 0.0598721,
       ron: 0.0928983
   },
   {
       time: 4100,
       gfp: 0.0271363,
       roff: 0.0596819,
       ron: 0.0931834
   },
   {
       time: 4150,
       gfp: 0.0273047,
       roff: 0.059485,
       ron: 0.0934834
   },
   {
       time: 4200,
       gfp: 0.0274808,
       roff: 0.059281,
       ron: 0.0937991
   },
   {
       time: 4250,
       gfp: 0.027665,
       roff: 0.0590695,
       ron: 0.0941311
   },
   {
       time: 4300,
       gfp: 0.0278578,
       roff: 0.0588503,
       ron: 0.0944799
   },
   {
       time: 4350,
       gfp: 0.0280599,
       roff: 0.0586229,
       ron: 0.0948465
   },
   {
       time: 4400,
       gfp: 0.0282717,
       roff: 0.058387,
       ron: 0.0952315
   },
   {
       time: 4450,
       gfp: 0.028494,
       roff: 0.0581423,
       ron: 0.095636
   },
   {
       time: 4500,
       gfp: 0.0287273,
       roff: 0.0578885,
       ron: 0.0960607
   },
   {
       time: 4550,
       gfp: 0.0289724,
       roff: 0.0576252,
       ron: 0.0965067
   },
   {
       time: 4600,
       gfp: 0.0292299,
       roff: 0.0573522,
       ron: 0.0969752
   },
   {
       time: 4650,
       gfp: 0.0295005,
       roff: 0.0570689,
       ron: 0.0974672
   },
   {
       time: 4700,
       gfp: 0.0297852,
       roff: 0.0567753,
       ron: 0.097984
   },
   {
       time: 4750,
       gfp: 0.0300847,
       roff: 0.0564708,
       ron: 0.0985269
   },
   {
       time: 4800,
       gfp: 0.0303999,
       roff: 0.0561552,
       ron: 0.0990972
   },
   {
       time: 4850,
       gfp: 0.0307319,
       roff: 0.0558282,
       ron: 0.0996966
   },
   {
       time: 4900,
       gfp: 0.0310816,
       roff: 0.0554894,
       ron: 0.100327
   },
   {
       time: 4950,
       gfp: 0.0314502,
       roff: 0.0551386,
       ron: 0.100989
   },
   {
       time: 5000,
       gfp: 0.0318387,
       roff: 0.0547754,
       ron: 0.101685
   },
   {
       time: 5050,
       gfp: 0.0322486,
       roff: 0.0543995,
       ron: 0.102418
   },
   {
       time: 5100,
       gfp: 0.032681,
       roff: 0.0540105,
       ron: 0.103188
   },
   {
       time: 5150,
       gfp: 0.0331375,
       roff: 0.0536083,
       ron: 0.103999
   },
   {
       time: 5200,
       gfp: 0.0336197,
       roff: 0.0531926,
       ron: 0.104852
   },
   {
       time: 5250,
       gfp: 0.0341291,
       roff: 0.052763,
       ron: 0.105751
   },
   {
       time: 5300,
       gfp: 0.0346677,
       roff: 0.0523192,
       ron: 0.106697
   },
   {
       time: 5350,
       gfp: 0.0352372,
       roff: 0.0518612,
       ron: 0.107694
   },
   {
       time: 5400,
       gfp: 0.0358398,
       roff: 0.0513886,
       ron: 0.108745
   },
   {
       time: 5450,
       gfp: 0.0364777,
       roff: 0.0509012,
       ron: 0.109853
   },
   {
       time: 5500,
       gfp: 0.0371534,
       roff: 0.0503989,
       ron: 0.111022
   },
   {
       time: 5550,
       gfp: 0.0378693,
       roff: 0.0498814,
       ron: 0.112254
   },
   {
       time: 5600,
       gfp: 0.0386284,
       roff: 0.0493487,
       ron: 0.113555
   },
   {
       time: 5650,
       gfp: 0.0394336,
       roff: 0.0488007,
       ron: 0.114929
   },
   {
       time: 5700,
       gfp: 0.0402882,
       roff: 0.0482372,
       ron: 0.11638
   },
   {
       time: 5750,
       gfp: 0.0411958,
       roff: 0.0476583,
       ron: 0.117914
   },
   {
       time: 5800,
       gfp: 0.0421601,
       roff: 0.047064,
       ron: 0.119535
   },
   {
       time: 5850,
       gfp: 0.0431852,
       roff: 0.0464542,
       ron: 0.121249
   },
   {
       time: 5900,
       gfp: 0.0442756,
       roff: 0.0458292,
       ron: 0.123062
   },
   {
       time: 5950,
       gfp: 0.0454362,
       roff: 0.045189,
       ron: 0.124982
   },
   {
       time: 6000,
       gfp: 0.0466721,
       roff: 0.0445338,
       ron: 0.127014
   },
   {
       time: 6050,
       gfp: 0.047989,
       roff: 0.0438639,
       ron: 0.129168
   },
   {
       time: 6100,
       gfp: 0.0493929,
       roff: 0.0431795,
       ron: 0.13145
   },
   {
       time: 6150,
       gfp: 0.0508906,
       roff: 0.0424811,
       ron: 0.133869
   },
   {
       time: 6200,
       gfp: 0.052489,
       roff: 0.041769,
       ron: 0.136435
   },
   {
       time: 6250,
       gfp: 0.054196,
       roff: 0.0410438,
       ron: 0.139158
   },
   {
       time: 6300,
       gfp: 0.0560198,
       roff: 0.040306,
       ron: 0.142049
   },
   {
       time: 6350,
       gfp: 0.0579695,
       roff: 0.0395561,
       ron: 0.145119
   },
   {
       time: 6400,
       gfp: 0.0600547,
       roff: 0.038795,
       ron: 0.14838
   },
   {
       time: 6450,
       gfp: 0.0622861,
       roff: 0.0380232,
       ron: 0.151846
   },
   {
       time: 6500,
       gfp: 0.0646748,
       roff: 0.0372417,
       ron: 0.155531
   },
   {
       time: 6550,
       gfp: 0.0672331,
       roff: 0.0364514,
       ron: 0.15945
   },
   {
       time: 6600,
       gfp: 0.0699739,
       roff: 0.035653,
       ron: 0.163618
   },
   {
       time: 6650,
       gfp: 0.0729114,
       roff: 0.0348478,
       ron: 0.168053
   },
   {
       time: 6700,
       gfp: 0.0760605,
       roff: 0.0340366,
       ron: 0.172773
   },
   {
       time: 6750,
       gfp: 0.0794372,
       roff: 0.0332207,
       ron: 0.177796
   },
   {
       time: 6800,
       gfp: 0.0830586,
       roff: 0.0324012,
       ron: 0.183143
   },
   {
       time: 6850,
       gfp: 0.086943,
       roff: 0.0315792,
       ron: 0.188835
   },
   {
       time: 6900,
       gfp: 0.0911095,
       roff: 0.030756,
       ron: 0.194894
   },
   {
       time: 6950,
       gfp: 0.0955784,
       roff: 0.0299329,
       ron: 0.201341
   },
   {
       time: 7000,
       gfp: 0.100371,
       roff: 0.0291111,
       ron: 0.208202
   },
   {
       time: 7050,
       gfp: 0.10551,
       roff: 0.028292,
       ron: 0.2155
   },
   {
       time: 7100,
       gfp: 0.111019,
       roff: 0.0274767,
       ron: 0.22326
   },
   {
       time: 7150,
       gfp: 0.116921,
       roff: 0.0266665,
       ron: 0.231505
   },
   {
       time: 7200,
       gfp: 0.123241,
       roff: 0.0258628,
       ron: 0.240261
   },
   {
       time: 7250,
       gfp: 0.130005,
       roff: 0.0250668,
       ron: 0.249551
   },
   {
       time: 7300,
       gfp: 0.137238,
       roff: 0.0242795,
       ron: 0.259399
   },
   {
       time: 7350,
       gfp: 0.144967,
       roff: 0.0235022,
       ron: 0.269824
   },
   {
       time: 7400,
       gfp: 0.153215,
       roff: 0.0227359,
       ron: 0.280847
   },
   {
       time: 7450,
       gfp: 0.162009,
       roff: 0.0219817,
       ron: 0.292483
   },
   {
       time: 7500,
       gfp: 0.171371,
       roff: 0.0212405,
       ron: 0.304743
   },
   {
       time: 7550,
       gfp: 0.181325,
       roff: 0.0205132,
       ron: 0.317636
   },
   {
       time: 7600,
       gfp: 0.191889,
       roff: 0.0198006,
       ron: 0.331162
   },
   {
       time: 7650,
       gfp: 0.203083,
       roff: 0.0191033,
       ron: 0.345316
   },
   {
       time: 7700,
       gfp: 0.214921,
       roff: 0.0184221,
       ron: 0.360084
   },
   {
       time: 7750,
       gfp: 0.227414,
       roff: 0.0177574,
       ron: 0.375442
   },
   {
       time: 7800,
       gfp: 0.240568,
       roff: 0.0171097,
       ron: 0.391357
   },
   {
       time: 7850,
       gfp: 0.254387,
       roff: 0.0164793,
       ron: 0.407784
   },
   {
       time: 7900,
       gfp: 0.268866,
       roff: 0.0158667,
       ron: 0.424664
   },
   {
       time: 7950,
       gfp: 0.283997,
       roff: 0.0152719,
       ron: 0.441928
   },
   {
       time: 8000,
       gfp: 0.299765,
       roff: 0.0146951,
       ron: 0.459491
   },
   {
       time: 8050,
       gfp: 0.316146,
       roff: 0.0141363,
       ron: 0.477256
   },
   {
       time: 8100,
       gfp: 0.333113,
       roff: 0.0135956,
       ron: 0.495114
   },
   {
       time: 8150,
       gfp: 0.35063,
       roff: 0.0130729,
       ron: 0.512949
   },
   {
       time: 8200,
       gfp: 0.368654,
       roff: 0.012568,
       ron: 0.530633
   },
   {
       time: 8250,
       gfp: 0.387136,
       roff: 0.0120808,
       ron: 0.548038
   },
   {
       time: 8300,
       gfp: 0.406021,
       roff: 0.0116111,
       ron: 0.565036
   },
   {
       time: 8350,
       gfp: 0.425248,
       roff: 0.0111585,
       ron: 0.581504
   },
   {
       time: 8400,
       gfp: 0.444752,
       roff: 0.0107228,
       ron: 0.59733
   },
   {
       time: 8450,
       gfp: 0.464464,
       roff: 0.0103036,
       ron: 0.61242
   },
   {
       time: 8500,
       gfp: 0.48431,
       roff: 0.00990054,
       ron: 0.626697
   },
   {
       time: 8550,
       gfp: 0.504218,
       roff: 0.00951326,
       ron: 0.640109
   },
   {
       time: 8600,
       gfp: 0.524114,
       roff: 0.00914133,
       ron: 0.652627
   },
   {
       time: 8650,
       gfp: 0.543923,
       roff: 0.0087843,
       ron: 0.664244
   },
   {
       time: 8700,
       gfp: 0.563575,
       roff: 0.00844173,
       ron: 0.674974
   },
   {
       time: 8750,
       gfp: 0.583001,
       roff: 0.00811316,
       ron: 0.68485
   },
   {
       time: 8800,
       gfp: 0.602136,
       roff: 0.00779812,
       ron: 0.693914
   },
   {
       time: 8850,
       gfp: 0.620919,
       roff: 0.00749615,
       ron: 0.702221
   },
   {
       time: 8900,
       gfp: 0.639297,
       roff: 0.00720679,
       ron: 0.709826
   },
   {
       time: 8950,
       gfp: 0.657221,
       roff: 0.00692957,
       ron: 0.716788
   },
   {
       time: 9000,
       gfp: 0.674647,
       roff: 0.00666403,
       ron: 0.723163
   },
   {
       time: 9050,
       gfp: 0.691539,
       roff: 0.00640973,
       ron: 0.729003
   },
   {
       time: 9100,
       gfp: 0.707866,
       roff: 0.00616623,
       ron: 0.734358
   },
   {
       time: 9150,
       gfp: 0.723604,
       roff: 0.00593311,
       ron: 0.739272
   },
   {
       time: 9200,
       gfp: 0.738736,
       roff: 0.00570995,
       ron: 0.743785
   },
   {
       time: 9250,
       gfp: 0.753249,
       roff: 0.00549634,
       ron: 0.747934
   },
   {
       time: 9300,
       gfp: 0.767135,
       roff: 0.00529191,
       ron: 0.75175
   },
   {
       time: 9350,
       gfp: 0.780392,
       roff: 0.00509626,
       ron: 0.755263
   },
   {
       time: 9400,
       gfp: 0.793023,
       roff: 0.00490904,
       ron: 0.758498
   },
   {
       time: 9450,
       gfp: 0.805034,
       roff: 0.0047299,
       ron: 0.761479
   },
   {
       time: 9500,
       gfp: 0.816434,
       roff: 0.0045585,
       ron: 0.764227
   },
   {
       time: 9550,
       gfp: 0.827235,
       roff: 0.00439452,
       ron: 0.76676
   },
   {
       time: 9600,
       gfp: 0.837454,
       roff: 0.00423764,
       ron: 0.769098
   },
   {
       time: 9650,
       gfp: 0.847108,
       roff: 0.00408756,
       ron: 0.771254
   },
   {
       time: 9700,
       gfp: 0.856215,
       roff: 0.003944,
       ron: 0.773245
   },
   {
       time: 9750,
       gfp: 0.864795,
       roff: 0.00380668,
       ron: 0.775083
   },
   {
       time: 9800,
       gfp: 0.872871,
       roff: 0.00367534,
       ron: 0.776781
   },
   {
       time: 9850,
       gfp: 0.880462,
       roff: 0.00354971,
       ron: 0.778349
   },
   {
       time: 9900,
       gfp: 0.887593,
       roff: 0.00342956,
       ron: 0.779799
   },
   {
       time: 9950,
       gfp: 0.894285,
       roff: 0.00331464,
       ron: 0.781138
   },
   {
       time: 10000,
       gfp: 0.90056,
       roff: 0.00320474,
       ron: 0.782377
   },
   {
       time: 10050,
       gfp: 0.906441,
       roff: 0.00309964,
       ron: 0.783523
   },
   {
       time: 10100,
       gfp: 0.911948,
       roff: 0.00299914,
       ron: 0.784583
   },
   {
       time: 10150,
       gfp: 0.917103,
       roff: 0.00290302,
       ron: 0.785564
   },
   {
       time: 10200,
       gfp: 0.921926,
       roff: 0.00281111,
       ron: 0.786473
   },
   {
       time: 10250,
       gfp: 0.926437,
       roff: 0.00272323,
       ron: 0.787314
   },
   {
       time: 10300,
       gfp: 0.930654,
       roff: 0.00263919,
       ron: 0.788094
   },
   {
       time: 10350,
       gfp: 0.934596,
       roff: 0.00255883,
       ron: 0.788816
   },
   {
       time: 10400,
       gfp: 0.938279,
       roff: 0.00248199,
       ron: 0.789486
   },
   {
       time: 10450,
       gfp: 0.941721,
       roff: 0.00240852,
       ron: 0.790108
   },
   {
       time: 10500,
       gfp: 0.944936,
       roff: 0.00233828,
       ron: 0.790684
   },
   {
       time: 10550,
       gfp: 0.94794,
       roff: 0.00227112,
       ron: 0.791219
   },
   {
       time: 10600,
       gfp: 0.950745,
       roff: 0.0022069,
       ron: 0.791716
   },
   {
       time: 10650,
       gfp: 0.953366,
       roff: 0.00214551,
       ron: 0.792178
   },
   {
       time: 10700,
       gfp: 0.955815,
       roff: 0.00208681,
       ron: 0.792607
   },
   {
       time: 10750,
       gfp: 0.958103,
       roff: 0.00203069,
       ron: 0.793007
   },
   {
       time: 10800,
       gfp: 0.96024,
       roff: 0.00197704,
       ron: 0.793378
   },
   {
       time: 10850,
       gfp: 0.962238,
       roff: 0.00192575,
       ron: 0.793723
   },
   {
       time: 10900,
       gfp: 0.964105,
       roff: 0.00187671,
       ron: 0.794045
   },
   {
       time: 10950,
       gfp: 0.965851,
       roff: 0.00182983,
       ron: 0.794345
   },
   {
       time: 11000,
       gfp: 0.967484,
       roff: 0.00178501,
       ron: 0.794624
   },
   {
       time: 11050,
       gfp: 0.969011,
       roff: 0.00174216,
       ron: 0.794885
   },
   {
       time: 11100,
       gfp: 0.97044,
       roff: 0.00170121,
       ron: 0.795128
   },
   {
       time: 11150,
       gfp: 0.971777,
       roff: 0.00166205,
       ron: 0.795355
   },
   {
       time: 11200,
       gfp: 0.973029,
       roff: 0.00162462,
       ron: 0.795566
   },
   {
       time: 11250,
       gfp: 0.974201,
       roff: 0.00158883,
       ron: 0.795764
   },
   {
       time: 11300,
       gfp: 0.975299,
       roff: 0.00155463,
       ron: 0.795949
   },
   {
       time: 11350,
       gfp: 0.976328,
       roff: 0.00152193,
       ron: 0.796122
   },
   {
       time: 11400,
       gfp: 0.977293,
       roff: 0.00149067,
       ron: 0.796284
   },
   {
       time: 11450,
       gfp: 0.978198,
       roff: 0.00146078,
       ron: 0.796435
   },
   {
       time: 11500,
       gfp: 0.979047,
       roff: 0.00143222,
       ron: 0.796577
   },
   {
       time: 11550,
       gfp: 0.979844,
       roff: 0.00140492,
       ron: 0.79671
   },
   {
       time: 11600,
       gfp: 0.980592,
       roff: 0.00137882,
       ron: 0.796835
   },
   {
       time: 11650,
       gfp: 0.981294,
       roff: 0.00135387,
       ron: 0.796951
   },
   {
       time: 11700,
       gfp: 0.981954,
       roff: 0.00133002,
       ron: 0.797061
   },
   {
       time: 11750,
       gfp: 0.982575,
       roff: 0.00130722,
       ron: 0.797164
   },
   {
       time: 11800,
       gfp: 0.983158,
       roff: 0.00128543,
       ron: 0.797261
   },
   {
       time: 11850,
       gfp: 0.983707,
       roff: 0.0012646,
       ron: 0.797351
   },
   {
       time: 11900,
       gfp: 0.984224,
       roff: 0.00124469,
       ron: 0.797437
   },
   {
       time: 11950,
       gfp: 0.98471,
       roff: 0.00122565,
       ron: 0.797517
   },
   {
       time: 12000,
       gfp: 0.985168,
       roff: 0.00120746,
       ron: 0.797593
   },
   {
       time: 12050,
       gfp: 0.9856,
       roff: 0.00119007,
       ron: 0.797664
   },
   {
       time: 12100,
       gfp: 0.986007,
       roff: 0.00117345,
       ron: 0.797731
   },
   {
       time: 12150,
       gfp: 0.986391,
       roff: 0.00115756,
       ron: 0.797794
   },
   {
       time: 12200,
       gfp: 0.986753,
       roff: 0.00114238,
       ron: 0.797854
   },
   {
       time: 12250,
       gfp: 0.987095,
       roff: 0.00112786,
       ron: 0.79791
   },
   {
       time: 12300,
       gfp: 0.987417,
       roff: 0.00111398,
       ron: 0.797963
   },
   {
       time: 12350,
       gfp: 0.987722,
       roff: 0.00110072,
       ron: 0.798013
   },
   {
       time: 12400,
       gfp: 0.98801,
       roff: 0.00108804,
       ron: 0.79806
   },
   {
       time: 12450,
       gfp: 0.988282,
       roff: 0.00107593,
       ron: 0.798104
   },
   {
       time: 12500,
       gfp: 0.988539,
       roff: 0.00106435,
       ron: 0.798147
   },
   {
       time: 12550,
       gfp: 0.988782,
       roff: 0.00105328,
       ron: 0.798186
   },
   {
       time: 12600,
       gfp: 0.989012,
       roff: 0.00104269,
       ron: 0.798224
   },
   {
       time: 12650,
       gfp: 0.98923,
       roff: 0.00103258,
       ron: 0.79826
   },
   {
       time: 12700,
       gfp: 0.989437,
       roff: 0.00102291,
       ron: 0.798293
   },
   {
       time: 12750,
       gfp: 0.989632,
       roff: 0.00101367,
       ron: 0.798325
   },
   {
       time: 12800,
       gfp: 0.989817,
       roff: 0.00100484,
       ron: 0.798356
   },
   {
       time: 12850,
       gfp: 0.989992,
       roff: 0.000996401,
       ron: 0.798384
   },
   {
       time: 12900,
       gfp: 0.990158,
       roff: 0.000988333,
       ron: 0.798411
   },
   {
       time: 12950,
       gfp: 0.990316,
       roff: 0.000980621,
       ron: 0.798437
   },
   {
       time: 13000,
       gfp: 0.990466,
       roff: 0.000973249,
       ron: 0.798461
   },
   {
       time: 13050,
       gfp: 0.990607,
       roff: 0.000966203,
       ron: 0.798485
   },
   {
       time: 13100,
       gfp: 0.990742,
       roff: 0.000959469,
       ron: 0.798507
   },
   {
       time: 13150,
       gfp: 0.99087,
       roff: 0.000953032,
       ron: 0.798527
   },
   {
       time: 13200,
       gfp: 0.990991,
       roff: 0.000946879,
       ron: 0.798547
   },
   {
       time: 13250,
       gfp: 0.991106,
       roff: 0.000940999,
       ron: 0.798566
   },
   {
       time: 13300,
       gfp: 0.991216,
       roff: 0.000935378,
       ron: 0.798584
   },
   {
       time: 13350,
       gfp: 0.99132,
       roff: 0.000930006,
       ron: 0.798601
   },
   {
       time: 13400,
       gfp: 0.991419,
       roff: 0.000924871,
       ron: 0.798617
   },
   {
       time: 13450,
       gfp: 0.991513,
       roff: 0.000919964,
       ron: 0.798632
   },
   {
       time: 13500,
       gfp: 0.991602,
       roff: 0.000915273,
       ron: 0.798647
   },
   {
       time: 13550,
       gfp: 0.991687,
       roff: 0.000910789,
       ron: 0.79866
   },
   {
       time: 13600,
       gfp: 0.991768,
       roff: 0.000906504,
       ron: 0.798673
   },
   {
       time: 13650,
       gfp: 0.991845,
       roff: 0.000902408,
       ron: 0.798686
   },
   {
       time: 13700,
       gfp: 0.991918,
       roff: 0.000898493,
       ron: 0.798698
   },
   {
       time: 13750,
       gfp: 0.991987,
       roff: 0.000894751,
       ron: 0.798709
   },
   {
       time: 13800,
       gfp: 0.992054,
       roff: 0.000891174,
       ron: 0.79872
   },
   {
       time: 13850,
       gfp: 0.992117,
       roff: 0.000887756,
       ron: 0.79873
   },
   {
       time: 13900,
       gfp: 0.992177,
       roff: 0.000884489,
       ron: 0.79874
   },
   {
       time: 13950,
       gfp: 0.992234,
       roff: 0.000881366,
       ron: 0.798749
   },
   {
       time: 14000,
       gfp: 0.992288,
       roff: 0.000878381,
       ron: 0.798758
   },
   {
       time: 14050,
       gfp: 0.99234,
       roff: 0.000875529,
       ron: 0.798767
   },
   {
       time: 14100,
       gfp: 0.99239,
       roff: 0.000872802,
       ron: 0.798775
   },
   {
       time: 14150,
       gfp: 0.992437,
       roff: 0.000870196,
       ron: 0.798782
   },
   {
       time: 14200,
       gfp: 0.992482,
       roff: 0.000867706,
       ron: 0.798789
   },
   {
       time: 14250,
       gfp: 0.992524,
       roff: 0.000865325,
       ron: 0.798796
   },
   {
       time: 14300,
       gfp: 0.992565,
       roff: 0.00086305,
       ron: 0.798803
   },
   {
       time: 14350,
       gfp: 0.992604,
       roff: 0.000860875,
       ron: 0.798809
   },
   {
       time: 14400,
       gfp: 0.992641,
       roff: 0.000858796,
       ron: 0.798815
   },
   {
       time: 14450,
       gfp: 0.992676,
       roff: 0.000856809,
       ron: 0.798821
   },
   {
       time: 14500,
       gfp: 0.99271,
       roff: 0.00085491,
       ron: 0.798827
   },
   {
       time: 14550,
       gfp: 0.992742,
       roff: 0.000853095,
       ron: 0.798832
   },
   {
       time: 14600,
       gfp: 0.992773,
       roff: 0.000851361,
       ron: 0.798837
   },
   {
       time: 14650,
       gfp: 0.992802,
       roff: 0.000849702,
       ron: 0.798841
   },
   {
       time: 14700,
       gfp: 0.99283,
       roff: 0.000848118,
       ron: 0.798846
   },
   {
       time: 14750,
       gfp: 0.992857,
       roff: 0.000846603,
       ron: 0.79885
   },
   {
       time: 14800,
       gfp: 0.992882,
       roff: 0.000845155,
       ron: 0.798854
   },
   {
       time: 14850,
       gfp: 0.992906,
       roff: 0.000843772,
       ron: 0.798858
   },
   {
       time: 14900,
       gfp: 0.992929,
       roff: 0.000842449,
       ron: 0.798862
   },
   {
       time: 14950,
       gfp: 0.992951,
       roff: 0.000841185,
       ron: 0.798866
   },
   {
       time: 15000,
       gfp: 0.992972,
       roff: 0.000839977,
       ron: 0.798869
   },
   {
       time: 15050,
       gfp: 0.992993,
       roff: 0.000838822,
       ron: 0.798872
   },
   {
       time: 15100,
       gfp: 0.993012,
       roff: 0.000837719,
       ron: 0.798875
   },
   {
       time: 15150,
       gfp: 0.99303,
       roff: 0.000836664,
       ron: 0.798878
   },
   {
       time: 15200,
       gfp: 0.993048,
       roff: 0.000835656,
       ron: 0.798881
   },
   {
       time: 15250,
       gfp: 0.993064,
       roff: 0.000834692,
       ron: 0.798884
   },
   {
       time: 15300,
       gfp: 0.99308,
       roff: 0.000833771,
       ron: 0.798887
   },
   {
       time: 15350,
       gfp: 0.993095,
       roff: 0.000832891,
       ron: 0.798889
   },
   {
       time: 15400,
       gfp: 0.99311,
       roff: 0.000832049,
       ron: 0.798891
   },
   {
       time: 15450,
       gfp: 0.993124,
       roff: 0.000831245,
       ron: 0.798894
   },
   {
       time: 15500,
       gfp: 0.993137,
       roff: 0.000830476,
       ron: 0.798896
   },
   {
       time: 15550,
       gfp: 0.99315,
       roff: 0.000829742,
       ron: 0.798898
   },
   {
       time: 15600,
       gfp: 0.993162,
       roff: 0.00082904,
       ron: 0.7989
   },
   {
       time: 15650,
       gfp: 0.993173,
       roff: 0.000828369,
       ron: 0.798902
   },
   {
       time: 15700,
       gfp: 0.993184,
       roff: 0.000827727,
       ron: 0.798903
   },
   {
       time: 15750,
       gfp: 0.993195,
       roff: 0.000827114,
       ron: 0.798905
   },
   {
       time: 15800,
       gfp: 0.993205,
       roff: 0.000826528,
       ron: 0.798907
   },
   {
       time: 15850,
       gfp: 0.993214,
       roff: 0.000825968,
       ron: 0.798908
   },
   {
       time: 15900,
       gfp: 0.993223,
       roff: 0.000825433,
       ron: 0.79891
   },
   {
       time: 15950,
       gfp: 0.993232,
       roff: 0.000824921,
       ron: 0.798911
   },
   {
       time: 16000,
       gfp: 0.993241,
       roff: 0.000824432,
       ron: 0.798913
   },
   {
       time: 16050,
       gfp: 0.993249,
       roff: 0.000823965,
       ron: 0.798914
   },
   {
       time: 16100,
       gfp: 0.993256,
       roff: 0.000823518,
       ron: 0.798915
   },
   {
       time: 16150,
       gfp: 0.993263,
       roff: 0.000823091,
       ron: 0.798916
   },
   {
       time: 16200,
       gfp: 0.99327,
       roff: 0.000822683,
       ron: 0.798917
   },
   {
       time: 16250,
       gfp: 0.993277,
       roff: 0.000822293,
       ron: 0.798918
   },
   {
       time: 16300,
       gfp: 0.993283,
       roff: 0.00082192,
       ron: 0.798919
   },
   {
       time: 16350,
       gfp: 0.993289,
       roff: 0.000821564,
       ron: 0.79892
   },
   {
       time: 16400,
       gfp: 0.993295,
       roff: 0.000821224,
       ron: 0.798921
   },
   {
       time: 16450,
       gfp: 0.993301,
       roff: 0.000820898,
       ron: 0.798922
   },
   {
       time: 16500,
       gfp: 0.993306,
       roff: 0.000820587,
       ron: 0.798923
   },
   {
       time: 16550,
       gfp: 0.993311,
       roff: 0.00082029,
       ron: 0.798924
   },
   {
       time: 16600,
       gfp: 0.993316,
       roff: 0.000820006,
       ron: 0.798925
   },
   {
       time: 16650,
       gfp: 0.993321,
       roff: 0.000819734,
       ron: 0.798926
   },
   {
       time: 16700,
       gfp: 0.993325,
       roff: 0.000819474,
       ron: 0.798926
   },
   {
       time: 16750,
       gfp: 0.993329,
       roff: 0.000819226,
       ron: 0.798927
   },
   {
       time: 16800,
       gfp: 0.993333,
       roff: 0.000818989,
       ron: 0.798928
   },
   {
       time: 16850,
       gfp: 0.993337,
       roff: 0.000818763,
       ron: 0.798928
   },
   {
       time: 16900,
       gfp: 0.993341,
       roff: 0.000818546,
       ron: 0.798929
   },
   {
       time: 16950,
       gfp: 0.993344,
       roff: 0.000818339,
       ron: 0.798929
   },
   {
       time: 17000,
       gfp: 0.993348,
       roff: 0.000818141,
       ron: 0.79893
   },
   {
       time: 17050,
       gfp: 0.993351,
       roff: 0.000817952,
       ron: 0.79893
   },
   {
       time: 17100,
       gfp: 0.993354,
       roff: 0.000817771,
       ron: 0.798931
   },
   {
       time: 17150,
       gfp: 0.993357,
       roff: 0.000817598,
       ron: 0.798931
   },
   {
       time: 17200,
       gfp: 0.99336,
       roff: 0.000817433,
       ron: 0.798932
   },
   {
       time: 17250,
       gfp: 0.993362,
       roff: 0.000817276,
       ron: 0.798932
   },
   {
       time: 17300,
       gfp: 0.993365,
       roff: 0.000817125,
       ron: 0.798933
   },
   {
       time: 17350,
       gfp: 0.993367,
       roff: 0.00081698,
       ron: 0.798933
   },
   {
       time: 17400,
       gfp: 0.99337,
       roff: 0.000816843,
       ron: 0.798933
   },
   {
       time: 17450,
       gfp: 0.993372,
       roff: 0.000816711,
       ron: 0.798934
   },
   {
       time: 17500,
       gfp: 0.993374,
       roff: 0.000816585,
       ron: 0.798934
   },
   {
       time: 17550,
       gfp: 0.993376,
       roff: 0.000816465,
       ron: 0.798934
   },
   {
       time: 17600,
       gfp: 0.993378,
       roff: 0.00081635,
       ron: 0.798935
   },
   {
       time: 17650,
       gfp: 0.99338,
       roff: 0.00081624,
       ron: 0.798935
   },
   {
       time: 17700,
       gfp: 0.993382,
       roff: 0.000816135,
       ron: 0.798935
   },
   {
       time: 17750,
       gfp: 0.993383,
       roff: 0.000816034,
       ron: 0.798936
   },
   {
       time: 17800,
       gfp: 0.993385,
       roff: 0.000815938,
       ron: 0.798936
   },
   {
       time: 17850,
       gfp: 0.993386,
       roff: 0.000815847,
       ron: 0.798936
   },
   {
       time: 17900,
       gfp: 0.993388,
       roff: 0.000815759,
       ron: 0.798936
   },
   {
       time: 17950,
       gfp: 0.993389,
       roff: 0.000815675,
       ron: 0.798937
   },
   {
       time: 18000,
       gfp: 0.993391,
       roff: 0.000815595,
       ron: 0.798937
   },
   {
       time: 18050,
       gfp: 0.993392,
       roff: 0.000815518,
       ron: 0.798937
   },
   {
       time: 18100,
       gfp: 0.993393,
       roff: 0.000815445,
       ron: 0.798937
   },
   {
       time: 18150,
       gfp: 0.993394,
       roff: 0.000815375,
       ron: 0.798937
   },
   {
       time: 18200,
       gfp: 0.993395,
       roff: 0.000815309,
       ron: 0.798938
   },
   {
       time: 18250,
       gfp: 0.993397,
       roff: 0.000815245,
       ron: 0.798938
   },
   {
       time: 18300,
       gfp: 0.993398,
       roff: 0.000815184,
       ron: 0.798938
   },
   {
       time: 18350,
       gfp: 0.993399,
       roff: 0.000815125,
       ron: 0.798938
   },
   {
       time: 18400,
       gfp: 0.9934,
       roff: 0.00081507,
       ron: 0.798938
   },
   {
       time: 18450,
       gfp: 0.9934,
       roff: 0.000815016,
       ron: 0.798938
   },
   {
       time: 18500,
       gfp: 0.993401,
       roff: 0.000814965,
       ron: 0.798939
   },
   {
       time: 18550,
       gfp: 0.993402,
       roff: 0.000814917,
       ron: 0.798939
   },
   {
       time: 18600,
       gfp: 0.993403,
       roff: 0.00081487,
       ron: 0.798939
   },
   {
       time: 18650,
       gfp: 0.993404,
       roff: 0.000814826,
       ron: 0.798939
   },
   {
       time: 18700,
       gfp: 0.993404,
       roff: 0.000814783,
       ron: 0.798939
   },
   {
       time: 18750,
       gfp: 0.993405,
       roff: 0.000814743,
       ron: 0.798939
   },
   {
       time: 18800,
       gfp: 0.993406,
       roff: 0.000814704,
       ron: 0.798939
   },
   {
       time: 18850,
       gfp: 0.993406,
       roff: 0.000814667,
       ron: 0.798939
   },
   {
       time: 18900,
       gfp: 0.993407,
       roff: 0.000814631,
       ron: 0.79894
   },
   {
       time: 18950,
       gfp: 0.993407,
       roff: 0.000814597,
       ron: 0.79894
   },
   {
       time: 19000,
       gfp: 0.993408,
       roff: 0.000814565,
       ron: 0.79894
   },
   {
       time: 19050,
       gfp: 0.993409,
       roff: 0.000814534,
       ron: 0.79894
   },
   {
       time: 19100,
       gfp: 0.993409,
       roff: 0.000814504,
       ron: 0.79894
   },
   {
       time: 19150,
       gfp: 0.99341,
       roff: 0.000814476,
       ron: 0.79894
   },
   {
       time: 19200,
       gfp: 0.99341,
       roff: 0.000814449,
       ron: 0.79894
   },
   {
       time: 19250,
       gfp: 0.99341,
       roff: 0.000814423,
       ron: 0.79894
   },
   {
       time: 19300,
       gfp: 0.993411,
       roff: 0.000814398,
       ron: 0.79894
   },
   {
       time: 19350,
       gfp: 0.993411,
       roff: 0.000814375,
       ron: 0.79894
   },
   {
       time: 19400,
       gfp: 0.993412,
       roff: 0.000814352,
       ron: 0.79894
   },
   {
       time: 19450,
       gfp: 0.993412,
       roff: 0.000814331,
       ron: 0.79894
   },
   {
       time: 19500,
       gfp: 0.993412,
       roff: 0.00081431,
       ron: 0.79894
   },
   {
       time: 19550,
       gfp: 0.993413,
       roff: 0.00081429,
       ron: 0.79894
   },
   {
       time: 19600,
       gfp: 0.993413,
       roff: 0.000814271,
       ron: 0.79894
   },
   {
       time: 19650,
       gfp: 0.993413,
       roff: 0.000814253,
       ron: 0.798941
   },
   {
       time: 19700,
       gfp: 0.993414,
       roff: 0.000814236,
       ron: 0.798941
   },
   {
       time: 19750,
       gfp: 0.993414,
       roff: 0.00081422,
       ron: 0.798941
   },
   {
       time: 19800,
       gfp: 0.993414,
       roff: 0.000814204,
       ron: 0.798941
   },
   {
       time: 19850,
       gfp: 0.993414,
       roff: 0.000814189,
       ron: 0.798941
   },
   {
       time: 19900,
       gfp: 0.993415,
       roff: 0.000814174,
       ron: 0.798941
   },
   {
       time: 19950,
       gfp: 0.993415,
       roff: 0.000814161,
       ron: 0.798941
   },
   {
       time: 20000,
       gfp: 0.993415,
       roff: 0.000814148,
       ron: 0.798941
   },
   {
       time: 20050,
       gfp: 0.993415,
       roff: 0.000814135,
       ron: 0.798941
   },
   {
       time: 20100,
       gfp: 0.993415,
       roff: 0.000814123,
       ron: 0.798941
   },
   {
       time: 20150,
       gfp: 0.993416,
       roff: 0.000814112,
       ron: 0.798941
   },
   {
       time: 20200,
       gfp: 0.993416,
       roff: 0.000814101,
       ron: 0.798941
   },
   {
       time: 20250,
       gfp: 0.993416,
       roff: 0.00081409,
       ron: 0.798941
   },
   {
       time: 20300,
       gfp: 0.993416,
       roff: 0.00081408,
       ron: 0.798941
   },
   {
       time: 20350,
       gfp: 0.993416,
       roff: 0.000814071,
       ron: 0.798941
   },
   {
       time: 20400,
       gfp: 0.993417,
       roff: 0.000814062,
       ron: 0.798941
   },
   {
       time: 20450,
       gfp: 0.993417,
       roff: 0.000814053,
       ron: 0.798941
   },
   {
       time: 20500,
       gfp: 0.993417,
       roff: 0.000814044,
       ron: 0.798941
   },
   {
       time: 20550,
       gfp: 0.993417,
       roff: 0.000814037,
       ron: 0.798941
   },
   {
       time: 20600,
       gfp: 0.993417,
       roff: 0.000814029,
       ron: 0.798941
   },
   {
       time: 20650,
       gfp: 0.993417,
       roff: 0.000814022,
       ron: 0.798941
   },
   {
       time: 20700,
       gfp: 0.993417,
       roff: 0.000814015,
       ron: 0.798941
   },
   {
       time: 20750,
       gfp: 0.993417,
       roff: 0.000814008,
       ron: 0.798941
   },
   {
       time: 20800,
       gfp: 0.993418,
       roff: 0.000814002,
       ron: 0.798941
   },
   {
       time: 20850,
       gfp: 0.993418,
       roff: 0.000813996,
       ron: 0.798941
   },
   {
       time: 20900,
       gfp: 0.993418,
       roff: 0.00081399,
       ron: 0.798941
   },
   {
       time: 20950,
       gfp: 0.993418,
       roff: 0.000813984,
       ron: 0.798941
   },
   {
       time: 21000,
       gfp: 0.993418,
       roff: 0.000813979,
       ron: 0.798941
   },
   {
       time: 21050,
       gfp: 0.993418,
       roff: 0.000813974,
       ron: 0.798941
   },
   {
       time: 21100,
       gfp: 0.993418,
       roff: 0.000813969,
       ron: 0.798941
   },
   {
       time: 21150,
       gfp: 0.993418,
       roff: 0.000813964,
       ron: 0.798941
   },
   {
       time: 21200,
       gfp: 0.993418,
       roff: 0.00081396,
       ron: 0.798941
   },
   {
       time: 21250,
       gfp: 0.993418,
       roff: 0.000813956,
       ron: 0.798941
   },
   {
       time: 21300,
       gfp: 0.993418,
       roff: 0.000813952,
       ron: 0.798941
   },
   {
       time: 21350,
       gfp: 0.993418,
       roff: 0.000813948,
       ron: 0.798941
   },
   {
       time: 21400,
       gfp: 0.993418,
       roff: 0.000813944,
       ron: 0.798941
   },
   {
       time: 21450,
       gfp: 0.993419,
       roff: 0.00081394,
       ron: 0.798941
   },
   {
       time: 21500,
       gfp: 0.993419,
       roff: 0.000813937,
       ron: 0.798941
   },
   {
       time: 21550,
       gfp: 0.993419,
       roff: 0.000813934,
       ron: 0.798941
   },
   {
       time: 21600,
       gfp: 0.993419,
       roff: 0.000813931,
       ron: 0.798941
   },
   {
       time: 21650,
       gfp: 0.993419,
       roff: 0.000813928,
       ron: 0.798941
   },
   {
       time: 21700,
       gfp: 0.993419,
       roff: 0.000813925,
       ron: 0.798941
   },
   {
       time: 21750,
       gfp: 0.993419,
       roff: 0.000813922,
       ron: 0.798941
   },
   {
       time: 21800,
       gfp: 0.993419,
       roff: 0.00081392,
       ron: 0.798941
   },
   {
       time: 21850,
       gfp: 0.993419,
       roff: 0.000813917,
       ron: 0.798941
   },
   {
       time: 21900,
       gfp: 0.993419,
       roff: 0.000813915,
       ron: 0.798941
   },
   {
       time: 21950,
       gfp: 0.993419,
       roff: 0.000813913,
       ron: 0.798941
   },
   {
       time: 22000,
       gfp: 0.993419,
       roff: 0.00081391,
       ron: 0.798941
   },
   {
       time: 22050,
       gfp: 0.993419,
       roff: 0.000813908,
       ron: 0.798941
   },
   {
       time: 22100,
       gfp: 0.993419,
       roff: 0.000813906,
       ron: 0.798941
   },
   {
       time: 22150,
       gfp: 0.993419,
       roff: 0.000813904,
       ron: 0.798941
   },
   {
       time: 22200,
       gfp: 0.993419,
       roff: 0.000813903,
       ron: 0.798941
   },
   {
       time: 22250,
       gfp: 0.993419,
       roff: 0.000813901,
       ron: 0.798942
   },
   {
       time: 22300,
       gfp: 0.993419,
       roff: 0.000813899,
       ron: 0.798942
   },
   {
       time: 22350,
       gfp: 0.993419,
       roff: 0.000813898,
       ron: 0.798942
   },
   {
       time: 22400,
       gfp: 0.993419,
       roff: 0.000813896,
       ron: 0.798942
   },
   {
       time: 22450,
       gfp: 0.993419,
       roff: 0.000813895,
       ron: 0.798942
   },
   {
       time: 22500,
       gfp: 0.993419,
       roff: 0.000813893,
       ron: 0.798942
   },
   {
       time: 22550,
       gfp: 0.993419,
       roff: 0.000813892,
       ron: 0.798942
   },
   {
       time: 22600,
       gfp: 0.993419,
       roff: 0.000813891,
       ron: 0.798942
   },
   {
       time: 22650,
       gfp: 0.993419,
       roff: 0.00081389,
       ron: 0.798942
   },
   {
       time: 22700,
       gfp: 0.993419,
       roff: 0.000813889,
       ron: 0.798942
   },
   {
       time: 22750,
       gfp: 0.993419,
       roff: 0.000813887,
       ron: 0.798942
   },
   {
       time: 22800,
       gfp: 0.993419,
       roff: 0.000813886,
       ron: 0.798942
   },
   {
       time: 22850,
       gfp: 0.993419,
       roff: 0.000813885,
       ron: 0.798942
   },
   {
       time: 22900,
       gfp: 0.993419,
       roff: 0.000813884,
       ron: 0.798942
   },
   {
       time: 22950,
       gfp: 0.99342,
       roff: 0.000813884,
       ron: 0.798942
   },
   {
       time: 23000,
       gfp: 0.99342,
       roff: 0.000813883,
       ron: 0.798942
   },
   {
       time: 23050,
       gfp: 0.99342,
       roff: 0.000813882,
       ron: 0.798942
   },
   {
       time: 23100,
       gfp: 0.99342,
       roff: 0.000813881,
       ron: 0.798942
   },
   {
       time: 23150,
       gfp: 0.99342,
       roff: 0.00081388,
       ron: 0.798942
   },
   {
       time: 23200,
       gfp: 0.99342,
       roff: 0.00081388,
       ron: 0.798942
   },
   {
       time: 23250,
       gfp: 0.99342,
       roff: 0.000813879,
       ron: 0.798942
   },
   {
       time: 23300,
       gfp: 0.99342,
       roff: 0.000813878,
       ron: 0.798942
   },
   {
       time: 23350,
       gfp: 0.99342,
       roff: 0.000813878,
       ron: 0.798942
   },
   {
       time: 23400,
       gfp: 0.99342,
       roff: 0.000813877,
       ron: 0.798942
   },
   {
       time: 23450,
       gfp: 0.99342,
       roff: 0.000813876,
       ron: 0.798942
   },
   {
       time: 23500,
       gfp: 0.99342,
       roff: 0.000813876,
       ron: 0.798942
   },
   {
       time: 23550,
       gfp: 0.99342,
       roff: 0.000813875,
       ron: 0.798942
   },
   {
       time: 23600,
       gfp: 0.99342,
       roff: 0.000813875,
       ron: 0.798942
   },
   {
       time: 23650,
       gfp: 0.99342,
       roff: 0.000813874,
       ron: 0.798942
   },
   {
       time: 23700,
       gfp: 0.99342,
       roff: 0.000813874,
       ron: 0.798942
   },
   {
       time: 23750,
       gfp: 0.99342,
       roff: 0.000813873,
       ron: 0.798942
   },
   {
       time: 23800,
       gfp: 0.99342,
       roff: 0.000813873,
       ron: 0.798942
   },
   {
       time: 23850,
       gfp: 0.99342,
       roff: 0.000813873,
       ron: 0.798942
   },
   {
       time: 23900,
       gfp: 0.99342,
       roff: 0.000813872,
       ron: 0.798942
   },
   {
       time: 23950,
       gfp: 0.99342,
       roff: 0.000813872,
       ron: 0.798942
   },
   {
       time: 24000,
       gfp: 0.99342,
       roff: 0.000813872,
       ron: 0.798942
   },
   {
       time: 24050,
       gfp: 0.99342,
       roff: 0.000813871,
       ron: 0.798942
   },
   {
       time: 24100,
       gfp: 0.99342,
       roff: 0.000813871,
       ron: 0.798942
   },
   {
       time: 24150,
       gfp: 0.99342,
       roff: 0.000813871,
       ron: 0.798942
   },
   {
       time: 24200,
       gfp: 0.99342,
       roff: 0.00081387,
       ron: 0.798942
   },
   {
       time: 24250,
       gfp: 0.99342,
       roff: 0.00081387,
       ron: 0.798942
   },
   {
       time: 24300,
       gfp: 0.99342,
       roff: 0.00081387,
       ron: 0.798942
   },
   {
       time: 24350,
       gfp: 0.99342,
       roff: 0.000813869,
       ron: 0.798942
   },
   {
       time: 24400,
       gfp: 0.99342,
       roff: 0.000813869,
       ron: 0.798942
   },
   {
       time: 24450,
       gfp: 0.99342,
       roff: 0.000813869,
       ron: 0.798942
   },
   {
       time: 24500,
       gfp: 0.99342,
       roff: 0.000813869,
       ron: 0.798942
   },
   {
       time: 24550,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24600,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24650,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24700,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24750,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24800,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24850,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 24900,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 24950,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 25000,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 25050,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 25100,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 25150,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25200,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25250,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25300,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25350,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25400,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25450,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25500,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25550,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25600,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25650,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25700,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25750,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25800,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25850,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25900,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25950,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26000,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26050,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26100,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26150,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26200,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26250,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26300,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26350,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26400,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26450,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26500,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26550,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26600,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26650,
       gfp: 0.99342,
       roff: 0.000813864,
       ron: 0.798942
   }

]; let modelOnData = [

   {
       time: 0,
       gfp: 0.99342,
       roff: 0.000813884,
       ron: 0.798942
   }

]; let modelOnOffData = [

   {
       time: 0,
       gfp: 0.400329,
       roff: 0.460298,
       ron: 0.681631
   },
   {
       time: 50,
       gfp: 0.147499,
       roff: 0.558638,
       ron: 0.601859
   },
   {
       time: 100,
       gfp: 0.0544694,
       roff: 0.539113,
       ron: 0.542517
   },
   {
       time: 150,
       gfp: 0.0202746,
       roff: 0.498525,
       ron: 0.494678
   },
   {
       time: 200,
       gfp: 0.00773694,
       roff: 0.459142,
       ron: 0.454481
   },
   {
       time: 250,
       gfp: 0.00317335,
       roff: 0.424206,
       ron: 0.419853
   },
   {
       time: 300,
       gfp: 0.0015489,
       roff: 0.393442,
       ron: 0.389514
   },
   {
       time: 350,
       gfp: 0.00101154,
       roff: 0.366154,
       ron: 0.362602
   },
   {
       time: 400,
       gfp: 0.000880431,
       roff: 0.341744,
       ron: 0.338502
   },
   {
       time: 450,
       gfp: 0.000905717,
       roff: 0.319748,
       ron: 0.316759
   },
   {
       time: 500,
       gfp: 0.000996144,
       roff: 0.299804,
       ron: 0.297022
   },
   {
       time: 550,
       gfp: 0.00111885,
       roff: 0.281633,
       ron: 0.279018
   },
   {
       time: 600,
       gfp: 0.00126247,
       roff: 0.265009,
       ron: 0.262529
   },
   {
       time: 650,
       gfp: 0.0014236,
       roff: 0.249748,
       ron: 0.247374
   },
   {
       time: 700,
       gfp: 0.00160176,
       roff: 0.235701,
       ron: 0.233407
   },
   {
       time: 750,
       gfp: 0.00179759,
       roff: 0.222742,
       ron: 0.220504
   },
   {
       time: 800,
       gfp: 0.0020121,
       roff: 0.210764,
       ron: 0.20856
   },
   {
       time: 850,
       gfp: 0.00224646,
       roff: 0.199679,
       ron: 0.197488
   },
   {
       time: 900,
       gfp: 0.00250184,
       roff: 0.189409,
       ron: 0.18721
   },
   {
       time: 950,
       gfp: 0.00277934,
       roff: 0.179889,
       ron: 0.17766
   },
   {
       time: 1000,
       gfp: 0.00307994,
       roff: 0.17106,
       ron: 0.168781
   },
   {
       time: 1050,
       gfp: 0.00340444,
       roff: 0.162872,
       ron: 0.160522
   },
   {
       time: 1100,
       gfp: 0.00375337,
       roff: 0.155283,
       ron: 0.152839
   },
   {
       time: 1150,
       gfp: 0.00412695,
       roff: 0.148252,
       ron: 0.145693
   },
   {
       time: 1200,
       gfp: 0.00452498,
       roff: 0.141747,
       ron: 0.139047
   },
   {
       time: 1250,
       gfp: 0.00494676,
       roff: 0.135737,
       ron: 0.132871
   },
   {
       time: 1300,
       gfp: 0.00539103,
       roff: 0.130194,
       ron: 0.127135
   },
   {
       time: 1350,
       gfp: 0.00585587,
       roff: 0.125093,
       ron: 0.121813
   },
   {
       time: 1400,
       gfp: 0.00633866,
       roff: 0.120414,
       ron: 0.116881
   },
   {
       time: 1450,
       gfp: 0.00683605,
       roff: 0.116133,
       ron: 0.112316
   },
   {
       time: 1500,
       gfp: 0.00734397,
       roff: 0.112233,
       ron: 0.108095
   },
   {
       time: 1550,
       gfp: 0.00785765,
       roff: 0.108695,
       ron: 0.104199
   },
   {
       time: 1600,
       gfp: 0.00837174,
       roff: 0.105501,
       ron: 0.100606
   },
   {
       time: 1650,
       gfp: 0.0088804,
       roff: 0.102634,
       ron: 0.0972984
   },
   {
       time: 1700,
       gfp: 0.00937754,
       roff: 0.100078,
       ron: 0.0942554
   },
   {
       time: 1750,
       gfp: 0.009857,
       roff: 0.0978164,
       ron: 0.0914584
   },
   {
       time: 1800,
       gfp: 0.0103127,
       roff: 0.0958334,
       ron: 0.0888883
   },
   {
       time: 1850,
       gfp: 0.0107391,
       roff: 0.0941135,
       ron: 0.0865267
   },
   {
       time: 1900,
       gfp: 0.011131,
       roff: 0.0926413,
       ron: 0.0843553
   },
   {
       time: 1950,
       gfp: 0.0114841,
       roff: 0.0914018,
       ron: 0.0823563
   },
   {
       time: 2000,
       gfp: 0.0117951,
       roff: 0.0903809,
       ron: 0.0805124
   },
   {
       time: 2050,
       gfp: 0.0120613,
       roff: 0.0895646,
       ron: 0.0788069
   },
   {
       time: 2100,
       gfp: 0.0122813,
       roff: 0.0889402,
       ron: 0.0772242
   },
   {
       time: 2150,
       gfp: 0.0124544,
       roff: 0.0884953,
       ron: 0.0757492
   },
   {
       time: 2200,
       gfp: 0.0125807,
       roff: 0.0882189,
       ron: 0.0743678
   },
   {
       time: 2250,
       gfp: 0.0126612,
       roff: 0.0881005,
       ron: 0.073067
   },
   {
       time: 2300,
       gfp: 0.0126975,
       roff: 0.0881312,
       ron: 0.0718349
   },
   {
       time: 2350,
       gfp: 0.0126915,
       roff: 0.0883027,
       ron: 0.0706604
   },
   {
       time: 2400,
       gfp: 0.0126456,
       roff: 0.0886082,
       ron: 0.0695338
   },
   {
       time: 2450,
       gfp: 0.0125623,
       roff: 0.0890417,
       ron: 0.068446
   },
   {
       time: 2500,
       gfp: 0.0124443,
       roff: 0.0895985,
       ron: 0.0673892
   },
   {
       time: 2550,
       gfp: 0.0122945,
       roff: 0.0902748,
       ron: 0.0663562
   },
   {
       time: 2600,
       gfp: 0.0121155,
       roff: 0.0910681,
       ron: 0.0653409
   },
   {
       time: 2650,
       gfp: 0.0119101,
       roff: 0.0919768,
       ron: 0.0643378
   },
   {
       time: 2700,
       gfp: 0.0116807,
       roff: 0.0930003,
       ron: 0.0633424
   },
   {
       time: 2750,
       gfp: 0.01143,
       roff: 0.0941388,
       ron: 0.0623504
   },
   {
       time: 2800,
       gfp: 0.0111601,
       roff: 0.0953937,
       ron: 0.0613586
   },
   {
       time: 2850,
       gfp: 0.0108733,
       roff: 0.0967673,
       ron: 0.0603641
   },
   {
       time: 2900,
       gfp: 0.0105718,
       roff: 0.0982626,
       ron: 0.0593643
   },
   {
       time: 2950,
       gfp: 0.0102573,
       roff: 0.0998839,
       ron: 0.0583575
   },
   {
       time: 3000,
       gfp: 0.00993184,
       roff: 0.101636,
       ron: 0.0573421
   },
   {
       time: 3050,
       gfp: 0.00959707,
       roff: 0.103525,
       ron: 0.056317
   },
   {
       time: 3100,
       gfp: 0.00925467,
       roff: 0.105557,
       ron: 0.0552813
   },
   {
       time: 3150,
       gfp: 0.00890621,
       roff: 0.107742,
       ron: 0.0542345
   },
   {
       time: 3200,
       gfp: 0.00855318,
       roff: 0.110086,
       ron: 0.0531763
   },
   {
       time: 3250,
       gfp: 0.00819703,
       roff: 0.1126,
       ron: 0.0521069
   },
   {
       time: 3300,
       gfp: 0.00783913,
       roff: 0.115296,
       ron: 0.0510265
   },
   {
       time: 3350,
       gfp: 0.00748084,
       roff: 0.118185,
       ron: 0.0499355
   },
   {
       time: 3400,
       gfp: 0.00712343,
       roff: 0.12128,
       ron: 0.0488347
   },
   {
       time: 3450,
       gfp: 0.00676815,
       roff: 0.124596,
       ron: 0.0477249
   },
   {
       time: 3500,
       gfp: 0.0064162,
       roff: 0.128149,
       ron: 0.046607
   },
   {
       time: 3550,
       gfp: 0.00606875,
       roff: 0.131955,
       ron: 0.0454824
   },
   {
       time: 3600,
       gfp: 0.00572688,
       roff: 0.136033,
       ron: 0.0443522
   },
   {
       time: 3650,
       gfp: 0.00539166,
       roff: 0.140404,
       ron: 0.0432179
   },
   {
       time: 3700,
       gfp: 0.00506407,
       roff: 0.145088,
       ron: 0.042081
   },
   {
       time: 3750,
       gfp: 0.00474505,
       roff: 0.150109,
       ron: 0.0409432
   },
   {
       time: 3800,
       gfp: 0.00443546,
       roff: 0.15549,
       ron: 0.0398061
   },
   {
       time: 3850,
       gfp: 0.00413609,
       roff: 0.161259,
       ron: 0.0386713
   },
   {
       time: 3900,
       gfp: 0.00384763,
       roff: 0.167444,
       ron: 0.0375408
   },
   {
       time: 3950,
       gfp: 0.0035707,
       roff: 0.174072,
       ron: 0.0364163
   },
   {
       time: 4000,
       gfp: 0.0033058,
       roff: 0.181176,
       ron: 0.0352995
   },
   {
       time: 4050,
       gfp: 0.00305337,
       roff: 0.188787,
       ron: 0.0341922
   },
   {
       time: 4100,
       gfp: 0.00281371,
       roff: 0.196938,
       ron: 0.0330962
   },
   {
       time: 4150,
       gfp: 0.00258704,
       roff: 0.205664,
       ron: 0.0320132
   },
   {
       time: 4200,
       gfp: 0.00237346,
       roff: 0.214998,
       ron: 0.0309446
   },
   {
       time: 4250,
       gfp: 0.002173,
       roff: 0.224977,
       ron: 0.0298922
   },
   {
       time: 4300,
       gfp: 0.00198555,
       roff: 0.235632,
       ron: 0.0288573
   },
   {
       time: 4350,
       gfp: 0.00181094,
       roff: 0.246999,
       ron: 0.0278413
   },
   {
       time: 4400,
       gfp: 0.00164889,
       roff: 0.259108,
       ron: 0.0268454
   },
   {
       time: 4450,
       gfp: 0.00149907,
       roff: 0.271987,
       ron: 0.0258707
   },
   {
       time: 4500,
       gfp: 0.00136106,
       roff: 0.285661,
       ron: 0.0249182
   },
   {
       time: 4550,
       gfp: 0.00123438,
       roff: 0.300147,
       ron: 0.0239888
   },
   {
       time: 4600,
       gfp: 0.00111853,
       roff: 0.315458,
       ron: 0.0230831
   },
   {
       time: 4650,
       gfp: 0.00101293,
       roff: 0.331597,
       ron: 0.0222018
   },
   {
       time: 4700,
       gfp: 0.000917001,
       roff: 0.348557,
       ron: 0.0213454
   },
   {
       time: 4750,
       gfp: 0.000830149,
       roff: 0.366317,
       ron: 0.0205141
   },
   {
       time: 4800,
       gfp: 0.000751762,
       roff: 0.384843,
       ron: 0.0197082
   },
   {
       time: 4850,
       gfp: 0.000681236,
       roff: 0.404084,
       ron: 0.0189278
   },
   {
       time: 4900,
       gfp: 0.000617972,
       roff: 0.423969,
       ron: 0.018173
   },
   {
       time: 4950,
       gfp: 0.000561393,
       roff: 0.444408,
       ron: 0.0174436
   },
   {
       time: 5000,
       gfp: 0.000510941,
       roff: 0.465289,
       ron: 0.0167394
   },
   {
       time: 5050,
       gfp: 0.000466084,
       roff: 0.486478,
       ron: 0.0160603
   },
   {
       time: 5100,
       gfp: 0.000426318,
       roff: 0.50782,
       ron: 0.0154058
   },
   {
       time: 5150,
       gfp: 0.000391168,
       roff: 0.529144,
       ron: 0.0147756
   },
   {
       time: 5200,
       gfp: 0.000360193,
       roff: 0.550261,
       ron: 0.0141692
   },
   {
       time: 5250,
       gfp: 0.000332982,
       roff: 0.570978,
       ron: 0.0135862
   },
   {
       time: 5300,
       gfp: 0.000309152,
       roff: 0.591101,
       ron: 0.013026
   },
   {
       time: 5350,
       gfp: 0.000288349,
       roff: 0.610446,
       ron: 0.012488
   },
   {
       time: 5400,
       gfp: 0.000270246,
       roff: 0.628851,
       ron: 0.0119718
   },
   {
       time: 5450,
       gfp: 0.000254538,
       roff: 0.646185,
       ron: 0.0114766
   },
   {
       time: 5500,
       gfp: 0.000240943,
       roff: 0.662357,
       ron: 0.0110018
   },
   {
       time: 5550,
       gfp: 0.000229201,
       roff: 0.677317,
       ron: 0.0105467
   },
   {
       time: 5600,
       gfp: 0.000219072,
       roff: 0.691056,
       ron: 0.0101108
   },
   {
       time: 5650,
       gfp: 0.000210337,
       roff: 0.703605,
       ron: 0.00969327
   },
   {
       time: 5700,
       gfp: 0.000202798,
       roff: 0.715024,
       ron: 0.00929353
   },
   {
       time: 5750,
       gfp: 0.000196278,
       roff: 0.725395,
       ron: 0.00891089
   },
   {
       time: 5800,
       gfp: 0.000190623,
       roff: 0.734806,
       ron: 0.00854469
   },
   {
       time: 5850,
       gfp: 0.000185698,
       roff: 0.743351,
       ron: 0.00819429
   },
   {
       time: 5900,
       gfp: 0.00018139,
       roff: 0.751118,
       ron: 0.00785904
   },
   {
       time: 5950,
       gfp: 0.000177604,
       roff: 0.758191,
       ron: 0.00753833
   },
   {
       time: 6000,
       gfp: 0.000174261,
       roff: 0.764642,
       ron: 0.00723156
   },
   {
       time: 6050,
       gfp: 0.000171295,
       roff: 0.770535,
       ron: 0.00693816
   },
   {
       time: 6100,
       gfp: 0.000168653,
       roff: 0.775927,
       ron: 0.00665754
   },
   {
       time: 6150,
       gfp: 0.00016629,
       roff: 0.780866,
       ron: 0.00638919
   },
   {
       time: 6200,
       gfp: 0.00016417,
       roff: 0.785394,
       ron: 0.00613256
   },
   {
       time: 6250,
       gfp: 0.000162263,
       roff: 0.78955,
       ron: 0.00588717
   },
   {
       time: 6300,
       gfp: 0.000160542,
       roff: 0.793365,
       ron: 0.00565253
   },
   {
       time: 6350,
       gfp: 0.000158987,
       roff: 0.796869,
       ron: 0.00542818
   },
   {
       time: 6400,
       gfp: 0.000157579,
       roff: 0.800089,
       ron: 0.00521368
   },
   {
       time: 6450,
       gfp: 0.000156302,
       roff: 0.803049,
       ron: 0.00500859
   },
   {
       time: 6500,
       gfp: 0.000155142,
       roff: 0.805771,
       ron: 0.00481251
   },
   {
       time: 6550,
       gfp: 0.000154087,
       roff: 0.808273,
       ron: 0.00462505
   },
   {
       time: 6600,
       gfp: 0.000153126,
       roff: 0.810575,
       ron: 0.00444584
   },
   {
       time: 6650,
       gfp: 0.000152251,
       roff: 0.812693,
       ron: 0.00427451
   },
   {
       time: 6700,
       gfp: 0.000151452,
       roff: 0.814641,
       ron: 0.00411073
   },
   {
       time: 6750,
       gfp: 0.000150723,
       roff: 0.816434,
       ron: 0.00395416
   },
   {
       time: 6800,
       gfp: 0.000150056,
       roff: 0.818085,
       ron: 0.00380449
   },
   {
       time: 6850,
       gfp: 0.000149447,
       roff: 0.819604,
       ron: 0.00366141
   },
   {
       time: 6900,
       gfp: 0.000148889,
       roff: 0.821003,
       ron: 0.00352464
   },
   {
       time: 6950,
       gfp: 0.000148378,
       roff: 0.822292,
       ron: 0.0033939
   },
   {
       time: 7000,
       gfp: 0.00014791,
       roff: 0.823479,
       ron: 0.00326893
   },
   {
       time: 7050,
       gfp: 0.000147481,
       roff: 0.824572,
       ron: 0.00314947
   },
   {
       time: 7100,
       gfp: 0.000147087,
       roff: 0.82558,
       ron: 0.00303529
   },
   {
       time: 7150,
       gfp: 0.000146725,
       roff: 0.826509,
       ron: 0.00292615
   },
   {
       time: 7200,
       gfp: 0.000146393,
       roff: 0.827365,
       ron: 0.00282182
   },
   {
       time: 7250,
       gfp: 0.000146088,
       roff: 0.828155,
       ron: 0.00272211
   },
   {
       time: 7300,
       gfp: 0.000145808,
       roff: 0.828884,
       ron: 0.00262679
   },
   {
       time: 7350,
       gfp: 0.00014555,
       roff: 0.829556,
       ron: 0.00253569
   },
   {
       time: 7400,
       gfp: 0.000145312,
       roff: 0.830177,
       ron: 0.00244862
   },
   {
       time: 7450,
       gfp: 0.000145093,
       roff: 0.83075,
       ron: 0.00236539
   },
   {
       time: 7500,
       gfp: 0.000144892,
       roff: 0.831279,
       ron: 0.00228584
   },
   {
       time: 7550,
       gfp: 0.000144706,
       roff: 0.831769,
       ron: 0.00220981
   },
   {
       time: 7600,
       gfp: 0.000144535,
       roff: 0.832221,
       ron: 0.00213714
   },
   {
       time: 7650,
       gfp: 0.000144377,
       roff: 0.832638,
       ron: 0.00206769
   },
   {
       time: 7700,
       gfp: 0.000144231,
       roff: 0.833025,
       ron: 0.0020013
   },
   {
       time: 7750,
       gfp: 0.000144096,
       roff: 0.833383,
       ron: 0.00193786
   },
   {
       time: 7800,
       gfp: 0.000143972,
       roff: 0.833714,
       ron: 0.00187721
   },
   {
       time: 7850,
       gfp: 0.000143857,
       roff: 0.83402,
       ron: 0.00181926
   },
   {
       time: 7900,
       gfp: 0.000143751,
       roff: 0.834304,
       ron: 0.00176386
   },
   {
       time: 7950,
       gfp: 0.000143652,
       roff: 0.834567,
       ron: 0.00171092
   },
   {
       time: 8000,
       gfp: 0.000143561,
       roff: 0.834811,
       ron: 0.00166032
   },
   {
       time: 8050,
       gfp: 0.000143477,
       roff: 0.835037,
       ron: 0.00161196
   },
   {
       time: 8100,
       gfp: 0.000143398,
       roff: 0.835247,
       ron: 0.00156574
   },
   {
       time: 8150,
       gfp: 0.000143326,
       roff: 0.835442,
       ron: 0.00152157
   },
   {
       time: 8200,
       gfp: 0.000143259,
       roff: 0.835623,
       ron: 0.00147935
   },
   {
       time: 8250,
       gfp: 0.000143196,
       roff: 0.835791,
       ron: 0.00143901
   },
   {
       time: 8300,
       gfp: 0.000143138,
       roff: 0.835948,
       ron: 0.00140045
   },
   {
       time: 8350,
       gfp: 0.000143084,
       roff: 0.836093,
       ron: 0.00136359
   },
   {
       time: 8400,
       gfp: 0.000143034,
       roff: 0.836228,
       ron: 0.00132837
   },
   {
       time: 8450,
       gfp: 0.000142988,
       roff: 0.836354,
       ron: 0.00129471
   },
   {
       time: 8500,
       gfp: 0.000142944,
       roff: 0.836472,
       ron: 0.00126254
   },
   {
       time: 8550,
       gfp: 0.000142904,
       roff: 0.836581,
       ron: 0.00123179
   },
   {
       time: 8600,
       gfp: 0.000142866,
       roff: 0.836683,
       ron: 0.00120241
   },
   {
       time: 8650,
       gfp: 0.000142831,
       roff: 0.836778,
       ron: 0.00117433
   },
   {
       time: 8700,
       gfp: 0.000142799,
       roff: 0.836867,
       ron: 0.00114749
   },
   {
       time: 8750,
       gfp: 0.000142768,
       roff: 0.83695,
       ron: 0.00112184
   },
   {
       time: 8800,
       gfp: 0.00014274,
       roff: 0.837027,
       ron: 0.00109733
   },
   {
       time: 8850,
       gfp: 0.000142713,
       roff: 0.837099,
       ron: 0.0010739
   },
   {
       time: 8900,
       gfp: 0.000142689,
       roff: 0.837167,
       ron: 0.00105151
   },
   {
       time: 8950,
       gfp: 0.000142665,
       roff: 0.83723,
       ron: 0.00103011
   },
   {
       time: 9000,
       gfp: 0.000142644,
       roff: 0.83729,
       ron: 0.00100967
   },
   {
       time: 9050,
       gfp: 0.000142623,
       roff: 0.837345,
       ron: 0.000990123
   },
   {
       time: 9100,
       gfp: 0.000142604,
       roff: 0.837397,
       ron: 0.000971447
   },
   {
       time: 9150,
       gfp: 0.000142587,
       roff: 0.837446,
       ron: 0.000953598
   },
   {
       time: 9200,
       gfp: 0.00014257,
       roff: 0.837492,
       ron: 0.00093654
   },
   {
       time: 9250,
       gfp: 0.000142554,
       roff: 0.837535,
       ron: 0.000920238
   },
   {
       time: 9300,
       gfp: 0.00014254,
       roff: 0.837575,
       ron: 0.000904659
   },
   {
       time: 9350,
       gfp: 0.000142526,
       roff: 0.837613,
       ron: 0.00088977
   },
   {
       time: 9400,
       gfp: 0.000142513,
       roff: 0.837648,
       ron: 0.000875541
   },
   {
       time: 9450,
       gfp: 0.000142501,
       roff: 0.837682,
       ron: 0.000861942
   },
   {
       time: 9500,
       gfp: 0.000142489,
       roff: 0.837713,
       ron: 0.000848947
   },
   {
       time: 9550,
       gfp: 0.000142479,
       roff: 0.837743,
       ron: 0.000836527
   },
   {
       time: 9600,
       gfp: 0.000142468,
       roff: 0.837771,
       ron: 0.000824658
   },
   {
       time: 9650,
       gfp: 0.000142459,
       roff: 0.837797,
       ron: 0.000813315
   },
   {
       time: 9700,
       gfp: 0.00014245,
       roff: 0.837822,
       ron: 0.000802475
   },
   {
       time: 9750,
       gfp: 0.000142442,
       roff: 0.837845,
       ron: 0.000792116
   },
   {
       time: 9800,
       gfp: 0.000142434,
       roff: 0.837867,
       ron: 0.000782215
   },
   {
       time: 9850,
       gfp: 0.000142426,
       roff: 0.837888,
       ron: 0.000772754
   },
   {
       time: 9900,
       gfp: 0.000142419,
       roff: 0.837907,
       ron: 0.000763712
   },
   {
       time: 9950,
       gfp: 0.000142412,
       roff: 0.837926,
       ron: 0.000755071
   },
   {
       time: 10000,
       gfp: 0.000142406,
       roff: 0.837943,
       ron: 0.000746813
   },
   {
       time: 10050,
       gfp: 0.0001424,
       roff: 0.83796,
       ron: 0.000738921
   },
   {
       time: 10100,
       gfp: 0.000142394,
       roff: 0.837976,
       ron: 0.000731379
   },
   {
       time: 10150,
       gfp: 0.000142389,
       roff: 0.83799,
       ron: 0.000724171
   },
   {
       time: 10200,
       gfp: 0.000142384,
       roff: 0.838004,
       ron: 0.000717283
   },
   {
       time: 10250,
       gfp: 0.000142379,
       roff: 0.838018,
       ron: 0.0007107
   },
   {
       time: 10300,
       gfp: 0.000142375,
       roff: 0.83803,
       ron: 0.00070441
   },
   {
       time: 10350,
       gfp: 0.00014237,
       roff: 0.838042,
       ron: 0.000698398
   },
   {
       time: 10400,
       gfp: 0.000142366,
       roff: 0.838053,
       ron: 0.000692652
   },
   {
       time: 10450,
       gfp: 0.000142363,
       roff: 0.838064,
       ron: 0.000687162
   },
   {
       time: 10500,
       gfp: 0.000142359,
       roff: 0.838074,
       ron: 0.000681914
   },
   {
       time: 10550,
       gfp: 0.000142355,
       roff: 0.838084,
       ron: 0.0006769
   },
   {
       time: 10600,
       gfp: 0.000142352,
       roff: 0.838093,
       ron: 0.000672108
   },
   {
       time: 10650,
       gfp: 0.000142349,
       roff: 0.838101,
       ron: 0.000667528
   },
   {
       time: 10700,
       gfp: 0.000142346,
       roff: 0.838109,
       ron: 0.000663151
   },
   {
       time: 10750,
       gfp: 0.000142343,
       roff: 0.838117,
       ron: 0.000658969
   },
   {
       time: 10800,
       gfp: 0.000142341,
       roff: 0.838125,
       ron: 0.000654971
   },
   {
       time: 10850,
       gfp: 0.000142338,
       roff: 0.838132,
       ron: 0.000651152
   },
   {
       time: 10900,
       gfp: 0.000142336,
       roff: 0.838138,
       ron: 0.000647501
   },
   {
       time: 10950,
       gfp: 0.000142334,
       roff: 0.838145,
       ron: 0.000644012
   },
   {
       time: 11000,
       gfp: 0.000142331,
       roff: 0.838151,
       ron: 0.000640678
   },
   {
       time: 11050,
       gfp: 0.000142329,
       roff: 0.838156,
       ron: 0.000637492
   },
   {
       time: 11100,
       gfp: 0.000142327,
       roff: 0.838162,
       ron: 0.000634447
   },
   {
       time: 11150,
       gfp: 0.000142326,
       roff: 0.838167,
       ron: 0.000631538
   },
   {
       time: 11200,
       gfp: 0.000142324,
       roff: 0.838172,
       ron: 0.000628757
   },
   {
       time: 11250,
       gfp: 0.000142322,
       roff: 0.838176,
       ron: 0.000626099
   },
   {
       time: 11300,
       gfp: 0.000142321,
       roff: 0.838181,
       ron: 0.00062356
   },
   {
       time: 11350,
       gfp: 0.000142319,
       roff: 0.838185,
       ron: 0.000621133
   },
   {
       time: 11400,
       gfp: 0.000142318,
       roff: 0.838189,
       ron: 0.000618813
   },
   {
       time: 11450,
       gfp: 0.000142316,
       roff: 0.838193,
       ron: 0.000616597
   },
   {
       time: 11500,
       gfp: 0.000142315,
       roff: 0.838197,
       ron: 0.000614478
   },
   {
       time: 11550,
       gfp: 0.000142314,
       roff: 0.8382,
       ron: 0.000612454
   },
   {
       time: 11600,
       gfp: 0.000142312,
       roff: 0.838203,
       ron: 0.000610519
   },
   {
       time: 11650,
       gfp: 0.000142311,
       roff: 0.838207,
       ron: 0.000608671
   },
   {
       time: 11700,
       gfp: 0.00014231,
       roff: 0.83821,
       ron: 0.000606904
   },
   {
       time: 11750,
       gfp: 0.000142309,
       roff: 0.838212,
       ron: 0.000605215
   },
   {
       time: 11800,
       gfp: 0.000142308,
       roff: 0.838215,
       ron: 0.000603602
   },
   {
       time: 11850,
       gfp: 0.000142307,
       roff: 0.838218,
       ron: 0.00060206
   },
   {
       time: 11900,
       gfp: 0.000142306,
       roff: 0.83822,
       ron: 0.000600586
   },
   {
       time: 11950,
       gfp: 0.000142306,
       roff: 0.838223,
       ron: 0.000599178
   },
   {
       time: 12000,
       gfp: 0.000142305,
       roff: 0.838225,
       ron: 0.000597832
   },
   {
       time: 12050,
       gfp: 0.000142304,
       roff: 0.838227,
       ron: 0.000596546
   },
   {
       time: 12100,
       gfp: 0.000142303,
       roff: 0.838229,
       ron: 0.000595316
   },
   {
       time: 12150,
       gfp: 0.000142303,
       roff: 0.838231,
       ron: 0.000594142
   },
   {
       time: 12200,
       gfp: 0.000142302,
       roff: 0.838233,
       ron: 0.000593019
   },
   {
       time: 12250,
       gfp: 0.000142301,
       roff: 0.838235,
       ron: 0.000591947
   },
   {
       time: 12300,
       gfp: 0.000142301,
       roff: 0.838236,
       ron: 0.000590921
   },
   {
       time: 12350,
       gfp: 0.0001423,
       roff: 0.838238,
       ron: 0.000589942
   },
   {
       time: 12400,
       gfp: 0.0001423,
       roff: 0.83824,
       ron: 0.000589005
   },
   {
       time: 12450,
       gfp: 0.000142299,
       roff: 0.838241,
       ron: 0.000588111
   },
   {
       time: 12500,
       gfp: 0.000142299,
       roff: 0.838242,
       ron: 0.000587255
   },
   {
       time: 12550,
       gfp: 0.000142298,
       roff: 0.838244,
       ron: 0.000586438
   },
   {
       time: 12600,
       gfp: 0.000142298,
       roff: 0.838245,
       ron: 0.000585657
   },
   {
       time: 12650,
       gfp: 0.000142297,
       roff: 0.838246,
       ron: 0.000584911
   },
   {
       time: 12700,
       gfp: 0.000142297,
       roff: 0.838247,
       ron: 0.000584198
   },
   {
       time: 12750,
       gfp: 0.000142296,
       roff: 0.838249,
       ron: 0.000583516
   },
   {
       time: 12800,
       gfp: 0.000142296,
       roff: 0.83825,
       ron: 0.000582865
   },
   {
       time: 12850,
       gfp: 0.000142296,
       roff: 0.838251,
       ron: 0.000582242
   },
   {
       time: 12900,
       gfp: 0.000142295,
       roff: 0.838252,
       ron: 0.000581648
   },
   {
       time: 12950,
       gfp: 0.000142295,
       roff: 0.838253,
       ron: 0.000581079
   },
   {
       time: 13000,
       gfp: 0.000142295,
       roff: 0.838253,
       ron: 0.000580536
   },
   {
       time: 13050,
       gfp: 0.000142294,
       roff: 0.838254,
       ron: 0.000580017
   },
   {
       time: 13100,
       gfp: 0.000142294,
       roff: 0.838255,
       ron: 0.000579521
   },
   {
       time: 13150,
       gfp: 0.000142294,
       roff: 0.838256,
       ron: 0.000579047
   },
   {
       time: 13200,
       gfp: 0.000142294,
       roff: 0.838257,
       ron: 0.000578594
   },
   {
       time: 13250,
       gfp: 0.000142293,
       roff: 0.838257,
       ron: 0.000578161
   },
   {
       time: 13300,
       gfp: 0.000142293,
       roff: 0.838258,
       ron: 0.000577747
   },
   {
       time: 13350,
       gfp: 0.000142293,
       roff: 0.838259,
       ron: 0.000577351
   },
   {
       time: 13400,
       gfp: 0.000142293,
       roff: 0.838259,
       ron: 0.000576973
   },
   {
       time: 13450,
       gfp: 0.000142292,
       roff: 0.83826,
       ron: 0.000576612
   },
   {
       time: 13500,
       gfp: 0.000142292,
       roff: 0.83826,
       ron: 0.000576267
   },
   {
       time: 13550,
       gfp: 0.000142292,
       roff: 0.838261,
       ron: 0.000575937
   },
   {
       time: 13600,
       gfp: 0.000142292,
       roff: 0.838261,
       ron: 0.000575621
   },
   {
       time: 13650,
       gfp: 0.000142292,
       roff: 0.838262,
       ron: 0.00057532
   },
   {
       time: 13700,
       gfp: 0.000142291,
       roff: 0.838262,
       ron: 0.000575032
   },
   {
       time: 13750,
       gfp: 0.000142291,
       roff: 0.838263,
       ron: 0.000574757
   },
   {
       time: 13800,
       gfp: 0.000142291,
       roff: 0.838263,
       ron: 0.000574494
   },
   {
       time: 13850,
       gfp: 0.000142291,
       roff: 0.838264,
       ron: 0.000574243
   },
   {
       time: 13900,
       gfp: 0.000142291,
       roff: 0.838264,
       ron: 0.000574003
   },
   {
       time: 13950,
       gfp: 0.000142291,
       roff: 0.838264,
       ron: 0.000573773
   },
   {
       time: 14000,
       gfp: 0.000142291,
       roff: 0.838265,
       ron: 0.000573554
   },
   {
       time: 14050,
       gfp: 0.000142291,
       roff: 0.838265,
       ron: 0.000573344
   },
   {
       time: 14100,
       gfp: 0.00014229,
       roff: 0.838265,
       ron: 0.000573144
   },
   {
       time: 14150,
       gfp: 0.00014229,
       roff: 0.838266,
       ron: 0.000572952
   },
   {
       time: 14200,
       gfp: 0.00014229,
       roff: 0.838266,
       ron: 0.00057277
   },
   {
       time: 14250,
       gfp: 0.00014229,
       roff: 0.838266,
       ron: 0.000572595
   },
   {
       time: 14300,
       gfp: 0.00014229,
       roff: 0.838266,
       ron: 0.000572428
   },
   {
       time: 14350,
       gfp: 0.00014229,
       roff: 0.838267,
       ron: 0.000572268
   },
   {
       time: 14400,
       gfp: 0.00014229,
       roff: 0.838267,
       ron: 0.000572115
   },
   {
       time: 14450,
       gfp: 0.00014229,
       roff: 0.838267,
       ron: 0.00057197
   },
   {
       time: 14500,
       gfp: 0.00014229,
       roff: 0.838267,
       ron: 0.00057183
   },
   {
       time: 14550,
       gfp: 0.00014229,
       roff: 0.838268,
       ron: 0.000571697
   },
   {
       time: 14600,
       gfp: 0.000142289,
       roff: 0.838268,
       ron: 0.00057157
   },
   {
       time: 14650,
       gfp: 0.000142289,
       roff: 0.838268,
       ron: 0.000571448
   },
   {
       time: 14700,
       gfp: 0.000142289,
       roff: 0.838268,
       ron: 0.000571332
   },
   {
       time: 14750,
       gfp: 0.000142289,
       roff: 0.838268,
       ron: 0.000571221
   },
   {
       time: 14800,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000571114
   },
   {
       time: 14850,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000571013
   },
   {
       time: 14900,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000570916
   },
   {
       time: 14950,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000570823
   },
   {
       time: 15000,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000570735
   },
   {
       time: 15050,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.00057065
   },
   {
       time: 15100,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000570569
   },
   {
       time: 15150,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570492
   },
   {
       time: 15200,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570418
   },
   {
       time: 15250,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570348
   },
   {
       time: 15300,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.00057028
   },
   {
       time: 15350,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570216
   },
   {
       time: 15400,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570154
   },
   {
       time: 15450,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570095
   },
   {
       time: 15500,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570039
   },
   {
       time: 15550,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000569985
   },
   {
       time: 15600,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000569934
   },
   {
       time: 15650,
       gfp: 0.000142289,
       roff: 0.838271,
       ron: 0.000569885
   },
   {
       time: 15700,
       gfp: 0.000142289,
       roff: 0.838271,
       ron: 0.000569838
   },
   {
       time: 15750,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569793
   },
   {
       time: 15800,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.00056975
   },
   {
       time: 15850,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569709
   },
   {
       time: 15900,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.00056967
   },
   {
       time: 15950,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569633
   },
   {
       time: 16000,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569597
   },
   {
       time: 16050,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569563
   },
   {
       time: 16100,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.00056953
   },
   {
       time: 16150,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569499
   },
   {
       time: 16200,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.00056947
   },
   {
       time: 16250,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569441
   },
   {
       time: 16300,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569414
   },
   {
       time: 16350,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569388
   },
   {
       time: 16400,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569363
   },
   {
       time: 16450,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569339
   },
   {
       time: 16500,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569316
   },
   {
       time: 16550,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569295
   },
   {
       time: 16600,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569274
   },
   {
       time: 16650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569254
   },
   {
       time: 16700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569235
   },
   {
       time: 16750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569217
   },
   {
       time: 16800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.0005692
   },
   {
       time: 16850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569183
   },
   {
       time: 16900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569167
   },
   {
       time: 16950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569152
   },
   {
       time: 17000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569138
   },
   {
       time: 17050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569124
   },
   {
       time: 17100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569111
   },
   {
       time: 17150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569099
   },
   {
       time: 17200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569087
   },
   {
       time: 17250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569075
   },
   {
       time: 17300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569064
   },
   {
       time: 17350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569054
   },
   {
       time: 17400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569044
   },
   {
       time: 17450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569034
   },
   {
       time: 17500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569025
   },
   {
       time: 17550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569016
   },
   {
       time: 17600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569008
   },
   {
       time: 17650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569
   },
   {
       time: 17700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568992
   },
   {
       time: 17750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568985
   },
   {
       time: 17800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568978
   },
   {
       time: 17850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568971
   },
   {
       time: 17900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568965
   },
   {
       time: 17950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568959
   },
   {
       time: 18000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568953
   },
   {
       time: 18050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568948
   },
   {
       time: 18100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568942
   },
   {
       time: 18150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568937
   },
   {
       time: 18200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568932
   },
   {
       time: 18250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568928
   },
   {
       time: 18300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568923
   },
   {
       time: 18350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568919
   },
   {
       time: 18400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568915
   },
   {
       time: 18450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568911
   },
   {
       time: 18500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568907
   },
   {
       time: 18550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568904
   },
   {
       time: 18600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.0005689
   },
   {
       time: 18650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568897
   },
   {
       time: 18700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568894
   },
   {
       time: 18750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568891
   },
   {
       time: 18800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568888
   },
   {
       time: 18850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568886
   },
   {
       time: 18900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568883
   },
   {
       time: 18950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568881
   },
   {
       time: 19000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568878
   },
   {
       time: 19050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568876
   },
   {
       time: 19100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568874
   },
   {
       time: 19150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568872
   },
   {
       time: 19200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056887
   },
   {
       time: 19250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568868
   },
   {
       time: 19300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568866
   },
   {
       time: 19350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568864
   },
   {
       time: 19400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568863
   },
   {
       time: 19450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568861
   },
   {
       time: 19500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056886
   },
   {
       time: 19550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568858
   },
   {
       time: 19600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568857
   },
   {
       time: 19650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568856
   },
   {
       time: 19700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568855
   },
   {
       time: 19750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568853
   },
   {
       time: 19800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568852
   },
   {
       time: 19850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568851
   },
   {
       time: 19900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056885
   },
   {
       time: 19950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568849
   },
   {
       time: 20000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568848
   },
   {
       time: 20050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568847
   },
   {
       time: 20100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568846
   },
   {
       time: 20150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568846
   },
   {
       time: 20200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568845
   },
   {
       time: 20250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568844
   },
   {
       time: 20300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568843
   },
   {
       time: 20350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568843
   },
   {
       time: 20400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568842
   },
   {
       time: 20450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568841
   },
   {
       time: 20500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568841
   },
   {
       time: 20550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056884
   },
   {
       time: 20600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056884
   },
   {
       time: 20650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568839
   },
   {
       time: 20700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568839
   },
   {
       time: 20750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568838
   },
   {
       time: 20800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568838
   },
   {
       time: 20850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568837
   },
   {
       time: 20900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568837
   },
   {
       time: 20950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568836
   },
   {
       time: 21000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568836
   },
   {
       time: 21050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568836
   },
   {
       time: 21100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568835
   },
   {
       time: 21150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568835
   },
   {
       time: 21200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568835
   },
   {
       time: 21250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568834
   },
   {
       time: 21300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568834
   },
   {
       time: 21350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568834
   },
   {
       time: 21400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568834
   },
   {
       time: 21450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568833
   },
   {
       time: 21500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568833
   },
   {
       time: 21550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568833
   },
   {
       time: 21600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568833
   },
   {
       time: 21650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568832
   },
   {
       time: 21700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568832
   },
   {
       time: 21750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568832
   },
   {
       time: 21800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568832
   },
   {
       time: 21850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568832
   },
   {
       time: 21900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 21950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 22850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 22900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 22950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568828
   }

]; var sitemap = {

   : 'home',
   
   'Overview_Project': 'quorus',
   'Description': 'quorus',
   'Design': 'quorus',
   'Experiments': 'quorus',
   'Notebook': 'quorus',
   'InterLab': 'quorus',
   'Model': 'quorus',
   'Results': 'quorus',
   'Demonstrate': 'quorus',
   'Improve': 'quorus',
   'Parts': 'quorus',
   'Basic_Part': 'quorus',
   'Composite_Part': 'quorus',
   'Part_Collection': 'quorus',
   'Safety': 'quorus',
   'Overview_HP': 'hp',
   'Human_Practices': 'hp',
   'Public_Engagement': 'hp',
   'Team': 'team',
   'Collaborations': 'team',
   'Attributions': 'team',
   'Applied_Design': 'competition',
   'Entrepreneurship': 'competition',
   'Hardware': 'competition',
   'Measurement': 'competition',
   'Model': 'competition',
   'Software': 'competition'

} $(document).ready(function() {

   var curnavitem = window.location.href;
   if(curnavitem.match(/igem\.org/i)) { // We know we're live
       curnavitem = curnavitem.replace(/(http:\/\/)?\d{4}\.igem\.org\.Team:\w+\/?/i, );
   }
   else {
       curnavitem = curnavitem.replace(/(http:\/\/)?localhost:\d+\/?/, );
       curnavitem = curnavitem.replace(/\.html/i, );
   }
   console.log(curnavitem);
   $('.' + sitemap[curnavitem]).addClass('current');

}) // Code courtesy of Mohamed Hasan // https://codepen.io/Mhmdhasan/pen/mAdaQE

$(document).ready(function () {

 'use strict';
 
  var c, currentScrollTop = 0,
      navbar = $('header');
  $(window).scroll(function () {
     var a = $(window).scrollTop();
     var b = navbar.height();
    
     currentScrollTop = a;
    
     if (c < currentScrollTop && a > b + b) {
       navbar.addClass("scrollUp");
     } else if (c > currentScrollTop && !(a <= b)) {
       navbar.removeClass("scrollUp");
     }
     c = currentScrollTop;
 });
 

}); //Code courtesy of https://codepen.io/kruxor/pen/CwpFq

$(window).scroll(function() {

   if ($(this).scrollTop() > 50 ) {
       $('.scrolltop:hidden').stop(true, true).fadeIn();
   } else {
       $('.scrolltop').stop(true, true).fadeOut();
   }

}); $(function(){$(".scroll").click(function(){$("html,body").animate({scrollTop:$("#top").offset().top},"1000");return false})}); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwb3BwZXIubWluLmpzIiwiYm9vdHN0cmFwLm1pbi5qcyIsImQzLm1pbi5qcyIsImVra28tbGlnaHRib3guanMiLCJmb290ZXItaGVhZGVyLXRlbXBsYXRlLmpzIiwiaW1hZ2UtZ2FsbGVyeS5qcyIsImluZGV4LmpzIiwibGFuZGluZy5qcyIsIm1vZGVsLmpzIiwibmF2bGluZS5qcyIsInNjcm9sbHNlbnNpdGl2ZS5qcyIsInNtb290aHNjcm9sbGJhci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNOQTtBQUNBO0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDNXBCQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMvalBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQy9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJ3aWtpLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuIENvcHlyaWdodCAoQykgRmVkZXJpY28gWml2b2xvIDIwMThcclxuIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAobGljZW5zZSB0ZXJtcyBhcmUgYXQgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuXHJcbiAqLyhmdW5jdGlvbihlLHQpeydvYmplY3QnPT10eXBlb2YgZXhwb3J0cyYmJ3VuZGVmaW5lZCchPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOidmdW5jdGlvbic9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOmUuUG9wcGVyPXQoKX0pKHRoaXMsZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZSYmJ1tvYmplY3QgRnVuY3Rpb25dJz09PXt9LnRvU3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24gdChlLHQpe2lmKDEhPT1lLm5vZGVUeXBlKXJldHVybltdO3ZhciBvPWdldENvbXB1dGVkU3R5bGUoZSxudWxsKTtyZXR1cm4gdD9vW3RdOm99ZnVuY3Rpb24gbyhlKXtyZXR1cm4nSFRNTCc9PT1lLm5vZGVOYW1lP2U6ZS5wYXJlbnROb2RlfHxlLmhvc3R9ZnVuY3Rpb24gbihlKXtpZighZSlyZXR1cm4gZG9jdW1lbnQuYm9keTtzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZSdIVE1MJzpjYXNlJ0JPRFknOnJldHVybiBlLm93bmVyRG9jdW1lbnQuYm9keTtjYXNlJyNkb2N1bWVudCc6cmV0dXJuIGUuYm9keTt9dmFyIGk9dChlKSxyPWkub3ZlcmZsb3cscD1pLm92ZXJmbG93WCxzPWkub3ZlcmZsb3dZO3JldHVybiAvKGF1dG98c2Nyb2xsfG92ZXJsYXkpLy50ZXN0KHIrcytwKT9lOm4obyhlKSl9ZnVuY3Rpb24gcihlKXtyZXR1cm4gMTE9PT1lP3JlOjEwPT09ZT9wZTpyZXx8cGV9ZnVuY3Rpb24gcChlKXtpZighZSlyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Zvcih2YXIgbz1yKDEwKT9kb2N1bWVudC5ib2R5Om51bGwsbj1lLm9mZnNldFBhcmVudDtuPT09byYmZS5uZXh0RWxlbWVudFNpYmxpbmc7KW49KGU9ZS5uZXh0RWxlbWVudFNpYmxpbmcpLm9mZnNldFBhcmVudDt2YXIgaT1uJiZuLm5vZGVOYW1lO3JldHVybiBpJiYnQk9EWSchPT1pJiYnSFRNTCchPT1pPy0xIT09WydURCcsJ1RBQkxFJ10uaW5kZXhPZihuLm5vZGVOYW1lKSYmJ3N0YXRpYyc9PT10KG4sJ3Bvc2l0aW9uJyk/cChuKTpuOmU/ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gcyhlKXt2YXIgdD1lLm5vZGVOYW1lO3JldHVybidCT0RZJyE9PXQmJignSFRNTCc9PT10fHxwKGUuZmlyc3RFbGVtZW50Q2hpbGQpPT09ZSl9ZnVuY3Rpb24gZChlKXtyZXR1cm4gbnVsbD09PWUucGFyZW50Tm9kZT9lOmQoZS5wYXJlbnROb2RlKX1mdW5jdGlvbiBhKGUsdCl7aWYoIWV8fCFlLm5vZGVUeXBlfHwhdHx8IXQubm9kZVR5cGUpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDt2YXIgbz1lLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HLG49bz9lOnQsaT1vP3Q6ZSxyPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ci5zZXRTdGFydChuLDApLHIuc2V0RW5kKGksMCk7dmFyIGw9ci5jb21tb25BbmNlc3RvckNvbnRhaW5lcjtpZihlIT09bCYmdCE9PWx8fG4uY29udGFpbnMoaSkpcmV0dXJuIHMobCk/bDpwKGwpO3ZhciBmPWQoZSk7cmV0dXJuIGYuaG9zdD9hKGYuaG9zdCx0KTphKGUsZCh0KS5ob3N0KX1mdW5jdGlvbiBsKGUpe3ZhciB0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTondG9wJyxvPSd0b3AnPT09dD8nc2Nyb2xsVG9wJzonc2Nyb2xsTGVmdCcsbj1lLm5vZGVOYW1lO2lmKCdCT0RZJz09PW58fCdIVE1MJz09PW4pe3ZhciBpPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQscj1lLm93bmVyRG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudHx8aTtyZXR1cm4gcltvXX1yZXR1cm4gZVtvXX1mdW5jdGlvbiBmKGUsdCl7dmFyIG89Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxuPWwodCwndG9wJyksaT1sKHQsJ2xlZnQnKSxyPW8/LTE6MTtyZXR1cm4gZS50b3ArPW4qcixlLmJvdHRvbSs9bipyLGUubGVmdCs9aSpyLGUucmlnaHQrPWkqcixlfWZ1bmN0aW9uIG0oZSx0KXt2YXIgbz0neCc9PT10PydMZWZ0JzonVG9wJyxuPSdMZWZ0Jz09bz8nUmlnaHQnOidCb3R0b20nO3JldHVybiBwYXJzZUZsb2F0KGVbJ2JvcmRlcicrbysnV2lkdGgnXSwxMCkrcGFyc2VGbG9hdChlWydib3JkZXInK24rJ1dpZHRoJ10sMTApfWZ1bmN0aW9uIGgoZSx0LG8sbil7cmV0dXJuIEoodFsnb2Zmc2V0JytlXSx0WydzY3JvbGwnK2VdLG9bJ2NsaWVudCcrZV0sb1snb2Zmc2V0JytlXSxvWydzY3JvbGwnK2VdLHIoMTApP3BhcnNlSW50KG9bJ29mZnNldCcrZV0pK3BhcnNlSW50KG5bJ21hcmdpbicrKCdIZWlnaHQnPT09ZT8nVG9wJzonTGVmdCcpXSkrcGFyc2VJbnQoblsnbWFyZ2luJysoJ0hlaWdodCc9PT1lPydCb3R0b20nOidSaWdodCcpXSk6MCl9ZnVuY3Rpb24gYyhlKXt2YXIgdD1lLmJvZHksbz1lLmRvY3VtZW50RWxlbWVudCxuPXIoMTApJiZnZXRDb21wdXRlZFN0eWxlKG8pO3JldHVybntoZWlnaHQ6aCgnSGVpZ2h0Jyx0LG8sbiksd2lkdGg6aCgnV2lkdGgnLHQsbyxuKX19ZnVuY3Rpb24gZyhlKXtyZXR1cm4gbGUoe30sZSx7cmlnaHQ6ZS5sZWZ0K2Uud2lkdGgsYm90dG9tOmUudG9wK2UuaGVpZ2h0fSl9ZnVuY3Rpb24gdShlKXt2YXIgbz17fTt0cnl7aWYocigxMCkpe289ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgbj1sKGUsJ3RvcCcpLGk9bChlLCdsZWZ0Jyk7by50b3ArPW4sby5sZWZ0Kz1pLG8uYm90dG9tKz1uLG8ucmlnaHQrPWl9ZWxzZSBvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y2F0Y2godCl7fXZhciBwPXtsZWZ0Om8ubGVmdCx0b3A6by50b3Asd2lkdGg6by5yaWdodC1vLmxlZnQsaGVpZ2h0Om8uYm90dG9tLW8udG9wfSxzPSdIVE1MJz09PWUubm9kZU5hbWU/YyhlLm93bmVyRG9jdW1lbnQpOnt9LGQ9cy53aWR0aHx8ZS5jbGllbnRXaWR0aHx8cC5yaWdodC1wLmxlZnQsYT1zLmhlaWdodHx8ZS5jbGllbnRIZWlnaHR8fHAuYm90dG9tLXAudG9wLGY9ZS5vZmZzZXRXaWR0aC1kLGg9ZS5vZmZzZXRIZWlnaHQtYTtpZihmfHxoKXt2YXIgdT10KGUpO2YtPW0odSwneCcpLGgtPW0odSwneScpLHAud2lkdGgtPWYscC5oZWlnaHQtPWh9cmV0dXJuIGcocCl9ZnVuY3Rpb24gYihlLG8pe3ZhciBpPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0scD1yKDEwKSxzPSdIVE1MJz09PW8ubm9kZU5hbWUsZD11KGUpLGE9dShvKSxsPW4oZSksbT10KG8pLGg9cGFyc2VGbG9hdChtLmJvcmRlclRvcFdpZHRoLDEwKSxjPXBhcnNlRmxvYXQobS5ib3JkZXJMZWZ0V2lkdGgsMTApO2kmJnMmJihhLnRvcD1KKGEudG9wLDApLGEubGVmdD1KKGEubGVmdCwwKSk7dmFyIGI9Zyh7dG9wOmQudG9wLWEudG9wLWgsbGVmdDpkLmxlZnQtYS5sZWZ0LWMsd2lkdGg6ZC53aWR0aCxoZWlnaHQ6ZC5oZWlnaHR9KTtpZihiLm1hcmdpblRvcD0wLGIubWFyZ2luTGVmdD0wLCFwJiZzKXt2YXIgeT1wYXJzZUZsb2F0KG0ubWFyZ2luVG9wLDEwKSx3PXBhcnNlRmxvYXQobS5tYXJnaW5MZWZ0LDEwKTtiLnRvcC09aC15LGIuYm90dG9tLT1oLXksYi5sZWZ0LT1jLXcsYi5yaWdodC09Yy13LGIubWFyZ2luVG9wPXksYi5tYXJnaW5MZWZ0PXd9cmV0dXJuKHAmJiFpP28uY29udGFpbnMobCk6bz09PWwmJidCT0RZJyE9PWwubm9kZU5hbWUpJiYoYj1mKGIsbykpLGJ9ZnVuY3Rpb24geShlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG89ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPWIoZSxvKSxpPUooby5jbGllbnRXaWR0aCx3aW5kb3cuaW5uZXJXaWR0aHx8MCkscj1KKG8uY2xpZW50SGVpZ2h0LHdpbmRvdy5pbm5lckhlaWdodHx8MCkscD10PzA6bChvKSxzPXQ/MDpsKG8sJ2xlZnQnKSxkPXt0b3A6cC1uLnRvcCtuLm1hcmdpblRvcCxsZWZ0OnMtbi5sZWZ0K24ubWFyZ2luTGVmdCx3aWR0aDppLGhlaWdodDpyfTtyZXR1cm4gZyhkKX1mdW5jdGlvbiB3KGUpe3ZhciBuPWUubm9kZU5hbWU7cmV0dXJuJ0JPRFknPT09bnx8J0hUTUwnPT09bj8hMTonZml4ZWQnPT09dChlLCdwb3NpdGlvbicpfHx3KG8oZSkpfWZ1bmN0aW9uIEUoZSl7aWYoIWV8fCFlLnBhcmVudEVsZW1lbnR8fHIoKSlyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Zvcih2YXIgbz1lLnBhcmVudEVsZW1lbnQ7byYmJ25vbmUnPT09dChvLCd0cmFuc2Zvcm0nKTspbz1vLnBhcmVudEVsZW1lbnQ7cmV0dXJuIG98fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiB2KGUsdCxpLHIpe3ZhciBwPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzRdJiZhcmd1bWVudHNbNF0scz17dG9wOjAsbGVmdDowfSxkPXA/RShlKTphKGUsdCk7aWYoJ3ZpZXdwb3J0Jz09PXIpcz15KGQscCk7ZWxzZXt2YXIgbDsnc2Nyb2xsUGFyZW50Jz09PXI/KGw9bihvKHQpKSwnQk9EWSc9PT1sLm5vZGVOYW1lJiYobD1lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSk6J3dpbmRvdyc9PT1yP2w9ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDpsPXI7dmFyIGY9YihsLGQscCk7aWYoJ0hUTUwnPT09bC5ub2RlTmFtZSYmIXcoZCkpe3ZhciBtPWMoZS5vd25lckRvY3VtZW50KSxoPW0uaGVpZ2h0LGc9bS53aWR0aDtzLnRvcCs9Zi50b3AtZi5tYXJnaW5Ub3Ascy5ib3R0b209aCtmLnRvcCxzLmxlZnQrPWYubGVmdC1mLm1hcmdpbkxlZnQscy5yaWdodD1nK2YubGVmdH1lbHNlIHM9Zn1pPWl8fDA7dmFyIHU9J251bWJlcic9PXR5cGVvZiBpO3JldHVybiBzLmxlZnQrPXU/aTppLmxlZnR8fDAscy50b3ArPXU/aTppLnRvcHx8MCxzLnJpZ2h0LT11P2k6aS5yaWdodHx8MCxzLmJvdHRvbS09dT9pOmkuYm90dG9tfHwwLHN9ZnVuY3Rpb24geChlKXt2YXIgdD1lLndpZHRoLG89ZS5oZWlnaHQ7cmV0dXJuIHQqb31mdW5jdGlvbiBPKGUsdCxvLG4saSl7dmFyIHI9NTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0/YXJndW1lbnRzWzVdOjA7aWYoLTE9PT1lLmluZGV4T2YoJ2F1dG8nKSlyZXR1cm4gZTt2YXIgcD12KG8sbixyLGkpLHM9e3RvcDp7d2lkdGg6cC53aWR0aCxoZWlnaHQ6dC50b3AtcC50b3B9LHJpZ2h0Ont3aWR0aDpwLnJpZ2h0LXQucmlnaHQsaGVpZ2h0OnAuaGVpZ2h0fSxib3R0b206e3dpZHRoOnAud2lkdGgsaGVpZ2h0OnAuYm90dG9tLXQuYm90dG9tfSxsZWZ0Ont3aWR0aDp0LmxlZnQtcC5sZWZ0LGhlaWdodDpwLmhlaWdodH19LGQ9T2JqZWN0LmtleXMocykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBsZSh7a2V5OmV9LHNbZV0se2FyZWE6eChzW2VdKX0pfSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiB0LmFyZWEtZS5hcmVhfSksYT1kLmZpbHRlcihmdW5jdGlvbihlKXt2YXIgdD1lLndpZHRoLG49ZS5oZWlnaHQ7cmV0dXJuIHQ+PW8uY2xpZW50V2lkdGgmJm4+PW8uY2xpZW50SGVpZ2h0fSksbD0wPGEubGVuZ3RoP2FbMF0ua2V5OmRbMF0ua2V5LGY9ZS5zcGxpdCgnLScpWzFdO3JldHVybiBsKyhmPyctJytmOicnKX1mdW5jdGlvbiBMKGUsdCxvKXt2YXIgbj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbCxpPW4/RSh0KTphKHQsbyk7cmV0dXJuIGIobyxpLG4pfWZ1bmN0aW9uIFMoZSl7dmFyIHQ9Z2V0Q29tcHV0ZWRTdHlsZShlKSxvPXBhcnNlRmxvYXQodC5tYXJnaW5Ub3ApK3BhcnNlRmxvYXQodC5tYXJnaW5Cb3R0b20pLG49cGFyc2VGbG9hdCh0Lm1hcmdpbkxlZnQpK3BhcnNlRmxvYXQodC5tYXJnaW5SaWdodCksaT17d2lkdGg6ZS5vZmZzZXRXaWR0aCtuLGhlaWdodDplLm9mZnNldEhlaWdodCtvfTtyZXR1cm4gaX1mdW5jdGlvbiBUKGUpe3ZhciB0PXtsZWZ0OidyaWdodCcscmlnaHQ6J2xlZnQnLGJvdHRvbTondG9wJyx0b3A6J2JvdHRvbSd9O3JldHVybiBlLnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSl9ZnVuY3Rpb24gRChlLHQsbyl7bz1vLnNwbGl0KCctJylbMF07dmFyIG49UyhlKSxpPXt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodH0scj0tMSE9PVsncmlnaHQnLCdsZWZ0J10uaW5kZXhPZihvKSxwPXI/J3RvcCc6J2xlZnQnLHM9cj8nbGVmdCc6J3RvcCcsZD1yPydoZWlnaHQnOid3aWR0aCcsYT1yPyd3aWR0aCc6J2hlaWdodCc7cmV0dXJuIGlbcF09dFtwXSt0W2RdLzItbltkXS8yLGlbc109bz09PXM/dFtzXS1uW2FdOnRbVChzKV0saX1mdW5jdGlvbiBDKGUsdCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maW5kP2UuZmluZCh0KTplLmZpbHRlcih0KVswXX1mdW5jdGlvbiBOKGUsdCxvKXtpZihBcnJheS5wcm90b3R5cGUuZmluZEluZGV4KXJldHVybiBlLmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XT09PW99KTt2YXIgbj1DKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF09PT1vfSk7cmV0dXJuIGUuaW5kZXhPZihuKX1mdW5jdGlvbiBQKHQsbyxuKXt2YXIgaT12b2lkIDA9PT1uP3Q6dC5zbGljZSgwLE4odCwnbmFtZScsbikpO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24odCl7dFsnZnVuY3Rpb24nXSYmY29uc29sZS53YXJuKCdgbW9kaWZpZXIuZnVuY3Rpb25gIGlzIGRlcHJlY2F0ZWQsIHVzZSBgbW9kaWZpZXIuZm5gIScpO3ZhciBuPXRbJ2Z1bmN0aW9uJ118fHQuZm47dC5lbmFibGVkJiZlKG4pJiYoby5vZmZzZXRzLnBvcHBlcj1nKG8ub2Zmc2V0cy5wb3BwZXIpLG8ub2Zmc2V0cy5yZWZlcmVuY2U9ZyhvLm9mZnNldHMucmVmZXJlbmNlKSxvPW4obyx0KSl9KSxvfWZ1bmN0aW9uIGsoKXtpZighdGhpcy5zdGF0ZS5pc0Rlc3Ryb3llZCl7dmFyIGU9e2luc3RhbmNlOnRoaXMsc3R5bGVzOnt9LGFycm93U3R5bGVzOnt9LGF0dHJpYnV0ZXM6e30sZmxpcHBlZDohMSxvZmZzZXRzOnt9fTtlLm9mZnNldHMucmVmZXJlbmNlPUwodGhpcy5zdGF0ZSx0aGlzLnBvcHBlcix0aGlzLnJlZmVyZW5jZSx0aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZCksZS5wbGFjZW1lbnQ9Tyh0aGlzLm9wdGlvbnMucGxhY2VtZW50LGUub2Zmc2V0cy5yZWZlcmVuY2UsdGhpcy5wb3BwZXIsdGhpcy5yZWZlcmVuY2UsdGhpcy5vcHRpb25zLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50LHRoaXMub3B0aW9ucy5tb2RpZmllcnMuZmxpcC5wYWRkaW5nKSxlLm9yaWdpbmFsUGxhY2VtZW50PWUucGxhY2VtZW50LGUucG9zaXRpb25GaXhlZD10aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZCxlLm9mZnNldHMucG9wcGVyPUQodGhpcy5wb3BwZXIsZS5vZmZzZXRzLnJlZmVyZW5jZSxlLnBsYWNlbWVudCksZS5vZmZzZXRzLnBvcHBlci5wb3NpdGlvbj10aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZD8nZml4ZWQnOidhYnNvbHV0ZScsZT1QKHRoaXMubW9kaWZpZXJzLGUpLHRoaXMuc3RhdGUuaXNDcmVhdGVkP3RoaXMub3B0aW9ucy5vblVwZGF0ZShlKToodGhpcy5zdGF0ZS5pc0NyZWF0ZWQ9ITAsdGhpcy5vcHRpb25zLm9uQ3JlYXRlKGUpKX19ZnVuY3Rpb24gVyhlLHQpe3JldHVybiBlLnNvbWUoZnVuY3Rpb24oZSl7dmFyIG89ZS5uYW1lLG49ZS5lbmFibGVkO3JldHVybiBuJiZvPT09dH0pfWZ1bmN0aW9uIEgoZSl7Zm9yKHZhciB0PVshMSwnbXMnLCdXZWJraXQnLCdNb3onLCdPJ10sbz1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLHI9aT8nJytpK286ZTtpZigndW5kZWZpbmVkJyE9dHlwZW9mIGRvY3VtZW50LmJvZHkuc3R5bGVbcl0pcmV0dXJuIHJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQigpe3JldHVybiB0aGlzLnN0YXRlLmlzRGVzdHJveWVkPSEwLFcodGhpcy5tb2RpZmllcnMsJ2FwcGx5U3R5bGUnKSYmKHRoaXMucG9wcGVyLnJlbW92ZUF0dHJpYnV0ZSgneC1wbGFjZW1lbnQnKSx0aGlzLnBvcHBlci5zdHlsZS5wb3NpdGlvbj0nJyx0aGlzLnBvcHBlci5zdHlsZS50b3A9JycsdGhpcy5wb3BwZXIuc3R5bGUubGVmdD0nJyx0aGlzLnBvcHBlci5zdHlsZS5yaWdodD0nJyx0aGlzLnBvcHBlci5zdHlsZS5ib3R0b209JycsdGhpcy5wb3BwZXIuc3R5bGUud2lsbENoYW5nZT0nJyx0aGlzLnBvcHBlci5zdHlsZVtIKCd0cmFuc2Zvcm0nKV09JycpLHRoaXMuZGlzYWJsZUV2ZW50TGlzdGVuZXJzKCksdGhpcy5vcHRpb25zLnJlbW92ZU9uRGVzdHJveSYmdGhpcy5wb3BwZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBvcHBlciksdGhpc31mdW5jdGlvbiBBKGUpe3ZhciB0PWUub3duZXJEb2N1bWVudDtyZXR1cm4gdD90LmRlZmF1bHRWaWV3OndpbmRvd31mdW5jdGlvbiBNKGUsdCxvLGkpe3ZhciByPSdCT0RZJz09PWUubm9kZU5hbWUscD1yP2Uub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldzplO3AuYWRkRXZlbnRMaXN0ZW5lcih0LG8se3Bhc3NpdmU6ITB9KSxyfHxNKG4ocC5wYXJlbnROb2RlKSx0LG8saSksaS5wdXNoKHApfWZ1bmN0aW9uIEYoZSx0LG8saSl7by51cGRhdGVCb3VuZD1pLEEoZSkuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJyxvLnVwZGF0ZUJvdW5kLHtwYXNzaXZlOiEwfSk7dmFyIHI9bihlKTtyZXR1cm4gTShyLCdzY3JvbGwnLG8udXBkYXRlQm91bmQsby5zY3JvbGxQYXJlbnRzKSxvLnNjcm9sbEVsZW1lbnQ9cixvLmV2ZW50c0VuYWJsZWQ9ITAsb31mdW5jdGlvbiBJKCl7dGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkfHwodGhpcy5zdGF0ZT1GKHRoaXMucmVmZXJlbmNlLHRoaXMub3B0aW9ucyx0aGlzLnN0YXRlLHRoaXMuc2NoZWR1bGVVcGRhdGUpKX1mdW5jdGlvbiBSKGUsdCl7cmV0dXJuIEEoZSkucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJyx0LnVwZGF0ZUJvdW5kKSx0LnNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsdC51cGRhdGVCb3VuZCl9KSx0LnVwZGF0ZUJvdW5kPW51bGwsdC5zY3JvbGxQYXJlbnRzPVtdLHQuc2Nyb2xsRWxlbWVudD1udWxsLHQuZXZlbnRzRW5hYmxlZD0hMSx0fWZ1bmN0aW9uIFUoKXt0aGlzLnN0YXRlLmV2ZW50c0VuYWJsZWQmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnNjaGVkdWxlVXBkYXRlKSx0aGlzLnN0YXRlPVIodGhpcy5yZWZlcmVuY2UsdGhpcy5zdGF0ZSkpfWZ1bmN0aW9uIFkoZSl7cmV0dXJuJychPT1lJiYhaXNOYU4ocGFyc2VGbG9hdChlKSkmJmlzRmluaXRlKGUpfWZ1bmN0aW9uIGooZSx0KXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBuPScnOy0xIT09Wyd3aWR0aCcsJ2hlaWdodCcsJ3RvcCcsJ3JpZ2h0JywnYm90dG9tJywnbGVmdCddLmluZGV4T2YobykmJlkodFtvXSkmJihuPSdweCcpLGUuc3R5bGVbb109dFtvXStufSl9ZnVuY3Rpb24gSyhlLHQpe09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIG49dFtvXTshMT09PW4/ZS5yZW1vdmVBdHRyaWJ1dGUobyk6ZS5zZXRBdHRyaWJ1dGUobyx0W29dKX0pfWZ1bmN0aW9uIHEoZSx0LG8pe3ZhciBuPUMoZSxmdW5jdGlvbihlKXt2YXIgbz1lLm5hbWU7cmV0dXJuIG89PT10fSksaT0hIW4mJmUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09byYmZS5lbmFibGVkJiZlLm9yZGVyPG4ub3JkZXJ9KTtpZighaSl7dmFyIHI9J2AnK3QrJ2AnO2NvbnNvbGUud2FybignYCcrbysnYCcrJyBtb2RpZmllciBpcyByZXF1aXJlZCBieSAnK3IrJyBtb2RpZmllciBpbiBvcmRlciB0byB3b3JrLCBiZSBzdXJlIHRvIGluY2x1ZGUgaXQgYmVmb3JlICcrcisnIScpfXJldHVybiBpfWZ1bmN0aW9uIEcoZSl7cmV0dXJuJ2VuZCc9PT1lPydzdGFydCc6J3N0YXJ0Jz09PWU/J2VuZCc6ZX1mdW5jdGlvbiBWKGUpe3ZhciB0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbz1tZS5pbmRleE9mKGUpLG49bWUuc2xpY2UobysxKS5jb25jYXQobWUuc2xpY2UoMCxvKSk7cmV0dXJuIHQ/bi5yZXZlcnNlKCk6bn1mdW5jdGlvbiB6KGUsdCxvLG4pe3ZhciBpPWUubWF0Y2goLygoPzpcXC18XFwrKT9cXGQqXFwuP1xcZCopKC4qKS8pLHI9K2lbMV0scD1pWzJdO2lmKCFyKXJldHVybiBlO2lmKDA9PT1wLmluZGV4T2YoJyUnKSl7dmFyIHM7c3dpdGNoKHApe2Nhc2UnJXAnOnM9bzticmVhaztjYXNlJyUnOmNhc2UnJXInOmRlZmF1bHQ6cz1uO312YXIgZD1nKHMpO3JldHVybiBkW3RdLzEwMCpyfWlmKCd2aCc9PT1wfHwndncnPT09cCl7dmFyIGE7cmV0dXJuIGE9J3ZoJz09PXA/Sihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LHdpbmRvdy5pbm5lckhlaWdodHx8MCk6Sihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsd2luZG93LmlubmVyV2lkdGh8fDApLGEvMTAwKnJ9cmV0dXJuIHJ9ZnVuY3Rpb24gXyhlLHQsbyxuKXt2YXIgaT1bMCwwXSxyPS0xIT09WydyaWdodCcsJ2xlZnQnXS5pbmRleE9mKG4pLHA9ZS5zcGxpdCgvKFxcK3xcXC0pLykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0oKX0pLHM9cC5pbmRleE9mKEMocCxmdW5jdGlvbihlKXtyZXR1cm4tMSE9PWUuc2VhcmNoKC8sfFxccy8pfSkpO3Bbc10mJi0xPT09cFtzXS5pbmRleE9mKCcsJykmJmNvbnNvbGUud2FybignT2Zmc2V0cyBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2UocykgYXJlIGRlcHJlY2F0ZWQsIHVzZSBhIGNvbW1hICgsKSBpbnN0ZWFkLicpO3ZhciBkPS9cXHMqLFxccyp8XFxzKy8sYT0tMT09PXM/W3BdOltwLnNsaWNlKDAscykuY29uY2F0KFtwW3NdLnNwbGl0KGQpWzBdXSksW3Bbc10uc3BsaXQoZClbMV1dLmNvbmNhdChwLnNsaWNlKHMrMSkpXTtyZXR1cm4gYT1hLm1hcChmdW5jdGlvbihlLG4pe3ZhciBpPSgxPT09bj8hcjpyKT8naGVpZ2h0Jzond2lkdGgnLHA9ITE7cmV0dXJuIGUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuJyc9PT1lW2UubGVuZ3RoLTFdJiYtMSE9PVsnKycsJy0nXS5pbmRleE9mKHQpPyhlW2UubGVuZ3RoLTFdPXQscD0hMCxlKTpwPyhlW2UubGVuZ3RoLTFdKz10LHA9ITEsZSk6ZS5jb25jYXQodCl9LFtdKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHooZSxpLHQsbyl9KX0pLGEuZm9yRWFjaChmdW5jdGlvbihlLHQpe2UuZm9yRWFjaChmdW5jdGlvbihvLG4pe1kobykmJihpW3RdKz1vKignLSc9PT1lW24tMV0/LTE6MSkpfSl9KSxpfWZ1bmN0aW9uIFgoZSx0KXt2YXIgbyxuPXQub2Zmc2V0LGk9ZS5wbGFjZW1lbnQscj1lLm9mZnNldHMscD1yLnBvcHBlcixzPXIucmVmZXJlbmNlLGQ9aS5zcGxpdCgnLScpWzBdO3JldHVybiBvPVkoK24pP1srbiwwXTpfKG4scCxzLGQpLCdsZWZ0Jz09PWQ/KHAudG9wKz1vWzBdLHAubGVmdC09b1sxXSk6J3JpZ2h0Jz09PWQ/KHAudG9wKz1vWzBdLHAubGVmdCs9b1sxXSk6J3RvcCc9PT1kPyhwLmxlZnQrPW9bMF0scC50b3AtPW9bMV0pOidib3R0b20nPT09ZCYmKHAubGVmdCs9b1swXSxwLnRvcCs9b1sxXSksZS5wb3BwZXI9cCxlfWZvcih2YXIgUT1NYXRoLm1pbixaPU1hdGgucm91bmQsJD1NYXRoLmZsb29yLEo9TWF0aC5tYXgsZWU9J3VuZGVmaW5lZCchPXR5cGVvZiB3aW5kb3cmJid1bmRlZmluZWQnIT10eXBlb2YgZG9jdW1lbnQsdGU9WydFZGdlJywnVHJpZGVudCcsJ0ZpcmVmb3gnXSxvZT0wLG5lPTA7bmU8dGUubGVuZ3RoO25lKz0xKWlmKGVlJiYwPD1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YodGVbbmVdKSl7b2U9MTticmVha312YXIgaT1lZSYmd2luZG93LlByb21pc2UsaWU9aT9mdW5jdGlvbihlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCx3aW5kb3cuUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3Q9ITEsZSgpfSkpfX06ZnVuY3Rpb24oZSl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dHx8KHQ9ITAsc2V0VGltZW91dChmdW5jdGlvbigpe3Q9ITEsZSgpfSxvZSkpfX0scmU9ZWUmJiEhKHdpbmRvdy5NU0lucHV0TWV0aG9kQ29udGV4dCYmZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSxwZT1lZSYmL01TSUUgMTAvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksc2U9ZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKX0sZGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBvLG49MDtuPHQubGVuZ3RoO24rKylvPXRbbl0sby5lbnVtZXJhYmxlPW8uZW51bWVyYWJsZXx8ITEsby5jb25maWd1cmFibGU9ITAsJ3ZhbHVlJ2luIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxvLmtleSxvKX1yZXR1cm4gZnVuY3Rpb24odCxvLG4pe3JldHVybiBvJiZlKHQucHJvdG90eXBlLG8pLG4mJmUodCxuKSx0fX0oKSxhZT1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpvLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1vLGV9LGxlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKylmb3IodmFyIG4gaW4gdD1hcmd1bWVudHNbb10sdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGV9LGZlPVsnYXV0by1zdGFydCcsJ2F1dG8nLCdhdXRvLWVuZCcsJ3RvcC1zdGFydCcsJ3RvcCcsJ3RvcC1lbmQnLCdyaWdodC1zdGFydCcsJ3JpZ2h0JywncmlnaHQtZW5kJywnYm90dG9tLWVuZCcsJ2JvdHRvbScsJ2JvdHRvbS1zdGFydCcsJ2xlZnQtZW5kJywnbGVmdCcsJ2xlZnQtc3RhcnQnXSxtZT1mZS5zbGljZSgzKSxoZT17RkxJUDonZmxpcCcsQ0xPQ0tXSVNFOidjbG9ja3dpc2UnLENPVU5URVJDTE9DS1dJU0U6J2NvdW50ZXJjbG9ja3dpc2UnfSxjZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQobyxuKXt2YXIgaT10aGlzLHI9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O3NlKHRoaXMsdCksdGhpcy5zY2hlZHVsZVVwZGF0ZT1mdW5jdGlvbigpe3JldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaS51cGRhdGUpfSx0aGlzLnVwZGF0ZT1pZSh0aGlzLnVwZGF0ZS5iaW5kKHRoaXMpKSx0aGlzLm9wdGlvbnM9bGUoe30sdC5EZWZhdWx0cyxyKSx0aGlzLnN0YXRlPXtpc0Rlc3Ryb3llZDohMSxpc0NyZWF0ZWQ6ITEsc2Nyb2xsUGFyZW50czpbXX0sdGhpcy5yZWZlcmVuY2U9byYmby5qcXVlcnk/b1swXTpvLHRoaXMucG9wcGVyPW4mJm4uanF1ZXJ5P25bMF06bix0aGlzLm9wdGlvbnMubW9kaWZpZXJzPXt9LE9iamVjdC5rZXlzKGxlKHt9LHQuRGVmYXVsdHMubW9kaWZpZXJzLHIubW9kaWZpZXJzKSkuZm9yRWFjaChmdW5jdGlvbihlKXtpLm9wdGlvbnMubW9kaWZpZXJzW2VdPWxlKHt9LHQuRGVmYXVsdHMubW9kaWZpZXJzW2VdfHx7fSxyLm1vZGlmaWVycz9yLm1vZGlmaWVyc1tlXTp7fSl9KSx0aGlzLm1vZGlmaWVycz1PYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMubW9kaWZpZXJzKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGxlKHtuYW1lOmV9LGkub3B0aW9ucy5tb2RpZmllcnNbZV0pfSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLm9yZGVyLXQub3JkZXJ9KSx0aGlzLm1vZGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZW5hYmxlZCYmZSh0Lm9uTG9hZCkmJnQub25Mb2FkKGkucmVmZXJlbmNlLGkucG9wcGVyLGkub3B0aW9ucyx0LGkuc3RhdGUpfSksdGhpcy51cGRhdGUoKTt2YXIgcD10aGlzLm9wdGlvbnMuZXZlbnRzRW5hYmxlZDtwJiZ0aGlzLmVuYWJsZUV2ZW50TGlzdGVuZXJzKCksdGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkPXB9cmV0dXJuIGRlKHQsW3trZXk6J3VwZGF0ZScsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gay5jYWxsKHRoaXMpfX0se2tleTonZGVzdHJveScsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQi5jYWxsKHRoaXMpfX0se2tleTonZW5hYmxlRXZlbnRMaXN0ZW5lcnMnLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEkuY2FsbCh0aGlzKX19LHtrZXk6J2Rpc2FibGVFdmVudExpc3RlbmVycycsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVS5jYWxsKHRoaXMpfX1dKSx0fSgpO3JldHVybiBjZS5VdGlscz0oJ3VuZGVmaW5lZCc9PXR5cGVvZiB3aW5kb3c/Z2xvYmFsOndpbmRvdykuUG9wcGVyVXRpbHMsY2UucGxhY2VtZW50cz1mZSxjZS5EZWZhdWx0cz17cGxhY2VtZW50Oidib3R0b20nLHBvc2l0aW9uRml4ZWQ6ITEsZXZlbnRzRW5hYmxlZDohMCxyZW1vdmVPbkRlc3Ryb3k6ITEsb25DcmVhdGU6ZnVuY3Rpb24oKXt9LG9uVXBkYXRlOmZ1bmN0aW9uKCl7fSxtb2RpZmllcnM6e3NoaWZ0OntvcmRlcjoxMDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdD1lLnBsYWNlbWVudCxvPXQuc3BsaXQoJy0nKVswXSxuPXQuc3BsaXQoJy0nKVsxXTtpZihuKXt2YXIgaT1lLm9mZnNldHMscj1pLnJlZmVyZW5jZSxwPWkucG9wcGVyLHM9LTEhPT1bJ2JvdHRvbScsJ3RvcCddLmluZGV4T2YobyksZD1zPydsZWZ0JzondG9wJyxhPXM/J3dpZHRoJzonaGVpZ2h0JyxsPXtzdGFydDphZSh7fSxkLHJbZF0pLGVuZDphZSh7fSxkLHJbZF0rclthXS1wW2FdKX07ZS5vZmZzZXRzLnBvcHBlcj1sZSh7fSxwLGxbbl0pfXJldHVybiBlfX0sb2Zmc2V0OntvcmRlcjoyMDAsZW5hYmxlZDohMCxmbjpYLG9mZnNldDowfSxwcmV2ZW50T3ZlcmZsb3c6e29yZGVyOjMwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsdCl7dmFyIG89dC5ib3VuZGFyaWVzRWxlbWVudHx8cChlLmluc3RhbmNlLnBvcHBlcik7ZS5pbnN0YW5jZS5yZWZlcmVuY2U9PT1vJiYobz1wKG8pKTt2YXIgbj1IKCd0cmFuc2Zvcm0nKSxpPWUuaW5zdGFuY2UucG9wcGVyLnN0eWxlLHI9aS50b3Ascz1pLmxlZnQsZD1pW25dO2kudG9wPScnLGkubGVmdD0nJyxpW25dPScnO3ZhciBhPXYoZS5pbnN0YW5jZS5wb3BwZXIsZS5pbnN0YW5jZS5yZWZlcmVuY2UsdC5wYWRkaW5nLG8sZS5wb3NpdGlvbkZpeGVkKTtpLnRvcD1yLGkubGVmdD1zLGlbbl09ZCx0LmJvdW5kYXJpZXM9YTt2YXIgbD10LnByaW9yaXR5LGY9ZS5vZmZzZXRzLnBvcHBlcixtPXtwcmltYXJ5OmZ1bmN0aW9uKGUpe3ZhciBvPWZbZV07cmV0dXJuIGZbZV08YVtlXSYmIXQuZXNjYXBlV2l0aFJlZmVyZW5jZSYmKG89SihmW2VdLGFbZV0pKSxhZSh7fSxlLG8pfSxzZWNvbmRhcnk6ZnVuY3Rpb24oZSl7dmFyIG89J3JpZ2h0Jz09PWU/J2xlZnQnOid0b3AnLG49ZltvXTtyZXR1cm4gZltlXT5hW2VdJiYhdC5lc2NhcGVXaXRoUmVmZXJlbmNlJiYobj1RKGZbb10sYVtlXS0oJ3JpZ2h0Jz09PWU/Zi53aWR0aDpmLmhlaWdodCkpKSxhZSh7fSxvLG4pfX07cmV0dXJuIGwuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0tMT09PVsnbGVmdCcsJ3RvcCddLmluZGV4T2YoZSk/J3NlY29uZGFyeSc6J3ByaW1hcnknO2Y9bGUoe30sZixtW3RdKGUpKX0pLGUub2Zmc2V0cy5wb3BwZXI9ZixlfSxwcmlvcml0eTpbJ2xlZnQnLCdyaWdodCcsJ3RvcCcsJ2JvdHRvbSddLHBhZGRpbmc6NSxib3VuZGFyaWVzRWxlbWVudDonc2Nyb2xsUGFyZW50J30sa2VlcFRvZ2V0aGVyOntvcmRlcjo0MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdD1lLm9mZnNldHMsbz10LnBvcHBlcixuPXQucmVmZXJlbmNlLGk9ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxyPSQscD0tMSE9PVsndG9wJywnYm90dG9tJ10uaW5kZXhPZihpKSxzPXA/J3JpZ2h0JzonYm90dG9tJyxkPXA/J2xlZnQnOid0b3AnLGE9cD8nd2lkdGgnOidoZWlnaHQnO3JldHVybiBvW3NdPHIobltkXSkmJihlLm9mZnNldHMucG9wcGVyW2RdPXIobltkXSktb1thXSksb1tkXT5yKG5bc10pJiYoZS5vZmZzZXRzLnBvcHBlcltkXT1yKG5bc10pKSxlfX0sYXJyb3c6e29yZGVyOjUwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsbyl7dmFyIG47aWYoIXEoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2Fycm93Jywna2VlcFRvZ2V0aGVyJykpcmV0dXJuIGU7dmFyIGk9by5lbGVtZW50O2lmKCdzdHJpbmcnPT10eXBlb2YgaSl7aWYoaT1lLmluc3RhbmNlLnBvcHBlci5xdWVyeVNlbGVjdG9yKGkpLCFpKXJldHVybiBlO31lbHNlIGlmKCFlLmluc3RhbmNlLnBvcHBlci5jb250YWlucyhpKSlyZXR1cm4gY29uc29sZS53YXJuKCdXQVJOSU5HOiBgYXJyb3cuZWxlbWVudGAgbXVzdCBiZSBjaGlsZCBvZiBpdHMgcG9wcGVyIGVsZW1lbnQhJyksZTt2YXIgcj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdLHA9ZS5vZmZzZXRzLHM9cC5wb3BwZXIsZD1wLnJlZmVyZW5jZSxhPS0xIT09WydsZWZ0JywncmlnaHQnXS5pbmRleE9mKHIpLGw9YT8naGVpZ2h0Jzond2lkdGgnLGY9YT8nVG9wJzonTGVmdCcsbT1mLnRvTG93ZXJDYXNlKCksaD1hPydsZWZ0JzondG9wJyxjPWE/J2JvdHRvbSc6J3JpZ2h0Jyx1PVMoaSlbbF07ZFtjXS11PHNbbV0mJihlLm9mZnNldHMucG9wcGVyW21dLT1zW21dLShkW2NdLXUpKSxkW21dK3U+c1tjXSYmKGUub2Zmc2V0cy5wb3BwZXJbbV0rPWRbbV0rdS1zW2NdKSxlLm9mZnNldHMucG9wcGVyPWcoZS5vZmZzZXRzLnBvcHBlcik7dmFyIGI9ZFttXStkW2xdLzItdS8yLHk9dChlLmluc3RhbmNlLnBvcHBlciksdz1wYXJzZUZsb2F0KHlbJ21hcmdpbicrZl0sMTApLEU9cGFyc2VGbG9hdCh5Wydib3JkZXInK2YrJ1dpZHRoJ10sMTApLHY9Yi1lLm9mZnNldHMucG9wcGVyW21dLXctRTtyZXR1cm4gdj1KKFEoc1tsXS11LHYpLDApLGUuYXJyb3dFbGVtZW50PWksZS5vZmZzZXRzLmFycm93PShuPXt9LGFlKG4sbSxaKHYpKSxhZShuLGgsJycpLG4pLGV9LGVsZW1lbnQ6J1t4LWFycm93XSd9LGZsaXA6e29yZGVyOjYwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsdCl7aWYoVyhlLmluc3RhbmNlLm1vZGlmaWVycywnaW5uZXInKSlyZXR1cm4gZTtpZihlLmZsaXBwZWQmJmUucGxhY2VtZW50PT09ZS5vcmlnaW5hbFBsYWNlbWVudClyZXR1cm4gZTt2YXIgbz12KGUuaW5zdGFuY2UucG9wcGVyLGUuaW5zdGFuY2UucmVmZXJlbmNlLHQucGFkZGluZyx0LmJvdW5kYXJpZXNFbGVtZW50LGUucG9zaXRpb25GaXhlZCksbj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdLGk9VChuKSxyPWUucGxhY2VtZW50LnNwbGl0KCctJylbMV18fCcnLHA9W107c3dpdGNoKHQuYmVoYXZpb3Ipe2Nhc2UgaGUuRkxJUDpwPVtuLGldO2JyZWFrO2Nhc2UgaGUuQ0xPQ0tXSVNFOnA9VihuKTticmVhaztjYXNlIGhlLkNPVU5URVJDTE9DS1dJU0U6cD1WKG4sITApO2JyZWFrO2RlZmF1bHQ6cD10LmJlaGF2aW9yO31yZXR1cm4gcC5mb3JFYWNoKGZ1bmN0aW9uKHMsZCl7aWYobiE9PXN8fHAubGVuZ3RoPT09ZCsxKXJldHVybiBlO249ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxpPVQobik7dmFyIGE9ZS5vZmZzZXRzLnBvcHBlcixsPWUub2Zmc2V0cy5yZWZlcmVuY2UsZj0kLG09J2xlZnQnPT09biYmZihhLnJpZ2h0KT5mKGwubGVmdCl8fCdyaWdodCc9PT1uJiZmKGEubGVmdCk8ZihsLnJpZ2h0KXx8J3RvcCc9PT1uJiZmKGEuYm90dG9tKT5mKGwudG9wKXx8J2JvdHRvbSc9PT1uJiZmKGEudG9wKTxmKGwuYm90dG9tKSxoPWYoYS5sZWZ0KTxmKG8ubGVmdCksYz1mKGEucmlnaHQpPmYoby5yaWdodCksZz1mKGEudG9wKTxmKG8udG9wKSx1PWYoYS5ib3R0b20pPmYoby5ib3R0b20pLGI9J2xlZnQnPT09biYmaHx8J3JpZ2h0Jz09PW4mJmN8fCd0b3AnPT09biYmZ3x8J2JvdHRvbSc9PT1uJiZ1LHk9LTEhPT1bJ3RvcCcsJ2JvdHRvbSddLmluZGV4T2Yobiksdz0hIXQuZmxpcFZhcmlhdGlvbnMmJih5JiYnc3RhcnQnPT09ciYmaHx8eSYmJ2VuZCc9PT1yJiZjfHwheSYmJ3N0YXJ0Jz09PXImJmd8fCF5JiYnZW5kJz09PXImJnUpOyhtfHxifHx3KSYmKGUuZmxpcHBlZD0hMCwobXx8YikmJihuPXBbZCsxXSksdyYmKHI9RyhyKSksZS5wbGFjZW1lbnQ9bisocj8nLScrcjonJyksZS5vZmZzZXRzLnBvcHBlcj1sZSh7fSxlLm9mZnNldHMucG9wcGVyLEQoZS5pbnN0YW5jZS5wb3BwZXIsZS5vZmZzZXRzLnJlZmVyZW5jZSxlLnBsYWNlbWVudCkpLGU9UChlLmluc3RhbmNlLm1vZGlmaWVycyxlLCdmbGlwJykpfSksZX0sYmVoYXZpb3I6J2ZsaXAnLHBhZGRpbmc6NSxib3VuZGFyaWVzRWxlbWVudDondmlld3BvcnQnfSxpbm5lcjp7b3JkZXI6NzAwLGVuYWJsZWQ6ITEsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wbGFjZW1lbnQsbz10LnNwbGl0KCctJylbMF0sbj1lLm9mZnNldHMsaT1uLnBvcHBlcixyPW4ucmVmZXJlbmNlLHA9LTEhPT1bJ2xlZnQnLCdyaWdodCddLmluZGV4T2Yobykscz0tMT09PVsndG9wJywnbGVmdCddLmluZGV4T2Yobyk7cmV0dXJuIGlbcD8nbGVmdCc6J3RvcCddPXJbb10tKHM/aVtwPyd3aWR0aCc6J2hlaWdodCddOjApLGUucGxhY2VtZW50PVQodCksZS5vZmZzZXRzLnBvcHBlcj1nKGkpLGV9fSxoaWRlOntvcmRlcjo4MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXtpZighcShlLmluc3RhbmNlLm1vZGlmaWVycywnaGlkZScsJ3ByZXZlbnRPdmVyZmxvdycpKXJldHVybiBlO3ZhciB0PWUub2Zmc2V0cy5yZWZlcmVuY2Usbz1DKGUuaW5zdGFuY2UubW9kaWZpZXJzLGZ1bmN0aW9uKGUpe3JldHVybidwcmV2ZW50T3ZlcmZsb3cnPT09ZS5uYW1lfSkuYm91bmRhcmllcztpZih0LmJvdHRvbTxvLnRvcHx8dC5sZWZ0Pm8ucmlnaHR8fHQudG9wPm8uYm90dG9tfHx0LnJpZ2h0PG8ubGVmdCl7aWYoITA9PT1lLmhpZGUpcmV0dXJuIGU7ZS5oaWRlPSEwLGUuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddPScnfWVsc2V7aWYoITE9PT1lLmhpZGUpcmV0dXJuIGU7ZS5oaWRlPSExLGUuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddPSExfXJldHVybiBlfX0sY29tcHV0ZVN0eWxlOntvcmRlcjo4NTAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe3ZhciBvPXQueCxuPXQueSxpPWUub2Zmc2V0cy5wb3BwZXIscj1DKGUuaW5zdGFuY2UubW9kaWZpZXJzLGZ1bmN0aW9uKGUpe3JldHVybidhcHBseVN0eWxlJz09PWUubmFtZX0pLmdwdUFjY2VsZXJhdGlvbjt2b2lkIDAhPT1yJiZjb25zb2xlLndhcm4oJ1dBUk5JTkc6IGBncHVBY2NlbGVyYXRpb25gIG9wdGlvbiBtb3ZlZCB0byBgY29tcHV0ZVN0eWxlYCBtb2RpZmllciBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiBQb3BwZXIuanMhJyk7dmFyIHMsZCxhPXZvaWQgMD09PXI/dC5ncHVBY2NlbGVyYXRpb246cixsPXAoZS5pbnN0YW5jZS5wb3BwZXIpLGY9dShsKSxtPXtwb3NpdGlvbjppLnBvc2l0aW9ufSxoPXtsZWZ0OiQoaS5sZWZ0KSx0b3A6WihpLnRvcCksYm90dG9tOlooaS5ib3R0b20pLHJpZ2h0OiQoaS5yaWdodCl9LGM9J2JvdHRvbSc9PT1vPyd0b3AnOidib3R0b20nLGc9J3JpZ2h0Jz09PW4/J2xlZnQnOidyaWdodCcsYj1IKCd0cmFuc2Zvcm0nKTtpZihkPSdib3R0b20nPT1jPydIVE1MJz09PWwubm9kZU5hbWU/LWwuY2xpZW50SGVpZ2h0K2guYm90dG9tOi1mLmhlaWdodCtoLmJvdHRvbTpoLnRvcCxzPSdyaWdodCc9PWc/J0hUTUwnPT09bC5ub2RlTmFtZT8tbC5jbGllbnRXaWR0aCtoLnJpZ2h0Oi1mLndpZHRoK2gucmlnaHQ6aC5sZWZ0LGEmJmIpbVtiXT0ndHJhbnNsYXRlM2QoJytzKydweCwgJytkKydweCwgMCknLG1bY109MCxtW2ddPTAsbS53aWxsQ2hhbmdlPSd0cmFuc2Zvcm0nO2Vsc2V7dmFyIHk9J2JvdHRvbSc9PWM/LTE6MSx3PSdyaWdodCc9PWc/LTE6MTttW2NdPWQqeSxtW2ddPXMqdyxtLndpbGxDaGFuZ2U9YysnLCAnK2d9dmFyIEU9e1wieC1wbGFjZW1lbnRcIjplLnBsYWNlbWVudH07cmV0dXJuIGUuYXR0cmlidXRlcz1sZSh7fSxFLGUuYXR0cmlidXRlcyksZS5zdHlsZXM9bGUoe30sbSxlLnN0eWxlcyksZS5hcnJvd1N0eWxlcz1sZSh7fSxlLm9mZnNldHMuYXJyb3csZS5hcnJvd1N0eWxlcyksZX0sZ3B1QWNjZWxlcmF0aW9uOiEwLHg6J2JvdHRvbScseToncmlnaHQnfSxhcHBseVN0eWxlOntvcmRlcjo5MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXtyZXR1cm4gaihlLmluc3RhbmNlLnBvcHBlcixlLnN0eWxlcyksSyhlLmluc3RhbmNlLnBvcHBlcixlLmF0dHJpYnV0ZXMpLGUuYXJyb3dFbGVtZW50JiZPYmplY3Qua2V5cyhlLmFycm93U3R5bGVzKS5sZW5ndGgmJmooZS5hcnJvd0VsZW1lbnQsZS5hcnJvd1N0eWxlcyksZX0sb25Mb2FkOmZ1bmN0aW9uKGUsdCxvLG4saSl7dmFyIHI9TChpLHQsZSxvLnBvc2l0aW9uRml4ZWQpLHA9TyhvLnBsYWNlbWVudCxyLHQsZSxvLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50LG8ubW9kaWZpZXJzLmZsaXAucGFkZGluZyk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCd4LXBsYWNlbWVudCcscCksaih0LHtwb3NpdGlvbjpvLnBvc2l0aW9uRml4ZWQ/J2ZpeGVkJzonYWJzb2x1dGUnfSksb30sZ3B1QWNjZWxlcmF0aW9uOnZvaWQgMH19fSxjZX0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wb3BwZXIubWluLmpzLm1hcCIsIi8qIVxuICAqIEJvb3RzdHJhcCB2NC4xLjAgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXG4gICogQ29weXJpZ2h0IDIwMTEtMjAxOCBUaGUgQm9vdHN0cmFwIEF1dGhvcnMgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ncmFwaHMvY29udHJpYnV0b3JzKVxuICAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4gICovXG4hZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9lKGV4cG9ydHMscmVxdWlyZShcImpxdWVyeVwiKSxyZXF1aXJlKFwicG9wcGVyLmpzXCIpKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtcImV4cG9ydHNcIixcImpxdWVyeVwiLFwicG9wcGVyLmpzXCJdLGUpOmUodC5ib290c3RyYXA9e30sdC5qUXVlcnksdC5Qb3BwZXIpfSh0aGlzLGZ1bmN0aW9uKHQsZSxjKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkua2V5LGkpfX1mdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gZSYmaSh0LnByb3RvdHlwZSxlKSxuJiZpKHQsbiksdH1mdW5jdGlvbiBoKHIpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBzPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30sZT1PYmplY3Qua2V5cyhzKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYoZT1lLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLHQpLmVudW1lcmFibGV9KSkpLGUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZSxuLGk7ZT1yLGk9c1tuPXRdLG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT1pfSl9cmV0dXJuIHJ9ZT1lJiZlLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFwiKT9lLmRlZmF1bHQ6ZSxjPWMmJmMuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0XCIpP2MuZGVmYXVsdDpjO3ZhciByLG4scyxhLGwsdSxmLGQsXyxnLG0scCx2LEUseSxULEMsSSxBLEQsYixTLHcsTixPLGssUCxMLGosUixILFcsTSx4LFUsSyxGLFYsUSxCLFksRyxxLHosWCxKLFosJCx0dCxldCxudCxpdCxydCxzdCxvdCxhdCxsdCxodCxjdCx1dCxmdCxkdCxfdCxndCxtdCxwdCx2dCxFdCx5dCxUdCxDdCxJdCxBdCxEdCxidCxTdCx3dCxOdCxPdCxrdCxQdCxMdCxqdCxSdCxIdCxXdCxNdCx4dCxVdCxLdCxGdCxWdCxRdCxCdCxZdCxHdCxxdCx6dCxYdCxKdCxadCwkdCx0ZSxlZSxuZSxpZSxyZSxzZSxvZSxhZSxsZSxoZSxjZSx1ZSxmZSxkZSxfZSxnZSxtZSxwZSx2ZSxFZSx5ZSxUZSxDZSxJZSxBZSxEZSxiZSxTZSx3ZSxOZSxPZSxrZSxQZSxMZSxqZSxSZSxIZSxXZSxNZSx4ZSxVZSxLZSxGZSxWZSxRZSxCZSxZZSxHZSxxZSx6ZSxYZSxKZSxaZSwkZSx0bixlbixubixybixzbixvbixhbixsbixobixjbix1bixmbixkbixfbixnbixtbixwbix2bixFbix5bixUbixDbj1mdW5jdGlvbihpKXt2YXIgZT1cInRyYW5zaXRpb25lbmRcIjtmdW5jdGlvbiB0KHQpe3ZhciBlPXRoaXMsbj0hMTtyZXR1cm4gaSh0aGlzKS5vbmUobC5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe249ITB9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bnx8bC50cmlnZ2VyVHJhbnNpdGlvbkVuZChlKX0sdCksdGhpc312YXIgbD17VFJBTlNJVElPTl9FTkQ6XCJic1RyYW5zaXRpb25FbmRcIixnZXRVSUQ6ZnVuY3Rpb24odCl7Zm9yKDt0Kz1+figxZTYqTWF0aC5yYW5kb20oKSksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCk7KTtyZXR1cm4gdH0sZ2V0U2VsZWN0b3JGcm9tRWxlbWVudDpmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZShcImRhdGEtdGFyZ2V0XCIpO2UmJlwiI1wiIT09ZXx8KGU9dC5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpfHxcIlwiKTt0cnl7cmV0dXJuIDA8aShkb2N1bWVudCkuZmluZChlKS5sZW5ndGg/ZTpudWxsfWNhdGNoKHQpe3JldHVybiBudWxsfX0sZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQ6ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIDA7dmFyIGU9aSh0KS5jc3MoXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIpO3JldHVybiBwYXJzZUZsb2F0KGUpPyhlPWUuc3BsaXQoXCIsXCIpWzBdLDFlMypwYXJzZUZsb2F0KGUpKTowfSxyZWZsb3c6ZnVuY3Rpb24odCl7cmV0dXJuIHQub2Zmc2V0SGVpZ2h0fSx0cmlnZ2VyVHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0KXtpKHQpLnRyaWdnZXIoZSl9LHN1cHBvcnRzVHJhbnNpdGlvbkVuZDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKGUpfSxpc0VsZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuKHRbMF18fHQpLm5vZGVUeXBlfSx0eXBlQ2hlY2tDb25maWc6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSBpbiBuKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpKXt2YXIgcj1uW2ldLHM9ZVtpXSxvPXMmJmwuaXNFbGVtZW50KHMpP1wiZWxlbWVudFwiOihhPXMse30udG9TdHJpbmcuY2FsbChhKS5tYXRjaCgvXFxzKFthLXpdKykvaSlbMV0udG9Mb3dlckNhc2UoKSk7aWYoIW5ldyBSZWdFeHAocikudGVzdChvKSl0aHJvdyBuZXcgRXJyb3IodC50b1VwcGVyQ2FzZSgpKyc6IE9wdGlvbiBcIicraSsnXCIgcHJvdmlkZWQgdHlwZSBcIicrbysnXCIgYnV0IGV4cGVjdGVkIHR5cGUgXCInK3IrJ1wiLicpfXZhciBhfX07cmV0dXJuIGkuZm4uZW11bGF0ZVRyYW5zaXRpb25FbmQ9dCxpLmV2ZW50LnNwZWNpYWxbbC5UUkFOU0lUSU9OX0VORF09e2JpbmRUeXBlOmUsZGVsZWdhdGVUeXBlOmUsaGFuZGxlOmZ1bmN0aW9uKHQpe2lmKGkodC50YXJnZXQpLmlzKHRoaXMpKXJldHVybiB0LmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LGx9KGUpLEluPShuPVwiYWxlcnRcIixhPVwiLlwiKyhzPVwiYnMuYWxlcnRcIiksbD0ocj1lKS5mbltuXSx1PXtDTE9TRTpcImNsb3NlXCIrYSxDTE9TRUQ6XCJjbG9zZWRcIithLENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIithK1wiLmRhdGEtYXBpXCJ9LGY9XCJhbGVydFwiLGQ9XCJmYWRlXCIsXz1cInNob3dcIixnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0KXt0aGlzLl9lbGVtZW50PXR9dmFyIHQ9aS5wcm90b3R5cGU7cmV0dXJuIHQuY2xvc2U9ZnVuY3Rpb24odCl7dD10fHx0aGlzLl9lbGVtZW50O3ZhciBlPXRoaXMuX2dldFJvb3RFbGVtZW50KHQpO3RoaXMuX3RyaWdnZXJDbG9zZUV2ZW50KGUpLmlzRGVmYXVsdFByZXZlbnRlZCgpfHx0aGlzLl9yZW1vdmVFbGVtZW50KGUpfSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtyLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxzKSx0aGlzLl9lbGVtZW50PW51bGx9LHQuX2dldFJvb3RFbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCksbj0hMTtyZXR1cm4gZSYmKG49cihlKVswXSksbnx8KG49cih0KS5jbG9zZXN0KFwiLlwiK2YpWzBdKSxufSx0Ll90cmlnZ2VyQ2xvc2VFdmVudD1mdW5jdGlvbih0KXt2YXIgZT1yLkV2ZW50KHUuQ0xPU0UpO3JldHVybiByKHQpLnRyaWdnZXIoZSksZX0sdC5fcmVtb3ZlRWxlbWVudD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKHIoZSkucmVtb3ZlQ2xhc3MoXykscihlKS5oYXNDbGFzcyhkKSl7dmFyIHQ9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQoZSk7cihlKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24odCl7cmV0dXJuIG4uX2Rlc3Ryb3lFbGVtZW50KGUsdCl9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZCh0KX1lbHNlIHRoaXMuX2Rlc3Ryb3lFbGVtZW50KGUpfSx0Ll9kZXN0cm95RWxlbWVudD1mdW5jdGlvbih0KXtyKHQpLmRldGFjaCgpLnRyaWdnZXIodS5DTE9TRUQpLnJlbW92ZSgpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXIodGhpcyksZT10LmRhdGEocyk7ZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKHMsZSkpLFwiY2xvc2VcIj09PW4mJmVbbl0odGhpcyl9KX0saS5faGFuZGxlRGlzbWlzcz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dCYmdC5wcmV2ZW50RGVmYXVsdCgpLGUuY2xvc2UodGhpcyl9fSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fV0pLGl9KCkscihkb2N1bWVudCkub24odS5DTElDS19EQVRBX0FQSSwnW2RhdGEtZGlzbWlzcz1cImFsZXJ0XCJdJyxnLl9oYW5kbGVEaXNtaXNzKG5ldyBnKSksci5mbltuXT1nLl9qUXVlcnlJbnRlcmZhY2Usci5mbltuXS5Db25zdHJ1Y3Rvcj1nLHIuZm5bbl0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiByLmZuW25dPWwsZy5falF1ZXJ5SW50ZXJmYWNlfSxnKSxBbj0ocD1cImJ1dHRvblwiLEU9XCIuXCIrKHY9XCJicy5idXR0b25cIikseT1cIi5kYXRhLWFwaVwiLFQ9KG09ZSkuZm5bcF0sQz1cImFjdGl2ZVwiLEk9XCJidG5cIixEPSdbZGF0YS10b2dnbGVePVwiYnV0dG9uXCJdJyxiPSdbZGF0YS10b2dnbGU9XCJidXR0b25zXCJdJyxTPVwiaW5wdXRcIix3PVwiLmFjdGl2ZVwiLE49XCIuYnRuXCIsTz17Q0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK0UreSxGT0NVU19CTFVSX0RBVEFfQVBJOihBPVwiZm9jdXNcIikrRSt5K1wiIGJsdXJcIitFK3l9LGs9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1uLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24oKXt2YXIgdD0hMCxlPSEwLG49bSh0aGlzLl9lbGVtZW50KS5jbG9zZXN0KGIpWzBdO2lmKG4pe3ZhciBpPW0odGhpcy5fZWxlbWVudCkuZmluZChTKVswXTtpZihpKXtpZihcInJhZGlvXCI9PT1pLnR5cGUpaWYoaS5jaGVja2VkJiZtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpKXQ9ITE7ZWxzZXt2YXIgcj1tKG4pLmZpbmQodylbMF07ciYmbShyKS5yZW1vdmVDbGFzcyhDKX1pZih0KXtpZihpLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxuLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxpLmNsYXNzTGlzdC5jb250YWlucyhcImRpc2FibGVkXCIpfHxuLmNsYXNzTGlzdC5jb250YWlucyhcImRpc2FibGVkXCIpKXJldHVybjtpLmNoZWNrZWQ9IW0odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoQyksbShpKS50cmlnZ2VyKFwiY2hhbmdlXCIpfWkuZm9jdXMoKSxlPSExfX1lJiZ0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtcHJlc3NlZFwiLCFtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpKSx0JiZtKHRoaXMuX2VsZW1lbnQpLnRvZ2dsZUNsYXNzKEMpfSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXttLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCx2KSx0aGlzLl9lbGVtZW50PW51bGx9LG4uX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bSh0aGlzKS5kYXRhKHYpO3R8fCh0PW5ldyBuKHRoaXMpLG0odGhpcykuZGF0YSh2LHQpKSxcInRvZ2dsZVwiPT09ZSYmdFtlXSgpfSl9LG8obixudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19XSksbn0oKSxtKGRvY3VtZW50KS5vbihPLkNMSUNLX0RBVEFfQVBJLEQsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBlPXQudGFyZ2V0O20oZSkuaGFzQ2xhc3MoSSl8fChlPW0oZSkuY2xvc2VzdChOKSksay5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobShlKSxcInRvZ2dsZVwiKX0pLm9uKE8uRk9DVVNfQkxVUl9EQVRBX0FQSSxELGZ1bmN0aW9uKHQpe3ZhciBlPW0odC50YXJnZXQpLmNsb3Nlc3QoTilbMF07bShlKS50b2dnbGVDbGFzcyhBLC9eZm9jdXMoaW4pPyQvLnRlc3QodC50eXBlKSl9KSxtLmZuW3BdPWsuX2pRdWVyeUludGVyZmFjZSxtLmZuW3BdLkNvbnN0cnVjdG9yPWssbS5mbltwXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG0uZm5bcF09VCxrLl9qUXVlcnlJbnRlcmZhY2V9LGspLERuPShMPVwiY2Fyb3VzZWxcIixSPVwiLlwiKyhqPVwiYnMuY2Fyb3VzZWxcIiksSD1cIi5kYXRhLWFwaVwiLFc9KFA9ZSkuZm5bTF0sTT17aW50ZXJ2YWw6NWUzLGtleWJvYXJkOiEwLHNsaWRlOiExLHBhdXNlOlwiaG92ZXJcIix3cmFwOiEwfSx4PXtpbnRlcnZhbDpcIihudW1iZXJ8Ym9vbGVhbilcIixrZXlib2FyZDpcImJvb2xlYW5cIixzbGlkZTpcIihib29sZWFufHN0cmluZylcIixwYXVzZTpcIihzdHJpbmd8Ym9vbGVhbilcIix3cmFwOlwiYm9vbGVhblwifSxVPVwibmV4dFwiLEs9XCJwcmV2XCIsRj1cImxlZnRcIixWPVwicmlnaHRcIixRPXtTTElERTpcInNsaWRlXCIrUixTTElEOlwic2xpZFwiK1IsS0VZRE9XTjpcImtleWRvd25cIitSLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIrUixNT1VTRUxFQVZFOlwibW91c2VsZWF2ZVwiK1IsVE9VQ0hFTkQ6XCJ0b3VjaGVuZFwiK1IsTE9BRF9EQVRBX0FQSTpcImxvYWRcIitSK0gsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK1IrSH0sQj1cImNhcm91c2VsXCIsWT1cImFjdGl2ZVwiLEc9XCJzbGlkZVwiLHE9XCJjYXJvdXNlbC1pdGVtLXJpZ2h0XCIsej1cImNhcm91c2VsLWl0ZW0tbGVmdFwiLFg9XCJjYXJvdXNlbC1pdGVtLW5leHRcIixKPVwiY2Fyb3VzZWwtaXRlbS1wcmV2XCIsWj17QUNUSVZFOlwiLmFjdGl2ZVwiLEFDVElWRV9JVEVNOlwiLmFjdGl2ZS5jYXJvdXNlbC1pdGVtXCIsSVRFTTpcIi5jYXJvdXNlbC1pdGVtXCIsTkVYVF9QUkVWOlwiLmNhcm91c2VsLWl0ZW0tbmV4dCwgLmNhcm91c2VsLWl0ZW0tcHJldlwiLElORElDQVRPUlM6XCIuY2Fyb3VzZWwtaW5kaWNhdG9yc1wiLERBVEFfU0xJREU6XCJbZGF0YS1zbGlkZV0sIFtkYXRhLXNsaWRlLXRvXVwiLERBVEFfUklERTonW2RhdGEtcmlkZT1cImNhcm91c2VsXCJdJ30sJD1mdW5jdGlvbigpe2Z1bmN0aW9uIHModCxlKXt0aGlzLl9pdGVtcz1udWxsLHRoaXMuX2ludGVydmFsPW51bGwsdGhpcy5fYWN0aXZlRWxlbWVudD1udWxsLHRoaXMuX2lzUGF1c2VkPSExLHRoaXMuX2lzU2xpZGluZz0hMSx0aGlzLnRvdWNoVGltZW91dD1udWxsLHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fZWxlbWVudD1QKHQpWzBdLHRoaXMuX2luZGljYXRvcnNFbGVtZW50PVAodGhpcy5fZWxlbWVudCkuZmluZChaLklORElDQVRPUlMpWzBdLHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJzKCl9dmFyIHQ9cy5wcm90b3R5cGU7cmV0dXJuIHQubmV4dD1mdW5jdGlvbigpe3RoaXMuX2lzU2xpZGluZ3x8dGhpcy5fc2xpZGUoVSl9LHQubmV4dFdoZW5WaXNpYmxlPWZ1bmN0aW9uKCl7IWRvY3VtZW50LmhpZGRlbiYmUCh0aGlzLl9lbGVtZW50KS5pcyhcIjp2aXNpYmxlXCIpJiZcImhpZGRlblwiIT09UCh0aGlzLl9lbGVtZW50KS5jc3MoXCJ2aXNpYmlsaXR5XCIpJiZ0aGlzLm5leHQoKX0sdC5wcmV2PWZ1bmN0aW9uKCl7dGhpcy5faXNTbGlkaW5nfHx0aGlzLl9zbGlkZShLKX0sdC5wYXVzZT1mdW5jdGlvbih0KXt0fHwodGhpcy5faXNQYXVzZWQ9ITApLFAodGhpcy5fZWxlbWVudCkuZmluZChaLk5FWFRfUFJFVilbMF0mJihDbi50cmlnZ2VyVHJhbnNpdGlvbkVuZCh0aGlzLl9lbGVtZW50KSx0aGlzLmN5Y2xlKCEwKSksY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbH0sdC5jeWNsZT1mdW5jdGlvbih0KXt0fHwodGhpcy5faXNQYXVzZWQ9ITEpLHRoaXMuX2ludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbCksdGhpcy5fY29uZmlnLmludGVydmFsJiYhdGhpcy5faXNQYXVzZWQmJih0aGlzLl9pbnRlcnZhbD1zZXRJbnRlcnZhbCgoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP3RoaXMubmV4dFdoZW5WaXNpYmxlOnRoaXMubmV4dCkuYmluZCh0aGlzKSx0aGlzLl9jb25maWcuaW50ZXJ2YWwpKX0sdC50bz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2FjdGl2ZUVsZW1lbnQ9UCh0aGlzLl9lbGVtZW50KS5maW5kKFouQUNUSVZFX0lURU0pWzBdO3ZhciBuPXRoaXMuX2dldEl0ZW1JbmRleCh0aGlzLl9hY3RpdmVFbGVtZW50KTtpZighKHQ+dGhpcy5faXRlbXMubGVuZ3RoLTF8fHQ8MCkpaWYodGhpcy5faXNTbGlkaW5nKVAodGhpcy5fZWxlbWVudCkub25lKFEuU0xJRCxmdW5jdGlvbigpe3JldHVybiBlLnRvKHQpfSk7ZWxzZXtpZihuPT09dClyZXR1cm4gdGhpcy5wYXVzZSgpLHZvaWQgdGhpcy5jeWNsZSgpO3ZhciBpPW48dD9VOks7dGhpcy5fc2xpZGUoaSx0aGlzLl9pdGVtc1t0XSl9fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtQKHRoaXMuX2VsZW1lbnQpLm9mZihSKSxQLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxqKSx0aGlzLl9pdGVtcz1udWxsLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9pbnRlcnZhbD1udWxsLHRoaXMuX2lzUGF1c2VkPW51bGwsdGhpcy5faXNTbGlkaW5nPW51bGwsdGhpcy5fYWN0aXZlRWxlbWVudD1udWxsLHRoaXMuX2luZGljYXRvcnNFbGVtZW50PW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1oKHt9LE0sdCksQ24udHlwZUNoZWNrQ29uZmlnKEwsdCx4KSx0fSx0Ll9hZGRFdmVudExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fY29uZmlnLmtleWJvYXJkJiZQKHRoaXMuX2VsZW1lbnQpLm9uKFEuS0VZRE9XTixmdW5jdGlvbih0KXtyZXR1cm4gZS5fa2V5ZG93bih0KX0pLFwiaG92ZXJcIj09PXRoaXMuX2NvbmZpZy5wYXVzZSYmKFAodGhpcy5fZWxlbWVudCkub24oUS5NT1VTRUVOVEVSLGZ1bmN0aW9uKHQpe3JldHVybiBlLnBhdXNlKHQpfSkub24oUS5NT1VTRUxFQVZFLGZ1bmN0aW9uKHQpe3JldHVybiBlLmN5Y2xlKHQpfSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmUCh0aGlzLl9lbGVtZW50KS5vbihRLlRPVUNIRU5ELGZ1bmN0aW9uKCl7ZS5wYXVzZSgpLGUudG91Y2hUaW1lb3V0JiZjbGVhclRpbWVvdXQoZS50b3VjaFRpbWVvdXQpLGUudG91Y2hUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24odCl7cmV0dXJuIGUuY3ljbGUodCl9LDUwMCtlLl9jb25maWcuaW50ZXJ2YWwpfSkpfSx0Ll9rZXlkb3duPWZ1bmN0aW9uKHQpe2lmKCEvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpKXN3aXRjaCh0LndoaWNoKXtjYXNlIDM3OnQucHJldmVudERlZmF1bHQoKSx0aGlzLnByZXYoKTticmVhaztjYXNlIDM5OnQucHJldmVudERlZmF1bHQoKSx0aGlzLm5leHQoKX19LHQuX2dldEl0ZW1JbmRleD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXRlbXM9UC5tYWtlQXJyYXkoUCh0KS5wYXJlbnQoKS5maW5kKFouSVRFTSkpLHRoaXMuX2l0ZW1zLmluZGV4T2YodCl9LHQuX2dldEl0ZW1CeURpcmVjdGlvbj1mdW5jdGlvbih0LGUpe3ZhciBuPXQ9PT1VLGk9dD09PUsscj10aGlzLl9nZXRJdGVtSW5kZXgoZSkscz10aGlzLl9pdGVtcy5sZW5ndGgtMTtpZigoaSYmMD09PXJ8fG4mJnI9PT1zKSYmIXRoaXMuX2NvbmZpZy53cmFwKXJldHVybiBlO3ZhciBvPShyKyh0PT09Sz8tMToxKSkldGhpcy5faXRlbXMubGVuZ3RoO3JldHVybi0xPT09bz90aGlzLl9pdGVtc1t0aGlzLl9pdGVtcy5sZW5ndGgtMV06dGhpcy5faXRlbXNbb119LHQuX3RyaWdnZXJTbGlkZUV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fZ2V0SXRlbUluZGV4KHQpLGk9dGhpcy5fZ2V0SXRlbUluZGV4KFAodGhpcy5fZWxlbWVudCkuZmluZChaLkFDVElWRV9JVEVNKVswXSkscj1QLkV2ZW50KFEuU0xJREUse3JlbGF0ZWRUYXJnZXQ6dCxkaXJlY3Rpb246ZSxmcm9tOmksdG86bn0pO3JldHVybiBQKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIocikscn0sdC5fc2V0QWN0aXZlSW5kaWNhdG9yRWxlbWVudD1mdW5jdGlvbih0KXtpZih0aGlzLl9pbmRpY2F0b3JzRWxlbWVudCl7UCh0aGlzLl9pbmRpY2F0b3JzRWxlbWVudCkuZmluZChaLkFDVElWRSkucmVtb3ZlQ2xhc3MoWSk7dmFyIGU9dGhpcy5faW5kaWNhdG9yc0VsZW1lbnQuY2hpbGRyZW5bdGhpcy5fZ2V0SXRlbUluZGV4KHQpXTtlJiZQKGUpLmFkZENsYXNzKFkpfX0sdC5fc2xpZGU9ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIscz10aGlzLG89UCh0aGlzLl9lbGVtZW50KS5maW5kKFouQUNUSVZFX0lURU0pWzBdLGE9dGhpcy5fZ2V0SXRlbUluZGV4KG8pLGw9ZXx8byYmdGhpcy5fZ2V0SXRlbUJ5RGlyZWN0aW9uKHQsbyksaD10aGlzLl9nZXRJdGVtSW5kZXgobCksYz1Cb29sZWFuKHRoaXMuX2ludGVydmFsKTtpZih0PT09VT8obj16LGk9WCxyPUYpOihuPXEsaT1KLHI9ViksbCYmUChsKS5oYXNDbGFzcyhZKSl0aGlzLl9pc1NsaWRpbmc9ITE7ZWxzZSBpZighdGhpcy5fdHJpZ2dlclNsaWRlRXZlbnQobCxyKS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmbyYmbCl7dGhpcy5faXNTbGlkaW5nPSEwLGMmJnRoaXMucGF1c2UoKSx0aGlzLl9zZXRBY3RpdmVJbmRpY2F0b3JFbGVtZW50KGwpO3ZhciB1PVAuRXZlbnQoUS5TTElELHtyZWxhdGVkVGFyZ2V0OmwsZGlyZWN0aW9uOnIsZnJvbTphLHRvOmh9KTtpZihQKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEcpKXtQKGwpLmFkZENsYXNzKGkpLENuLnJlZmxvdyhsKSxQKG8pLmFkZENsYXNzKG4pLFAobCkuYWRkQ2xhc3Mobik7dmFyIGY9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQobyk7UChvKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXtQKGwpLnJlbW92ZUNsYXNzKG4rXCIgXCIraSkuYWRkQ2xhc3MoWSksUChvKS5yZW1vdmVDbGFzcyhZK1wiIFwiK2krXCIgXCIrbikscy5faXNTbGlkaW5nPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gUChzLl9lbGVtZW50KS50cmlnZ2VyKHUpfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGYpfWVsc2UgUChvKS5yZW1vdmVDbGFzcyhZKSxQKGwpLmFkZENsYXNzKFkpLHRoaXMuX2lzU2xpZGluZz0hMSxQKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIodSk7YyYmdGhpcy5jeWNsZSgpfX0scy5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1QKHRoaXMpLmRhdGEoaiksZT1oKHt9LE0sUCh0aGlzKS5kYXRhKCkpO1wib2JqZWN0XCI9PXR5cGVvZiBpJiYoZT1oKHt9LGUsaSkpO3ZhciBuPVwic3RyaW5nXCI9PXR5cGVvZiBpP2k6ZS5zbGlkZTtpZih0fHwodD1uZXcgcyh0aGlzLGUpLFAodGhpcykuZGF0YShqLHQpKSxcIm51bWJlclwiPT10eXBlb2YgaSl0LnRvKGkpO2Vsc2UgaWYoXCJzdHJpbmdcIj09dHlwZW9mIG4pe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W25dKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrbisnXCInKTt0W25dKCl9ZWxzZSBlLmludGVydmFsJiYodC5wYXVzZSgpLHQuY3ljbGUoKSl9KX0scy5fZGF0YUFwaUNsaWNrSGFuZGxlcj1mdW5jdGlvbih0KXt2YXIgZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMpO2lmKGUpe3ZhciBuPVAoZSlbMF07aWYobiYmUChuKS5oYXNDbGFzcyhCKSl7dmFyIGk9aCh7fSxQKG4pLmRhdGEoKSxQKHRoaXMpLmRhdGEoKSkscj10aGlzLmdldEF0dHJpYnV0ZShcImRhdGEtc2xpZGUtdG9cIik7ciYmKGkuaW50ZXJ2YWw9ITEpLHMuX2pRdWVyeUludGVyZmFjZS5jYWxsKFAobiksaSksciYmUChuKS5kYXRhKGopLnRvKHIpLHQucHJldmVudERlZmF1bHQoKX19fSxvKHMsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBNfX1dKSxzfSgpLFAoZG9jdW1lbnQpLm9uKFEuQ0xJQ0tfREFUQV9BUEksWi5EQVRBX1NMSURFLCQuX2RhdGFBcGlDbGlja0hhbmRsZXIpLFAod2luZG93KS5vbihRLkxPQURfREFUQV9BUEksZnVuY3Rpb24oKXtQKFouREFUQV9SSURFKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9UCh0aGlzKTskLl9qUXVlcnlJbnRlcmZhY2UuY2FsbCh0LHQuZGF0YSgpKX0pfSksUC5mbltMXT0kLl9qUXVlcnlJbnRlcmZhY2UsUC5mbltMXS5Db25zdHJ1Y3Rvcj0kLFAuZm5bTF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBQLmZuW0xdPVcsJC5falF1ZXJ5SW50ZXJmYWNlfSwkKSxibj0oZXQ9XCJjb2xsYXBzZVwiLGl0PVwiLlwiKyhudD1cImJzLmNvbGxhcHNlXCIpLHJ0PSh0dD1lKS5mbltldF0sc3Q9e3RvZ2dsZTohMCxwYXJlbnQ6XCJcIn0sb3Q9e3RvZ2dsZTpcImJvb2xlYW5cIixwYXJlbnQ6XCIoc3RyaW5nfGVsZW1lbnQpXCJ9LGF0PXtTSE9XOlwic2hvd1wiK2l0LFNIT1dOOlwic2hvd25cIitpdCxISURFOlwiaGlkZVwiK2l0LEhJRERFTjpcImhpZGRlblwiK2l0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitpdCtcIi5kYXRhLWFwaVwifSxsdD1cInNob3dcIixodD1cImNvbGxhcHNlXCIsY3Q9XCJjb2xsYXBzaW5nXCIsdXQ9XCJjb2xsYXBzZWRcIixmdD1cIndpZHRoXCIsZHQ9XCJoZWlnaHRcIixfdD17QUNUSVZFUzpcIi5zaG93LCAuY29sbGFwc2luZ1wiLERBVEFfVE9HR0xFOidbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSd9LGd0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0LGUpe3RoaXMuX2lzVHJhbnNpdGlvbmluZz0hMSx0aGlzLl9lbGVtZW50PXQsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl90cmlnZ2VyQXJyYXk9dHQubWFrZUFycmF5KHR0KCdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtocmVmPVwiIycrdC5pZCsnXCJdLFtkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdW2RhdGEtdGFyZ2V0PVwiIycrdC5pZCsnXCJdJykpO2Zvcih2YXIgbj10dChfdC5EQVRBX1RPR0dMRSksaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgcj1uW2ldLHM9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudChyKTtudWxsIT09cyYmMDx0dChzKS5maWx0ZXIodCkubGVuZ3RoJiYodGhpcy5fc2VsZWN0b3I9cyx0aGlzLl90cmlnZ2VyQXJyYXkucHVzaChyKSl9dGhpcy5fcGFyZW50PXRoaXMuX2NvbmZpZy5wYXJlbnQ/dGhpcy5fZ2V0UGFyZW50KCk6bnVsbCx0aGlzLl9jb25maWcucGFyZW50fHx0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy5fZWxlbWVudCx0aGlzLl90cmlnZ2VyQXJyYXkpLHRoaXMuX2NvbmZpZy50b2dnbGUmJnRoaXMudG9nZ2xlKCl9dmFyIHQ9YS5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKCl7dHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobHQpP3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSx0LnNob3c9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpcztpZighdGhpcy5faXNUcmFuc2l0aW9uaW5nJiYhdHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobHQpJiYodGhpcy5fcGFyZW50JiYwPT09KHQ9dHQubWFrZUFycmF5KHR0KHRoaXMuX3BhcmVudCkuZmluZChfdC5BQ1RJVkVTKS5maWx0ZXIoJ1tkYXRhLXBhcmVudD1cIicrdGhpcy5fY29uZmlnLnBhcmVudCsnXCJdJykpKS5sZW5ndGgmJih0PW51bGwpLCEodCYmKGU9dHQodCkubm90KHRoaXMuX3NlbGVjdG9yKS5kYXRhKG50KSkmJmUuX2lzVHJhbnNpdGlvbmluZykpKXt2YXIgaT10dC5FdmVudChhdC5TSE9XKTtpZih0dCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKGkpLCFpLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt0JiYoYS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwodHQodCkubm90KHRoaXMuX3NlbGVjdG9yKSxcImhpZGVcIiksZXx8dHQodCkuZGF0YShudCxudWxsKSk7dmFyIHI9dGhpcy5fZ2V0RGltZW5zaW9uKCk7dHQodGhpcy5fZWxlbWVudCkucmVtb3ZlQ2xhc3MoaHQpLmFkZENsYXNzKGN0KSwodGhpcy5fZWxlbWVudC5zdHlsZVtyXT0wKTx0aGlzLl90cmlnZ2VyQXJyYXkubGVuZ3RoJiZ0dCh0aGlzLl90cmlnZ2VyQXJyYXkpLnJlbW92ZUNsYXNzKHV0KS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCEwKSx0aGlzLnNldFRyYW5zaXRpb25pbmcoITApO3ZhciBzPVwic2Nyb2xsXCIrKHJbMF0udG9VcHBlckNhc2UoKStyLnNsaWNlKDEpKSxvPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3R0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe3R0KG4uX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGN0KS5hZGRDbGFzcyhodCkuYWRkQ2xhc3MobHQpLG4uX2VsZW1lbnQuc3R5bGVbcl09XCJcIixuLnNldFRyYW5zaXRpb25pbmcoITEpLHR0KG4uX2VsZW1lbnQpLnRyaWdnZXIoYXQuU0hPV04pfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQobyksdGhpcy5fZWxlbWVudC5zdHlsZVtyXT10aGlzLl9lbGVtZW50W3NdK1wicHhcIn19fSx0LmhpZGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJnR0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGx0KSl7dmFyIGU9dHQuRXZlbnQoYXQuSElERSk7aWYodHQodGhpcy5fZWxlbWVudCkudHJpZ2dlcihlKSwhZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIG49dGhpcy5fZ2V0RGltZW5zaW9uKCk7aWYodGhpcy5fZWxlbWVudC5zdHlsZVtuXT10aGlzLl9lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW25dK1wicHhcIixDbi5yZWZsb3codGhpcy5fZWxlbWVudCksdHQodGhpcy5fZWxlbWVudCkuYWRkQ2xhc3MoY3QpLnJlbW92ZUNsYXNzKGh0KS5yZW1vdmVDbGFzcyhsdCksMDx0aGlzLl90cmlnZ2VyQXJyYXkubGVuZ3RoKWZvcih2YXIgaT0wO2k8dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aDtpKyspe3ZhciByPXRoaXMuX3RyaWdnZXJBcnJheVtpXSxzPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQocik7aWYobnVsbCE9PXMpdHQocykuaGFzQ2xhc3MobHQpfHx0dChyKS5hZGRDbGFzcyh1dCkuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMSl9dGhpcy5zZXRUcmFuc2l0aW9uaW5nKCEwKTt0aGlzLl9lbGVtZW50LnN0eWxlW25dPVwiXCI7dmFyIG89Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7dHQodGhpcy5fZWxlbWVudCkub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKCl7dC5zZXRUcmFuc2l0aW9uaW5nKCExKSx0dCh0Ll9lbGVtZW50KS5yZW1vdmVDbGFzcyhjdCkuYWRkQ2xhc3MoaHQpLnRyaWdnZXIoYXQuSElEREVOKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKG8pfX19LHQuc2V0VHJhbnNpdGlvbmluZz1mdW5jdGlvbih0KXt0aGlzLl9pc1RyYW5zaXRpb25pbmc9dH0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7dHQucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LG50KSx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fdHJpZ2dlckFycmF5PW51bGwsdGhpcy5faXNUcmFuc2l0aW9uaW5nPW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4odD1oKHt9LHN0LHQpKS50b2dnbGU9Qm9vbGVhbih0LnRvZ2dsZSksQ24udHlwZUNoZWNrQ29uZmlnKGV0LHQsb3QpLHR9LHQuX2dldERpbWVuc2lvbj1mdW5jdGlvbigpe3JldHVybiB0dCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhmdCk/ZnQ6ZHR9LHQuX2dldFBhcmVudD1mdW5jdGlvbigpe3ZhciBuPXRoaXMsdD1udWxsO0NuLmlzRWxlbWVudCh0aGlzLl9jb25maWcucGFyZW50KT8odD10aGlzLl9jb25maWcucGFyZW50LFwidW5kZWZpbmVkXCIhPXR5cGVvZiB0aGlzLl9jb25maWcucGFyZW50LmpxdWVyeSYmKHQ9dGhpcy5fY29uZmlnLnBhcmVudFswXSkpOnQ9dHQodGhpcy5fY29uZmlnLnBhcmVudClbMF07dmFyIGU9J1tkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdW2RhdGEtcGFyZW50PVwiJyt0aGlzLl9jb25maWcucGFyZW50KydcIl0nO3JldHVybiB0dCh0KS5maW5kKGUpLmVhY2goZnVuY3Rpb24odCxlKXtuLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MoYS5fZ2V0VGFyZ2V0RnJvbUVsZW1lbnQoZSksW2VdKX0pLHR9LHQuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbih0LGUpe2lmKHQpe3ZhciBuPXR0KHQpLmhhc0NsYXNzKGx0KTswPGUubGVuZ3RoJiZ0dChlKS50b2dnbGVDbGFzcyh1dCwhbikuYXR0cihcImFyaWEtZXhwYW5kZWRcIixuKX19LGEuX2dldFRhcmdldEZyb21FbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCk7cmV0dXJuIGU/dHQoZSlbMF06bnVsbH0sYS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10dCh0aGlzKSxlPXQuZGF0YShudCksbj1oKHt9LHN0LHQuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBpJiZpKTtpZighZSYmbi50b2dnbGUmJi9zaG93fGhpZGUvLnRlc3QoaSkmJihuLnRvZ2dsZT0hMSksZXx8KGU9bmV3IGEodGhpcyxuKSx0LmRhdGEobnQsZSkpLFwic3RyaW5nXCI9PXR5cGVvZiBpKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgZVtpXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2krJ1wiJyk7ZVtpXSgpfX0pfSxvKGEsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBzdH19XSksYX0oKSx0dChkb2N1bWVudCkub24oYXQuQ0xJQ0tfREFUQV9BUEksX3QuREFUQV9UT0dHTEUsZnVuY3Rpb24odCl7XCJBXCI9PT10LmN1cnJlbnRUYXJnZXQudGFnTmFtZSYmdC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPXR0KHRoaXMpLGU9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzKTt0dChlKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dHQodGhpcyksZT10LmRhdGEobnQpP1widG9nZ2xlXCI6bi5kYXRhKCk7Z3QuX2pRdWVyeUludGVyZmFjZS5jYWxsKHQsZSl9KX0pLHR0LmZuW2V0XT1ndC5falF1ZXJ5SW50ZXJmYWNlLHR0LmZuW2V0XS5Db25zdHJ1Y3Rvcj1ndCx0dC5mbltldF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB0dC5mbltldF09cnQsZ3QuX2pRdWVyeUludGVyZmFjZX0sZ3QpLFNuPShwdD1cImRyb3Bkb3duXCIsRXQ9XCIuXCIrKHZ0PVwiYnMuZHJvcGRvd25cIikseXQ9XCIuZGF0YS1hcGlcIixUdD0obXQ9ZSkuZm5bcHRdLEN0PW5ldyBSZWdFeHAoXCIzOHw0MHwyN1wiKSxJdD17SElERTpcImhpZGVcIitFdCxISURERU46XCJoaWRkZW5cIitFdCxTSE9XOlwic2hvd1wiK0V0LFNIT1dOOlwic2hvd25cIitFdCxDTElDSzpcImNsaWNrXCIrRXQsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK0V0K3l0LEtFWURPV05fREFUQV9BUEk6XCJrZXlkb3duXCIrRXQreXQsS0VZVVBfREFUQV9BUEk6XCJrZXl1cFwiK0V0K3l0fSxBdD1cImRpc2FibGVkXCIsRHQ9XCJzaG93XCIsYnQ9XCJkcm9wdXBcIixTdD1cImRyb3ByaWdodFwiLHd0PVwiZHJvcGxlZnRcIixOdD1cImRyb3Bkb3duLW1lbnUtcmlnaHRcIixPdD1cInBvc2l0aW9uLXN0YXRpY1wiLGt0PSdbZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXScsUHQ9XCIuZHJvcGRvd24gZm9ybVwiLEx0PVwiLmRyb3Bkb3duLW1lbnVcIixqdD1cIi5uYXZiYXItbmF2XCIsUnQ9XCIuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpub3QoLmRpc2FibGVkKTpub3QoOmRpc2FibGVkKVwiLEh0PVwidG9wLXN0YXJ0XCIsV3Q9XCJ0b3AtZW5kXCIsTXQ9XCJib3R0b20tc3RhcnRcIix4dD1cImJvdHRvbS1lbmRcIixVdD1cInJpZ2h0LXN0YXJ0XCIsS3Q9XCJsZWZ0LXN0YXJ0XCIsRnQ9e29mZnNldDowLGZsaXA6ITAsYm91bmRhcnk6XCJzY3JvbGxQYXJlbnRcIixyZWZlcmVuY2U6XCJ0b2dnbGVcIixkaXNwbGF5OlwiZHluYW1pY1wifSxWdD17b2Zmc2V0OlwiKG51bWJlcnxzdHJpbmd8ZnVuY3Rpb24pXCIsZmxpcDpcImJvb2xlYW5cIixib3VuZGFyeTpcIihzdHJpbmd8ZWxlbWVudClcIixyZWZlcmVuY2U6XCIoc3RyaW5nfGVsZW1lbnQpXCIsZGlzcGxheTpcInN0cmluZ1wifSxRdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGwodCxlKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9tZW51PXRoaXMuX2dldE1lbnVFbGVtZW50KCksdGhpcy5faW5OYXZiYXI9dGhpcy5fZGV0ZWN0TmF2YmFyKCksdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKX12YXIgdD1sLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24oKXtpZighdGhpcy5fZWxlbWVudC5kaXNhYmxlZCYmIW10KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEF0KSl7dmFyIHQ9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCksZT1tdCh0aGlzLl9tZW51KS5oYXNDbGFzcyhEdCk7aWYobC5fY2xlYXJNZW51cygpLCFlKXt2YXIgbj17cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fSxpPW10LkV2ZW50KEl0LlNIT1csbik7aWYobXQodCkudHJpZ2dlcihpKSwhaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7aWYoIXRoaXMuX2luTmF2YmFyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwIGRyb3Bkb3duIHJlcXVpcmUgUG9wcGVyLmpzIChodHRwczovL3BvcHBlci5qcy5vcmcpXCIpO3ZhciByPXRoaXMuX2VsZW1lbnQ7XCJwYXJlbnRcIj09PXRoaXMuX2NvbmZpZy5yZWZlcmVuY2U/cj10OkNuLmlzRWxlbWVudCh0aGlzLl9jb25maWcucmVmZXJlbmNlKSYmKHI9dGhpcy5fY29uZmlnLnJlZmVyZW5jZSxcInVuZGVmaW5lZFwiIT10eXBlb2YgdGhpcy5fY29uZmlnLnJlZmVyZW5jZS5qcXVlcnkmJihyPXRoaXMuX2NvbmZpZy5yZWZlcmVuY2VbMF0pKSxcInNjcm9sbFBhcmVudFwiIT09dGhpcy5fY29uZmlnLmJvdW5kYXJ5JiZtdCh0KS5hZGRDbGFzcyhPdCksdGhpcy5fcG9wcGVyPW5ldyBjKHIsdGhpcy5fbWVudSx0aGlzLl9nZXRQb3BwZXJDb25maWcoKSl9XCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmMD09PW10KHQpLmNsb3Nlc3QoanQpLmxlbmd0aCYmbXQoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vbihcIm1vdXNlb3ZlclwiLG51bGwsbXQubm9vcCksdGhpcy5fZWxlbWVudC5mb2N1cygpLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCEwKSxtdCh0aGlzLl9tZW51KS50b2dnbGVDbGFzcyhEdCksbXQodCkudG9nZ2xlQ2xhc3MoRHQpLnRyaWdnZXIobXQuRXZlbnQoSXQuU0hPV04sbikpfX19fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXttdC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsdnQpLG10KHRoaXMuX2VsZW1lbnQpLm9mZihFdCksdGhpcy5fZWxlbWVudD1udWxsLCh0aGlzLl9tZW51PW51bGwpIT09dGhpcy5fcG9wcGVyJiYodGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9wb3BwZXI9bnVsbCl9LHQudXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5faW5OYXZiYXI9dGhpcy5fZGV0ZWN0TmF2YmFyKCksbnVsbCE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLnNjaGVkdWxlVXBkYXRlKCl9LHQuX2FkZEV2ZW50TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczttdCh0aGlzLl9lbGVtZW50KS5vbihJdC5DTElDSyxmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxlLnRvZ2dsZSgpfSl9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1oKHt9LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdCxtdCh0aGlzLl9lbGVtZW50KS5kYXRhKCksdCksQ24udHlwZUNoZWNrQ29uZmlnKHB0LHQsdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0VHlwZSksdH0sdC5fZ2V0TWVudUVsZW1lbnQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fbWVudSl7dmFyIHQ9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7dGhpcy5fbWVudT1tdCh0KS5maW5kKEx0KVswXX1yZXR1cm4gdGhpcy5fbWVudX0sdC5fZ2V0UGxhY2VtZW50PWZ1bmN0aW9uKCl7dmFyIHQ9bXQodGhpcy5fZWxlbWVudCkucGFyZW50KCksZT1NdDtyZXR1cm4gdC5oYXNDbGFzcyhidCk/KGU9SHQsbXQodGhpcy5fbWVudSkuaGFzQ2xhc3MoTnQpJiYoZT1XdCkpOnQuaGFzQ2xhc3MoU3QpP2U9VXQ6dC5oYXNDbGFzcyh3dCk/ZT1LdDptdCh0aGlzLl9tZW51KS5oYXNDbGFzcyhOdCkmJihlPXh0KSxlfSx0Ll9kZXRlY3ROYXZiYXI9ZnVuY3Rpb24oKXtyZXR1cm4gMDxtdCh0aGlzLl9lbGVtZW50KS5jbG9zZXN0KFwiLm5hdmJhclwiKS5sZW5ndGh9LHQuX2dldFBvcHBlckNvbmZpZz1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD17fTtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLl9jb25maWcub2Zmc2V0P3QuZm49ZnVuY3Rpb24odCl7cmV0dXJuIHQub2Zmc2V0cz1oKHt9LHQub2Zmc2V0cyxlLl9jb25maWcub2Zmc2V0KHQub2Zmc2V0cyl8fHt9KSx0fTp0Lm9mZnNldD10aGlzLl9jb25maWcub2Zmc2V0O3ZhciBuPXtwbGFjZW1lbnQ6dGhpcy5fZ2V0UGxhY2VtZW50KCksbW9kaWZpZXJzOntvZmZzZXQ6dCxmbGlwOntlbmFibGVkOnRoaXMuX2NvbmZpZy5mbGlwfSxwcmV2ZW50T3ZlcmZsb3c6e2JvdW5kYXJpZXNFbGVtZW50OnRoaXMuX2NvbmZpZy5ib3VuZGFyeX19fTtyZXR1cm5cInN0YXRpY1wiPT09dGhpcy5fY29uZmlnLmRpc3BsYXkmJihuLm1vZGlmaWVycy5hcHBseVN0eWxlPXtlbmFibGVkOiExfSksbn0sbC5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1tdCh0aGlzKS5kYXRhKHZ0KTtpZih0fHwodD1uZXcgbCh0aGlzLFwib2JqZWN0XCI9PXR5cGVvZiBlP2U6bnVsbCksbXQodGhpcykuZGF0YSh2dCx0KSksXCJzdHJpbmdcIj09dHlwZW9mIGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W2VdKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrZSsnXCInKTt0W2VdKCl9fSl9LGwuX2NsZWFyTWVudXM9ZnVuY3Rpb24odCl7aWYoIXR8fDMhPT10LndoaWNoJiYoXCJrZXl1cFwiIT09dC50eXBlfHw5PT09dC53aGljaCkpZm9yKHZhciBlPW10Lm1ha2VBcnJheShtdChrdCkpLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQoZVtuXSkscj1tdChlW25dKS5kYXRhKHZ0KSxzPXtyZWxhdGVkVGFyZ2V0OmVbbl19O2lmKHIpe3ZhciBvPXIuX21lbnU7aWYobXQoaSkuaGFzQ2xhc3MoRHQpJiYhKHQmJihcImNsaWNrXCI9PT10LnR5cGUmJi9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QodC50YXJnZXQudGFnTmFtZSl8fFwia2V5dXBcIj09PXQudHlwZSYmOT09PXQud2hpY2gpJiZtdC5jb250YWlucyhpLHQudGFyZ2V0KSkpe3ZhciBhPW10LkV2ZW50KEl0LkhJREUscyk7bXQoaSkudHJpZ2dlcihhKSxhLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwoXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmbXQoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vZmYoXCJtb3VzZW92ZXJcIixudWxsLG10Lm5vb3ApLGVbbl0uc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLFwiZmFsc2VcIiksbXQobykucmVtb3ZlQ2xhc3MoRHQpLG10KGkpLnJlbW92ZUNsYXNzKER0KS50cmlnZ2VyKG10LkV2ZW50KEl0LkhJRERFTixzKSkpfX19fSxsLl9nZXRQYXJlbnRGcm9tRWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZSxuPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCk7cmV0dXJuIG4mJihlPW10KG4pWzBdKSxlfHx0LnBhcmVudE5vZGV9LGwuX2RhdGFBcGlLZXlkb3duSGFuZGxlcj1mdW5jdGlvbih0KXtpZigoL2lucHV0fHRleHRhcmVhL2kudGVzdCh0LnRhcmdldC50YWdOYW1lKT8hKDMyPT09dC53aGljaHx8MjchPT10LndoaWNoJiYoNDAhPT10LndoaWNoJiYzOCE9PXQud2hpY2h8fG10KHQudGFyZ2V0KS5jbG9zZXN0KEx0KS5sZW5ndGgpKTpDdC50ZXN0KHQud2hpY2gpKSYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLCF0aGlzLmRpc2FibGVkJiYhbXQodGhpcykuaGFzQ2xhc3MoQXQpKSl7dmFyIGU9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcyksbj1tdChlKS5oYXNDbGFzcyhEdCk7aWYoKG58fDI3PT09dC53aGljaCYmMzI9PT10LndoaWNoKSYmKCFufHwyNyE9PXQud2hpY2gmJjMyIT09dC53aGljaCkpe3ZhciBpPW10KGUpLmZpbmQoUnQpLmdldCgpO2lmKDAhPT1pLmxlbmd0aCl7dmFyIHI9aS5pbmRleE9mKHQudGFyZ2V0KTszOD09PXQud2hpY2gmJjA8ciYmci0tLDQwPT09dC53aGljaCYmcjxpLmxlbmd0aC0xJiZyKysscjwwJiYocj0wKSxpW3JdLmZvY3VzKCl9fWVsc2V7aWYoMjc9PT10LndoaWNoKXt2YXIgcz1tdChlKS5maW5kKGt0KVswXTttdChzKS50cmlnZ2VyKFwiZm9jdXNcIil9bXQodGhpcykudHJpZ2dlcihcImNsaWNrXCIpfX19LG8obCxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ0fX0se2tleTpcIkRlZmF1bHRUeXBlXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZ0fX1dKSxsfSgpLG10KGRvY3VtZW50KS5vbihJdC5LRVlET1dOX0RBVEFfQVBJLGt0LFF0Ll9kYXRhQXBpS2V5ZG93bkhhbmRsZXIpLm9uKEl0LktFWURPV05fREFUQV9BUEksTHQsUXQuX2RhdGFBcGlLZXlkb3duSGFuZGxlcikub24oSXQuQ0xJQ0tfREFUQV9BUEkrXCIgXCIrSXQuS0VZVVBfREFUQV9BUEksUXQuX2NsZWFyTWVudXMpLm9uKEl0LkNMSUNLX0RBVEFfQVBJLGt0LGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLFF0Ll9qUXVlcnlJbnRlcmZhY2UuY2FsbChtdCh0aGlzKSxcInRvZ2dsZVwiKX0pLm9uKEl0LkNMSUNLX0RBVEFfQVBJLFB0LGZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9KSxtdC5mbltwdF09UXQuX2pRdWVyeUludGVyZmFjZSxtdC5mbltwdF0uQ29uc3RydWN0b3I9UXQsbXQuZm5bcHRdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbXQuZm5bcHRdPVR0LFF0Ll9qUXVlcnlJbnRlcmZhY2V9LFF0KSx3bj0oWXQ9XCJtb2RhbFwiLHF0PVwiLlwiKyhHdD1cImJzLm1vZGFsXCIpLHp0PShCdD1lKS5mbltZdF0sWHQ9e2JhY2tkcm9wOiEwLGtleWJvYXJkOiEwLGZvY3VzOiEwLHNob3c6ITB9LEp0PXtiYWNrZHJvcDpcIihib29sZWFufHN0cmluZylcIixrZXlib2FyZDpcImJvb2xlYW5cIixmb2N1czpcImJvb2xlYW5cIixzaG93OlwiYm9vbGVhblwifSxadD17SElERTpcImhpZGVcIitxdCxISURERU46XCJoaWRkZW5cIitxdCxTSE9XOlwic2hvd1wiK3F0LFNIT1dOOlwic2hvd25cIitxdCxGT0NVU0lOOlwiZm9jdXNpblwiK3F0LFJFU0laRTpcInJlc2l6ZVwiK3F0LENMSUNLX0RJU01JU1M6XCJjbGljay5kaXNtaXNzXCIrcXQsS0VZRE9XTl9ESVNNSVNTOlwia2V5ZG93bi5kaXNtaXNzXCIrcXQsTU9VU0VVUF9ESVNNSVNTOlwibW91c2V1cC5kaXNtaXNzXCIrcXQsTU9VU0VET1dOX0RJU01JU1M6XCJtb3VzZWRvd24uZGlzbWlzc1wiK3F0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitxdCtcIi5kYXRhLWFwaVwifSwkdD1cIm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlXCIsdGU9XCJtb2RhbC1iYWNrZHJvcFwiLGVlPVwibW9kYWwtb3BlblwiLG5lPVwiZmFkZVwiLGllPVwic2hvd1wiLHJlPXtESUFMT0c6XCIubW9kYWwtZGlhbG9nXCIsREFUQV9UT0dHTEU6J1tkYXRhLXRvZ2dsZT1cIm1vZGFsXCJdJyxEQVRBX0RJU01JU1M6J1tkYXRhLWRpc21pc3M9XCJtb2RhbFwiXScsRklYRURfQ09OVEVOVDpcIi5maXhlZC10b3AsIC5maXhlZC1ib3R0b20sIC5pcy1maXhlZCwgLnN0aWNreS10b3BcIixTVElDS1lfQ09OVEVOVDpcIi5zdGlja3ktdG9wXCIsTkFWQkFSX1RPR0dMRVI6XCIubmF2YmFyLXRvZ2dsZXJcIn0sc2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQsZSl7dGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9lbGVtZW50PXQsdGhpcy5fZGlhbG9nPUJ0KHQpLmZpbmQocmUuRElBTE9HKVswXSx0aGlzLl9iYWNrZHJvcD1udWxsLHRoaXMuX2lzU2hvd249ITEsdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmc9ITEsdGhpcy5faWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLl9zY3JvbGxiYXJXaWR0aD0wfXZhciB0PXIucHJvdG90eXBlO3JldHVybiB0LnRvZ2dsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3codCl9LHQuc2hvdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJiF0aGlzLl9pc1Nob3duKXtCdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSkmJih0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITApO3ZhciBuPUJ0LkV2ZW50KFp0LlNIT1cse3JlbGF0ZWRUYXJnZXQ6dH0pO0J0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIobiksdGhpcy5faXNTaG93bnx8bi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KHRoaXMuX2lzU2hvd249ITAsdGhpcy5fY2hlY2tTY3JvbGxiYXIoKSx0aGlzLl9zZXRTY3JvbGxiYXIoKSx0aGlzLl9hZGp1c3REaWFsb2coKSxCdChkb2N1bWVudC5ib2R5KS5hZGRDbGFzcyhlZSksdGhpcy5fc2V0RXNjYXBlRXZlbnQoKSx0aGlzLl9zZXRSZXNpemVFdmVudCgpLEJ0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LkNMSUNLX0RJU01JU1MscmUuREFUQV9ESVNNSVNTLGZ1bmN0aW9uKHQpe3JldHVybiBlLmhpZGUodCl9KSxCdCh0aGlzLl9kaWFsb2cpLm9uKFp0Lk1PVVNFRE9XTl9ESVNNSVNTLGZ1bmN0aW9uKCl7QnQoZS5fZWxlbWVudCkub25lKFp0Lk1PVVNFVVBfRElTTUlTUyxmdW5jdGlvbih0KXtCdCh0LnRhcmdldCkuaXMoZS5fZWxlbWVudCkmJihlLl9pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5fc2hvd0JhY2tkcm9wKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3Nob3dFbGVtZW50KHQpfSkpfX0sdC5oaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodCYmdC5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJnRoaXMuX2lzU2hvd24pe3ZhciBuPUJ0LkV2ZW50KFp0LkhJREUpO2lmKEJ0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIobiksdGhpcy5faXNTaG93biYmIW4uaXNEZWZhdWx0UHJldmVudGVkKCkpe3RoaXMuX2lzU2hvd249ITE7dmFyIGk9QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpO2lmKGkmJih0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITApLHRoaXMuX3NldEVzY2FwZUV2ZW50KCksdGhpcy5fc2V0UmVzaXplRXZlbnQoKSxCdChkb2N1bWVudCkub2ZmKFp0LkZPQ1VTSU4pLEJ0KHRoaXMuX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGllKSxCdCh0aGlzLl9lbGVtZW50KS5vZmYoWnQuQ0xJQ0tfRElTTUlTUyksQnQodGhpcy5fZGlhbG9nKS5vZmYoWnQuTU9VU0VET1dOX0RJU01JU1MpLGkpe3ZhciByPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO0J0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbih0KXtyZXR1cm4gZS5faGlkZU1vZGFsKHQpfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQocil9ZWxzZSB0aGlzLl9oaWRlTW9kYWwoKX19fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtCdC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsR3QpLEJ0KHdpbmRvdyxkb2N1bWVudCx0aGlzLl9lbGVtZW50LHRoaXMuX2JhY2tkcm9wKS5vZmYocXQpLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9kaWFsb2c9bnVsbCx0aGlzLl9iYWNrZHJvcD1udWxsLHRoaXMuX2lzU2hvd249bnVsbCx0aGlzLl9pc0JvZHlPdmVyZmxvd2luZz1udWxsLHRoaXMuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9bnVsbCx0aGlzLl9zY3JvbGxiYXJXaWR0aD1udWxsfSx0LmhhbmRsZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX2FkanVzdERpYWxvZygpfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9aCh7fSxYdCx0KSxDbi50eXBlQ2hlY2tDb25maWcoWXQsdCxKdCksdH0sdC5fc2hvd0VsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPUJ0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKG5lKTt0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUmJnRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfHxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheT1cImJsb2NrXCIsdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiKSx0aGlzLl9lbGVtZW50LnNjcm9sbFRvcD0wLG4mJkNuLnJlZmxvdyh0aGlzLl9lbGVtZW50KSxCdCh0aGlzLl9lbGVtZW50KS5hZGRDbGFzcyhpZSksdGhpcy5fY29uZmlnLmZvY3VzJiZ0aGlzLl9lbmZvcmNlRm9jdXMoKTt2YXIgaT1CdC5FdmVudChadC5TSE9XTix7cmVsYXRlZFRhcmdldDp0fSkscj1mdW5jdGlvbigpe2UuX2NvbmZpZy5mb2N1cyYmZS5fZWxlbWVudC5mb2N1cygpLGUuX2lzVHJhbnNpdGlvbmluZz0hMSxCdChlLl9lbGVtZW50KS50cmlnZ2VyKGkpfTtpZihuKXt2YXIgcz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTtCdCh0aGlzLl9kaWFsb2cpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxyKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChzKX1lbHNlIHIoKX0sdC5fZW5mb3JjZUZvY3VzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztCdChkb2N1bWVudCkub2ZmKFp0LkZPQ1VTSU4pLm9uKFp0LkZPQ1VTSU4sZnVuY3Rpb24odCl7ZG9jdW1lbnQhPT10LnRhcmdldCYmZS5fZWxlbWVudCE9PXQudGFyZ2V0JiYwPT09QnQoZS5fZWxlbWVudCkuaGFzKHQudGFyZ2V0KS5sZW5ndGgmJmUuX2VsZW1lbnQuZm9jdXMoKX0pfSx0Ll9zZXRFc2NhcGVFdmVudD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faXNTaG93biYmdGhpcy5fY29uZmlnLmtleWJvYXJkP0J0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LktFWURPV05fRElTTUlTUyxmdW5jdGlvbih0KXsyNz09PXQud2hpY2gmJih0LnByZXZlbnREZWZhdWx0KCksZS5oaWRlKCkpfSk6dGhpcy5faXNTaG93bnx8QnQodGhpcy5fZWxlbWVudCkub2ZmKFp0LktFWURPV05fRElTTUlTUyl9LHQuX3NldFJlc2l6ZUV2ZW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9pc1Nob3duP0J0KHdpbmRvdykub24oWnQuUkVTSVpFLGZ1bmN0aW9uKHQpe3JldHVybiBlLmhhbmRsZVVwZGF0ZSh0KX0pOkJ0KHdpbmRvdykub2ZmKFp0LlJFU0laRSl9LHQuX2hpZGVNb2RhbD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwhMCksdGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLHRoaXMuX3Nob3dCYWNrZHJvcChmdW5jdGlvbigpe0J0KGRvY3VtZW50LmJvZHkpLnJlbW92ZUNsYXNzKGVlKSx0Ll9yZXNldEFkanVzdG1lbnRzKCksdC5fcmVzZXRTY3JvbGxiYXIoKSxCdCh0Ll9lbGVtZW50KS50cmlnZ2VyKFp0LkhJRERFTil9KX0sdC5fcmVtb3ZlQmFja2Ryb3A9ZnVuY3Rpb24oKXt0aGlzLl9iYWNrZHJvcCYmKEJ0KHRoaXMuX2JhY2tkcm9wKS5yZW1vdmUoKSx0aGlzLl9iYWNrZHJvcD1udWxsKX0sdC5fc2hvd0JhY2tkcm9wPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1CdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSk/bmU6XCJcIjtpZih0aGlzLl9pc1Nob3duJiZ0aGlzLl9jb25maWcuYmFja2Ryb3Ape2lmKHRoaXMuX2JhY2tkcm9wPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksdGhpcy5fYmFja2Ryb3AuY2xhc3NOYW1lPXRlLG4mJkJ0KHRoaXMuX2JhY2tkcm9wKS5hZGRDbGFzcyhuKSxCdCh0aGlzLl9iYWNrZHJvcCkuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSksQnQodGhpcy5fZWxlbWVudCkub24oWnQuQ0xJQ0tfRElTTUlTUyxmdW5jdGlvbih0KXtlLl9pZ25vcmVCYWNrZHJvcENsaWNrP2UuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9ITE6dC50YXJnZXQ9PT10LmN1cnJlbnRUYXJnZXQmJihcInN0YXRpY1wiPT09ZS5fY29uZmlnLmJhY2tkcm9wP2UuX2VsZW1lbnQuZm9jdXMoKTplLmhpZGUoKSl9KSxuJiZDbi5yZWZsb3codGhpcy5fYmFja2Ryb3ApLEJ0KHRoaXMuX2JhY2tkcm9wKS5hZGRDbGFzcyhpZSksIXQpcmV0dXJuO2lmKCFuKXJldHVybiB2b2lkIHQoKTt2YXIgaT1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9iYWNrZHJvcCk7QnQodGhpcy5fYmFja2Ryb3ApLm9uZShDbi5UUkFOU0lUSU9OX0VORCx0KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChpKX1lbHNlIGlmKCF0aGlzLl9pc1Nob3duJiZ0aGlzLl9iYWNrZHJvcCl7QnQodGhpcy5fYmFja2Ryb3ApLnJlbW92ZUNsYXNzKGllKTt2YXIgcj1mdW5jdGlvbigpe2UuX3JlbW92ZUJhY2tkcm9wKCksdCYmdCgpfTtpZihCdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSkpe3ZhciBzPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2JhY2tkcm9wKTtCdCh0aGlzLl9iYWNrZHJvcCkub25lKENuLlRSQU5TSVRJT05fRU5ELHIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHMpfWVsc2UgcigpfWVsc2UgdCYmdCgpfSx0Ll9hZGp1c3REaWFsb2c9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9lbGVtZW50LnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OyF0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyYmdCYmKHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQ9dGhpcy5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKSx0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyYmIXQmJih0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodD10aGlzLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSx0Ll9yZXNldEFkanVzdG1lbnRzPWZ1bmN0aW9uKCl7dGhpcy5fZWxlbWVudC5zdHlsZS5wYWRkaW5nTGVmdD1cIlwiLHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ1JpZ2h0PVwiXCJ9LHQuX2NoZWNrU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLl9pc0JvZHlPdmVyZmxvd2luZz10LmxlZnQrdC5yaWdodDx3aW5kb3cuaW5uZXJXaWR0aCx0aGlzLl9zY3JvbGxiYXJXaWR0aD10aGlzLl9nZXRTY3JvbGxiYXJXaWR0aCgpfSx0Ll9zZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO2lmKHRoaXMuX2lzQm9keU92ZXJmbG93aW5nKXtCdChyZS5GSVhFRF9DT05URU5UKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSlbMF0uc3R5bGUucGFkZGluZ1JpZ2h0LGk9QnQoZSkuY3NzKFwicGFkZGluZy1yaWdodFwiKTtCdChlKS5kYXRhKFwicGFkZGluZy1yaWdodFwiLG4pLmNzcyhcInBhZGRpbmctcmlnaHRcIixwYXJzZUZsb2F0KGkpK3IuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KSxCdChyZS5TVElDS1lfQ09OVEVOVCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLm1hcmdpblJpZ2h0LGk9QnQoZSkuY3NzKFwibWFyZ2luLXJpZ2h0XCIpO0J0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIixuKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixwYXJzZUZsb2F0KGkpLXIuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KSxCdChyZS5OQVZCQVJfVE9HR0xFUikuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLm1hcmdpblJpZ2h0LGk9QnQoZSkuY3NzKFwibWFyZ2luLXJpZ2h0XCIpO0J0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIixuKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixwYXJzZUZsb2F0KGkpK3IuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KTt2YXIgdD1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCxlPUJ0KGRvY3VtZW50LmJvZHkpLmNzcyhcInBhZGRpbmctcmlnaHRcIik7QnQoZG9jdW1lbnQuYm9keSkuZGF0YShcInBhZGRpbmctcmlnaHRcIix0KS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIscGFyc2VGbG9hdChlKSt0aGlzLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfX0sdC5fcmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXtCdChyZS5GSVhFRF9DT05URU5UKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSkuZGF0YShcInBhZGRpbmctcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG4mJkJ0KGUpLmNzcyhcInBhZGRpbmctcmlnaHRcIixuKS5yZW1vdmVEYXRhKFwicGFkZGluZy1yaWdodFwiKX0pLEJ0KHJlLlNUSUNLWV9DT05URU5UK1wiLCBcIityZS5OQVZCQVJfVE9HR0xFUikuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG4mJkJ0KGUpLmNzcyhcIm1hcmdpbi1yaWdodFwiLG4pLnJlbW92ZURhdGEoXCJtYXJnaW4tcmlnaHRcIil9KTt2YXIgdD1CdChkb2N1bWVudC5ib2R5KS5kYXRhKFwicGFkZGluZy1yaWdodFwiKTtcInVuZGVmaW5lZFwiIT10eXBlb2YgdCYmQnQoZG9jdW1lbnQuYm9keSkuY3NzKFwicGFkZGluZy1yaWdodFwiLHQpLnJlbW92ZURhdGEoXCJwYWRkaW5nLXJpZ2h0XCIpfSx0Ll9nZXRTY3JvbGxiYXJXaWR0aD1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7dC5jbGFzc05hbWU9JHQsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KTt2YXIgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLXQuY2xpZW50V2lkdGg7cmV0dXJuIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCksZX0sci5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4saSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PUJ0KHRoaXMpLmRhdGEoR3QpLGU9aCh7fSxyLkRlZmF1bHQsQnQodGhpcykuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBuJiZuKTtpZih0fHwodD1uZXcgcih0aGlzLGUpLEJ0KHRoaXMpLmRhdGEoR3QsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXShpKX1lbHNlIGUuc2hvdyYmdC5zaG93KGkpfSl9LG8ocixudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFh0fX1dKSxyfSgpLEJ0KGRvY3VtZW50KS5vbihadC5DTElDS19EQVRBX0FQSSxyZS5EQVRBX1RPR0dMRSxmdW5jdGlvbih0KXt2YXIgZSxuPXRoaXMsaT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMpO2kmJihlPUJ0KGkpWzBdKTt2YXIgcj1CdChlKS5kYXRhKEd0KT9cInRvZ2dsZVwiOmgoe30sQnQoZSkuZGF0YSgpLEJ0KHRoaXMpLmRhdGEoKSk7XCJBXCIhPT10aGlzLnRhZ05hbWUmJlwiQVJFQVwiIT09dGhpcy50YWdOYW1lfHx0LnByZXZlbnREZWZhdWx0KCk7dmFyIHM9QnQoZSkub25lKFp0LlNIT1csZnVuY3Rpb24odCl7dC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8cy5vbmUoWnQuSElEREVOLGZ1bmN0aW9uKCl7QnQobikuaXMoXCI6dmlzaWJsZVwiKSYmbi5mb2N1cygpfSl9KTtzZS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwoQnQoZSkscix0aGlzKX0pLEJ0LmZuW1l0XT1zZS5falF1ZXJ5SW50ZXJmYWNlLEJ0LmZuW1l0XS5Db25zdHJ1Y3Rvcj1zZSxCdC5mbltZdF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBCdC5mbltZdF09enQsc2UuX2pRdWVyeUludGVyZmFjZX0sc2UpLE5uPShhZT1cInRvb2x0aXBcIixoZT1cIi5cIisobGU9XCJicy50b29sdGlwXCIpLGNlPShvZT1lKS5mblthZV0sdWU9XCJicy10b29sdGlwXCIsZmU9bmV3IFJlZ0V4cChcIihefFxcXFxzKVwiK3VlK1wiXFxcXFMrXCIsXCJnXCIpLGdlPXthbmltYXRpb246ITAsdGVtcGxhdGU6JzxkaXYgY2xhc3M9XCJ0b29sdGlwXCIgcm9sZT1cInRvb2x0aXBcIj48ZGl2IGNsYXNzPVwiYXJyb3dcIj48L2Rpdj48ZGl2IGNsYXNzPVwidG9vbHRpcC1pbm5lclwiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjpcImhvdmVyIGZvY3VzXCIsdGl0bGU6XCJcIixkZWxheTowLGh0bWw6IShfZT17QVVUTzpcImF1dG9cIixUT1A6XCJ0b3BcIixSSUdIVDpcInJpZ2h0XCIsQk9UVE9NOlwiYm90dG9tXCIsTEVGVDpcImxlZnRcIn0pLHNlbGVjdG9yOiEoZGU9e2FuaW1hdGlvbjpcImJvb2xlYW5cIix0ZW1wbGF0ZTpcInN0cmluZ1wiLHRpdGxlOlwiKHN0cmluZ3xlbGVtZW50fGZ1bmN0aW9uKVwiLHRyaWdnZXI6XCJzdHJpbmdcIixkZWxheTpcIihudW1iZXJ8b2JqZWN0KVwiLGh0bWw6XCJib29sZWFuXCIsc2VsZWN0b3I6XCIoc3RyaW5nfGJvb2xlYW4pXCIscGxhY2VtZW50OlwiKHN0cmluZ3xmdW5jdGlvbilcIixvZmZzZXQ6XCIobnVtYmVyfHN0cmluZylcIixjb250YWluZXI6XCIoc3RyaW5nfGVsZW1lbnR8Ym9vbGVhbilcIixmYWxsYmFja1BsYWNlbWVudDpcIihzdHJpbmd8YXJyYXkpXCIsYm91bmRhcnk6XCIoc3RyaW5nfGVsZW1lbnQpXCJ9KSxwbGFjZW1lbnQ6XCJ0b3BcIixvZmZzZXQ6MCxjb250YWluZXI6ITEsZmFsbGJhY2tQbGFjZW1lbnQ6XCJmbGlwXCIsYm91bmRhcnk6XCJzY3JvbGxQYXJlbnRcIn0scGU9XCJvdXRcIix2ZT17SElERTpcImhpZGVcIitoZSxISURERU46XCJoaWRkZW5cIitoZSxTSE9XOihtZT1cInNob3dcIikraGUsU0hPV046XCJzaG93blwiK2hlLElOU0VSVEVEOlwiaW5zZXJ0ZWRcIitoZSxDTElDSzpcImNsaWNrXCIraGUsRk9DVVNJTjpcImZvY3VzaW5cIitoZSxGT0NVU09VVDpcImZvY3Vzb3V0XCIraGUsTU9VU0VFTlRFUjpcIm1vdXNlZW50ZXJcIitoZSxNT1VTRUxFQVZFOlwibW91c2VsZWF2ZVwiK2hlfSxFZT1cImZhZGVcIix5ZT1cInNob3dcIixUZT1cIi50b29sdGlwLWlubmVyXCIsQ2U9XCIuYXJyb3dcIixJZT1cImhvdmVyXCIsQWU9XCJmb2N1c1wiLERlPVwiY2xpY2tcIixiZT1cIm1hbnVhbFwiLFNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0LGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBjKXRocm93IG5ldyBUeXBlRXJyb3IoXCJCb290c3RyYXAgdG9vbHRpcHMgcmVxdWlyZSBQb3BwZXIuanMgKGh0dHBzOi8vcG9wcGVyLmpzLm9yZylcIik7dGhpcy5faXNFbmFibGVkPSEwLHRoaXMuX3RpbWVvdXQ9MCx0aGlzLl9ob3ZlclN0YXRlPVwiXCIsdGhpcy5fYWN0aXZlVHJpZ2dlcj17fSx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLmVsZW1lbnQ9dCx0aGlzLmNvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy50aXA9bnVsbCx0aGlzLl9zZXRMaXN0ZW5lcnMoKX12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLl9pc0VuYWJsZWQ9ITB9LHQuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2lzRW5hYmxlZD0hMX0sdC50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5faXNFbmFibGVkPSF0aGlzLl9pc0VuYWJsZWR9LHQudG9nZ2xlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lzRW5hYmxlZClpZih0KXt2YXIgZT10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZLG49b2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKGUpO258fChuPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEoZSxuKSksbi5fYWN0aXZlVHJpZ2dlci5jbGljaz0hbi5fYWN0aXZlVHJpZ2dlci5jbGljayxuLl9pc1dpdGhBY3RpdmVUcmlnZ2VyKCk/bi5fZW50ZXIobnVsbCxuKTpuLl9sZWF2ZShudWxsLG4pfWVsc2V7aWYob2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLmhhc0NsYXNzKHllKSlyZXR1cm4gdm9pZCB0aGlzLl9sZWF2ZShudWxsLHRoaXMpO3RoaXMuX2VudGVyKG51bGwsdGhpcyl9fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCksb2UucmVtb3ZlRGF0YSh0aGlzLmVsZW1lbnQsdGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSksb2UodGhpcy5lbGVtZW50KS5vZmYodGhpcy5jb25zdHJ1Y3Rvci5FVkVOVF9LRVkpLG9lKHRoaXMuZWxlbWVudCkuY2xvc2VzdChcIi5tb2RhbFwiKS5vZmYoXCJoaWRlLmJzLm1vZGFsXCIpLHRoaXMudGlwJiZvZSh0aGlzLnRpcCkucmVtb3ZlKCksdGhpcy5faXNFbmFibGVkPW51bGwsdGhpcy5fdGltZW91dD1udWxsLHRoaXMuX2hvdmVyU3RhdGU9bnVsbCwodGhpcy5fYWN0aXZlVHJpZ2dlcj1udWxsKSE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLmVsZW1lbnQ9bnVsbCx0aGlzLmNvbmZpZz1udWxsLHRoaXMudGlwPW51bGx9LHQuc2hvdz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoXCJub25lXCI9PT1vZSh0aGlzLmVsZW1lbnQpLmNzcyhcImRpc3BsYXlcIikpdGhyb3cgbmV3IEVycm9yKFwiUGxlYXNlIHVzZSBzaG93IG9uIHZpc2libGUgZWxlbWVudHNcIik7dmFyIHQ9b2UuRXZlbnQodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5TSE9XKTtpZih0aGlzLmlzV2l0aENvbnRlbnQoKSYmdGhpcy5faXNFbmFibGVkKXtvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIodCk7dmFyIG49b2UuY29udGFpbnModGhpcy5lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMuZWxlbWVudCk7aWYodC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8IW4pcmV0dXJuO3ZhciBpPXRoaXMuZ2V0VGlwRWxlbWVudCgpLHI9Q24uZ2V0VUlEKHRoaXMuY29uc3RydWN0b3IuTkFNRSk7aS5zZXRBdHRyaWJ1dGUoXCJpZFwiLHIpLHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWRlc2NyaWJlZGJ5XCIsciksdGhpcy5zZXRDb250ZW50KCksdGhpcy5jb25maWcuYW5pbWF0aW9uJiZvZShpKS5hZGRDbGFzcyhFZSk7dmFyIHM9XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5jb25maWcucGxhY2VtZW50P3RoaXMuY29uZmlnLnBsYWNlbWVudC5jYWxsKHRoaXMsaSx0aGlzLmVsZW1lbnQpOnRoaXMuY29uZmlnLnBsYWNlbWVudCxvPXRoaXMuX2dldEF0dGFjaG1lbnQocyk7dGhpcy5hZGRBdHRhY2htZW50Q2xhc3Mobyk7dmFyIGE9ITE9PT10aGlzLmNvbmZpZy5jb250YWluZXI/ZG9jdW1lbnQuYm9keTpvZSh0aGlzLmNvbmZpZy5jb250YWluZXIpO29lKGkpLmRhdGEodGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSx0aGlzKSxvZS5jb250YWlucyh0aGlzLmVsZW1lbnQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdGhpcy50aXApfHxvZShpKS5hcHBlbmRUbyhhKSxvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5JTlNFUlRFRCksdGhpcy5fcG9wcGVyPW5ldyBjKHRoaXMuZWxlbWVudCxpLHtwbGFjZW1lbnQ6byxtb2RpZmllcnM6e29mZnNldDp7b2Zmc2V0OnRoaXMuY29uZmlnLm9mZnNldH0sZmxpcDp7YmVoYXZpb3I6dGhpcy5jb25maWcuZmFsbGJhY2tQbGFjZW1lbnR9LGFycm93OntlbGVtZW50OkNlfSxwcmV2ZW50T3ZlcmZsb3c6e2JvdW5kYXJpZXNFbGVtZW50OnRoaXMuY29uZmlnLmJvdW5kYXJ5fX0sb25DcmVhdGU6ZnVuY3Rpb24odCl7dC5vcmlnaW5hbFBsYWNlbWVudCE9PXQucGxhY2VtZW50JiZlLl9oYW5kbGVQb3BwZXJQbGFjZW1lbnRDaGFuZ2UodCl9LG9uVXBkYXRlOmZ1bmN0aW9uKHQpe2UuX2hhbmRsZVBvcHBlclBsYWNlbWVudENoYW5nZSh0KX19KSxvZShpKS5hZGRDbGFzcyh5ZSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmb2UoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vbihcIm1vdXNlb3ZlclwiLG51bGwsb2Uubm9vcCk7dmFyIGw9ZnVuY3Rpb24oKXtlLmNvbmZpZy5hbmltYXRpb24mJmUuX2ZpeFRyYW5zaXRpb24oKTt2YXIgdD1lLl9ob3ZlclN0YXRlO2UuX2hvdmVyU3RhdGU9bnVsbCxvZShlLmVsZW1lbnQpLnRyaWdnZXIoZS5jb25zdHJ1Y3Rvci5FdmVudC5TSE9XTiksdD09PXBlJiZlLl9sZWF2ZShudWxsLGUpfTtpZihvZSh0aGlzLnRpcCkuaGFzQ2xhc3MoRWUpKXt2YXIgaD1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLnRpcCk7b2UodGhpcy50aXApLm9uZShDbi5UUkFOU0lUSU9OX0VORCxsKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChoKX1lbHNlIGwoKX19LHQuaGlkZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5nZXRUaXBFbGVtZW50KCksaT1vZS5FdmVudCh0aGlzLmNvbnN0cnVjdG9yLkV2ZW50LkhJREUpLHI9ZnVuY3Rpb24oKXtlLl9ob3ZlclN0YXRlIT09bWUmJm4ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pLGUuX2NsZWFuVGlwQ2xhc3MoKSxlLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiKSxvZShlLmVsZW1lbnQpLnRyaWdnZXIoZS5jb25zdHJ1Y3Rvci5FdmVudC5ISURERU4pLG51bGwhPT1lLl9wb3BwZXImJmUuX3BvcHBlci5kZXN0cm95KCksdCYmdCgpfTtpZihvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIoaSksIWkuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKG9lKG4pLnJlbW92ZUNsYXNzKHllKSxcIm9udG91Y2hzdGFydFwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZvZShkb2N1bWVudC5ib2R5KS5jaGlsZHJlbigpLm9mZihcIm1vdXNlb3ZlclwiLG51bGwsb2Uubm9vcCksdGhpcy5fYWN0aXZlVHJpZ2dlcltEZV09ITEsdGhpcy5fYWN0aXZlVHJpZ2dlcltBZV09ITEsdGhpcy5fYWN0aXZlVHJpZ2dlcltJZV09ITEsb2UodGhpcy50aXApLmhhc0NsYXNzKEVlKSl7dmFyIHM9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQobik7b2Uobikub25lKENuLlRSQU5TSVRJT05fRU5ELHIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHMpfWVsc2UgcigpO3RoaXMuX2hvdmVyU3RhdGU9XCJcIn19LHQudXBkYXRlPWZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLnNjaGVkdWxlVXBkYXRlKCl9LHQuaXNXaXRoQ29udGVudD1mdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMuZ2V0VGl0bGUoKSl9LHQuYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe29lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5hZGRDbGFzcyh1ZStcIi1cIit0KX0sdC5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHxvZSh0aGlzLmNvbmZpZy50ZW1wbGF0ZSlbMF0sdGhpcy50aXB9LHQuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciB0PW9lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKTt0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZChUZSksdGhpcy5nZXRUaXRsZSgpKSx0LnJlbW92ZUNsYXNzKEVlK1wiIFwiK3llKX0sdC5zZXRFbGVtZW50Q29udGVudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY29uZmlnLmh0bWw7XCJvYmplY3RcIj09dHlwZW9mIGUmJihlLm5vZGVUeXBlfHxlLmpxdWVyeSk/bj9vZShlKS5wYXJlbnQoKS5pcyh0KXx8dC5lbXB0eSgpLmFwcGVuZChlKTp0LnRleHQob2UoZSkudGV4dCgpKTp0W24/XCJodG1sXCI6XCJ0ZXh0XCJdKGUpfSx0LmdldFRpdGxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIik7cmV0dXJuIHR8fCh0PVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuY29uZmlnLnRpdGxlP3RoaXMuY29uZmlnLnRpdGxlLmNhbGwodGhpcy5lbGVtZW50KTp0aGlzLmNvbmZpZy50aXRsZSksdH0sdC5fZ2V0QXR0YWNobWVudD1mdW5jdGlvbih0KXtyZXR1cm4gX2VbdC50b1VwcGVyQ2FzZSgpXX0sdC5fc2V0TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpczt0aGlzLmNvbmZpZy50cmlnZ2VyLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKFwiY2xpY2tcIj09PXQpb2UoaS5lbGVtZW50KS5vbihpLmNvbnN0cnVjdG9yLkV2ZW50LkNMSUNLLGkuY29uZmlnLnNlbGVjdG9yLGZ1bmN0aW9uKHQpe3JldHVybiBpLnRvZ2dsZSh0KX0pO2Vsc2UgaWYodCE9PWJlKXt2YXIgZT10PT09SWU/aS5jb25zdHJ1Y3Rvci5FdmVudC5NT1VTRUVOVEVSOmkuY29uc3RydWN0b3IuRXZlbnQuRk9DVVNJTixuPXQ9PT1JZT9pLmNvbnN0cnVjdG9yLkV2ZW50Lk1PVVNFTEVBVkU6aS5jb25zdHJ1Y3Rvci5FdmVudC5GT0NVU09VVDtvZShpLmVsZW1lbnQpLm9uKGUsaS5jb25maWcuc2VsZWN0b3IsZnVuY3Rpb24odCl7cmV0dXJuIGkuX2VudGVyKHQpfSkub24obixpLmNvbmZpZy5zZWxlY3RvcixmdW5jdGlvbih0KXtyZXR1cm4gaS5fbGVhdmUodCl9KX1vZShpLmVsZW1lbnQpLmNsb3Nlc3QoXCIubW9kYWxcIikub24oXCJoaWRlLmJzLm1vZGFsXCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5oaWRlKCl9KX0pLHRoaXMuY29uZmlnLnNlbGVjdG9yP3RoaXMuY29uZmlnPWgoe30sdGhpcy5jb25maWcse3RyaWdnZXI6XCJtYW51YWxcIixzZWxlY3RvcjpcIlwifSk6dGhpcy5fZml4VGl0bGUoKX0sdC5fZml4VGl0bGU9ZnVuY3Rpb24oKXt2YXIgdD10eXBlb2YgdGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIik7KHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKXx8XCJzdHJpbmdcIiE9PXQpJiYodGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIix0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidGl0bGVcIil8fFwiXCIpLHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiLFwiXCIpKX0sdC5fZW50ZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZOyhlPWV8fG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuKSl8fChlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobixlKSksdCYmKGUuX2FjdGl2ZVRyaWdnZXJbXCJmb2N1c2luXCI9PT10LnR5cGU/QWU6SWVdPSEwKSxvZShlLmdldFRpcEVsZW1lbnQoKSkuaGFzQ2xhc3MoeWUpfHxlLl9ob3ZlclN0YXRlPT09bWU/ZS5faG92ZXJTdGF0ZT1tZTooY2xlYXJUaW1lb3V0KGUuX3RpbWVvdXQpLGUuX2hvdmVyU3RhdGU9bWUsZS5jb25maWcuZGVsYXkmJmUuY29uZmlnLmRlbGF5LnNob3c/ZS5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5faG92ZXJTdGF0ZT09PW1lJiZlLnNob3coKX0sZS5jb25maWcuZGVsYXkuc2hvdyk6ZS5zaG93KCkpfSx0Ll9sZWF2ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY29uc3RydWN0b3IuREFUQV9LRVk7KGU9ZXx8b2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKG4pKXx8KGU9bmV3IHRoaXMuY29uc3RydWN0b3IodC5jdXJyZW50VGFyZ2V0LHRoaXMuX2dldERlbGVnYXRlQ29uZmlnKCkpLG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuLGUpKSx0JiYoZS5fYWN0aXZlVHJpZ2dlcltcImZvY3Vzb3V0XCI9PT10LnR5cGU/QWU6SWVdPSExKSxlLl9pc1dpdGhBY3RpdmVUcmlnZ2VyKCl8fChjbGVhclRpbWVvdXQoZS5fdGltZW91dCksZS5faG92ZXJTdGF0ZT1wZSxlLmNvbmZpZy5kZWxheSYmZS5jb25maWcuZGVsYXkuaGlkZT9lLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl9ob3ZlclN0YXRlPT09cGUmJmUuaGlkZSgpfSxlLmNvbmZpZy5kZWxheS5oaWRlKTplLmhpZGUoKSl9LHQuX2lzV2l0aEFjdGl2ZVRyaWdnZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fYWN0aXZlVHJpZ2dlcilpZih0aGlzLl9hY3RpdmVUcmlnZ2VyW3RdKXJldHVybiEwO3JldHVybiExfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mKHQ9aCh7fSx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsb2UodGhpcy5lbGVtZW50KS5kYXRhKCksdCkpLmRlbGF5JiYodC5kZWxheT17c2hvdzp0LmRlbGF5LGhpZGU6dC5kZWxheX0pLFwibnVtYmVyXCI9PXR5cGVvZiB0LnRpdGxlJiYodC50aXRsZT10LnRpdGxlLnRvU3RyaW5nKCkpLFwibnVtYmVyXCI9PXR5cGVvZiB0LmNvbnRlbnQmJih0LmNvbnRlbnQ9dC5jb250ZW50LnRvU3RyaW5nKCkpLENuLnR5cGVDaGVja0NvbmZpZyhhZSx0LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpLHR9LHQuX2dldERlbGVnYXRlQ29uZmlnPWZ1bmN0aW9uKCl7dmFyIHQ9e307aWYodGhpcy5jb25maWcpZm9yKHZhciBlIGluIHRoaXMuY29uZmlnKXRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFtlXSE9PXRoaXMuY29uZmlnW2VdJiYodFtlXT10aGlzLmNvbmZpZ1tlXSk7cmV0dXJuIHR9LHQuX2NsZWFuVGlwQ2xhc3M9ZnVuY3Rpb24oKXt2YXIgdD1vZSh0aGlzLmdldFRpcEVsZW1lbnQoKSksZT10LmF0dHIoXCJjbGFzc1wiKS5tYXRjaChmZSk7bnVsbCE9PWUmJjA8ZS5sZW5ndGgmJnQucmVtb3ZlQ2xhc3MoZS5qb2luKFwiXCIpKX0sdC5faGFuZGxlUG9wcGVyUGxhY2VtZW50Q2hhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX2NsZWFuVGlwQ2xhc3MoKSx0aGlzLmFkZEF0dGFjaG1lbnRDbGFzcyh0aGlzLl9nZXRBdHRhY2htZW50KHQucGxhY2VtZW50KSl9LHQuX2ZpeFRyYW5zaXRpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldFRpcEVsZW1lbnQoKSxlPXRoaXMuY29uZmlnLmFuaW1hdGlvbjtudWxsPT09dC5nZXRBdHRyaWJ1dGUoXCJ4LXBsYWNlbWVudFwiKSYmKG9lKHQpLnJlbW92ZUNsYXNzKEVlKSx0aGlzLmNvbmZpZy5hbmltYXRpb249ITEsdGhpcy5oaWRlKCksdGhpcy5zaG93KCksdGhpcy5jb25maWcuYW5pbWF0aW9uPWUpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PW9lKHRoaXMpLmRhdGEobGUpLGU9XCJvYmplY3RcIj09dHlwZW9mIG4mJm47aWYoKHR8fCEvZGlzcG9zZXxoaWRlLy50ZXN0KG4pKSYmKHR8fCh0PW5ldyBpKHRoaXMsZSksb2UodGhpcykuZGF0YShsZSx0KSksXCJzdHJpbmdcIj09dHlwZW9mIG4pKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfX0pfSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBnZX19LHtrZXk6XCJOQU1FXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFlfX0se2tleTpcIkRBVEFfS0VZXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGxlfX0se2tleTpcIkV2ZW50XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZlfX0se2tleTpcIkVWRU5UX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBoZX19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBkZX19XSksaX0oKSxvZS5mblthZV09U2UuX2pRdWVyeUludGVyZmFjZSxvZS5mblthZV0uQ29uc3RydWN0b3I9U2Usb2UuZm5bYWVdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gb2UuZm5bYWVdPWNlLFNlLl9qUXVlcnlJbnRlcmZhY2V9LFNlKSxPbj0oTmU9XCJwb3BvdmVyXCIsa2U9XCIuXCIrKE9lPVwiYnMucG9wb3ZlclwiKSxQZT0od2U9ZSkuZm5bTmVdLExlPVwiYnMtcG9wb3ZlclwiLGplPW5ldyBSZWdFeHAoXCIoXnxcXFxccylcIitMZStcIlxcXFxTK1wiLFwiZ1wiKSxSZT1oKHt9LE5uLkRlZmF1bHQse3BsYWNlbWVudDpcInJpZ2h0XCIsdHJpZ2dlcjpcImNsaWNrXCIsY29udGVudDpcIlwiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPVwicG9wb3ZlclwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+PGgzIGNsYXNzPVwicG9wb3Zlci1oZWFkZXJcIj48L2gzPjxkaXYgY2xhc3M9XCJwb3BvdmVyLWJvZHlcIj48L2Rpdj48L2Rpdj4nfSksSGU9aCh7fSxObi5EZWZhdWx0VHlwZSx7Y29udGVudDpcIihzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbilcIn0pLFdlPVwiZmFkZVwiLHhlPVwiLnBvcG92ZXItaGVhZGVyXCIsVWU9XCIucG9wb3Zlci1ib2R5XCIsS2U9e0hJREU6XCJoaWRlXCIra2UsSElEREVOOlwiaGlkZGVuXCIra2UsU0hPVzooTWU9XCJzaG93XCIpK2tlLFNIT1dOOlwic2hvd25cIitrZSxJTlNFUlRFRDpcImluc2VydGVkXCIra2UsQ0xJQ0s6XCJjbGlja1wiK2tlLEZPQ1VTSU46XCJmb2N1c2luXCIra2UsRk9DVVNPVVQ6XCJmb2N1c291dFwiK2tlLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIra2UsTU9VU0VMRUFWRTpcIm1vdXNlbGVhdmVcIitrZX0sRmU9ZnVuY3Rpb24odCl7dmFyIGUsbjtmdW5jdGlvbiBpKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfW49dCwoZT1pKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSksKGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUpLl9fcHJvdG9fXz1uO3ZhciByPWkucHJvdG90eXBlO3JldHVybiByLmlzV2l0aENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLl9nZXRDb250ZW50KCl9LHIuYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe3dlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5hZGRDbGFzcyhMZStcIi1cIit0KX0sci5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHx3ZSh0aGlzLmNvbmZpZy50ZW1wbGF0ZSlbMF0sdGhpcy50aXB9LHIuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciB0PXdlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKTt0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZCh4ZSksdGhpcy5nZXRUaXRsZSgpKTt2YXIgZT10aGlzLl9nZXRDb250ZW50KCk7XCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKGU9ZS5jYWxsKHRoaXMuZWxlbWVudCkpLHRoaXMuc2V0RWxlbWVudENvbnRlbnQodC5maW5kKFVlKSxlKSx0LnJlbW92ZUNsYXNzKFdlK1wiIFwiK01lKX0sci5fZ2V0Q29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS1jb250ZW50XCIpfHx0aGlzLmNvbmZpZy5jb250ZW50fSxyLl9jbGVhblRpcENsYXNzPWZ1bmN0aW9uKCl7dmFyIHQ9d2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLGU9dC5hdHRyKFwiY2xhc3NcIikubWF0Y2goamUpO251bGwhPT1lJiYwPGUubGVuZ3RoJiZ0LnJlbW92ZUNsYXNzKGUuam9pbihcIlwiKSl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9d2UodGhpcykuZGF0YShPZSksZT1cIm9iamVjdFwiPT10eXBlb2Ygbj9uOm51bGw7aWYoKHR8fCEvZGVzdHJveXxoaWRlLy50ZXN0KG4pKSYmKHR8fCh0PW5ldyBpKHRoaXMsZSksd2UodGhpcykuZGF0YShPZSx0KSksXCJzdHJpbmdcIj09dHlwZW9mIG4pKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfX0pfSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBSZX19LHtrZXk6XCJOQU1FXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5lfX0se2tleTpcIkRBVEFfS0VZXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9lfX0se2tleTpcIkV2ZW50XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEtlfX0se2tleTpcIkVWRU5UX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBrZX19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBIZX19XSksaX0oTm4pLHdlLmZuW05lXT1GZS5falF1ZXJ5SW50ZXJmYWNlLHdlLmZuW05lXS5Db25zdHJ1Y3Rvcj1GZSx3ZS5mbltOZV0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB3ZS5mbltOZV09UGUsRmUuX2pRdWVyeUludGVyZmFjZX0sRmUpLGtuPShRZT1cInNjcm9sbHNweVwiLFllPVwiLlwiKyhCZT1cImJzLnNjcm9sbHNweVwiKSxHZT0oVmU9ZSkuZm5bUWVdLHFlPXtvZmZzZXQ6MTAsbWV0aG9kOlwiYXV0b1wiLHRhcmdldDpcIlwifSx6ZT17b2Zmc2V0OlwibnVtYmVyXCIsbWV0aG9kOlwic3RyaW5nXCIsdGFyZ2V0OlwiKHN0cmluZ3xlbGVtZW50KVwifSxYZT17QUNUSVZBVEU6XCJhY3RpdmF0ZVwiK1llLFNDUk9MTDpcInNjcm9sbFwiK1llLExPQURfREFUQV9BUEk6XCJsb2FkXCIrWWUrXCIuZGF0YS1hcGlcIn0sSmU9XCJkcm9wZG93bi1pdGVtXCIsWmU9XCJhY3RpdmVcIiwkZT17REFUQV9TUFk6J1tkYXRhLXNweT1cInNjcm9sbFwiXScsQUNUSVZFOlwiLmFjdGl2ZVwiLE5BVl9MSVNUX0dST1VQOlwiLm5hdiwgLmxpc3QtZ3JvdXBcIixOQVZfTElOS1M6XCIubmF2LWxpbmtcIixOQVZfSVRFTVM6XCIubmF2LWl0ZW1cIixMSVNUX0lURU1TOlwiLmxpc3QtZ3JvdXAtaXRlbVwiLERST1BET1dOOlwiLmRyb3Bkb3duXCIsRFJPUERPV05fSVRFTVM6XCIuZHJvcGRvd24taXRlbVwiLERST1BET1dOX1RPR0dMRTpcIi5kcm9wZG93bi10b2dnbGVcIn0sdG49XCJvZmZzZXRcIixlbj1cInBvc2l0aW9uXCIsbm49ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQsZSl7dmFyIG49dGhpczt0aGlzLl9lbGVtZW50PXQsdGhpcy5fc2Nyb2xsRWxlbWVudD1cIkJPRFlcIj09PXQudGFnTmFtZT93aW5kb3c6dCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX3NlbGVjdG9yPXRoaXMuX2NvbmZpZy50YXJnZXQrXCIgXCIrJGUuTkFWX0xJTktTK1wiLFwiK3RoaXMuX2NvbmZpZy50YXJnZXQrXCIgXCIrJGUuTElTVF9JVEVNUytcIixcIit0aGlzLl9jb25maWcudGFyZ2V0K1wiIFwiKyRlLkRST1BET1dOX0lURU1TLHRoaXMuX29mZnNldHM9W10sdGhpcy5fdGFyZ2V0cz1bXSx0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLl9zY3JvbGxIZWlnaHQ9MCxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS5vbihYZS5TQ1JPTEwsZnVuY3Rpb24odCl7cmV0dXJuIG4uX3Byb2Nlc3ModCl9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9wcm9jZXNzKCl9dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIHQucmVmcmVzaD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl9zY3JvbGxFbGVtZW50PT09dGhpcy5fc2Nyb2xsRWxlbWVudC53aW5kb3c/dG46ZW4scj1cImF1dG9cIj09PXRoaXMuX2NvbmZpZy5tZXRob2Q/dDp0aGlzLl9jb25maWcubWV0aG9kLHM9cj09PWVuP3RoaXMuX2dldFNjcm9sbFRvcCgpOjA7dGhpcy5fb2Zmc2V0cz1bXSx0aGlzLl90YXJnZXRzPVtdLHRoaXMuX3Njcm9sbEhlaWdodD10aGlzLl9nZXRTY3JvbGxIZWlnaHQoKSxWZS5tYWtlQXJyYXkoVmUodGhpcy5fc2VsZWN0b3IpKS5tYXAoZnVuY3Rpb24odCl7dmFyIGUsbj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO2lmKG4mJihlPVZlKG4pWzBdKSxlKXt2YXIgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGkud2lkdGh8fGkuaGVpZ2h0KXJldHVybltWZShlKVtyXSgpLnRvcCtzLG5dfXJldHVybiBudWxsfSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0WzBdLWVbMF19KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UuX29mZnNldHMucHVzaCh0WzBdKSxlLl90YXJnZXRzLnB1c2godFsxXSl9KX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7VmUucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LEJlKSxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS5vZmYoWWUpLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9zY3JvbGxFbGVtZW50PW51bGwsdGhpcy5fY29uZmlnPW51bGwsdGhpcy5fc2VsZWN0b3I9bnVsbCx0aGlzLl9vZmZzZXRzPW51bGwsdGhpcy5fdGFyZ2V0cz1udWxsLHRoaXMuX2FjdGl2ZVRhcmdldD1udWxsLHRoaXMuX3Njcm9sbEhlaWdodD1udWxsfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mKHQ9aCh7fSxxZSx0KSkudGFyZ2V0KXt2YXIgZT1WZSh0LnRhcmdldCkuYXR0cihcImlkXCIpO2V8fChlPUNuLmdldFVJRChRZSksVmUodC50YXJnZXQpLmF0dHIoXCJpZFwiLGUpKSx0LnRhcmdldD1cIiNcIitlfXJldHVybiBDbi50eXBlQ2hlY2tDb25maWcoUWUsdCx6ZSksdH0sdC5fZ2V0U2Nyb2xsVG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/dGhpcy5fc2Nyb2xsRWxlbWVudC5wYWdlWU9mZnNldDp0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbFRvcH0sdC5fZ2V0U2Nyb2xsSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsSGVpZ2h0fHxNYXRoLm1heChkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KX0sdC5fZ2V0T2Zmc2V0SGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OnRoaXMuX3Njcm9sbEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fSx0Ll9wcm9jZXNzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0U2Nyb2xsVG9wKCkrdGhpcy5fY29uZmlnLm9mZnNldCxlPXRoaXMuX2dldFNjcm9sbEhlaWdodCgpLG49dGhpcy5fY29uZmlnLm9mZnNldCtlLXRoaXMuX2dldE9mZnNldEhlaWdodCgpO2lmKHRoaXMuX3Njcm9sbEhlaWdodCE9PWUmJnRoaXMucmVmcmVzaCgpLG48PXQpe3ZhciBpPXRoaXMuX3RhcmdldHNbdGhpcy5fdGFyZ2V0cy5sZW5ndGgtMV07dGhpcy5fYWN0aXZlVGFyZ2V0IT09aSYmdGhpcy5fYWN0aXZhdGUoaSl9ZWxzZXtpZih0aGlzLl9hY3RpdmVUYXJnZXQmJnQ8dGhpcy5fb2Zmc2V0c1swXSYmMDx0aGlzLl9vZmZzZXRzWzBdKXJldHVybiB0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx2b2lkIHRoaXMuX2NsZWFyKCk7Zm9yKHZhciByPXRoaXMuX29mZnNldHMubGVuZ3RoO3ItLTspe3RoaXMuX2FjdGl2ZVRhcmdldCE9PXRoaXMuX3RhcmdldHNbcl0mJnQ+PXRoaXMuX29mZnNldHNbcl0mJihcInVuZGVmaW5lZFwiPT10eXBlb2YgdGhpcy5fb2Zmc2V0c1tyKzFdfHx0PHRoaXMuX29mZnNldHNbcisxXSkmJnRoaXMuX2FjdGl2YXRlKHRoaXMuX3RhcmdldHNbcl0pfX19LHQuX2FjdGl2YXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2FjdGl2ZVRhcmdldD1lLHRoaXMuX2NsZWFyKCk7dmFyIHQ9dGhpcy5fc2VsZWN0b3Iuc3BsaXQoXCIsXCIpO3Q9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQrJ1tkYXRhLXRhcmdldD1cIicrZSsnXCJdLCcrdCsnW2hyZWY9XCInK2UrJ1wiXSd9KTt2YXIgbj1WZSh0LmpvaW4oXCIsXCIpKTtuLmhhc0NsYXNzKEplKT8obi5jbG9zZXN0KCRlLkRST1BET1dOKS5maW5kKCRlLkRST1BET1dOX1RPR0dMRSkuYWRkQ2xhc3MoWmUpLG4uYWRkQ2xhc3MoWmUpKToobi5hZGRDbGFzcyhaZSksbi5wYXJlbnRzKCRlLk5BVl9MSVNUX0dST1VQKS5wcmV2KCRlLk5BVl9MSU5LUytcIiwgXCIrJGUuTElTVF9JVEVNUykuYWRkQ2xhc3MoWmUpLG4ucGFyZW50cygkZS5OQVZfTElTVF9HUk9VUCkucHJldigkZS5OQVZfSVRFTVMpLmNoaWxkcmVuKCRlLk5BVl9MSU5LUykuYWRkQ2xhc3MoWmUpKSxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS50cmlnZ2VyKFhlLkFDVElWQVRFLHtyZWxhdGVkVGFyZ2V0OmV9KX0sdC5fY2xlYXI9ZnVuY3Rpb24oKXtWZSh0aGlzLl9zZWxlY3RvcikuZmlsdGVyKCRlLkFDVElWRSkucmVtb3ZlQ2xhc3MoWmUpfSxuLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PVZlKHRoaXMpLmRhdGEoQmUpO2lmKHR8fCh0PW5ldyBuKHRoaXMsXCJvYmplY3RcIj09dHlwZW9mIGUmJmUpLFZlKHRoaXMpLmRhdGEoQmUsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtlXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2UrJ1wiJyk7dFtlXSgpfX0pfSxvKG4sbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBxZX19XSksbn0oKSxWZSh3aW5kb3cpLm9uKFhlLkxPQURfREFUQV9BUEksZnVuY3Rpb24oKXtmb3IodmFyIHQ9VmUubWFrZUFycmF5KFZlKCRlLkRBVEFfU1BZKSksZT10Lmxlbmd0aDtlLS07KXt2YXIgbj1WZSh0W2VdKTtubi5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobixuLmRhdGEoKSl9fSksVmUuZm5bUWVdPW5uLl9qUXVlcnlJbnRlcmZhY2UsVmUuZm5bUWVdLkNvbnN0cnVjdG9yPW5uLFZlLmZuW1FlXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIFZlLmZuW1FlXT1HZSxubi5falF1ZXJ5SW50ZXJmYWNlfSxubiksUG49KG9uPVwiLlwiKyhzbj1cImJzLnRhYlwiKSxhbj0ocm49ZSkuZm4udGFiLGxuPXtISURFOlwiaGlkZVwiK29uLEhJRERFTjpcImhpZGRlblwiK29uLFNIT1c6XCJzaG93XCIrb24sU0hPV046XCJzaG93blwiK29uLENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitvbitcIi5kYXRhLWFwaVwifSxobj1cImRyb3Bkb3duLW1lbnVcIixjbj1cImFjdGl2ZVwiLHVuPVwiZGlzYWJsZWRcIixmbj1cImZhZGVcIixkbj1cInNob3dcIixfbj1cIi5kcm9wZG93blwiLGduPVwiLm5hdiwgLmxpc3QtZ3JvdXBcIixtbj1cIi5hY3RpdmVcIixwbj1cIj4gbGkgPiAuYWN0aXZlXCIsdm49J1tkYXRhLXRvZ2dsZT1cInRhYlwiXSwgW2RhdGEtdG9nZ2xlPVwicGlsbFwiXSwgW2RhdGEtdG9nZ2xlPVwibGlzdFwiXScsRW49XCIuZHJvcGRvd24tdG9nZ2xlXCIseW49XCI+IC5kcm9wZG93bi1tZW51IC5hY3RpdmVcIixUbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGkodCl7dGhpcy5fZWxlbWVudD10fXZhciB0PWkucHJvdG90eXBlO3JldHVybiB0LnNob3c9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO2lmKCEodGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmcm4odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoY24pfHxybih0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyh1bikpKXt2YXIgdCxpLGU9cm4odGhpcy5fZWxlbWVudCkuY2xvc2VzdChnbilbMF0scj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO2lmKGUpe3ZhciBzPVwiVUxcIj09PWUubm9kZU5hbWU/cG46bW47aT0oaT1ybi5tYWtlQXJyYXkocm4oZSkuZmluZChzKSkpW2kubGVuZ3RoLTFdfXZhciBvPXJuLkV2ZW50KGxuLkhJREUse3JlbGF0ZWRUYXJnZXQ6dGhpcy5fZWxlbWVudH0pLGE9cm4uRXZlbnQobG4uU0hPVyx7cmVsYXRlZFRhcmdldDppfSk7aWYoaSYmcm4oaSkudHJpZ2dlcihvKSxybih0aGlzLl9lbGVtZW50KS50cmlnZ2VyKGEpLCFhLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhby5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7ciYmKHQ9cm4ocilbMF0pLHRoaXMuX2FjdGl2YXRlKHRoaXMuX2VsZW1lbnQsZSk7dmFyIGw9ZnVuY3Rpb24oKXt2YXIgdD1ybi5FdmVudChsbi5ISURERU4se3JlbGF0ZWRUYXJnZXQ6bi5fZWxlbWVudH0pLGU9cm4uRXZlbnQobG4uU0hPV04se3JlbGF0ZWRUYXJnZXQ6aX0pO3JuKGkpLnRyaWdnZXIodCkscm4obi5fZWxlbWVudCkudHJpZ2dlcihlKX07dD90aGlzLl9hY3RpdmF0ZSh0LHQucGFyZW50Tm9kZSxsKTpsKCl9fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7cm4ucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHNuKSx0aGlzLl9lbGVtZW50PW51bGx9LHQuX2FjdGl2YXRlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLHI9KFwiVUxcIj09PWUubm9kZU5hbWU/cm4oZSkuZmluZChwbik6cm4oZSkuY2hpbGRyZW4obW4pKVswXSxzPW4mJnImJnJuKHIpLmhhc0NsYXNzKGZuKSxvPWZ1bmN0aW9uKCl7cmV0dXJuIGkuX3RyYW5zaXRpb25Db21wbGV0ZSh0LHIsbil9O2lmKHImJnMpe3ZhciBhPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHIpO3JuKHIpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxvKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChhKX1lbHNlIG8oKX0sdC5fdHJhbnNpdGlvbkNvbXBsZXRlPWZ1bmN0aW9uKHQsZSxuKXtpZihlKXtybihlKS5yZW1vdmVDbGFzcyhkbitcIiBcIitjbik7dmFyIGk9cm4oZS5wYXJlbnROb2RlKS5maW5kKHluKVswXTtpJiZybihpKS5yZW1vdmVDbGFzcyhjbiksXCJ0YWJcIj09PWUuZ2V0QXR0cmlidXRlKFwicm9sZVwiKSYmZS5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsITEpfWlmKHJuKHQpLmFkZENsYXNzKGNuKSxcInRhYlwiPT09dC5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpJiZ0LnNldEF0dHJpYnV0ZShcImFyaWEtc2VsZWN0ZWRcIiwhMCksQ24ucmVmbG93KHQpLHJuKHQpLmFkZENsYXNzKGRuKSx0LnBhcmVudE5vZGUmJnJuKHQucGFyZW50Tm9kZSkuaGFzQ2xhc3MoaG4pKXt2YXIgcj1ybih0KS5jbG9zZXN0KF9uKVswXTtyJiZybihyKS5maW5kKEVuKS5hZGRDbGFzcyhjbiksdC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsITApfW4mJm4oKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1ybih0aGlzKSxlPXQuZGF0YShzbik7aWYoZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKHNuLGUpKSxcInN0cmluZ1wiPT10eXBlb2Ygbil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGVbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO2Vbbl0oKX19KX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX1dKSxpfSgpLHJuKGRvY3VtZW50KS5vbihsbi5DTElDS19EQVRBX0FQSSx2bixmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksVG4uX2pRdWVyeUludGVyZmFjZS5jYWxsKHJuKHRoaXMpLFwic2hvd1wiKX0pLHJuLmZuLnRhYj1Ubi5falF1ZXJ5SW50ZXJmYWNlLHJuLmZuLnRhYi5Db25zdHJ1Y3Rvcj1Ubixybi5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBybi5mbi50YWI9YW4sVG4uX2pRdWVyeUludGVyZmFjZX0sVG4pOyFmdW5jdGlvbih0KXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkuIGpRdWVyeSBtdXN0IGJlIGluY2x1ZGVkIGJlZm9yZSBCb290c3RyYXAncyBKYXZhU2NyaXB0LlwiKTt2YXIgZT10LmZuLmpxdWVyeS5zcGxpdChcIiBcIilbMF0uc3BsaXQoXCIuXCIpO2lmKGVbMF08MiYmZVsxXTw5fHwxPT09ZVswXSYmOT09PWVbMV0mJmVbMl08MXx8NDw9ZVswXSl0aHJvdyBuZXcgRXJyb3IoXCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGF0IGxlYXN0IGpRdWVyeSB2MS45LjEgYnV0IGxlc3MgdGhhbiB2NC4wLjBcIil9KGUpLHQuVXRpbD1Dbix0LkFsZXJ0PUluLHQuQnV0dG9uPUFuLHQuQ2Fyb3VzZWw9RG4sdC5Db2xsYXBzZT1ibix0LkRyb3Bkb3duPVNuLHQuTW9kYWw9d24sdC5Qb3BvdmVyPU9uLHQuU2Nyb2xsc3B5PWtuLHQuVGFiPVBuLHQuVG9vbHRpcD1ObixPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym9vdHN0cmFwLm1pbi5qcy5tYXAiLCIvLyBodHRwczovL2QzanMub3JnIFZlcnNpb24gNS41LjAuIENvcHlyaWdodCAyMDE4IE1pa2UgQm9zdG9jay5cbihmdW5jdGlvbih0LG4pe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP24oZXhwb3J0cyk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJleHBvcnRzXCJdLG4pOm4odC5kMz10LmQzfHx7fSl9KSh0aGlzLGZ1bmN0aW9uKHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gdDxuPy0xOnQ+bj8xOnQ+PW4/MDpOYU59ZnVuY3Rpb24gZSh0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4gbih0KGUpLHIpfX0odCkpLHtsZWZ0OmZ1bmN0aW9uKG4sZSxyLGkpe2ZvcihudWxsPT1yJiYocj0wKSxudWxsPT1pJiYoaT1uLmxlbmd0aCk7cjxpOyl7dmFyIG89citpPj4+MTt0KG5bb10sZSk8MD9yPW8rMTppPW99cmV0dXJuIHJ9LHJpZ2h0OmZ1bmN0aW9uKG4sZSxyLGkpe2ZvcihudWxsPT1yJiYocj0wKSxudWxsPT1pJiYoaT1uLmxlbmd0aCk7cjxpOyl7dmFyIG89citpPj4+MTt0KG5bb10sZSk+MD9pPW86cj1vKzF9cmV0dXJuIHJ9fX1mdW5jdGlvbiByKHQsbil7cmV0dXJuW3Qsbl19ZnVuY3Rpb24gaSh0KXtyZXR1cm4gbnVsbD09PXQ/TmFOOit0fWZ1bmN0aW9uIG8odCxuKXt2YXIgZSxyLG89dC5sZW5ndGgsYT0wLHU9LTEsZj0wLGM9MDtpZihudWxsPT1uKWZvcig7Kyt1PG87KWlzTmFOKGU9aSh0W3VdKSl8fChjKz0ocj1lLWYpKihlLShmKz1yLysrYSkpKTtlbHNlIGZvcig7Kyt1PG87KWlzTmFOKGU9aShuKHRbdV0sdSx0KSkpfHwoYys9KHI9ZS1mKSooZS0oZis9ci8rK2EpKSk7aWYoYT4xKXJldHVybiBjLyhhLTEpfWZ1bmN0aW9uIGEodCxuKXt2YXIgZT1vKHQsbik7cmV0dXJuIGU/TWF0aC5zcXJ0KGUpOmV9ZnVuY3Rpb24gdSh0LG4pe3ZhciBlLHIsaSxvPXQubGVuZ3RoLGE9LTE7aWYobnVsbD09bil7Zm9yKDsrK2E8bzspaWYobnVsbCE9KGU9dFthXSkmJmU+PWUpZm9yKHI9aT1lOysrYTxvOyludWxsIT0oZT10W2FdKSYmKHI+ZSYmKHI9ZSksaTxlJiYoaT1lKSl9ZWxzZSBmb3IoOysrYTxvOylpZihudWxsIT0oZT1uKHRbYV0sYSx0KSkmJmU+PWUpZm9yKHI9aT1lOysrYTxvOyludWxsIT0oZT1uKHRbYV0sYSx0KSkmJihyPmUmJihyPWUpLGk8ZSYmKGk9ZSkpO3JldHVybltyLGldfWZ1bmN0aW9uIGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGModCl7cmV0dXJuIHR9ZnVuY3Rpb24gcyh0LG4sZSl7dD0rdCxuPStuLGU9KGk9YXJndW1lbnRzLmxlbmd0aCk8Mj8obj10LHQ9MCwxKTppPDM/MTorZTtmb3IodmFyIHI9LTEsaT0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChuLXQpL2UpKSxvPW5ldyBBcnJheShpKTsrK3I8aTspb1tyXT10K3IqZTtyZXR1cm4gb31mdW5jdGlvbiBsKHQsbixlKXt2YXIgcixpLG8sYSx1PS0xO2lmKG49K24sdD0rdCxlPStlLHQ9PT1uJiZlPjApcmV0dXJuW3RdO2lmKChyPW48dCkmJihpPXQsdD1uLG49aSksMD09PShhPWgodCxuLGUpKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxuPU1hdGguZmxvb3Iobi9hKSxvPW5ldyBBcnJheShpPU1hdGguY2VpbChuLXQrMSkpOysrdTxpOylvW3VdPSh0K3UpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksbj1NYXRoLmNlaWwobiphKSxvPW5ldyBBcnJheShpPU1hdGguY2VpbCh0LW4rMSkpOysrdTxpOylvW3VdPSh0LXUpL2E7cmV0dXJuIHImJm8ucmV2ZXJzZSgpLG99ZnVuY3Rpb24gaCh0LG4sZSl7dmFyIHI9KG4tdCkvTWF0aC5tYXgoMCxlKSxpPU1hdGguZmxvb3IoTWF0aC5sb2cocikvTWF0aC5MTjEwKSxvPXIvTWF0aC5wb3coMTAsaSk7cmV0dXJuIGk+PTA/KG8+PWlzPzEwOm8+PW9zPzU6bz49YXM/MjoxKSpNYXRoLnBvdygxMCxpKTotTWF0aC5wb3coMTAsLWkpLyhvPj1pcz8xMDpvPj1vcz81Om8+PWFzPzI6MSl9ZnVuY3Rpb24gZCh0LG4sZSl7dmFyIHI9TWF0aC5hYnMobi10KS9NYXRoLm1heCgwLGUpLGk9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhyKS9NYXRoLkxOMTApKSxvPXIvaTtyZXR1cm4gbz49aXM/aSo9MTA6bz49b3M/aSo9NTpvPj1hcyYmKGkqPTIpLG48dD8taTppfWZ1bmN0aW9uIHAodCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZyh0Lmxlbmd0aCkvTWF0aC5MTjIpKzF9ZnVuY3Rpb24gdih0LG4sZSl7aWYobnVsbD09ZSYmKGU9aSkscj10Lmxlbmd0aCl7aWYoKG49K24pPD0wfHxyPDIpcmV0dXJuK2UodFswXSwwLHQpO2lmKG4+PTEpcmV0dXJuK2UodFtyLTFdLHItMSx0KTt2YXIgcixvPShyLTEpKm4sYT1NYXRoLmZsb29yKG8pLHU9K2UodFthXSxhLHQpO3JldHVybiB1KygrZSh0W2ErMV0sYSsxLHQpLXUpKihvLWEpfX1mdW5jdGlvbiBnKHQsbil7dmFyIGUscixpPXQubGVuZ3RoLG89LTE7aWYobnVsbD09bil7Zm9yKDsrK288aTspaWYobnVsbCE9KGU9dFtvXSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9dFtvXSkmJmU+ciYmKHI9ZSl9ZWxzZSBmb3IoOysrbzxpOylpZihudWxsIT0oZT1uKHRbb10sbyx0KSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9bih0W29dLG8sdCkpJiZlPnImJihyPWUpO3JldHVybiByfWZ1bmN0aW9uIHkodCl7Zm9yKHZhciBuLGUscixpPXQubGVuZ3RoLG89LTEsYT0wOysrbzxpOylhKz10W29dLmxlbmd0aDtmb3IoZT1uZXcgQXJyYXkoYSk7LS1pPj0wOylmb3Iobj0ocj10W2ldKS5sZW5ndGg7LS1uPj0wOyllWy0tYV09cltuXTtyZXR1cm4gZX1mdW5jdGlvbiBfKHQsbil7dmFyIGUscixpPXQubGVuZ3RoLG89LTE7aWYobnVsbD09bil7Zm9yKDsrK288aTspaWYobnVsbCE9KGU9dFtvXSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9dFtvXSkmJnI+ZSYmKHI9ZSl9ZWxzZSBmb3IoOysrbzxpOylpZihudWxsIT0oZT1uKHRbb10sbyx0KSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9bih0W29dLG8sdCkpJiZyPmUmJihyPWUpO3JldHVybiByfWZ1bmN0aW9uIGIodCl7aWYoIShpPXQubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIG49LTEsZT1fKHQsbSkscj1uZXcgQXJyYXkoZSk7KytuPGU7KWZvcih2YXIgaSxvPS0xLGE9cltuXT1uZXcgQXJyYXkoaSk7KytvPGk7KWFbb109dFtvXVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBtKHQpe3JldHVybiB0Lmxlbmd0aH1mdW5jdGlvbiB4KHQpe3JldHVybiB0fWZ1bmN0aW9uIHcodCl7cmV0dXJuXCJ0cmFuc2xhdGUoXCIrKHQrLjUpK1wiLDApXCJ9ZnVuY3Rpb24gTSh0KXtyZXR1cm5cInRyYW5zbGF0ZSgwLFwiKyh0Ky41KStcIilcIn1mdW5jdGlvbiBBKCl7cmV0dXJuIXRoaXMuX19heGlzfWZ1bmN0aW9uIFQodCxuKXtmdW5jdGlvbiBlKGUpe3ZhciBoPW51bGw9PWk/bi50aWNrcz9uLnRpY2tzLmFwcGx5KG4scik6bi5kb21haW4oKTppLGQ9bnVsbD09bz9uLnRpY2tGb3JtYXQ/bi50aWNrRm9ybWF0LmFwcGx5KG4scik6eDpvLHA9TWF0aC5tYXgoYSwwKStmLHY9bi5yYW5nZSgpLGc9K3ZbMF0rLjUseT0rdlt2Lmxlbmd0aC0xXSsuNSxfPShuLmJhbmR3aWR0aD9mdW5jdGlvbih0KXt2YXIgbj1NYXRoLm1heCgwLHQuYmFuZHdpZHRoKCktMSkvMjtyZXR1cm4gdC5yb3VuZCgpJiYobj1NYXRoLnJvdW5kKG4pKSxmdW5jdGlvbihlKXtyZXR1cm4rdChlKStufX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybit0KG4pfX0pKG4uY29weSgpKSxiPWUuc2VsZWN0aW9uP2Uuc2VsZWN0aW9uKCk6ZSxtPWIuc2VsZWN0QWxsKFwiLmRvbWFpblwiKS5kYXRhKFtudWxsXSksdz1iLnNlbGVjdEFsbChcIi50aWNrXCIpLmRhdGEoaCxuKS5vcmRlcigpLE09dy5leGl0KCksVD13LmVudGVyKCkuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIixcInRpY2tcIiksTj13LnNlbGVjdChcImxpbmVcIiksUz13LnNlbGVjdChcInRleHRcIik7bT1tLm1lcmdlKG0uZW50ZXIoKS5pbnNlcnQoXCJwYXRoXCIsXCIudGlja1wiKS5hdHRyKFwiY2xhc3NcIixcImRvbWFpblwiKS5hdHRyKFwic3Ryb2tlXCIsXCIjMDAwXCIpKSx3PXcubWVyZ2UoVCksTj1OLm1lcmdlKFQuYXBwZW5kKFwibGluZVwiKS5hdHRyKFwic3Ryb2tlXCIsXCIjMDAwXCIpLmF0dHIocytcIjJcIixjKmEpKSxTPVMubWVyZ2UoVC5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJmaWxsXCIsXCIjMDAwXCIpLmF0dHIocyxjKnApLmF0dHIoXCJkeVwiLHQ9PT1mcz9cIjBlbVwiOnQ9PT1zcz9cIjAuNzFlbVwiOlwiMC4zMmVtXCIpKSxlIT09YiYmKG09bS50cmFuc2l0aW9uKGUpLHc9dy50cmFuc2l0aW9uKGUpLE49Ti50cmFuc2l0aW9uKGUpLFM9Uy50cmFuc2l0aW9uKGUpLE09TS50cmFuc2l0aW9uKGUpLmF0dHIoXCJvcGFjaXR5XCIsaHMpLmF0dHIoXCJ0cmFuc2Zvcm1cIixmdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1fKHQpKT9sKHQpOnRoaXMuZ2V0QXR0cmlidXRlKFwidHJhbnNmb3JtXCIpfSksVC5hdHRyKFwib3BhY2l0eVwiLGhzKS5hdHRyKFwidHJhbnNmb3JtXCIsZnVuY3Rpb24odCl7dmFyIG49dGhpcy5wYXJlbnROb2RlLl9fYXhpcztyZXR1cm4gbChuJiZpc0Zpbml0ZShuPW4odCkpP246Xyh0KSl9KSksTS5yZW1vdmUoKSxtLmF0dHIoXCJkXCIsdD09PWxzfHx0PT1jcz9cIk1cIitjKnUrXCIsXCIrZytcIkgwLjVWXCIreStcIkhcIitjKnU6XCJNXCIrZytcIixcIitjKnUrXCJWMC41SFwiK3krXCJWXCIrYyp1KSx3LmF0dHIoXCJvcGFjaXR5XCIsMSkuYXR0cihcInRyYW5zZm9ybVwiLGZ1bmN0aW9uKHQpe3JldHVybiBsKF8odCkpfSksTi5hdHRyKHMrXCIyXCIsYyphKSxTLmF0dHIocyxjKnApLnRleHQoZCksYi5maWx0ZXIoQSkuYXR0cihcImZpbGxcIixcIm5vbmVcIikuYXR0cihcImZvbnQtc2l6ZVwiLDEwKS5hdHRyKFwiZm9udC1mYW1pbHlcIixcInNhbnMtc2VyaWZcIikuYXR0cihcInRleHQtYW5jaG9yXCIsdD09PWNzP1wic3RhcnRcIjp0PT09bHM/XCJlbmRcIjpcIm1pZGRsZVwiKSxiLmVhY2goZnVuY3Rpb24oKXt0aGlzLl9fYXhpcz1ffSl9dmFyIHI9W10saT1udWxsLG89bnVsbCxhPTYsdT02LGY9MyxjPXQ9PT1mc3x8dD09PWxzPy0xOjEscz10PT09bHN8fHQ9PT1jcz9cInhcIjpcInlcIixsPXQ9PT1mc3x8dD09PXNzP3c6TTtyZXR1cm4gZS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGUpOm59LGUudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gcj11cy5jYWxsKGFyZ3VtZW50cyksZX0sZS50aWNrQXJndW1lbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PXQ/W106dXMuY2FsbCh0KSxlKTpyLnNsaWNlKCl9LGUudGlja1ZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT10P251bGw6dXMuY2FsbCh0KSxlKTppJiZpLnNsaWNlKCl9LGUudGlja0Zvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LGUpOm99LGUudGlja1NpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dT0rdCxlKTphfSxlLnRpY2tTaXplSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3QsZSk6YX0sZS50aWNrU2l6ZU91dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LGUpOnV9LGUudGlja1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9K3QsZSk6Zn0sZX1mdW5jdGlvbiBOKCl7Zm9yKHZhciB0LG49MCxlPWFyZ3VtZW50cy5sZW5ndGgscj17fTtuPGU7KytuKXtpZighKHQ9YXJndW1lbnRzW25dK1wiXCIpfHx0IGluIHIpdGhyb3cgbmV3IEVycm9yKFwiaWxsZWdhbCB0eXBlOiBcIit0KTtyW3RdPVtdfXJldHVybiBuZXcgUyhyKX1mdW5jdGlvbiBTKHQpe3RoaXMuXz10fWZ1bmN0aW9uIEUodCxuLGUpe2Zvcih2YXIgcj0wLGk9dC5sZW5ndGg7cjxpOysrcilpZih0W3JdLm5hbWU9PT1uKXt0W3JdPWRzLHQ9dC5zbGljZSgwLHIpLmNvbmNhdCh0LnNsaWNlKHIrMSkpO2JyZWFrfXJldHVybiBudWxsIT1lJiZ0LnB1c2goe25hbWU6bix2YWx1ZTplfSksdH1mdW5jdGlvbiBrKHQpe3ZhciBuPXQrPVwiXCIsZT1uLmluZGV4T2YoXCI6XCIpO3JldHVybiBlPj0wJiZcInhtbG5zXCIhPT0obj10LnNsaWNlKDAsZSkpJiYodD10LnNsaWNlKGUrMSkpLHZzLmhhc093blByb3BlcnR5KG4pP3tzcGFjZTp2c1tuXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIEModCl7dmFyIG49ayh0KTtyZXR1cm4obi5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5vd25lckRvY3VtZW50LGU9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIGU9PT1wcyYmbi5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09cHM/bi5jcmVhdGVFbGVtZW50KHQpOm4uY3JlYXRlRWxlbWVudE5TKGUsdCl9fSkobil9ZnVuY3Rpb24gUCgpe31mdW5jdGlvbiB6KHQpe3JldHVybiBudWxsPT10P1A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiBSKCl7cmV0dXJuW119ZnVuY3Rpb24gTCh0KXtyZXR1cm4gbnVsbD09dD9SOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gRCh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBVKHQsbil7dGhpcy5vd25lckRvY3VtZW50PXQub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST10Lm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PXQsdGhpcy5fX2RhdGFfXz1ufWZ1bmN0aW9uIHEodCxuLGUscixpLG8pe2Zvcih2YXIgYSx1PTAsZj1uLmxlbmd0aCxjPW8ubGVuZ3RoO3U8YzsrK3UpKGE9blt1XSk/KGEuX19kYXRhX189b1t1XSxyW3VdPWEpOmVbdV09bmV3IFUodCxvW3VdKTtmb3IoO3U8ZjsrK3UpKGE9blt1XSkmJihpW3VdPWEpfWZ1bmN0aW9uIE8odCxuLGUscixpLG8sYSl7dmFyIHUsZixjLHM9e30sbD1uLmxlbmd0aCxoPW8ubGVuZ3RoLGQ9bmV3IEFycmF5KGwpO2Zvcih1PTA7dTxsOysrdSkoZj1uW3VdKSYmKGRbdV09Yz1tcythLmNhbGwoZixmLl9fZGF0YV9fLHUsbiksYyBpbiBzP2lbdV09ZjpzW2NdPWYpO2Zvcih1PTA7dTxoOysrdSkoZj1zW2M9bXMrYS5jYWxsKHQsb1t1XSx1LG8pXSk/KHJbdV09ZixmLl9fZGF0YV9fPW9bdV0sc1tjXT1udWxsKTplW3VdPW5ldyBVKHQsb1t1XSk7Zm9yKHU9MDt1PGw7Kyt1KShmPW5bdV0pJiZzW2RbdV1dPT09ZiYmKGlbdV09Zil9ZnVuY3Rpb24gWSh0LG4pe3JldHVybiB0PG4/LTE6dD5uPzE6dD49bj8wOk5hTn1mdW5jdGlvbiBCKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBGKHQsbil7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuKXx8Qih0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShuKX1mdW5jdGlvbiBJKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLyl9ZnVuY3Rpb24gaih0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyBIKHQpfWZ1bmN0aW9uIEgodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPUkodC5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIil9ZnVuY3Rpb24gWCh0LG4pe2Zvcih2YXIgZT1qKHQpLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspZS5hZGQobltyXSl9ZnVuY3Rpb24gRyh0LG4pe2Zvcih2YXIgZT1qKHQpLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspZS5yZW1vdmUobltyXSl9ZnVuY3Rpb24gVigpe3RoaXMudGV4dENvbnRlbnQ9XCJcIn1mdW5jdGlvbiAkKCl7dGhpcy5pbm5lckhUTUw9XCJcIn1mdW5jdGlvbiBXKCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIFooKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBRKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gSigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIEsoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMSksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gdHQoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMCksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gbnQodCxuLGUpe3JldHVybiB0PWV0KHQsbixlKSxmdW5jdGlvbihuKXt2YXIgZT1uLnJlbGF0ZWRUYXJnZXQ7ZSYmKGU9PT10aGlzfHw4JmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykpfHx0LmNhbGwodGhpcyxuKX19ZnVuY3Rpb24gZXQobixlLHIpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgbz10LmV2ZW50O3QuZXZlbnQ9aTt0cnl7bi5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLHIpfWZpbmFsbHl7dC5ldmVudD1vfX19ZnVuY3Rpb24gcnQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5fX29uO2lmKG4pe2Zvcih2YXIgZSxyPTAsaT0tMSxvPW4ubGVuZ3RoO3I8bzsrK3IpZT1uW3JdLHQudHlwZSYmZS50eXBlIT09dC50eXBlfHxlLm5hbWUhPT10Lm5hbWU/blsrK2ldPWU6dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGUudHlwZSxlLmxpc3RlbmVyLGUuY2FwdHVyZSk7KytpP24ubGVuZ3RoPWk6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIGl0KHQsbixlKXt2YXIgcj14cy5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP250OmV0O3JldHVybiBmdW5jdGlvbihpLG8sYSl7dmFyIHUsZj10aGlzLl9fb24sYz1yKG4sbyxhKTtpZihmKWZvcih2YXIgcz0wLGw9Zi5sZW5ndGg7czxsOysrcylpZigodT1mW3NdKS50eXBlPT09dC50eXBlJiZ1Lm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih1LnR5cGUsdS5saXN0ZW5lcix1LmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcih1LnR5cGUsdS5saXN0ZW5lcj1jLHUuY2FwdHVyZT1lKSx2b2lkKHUudmFsdWU9bik7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLGUpLHU9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOm4sbGlzdGVuZXI6YyxjYXB0dXJlOmV9LGY/Zi5wdXNoKHUpOnRoaXMuX19vbj1bdV19fWZ1bmN0aW9uIG90KG4sZSxyLGkpe3ZhciBvPXQuZXZlbnQ7bi5zb3VyY2VFdmVudD10LmV2ZW50LHQuZXZlbnQ9bjt0cnl7cmV0dXJuIGUuYXBwbHkocixpKX1maW5hbGx5e3QuZXZlbnQ9b319ZnVuY3Rpb24gYXQodCxuLGUpe3ZhciByPUIodCksaT1yLkN1c3RvbUV2ZW50O1wiZnVuY3Rpb25cIj09dHlwZW9mIGk/aT1uZXcgaShuLGUpOihpPXIuZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJFdmVudFwiKSxlPyhpLmluaXRFdmVudChuLGUuYnViYmxlcyxlLmNhbmNlbGFibGUpLGkuZGV0YWlsPWUuZGV0YWlsKTppLmluaXRFdmVudChuLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KGkpfWZ1bmN0aW9uIHV0KHQsbil7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1ufWZ1bmN0aW9uIGZ0KCl7cmV0dXJuIG5ldyB1dChbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLHdzKX1mdW5jdGlvbiBjdCh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9uZXcgdXQoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB1dChbW3RdXSx3cyl9ZnVuY3Rpb24gc3QoKXtyZXR1cm4gbmV3IGx0fWZ1bmN0aW9uIGx0KCl7dGhpcy5fPVwiQFwiKygrK01zKS50b1N0cmluZygzNil9ZnVuY3Rpb24gaHQoKXtmb3IodmFyIG4sZT10LmV2ZW50O249ZS5zb3VyY2VFdmVudDspZT1uO3JldHVybiBlfWZ1bmN0aW9uIGR0KHQsbil7dmFyIGU9dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYoZS5jcmVhdGVTVkdQb2ludCl7dmFyIHI9ZS5jcmVhdGVTVkdQb2ludCgpO3JldHVybiByLng9bi5jbGllbnRYLHIueT1uLmNsaWVudFkscj1yLm1hdHJpeFRyYW5zZm9ybSh0LmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSksW3IueCxyLnldfXZhciBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW24uY2xpZW50WC1pLmxlZnQtdC5jbGllbnRMZWZ0LG4uY2xpZW50WS1pLnRvcC10LmNsaWVudFRvcF19ZnVuY3Rpb24gcHQodCl7dmFyIG49aHQoKTtyZXR1cm4gbi5jaGFuZ2VkVG91Y2hlcyYmKG49bi5jaGFuZ2VkVG91Y2hlc1swXSksZHQodCxuKX1mdW5jdGlvbiB2dCh0LG4sZSl7YXJndW1lbnRzLmxlbmd0aDwzJiYoZT1uLG49aHQoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciByLGk9MCxvPW4/bi5sZW5ndGg6MDtpPG87KytpKWlmKChyPW5baV0pLmlkZW50aWZpZXI9PT1lKXJldHVybiBkdCh0LHIpO3JldHVybiBudWxsfWZ1bmN0aW9uIGd0KCl7dC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB5dCgpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIF90KHQpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGU9Y3QodCkub24oXCJkcmFnc3RhcnQuZHJhZ1wiLHl0LCEwKTtcIm9uc2VsZWN0c3RhcnRcImluIG4/ZS5vbihcInNlbGVjdHN0YXJ0LmRyYWdcIix5dCwhMCk6KG4uX19ub3NlbGVjdD1uLnN0eWxlLk1velVzZXJTZWxlY3Qsbi5zdHlsZS5Nb3pVc2VyU2VsZWN0PVwibm9uZVwiKX1mdW5jdGlvbiBidCh0LG4pe3ZhciBlPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9Y3QodCkub24oXCJkcmFnc3RhcnQuZHJhZ1wiLG51bGwpO24mJihyLm9uKFwiY2xpY2suZHJhZ1wiLHl0LCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5vbihcImNsaWNrLmRyYWdcIixudWxsKX0sMCkpLFwib25zZWxlY3RzdGFydFwiaW4gZT9yLm9uKFwic2VsZWN0c3RhcnQuZHJhZ1wiLG51bGwpOihlLnN0eWxlLk1velVzZXJTZWxlY3Q9ZS5fX25vc2VsZWN0LGRlbGV0ZSBlLl9fbm9zZWxlY3QpfWZ1bmN0aW9uIG10KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiB4dCh0LG4sZSxyLGksbyxhLHUsZixjKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1uLHRoaXMuc3ViamVjdD1lLHRoaXMuaWRlbnRpZmllcj1yLHRoaXMuYWN0aXZlPWksdGhpcy54PW8sdGhpcy55PWEsdGhpcy5keD11LHRoaXMuZHk9Zix0aGlzLl89Y31mdW5jdGlvbiB3dCgpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBNdCgpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9ZnVuY3Rpb24gQXQobil7cmV0dXJuIG51bGw9PW4/e3g6dC5ldmVudC54LHk6dC5ldmVudC55fTpufWZ1bmN0aW9uIFR0KCl7cmV0dXJuXCJvbnRvdWNoc3RhcnRcImluIHRoaXN9ZnVuY3Rpb24gTnQodCxuLGUpe3QucHJvdG90eXBlPW4ucHJvdG90eXBlPWUsZS5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIFN0KHQsbil7dmFyIGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSk7Zm9yKHZhciByIGluIG4pZVtyXT1uW3JdO3JldHVybiBlfWZ1bmN0aW9uIEV0KCl7fWZ1bmN0aW9uIGt0KHQpe3ZhciBuO3JldHVybiB0PSh0K1wiXCIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLChuPVNzLmV4ZWModCkpPyhuPXBhcnNlSW50KG5bMV0sMTYpLG5ldyBMdChuPj44JjE1fG4+PjQmMjQwLG4+PjQmMTV8MjQwJm4sKDE1Jm4pPDw0fDE1Jm4sMSkpOihuPUVzLmV4ZWModCkpP0N0KHBhcnNlSW50KG5bMV0sMTYpKToobj1rcy5leGVjKHQpKT9uZXcgTHQoblsxXSxuWzJdLG5bM10sMSk6KG49Q3MuZXhlYyh0KSk/bmV3IEx0KDI1NSpuWzFdLzEwMCwyNTUqblsyXS8xMDAsMjU1Km5bM10vMTAwLDEpOihuPVBzLmV4ZWModCkpP1B0KG5bMV0sblsyXSxuWzNdLG5bNF0pOihuPXpzLmV4ZWModCkpP1B0KDI1NSpuWzFdLzEwMCwyNTUqblsyXS8xMDAsMjU1Km5bM10vMTAwLG5bNF0pOihuPVJzLmV4ZWModCkpP1V0KG5bMV0sblsyXS8xMDAsblszXS8xMDAsMSk6KG49THMuZXhlYyh0KSk/VXQoblsxXSxuWzJdLzEwMCxuWzNdLzEwMCxuWzRdKTpEcy5oYXNPd25Qcm9wZXJ0eSh0KT9DdChEc1t0XSk6XCJ0cmFuc3BhcmVudFwiPT09dD9uZXcgTHQoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBDdCh0KXtyZXR1cm4gbmV3IEx0KHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCwxKX1mdW5jdGlvbiBQdCh0LG4sZSxyKXtyZXR1cm4gcjw9MCYmKHQ9bj1lPU5hTiksbmV3IEx0KHQsbixlLHIpfWZ1bmN0aW9uIHp0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgRXR8fCh0PWt0KHQpKSx0Pyh0PXQucmdiKCksbmV3IEx0KHQucix0LmcsdC5iLHQub3BhY2l0eSkpOm5ldyBMdH1mdW5jdGlvbiBSdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/enQodCk6bmV3IEx0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBMdCh0LG4sZSxyKXt0aGlzLnI9K3QsdGhpcy5nPStuLHRoaXMuYj0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gRHQodCl7cmV0dXJuKCh0PU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodCl8fDApKSk8MTY/XCIwXCI6XCJcIikrdC50b1N0cmluZygxNil9ZnVuY3Rpb24gVXQodCxuLGUscil7cmV0dXJuIHI8PTA/dD1uPWU9TmFOOmU8PTB8fGU+PTE/dD1uPU5hTjpuPD0wJiYodD1OYU4pLG5ldyBPdCh0LG4sZSxyKX1mdW5jdGlvbiBxdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIE90KXJldHVybiBuZXcgT3QodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgRXR8fCh0PWt0KHQpKSwhdClyZXR1cm4gbmV3IE90O2lmKHQgaW5zdGFuY2VvZiBPdClyZXR1cm4gdDt2YXIgbj0odD10LnJnYigpKS5yLzI1NSxlPXQuZy8yNTUscj10LmIvMjU1LGk9TWF0aC5taW4obixlLHIpLG89TWF0aC5tYXgobixlLHIpLGE9TmFOLHU9by1pLGY9KG8raSkvMjtyZXR1cm4gdT8oYT1uPT09bz8oZS1yKS91KzYqKGU8cik6ZT09PW8/KHItbikvdSsyOihuLWUpL3UrNCx1Lz1mPC41P28raToyLW8taSxhKj02MCk6dT1mPjAmJmY8MT8wOmEsbmV3IE90KGEsdSxmLHQub3BhY2l0eSl9KHQpOm5ldyBPdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gT3QodCxuLGUscil7dGhpcy5oPSt0LHRoaXMucz0rbix0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIFl0KHQsbixlKXtyZXR1cm4gMjU1Kih0PDYwP24rKGUtbikqdC82MDp0PDE4MD9lOnQ8MjQwP24rKGUtbikqKDI0MC10KS82MDpuKX1mdW5jdGlvbiBCdCh0KXtpZih0IGluc3RhbmNlb2YgSXQpcmV0dXJuIG5ldyBJdCh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBXdCl7aWYoaXNOYU4odC5oKSlyZXR1cm4gbmV3IEl0KHQubCwwLDAsdC5vcGFjaXR5KTt2YXIgbj10LmgqVXM7cmV0dXJuIG5ldyBJdCh0LmwsTWF0aC5jb3MobikqdC5jLE1hdGguc2luKG4pKnQuYyx0Lm9wYWNpdHkpfXQgaW5zdGFuY2VvZiBMdHx8KHQ9enQodCkpO3ZhciBlLHIsaT1HdCh0LnIpLG89R3QodC5nKSxhPUd0KHQuYiksdT1qdCgoLjIyMjUwNDUqaSsuNzE2ODc4NipvKy4wNjA2MTY5KmEpL1lzKTtyZXR1cm4gaT09PW8mJm89PT1hP2U9cj11OihlPWp0KCguNDM2MDc0NyppKy4zODUwNjQ5Km8rLjE0MzA4MDQqYSkvT3MpLHI9anQoKC4wMTM5MzIyKmkrLjA5NzEwNDUqbysuNzE0MTczMyphKS9CcykpLG5ldyBJdCgxMTYqdS0xNiw1MDAqKGUtdSksMjAwKih1LXIpLHQub3BhY2l0eSl9ZnVuY3Rpb24gRnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0J0KHQpOm5ldyBJdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gSXQodCxuLGUscil7dGhpcy5sPSt0LHRoaXMuYT0rbix0aGlzLmI9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIGp0KHQpe3JldHVybiB0PkhzP01hdGgucG93KHQsMS8zKTp0L2pzK0ZzfWZ1bmN0aW9uIEh0KHQpe3JldHVybiB0PklzP3QqdCp0OmpzKih0LUZzKX1mdW5jdGlvbiBYdCh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIEd0KHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIFZ0KHQpe2lmKHQgaW5zdGFuY2VvZiBXdClyZXR1cm4gbmV3IFd0KHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIEl0fHwodD1CdCh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IFd0KE5hTiwwLHQubCx0Lm9wYWNpdHkpO3ZhciBuPU1hdGguYXRhbjIodC5iLHQuYSkqcXM7cmV0dXJuIG5ldyBXdChuPDA/biszNjA6bixNYXRoLnNxcnQodC5hKnQuYSt0LmIqdC5iKSx0LmwsdC5vcGFjaXR5KX1mdW5jdGlvbiAkdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/VnQodCk6bmV3IFd0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBXdCh0LG4sZSxyKXt0aGlzLmg9K3QsdGhpcy5jPStuLHRoaXMubD0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gWnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2Z1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBRdClyZXR1cm4gbmV3IFF0KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7dCBpbnN0YW5jZW9mIEx0fHwodD16dCh0KSk7dmFyIG49dC5yLzI1NSxlPXQuZy8yNTUscj10LmIvMjU1LGk9KFpzKnIrJHMqbi1XcyplKS8oWnMrJHMtV3MpLG89ci1pLGE9KFZzKihlLWkpLVhzKm8pL0dzLHU9TWF0aC5zcXJ0KGEqYStvKm8pLyhWcyppKigxLWkpKSxmPXU/TWF0aC5hdGFuMihhLG8pKnFzLTEyMDpOYU47cmV0dXJuIG5ldyBRdChmPDA/ZiszNjA6Zix1LGksdC5vcGFjaXR5KX0odCk6bmV3IFF0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBRdCh0LG4sZSxyKXt0aGlzLmg9K3QsdGhpcy5zPStuLHRoaXMubD0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gSnQodCxuLGUscixpKXt2YXIgbz10KnQsYT1vKnQ7cmV0dXJuKCgxLTMqdCszKm8tYSkqbisoNC02Km8rMyphKSplKygxKzMqdCszKm8tMyphKSpyK2EqaSkvNn1mdW5jdGlvbiBLdCh0KXt2YXIgbj10Lmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1lPD0wP2U9MDplPj0xPyhlPTEsbi0xKTpNYXRoLmZsb29yKGUqbiksaT10W3JdLG89dFtyKzFdLGE9cj4wP3Rbci0xXToyKmktbyx1PXI8bi0xP3RbcisyXToyKm8taTtyZXR1cm4gSnQoKGUtci9uKSpuLGEsaSxvLHUpfX1mdW5jdGlvbiB0bih0KXt2YXIgbj10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9TWF0aC5mbG9vcigoKGUlPTEpPDA/KytlOmUpKm4pLGk9dFsocituLTEpJW5dLG89dFtyJW5dLGE9dFsocisxKSVuXSx1PXRbKHIrMiklbl07cmV0dXJuIEp0KChlLXIvbikqbixpLG8sYSx1KX19ZnVuY3Rpb24gbm4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGVuKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0K2Uqbn19ZnVuY3Rpb24gcm4odCxuKXt2YXIgZT1uLXQ7cmV0dXJuIGU/ZW4odCxlPjE4MHx8ZTwtMTgwP2UtMzYwKk1hdGgucm91bmQoZS8zNjApOmUpOm5uKGlzTmFOKHQpP246dCl9ZnVuY3Rpb24gb24odCl7cmV0dXJuIDE9PSh0PSt0KT9hbjpmdW5jdGlvbihuLGUpe3JldHVybiBlLW4/ZnVuY3Rpb24odCxuLGUpe3JldHVybiB0PU1hdGgucG93KHQsZSksbj1NYXRoLnBvdyhuLGUpLXQsZT0xL2UsZnVuY3Rpb24ocil7cmV0dXJuIE1hdGgucG93KHQrcipuLGUpfX0obixlLHQpOm5uKGlzTmFOKG4pP2U6bil9fWZ1bmN0aW9uIGFuKHQsbil7dmFyIGU9bi10O3JldHVybiBlP2VuKHQsZSk6bm4oaXNOYU4odCk/bjp0KX1mdW5jdGlvbiB1bih0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGUscixpPW4ubGVuZ3RoLG89bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpLHU9bmV3IEFycmF5KGkpO2ZvcihlPTA7ZTxpOysrZSlyPVJ0KG5bZV0pLG9bZV09ci5yfHwwLGFbZV09ci5nfHwwLHVbZV09ci5ifHwwO3JldHVybiBvPXQobyksYT10KGEpLHU9dCh1KSxyLm9wYWNpdHk9MSxmdW5jdGlvbih0KXtyZXR1cm4gci5yPW8odCksci5nPWEodCksci5iPXUodCkscitcIlwifX19ZnVuY3Rpb24gZm4odCxuKXt2YXIgZSxyPW4/bi5sZW5ndGg6MCxpPXQ/TWF0aC5taW4ocix0Lmxlbmd0aCk6MCxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShyKTtmb3IoZT0wO2U8aTsrK2Upb1tlXT1kbih0W2VdLG5bZV0pO2Zvcig7ZTxyOysrZSlhW2VdPW5bZV07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTxpOysrZSlhW2VdPW9bZV0odCk7cmV0dXJuIGF9fWZ1bmN0aW9uIGNuKHQsbil7dmFyIGU9bmV3IERhdGU7cmV0dXJuIHQ9K3Qsbi09dCxmdW5jdGlvbihyKXtyZXR1cm4gZS5zZXRUaW1lKHQrbipyKSxlfX1mdW5jdGlvbiBzbih0LG4pe3JldHVybiB0PSt0LG4tPXQsZnVuY3Rpb24oZSl7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBsbih0LG4pe3ZhciBlLHI9e30saT17fTtudWxsIT09dCYmXCJvYmplY3RcIj09dHlwZW9mIHR8fCh0PXt9KSxudWxsIT09biYmXCJvYmplY3RcIj09dHlwZW9mIG58fChuPXt9KTtmb3IoZSBpbiBuKWUgaW4gdD9yW2VdPWRuKHRbZV0sbltlXSk6aVtlXT1uW2VdO3JldHVybiBmdW5jdGlvbih0KXtmb3IoZSBpbiByKWlbZV09cltlXSh0KTtyZXR1cm4gaX19ZnVuY3Rpb24gaG4odCxuKXt2YXIgZSxyLGksbz1hbC5sYXN0SW5kZXg9dWwubGFzdEluZGV4PTAsYT0tMSx1PVtdLGY9W107Zm9yKHQrPVwiXCIsbis9XCJcIjsoZT1hbC5leGVjKHQpKSYmKHI9dWwuZXhlYyhuKSk7KShpPXIuaW5kZXgpPm8mJihpPW4uc2xpY2UobyxpKSx1W2FdP3VbYV0rPWk6dVsrK2FdPWkpLChlPWVbMF0pPT09KHI9clswXSk/dVthXT91W2FdKz1yOnVbKythXT1yOih1WysrYV09bnVsbCxmLnB1c2goe2k6YSx4OnNuKGUscil9KSksbz11bC5sYXN0SW5kZXg7cmV0dXJuIG88bi5sZW5ndGgmJihpPW4uc2xpY2UobyksdVthXT91W2FdKz1pOnVbKythXT1pKSx1Lmxlbmd0aDwyP2ZbMF0/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0KG4pK1wiXCJ9fShmWzBdLngpOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0obik6KG49Zi5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9MDtyPG47KytyKXVbKGU9ZltyXSkuaV09ZS54KHQpO3JldHVybiB1LmpvaW4oXCJcIil9KX1mdW5jdGlvbiBkbih0LG4pe3ZhciBlLHI9dHlwZW9mIG47cmV0dXJuIG51bGw9PW58fFwiYm9vbGVhblwiPT09cj9ubihuKTooXCJudW1iZXJcIj09PXI/c246XCJzdHJpbmdcIj09PXI/KGU9a3QobikpPyhuPWUscmwpOmhuOm4gaW5zdGFuY2VvZiBrdD9ybDpuIGluc3RhbmNlb2YgRGF0ZT9jbjpBcnJheS5pc0FycmF5KG4pP2ZuOlwiZnVuY3Rpb25cIiE9dHlwZW9mIG4udmFsdWVPZiYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbi50b1N0cmluZ3x8aXNOYU4obik/bG46c24pKHQsbil9ZnVuY3Rpb24gcG4odCxuKXtyZXR1cm4gdD0rdCxuLT10LGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnJvdW5kKHQrbiplKX19ZnVuY3Rpb24gdm4odCxuLGUscixpLG8pe3ZhciBhLHUsZjtyZXR1cm4oYT1NYXRoLnNxcnQodCp0K24qbikpJiYodC89YSxuLz1hKSwoZj10KmUrbipyKSYmKGUtPXQqZixyLT1uKmYpLCh1PU1hdGguc3FydChlKmUrcipyKSkmJihlLz11LHIvPXUsZi89dSksdCpyPG4qZSYmKHQ9LXQsbj0tbixmPS1mLGE9LWEpLHt0cmFuc2xhdGVYOmksdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKG4sdCkqZmwsc2tld1g6TWF0aC5hdGFuKGYpKmZsLHNjYWxlWDphLHNjYWxlWTp1fX1mdW5jdGlvbiBnbih0LG4sZSxyKXtmdW5jdGlvbiBpKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpK1wiIFwiOlwiXCJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHU9W10sZj1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSxmdW5jdGlvbih0LHIsaSxvLGEsdSl7aWYodCE9PWl8fHIhPT1vKXt2YXIgZj1hLnB1c2goXCJ0cmFuc2xhdGUoXCIsbnVsbCxuLG51bGwsZSk7dS5wdXNoKHtpOmYtNCx4OnNuKHQsaSl9LHtpOmYtMix4OnNuKHIsbyl9KX1lbHNlKGl8fG8pJiZhLnB1c2goXCJ0cmFuc2xhdGUoXCIraStuK28rZSl9KG8udHJhbnNsYXRlWCxvLnRyYW5zbGF0ZVksYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSx1LGYpLGZ1bmN0aW9uKHQsbixlLG8pe3QhPT1uPyh0LW4+MTgwP24rPTM2MDpuLXQ+MTgwJiYodCs9MzYwKSxvLnB1c2goe2k6ZS5wdXNoKGkoZSkrXCJyb3RhdGUoXCIsbnVsbCxyKS0yLHg6c24odCxuKX0pKTpuJiZlLnB1c2goaShlKStcInJvdGF0ZShcIituK3IpfShvLnJvdGF0ZSxhLnJvdGF0ZSx1LGYpLGZ1bmN0aW9uKHQsbixlLG8pe3QhPT1uP28ucHVzaCh7aTplLnB1c2goaShlKStcInNrZXdYKFwiLG51bGwsciktMix4OnNuKHQsbil9KTpuJiZlLnB1c2goaShlKStcInNrZXdYKFwiK24rcil9KG8uc2tld1gsYS5za2V3WCx1LGYpLGZ1bmN0aW9uKHQsbixlLHIsbyxhKXtpZih0IT09ZXx8biE9PXIpe3ZhciB1PW8ucHVzaChpKG8pK1wic2NhbGUoXCIsbnVsbCxcIixcIixudWxsLFwiKVwiKTthLnB1c2goe2k6dS00LHg6c24odCxlKX0se2k6dS0yLHg6c24obixyKX0pfWVsc2UgMT09PWUmJjE9PT1yfHxvLnB1c2goaShvKStcInNjYWxlKFwiK2UrXCIsXCIrcitcIilcIil9KG8uc2NhbGVYLG8uc2NhbGVZLGEuc2NhbGVYLGEuc2NhbGVZLHUsZiksbz1hPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9LTEscj1mLmxlbmd0aDsrK2U8cjspdVsobj1mW2VdKS5pXT1uLngodCk7cmV0dXJuIHUuam9pbihcIlwiKX19fWZ1bmN0aW9uIHluKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSkrMS90KS8yfWZ1bmN0aW9uIF9uKHQsbil7dmFyIGUscixpPXRbMF0sbz10WzFdLGE9dFsyXSx1PW5bMF0sZj1uWzFdLGM9blsyXSxzPXUtaSxsPWYtbyxoPXMqcytsKmw7aWYoaDx2bClyPU1hdGgubG9nKGMvYSkvaGwsZT1mdW5jdGlvbih0KXtyZXR1cm5baSt0KnMsbyt0KmwsYSpNYXRoLmV4cChobCp0KnIpXX07ZWxzZXt2YXIgZD1NYXRoLnNxcnQoaCkscD0oYypjLWEqYStwbCpoKS8oMiphKmRsKmQpLHY9KGMqYy1hKmEtcGwqaCkvKDIqYypkbCpkKSxnPU1hdGgubG9nKE1hdGguc3FydChwKnArMSktcCkseT1NYXRoLmxvZyhNYXRoLnNxcnQodip2KzEpLXYpO3I9KHktZykvaGwsZT1mdW5jdGlvbih0KXt2YXIgbj10KnIsZT15bihnKSx1PWEvKGRsKmQpKihlKmZ1bmN0aW9uKHQpe3JldHVybigodD1NYXRoLmV4cCgyKnQpKS0xKS8odCsxKX0oaGwqbitnKS1mdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0oZykpO3JldHVybltpK3UqcyxvK3UqbCxhKmUveW4oaGwqbitnKV19fXJldHVybiBlLmR1cmF0aW9uPTFlMypyLGV9ZnVuY3Rpb24gYm4odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dCgobj1xdChuKSkuaCwoZT1xdChlKSkuaCksaT1hbihuLnMsZS5zKSxvPWFuKG4ubCxlLmwpLGE9YW4obi5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuLmg9cih0KSxuLnM9aSh0KSxuLmw9byh0KSxuLm9wYWNpdHk9YSh0KSxuK1wiXCJ9fX1mdW5jdGlvbiBtbih0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj10KChuPSR0KG4pKS5oLChlPSR0KGUpKS5oKSxpPWFuKG4uYyxlLmMpLG89YW4obi5sLGUubCksYT1hbihuLm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4uaD1yKHQpLG4uYz1pKHQpLG4ubD1vKHQpLG4ub3BhY2l0eT1hKHQpLG4rXCJcIn19fWZ1bmN0aW9uIHhuKHQpe3JldHVybiBmdW5jdGlvbiBuKGUpe2Z1bmN0aW9uIHIobixyKXt2YXIgaT10KChuPVp0KG4pKS5oLChyPVp0KHIpKS5oKSxvPWFuKG4ucyxyLnMpLGE9YW4obi5sLHIubCksdT1hbihuLm9wYWNpdHksci5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4uaD1pKHQpLG4ucz1vKHQpLG4ubD1hKE1hdGgucG93KHQsZSkpLG4ub3BhY2l0eT11KHQpLG4rXCJcIn19cmV0dXJuIGU9K2Usci5nYW1tYT1uLHJ9KDEpfWZ1bmN0aW9uIHduKCl7cmV0dXJuIFNsfHwoQ2woTW4pLFNsPWtsLm5vdygpK0VsKX1mdW5jdGlvbiBNbigpe1NsPTB9ZnVuY3Rpb24gQW4oKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfWZ1bmN0aW9uIFRuKHQsbixlKXt2YXIgcj1uZXcgQW47cmV0dXJuIHIucmVzdGFydCh0LG4sZSkscn1mdW5jdGlvbiBObigpe3duKCksKyt3bDtmb3IodmFyIHQsbj1ubDtuOykodD1TbC1uLl90aW1lKT49MCYmbi5fY2FsbC5jYWxsKG51bGwsdCksbj1uLl9uZXh0Oy0td2x9ZnVuY3Rpb24gU24oKXtTbD0oTmw9a2wubm93KCkpK0VsLHdsPU1sPTA7dHJ5e05uKCl9ZmluYWxseXt3bD0wLGZ1bmN0aW9uKCl7dmFyIHQsbixlPW5sLHI9MS8wO2Zvcig7ZTspZS5fY2FsbD8ocj5lLl90aW1lJiYocj1lLl90aW1lKSx0PWUsZT1lLl9uZXh0KToobj1lLl9uZXh0LGUuX25leHQ9bnVsbCxlPXQ/dC5fbmV4dD1uOm5sPW4pO2VsPXQsa24ocil9KCksU2w9MH19ZnVuY3Rpb24gRW4oKXt2YXIgdD1rbC5ub3coKSxuPXQtTmw7bj5UbCYmKEVsLT1uLE5sPXQpfWZ1bmN0aW9uIGtuKHQpe2lmKCF3bCl7TWwmJihNbD1jbGVhclRpbWVvdXQoTWwpKTt0LVNsPjI0Pyh0PDEvMCYmKE1sPXNldFRpbWVvdXQoU24sdC1rbC5ub3coKS1FbCkpLEFsJiYoQWw9Y2xlYXJJbnRlcnZhbChBbCkpKTooQWx8fChObD1rbC5ub3coKSxBbD1zZXRJbnRlcnZhbChFbixUbCkpLHdsPTEsQ2woU24pKX19ZnVuY3Rpb24gQ24odCxuLGUpe3ZhciByPW5ldyBBbjtyZXR1cm4gbj1udWxsPT1uPzA6K24sci5yZXN0YXJ0KGZ1bmN0aW9uKGUpe3Iuc3RvcCgpLHQoZStuKX0sbixlKSxyfWZ1bmN0aW9uIFBuKHQsbixlLHIsaSxvKXt2YXIgYT10Ll9fdHJhbnNpdGlvbjtpZihhKXtpZihlIGluIGEpcmV0dXJufWVsc2UgdC5fX3RyYW5zaXRpb249e307KGZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKGYpe3ZhciBjLHMsbCxoO2lmKGUuc3RhdGUhPT1MbClyZXR1cm4gbygpO2ZvcihjIGluIHUpaWYoKGg9dVtjXSkubmFtZT09PWUubmFtZSl7aWYoaC5zdGF0ZT09PVVsKXJldHVybiBDbihyKTtoLnN0YXRlPT09cWw/KGguc3RhdGU9WWwsaC50aW1lci5zdG9wKCksaC5vbi5jYWxsKFwiaW50ZXJydXB0XCIsdCx0Ll9fZGF0YV9fLGguaW5kZXgsaC5ncm91cCksZGVsZXRlIHVbY10pOitjPG4mJihoLnN0YXRlPVlsLGgudGltZXIuc3RvcCgpLGRlbGV0ZSB1W2NdKX1pZihDbihmdW5jdGlvbigpe2Uuc3RhdGU9PT1VbCYmKGUuc3RhdGU9cWwsZS50aW1lci5yZXN0YXJ0KGksZS5kZWxheSxlLnRpbWUpLGkoZikpfSksZS5zdGF0ZT1EbCxlLm9uLmNhbGwoXCJzdGFydFwiLHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLGUuc3RhdGU9PT1EbCl7Zm9yKGUuc3RhdGU9VWwsYT1uZXcgQXJyYXkobD1lLnR3ZWVuLmxlbmd0aCksYz0wLHM9LTE7YzxsOysrYykoaD1lLnR3ZWVuW2NdLnZhbHVlLmNhbGwodCx0Ll9fZGF0YV9fLGUuaW5kZXgsZS5ncm91cCkpJiYoYVsrK3NdPWgpO2EubGVuZ3RoPXMrMX19ZnVuY3Rpb24gaShuKXtmb3IodmFyIHI9bjxlLmR1cmF0aW9uP2UuZWFzZS5jYWxsKG51bGwsbi9lLmR1cmF0aW9uKTooZS50aW1lci5yZXN0YXJ0KG8pLGUuc3RhdGU9T2wsMSksaT0tMSx1PWEubGVuZ3RoOysraTx1OylhW2ldLmNhbGwobnVsbCxyKTtlLnN0YXRlPT09T2wmJihlLm9uLmNhbGwoXCJlbmRcIix0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxvKCkpfWZ1bmN0aW9uIG8oKXtlLnN0YXRlPVlsLGUudGltZXIuc3RvcCgpLGRlbGV0ZSB1W25dO2Zvcih2YXIgciBpbiB1KXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259dmFyIGEsdT10Ll9fdHJhbnNpdGlvbjt1W25dPWUsZS50aW1lcj1UbihmdW5jdGlvbih0KXtlLnN0YXRlPUxsLGUudGltZXIucmVzdGFydChyLGUuZGVsYXksZS50aW1lKSxlLmRlbGF5PD10JiZyKHQtZS5kZWxheSl9LDAsZS50aW1lKX0pKHQsZSx7bmFtZTpuLGluZGV4OnIsZ3JvdXA6aSxvbjpQbCx0d2Vlbjp6bCx0aW1lOm8udGltZSxkZWxheTpvLmRlbGF5LGR1cmF0aW9uOm8uZHVyYXRpb24sZWFzZTpvLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTpSbH0pfWZ1bmN0aW9uIHpuKHQsbil7dmFyIGU9TG4odCxuKTtpZihlLnN0YXRlPlJsKXRocm93IG5ldyBFcnJvcihcInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBSbih0LG4pe3ZhciBlPUxuKHQsbik7aWYoZS5zdGF0ZT5EbCl0aHJvdyBuZXcgRXJyb3IoXCJ0b28gbGF0ZTsgYWxyZWFkeSBzdGFydGVkXCIpO3JldHVybiBlfWZ1bmN0aW9uIExuKHQsbil7dmFyIGU9dC5fX3RyYW5zaXRpb247aWYoIWV8fCEoZT1lW25dKSl0aHJvdyBuZXcgRXJyb3IoXCJ0cmFuc2l0aW9uIG5vdCBmb3VuZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBEbih0LG4pe3ZhciBlLHIsaSxvPXQuX190cmFuc2l0aW9uLGE9ITA7aWYobyl7bj1udWxsPT1uP251bGw6bitcIlwiO2ZvcihpIGluIG8pKGU9b1tpXSkubmFtZT09PW4/KHI9ZS5zdGF0ZT5EbCYmZS5zdGF0ZTxPbCxlLnN0YXRlPVlsLGUudGltZXIuc3RvcCgpLHImJmUub24uY2FsbChcImludGVycnVwdFwiLHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLGRlbGV0ZSBvW2ldKTphPSExO2EmJmRlbGV0ZSB0Ll9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gVW4odCxuLGUpe3ZhciByPXQuX2lkO3JldHVybiB0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1Sbih0aGlzLHIpOyh0LnZhbHVlfHwodC52YWx1ZT17fSkpW25dPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksZnVuY3Rpb24odCl7cmV0dXJuIExuKHQscikudmFsdWVbbl19fWZ1bmN0aW9uIHFuKHQsbil7dmFyIGU7cmV0dXJuKFwibnVtYmVyXCI9PXR5cGVvZiBuP3NuOm4gaW5zdGFuY2VvZiBrdD9ybDooZT1rdChuKSk/KG49ZSxybCk6aG4pKHQsbil9ZnVuY3Rpb24gT24odCxuLGUscil7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1uLHRoaXMuX25hbWU9ZSx0aGlzLl9pZD1yfWZ1bmN0aW9uIFluKHQpe3JldHVybiBmdCgpLnRyYW5zaXRpb24odCl9ZnVuY3Rpb24gQm4oKXtyZXR1cm4rK0ZsfWZ1bmN0aW9uIEZuKHQpe3JldHVybigodCo9Mik8PTE/dCp0Oi0tdCooMi10KSsxKS8yfWZ1bmN0aW9uIEluKHQpe3JldHVybigodCo9Mik8PTE/dCp0KnQ6KHQtPTIpKnQqdCsyKS8yfWZ1bmN0aW9uIGpuKHQpe3JldHVybigxLU1hdGguY29zKEdsKnQpKS8yfWZ1bmN0aW9uIEhuKHQpe3JldHVybigodCo9Mik8PTE/TWF0aC5wb3coMiwxMCp0LTEwKToyLU1hdGgucG93KDIsMTAtMTAqdCkpLzJ9ZnVuY3Rpb24gWG4odCl7cmV0dXJuKCh0Kj0yKTw9MT8xLU1hdGguc3FydCgxLXQqdCk6TWF0aC5zcXJ0KDEtKHQtPTIpKnQpKzEpLzJ9ZnVuY3Rpb24gR24odCl7cmV0dXJuKHQ9K3QpPCRsP3JoKnQqdDp0PFpsP3JoKih0LT1XbCkqdCtRbDp0PEtsP3JoKih0LT1KbCkqdCt0aDpyaCoodC09bmgpKnQrZWh9ZnVuY3Rpb24gVm4odCxuKXtmb3IodmFyIGU7IShlPXQuX190cmFuc2l0aW9uKXx8IShlPWVbbl0pOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm4gbGgudGltZT13bigpLGxoO3JldHVybiBlfWZ1bmN0aW9uICRuKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBXbigpe3QuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gWm4oKXt0LmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBRbih0KXtyZXR1cm57dHlwZTp0fX1mdW5jdGlvbiBKbigpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBLbigpe3ZhciB0PXRoaXMub3duZXJTVkdFbGVtZW50fHx0aGlzO3JldHVybltbMCwwXSxbdC53aWR0aC5iYXNlVmFsLnZhbHVlLHQuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXX1mdW5jdGlvbiB0ZSh0KXtmb3IoOyF0Ll9fYnJ1c2g7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdC5fX2JydXNofWZ1bmN0aW9uIG5lKHQpe3JldHVybiB0WzBdWzBdPT09dFsxXVswXXx8dFswXVsxXT09PXRbMV1bMV19ZnVuY3Rpb24gZWUobil7ZnVuY3Rpb24gZSh0KXt2YXIgZT10LnByb3BlcnR5KFwiX19icnVzaFwiLHUpLnNlbGVjdEFsbChcIi5vdmVybGF5XCIpLmRhdGEoW1FuKFwib3ZlcmxheVwiKV0pO2UuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJjbGFzc1wiLFwib3ZlcmxheVwiKS5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKS5hdHRyKFwiY3Vyc29yXCIsbWgub3ZlcmxheSkubWVyZ2UoZSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PXRlKHRoaXMpLmV4dGVudDtjdCh0aGlzKS5hdHRyKFwieFwiLHRbMF1bMF0pLmF0dHIoXCJ5XCIsdFswXVsxXSkuYXR0cihcIndpZHRoXCIsdFsxXVswXS10WzBdWzBdKS5hdHRyKFwiaGVpZ2h0XCIsdFsxXVsxXS10WzBdWzFdKX0pLHQuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKS5kYXRhKFtRbihcInNlbGVjdGlvblwiKV0pLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIixcInNlbGVjdGlvblwiKS5hdHRyKFwiY3Vyc29yXCIsbWguc2VsZWN0aW9uKS5hdHRyKFwiZmlsbFwiLFwiIzc3N1wiKS5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsLjMpLmF0dHIoXCJzdHJva2VcIixcIiNmZmZcIikuYXR0cihcInNoYXBlLXJlbmRlcmluZ1wiLFwiY3Jpc3BFZGdlc1wiKTt2YXIgaT10LnNlbGVjdEFsbChcIi5oYW5kbGVcIikuZGF0YShuLmhhbmRsZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pO2kuZXhpdCgpLnJlbW92ZSgpLGkuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJjbGFzc1wiLGZ1bmN0aW9uKHQpe3JldHVyblwiaGFuZGxlIGhhbmRsZS0tXCIrdC50eXBlfSkuYXR0cihcImN1cnNvclwiLGZ1bmN0aW9uKHQpe3JldHVybiBtaFt0LnR5cGVdfSksdC5lYWNoKHIpLmF0dHIoXCJmaWxsXCIsXCJub25lXCIpLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLFwiYWxsXCIpLnN0eWxlKFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yXCIsXCJyZ2JhKDAsMCwwLDApXCIpLm9uKFwibW91c2Vkb3duLmJydXNoIHRvdWNoc3RhcnQuYnJ1c2hcIixhKX1mdW5jdGlvbiByKCl7dmFyIHQ9Y3QodGhpcyksbj10ZSh0aGlzKS5zZWxlY3Rpb247bj8odC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uXCIpLnN0eWxlKFwiZGlzcGxheVwiLG51bGwpLmF0dHIoXCJ4XCIsblswXVswXSkuYXR0cihcInlcIixuWzBdWzFdKS5hdHRyKFwid2lkdGhcIixuWzFdWzBdLW5bMF1bMF0pLmF0dHIoXCJoZWlnaHRcIixuWzFdWzFdLW5bMF1bMV0pLHQuc2VsZWN0QWxsKFwiLmhhbmRsZVwiKS5zdHlsZShcImRpc3BsYXlcIixudWxsKS5hdHRyKFwieFwiLGZ1bmN0aW9uKHQpe3JldHVyblwiZVwiPT09dC50eXBlW3QudHlwZS5sZW5ndGgtMV0/blsxXVswXS1oLzI6blswXVswXS1oLzJ9KS5hdHRyKFwieVwiLGZ1bmN0aW9uKHQpe3JldHVyblwic1wiPT09dC50eXBlWzBdP25bMV1bMV0taC8yOm5bMF1bMV0taC8yfSkuYXR0cihcIndpZHRoXCIsZnVuY3Rpb24odCl7cmV0dXJuXCJuXCI9PT10LnR5cGV8fFwic1wiPT09dC50eXBlP25bMV1bMF0tblswXVswXStoOmh9KS5hdHRyKFwiaGVpZ2h0XCIsZnVuY3Rpb24odCl7cmV0dXJuXCJlXCI9PT10LnR5cGV8fFwid1wiPT09dC50eXBlP25bMV1bMV0tblswXVsxXStoOmh9KSk6dC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uLC5oYW5kbGVcIikuc3R5bGUoXCJkaXNwbGF5XCIsXCJub25lXCIpLmF0dHIoXCJ4XCIsbnVsbCkuYXR0cihcInlcIixudWxsKS5hdHRyKFwid2lkdGhcIixudWxsKS5hdHRyKFwiaGVpZ2h0XCIsbnVsbCl9ZnVuY3Rpb24gaSh0LG4pe3JldHVybiB0Ll9fYnJ1c2guZW1pdHRlcnx8bmV3IG8odCxuKX1mdW5jdGlvbiBvKHQsbil7dGhpcy50aGF0PXQsdGhpcy5hcmdzPW4sdGhpcy5zdGF0ZT10Ll9fYnJ1c2gsdGhpcy5hY3RpdmU9MH1mdW5jdGlvbiBhKCl7ZnVuY3Rpb24gZSgpe3ZhciB0PXB0KHcpOyFMfHxtfHx4fHwoTWF0aC5hYnModFswXS1VWzBdKT5NYXRoLmFicyh0WzFdLVVbMV0pP3g9ITA6bT0hMCksVT10LGI9ITAsWm4oKSxvKCl9ZnVuY3Rpb24gbygpe3ZhciB0O3N3aXRjaCh5PVVbMF0tRFswXSxfPVVbMV0tRFsxXSxBKXtjYXNlIHBoOmNhc2UgZGg6VCYmKHk9TWF0aC5tYXgoQy11LE1hdGgubWluKHotZCx5KSksYz11K3kscD1kK3kpLE4mJihfPU1hdGgubWF4KFAtbCxNYXRoLm1pbihSLXYsXykpLGg9bCtfLGc9ditfKTticmVhaztjYXNlIHZoOlQ8MD8oeT1NYXRoLm1heChDLXUsTWF0aC5taW4oei11LHkpKSxjPXUreSxwPWQpOlQ+MCYmKHk9TWF0aC5tYXgoQy1kLE1hdGgubWluKHotZCx5KSksYz11LHA9ZCt5KSxOPDA/KF89TWF0aC5tYXgoUC1sLE1hdGgubWluKFItbCxfKSksaD1sK18sZz12KTpOPjAmJihfPU1hdGgubWF4KFAtdixNYXRoLm1pbihSLXYsXykpLGg9bCxnPXYrXyk7YnJlYWs7Y2FzZSBnaDpUJiYoYz1NYXRoLm1heChDLE1hdGgubWluKHosdS15KlQpKSxwPU1hdGgubWF4KEMsTWF0aC5taW4oeixkK3kqVCkpKSxOJiYoaD1NYXRoLm1heChQLE1hdGgubWluKFIsbC1fKk4pKSxnPU1hdGgubWF4KFAsTWF0aC5taW4oUix2K18qTikpKX1wPGMmJihUKj0tMSx0PXUsdT1kLGQ9dCx0PWMsYz1wLHA9dCxNIGluIHhoJiZZLmF0dHIoXCJjdXJzb3JcIixtaFtNPXhoW01dXSkpLGc8aCYmKE4qPS0xLHQ9bCxsPXYsdj10LHQ9aCxoPWcsZz10LE0gaW4gd2gmJlkuYXR0cihcImN1cnNvclwiLG1oW009d2hbTV1dKSksUy5zZWxlY3Rpb24mJihrPVMuc2VsZWN0aW9uKSxtJiYoYz1rWzBdWzBdLHA9a1sxXVswXSkseCYmKGg9a1swXVsxXSxnPWtbMV1bMV0pLGtbMF1bMF09PT1jJiZrWzBdWzFdPT09aCYma1sxXVswXT09PXAmJmtbMV1bMV09PT1nfHwoUy5zZWxlY3Rpb249W1tjLGhdLFtwLGddXSxyLmNhbGwodykscS5icnVzaCgpKX1mdW5jdGlvbiBhKCl7aWYoV24oKSx0LmV2ZW50LnRvdWNoZXMpe2lmKHQuZXZlbnQudG91Y2hlcy5sZW5ndGgpcmV0dXJuO2YmJmNsZWFyVGltZW91dChmKSxmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmPW51bGx9LDUwMCksTy5vbihcInRvdWNobW92ZS5icnVzaCB0b3VjaGVuZC5icnVzaCB0b3VjaGNhbmNlbC5icnVzaFwiLG51bGwpfWVsc2UgYnQodC5ldmVudC52aWV3LGIpLEIub24oXCJrZXlkb3duLmJydXNoIGtleXVwLmJydXNoIG1vdXNlbW92ZS5icnVzaCBtb3VzZXVwLmJydXNoXCIsbnVsbCk7Ty5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKSxZLmF0dHIoXCJjdXJzb3JcIixtaC5vdmVybGF5KSxTLnNlbGVjdGlvbiYmKGs9Uy5zZWxlY3Rpb24pLG5lKGspJiYoUy5zZWxlY3Rpb249bnVsbCxyLmNhbGwodykpLHEuZW5kKCl9aWYodC5ldmVudC50b3VjaGVzKXtpZih0LmV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aDx0LmV2ZW50LnRvdWNoZXMubGVuZ3RoKXJldHVybiBabigpfWVsc2UgaWYoZilyZXR1cm47aWYocy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB1LGMsbCxoLGQscCx2LGcseSxfLGIsbSx4LHc9dGhpcyxNPXQuZXZlbnQudGFyZ2V0Ll9fZGF0YV9fLnR5cGUsQT1cInNlbGVjdGlvblwiPT09KHQuZXZlbnQubWV0YUtleT9NPVwib3ZlcmxheVwiOk0pP2RoOnQuZXZlbnQuYWx0S2V5P2doOnZoLFQ9bj09PV9oP251bGw6TWhbTV0sTj1uPT09eWg/bnVsbDpBaFtNXSxTPXRlKHcpLEU9Uy5leHRlbnQsaz1TLnNlbGVjdGlvbixDPUVbMF1bMF0sUD1FWzBdWzFdLHo9RVsxXVswXSxSPUVbMV1bMV0sTD1UJiZOJiZ0LmV2ZW50LnNoaWZ0S2V5LEQ9cHQodyksVT1ELHE9aSh3LGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKTtcIm92ZXJsYXlcIj09PU0/Uy5zZWxlY3Rpb249az1bW3U9bj09PV9oP0M6RFswXSxsPW49PT15aD9QOkRbMV1dLFtkPW49PT1faD96OnUsdj1uPT09eWg/UjpsXV06KHU9a1swXVswXSxsPWtbMF1bMV0sZD1rWzFdWzBdLHY9a1sxXVsxXSksYz11LGg9bCxwPWQsZz12O3ZhciBPPWN0KHcpLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLFwibm9uZVwiKSxZPU8uc2VsZWN0QWxsKFwiLm92ZXJsYXlcIikuYXR0cihcImN1cnNvclwiLG1oW01dKTtpZih0LmV2ZW50LnRvdWNoZXMpTy5vbihcInRvdWNobW92ZS5icnVzaFwiLGUsITApLm9uKFwidG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2hcIixhLCEwKTtlbHNle3ZhciBCPWN0KHQuZXZlbnQudmlldykub24oXCJrZXlkb3duLmJydXNoXCIsZnVuY3Rpb24oKXtzd2l0Y2godC5ldmVudC5rZXlDb2RlKXtjYXNlIDE2Okw9VCYmTjticmVhaztjYXNlIDE4OkE9PT12aCYmKFQmJihkPXAteSpULHU9Yyt5KlQpLE4mJih2PWctXypOLGw9aCtfKk4pLEE9Z2gsbygpKTticmVhaztjYXNlIDMyOkEhPT12aCYmQSE9PWdofHwoVDwwP2Q9cC15OlQ+MCYmKHU9Yy15KSxOPDA/dj1nLV86Tj4wJiYobD1oLV8pLEE9cGgsWS5hdHRyKFwiY3Vyc29yXCIsbWguc2VsZWN0aW9uKSxvKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufVpuKCl9LCEwKS5vbihcImtleXVwLmJydXNoXCIsZnVuY3Rpb24oKXtzd2l0Y2godC5ldmVudC5rZXlDb2RlKXtjYXNlIDE2OkwmJihtPXg9TD0hMSxvKCkpO2JyZWFrO2Nhc2UgMTg6QT09PWdoJiYoVDwwP2Q9cDpUPjAmJih1PWMpLE48MD92PWc6Tj4wJiYobD1oKSxBPXZoLG8oKSk7YnJlYWs7Y2FzZSAzMjpBPT09cGgmJih0LmV2ZW50LmFsdEtleT8oVCYmKGQ9cC15KlQsdT1jK3kqVCksTiYmKHY9Zy1fKk4sbD1oK18qTiksQT1naCk6KFQ8MD9kPXA6VD4wJiYodT1jKSxOPDA/dj1nOk4+MCYmKGw9aCksQT12aCksWS5hdHRyKFwiY3Vyc29yXCIsbWhbTV0pLG8oKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59Wm4oKX0sITApLm9uKFwibW91c2Vtb3ZlLmJydXNoXCIsZSwhMCkub24oXCJtb3VzZXVwLmJydXNoXCIsYSwhMCk7X3QodC5ldmVudC52aWV3KX1XbigpLERuKHcpLHIuY2FsbCh3KSxxLnN0YXJ0KCl9fWZ1bmN0aW9uIHUoKXt2YXIgdD10aGlzLl9fYnJ1c2h8fHtzZWxlY3Rpb246bnVsbH07cmV0dXJuIHQuZXh0ZW50PWMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHQuZGltPW4sdH12YXIgZixjPUtuLHM9Sm4sbD1OKGUsXCJzdGFydFwiLFwiYnJ1c2hcIixcImVuZFwiKSxoPTY7cmV0dXJuIGUubW92ZT1mdW5jdGlvbih0LGUpe3Quc2VsZWN0aW9uP3Qub24oXCJzdGFydC5icnVzaFwiLGZ1bmN0aW9uKCl7aSh0aGlzLGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKS5zdGFydCgpfSkub24oXCJpbnRlcnJ1cHQuYnJ1c2ggZW5kLmJydXNoXCIsZnVuY3Rpb24oKXtpKHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pLnR3ZWVuKFwiYnJ1c2hcIixmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7YS5zZWxlY3Rpb249MT09PXQmJm5lKGMpP251bGw6cyh0KSxyLmNhbGwobyksdS5icnVzaCgpfXZhciBvPXRoaXMsYT1vLl9fYnJ1c2gsdT1pKG8sYXJndW1lbnRzKSxmPWEuc2VsZWN0aW9uLGM9bi5pbnB1dChcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsYS5leHRlbnQpLHM9ZG4oZixjKTtyZXR1cm4gZiYmYz90OnQoMSl9KTp0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMsbz10aGlzLl9fYnJ1c2gsYT1uLmlucHV0KFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLHQpOmUsby5leHRlbnQpLHU9aSh0aGlzLHQpLmJlZm9yZXN0YXJ0KCk7RG4odGhpcyksby5zZWxlY3Rpb249bnVsbD09YXx8bmUoYSk/bnVsbDphLHIuY2FsbCh0aGlzKSx1LnN0YXJ0KCkuYnJ1c2goKS5lbmQoKX0pfSxvLnByb3RvdHlwZT17YmVmb3Jlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMuc3RhdGUuZW1pdHRlcj10aGlzLHRoaXMuc3RhcnRpbmc9ITApLHRoaXN9LHN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRpbmcmJih0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdChcInN0YXJ0XCIpKSx0aGlzfSxicnVzaDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVtaXQoXCJicnVzaFwiKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsdGhpcy5lbWl0KFwiZW5kXCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKHQpe290KG5ldyBmdW5jdGlvbih0LG4sZSl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9bix0aGlzLnNlbGVjdGlvbj1lfShlLHQsbi5vdXRwdXQodGhpcy5zdGF0ZS5zZWxlY3Rpb24pKSxsLmFwcGx5LGwsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sZS5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OiRuKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxlKTpjfSxlLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6JG4oISF0KSxlKTpzfSxlLmhhbmRsZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9K3QsZSk6aH0sZS5vbj1mdW5jdGlvbigpe3ZhciB0PWwub24uYXBwbHkobCxhcmd1bWVudHMpO3JldHVybiB0PT09bD9lOnR9LGV9ZnVuY3Rpb24gcmUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGllKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89XCJcIn1mdW5jdGlvbiBvZSgpe3JldHVybiBuZXcgaWV9ZnVuY3Rpb24gYWUodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIHVlKHQpe3JldHVybiB0LnRhcmdldH1mdW5jdGlvbiBmZSh0KXtyZXR1cm4gdC5yYWRpdXN9ZnVuY3Rpb24gY2UodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiBzZSh0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiBsZSgpe31mdW5jdGlvbiBoZSh0LG4pe3ZhciBlPW5ldyBsZTtpZih0IGluc3RhbmNlb2YgbGUpdC5lYWNoKGZ1bmN0aW9uKHQsbil7ZS5zZXQobix0KX0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIHIsaT0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PW4pZm9yKDsrK2k8bzspZS5zZXQoaSx0W2ldKTtlbHNlIGZvcig7KytpPG87KWUuc2V0KG4ocj10W2ldLGksdCkscil9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KWUuc2V0KGEsdFthXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZGUoKXtyZXR1cm57fX1mdW5jdGlvbiBwZSh0LG4sZSl7dFtuXT1lfWZ1bmN0aW9uIHZlKCl7cmV0dXJuIGhlKCl9ZnVuY3Rpb24gZ2UodCxuLGUpe3Quc2V0KG4sZSl9ZnVuY3Rpb24geWUoKXt9ZnVuY3Rpb24gX2UodCxuKXt2YXIgZT1uZXcgeWU7aWYodCBpbnN0YW5jZW9mIHllKXQuZWFjaChmdW5jdGlvbih0KXtlLmFkZCh0KX0pO2Vsc2UgaWYodCl7dmFyIHI9LTEsaT10Lmxlbmd0aDtpZihudWxsPT1uKWZvcig7KytyPGk7KWUuYWRkKHRbcl0pO2Vsc2UgZm9yKDsrK3I8aTspZS5hZGQobih0W3JdLHIsdCkpfXJldHVybiBlfWZ1bmN0aW9uIGJlKHQsbil7cmV0dXJuIHQtbn1mdW5jdGlvbiBtZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24geGUodCxuKXtmb3IodmFyIGUscj0tMSxpPW4ubGVuZ3RoOysrcjxpOylpZihlPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPW5bMF0scj1uWzFdLGk9LTEsbz0wLGE9dC5sZW5ndGgsdT1hLTE7bzxhO3U9bysrKXt2YXIgZj10W29dLGM9ZlswXSxzPWZbMV0sbD10W3VdLGg9bFswXSxkPWxbMV07aWYoZnVuY3Rpb24odCxuLGUpe3ZhciByO3JldHVybiBmdW5jdGlvbih0LG4sZSl7cmV0dXJuKG5bMF0tdFswXSkqKGVbMV0tdFsxXSk9PShlWzBdLXRbMF0pKihuWzFdLXRbMV0pfSh0LG4sZSkmJmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gdDw9biYmbjw9ZXx8ZTw9biYmbjw9dH0odFtyPSsodFswXT09PW5bMF0pXSxlW3JdLG5bcl0pfShmLGwsbikpcmV0dXJuIDA7cz5yIT1kPnImJmU8KGgtYykqKHItcykvKGQtcykrYyYmKGk9LWkpfXJldHVybiBpfSh0LG5bcl0pKXJldHVybiBlO3JldHVybiAwfWZ1bmN0aW9uIHdlKCl7fWZ1bmN0aW9uIE1lKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZT1hKHQpO2lmKEFycmF5LmlzQXJyYXkoZSkpZT1lLnNsaWNlKCkuc29ydChiZSk7ZWxzZXt2YXIgcj11KHQpLGk9clswXSxvPXJbMV07ZT1kKGksbyxlKSxlPXMoTWF0aC5mbG9vcihpL2UpKmUsTWF0aC5mbG9vcihvL2UpKmUsZSl9cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuKHQsZSl9KX1mdW5jdGlvbiBuKHQsbil7dmFyIHI9W10sYT1bXTtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe2Z1bmN0aW9uIGEodCl7dmFyIG4saSxvPVt0WzBdWzBdK3UsdFswXVsxXStmXSxhPVt0WzFdWzBdK3UsdFsxXVsxXStmXSxjPWUobykscz1lKGEpOyhuPXBbY10pPyhpPWRbc10pPyhkZWxldGUgcFtuLmVuZF0sZGVsZXRlIGRbaS5zdGFydF0sbj09PWk/KG4ucmluZy5wdXNoKGEpLHIobi5yaW5nKSk6ZFtuLnN0YXJ0XT1wW2kuZW5kXT17c3RhcnQ6bi5zdGFydCxlbmQ6aS5lbmQscmluZzpuLnJpbmcuY29uY2F0KGkucmluZyl9KTooZGVsZXRlIHBbbi5lbmRdLG4ucmluZy5wdXNoKGEpLHBbbi5lbmQ9c109bik6KG49ZFtzXSk/KGk9cFtjXSk/KGRlbGV0ZSBkW24uc3RhcnRdLGRlbGV0ZSBwW2kuZW5kXSxuPT09aT8obi5yaW5nLnB1c2goYSkscihuLnJpbmcpKTpkW2kuc3RhcnRdPXBbbi5lbmRdPXtzdGFydDppLnN0YXJ0LGVuZDpuLmVuZCxyaW5nOmkucmluZy5jb25jYXQobi5yaW5nKX0pOihkZWxldGUgZFtuLnN0YXJ0XSxuLnJpbmcudW5zaGlmdChvKSxkW24uc3RhcnQ9Y109bik6ZFtjXT1wW3NdPXtzdGFydDpjLGVuZDpzLHJpbmc6W28sYV19fXZhciB1LGYsYyxzLGwsaCxkPW5ldyBBcnJheSxwPW5ldyBBcnJheTt1PWY9LTEscz10WzBdPj1uLHFoW3M8PDFdLmZvckVhY2goYSk7Zm9yKDsrK3U8aS0xOyljPXMscz10W3UrMV0+PW4scWhbY3xzPDwxXS5mb3JFYWNoKGEpO3FoW3M8PDBdLmZvckVhY2goYSk7Zm9yKDsrK2Y8by0xOyl7Zm9yKHU9LTEscz10W2YqaStpXT49bixsPXRbZippXT49bixxaFtzPDwxfGw8PDJdLmZvckVhY2goYSk7Kyt1PGktMTspYz1zLHM9dFtmKmkraSt1KzFdPj1uLGg9bCxsPXRbZippK3UrMV0+PW4scWhbY3xzPDwxfGw8PDJ8aDw8M10uZm9yRWFjaChhKTtxaFtzfGw8PDNdLmZvckVhY2goYSl9dT0tMSxsPXRbZippXT49bixxaFtsPDwyXS5mb3JFYWNoKGEpO2Zvcig7Kyt1PGktMTspaD1sLGw9dFtmKmkrdSsxXT49bixxaFtsPDwyfGg8PDNdLmZvckVhY2goYSk7cWhbbDw8M10uZm9yRWFjaChhKX0odCxuLGZ1bmN0aW9uKGUpe2YoZSx0LG4pLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbj0wLGU9dC5sZW5ndGgscj10W2UtMV1bMV0qdFswXVswXS10W2UtMV1bMF0qdFswXVsxXTsrK248ZTspcis9dFtuLTFdWzFdKnRbbl1bMF0tdFtuLTFdWzBdKnRbbl1bMV07cmV0dXJuIHJ9KGUpPjA/ci5wdXNoKFtlXSk6YS5wdXNoKGUpfSksYS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlPTAsaT1yLmxlbmd0aDtlPGk7KytlKWlmKC0xIT09eGUoKG49cltlXSlbMF0sdCkpcmV0dXJuIHZvaWQgbi5wdXNoKHQpfSkse3R5cGU6XCJNdWx0aVBvbHlnb25cIix2YWx1ZTpuLGNvb3JkaW5hdGVzOnJ9fWZ1bmN0aW9uIGUodCl7cmV0dXJuIDIqdFswXSt0WzFdKihpKzEpKjR9ZnVuY3Rpb24gcih0LG4sZSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLGE9dFswXSx1PXRbMV0sZj0wfGEsYz0wfHUscz1uW2MqaStmXTthPjAmJmE8aSYmZj09PWEmJihyPW5bYyppK2YtMV0sdFswXT1hKyhlLXIpLyhzLXIpLS41KSx1PjAmJnU8byYmYz09PXUmJihyPW5bKGMtMSkqaStmXSx0WzFdPXUrKGUtcikvKHMtciktLjUpfSl9dmFyIGk9MSxvPTEsYT1wLGY9cjtyZXR1cm4gdC5jb250b3VyPW4sdC5zaXplPWZ1bmN0aW9uKG4pe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybltpLG9dO3ZhciBlPU1hdGguY2VpbChuWzBdKSxyPU1hdGguY2VpbChuWzFdKTtpZighKGU+MCYmcj4wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHNpemVcIik7cmV0dXJuIGk9ZSxvPXIsdH0sdC50aHJlc2hvbGRzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpBcnJheS5pc0FycmF5KG4pP21lKFVoLmNhbGwobikpOm1lKG4pLHQpOmF9LHQuc21vb3RoPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPW4/cjp3ZSx0KTpmPT09cn0sdH1mdW5jdGlvbiBBZSh0LG4sZSl7Zm9yKHZhciByPXQud2lkdGgsaT10LmhlaWdodCxvPTErKGU8PDEpLGE9MDthPGk7KythKWZvcih2YXIgdT0wLGY9MDt1PHIrZTsrK3UpdTxyJiYoZis9dC5kYXRhW3UrYSpyXSksdT49ZSYmKHU+PW8mJihmLT10LmRhdGFbdS1vK2Eqcl0pLG4uZGF0YVt1LWUrYSpyXT1mL01hdGgubWluKHUrMSxyLTErby11LG8pKX1mdW5jdGlvbiBUZSh0LG4sZSl7Zm9yKHZhciByPXQud2lkdGgsaT10LmhlaWdodCxvPTErKGU8PDEpLGE9MDthPHI7KythKWZvcih2YXIgdT0wLGY9MDt1PGkrZTsrK3UpdTxpJiYoZis9dC5kYXRhW2ErdSpyXSksdT49ZSYmKHU+PW8mJihmLT10LmRhdGFbYSsodS1vKSpyXSksbi5kYXRhW2ErKHUtZSkqcl09Zi9NYXRoLm1pbih1KzEsaS0xK28tdSxvKSl9ZnVuY3Rpb24gTmUodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gU2UodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gRWUodCl7cmV0dXJuIG5ldyBGdW5jdGlvbihcImRcIixcInJldHVybiB7XCIrdC5tYXAoZnVuY3Rpb24odCxuKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkrXCI6IGRbXCIrbitcIl1cIn0pLmpvaW4oXCIsXCIpK1wifVwiKX1mdW5jdGlvbiBrZSh0KXtmdW5jdGlvbiBuKHQsbil7ZnVuY3Rpb24gZSgpe2lmKGMpcmV0dXJuIFloO2lmKHMpcmV0dXJuIHM9ITEsT2g7dmFyIG4sZSxyPXU7aWYodC5jaGFyQ29kZUF0KHIpPT09Qmgpe2Zvcig7dSsrPGEmJnQuY2hhckNvZGVBdCh1KSE9PUJofHx0LmNoYXJDb2RlQXQoKyt1KT09PUJoOyk7cmV0dXJuKG49dSk+PWE/Yz0hMDooZT10LmNoYXJDb2RlQXQodSsrKSk9PT1GaD9zPSEwOmU9PT1JaCYmKHM9ITAsdC5jaGFyQ29kZUF0KHUpPT09RmgmJisrdSksdC5zbGljZShyKzEsbi0xKS5yZXBsYWNlKC9cIlwiL2csJ1wiJyl9Zm9yKDt1PGE7KXtpZigoZT10LmNoYXJDb2RlQXQobj11KyspKT09PUZoKXM9ITA7ZWxzZSBpZihlPT09SWgpcz0hMCx0LmNoYXJDb2RlQXQodSk9PT1GaCYmKyt1O2Vsc2UgaWYoZSE9PW8pY29udGludWU7cmV0dXJuIHQuc2xpY2UocixuKX1yZXR1cm4gYz0hMCx0LnNsaWNlKHIsYSl9dmFyIHIsaT1bXSxhPXQubGVuZ3RoLHU9MCxmPTAsYz1hPD0wLHM9ITE7Zm9yKHQuY2hhckNvZGVBdChhLTEpPT09RmgmJi0tYSx0LmNoYXJDb2RlQXQoYS0xKT09PUloJiYtLWE7KHI9ZSgpKSE9PVloOyl7Zm9yKHZhciBsPVtdO3IhPT1PaCYmciE9PVloOylsLnB1c2gocikscj1lKCk7biYmbnVsbD09KGw9bihsLGYrKykpfHxpLnB1c2gobCl9cmV0dXJuIGl9ZnVuY3Rpb24gZShuKXtyZXR1cm4gbi5tYXAocikuam9pbih0KX1mdW5jdGlvbiByKHQpe3JldHVybiBudWxsPT10P1wiXCI6aS50ZXN0KHQrPVwiXCIpPydcIicrdC5yZXBsYWNlKC9cIi9nLCdcIlwiJykrJ1wiJzp0fXZhciBpPW5ldyBSZWdFeHAoJ1tcIicrdCtcIlxcblxccl1cIiksbz10LmNoYXJDb2RlQXQoMCk7cmV0dXJue3BhcnNlOmZ1bmN0aW9uKHQsZSl7dmFyIHIsaSxvPW4odCxmdW5jdGlvbih0LG4pe2lmKHIpcmV0dXJuIHIodCxuLTEpO2k9dCxyPWU/ZnVuY3Rpb24odCxuKXt2YXIgZT1FZSh0KTtyZXR1cm4gZnVuY3Rpb24ocixpKXtyZXR1cm4gbihlKHIpLGksdCl9fSh0LGUpOkVlKHQpfSk7cmV0dXJuIG8uY29sdW1ucz1pfHxbXSxvfSxwYXJzZVJvd3M6bixmb3JtYXQ6ZnVuY3Rpb24obixlKXtyZXR1cm4gbnVsbD09ZSYmKGU9ZnVuY3Rpb24odCl7dmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxlPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7Zm9yKHZhciByIGluIHQpciBpbiBufHxlLnB1c2gobltyXT1yKX0pLGV9KG4pKSxbZS5tYXAocikuam9pbih0KV0uY29uY2F0KG4ubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcihuW3RdKX0pLmpvaW4odCl9KSkuam9pbihcIlxcblwiKX0sZm9ybWF0Um93czpmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZSkuam9pbihcIlxcblwiKX19fWZ1bmN0aW9uIENlKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cytcIiBcIit0LnN0YXR1c1RleHQpO3JldHVybiB0LmJsb2IoKX1mdW5jdGlvbiBQZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5hcnJheUJ1ZmZlcigpfWZ1bmN0aW9uIHplKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cytcIiBcIit0LnN0YXR1c1RleHQpO3JldHVybiB0LnRleHQoKX1mdW5jdGlvbiBSZSh0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oemUpfWZ1bmN0aW9uIExlKHQpe3JldHVybiBmdW5jdGlvbihuLGUscil7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYocj1lLGU9dm9pZCAwKSxSZShuLGUpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIHQobixyKX0pfX1mdW5jdGlvbiBEZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5qc29uKCl9ZnVuY3Rpb24gVWUodCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIFJlKG4sZSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKG4sdCl9KX19ZnVuY3Rpb24gcWUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIE9lKCl7cmV0dXJuIDFlLTYqKE1hdGgucmFuZG9tKCktLjUpfWZ1bmN0aW9uIFllKHQsbixlLHIpe2lmKGlzTmFOKG4pfHxpc05hTihlKSlyZXR1cm4gdDt2YXIgaSxvLGEsdSxmLGMscyxsLGgsZD10Ll9yb290LHA9e2RhdGE6cn0sdj10Ll94MCxnPXQuX3kwLHk9dC5feDEsXz10Ll95MTtpZighZClyZXR1cm4gdC5fcm9vdD1wLHQ7Zm9yKDtkLmxlbmd0aDspaWYoKGM9bj49KG89KHYreSkvMikpP3Y9bzp5PW8sKHM9ZT49KGE9KGcrXykvMikpP2c9YTpfPWEsaT1kLCEoZD1kW2w9czw8MXxjXSkpcmV0dXJuIGlbbF09cCx0O2lmKHU9K3QuX3guY2FsbChudWxsLGQuZGF0YSksZj0rdC5feS5jYWxsKG51bGwsZC5kYXRhKSxuPT09dSYmZT09PWYpcmV0dXJuIHAubmV4dD1kLGk/aVtsXT1wOnQuX3Jvb3Q9cCx0O2Rve2k9aT9pW2xdPW5ldyBBcnJheSg0KTp0Ll9yb290PW5ldyBBcnJheSg0KSwoYz1uPj0obz0odit5KS8yKSk/dj1vOnk9bywocz1lPj0oYT0oZytfKS8yKSk/Zz1hOl89YX13aGlsZSgobD1zPDwxfGMpPT0oaD0oZj49YSk8PDF8dT49bykpO3JldHVybiBpW2hdPWQsaVtsXT1wLHR9ZnVuY3Rpb24gQmUodCxuLGUscixpKXt0aGlzLm5vZGU9dCx0aGlzLngwPW4sdGhpcy55MD1lLHRoaXMueDE9cix0aGlzLnkxPWl9ZnVuY3Rpb24gRmUodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gSWUodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gamUodCxuLGUpe3ZhciByPW5ldyBIZShudWxsPT1uP0ZlOm4sbnVsbD09ZT9JZTplLE5hTixOYU4sTmFOLE5hTik7cmV0dXJuIG51bGw9PXQ/cjpyLmFkZEFsbCh0KX1mdW5jdGlvbiBIZSh0LG4sZSxyLGksbyl7dGhpcy5feD10LHRoaXMuX3k9bix0aGlzLl94MD1lLHRoaXMuX3kwPXIsdGhpcy5feDE9aSx0aGlzLl95MT1vLHRoaXMuX3Jvb3Q9dm9pZCAwfWZ1bmN0aW9uIFhlKHQpe2Zvcih2YXIgbj17ZGF0YTp0LmRhdGF9LGU9bjt0PXQubmV4dDspZT1lLm5leHQ9e2RhdGE6dC5kYXRhfTtyZXR1cm4gbn1mdW5jdGlvbiBHZSh0KXtyZXR1cm4gdC54K3Qudnh9ZnVuY3Rpb24gVmUodCl7cmV0dXJuIHQueSt0LnZ5fWZ1bmN0aW9uICRlKHQpe3JldHVybiB0LmluZGV4fWZ1bmN0aW9uIFdlKHQsbil7dmFyIGU9dC5nZXQobik7aWYoIWUpdGhyb3cgbmV3IEVycm9yKFwibWlzc2luZzogXCIrbik7cmV0dXJuIGV9ZnVuY3Rpb24gWmUodCl7cmV0dXJuIHQueH1mdW5jdGlvbiBRZSh0KXtyZXR1cm4gdC55fWZ1bmN0aW9uIEplKHQsbil7aWYoKGU9KHQ9bj90LnRvRXhwb25lbnRpYWwobi0xKTp0LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZihcImVcIikpPDApcmV0dXJuIG51bGw7dmFyIGUscj10LnNsaWNlKDAsZSk7cmV0dXJuW3IubGVuZ3RoPjE/clswXStyLnNsaWNlKDIpOnIsK3Quc2xpY2UoZSsxKV19ZnVuY3Rpb24gS2UodCl7cmV0dXJuKHQ9SmUoTWF0aC5hYnModCkpKT90WzFdOk5hTn1mdW5jdGlvbiB0cih0KXtyZXR1cm4gbmV3IG5yKHQpfWZ1bmN0aW9uIG5yKHQpe2lmKCEobj11ZC5leGVjKHQpKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGZvcm1hdDogXCIrdCk7dmFyIG47dGhpcy5maWxsPW5bMV18fFwiIFwiLHRoaXMuYWxpZ249blsyXXx8XCI+XCIsdGhpcy5zaWduPW5bM118fFwiLVwiLHRoaXMuc3ltYm9sPW5bNF18fFwiXCIsdGhpcy56ZXJvPSEhbls1XSx0aGlzLndpZHRoPW5bNl0mJituWzZdLHRoaXMuY29tbWE9ISFuWzddLHRoaXMucHJlY2lzaW9uPW5bOF0mJituWzhdLnNsaWNlKDEpLHRoaXMudHJpbT0hIW5bOV0sdGhpcy50eXBlPW5bMTBdfHxcIlwifWZ1bmN0aW9uIGVyKHQsbil7dmFyIGU9SmUodCxuKTtpZighZSlyZXR1cm4gdCtcIlwiO3ZhciByPWVbMF0saT1lWzFdO3JldHVybiBpPDA/XCIwLlwiK25ldyBBcnJheSgtaSkuam9pbihcIjBcIikrcjpyLmxlbmd0aD5pKzE/ci5zbGljZSgwLGkrMSkrXCIuXCIrci5zbGljZShpKzEpOnIrbmV3IEFycmF5KGktci5sZW5ndGgrMikuam9pbihcIjBcIil9ZnVuY3Rpb24gcnIodCl7cmV0dXJuIHR9ZnVuY3Rpb24gaXIodCl7ZnVuY3Rpb24gbih0KXtmdW5jdGlvbiBuKHQpe3ZhciBuLHIsYSxzPXkseD1fO2lmKFwiY1wiPT09Zyl4PWIodCkreCx0PVwiXCI7ZWxzZXt2YXIgdz0odD0rdCk8MDtpZih0PWIoTWF0aC5hYnModCkscCksdiYmKHQ9ZnVuY3Rpb24odCl7dDpmb3IodmFyIG4sZT10Lmxlbmd0aCxyPTEsaT0tMTtyPGU7KytyKXN3aXRjaCh0W3JdKXtjYXNlXCIuXCI6aT1uPXI7YnJlYWs7Y2FzZVwiMFwiOjA9PT1pJiYoaT1yKSxuPXI7YnJlYWs7ZGVmYXVsdDppZihpPjApe2lmKCErdFtyXSlicmVhayB0O2k9MH19cmV0dXJuIGk+MD90LnNsaWNlKDAsaSkrdC5zbGljZShuKzEpOnR9KHQpKSx3JiYwPT0rdCYmKHc9ITEpLHM9KHc/XCIoXCI9PT1jP2M6XCItXCI6XCItXCI9PT1jfHxcIihcIj09PWM/XCJcIjpjKStzLHg9KFwic1wiPT09Zz9sZFs4K2ZkLzNdOlwiXCIpK3grKHcmJlwiKFwiPT09Yz9cIilcIjpcIlwiKSxtKWZvcihuPS0xLHI9dC5sZW5ndGg7KytuPHI7KWlmKDQ4PihhPXQuY2hhckNvZGVBdChuKSl8fGE+NTcpe3g9KDQ2PT09YT9pK3Quc2xpY2UobisxKTp0LnNsaWNlKG4pKSt4LHQ9dC5zbGljZSgwLG4pO2JyZWFrfX1kJiYhbCYmKHQ9ZSh0LDEvMCkpO3ZhciBNPXMubGVuZ3RoK3QubGVuZ3RoK3gubGVuZ3RoLEE9TTxoP25ldyBBcnJheShoLU0rMSkuam9pbih1KTpcIlwiO3N3aXRjaChkJiZsJiYodD1lKEErdCxBLmxlbmd0aD9oLXgubGVuZ3RoOjEvMCksQT1cIlwiKSxmKXtjYXNlXCI8XCI6dD1zK3QreCtBO2JyZWFrO2Nhc2VcIj1cIjp0PXMrQSt0K3g7YnJlYWs7Y2FzZVwiXlwiOnQ9QS5zbGljZSgwLE09QS5sZW5ndGg+PjEpK3MrdCt4K0Euc2xpY2UoTSk7YnJlYWs7ZGVmYXVsdDp0PUErcyt0K3h9cmV0dXJuIG8odCl9dmFyIHU9KHQ9dHIodCkpLmZpbGwsZj10LmFsaWduLGM9dC5zaWduLHM9dC5zeW1ib2wsbD10Lnplcm8saD10LndpZHRoLGQ9dC5jb21tYSxwPXQucHJlY2lzaW9uLHY9dC50cmltLGc9dC50eXBlO1wiblwiPT09Zz8oZD0hMCxnPVwiZ1wiKTpzZFtnXXx8KG51bGw9PXAmJihwPTEyKSx2PSEwLGc9XCJnXCIpLChsfHxcIjBcIj09PXUmJlwiPVwiPT09ZikmJihsPSEwLHU9XCIwXCIsZj1cIj1cIik7dmFyIHk9XCIkXCI9PT1zP3JbMF06XCIjXCI9PT1zJiYvW2JveFhdLy50ZXN0KGcpP1wiMFwiK2cudG9Mb3dlckNhc2UoKTpcIlwiLF89XCIkXCI9PT1zP3JbMV06L1slcF0vLnRlc3QoZyk/YTpcIlwiLGI9c2RbZ10sbT0vW2RlZmdwcnMlXS8udGVzdChnKTtyZXR1cm4gcD1udWxsPT1wPzY6L1tncHJzXS8udGVzdChnKT9NYXRoLm1heCgxLE1hdGgubWluKDIxLHApKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLHApKSxuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQrXCJcIn0sbn12YXIgZT10Lmdyb3VwaW5nJiZ0LnRob3VzYW5kcz9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbihlLHIpe2Zvcih2YXIgaT1lLmxlbmd0aCxvPVtdLGE9MCx1PXRbMF0sZj0wO2k+MCYmdT4wJiYoZit1KzE+ciYmKHU9TWF0aC5tYXgoMSxyLWYpKSxvLnB1c2goZS5zdWJzdHJpbmcoaS09dSxpK3UpKSwhKChmKz11KzEpPnIpKTspdT10W2E9KGErMSkldC5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKG4pfX0odC5ncm91cGluZyx0LnRob3VzYW5kcyk6cnIscj10LmN1cnJlbmN5LGk9dC5kZWNpbWFsLG89dC5udW1lcmFscz9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG4ucmVwbGFjZSgvWzAtOV0vZyxmdW5jdGlvbihuKXtyZXR1cm4gdFsrbl19KX19KHQubnVtZXJhbHMpOnJyLGE9dC5wZXJjZW50fHxcIiVcIjtyZXR1cm57Zm9ybWF0Om4sZm9ybWF0UHJlZml4OmZ1bmN0aW9uKHQsZSl7dmFyIHI9bigodD10cih0KSx0LnR5cGU9XCJmXCIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoS2UoZSkvMykpKSxvPU1hdGgucG93KDEwLC1pKSxhPWxkWzgraS8zXTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIobyp0KSthfX19fWZ1bmN0aW9uIG9yKG4pe3JldHVybiBjZD1pcihuKSx0LmZvcm1hdD1jZC5mb3JtYXQsdC5mb3JtYXRQcmVmaXg9Y2QuZm9ybWF0UHJlZml4LGNkfWZ1bmN0aW9uIGFyKHQpe3JldHVybiBNYXRoLm1heCgwLC1LZShNYXRoLmFicyh0KSkpfWZ1bmN0aW9uIHVyKHQsbil7cmV0dXJuIE1hdGgubWF4KDAsMypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoS2UobikvMykpKS1LZShNYXRoLmFicyh0KSkpfWZ1bmN0aW9uIGZyKHQsbil7cmV0dXJuIHQ9TWF0aC5hYnModCksbj1NYXRoLmFicyhuKS10LE1hdGgubWF4KDAsS2UobiktS2UodCkpKzF9ZnVuY3Rpb24gY3IoKXtyZXR1cm4gbmV3IHNyfWZ1bmN0aW9uIHNyKCl7dGhpcy5yZXNldCgpfWZ1bmN0aW9uIGxyKHQsbixlKXt2YXIgcj10LnM9bitlLGk9ci1uLG89ci1pO3QudD1uLW8rKGUtaSl9ZnVuY3Rpb24gaHIodCl7cmV0dXJuIHQ+MT8wOnQ8LTE/R2Q6TWF0aC5hY29zKHQpfWZ1bmN0aW9uIGRyKHQpe3JldHVybiB0PjE/VmQ6dDwtMT8tVmQ6TWF0aC5hc2luKHQpfWZ1bmN0aW9uIHByKHQpe3JldHVybih0PWFwKHQvMikpKnR9ZnVuY3Rpb24gdnIoKXt9ZnVuY3Rpb24gZ3IodCxuKXt0JiZscC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpJiZscFt0LnR5cGVdKHQsbil9ZnVuY3Rpb24geXIodCxuLGUpe3ZhciByLGk9LTEsbz10Lmxlbmd0aC1lO2ZvcihuLmxpbmVTdGFydCgpOysraTxvOylyPXRbaV0sbi5wb2ludChyWzBdLHJbMV0sclsyXSk7bi5saW5lRW5kKCl9ZnVuY3Rpb24gX3IodCxuKXt2YXIgZT0tMSxyPXQubGVuZ3RoO2ZvcihuLnBvbHlnb25TdGFydCgpOysrZTxyOyl5cih0W2VdLG4sMSk7bi5wb2x5Z29uRW5kKCl9ZnVuY3Rpb24gYnIodCxuKXt0JiZzcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP3NwW3QudHlwZV0odCxuKTpncih0LG4pfWZ1bmN0aW9uIG1yKCl7cHAucG9pbnQ9d3J9ZnVuY3Rpb24geHIoKXtNcihoZCxkZCl9ZnVuY3Rpb24gd3IodCxuKXtwcC5wb2ludD1NcixoZD10LGRkPW4scGQ9dCo9UWQsdmQ9bnAobj0obio9UWQpLzIrJGQpLGdkPWFwKG4pfWZ1bmN0aW9uIE1yKHQsbil7bj0obio9UWQpLzIrJGQ7dmFyIGU9KHQqPVFkKS1wZCxyPWU+PTA/MTotMSxpPXIqZSxvPW5wKG4pLGE9YXAobiksdT1nZCphLGY9dmQqbyt1Km5wKGkpLGM9dSpyKmFwKGkpO2hwLmFkZCh0cChjLGYpKSxwZD10LHZkPW8sZ2Q9YX1mdW5jdGlvbiBBcih0KXtyZXR1cm5bdHAodFsxXSx0WzBdKSxkcih0WzJdKV19ZnVuY3Rpb24gVHIodCl7dmFyIG49dFswXSxlPXRbMV0scj1ucChlKTtyZXR1cm5bcipucChuKSxyKmFwKG4pLGFwKGUpXX1mdW5jdGlvbiBOcih0LG4pe3JldHVybiB0WzBdKm5bMF0rdFsxXSpuWzFdK3RbMl0qblsyXX1mdW5jdGlvbiBTcih0LG4pe3JldHVyblt0WzFdKm5bMl0tdFsyXSpuWzFdLHRbMl0qblswXS10WzBdKm5bMl0sdFswXSpuWzFdLXRbMV0qblswXV19ZnVuY3Rpb24gRXIodCxuKXt0WzBdKz1uWzBdLHRbMV0rPW5bMV0sdFsyXSs9blsyXX1mdW5jdGlvbiBrcih0LG4pe3JldHVyblt0WzBdKm4sdFsxXSpuLHRbMl0qbl19ZnVuY3Rpb24gQ3IodCl7dmFyIG49ZnAodFswXSp0WzBdK3RbMV0qdFsxXSt0WzJdKnRbMl0pO3RbMF0vPW4sdFsxXS89bix0WzJdLz1ufWZ1bmN0aW9uIFByKHQsbil7VGQucHVzaChOZD1beWQ9dCxiZD10XSksbjxfZCYmKF9kPW4pLG4+bWQmJihtZD1uKX1mdW5jdGlvbiB6cih0LG4pe3ZhciBlPVRyKFt0KlFkLG4qUWRdKTtpZihBZCl7dmFyIHI9U3IoQWQsZSksaT1TcihbclsxXSwtclswXSwwXSxyKTtDcihpKSxpPUFyKGkpO3ZhciBvLGE9dC14ZCx1PWE+MD8xOi0xLGY9aVswXSpaZCp1LGM9SmQoYSk+MTgwO2NeKHUqeGQ8ZiYmZjx1KnQpPyhvPWlbMV0qWmQpPm1kJiYobWQ9byk6KGY9KGYrMzYwKSUzNjAtMTgwLGNeKHUqeGQ8ZiYmZjx1KnQpPyhvPS1pWzFdKlpkKTxfZCYmKF9kPW8pOihuPF9kJiYoX2Q9biksbj5tZCYmKG1kPW4pKSksYz90PHhkP09yKHlkLHQpPk9yKHlkLGJkKSYmKGJkPXQpOk9yKHQsYmQpPk9yKHlkLGJkKSYmKHlkPXQpOmJkPj15ZD8odDx5ZCYmKHlkPXQpLHQ+YmQmJihiZD10KSk6dD54ZD9Pcih5ZCx0KT5Pcih5ZCxiZCkmJihiZD10KTpPcih0LGJkKT5Pcih5ZCxiZCkmJih5ZD10KX1lbHNlIFRkLnB1c2goTmQ9W3lkPXQsYmQ9dF0pO248X2QmJihfZD1uKSxuPm1kJiYobWQ9biksQWQ9ZSx4ZD10fWZ1bmN0aW9uIFJyKCl7Z3AucG9pbnQ9enJ9ZnVuY3Rpb24gTHIoKXtOZFswXT15ZCxOZFsxXT1iZCxncC5wb2ludD1QcixBZD1udWxsfWZ1bmN0aW9uIERyKHQsbil7aWYoQWQpe3ZhciBlPXQteGQ7dnAuYWRkKEpkKGUpPjE4MD9lKyhlPjA/MzYwOi0zNjApOmUpfWVsc2Ugd2Q9dCxNZD1uO3BwLnBvaW50KHQsbiksenIodCxuKX1mdW5jdGlvbiBVcigpe3BwLmxpbmVTdGFydCgpfWZ1bmN0aW9uIHFyKCl7RHIod2QsTWQpLHBwLmxpbmVFbmQoKSxKZCh2cCk+SGQmJih5ZD0tKGJkPTE4MCkpLE5kWzBdPXlkLE5kWzFdPWJkLEFkPW51bGx9ZnVuY3Rpb24gT3IodCxuKXtyZXR1cm4obi09dCk8MD9uKzM2MDpufWZ1bmN0aW9uIFlyKHQsbil7cmV0dXJuIHRbMF0tblswXX1mdW5jdGlvbiBCcih0LG4pe3JldHVybiB0WzBdPD10WzFdP3RbMF08PW4mJm48PXRbMV06bjx0WzBdfHx0WzFdPG59ZnVuY3Rpb24gRnIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCk7SXIoZSpucCh0KSxlKmFwKHQpLGFwKG4pKX1mdW5jdGlvbiBJcih0LG4sZSl7a2QrPSh0LWtkKS8rK1NkLENkKz0obi1DZCkvU2QsUGQrPShlLVBkKS9TZH1mdW5jdGlvbiBqcigpe3lwLnBvaW50PUhyfWZ1bmN0aW9uIEhyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpO0JkPWUqbnAodCksRmQ9ZSphcCh0KSxJZD1hcChuKSx5cC5wb2ludD1YcixJcihCZCxGZCxJZCl9ZnVuY3Rpb24gWHIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCkscj1lKm5wKHQpLGk9ZSphcCh0KSxvPWFwKG4pLGE9dHAoZnAoKGE9RmQqby1JZCppKSphKyhhPUlkKnItQmQqbykqYSsoYT1CZCppLUZkKnIpKmEpLEJkKnIrRmQqaStJZCpvKTtFZCs9YSx6ZCs9YSooQmQrKEJkPXIpKSxSZCs9YSooRmQrKEZkPWkpKSxMZCs9YSooSWQrKElkPW8pKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gR3IoKXt5cC5wb2ludD1Gcn1mdW5jdGlvbiBWcigpe3lwLnBvaW50PVdyfWZ1bmN0aW9uICRyKCl7WnIoT2QsWWQpLHlwLnBvaW50PUZyfWZ1bmN0aW9uIFdyKHQsbil7T2Q9dCxZZD1uLHQqPVFkLG4qPVFkLHlwLnBvaW50PVpyO3ZhciBlPW5wKG4pO0JkPWUqbnAodCksRmQ9ZSphcCh0KSxJZD1hcChuKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gWnIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCkscj1lKm5wKHQpLGk9ZSphcCh0KSxvPWFwKG4pLGE9RmQqby1JZCppLHU9SWQqci1CZCpvLGY9QmQqaS1GZCpyLGM9ZnAoYSphK3UqdStmKmYpLHM9ZHIoYyksbD1jJiYtcy9jO0RkKz1sKmEsVWQrPWwqdSxxZCs9bCpmLEVkKz1zLHpkKz1zKihCZCsoQmQ9cikpLFJkKz1zKihGZCsoRmQ9aSkpLExkKz1zKihJZCsoSWQ9bykpLElyKEJkLEZkLElkKX1mdW5jdGlvbiBRcih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gSnIodCxuKXtmdW5jdGlvbiBlKGUscil7cmV0dXJuIGU9dChlLHIpLG4oZVswXSxlWzFdKX1yZXR1cm4gdC5pbnZlcnQmJm4uaW52ZXJ0JiYoZS5pbnZlcnQ9ZnVuY3Rpb24oZSxyKXtyZXR1cm4oZT1uLmludmVydChlLHIpKSYmdC5pbnZlcnQoZVswXSxlWzFdKX0pLGV9ZnVuY3Rpb24gS3IodCxuKXtyZXR1cm5bdD5HZD90LVdkOnQ8LUdkP3QrV2Q6dCxuXX1mdW5jdGlvbiB0aSh0LG4sZSl7cmV0dXJuKHQlPVdkKT9ufHxlP0pyKGVpKHQpLHJpKG4sZSkpOmVpKHQpOm58fGU/cmkobixlKTpLcn1mdW5jdGlvbiBuaSh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXtyZXR1cm4gbis9dCxbbj5HZD9uLVdkOm48LUdkP24rV2Q6bixlXX19ZnVuY3Rpb24gZWkodCl7dmFyIG49bmkodCk7cmV0dXJuIG4uaW52ZXJ0PW5pKC10KSxufWZ1bmN0aW9uIHJpKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPW5wKG4pLHU9bnAodCkqZSxmPWFwKHQpKmUsYz1hcChuKSxzPWMqcit1Kmk7cmV0dXJuW3RwKGYqby1zKmEsdSpyLWMqaSksZHIocypvK2YqYSldfXZhciByPW5wKHQpLGk9YXAodCksbz1ucChuKSxhPWFwKG4pO3JldHVybiBlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW5wKG4pLHU9bnAodCkqZSxmPWFwKHQpKmUsYz1hcChuKSxzPWMqby1mKmE7cmV0dXJuW3RwKGYqbytjKmEsdSpyK3MqaSksZHIocypyLXUqaSldfSxlfWZ1bmN0aW9uIGlpKHQpe2Z1bmN0aW9uIG4obil7cmV0dXJuIG49dChuWzBdKlFkLG5bMV0qUWQpLG5bMF0qPVpkLG5bMV0qPVpkLG59cmV0dXJuIHQ9dGkodFswXSpRZCx0WzFdKlFkLHQubGVuZ3RoPjI/dFsyXSpRZDowKSxuLmludmVydD1mdW5jdGlvbihuKXtyZXR1cm4gbj10LmludmVydChuWzBdKlFkLG5bMV0qUWQpLG5bMF0qPVpkLG5bMV0qPVpkLG59LG59ZnVuY3Rpb24gb2kodCxuLGUscixpLG8pe2lmKGUpe3ZhciBhPW5wKG4pLHU9YXAobiksZj1yKmU7bnVsbD09aT8oaT1uK3IqV2Qsbz1uLWYvMik6KGk9YWkoYSxpKSxvPWFpKGEsbyksKHI+MD9pPG86aT5vKSYmKGkrPXIqV2QpKTtmb3IodmFyIGMscz1pO3I+MD9zPm86czxvO3MtPWYpYz1BcihbYSwtdSpucChzKSwtdSphcChzKV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gYWkodCxuKXsobj1UcihuKSlbMF0tPXQsQ3Iobik7dmFyIGU9aHIoLW5bMV0pO3JldHVybigoLW5bMl08MD8tZTplKStXZC1IZCklV2R9ZnVuY3Rpb24gdWkoKXt2YXIgdCxuPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihuLGUpe3QucHVzaChbbixlXSl9LGxpbmVTdGFydDpmdW5jdGlvbigpe24ucHVzaCh0PVtdKX0sbGluZUVuZDp2cixyZWpvaW46ZnVuY3Rpb24oKXtuLmxlbmd0aD4xJiZuLnB1c2gobi5wb3AoKS5jb25jYXQobi5zaGlmdCgpKSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBlPW47cmV0dXJuIG49W10sdD1udWxsLGV9fX1mdW5jdGlvbiBmaSh0LG4pe3JldHVybiBKZCh0WzBdLW5bMF0pPEhkJiZKZCh0WzFdLW5bMV0pPEhkfWZ1bmN0aW9uIGNpKHQsbixlLHIpe3RoaXMueD10LHRoaXMuej1uLHRoaXMubz1lLHRoaXMuZT1yLHRoaXMudj0hMSx0aGlzLm49dGhpcy5wPW51bGx9ZnVuY3Rpb24gc2kodCxuLGUscixpKXt2YXIgbyxhLHU9W10sZj1bXTtpZih0LmZvckVhY2goZnVuY3Rpb24odCl7aWYoISgobj10Lmxlbmd0aC0xKTw9MCkpe3ZhciBuLGUscj10WzBdLGE9dFtuXTtpZihmaShyLGEpKXtmb3IoaS5saW5lU3RhcnQoKSxvPTA7bzxuOysrbylpLnBvaW50KChyPXRbb10pWzBdLHJbMV0pO2kubGluZUVuZCgpfWVsc2UgdS5wdXNoKGU9bmV3IGNpKHIsdCxudWxsLCEwKSksZi5wdXNoKGUubz1uZXcgY2kocixudWxsLGUsITEpKSx1LnB1c2goZT1uZXcgY2koYSx0LG51bGwsITEpKSxmLnB1c2goZS5vPW5ldyBjaShhLG51bGwsZSwhMCkpfX0pLHUubGVuZ3RoKXtmb3IoZi5zb3J0KG4pLGxpKHUpLGxpKGYpLG89MCxhPWYubGVuZ3RoO288YTsrK28pZltvXS5lPWU9IWU7Zm9yKHZhciBjLHMsbD11WzBdOzspe2Zvcih2YXIgaD1sLGQ9ITA7aC52OylpZigoaD1oLm4pPT09bClyZXR1cm47Yz1oLnosaS5saW5lU3RhcnQoKTtkb3tpZihoLnY9aC5vLnY9ITAsaC5lKXtpZihkKWZvcihvPTAsYT1jLmxlbmd0aDtvPGE7KytvKWkucG9pbnQoKHM9Y1tvXSlbMF0sc1sxXSk7ZWxzZSByKGgueCxoLm4ueCwxLGkpO2g9aC5ufWVsc2V7aWYoZClmb3IoYz1oLnAueixvPWMubGVuZ3RoLTE7bz49MDstLW8paS5wb2ludCgocz1jW29dKVswXSxzWzFdKTtlbHNlIHIoaC54LGgucC54LC0xLGkpO2g9aC5wfWM9KGg9aC5vKS56LGQ9IWR9d2hpbGUoIWgudik7aS5saW5lRW5kKCl9fX1mdW5jdGlvbiBsaSh0KXtpZihuPXQubGVuZ3RoKXtmb3IodmFyIG4sZSxyPTAsaT10WzBdOysrcjxuOylpLm49ZT10W3JdLGUucD1pLGk9ZTtpLm49ZT10WzBdLGUucD1pfX1mdW5jdGlvbiBoaSh0LG4pe3ZhciBlPW5bMF0scj1uWzFdLGk9YXAociksbz1bYXAoZSksLW5wKGUpLDBdLGE9MCx1PTA7a3AucmVzZXQoKSwxPT09aT9yPVZkK0hkOi0xPT09aSYmKHI9LVZkLUhkKTtmb3IodmFyIGY9MCxjPXQubGVuZ3RoO2Y8YzsrK2YpaWYobD0ocz10W2ZdKS5sZW5ndGgpZm9yKHZhciBzLGwsaD1zW2wtMV0sZD1oWzBdLHA9aFsxXS8yKyRkLHY9YXAocCksZz1ucChwKSx5PTA7eTxsOysreSxkPWIsdj14LGc9dyxoPV8pe3ZhciBfPXNbeV0sYj1fWzBdLG09X1sxXS8yKyRkLHg9YXAobSksdz1ucChtKSxNPWItZCxBPU0+PTA/MTotMSxUPUEqTSxOPVQ+R2QsUz12Kng7aWYoa3AuYWRkKHRwKFMqQSphcChUKSxnKncrUypucChUKSkpLGErPU4/TStBKldkOk0sTl5kPj1lXmI+PWUpe3ZhciBFPVNyKFRyKGgpLFRyKF8pKTtDcihFKTt2YXIgaz1TcihvLEUpO0NyKGspO3ZhciBDPShOXk0+PTA/LTE6MSkqZHIoa1syXSk7KHI+Q3x8cj09PUMmJihFWzBdfHxFWzFdKSkmJih1Kz1OXk0+PTA/MTotMSl9fXJldHVybihhPC1IZHx8YTxIZCYma3A8LUhkKV4xJnV9ZnVuY3Rpb24gZGkodCxuLGUscil7cmV0dXJuIGZ1bmN0aW9uKGkpe2Z1bmN0aW9uIG8obixlKXt0KG4sZSkmJmkucG9pbnQobixlKX1mdW5jdGlvbiBhKHQsbil7di5wb2ludCh0LG4pfWZ1bmN0aW9uIHUoKXttLnBvaW50PWEsdi5saW5lU3RhcnQoKX1mdW5jdGlvbiBmKCl7bS5wb2ludD1vLHYubGluZUVuZCgpfWZ1bmN0aW9uIGModCxuKXtwLnB1c2goW3Qsbl0pLF8ucG9pbnQodCxuKX1mdW5jdGlvbiBzKCl7Xy5saW5lU3RhcnQoKSxwPVtdfWZ1bmN0aW9uIGwoKXtjKHBbMF1bMF0scFswXVsxXSksXy5saW5lRW5kKCk7dmFyIHQsbixlLHIsbz1fLmNsZWFuKCksYT1nLnJlc3VsdCgpLHU9YS5sZW5ndGg7aWYocC5wb3AoKSxoLnB1c2gocCkscD1udWxsLHUpaWYoMSZvKXtpZihlPWFbMF0sKG49ZS5sZW5ndGgtMSk+MCl7Zm9yKGJ8fChpLnBvbHlnb25TdGFydCgpLGI9ITApLGkubGluZVN0YXJ0KCksdD0wO3Q8bjsrK3QpaS5wb2ludCgocj1lW3RdKVswXSxyWzFdKTtpLmxpbmVFbmQoKX19ZWxzZSB1PjEmJjImbyYmYS5wdXNoKGEucG9wKCkuY29uY2F0KGEuc2hpZnQoKSkpLGQucHVzaChhLmZpbHRlcihwaSkpfXZhciBoLGQscCx2PW4oaSksZz11aSgpLF89bihnKSxiPSExLG09e3BvaW50Om8sbGluZVN0YXJ0OnUsbGluZUVuZDpmLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe20ucG9pbnQ9YyxtLmxpbmVTdGFydD1zLG0ubGluZUVuZD1sLGQ9W10saD1bXX0scG9seWdvbkVuZDpmdW5jdGlvbigpe20ucG9pbnQ9byxtLmxpbmVTdGFydD11LG0ubGluZUVuZD1mLGQ9eShkKTt2YXIgdD1oaShoLHIpO2QubGVuZ3RoPyhifHwoaS5wb2x5Z29uU3RhcnQoKSxiPSEwKSxzaShkLHZpLHQsZSxpKSk6dCYmKGJ8fChpLnBvbHlnb25TdGFydCgpLGI9ITApLGkubGluZVN0YXJ0KCksZShudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSksYiYmKGkucG9seWdvbkVuZCgpLGI9ITEpLGQ9aD1udWxsfSxzcGhlcmU6ZnVuY3Rpb24oKXtpLnBvbHlnb25TdGFydCgpLGkubGluZVN0YXJ0KCksZShudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSxpLnBvbHlnb25FbmQoKX19O3JldHVybiBtfX1mdW5jdGlvbiBwaSh0KXtyZXR1cm4gdC5sZW5ndGg+MX1mdW5jdGlvbiB2aSh0LG4pe3JldHVybigodD10LngpWzBdPDA/dFsxXS1WZC1IZDpWZC10WzFdKS0oKG49bi54KVswXTwwP25bMV0tVmQtSGQ6VmQtblsxXSl9ZnVuY3Rpb24gZ2kodCl7ZnVuY3Rpb24gbih0LG4pe3JldHVybiBucCh0KSpucChuKT5pfWZ1bmN0aW9uIGUodCxuLGUpe3ZhciByPVsxLDAsMF0sbz1TcihUcih0KSxUcihuKSksYT1OcihvLG8pLHU9b1swXSxmPWEtdSp1O2lmKCFmKXJldHVybiFlJiZ0O3ZhciBjPWkqYS9mLHM9LWkqdS9mLGw9U3IocixvKSxoPWtyKHIsYyk7RXIoaCxrcihvLHMpKTt2YXIgZD1sLHA9TnIoaCxkKSx2PU5yKGQsZCksZz1wKnAtdiooTnIoaCxoKS0xKTtpZighKGc8MCkpe3ZhciB5PWZwKGcpLF89a3IoZCwoLXAteSkvdik7aWYoRXIoXyxoKSxfPUFyKF8pLCFlKXJldHVybiBfO3ZhciBiLG09dFswXSx4PW5bMF0sdz10WzFdLE09blsxXTt4PG0mJihiPW0sbT14LHg9Yik7dmFyIEE9eC1tLFQ9SmQoQS1HZCk8SGQ7aWYoIVQmJk08dyYmKGI9dyx3PU0sTT1iKSxUfHxBPEhkP1Q/dytNPjBeX1sxXTwoSmQoX1swXS1tKTxIZD93Ok0pOnc8PV9bMV0mJl9bMV08PU06QT5HZF4obTw9X1swXSYmX1swXTw9eCkpe3ZhciBOPWtyKGQsKC1wK3kpL3YpO3JldHVybiBFcihOLGgpLFtfLEFyKE4pXX19fWZ1bmN0aW9uIHIobixlKXt2YXIgcj1hP3Q6R2QtdCxpPTA7cmV0dXJuIG48LXI/aXw9MTpuPnImJihpfD0yKSxlPC1yP2l8PTQ6ZT5yJiYoaXw9OCksaX12YXIgaT1ucCh0KSxvPTYqUWQsYT1pPjAsdT1KZChpKT5IZDtyZXR1cm4gZGkobixmdW5jdGlvbih0KXt2YXIgaSxvLGYsYyxzO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtjPWY9ITEscz0xfSxwb2ludDpmdW5jdGlvbihsLGgpe3ZhciBkLHA9W2wsaF0sdj1uKGwsaCksZz1hP3Y/MDpyKGwsaCk6dj9yKGwrKGw8MD9HZDotR2QpLGgpOjA7aWYoIWkmJihjPWY9dikmJnQubGluZVN0YXJ0KCksdiE9PWYmJighKGQ9ZShpLHApKXx8ZmkoaSxkKXx8ZmkocCxkKSkmJihwWzBdKz1IZCxwWzFdKz1IZCx2PW4ocFswXSxwWzFdKSksdiE9PWYpcz0wLHY/KHQubGluZVN0YXJ0KCksZD1lKHAsaSksdC5wb2ludChkWzBdLGRbMV0pKTooZD1lKGkscCksdC5wb2ludChkWzBdLGRbMV0pLHQubGluZUVuZCgpKSxpPWQ7ZWxzZSBpZih1JiZpJiZhXnYpe3ZhciB5O2cmb3x8ISh5PWUocCxpLCEwKSl8fChzPTAsYT8odC5saW5lU3RhcnQoKSx0LnBvaW50KHlbMF1bMF0seVswXVsxXSksdC5wb2ludCh5WzFdWzBdLHlbMV1bMV0pLHQubGluZUVuZCgpKToodC5wb2ludCh5WzFdWzBdLHlbMV1bMV0pLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh5WzBdWzBdLHlbMF1bMV0pKSl9IXZ8fGkmJmZpKGkscCl8fHQucG9pbnQocFswXSxwWzFdKSxpPXAsZj12LG89Z30sbGluZUVuZDpmdW5jdGlvbigpe2YmJnQubGluZUVuZCgpLGk9bnVsbH0sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gc3woYyYmZik8PDF9fX0sZnVuY3Rpb24obixlLHIsaSl7b2koaSx0LG8scixuLGUpfSxhP1swLC10XTpbLUdkLHQtR2RdKX1mdW5jdGlvbiB5aSh0LG4sZSxyKXtmdW5jdGlvbiBpKGksbyl7cmV0dXJuIHQ8PWkmJmk8PWUmJm48PW8mJm88PXJ9ZnVuY3Rpb24gbyhpLG8sdSxjKXt2YXIgcz0wLGw9MDtpZihudWxsPT1pfHwocz1hKGksdSkpIT09KGw9YShvLHUpKXx8ZihpLG8pPDBedT4wKWRve2MucG9pbnQoMD09PXN8fDM9PT1zP3Q6ZSxzPjE/cjpuKX13aGlsZSgocz0ocyt1KzQpJTQpIT09bCk7ZWxzZSBjLnBvaW50KG9bMF0sb1sxXSl9ZnVuY3Rpb24gYShyLGkpe3JldHVybiBKZChyWzBdLXQpPEhkP2k+MD8wOjM6SmQoclswXS1lKTxIZD9pPjA/MjoxOkpkKHJbMV0tbik8SGQ/aT4wPzE6MDppPjA/MzoyfWZ1bmN0aW9uIHUodCxuKXtyZXR1cm4gZih0Lngsbi54KX1mdW5jdGlvbiBmKHQsbil7dmFyIGU9YSh0LDEpLHI9YShuLDEpO3JldHVybiBlIT09cj9lLXI6MD09PWU/blsxXS10WzFdOjE9PT1lP3RbMF0tblswXToyPT09ZT90WzFdLW5bMV06blswXS10WzBdfXJldHVybiBmdW5jdGlvbihhKXtmdW5jdGlvbiBmKHQsbil7aSh0LG4pJiZ3LnBvaW50KHQsbil9ZnVuY3Rpb24gYyhvLGEpe3ZhciB1PWkobyxhKTtpZihsJiZoLnB1c2goW28sYV0pLG0pZD1vLHA9YSx2PXUsbT0hMSx1JiYody5saW5lU3RhcnQoKSx3LnBvaW50KG8sYSkpO2Vsc2UgaWYodSYmYil3LnBvaW50KG8sYSk7ZWxzZXt2YXIgZj1bZz1NYXRoLm1heCh6cCxNYXRoLm1pbihQcCxnKSksXz1NYXRoLm1heCh6cCxNYXRoLm1pbihQcCxfKSldLGM9W289TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsbykpLGE9TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsYSkpXTshZnVuY3Rpb24odCxuLGUscixpLG8pe3ZhciBhLHU9dFswXSxmPXRbMV0sYz0wLHM9MSxsPW5bMF0tdSxoPW5bMV0tZjtpZihhPWUtdSxsfHwhKGE+MCkpe2lmKGEvPWwsbDwwKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9ZWxzZSBpZihsPjApe2lmKGE+cylyZXR1cm47YT5jJiYoYz1hKX1pZihhPWktdSxsfHwhKGE8MCkpe2lmKGEvPWwsbDwwKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihsPjApe2lmKGE8YylyZXR1cm47YTxzJiYocz1hKX1pZihhPXItZixofHwhKGE+MCkpe2lmKGEvPWgsaDwwKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9ZWxzZSBpZihoPjApe2lmKGE+cylyZXR1cm47YT5jJiYoYz1hKX1pZihhPW8tZixofHwhKGE8MCkpe2lmKGEvPWgsaDwwKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihoPjApe2lmKGE8YylyZXR1cm47YTxzJiYocz1hKX1yZXR1cm4gYz4wJiYodFswXT11K2MqbCx0WzFdPWYrYypoKSxzPDEmJihuWzBdPXUrcypsLG5bMV09ZitzKmgpLCEwfX19fX0oZixjLHQsbixlLHIpP3UmJih3LmxpbmVTdGFydCgpLHcucG9pbnQobyxhKSx4PSExKTooYnx8KHcubGluZVN0YXJ0KCksdy5wb2ludChmWzBdLGZbMV0pKSx3LnBvaW50KGNbMF0sY1sxXSksdXx8dy5saW5lRW5kKCkseD0hMSl9Zz1vLF89YSxiPXV9dmFyIHMsbCxoLGQscCx2LGcsXyxiLG0seCx3PWEsTT11aSgpLEE9e3BvaW50OmYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7QS5wb2ludD1jLGwmJmwucHVzaChoPVtdKSxtPSEwLGI9ITEsZz1fPU5hTn0sbGluZUVuZDpmdW5jdGlvbigpe3MmJihjKGQscCksdiYmYiYmTS5yZWpvaW4oKSxzLnB1c2goTS5yZXN1bHQoKSkpLEEucG9pbnQ9ZixiJiZ3LmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dz1NLHM9W10sbD1bXSx4PSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIG49ZnVuY3Rpb24oKXtmb3IodmFyIG49MCxlPTAsaT1sLmxlbmd0aDtlPGk7KytlKWZvcih2YXIgbyxhLHU9bFtlXSxmPTEsYz11Lmxlbmd0aCxzPXVbMF0saD1zWzBdLGQ9c1sxXTtmPGM7KytmKW89aCxhPWQsaD0ocz11W2ZdKVswXSxkPXNbMV0sYTw9cj9kPnImJihoLW8pKihyLWEpPihkLWEpKih0LW8pJiYrK246ZDw9ciYmKGgtbykqKHItYSk8KGQtYSkqKHQtbykmJi0tbjtyZXR1cm4gbn0oKSxlPXgmJm4saT0ocz15KHMpKS5sZW5ndGg7KGV8fGkpJiYoYS5wb2x5Z29uU3RhcnQoKSxlJiYoYS5saW5lU3RhcnQoKSxvKG51bGwsbnVsbCwxLGEpLGEubGluZUVuZCgpKSxpJiZzaShzLHUsbixvLGEpLGEucG9seWdvbkVuZCgpKSx3PWEscz1sPWg9bnVsbH19O3JldHVybiBBfX1mdW5jdGlvbiBfaSgpe0xwLnBvaW50PUxwLmxpbmVFbmQ9dnJ9ZnVuY3Rpb24gYmkodCxuKXtfcD10Kj1RZCxicD1hcChuKj1RZCksbXA9bnAobiksTHAucG9pbnQ9bWl9ZnVuY3Rpb24gbWkodCxuKXt0Kj1RZDt2YXIgZT1hcChuKj1RZCkscj1ucChuKSxpPUpkKHQtX3ApLG89bnAoaSksYT1yKmFwKGkpLHU9bXAqZS1icCpyKm8sZj1icCplK21wKnIqbztScC5hZGQodHAoZnAoYSphK3UqdSksZikpLF9wPXQsYnA9ZSxtcD1yfWZ1bmN0aW9uIHhpKHQpe3JldHVybiBScC5yZXNldCgpLGJyKHQsTHApLCtScH1mdW5jdGlvbiB3aSh0LG4pe3JldHVybiBEcFswXT10LERwWzFdPW4seGkoVXApfWZ1bmN0aW9uIE1pKHQsbil7cmV0dXJuISghdHx8IU9wLmhhc093blByb3BlcnR5KHQudHlwZSkpJiZPcFt0LnR5cGVdKHQsbil9ZnVuY3Rpb24gQWkodCxuKXtyZXR1cm4gMD09PXdpKHQsbil9ZnVuY3Rpb24gVGkodCxuKXt2YXIgZT13aSh0WzBdLHRbMV0pO3JldHVybiB3aSh0WzBdLG4pK3dpKG4sdFsxXSk8PWUrSGR9ZnVuY3Rpb24gTmkodCxuKXtyZXR1cm4hIWhpKHQubWFwKFNpKSxFaShuKSl9ZnVuY3Rpb24gU2kodCl7cmV0dXJuKHQ9dC5tYXAoRWkpKS5wb3AoKSx0fWZ1bmN0aW9uIEVpKHQpe3JldHVyblt0WzBdKlFkLHRbMV0qUWRdfWZ1bmN0aW9uIGtpKHQsbixlKXt2YXIgcj1zKHQsbi1IZCxlKS5jb25jYXQobik7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByLm1hcChmdW5jdGlvbihuKXtyZXR1cm5bdCxuXX0pfX1mdW5jdGlvbiBDaSh0LG4sZSl7dmFyIHI9cyh0LG4tSGQsZSkuY29uY2F0KG4pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5tYXAoZnVuY3Rpb24obil7cmV0dXJuW24sdF19KX19ZnVuY3Rpb24gUGkoKXtmdW5jdGlvbiB0KCl7cmV0dXJue3R5cGU6XCJNdWx0aUxpbmVTdHJpbmdcIixjb29yZGluYXRlczpuKCl9fWZ1bmN0aW9uIG4oKXtyZXR1cm4gcyhlcChvL3kpKnksaSx5KS5tYXAoZCkuY29uY2F0KHMoZXAoYy9fKSpfLGYsXykubWFwKHApKS5jb25jYXQocyhlcChyL3YpKnYsZSx2KS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIEpkKHQleSk+SGR9KS5tYXAobCkpLmNvbmNhdChzKGVwKHUvZykqZyxhLGcpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gSmQodCVfKT5IZH0pLm1hcChoKSl9dmFyIGUscixpLG8sYSx1LGYsYyxsLGgsZCxwLHY9MTAsZz12LHk9OTAsXz0zNjAsYj0yLjU7cmV0dXJuIHQubGluZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLm1hcChmdW5jdGlvbih0KXtyZXR1cm57dHlwZTpcIkxpbmVTdHJpbmdcIixjb29yZGluYXRlczp0fX0pfSx0Lm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZTpcIlBvbHlnb25cIixjb29yZGluYXRlczpbZChvKS5jb25jYXQocChmKS5zbGljZSgxKSxkKGkpLnJldmVyc2UoKS5zbGljZSgxKSxwKGMpLnJldmVyc2UoKS5zbGljZSgxKSldfX0sdC5leHRlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5leHRlbnRNYWpvcihuKS5leHRlbnRNaW5vcihuKTp0LmV4dGVudE1pbm9yKCl9LHQuZXh0ZW50TWFqb3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K25bMF1bMF0saT0rblsxXVswXSxjPStuWzBdWzFdLGY9K25bMV1bMV0sbz5pJiYobj1vLG89aSxpPW4pLGM+ZiYmKG49YyxjPWYsZj1uKSx0LnByZWNpc2lvbihiKSk6W1tvLGNdLFtpLGZdXX0sdC5leHRlbnRNaW5vcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rblswXVswXSxlPStuWzFdWzBdLHU9K25bMF1bMV0sYT0rblsxXVsxXSxyPmUmJihuPXIscj1lLGU9biksdT5hJiYobj11LHU9YSxhPW4pLHQucHJlY2lzaW9uKGIpKTpbW3IsdV0sW2UsYV1dfSx0LnN0ZXA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5zdGVwTWFqb3Iobikuc3RlcE1pbm9yKG4pOnQuc3RlcE1pbm9yKCl9LHQuc3RlcE1ham9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PStuWzBdLF89K25bMV0sdCk6W3ksX119LHQuc3RlcE1pbm9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PStuWzBdLGc9K25bMV0sdCk6W3YsZ119LHQucHJlY2lzaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPStuLGw9a2kodSxhLDkwKSxoPUNpKHIsZSxiKSxkPWtpKGMsZiw5MCkscD1DaShvLGksYiksdCk6Yn0sdC5leHRlbnRNYWpvcihbWy0xODAsLTkwK0hkXSxbMTgwLDkwLUhkXV0pLmV4dGVudE1pbm9yKFtbLTE4MCwtODAtSGRdLFsxODAsODArSGRdXSl9ZnVuY3Rpb24gemkodCl7cmV0dXJuIHR9ZnVuY3Rpb24gUmkoKXtGcC5wb2ludD1MaX1mdW5jdGlvbiBMaSh0LG4pe0ZwLnBvaW50PURpLHhwPU1wPXQsd3A9QXA9bn1mdW5jdGlvbiBEaSh0LG4pe0JwLmFkZChBcCp0LU1wKm4pLE1wPXQsQXA9bn1mdW5jdGlvbiBVaSgpe0RpKHhwLHdwKX1mdW5jdGlvbiBxaSh0LG4pe1ZwKz10LCRwKz1uLCsrV3B9ZnVuY3Rpb24gT2koKXtldi5wb2ludD1ZaX1mdW5jdGlvbiBZaSh0LG4pe2V2LnBvaW50PUJpLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gQmkodCxuKXt2YXIgZT10LVNwLHI9bi1FcCxpPWZwKGUqZStyKnIpO1pwKz1pKihTcCt0KS8yLFFwKz1pKihFcCtuKS8yLEpwKz1pLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gRmkoKXtldi5wb2ludD1xaX1mdW5jdGlvbiBJaSgpe2V2LnBvaW50PUhpfWZ1bmN0aW9uIGppKCl7WGkoVHAsTnApfWZ1bmN0aW9uIEhpKHQsbil7ZXYucG9pbnQ9WGkscWkoVHA9U3A9dCxOcD1FcD1uKX1mdW5jdGlvbiBYaSh0LG4pe3ZhciBlPXQtU3Ascj1uLUVwLGk9ZnAoZSplK3Iqcik7WnArPWkqKFNwK3QpLzIsUXArPWkqKEVwK24pLzIsSnArPWksS3ArPShpPUVwKnQtU3AqbikqKFNwK3QpLHR2Kz1pKihFcCtuKSxudis9MyppLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gR2kodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIFZpKHQsbil7Y3YucG9pbnQ9JGksaXY9YXY9dCxvdj11dj1ufWZ1bmN0aW9uICRpKHQsbil7YXYtPXQsdXYtPW4sZnYuYWRkKGZwKGF2KmF2K3V2KnV2KSksYXY9dCx1dj1ufWZ1bmN0aW9uIFdpKCl7dGhpcy5fc3RyaW5nPVtdfWZ1bmN0aW9uIFppKHQpe3JldHVyblwibTAsXCIrdCtcImFcIit0K1wiLFwiK3QrXCIgMCAxLDEgMCxcIistMip0K1wiYVwiK3QrXCIsXCIrdCtcIiAwIDEsMSAwLFwiKzIqdCtcInpcIn1mdW5jdGlvbiBRaSh0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9bmV3IEppO2Zvcih2YXIgciBpbiB0KWVbcl09dFtyXTtyZXR1cm4gZS5zdHJlYW09bixlfX1mdW5jdGlvbiBKaSgpe31mdW5jdGlvbiBLaSh0LG4sZSl7dmFyIHI9dC5jbGlwRXh0ZW50JiZ0LmNsaXBFeHRlbnQoKTtyZXR1cm4gdC5zY2FsZSgxNTApLnRyYW5zbGF0ZShbMCwwXSksbnVsbCE9ciYmdC5jbGlwRXh0ZW50KG51bGwpLGJyKGUsdC5zdHJlYW0oR3ApKSxuKEdwLnJlc3VsdCgpKSxudWxsIT1yJiZ0LmNsaXBFeHRlbnQociksdH1mdW5jdGlvbiB0byh0LG4sZSl7cmV0dXJuIEtpKHQsZnVuY3Rpb24oZSl7dmFyIHI9blsxXVswXS1uWzBdWzBdLGk9blsxXVsxXS1uWzBdWzFdLG89TWF0aC5taW4oci8oZVsxXVswXS1lWzBdWzBdKSxpLyhlWzFdWzFdLWVbMF1bMV0pKSxhPStuWzBdWzBdKyhyLW8qKGVbMV1bMF0rZVswXVswXSkpLzIsdT0rblswXVsxXSsoaS1vKihlWzFdWzFdK2VbMF1bMV0pKS8yO3Quc2NhbGUoMTUwKm8pLnRyYW5zbGF0ZShbYSx1XSl9LGUpfWZ1bmN0aW9uIG5vKHQsbixlKXtyZXR1cm4gdG8odCxbWzAsMF0sbl0sZSl9ZnVuY3Rpb24gZW8odCxuLGUpe3JldHVybiBLaSh0LGZ1bmN0aW9uKGUpe3ZhciByPStuLGk9ci8oZVsxXVswXS1lWzBdWzBdKSxvPShyLWkqKGVbMV1bMF0rZVswXVswXSkpLzIsYT0taSplWzBdWzFdO3Quc2NhbGUoMTUwKmkpLnRyYW5zbGF0ZShbbyxhXSl9LGUpfWZ1bmN0aW9uIHJvKHQsbixlKXtyZXR1cm4gS2kodCxmdW5jdGlvbihlKXt2YXIgcj0rbixpPXIvKGVbMV1bMV0tZVswXVsxXSksbz0taSplWzBdWzBdLGE9KHItaSooZVsxXVsxXStlWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCppKS50cmFuc2xhdGUoW28sYV0pfSxlKX1mdW5jdGlvbiBpbyh0LG4pe3JldHVybituP2Z1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZShyLGksbyxhLHUsZixjLHMsbCxoLGQscCx2LGcpe3ZhciB5PWMtcixfPXMtaSxiPXkqeStfKl87aWYoYj40Km4mJnYtLSl7dmFyIG09YStoLHg9dStkLHc9ZitwLE09ZnAobSptK3gqeCt3KncpLEE9ZHIody89TSksVD1KZChKZCh3KS0xKTxIZHx8SmQoby1sKTxIZD8obytsKS8yOnRwKHgsbSksTj10KFQsQSksUz1OWzBdLEU9TlsxXSxrPVMtcixDPUUtaSxQPV8qay15KkM7KFAqUC9iPm58fEpkKCh5KmsrXypDKS9iLS41KT4uM3x8YSpoK3UqZCtmKnA8bHYpJiYoZShyLGksbyxhLHUsZixTLEUsVCxtLz1NLHgvPU0sdyx2LGcpLGcucG9pbnQoUyxFKSxlKFMsRSxULG0seCx3LGMscyxsLGgsZCxwLHYsZykpfX1yZXR1cm4gZnVuY3Rpb24obil7ZnVuY3Rpb24gcihlLHIpe2U9dChlLHIpLG4ucG9pbnQoZVswXSxlWzFdKX1mdW5jdGlvbiBpKCl7eT1OYU4sdy5wb2ludD1vLG4ubGluZVN0YXJ0KCl9ZnVuY3Rpb24gbyhyLGkpe3ZhciBvPVRyKFtyLGldKSxhPXQocixpKTtlKHksXyxnLGIsbSx4LHk9YVswXSxfPWFbMV0sZz1yLGI9b1swXSxtPW9bMV0seD1vWzJdLHN2LG4pLG4ucG9pbnQoeSxfKX1mdW5jdGlvbiBhKCl7dy5wb2ludD1yLG4ubGluZUVuZCgpfWZ1bmN0aW9uIHUoKXtpKCksdy5wb2ludD1mLHcubGluZUVuZD1jfWZ1bmN0aW9uIGYodCxuKXtvKHM9dCxuKSxsPXksaD1fLGQ9YixwPW0sdj14LHcucG9pbnQ9b31mdW5jdGlvbiBjKCl7ZSh5LF8sZyxiLG0seCxsLGgscyxkLHAsdixzdixuKSx3LmxpbmVFbmQ9YSxhKCl9dmFyIHMsbCxoLGQscCx2LGcseSxfLGIsbSx4LHc9e3BvaW50OnIsbGluZVN0YXJ0OmksbGluZUVuZDphLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe24ucG9seWdvblN0YXJ0KCksdy5saW5lU3RhcnQ9dX0scG9seWdvbkVuZDpmdW5jdGlvbigpe24ucG9seWdvbkVuZCgpLHcubGluZVN0YXJ0PWl9fTtyZXR1cm4gd319KHQsbik6ZnVuY3Rpb24odCl7cmV0dXJuIFFpKHtwb2ludDpmdW5jdGlvbihuLGUpe249dChuLGUpLHRoaXMuc3RyZWFtLnBvaW50KG5bMF0sblsxXSl9fSl9KHQpfWZ1bmN0aW9uIG9vKHQsbixlLHIpe2Z1bmN0aW9uIGkodCxyKXtyZXR1cm5bdSp0LWYqcituLGUtZip0LXUqcl19dmFyIG89bnAociksYT1hcChyKSx1PW8qdCxmPWEqdCxjPW8vdCxzPWEvdCxsPShhKmUtbypuKS90LGg9KGEqbitvKmUpL3Q7cmV0dXJuIGkuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW2MqdC1zKm4rbCxoLXMqdC1jKm5dfSxpfWZ1bmN0aW9uIGFvKHQpe3JldHVybiB1byhmdW5jdGlvbigpe3JldHVybiB0fSkoKX1mdW5jdGlvbiB1byh0KXtmdW5jdGlvbiBuKHQpe3JldHVybiBsKHRbMF0qUWQsdFsxXSpRZCl9ZnVuY3Rpb24gZSgpe3ZhciB0PW9vKHAsMCwwLHcpLmFwcGx5KG51bGwsaSh5LF8pKSxuPSh3P29vOmZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuW24rdCpyLGUtdCppXX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24ocixpKXtyZXR1cm5bKHItbikvdCwoZS1pKS90XX0scn0pKHAsdi10WzBdLGctdFsxXSx3KTtyZXR1cm4gbz10aShiLG0seCkscz1KcihpLG4pLGw9SnIobyxzKSxjPWlvKHMsUykscigpfWZ1bmN0aW9uIHIoKXtyZXR1cm4gaD1kPW51bGwsbn12YXIgaSxvLGEsdSxmLGMscyxsLGgsZCxwPTE1MCx2PTQ4MCxnPTI1MCx5PTAsXz0wLGI9MCxtPTAseD0wLHc9MCxNPW51bGwsQT1DcCxUPW51bGwsTj16aSxTPS41O3JldHVybiBuLnN0cmVhbT1mdW5jdGlvbih0KXtyZXR1cm4gaCYmZD09PXQ/aDpoPWh2KGZ1bmN0aW9uKHQpe3JldHVybiBRaSh7cG9pbnQ6ZnVuY3Rpb24obixlKXt2YXIgcj10KG4sZSk7cmV0dXJuIHRoaXMuc3RyZWFtLnBvaW50KHJbMF0sclsxXSl9fSl9KG8pKEEoYyhOKGQ9dCkpKSkpfSxuLnByZWNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9dCxNPXZvaWQgMCxyKCkpOkF9LG4ucG9zdGNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE49dCxUPWE9dT1mPW51bGwscigpKTpOfSxuLmNsaXBBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oQT0rdD9naShNPXQqUWQpOihNPW51bGwsQ3ApLHIoKSk6TSpaZH0sbi5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhOPW51bGw9PXQ/KFQ9YT11PWY9bnVsbCx6aSk6eWkoVD0rdFswXVswXSxhPSt0WzBdWzFdLHU9K3RbMV1bMF0sZj0rdFsxXVsxXSkscigpKTpudWxsPT1UP251bGw6W1tULGFdLFt1LGZdXX0sbi5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0rdCxlKCkpOnB9LG4udHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PSt0WzBdLGc9K3RbMV0sZSgpKTpbdixnXX0sbi5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9dFswXSUzNjAqUWQsXz10WzFdJTM2MCpRZCxlKCkpOlt5KlpkLF8qWmRdfSxuLnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj10WzBdJTM2MCpRZCxtPXRbMV0lMzYwKlFkLHg9dC5sZW5ndGg+Mj90WzJdJTM2MCpRZDowLGUoKSk6W2IqWmQsbSpaZCx4KlpkXX0sbi5hbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz10JTM2MCpRZCxlKCkpOncqWmR9LG4ucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPWlvKHMsUz10KnQpLHIoKSk6ZnAoUyl9LG4uZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRvKG4sdCxlKX0sbi5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5vKG4sdCxlKX0sbi5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBlbyhuLHQsZSl9LG4uZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJvKG4sdCxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gaT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuLmludmVydD1pLmludmVydCYmZnVuY3Rpb24odCl7cmV0dXJuKHQ9bC5pbnZlcnQodFswXSx0WzFdKSkmJlt0WzBdKlpkLHRbMV0qWmRdfSxlKCl9fWZ1bmN0aW9uIGZvKHQpe3ZhciBuPTAsZT1HZC8zLHI9dW8odCksaT1yKG4sZSk7cmV0dXJuIGkucGFyYWxsZWxzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Iobj10WzBdKlFkLGU9dFsxXSpRZCk6W24qWmQsZSpaZF19LGl9ZnVuY3Rpb24gY28odCxuKXtmdW5jdGlvbiBlKHQsbil7dmFyIGU9ZnAoby0yKmkqYXAobikpL2k7cmV0dXJuW2UqYXAodCo9aSksYS1lKm5wKHQpXX12YXIgcj1hcCh0KSxpPShyK2FwKG4pKS8yO2lmKEpkKGkpPEhkKXJldHVybiBmdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQsbil7cmV0dXJuW3QqZSxhcChuKS9lXX12YXIgZT1ucCh0KTtyZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdC9lLGRyKG4qZSldfSxufSh0KTt2YXIgbz0xK3IqKDIqaS1yKSxhPWZwKG8pL2k7cmV0dXJuIGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGU9YS1uO3JldHVyblt0cCh0LEpkKGUpKS9pKnVwKGUpLGRyKChvLSh0KnQrZSplKSppKmkpLygyKmkpKV19LGV9ZnVuY3Rpb24gc28oKXtyZXR1cm4gZm8oY28pLnNjYWxlKDE1NS40MjQpLmNlbnRlcihbMCwzMy42NDQyXSl9ZnVuY3Rpb24gbG8oKXtyZXR1cm4gc28oKS5wYXJhbGxlbHMoWzI5LjUsNDUuNV0pLnNjYWxlKDEwNzApLnRyYW5zbGF0ZShbNDgwLDI1MF0pLnJvdGF0ZShbOTYsMF0pLmNlbnRlcihbLS42LDM4LjddKX1mdW5jdGlvbiBobyh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj1ucChuKSxpPW5wKGUpLG89dChyKmkpO3JldHVybltvKmkqYXAobiksbyphcChlKV19fWZ1bmN0aW9uIHBvKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPWZwKG4qbitlKmUpLGk9dChyKSxvPWFwKGkpLGE9bnAoaSk7cmV0dXJuW3RwKG4qbyxyKmEpLGRyKHImJmUqby9yKV19fWZ1bmN0aW9uIHZvKHQsbil7cmV0dXJuW3QsaXAoY3AoKFZkK24pLzIpKV19ZnVuY3Rpb24gZ28odCl7ZnVuY3Rpb24gbigpe3ZhciBuPUdkKnUoKSxhPW8oaWkoby5yb3RhdGUoKSkuaW52ZXJ0KFswLDBdKSk7cmV0dXJuIGMobnVsbD09cz9bW2FbMF0tbixhWzFdLW5dLFthWzBdK24sYVsxXStuXV06dD09PXZvP1tbTWF0aC5tYXgoYVswXS1uLHMpLGVdLFtNYXRoLm1pbihhWzBdK24sciksaV1dOltbcyxNYXRoLm1heChhWzFdLW4sZSldLFtyLE1hdGgubWluKGFbMV0rbixpKV1dKX12YXIgZSxyLGksbz1hbyh0KSxhPW8uY2VudGVyLHU9by5zY2FsZSxmPW8udHJhbnNsYXRlLGM9by5jbGlwRXh0ZW50LHM9bnVsbDtyZXR1cm4gby5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odSh0KSxuKCkpOnUoKX0sby50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGYodCksbigpKTpmKCl9LG8uY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhKHQpLG4oKSk6YSgpfSxvLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/cz1lPXI9aT1udWxsOihzPSt0WzBdWzBdLGU9K3RbMF1bMV0scj0rdFsxXVswXSxpPSt0WzFdWzFdKSxuKCkpOm51bGw9PXM/bnVsbDpbW3MsZV0sW3IsaV1dfSxuKCl9ZnVuY3Rpb24geW8odCl7cmV0dXJuIGNwKChWZCt0KS8yKX1mdW5jdGlvbiBfbyh0LG4pe2Z1bmN0aW9uIGUodCxuKXtvPjA/bjwtVmQrSGQmJihuPS1WZCtIZCk6bj5WZC1IZCYmKG49VmQtSGQpO3ZhciBlPW8vb3AoeW8obiksaSk7cmV0dXJuW2UqYXAoaSp0KSxvLWUqbnAoaSp0KV19dmFyIHI9bnAodCksaT10PT09bj9hcCh0KTppcChyL25wKG4pKS9pcCh5byhuKS95byh0KSksbz1yKm9wKHlvKHQpLGkpL2k7cmV0dXJuIGk/KGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGU9by1uLHI9dXAoaSkqZnAodCp0K2UqZSk7cmV0dXJuW3RwKHQsSmQoZSkpL2kqdXAoZSksMipLZChvcChvL3IsMS9pKSktVmRdfSxlKTp2b31mdW5jdGlvbiBibyh0LG4pe3JldHVyblt0LG5dfWZ1bmN0aW9uIG1vKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPW8tbixyPWkqdDtyZXR1cm5bZSphcChyKSxvLWUqbnAocildfXZhciByPW5wKHQpLGk9dD09PW4/YXAodCk6KHItbnAobikpLyhuLXQpLG89ci9pK3Q7cmV0dXJuIEpkKGkpPEhkP2JvOihlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW8tbjtyZXR1cm5bdHAodCxKZChlKSkvaSp1cChlKSxvLXVwKGkpKmZwKHQqdCtlKmUpXX0sZSl9ZnVuY3Rpb24geG8odCxuKXt2YXIgZT1ucChuKSxyPW5wKHQpKmU7cmV0dXJuW2UqYXAodCkvcixhcChuKS9yXX1mdW5jdGlvbiB3byh0LG4sZSxyKXtyZXR1cm4gMT09PXQmJjE9PT1uJiYwPT09ZSYmMD09PXI/emk6UWkoe3BvaW50OmZ1bmN0aW9uKGksbyl7dGhpcy5zdHJlYW0ucG9pbnQoaSp0K2UsbypuK3IpfX0pfWZ1bmN0aW9uIE1vKHQsbil7dmFyIGU9bipuLHI9ZSplO3JldHVyblt0KiguODcwNy0uMTMxOTc5KmUrcioociooLjAwMzk3MSplLS4wMDE1MjkqciktLjAxMzc5MSkpLG4qKDEuMDA3MjI2K2UqKC4wMTUwODUrciooLjAyODg3NCplLS4wNDQ0NzUtLjAwNTkxNipyKSkpXX1mdW5jdGlvbiBBbyh0LG4pe3JldHVybltucChuKSphcCh0KSxhcChuKV19ZnVuY3Rpb24gVG8odCxuKXt2YXIgZT1ucChuKSxyPTErbnAodCkqZTtyZXR1cm5bZSphcCh0KS9yLGFwKG4pL3JdfWZ1bmN0aW9uIE5vKHQsbil7cmV0dXJuW2lwKGNwKChWZCtuKS8yKSksLXRdfWZ1bmN0aW9uIFNvKHQsbil7cmV0dXJuIHQucGFyZW50PT09bi5wYXJlbnQ/MToyfWZ1bmN0aW9uIEVvKHQsbil7cmV0dXJuIHQrbi54fWZ1bmN0aW9uIGtvKHQsbil7cmV0dXJuIE1hdGgubWF4KHQsbi55KX1mdW5jdGlvbiBDbyh0KXt2YXIgbj0wLGU9dC5jaGlsZHJlbixyPWUmJmUubGVuZ3RoO2lmKHIpZm9yKDstLXI+PTA7KW4rPWVbcl0udmFsdWU7ZWxzZSBuPTE7dC52YWx1ZT1ufWZ1bmN0aW9uIFBvKHQsbil7dmFyIGUscixpLG8sYSx1PW5ldyBEbyh0KSxmPSt0LnZhbHVlJiYodS52YWx1ZT10LnZhbHVlKSxjPVt1XTtmb3IobnVsbD09biYmKG49em8pO2U9Yy5wb3AoKTspaWYoZiYmKGUudmFsdWU9K2UuZGF0YS52YWx1ZSksKGk9bihlLmRhdGEpKSYmKGE9aS5sZW5ndGgpKWZvcihlLmNoaWxkcmVuPW5ldyBBcnJheShhKSxvPWEtMTtvPj0wOy0tbyljLnB1c2gocj1lLmNoaWxkcmVuW29dPW5ldyBEbyhpW29dKSksci5wYXJlbnQ9ZSxyLmRlcHRoPWUuZGVwdGgrMTtyZXR1cm4gdS5lYWNoQmVmb3JlKExvKX1mdW5jdGlvbiB6byh0KXtyZXR1cm4gdC5jaGlsZHJlbn1mdW5jdGlvbiBSbyh0KXt0LmRhdGE9dC5kYXRhLmRhdGF9ZnVuY3Rpb24gTG8odCl7dmFyIG49MDtkb3t0LmhlaWdodD1ufXdoaWxlKCh0PXQucGFyZW50KSYmdC5oZWlnaHQ8KytuKX1mdW5jdGlvbiBEbyh0KXt0aGlzLmRhdGE9dCx0aGlzLmRlcHRoPXRoaXMuaGVpZ2h0PTAsdGhpcy5wYXJlbnQ9bnVsbH1mdW5jdGlvbiBVbyh0KXtmb3IodmFyIG4sZSxyPTAsaT0odD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPXQubGVuZ3RoO3I7KWU9TWF0aC5yYW5kb20oKSpyLS18MCxuPXRbcl0sdFtyXT10W2VdLHRbZV09bjtyZXR1cm4gdH0odnYuY2FsbCh0KSkpLmxlbmd0aCxvPVtdO3I8aTspbj10W3JdLGUmJk9vKGUsbik/KytyOihlPWZ1bmN0aW9uKHQpe3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm57eDp0LngseTp0Lnkscjp0LnJ9fSh0WzBdKTtjYXNlIDI6cmV0dXJuIEJvKHRbMF0sdFsxXSk7Y2FzZSAzOnJldHVybiBGbyh0WzBdLHRbMV0sdFsyXSl9fShvPWZ1bmN0aW9uKHQsbil7dmFyIGUscjtpZihZbyhuLHQpKXJldHVybltuXTtmb3IoZT0wO2U8dC5sZW5ndGg7KytlKWlmKHFvKG4sdFtlXSkmJllvKEJvKHRbZV0sbiksdCkpcmV0dXJuW3RbZV0sbl07Zm9yKGU9MDtlPHQubGVuZ3RoLTE7KytlKWZvcihyPWUrMTtyPHQubGVuZ3RoOysrcilpZihxbyhCbyh0W2VdLHRbcl0pLG4pJiZxbyhCbyh0W2VdLG4pLHRbcl0pJiZxbyhCbyh0W3JdLG4pLHRbZV0pJiZZbyhGbyh0W2VdLHRbcl0sbiksdCkpcmV0dXJuW3RbZV0sdFtyXSxuXTt0aHJvdyBuZXcgRXJyb3J9KG8sbikpLHI9MCk7cmV0dXJuIGV9ZnVuY3Rpb24gcW8odCxuKXt2YXIgZT10LnItbi5yLHI9bi54LXQueCxpPW4ueS10Lnk7cmV0dXJuIGU8MHx8ZSplPHIqcitpKml9ZnVuY3Rpb24gT28odCxuKXt2YXIgZT10LnItbi5yKzFlLTYscj1uLngtdC54LGk9bi55LXQueTtyZXR1cm4gZT4wJiZlKmU+cipyK2kqaX1mdW5jdGlvbiBZbyh0LG4pe2Zvcih2YXIgZT0wO2U8bi5sZW5ndGg7KytlKWlmKCFPbyh0LG5bZV0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEJvKHQsbil7dmFyIGU9dC54LHI9dC55LGk9dC5yLG89bi54LGE9bi55LHU9bi5yLGY9by1lLGM9YS1yLHM9dS1pLGw9TWF0aC5zcXJ0KGYqZitjKmMpO3JldHVybnt4OihlK28rZi9sKnMpLzIseToocithK2MvbCpzKS8yLHI6KGwraSt1KS8yfX1mdW5jdGlvbiBGbyh0LG4sZSl7dmFyIHI9dC54LGk9dC55LG89dC5yLGE9bi54LHU9bi55LGY9bi5yLGM9ZS54LHM9ZS55LGw9ZS5yLGg9ci1hLGQ9ci1jLHA9aS11LHY9aS1zLGc9Zi1vLHk9bC1vLF89cipyK2kqaS1vKm8sYj1fLWEqYS11KnUrZipmLG09Xy1jKmMtcypzK2wqbCx4PWQqcC1oKnYsdz0ocCptLXYqYikvKDIqeCktcixNPSh2KmctcCp5KS94LEE9KGQqYi1oKm0pLygyKngpLWksVD0oaCp5LWQqZykveCxOPU0qTStUKlQtMSxTPTIqKG8rdypNK0EqVCksRT13KncrQSpBLW8qbyxrPS0oTj8oUytNYXRoLnNxcnQoUypTLTQqTipFKSkvKDIqTik6RS9TKTtyZXR1cm57eDpyK3crTSprLHk6aStBK1QqayxyOmt9fWZ1bmN0aW9uIElvKHQsbixlKXt2YXIgcixpLG8sYSx1PXQueC1uLngsZj10Lnktbi55LGM9dSp1K2YqZjtjPyhpPW4ucitlLnIsaSo9aSxhPXQucitlLnIsaT4oYSo9YSk/KHI9KGMrYS1pKS8oMipjKSxvPU1hdGguc3FydChNYXRoLm1heCgwLGEvYy1yKnIpKSxlLng9dC54LXIqdS1vKmYsZS55PXQueS1yKmYrbyp1KToocj0oYytpLWEpLygyKmMpLG89TWF0aC5zcXJ0KE1hdGgubWF4KDAsaS9jLXIqcikpLGUueD1uLngrcip1LW8qZixlLnk9bi55K3IqZitvKnUpKTooZS54PW4ueCtlLnIsZS55PW4ueSl9ZnVuY3Rpb24gam8odCxuKXt2YXIgZT10LnIrbi5yLTFlLTYscj1uLngtdC54LGk9bi55LXQueTtyZXR1cm4gZT4wJiZlKmU+cipyK2kqaX1mdW5jdGlvbiBIbyh0KXt2YXIgbj10Ll8sZT10Lm5leHQuXyxyPW4ucitlLnIsaT0obi54KmUucitlLngqbi5yKS9yLG89KG4ueSplLnIrZS55Km4ucikvcjtyZXR1cm4gaSppK28qb31mdW5jdGlvbiBYbyh0KXt0aGlzLl89dCx0aGlzLm5leHQ9bnVsbCx0aGlzLnByZXZpb3VzPW51bGx9ZnVuY3Rpb24gR28odCl7aWYoIShpPXQubGVuZ3RoKSlyZXR1cm4gMDt2YXIgbixlLHIsaSxvLGEsdSxmLGMscyxsO2lmKG49dFswXSxuLng9MCxuLnk9MCwhKGk+MSkpcmV0dXJuIG4ucjtpZihlPXRbMV0sbi54PS1lLnIsZS54PW4ucixlLnk9MCwhKGk+MikpcmV0dXJuIG4ucitlLnI7SW8oZSxuLHI9dFsyXSksbj1uZXcgWG8obiksZT1uZXcgWG8oZSkscj1uZXcgWG8ociksbi5uZXh0PXIucHJldmlvdXM9ZSxlLm5leHQ9bi5wcmV2aW91cz1yLHIubmV4dD1lLnByZXZpb3VzPW47dDpmb3IodT0zO3U8aTsrK3Upe0lvKG4uXyxlLl8scj10W3VdKSxyPW5ldyBYbyhyKSxmPWUubmV4dCxjPW4ucHJldmlvdXMscz1lLl8ucixsPW4uXy5yO2Rve2lmKHM8PWwpe2lmKGpvKGYuXyxyLl8pKXtlPWYsbi5uZXh0PWUsZS5wcmV2aW91cz1uLC0tdTtjb250aW51ZSB0fXMrPWYuXy5yLGY9Zi5uZXh0fWVsc2V7aWYoam8oYy5fLHIuXykpeyhuPWMpLm5leHQ9ZSxlLnByZXZpb3VzPW4sLS11O2NvbnRpbnVlIHR9bCs9Yy5fLnIsYz1jLnByZXZpb3VzfX13aGlsZShmIT09Yy5uZXh0KTtmb3Ioci5wcmV2aW91cz1uLHIubmV4dD1lLG4ubmV4dD1lLnByZXZpb3VzPWU9cixvPUhvKG4pOyhyPXIubmV4dCkhPT1lOykoYT1IbyhyKSk8byYmKG49cixvPWEpO2U9bi5uZXh0fWZvcihuPVtlLl9dLHI9ZTsocj1yLm5leHQpIT09ZTspbi5wdXNoKHIuXyk7Zm9yKHI9VW8obiksdT0wO3U8aTsrK3Upbj10W3VdLG4ueC09ci54LG4ueS09ci55O3JldHVybiByLnJ9ZnVuY3Rpb24gVm8odCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHR9ZnVuY3Rpb24gJG8oKXtyZXR1cm4gMH1mdW5jdGlvbiBXbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gWm8odCl7cmV0dXJuIE1hdGguc3FydCh0LnZhbHVlKX1mdW5jdGlvbiBRbyh0KXtyZXR1cm4gZnVuY3Rpb24obil7bi5jaGlsZHJlbnx8KG4ucj1NYXRoLm1heCgwLCt0KG4pfHwwKSl9fWZ1bmN0aW9uIEpvKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKHI9ZS5jaGlsZHJlbil7dmFyIHIsaSxvLGE9ci5sZW5ndGgsdT10KGUpKm58fDA7aWYodSlmb3IoaT0wO2k8YTsrK2kpcltpXS5yKz11O2lmKG89R28ociksdSlmb3IoaT0wO2k8YTsrK2kpcltpXS5yLT11O2Uucj1vK3V9fX1mdW5jdGlvbiBLbyh0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9bi5wYXJlbnQ7bi5yKj10LGUmJihuLng9ZS54K3Qqbi54LG4ueT1lLnkrdCpuLnkpfX1mdW5jdGlvbiB0YSh0KXt0LngwPU1hdGgucm91bmQodC54MCksdC55MD1NYXRoLnJvdW5kKHQueTApLHQueDE9TWF0aC5yb3VuZCh0LngxKSx0LnkxPU1hdGgucm91bmQodC55MSl9ZnVuY3Rpb24gbmEodCxuLGUscixpKXtmb3IodmFyIG8sYT10LmNoaWxkcmVuLHU9LTEsZj1hLmxlbmd0aCxjPXQudmFsdWUmJihyLW4pL3QudmFsdWU7Kyt1PGY7KShvPWFbdV0pLnkwPWUsby55MT1pLG8ueDA9bixvLngxPW4rPW8udmFsdWUqY31mdW5jdGlvbiBlYSh0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiByYSh0KXtyZXR1cm4gdC5wYXJlbnRJZH1mdW5jdGlvbiBpYSh0LG4pe3JldHVybiB0LnBhcmVudD09PW4ucGFyZW50PzE6Mn1mdW5jdGlvbiBvYSh0KXt2YXIgbj10LmNoaWxkcmVuO3JldHVybiBuP25bMF06dC50fWZ1bmN0aW9uIGFhKHQpe3ZhciBuPXQuY2hpbGRyZW47cmV0dXJuIG4/bltuLmxlbmd0aC0xXTp0LnR9ZnVuY3Rpb24gdWEodCxuLGUpe3ZhciByPWUvKG4uaS10LmkpO24uYy09cixuLnMrPWUsdC5jKz1yLG4ueis9ZSxuLm0rPWV9ZnVuY3Rpb24gZmEodCxuLGUpe3JldHVybiB0LmEucGFyZW50PT09bi5wYXJlbnQ/dC5hOmV9ZnVuY3Rpb24gY2EodCxuKXt0aGlzLl89dCx0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLkE9bnVsbCx0aGlzLmE9dGhpcyx0aGlzLno9MCx0aGlzLm09MCx0aGlzLmM9MCx0aGlzLnM9MCx0aGlzLnQ9bnVsbCx0aGlzLmk9bn1mdW5jdGlvbiBzYSh0LG4sZSxyLGkpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4sdT0tMSxmPWEubGVuZ3RoLGM9dC52YWx1ZSYmKGktZSkvdC52YWx1ZTsrK3U8ZjspKG89YVt1XSkueDA9bixvLngxPXIsby55MD1lLG8ueTE9ZSs9by52YWx1ZSpjfWZ1bmN0aW9uIGxhKHQsbixlLHIsaSxvKXtmb3IodmFyIGEsdSxmLGMscyxsLGgsZCxwLHYsZyx5PVtdLF89bi5jaGlsZHJlbixiPTAsbT0wLHg9Xy5sZW5ndGgsdz1uLnZhbHVlO2I8eDspe2Y9aS1lLGM9by1yO2Rve3M9X1ttKytdLnZhbHVlfXdoaWxlKCFzJiZtPHgpO2ZvcihsPWg9cyxnPXMqcyoodj1NYXRoLm1heChjL2YsZi9jKS8odyp0KSkscD1NYXRoLm1heChoL2csZy9sKTttPHg7KyttKXtpZihzKz11PV9bbV0udmFsdWUsdTxsJiYobD11KSx1PmgmJihoPXUpLGc9cypzKnYsKGQ9TWF0aC5tYXgoaC9nLGcvbCkpPnApe3MtPXU7YnJlYWt9cD1kfXkucHVzaChhPXt2YWx1ZTpzLGRpY2U6ZjxjLGNoaWxkcmVuOl8uc2xpY2UoYixtKX0pLGEuZGljZT9uYShhLGUscixpLHc/cis9YypzL3c6byk6c2EoYSxlLHIsdz9lKz1mKnMvdzppLG8pLHctPXMsYj1tfXJldHVybiB5fWZ1bmN0aW9uIGhhKHQsbixlKXtyZXR1cm4oblswXS10WzBdKSooZVsxXS10WzFdKS0oblsxXS10WzFdKSooZVswXS10WzBdKX1mdW5jdGlvbiBkYSh0LG4pe3JldHVybiB0WzBdLW5bMF18fHRbMV0tblsxXX1mdW5jdGlvbiBwYSh0KXtmb3IodmFyIG49dC5sZW5ndGgsZT1bMCwxXSxyPTIsaT0yO2k8bjsrK2kpe2Zvcig7cj4xJiZoYSh0W2Vbci0yXV0sdFtlW3ItMV1dLHRbaV0pPD0wOyktLXI7ZVtyKytdPWl9cmV0dXJuIGUuc2xpY2UoMCxyKX1mdW5jdGlvbiB2YSgpe3JldHVybiBNYXRoLnJhbmRvbSgpfWZ1bmN0aW9uIGdhKHQpe2Z1bmN0aW9uIG4obil7dmFyIG89bitcIlwiLGE9ZS5nZXQobyk7aWYoIWEpe2lmKGkhPT1QdilyZXR1cm4gaTtlLnNldChvLGE9ci5wdXNoKG4pKX1yZXR1cm4gdFsoYS0xKSV0Lmxlbmd0aF19dmFyIGU9aGUoKSxyPVtdLGk9UHY7cmV0dXJuIHQ9bnVsbD09dD9bXTpDdi5jYWxsKHQpLG4uZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByLnNsaWNlKCk7cj1bXSxlPWhlKCk7Zm9yKHZhciBpLG8sYT0tMSx1PXQubGVuZ3RoOysrYTx1OyllLmhhcyhvPShpPXRbYV0pK1wiXCIpfHxlLnNldChvLHIucHVzaChpKSk7cmV0dXJuIG59LG4ucmFuZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9Q3YuY2FsbChlKSxuKTp0LnNsaWNlKCl9LG4udW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LG4pOml9LG4uY29weT1mdW5jdGlvbigpe3JldHVybiBnYSgpLmRvbWFpbihyKS5yYW5nZSh0KS51bmtub3duKGkpfSxufWZ1bmN0aW9uIHlhKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PWkoKS5sZW5ndGgscj1hWzFdPGFbMF0saD1hW3ItMF0sZD1hWzEtcl07bj0oZC1oKS9NYXRoLm1heCgxLHQtZisyKmMpLHUmJihuPU1hdGguZmxvb3IobikpLGgrPShkLWgtbioodC1mKSkqbCxlPW4qKDEtZiksdSYmKGg9TWF0aC5yb3VuZChoKSxlPU1hdGgucm91bmQoZSkpO3ZhciBwPXModCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBoK24qdH0pO3JldHVybiBvKHI/cC5yZXZlcnNlKCk6cCl9dmFyIG4sZSxyPWdhKCkudW5rbm93bih2b2lkIDApLGk9ci5kb21haW4sbz1yLnJhbmdlLGE9WzAsMV0sdT0hMSxmPTAsYz0wLGw9LjU7cmV0dXJuIGRlbGV0ZSByLnVua25vd24sci5kb21haW49ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkobiksdCgpKTppKCl9LHIucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9WytuWzBdLCtuWzFdXSx0KCkpOmEuc2xpY2UoKX0sci5yYW5nZVJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhPVsrblswXSwrblsxXV0sdT0hMCx0KCl9LHIuYmFuZHdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LHIuc3RlcD1mdW5jdGlvbigpe3JldHVybiBufSxyLnJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSEhbix0KCkpOnV9LHIucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1jPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpmfSxyLnBhZGRpbmdJbm5lcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1NYXRoLm1heCgwLE1hdGgubWluKDEsbikpLHQoKSk6Zn0sci5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmN9LHIuYWxpZ249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmx9LHIuY29weT1mdW5jdGlvbigpe3JldHVybiB5YSgpLmRvbWFpbihpKCkpLnJhbmdlKGEpLnJvdW5kKHUpLnBhZGRpbmdJbm5lcihmKS5wYWRkaW5nT3V0ZXIoYykuYWxpZ24obCl9LHQoKX1mdW5jdGlvbiBfYSh0KXt2YXIgbj10LmNvcHk7cmV0dXJuIHQucGFkZGluZz10LnBhZGRpbmdPdXRlcixkZWxldGUgdC5wYWRkaW5nSW5uZXIsZGVsZXRlIHQucGFkZGluZ091dGVyLHQuY29weT1mdW5jdGlvbigpe3JldHVybiBfYShuKCkpfSx0fWZ1bmN0aW9uIGJhKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBtYSh0KXtyZXR1cm4rdH1mdW5jdGlvbiB4YSh0LG4pe3JldHVybihuLT10PSt0KT9mdW5jdGlvbihlKXtyZXR1cm4oZS10KS9ufTpiYShuKX1mdW5jdGlvbiB3YSh0LG4sZSxyKXt2YXIgaT10WzBdLG89dFsxXSxhPW5bMF0sdT1uWzFdO3JldHVybiBvPGk/KGk9ZShvLGkpLGE9cih1LGEpKTooaT1lKGksbyksYT1yKGEsdSkpLGZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX1mdW5jdGlvbiBNYSh0LG4sZSxyKXt2YXIgaT1NYXRoLm1pbih0Lmxlbmd0aCxuLmxlbmd0aCktMSxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShpKSx1PS0xO2Zvcih0W2ldPHRbMF0mJih0PXQuc2xpY2UoKS5yZXZlcnNlKCksbj1uLnNsaWNlKCkucmV2ZXJzZSgpKTsrK3U8aTspb1t1XT1lKHRbdV0sdFt1KzFdKSxhW3VdPXIoblt1XSxuW3UrMV0pO3JldHVybiBmdW5jdGlvbihuKXt2YXIgZT1LYyh0LG4sMSxpKS0xO3JldHVybiBhW2VdKG9bZV0obikpfX1mdW5jdGlvbiBBYSh0LG4pe3JldHVybiBuLmRvbWFpbih0LmRvbWFpbigpKS5yYW5nZSh0LnJhbmdlKCkpLmludGVycG9sYXRlKHQuaW50ZXJwb2xhdGUoKSkuY2xhbXAodC5jbGFtcCgpKX1mdW5jdGlvbiBUYSh0LG4pe2Z1bmN0aW9uIGUoKXtyZXR1cm4gaT1NYXRoLm1pbih1Lmxlbmd0aCxmLmxlbmd0aCk+Mj9NYTp3YSxvPWE9bnVsbCxyfWZ1bmN0aW9uIHIobil7cmV0dXJuKG98fChvPWkodSxmLHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dChuPStuLGU9K2UpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdDw9bj8wOnQ+PWU/MTpyKHQpfX19KHQpOnQsYykpKSgrbil9dmFyIGksbyxhLHU9enYsZj16dixjPWRuLHM9ITE7cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybihhfHwoYT1pKGYsdSx4YSxzP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQobj0rbixlPStlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8PTA/bjp0Pj0xP2U6cih0KX19fShuKTpuKSkpKCt0KX0sci5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9a3YuY2FsbCh0LG1hKSxlKCkpOnUuc2xpY2UoKX0sci5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1Ddi5jYWxsKHQpLGUoKSk6Zi5zbGljZSgpfSxyLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGY9Q3YuY2FsbCh0KSxjPXBuLGUoKX0sci5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0hIXQsZSgpKTpzfSxyLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQsZSgpKTpjfSxlKCl9ZnVuY3Rpb24gTmEobil7dmFyIGU9bi5kb21haW47cmV0dXJuIG4udGlja3M9ZnVuY3Rpb24odCl7dmFyIG49ZSgpO3JldHVybiBsKG5bMF0sbltuLmxlbmd0aC0xXSxudWxsPT10PzEwOnQpfSxuLnRpY2tGb3JtYXQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gZnVuY3Rpb24obixlLHIpe3ZhciBpLG89blswXSxhPW5bbi5sZW5ndGgtMV0sdT1kKG8sYSxudWxsPT1lPzEwOmUpO3N3aXRjaCgocj10cihudWxsPT1yP1wiLGZcIjpyKSkudHlwZSl7Y2FzZVwic1wiOnZhciBmPU1hdGgubWF4KE1hdGguYWJzKG8pLE1hdGguYWJzKGEpKTtyZXR1cm4gbnVsbCE9ci5wcmVjaXNpb258fGlzTmFOKGk9dXIodSxmKSl8fChyLnByZWNpc2lvbj1pKSx0LmZvcm1hdFByZWZpeChyLGYpO2Nhc2VcIlwiOmNhc2VcImVcIjpjYXNlXCJnXCI6Y2FzZVwicFwiOmNhc2VcInJcIjpudWxsIT1yLnByZWNpc2lvbnx8aXNOYU4oaT1mcih1LE1hdGgubWF4KE1hdGguYWJzKG8pLE1hdGguYWJzKGEpKSkpfHwoci5wcmVjaXNpb249aS0oXCJlXCI9PT1yLnR5cGUpKTticmVhaztjYXNlXCJmXCI6Y2FzZVwiJVwiOm51bGwhPXIucHJlY2lzaW9ufHxpc05hTihpPWFyKHUpKXx8KHIucHJlY2lzaW9uPWktMiooXCIlXCI9PT1yLnR5cGUpKX1yZXR1cm4gdC5mb3JtYXQocil9KGUoKSxuLHIpfSxuLm5pY2U9ZnVuY3Rpb24odCl7bnVsbD09dCYmKHQ9MTApO3ZhciByLGk9ZSgpLG89MCxhPWkubGVuZ3RoLTEsdT1pW29dLGY9aVthXTtyZXR1cm4gZjx1JiYocj11LHU9ZixmPXIscj1vLG89YSxhPXIpLChyPWgodSxmLHQpKT4wP3I9aCh1PU1hdGguZmxvb3IodS9yKSpyLGY9TWF0aC5jZWlsKGYvcikqcix0KTpyPDAmJihyPWgodT1NYXRoLmNlaWwodSpyKS9yLGY9TWF0aC5mbG9vcihmKnIpL3IsdCkpLHI+MD8oaVtvXT1NYXRoLmZsb29yKHUvcikqcixpW2FdPU1hdGguY2VpbChmL3IpKnIsZShpKSk6cjwwJiYoaVtvXT1NYXRoLmNlaWwodSpyKS9yLGlbYV09TWF0aC5mbG9vcihmKnIpL3IsZShpKSksbn0sbn1mdW5jdGlvbiBTYSgpe3ZhciB0PVRhKHhhLHNuKTtyZXR1cm4gdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKHQsU2EoKSl9LE5hKHQpfWZ1bmN0aW9uIEVhKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4rdH12YXIgbj1bMCwxXTtyZXR1cm4gdC5pbnZlcnQ9dCx0LmRvbWFpbj10LnJhbmdlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWt2LmNhbGwoZSxtYSksdCk6bi5zbGljZSgpfSx0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gRWEoKS5kb21haW4obil9LE5hKHQpfWZ1bmN0aW9uIGthKHQsbil7dmFyIGUscj0wLGk9KHQ9dC5zbGljZSgpKS5sZW5ndGgtMSxvPXRbcl0sYT10W2ldO3JldHVybiBhPG8mJihlPXIscj1pLGk9ZSxlPW8sbz1hLGE9ZSksdFtyXT1uLmZsb29yKG8pLHRbaV09bi5jZWlsKGEpLHR9ZnVuY3Rpb24gQ2EodCxuKXtyZXR1cm4obj1NYXRoLmxvZyhuL3QpKT9mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZS90KS9ufTpiYShuKX1mdW5jdGlvbiBQYSh0LG4pe3JldHVybiB0PDA/ZnVuY3Rpb24oZSl7cmV0dXJuLU1hdGgucG93KC1uLGUpKk1hdGgucG93KC10LDEtZSl9OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnBvdyhuLGUpKk1hdGgucG93KHQsMS1lKX19ZnVuY3Rpb24gemEodCl7cmV0dXJuIGlzRmluaXRlKHQpPysoXCIxZVwiK3QpOnQ8MD8wOnR9ZnVuY3Rpb24gUmEodCl7cmV0dXJuIDEwPT09dD96YTp0PT09TWF0aC5FP01hdGguZXhwOmZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnBvdyh0LG4pfX1mdW5jdGlvbiBMYSh0KXtyZXR1cm4gdD09PU1hdGguRT9NYXRoLmxvZzoxMD09PXQmJk1hdGgubG9nMTB8fDI9PT10JiZNYXRoLmxvZzJ8fCh0PU1hdGgubG9nKHQpLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLmxvZyhuKS90fSl9ZnVuY3Rpb24gRGEodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybi10KC1uKX19ZnVuY3Rpb24gVWEoKXtmdW5jdGlvbiBuKCl7cmV0dXJuIG89TGEoaSksYT1SYShpKSxyKClbMF08MCYmKG89RGEobyksYT1EYShhKSksZX12YXIgZT1UYShDYSxQYSkuZG9tYWluKFsxLDEwXSkscj1lLmRvbWFpbixpPTEwLG89TGEoMTApLGE9UmEoMTApO3JldHVybiBlLmJhc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3QsbigpKTppfSxlLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocih0KSxuKCkpOnIoKX0sZS50aWNrcz1mdW5jdGlvbih0KXt2YXIgbixlPXIoKSx1PWVbMF0sZj1lW2UubGVuZ3RoLTFdOyhuPWY8dSkmJihkPXUsdT1mLGY9ZCk7dmFyIGMscyxoLGQ9byh1KSxwPW8oZiksdj1udWxsPT10PzEwOit0LGc9W107aWYoIShpJTEpJiZwLWQ8dil7aWYoZD1NYXRoLnJvdW5kKGQpLTEscD1NYXRoLnJvdW5kKHApKzEsdT4wKXtmb3IoO2Q8cDsrK2QpZm9yKHM9MSxjPWEoZCk7czxpOysrcylpZighKChoPWMqcyk8dSkpe2lmKGg+ZilicmVhaztnLnB1c2goaCl9fWVsc2UgZm9yKDtkPHA7KytkKWZvcihzPWktMSxjPWEoZCk7cz49MTstLXMpaWYoISgoaD1jKnMpPHUpKXtpZihoPmYpYnJlYWs7Zy5wdXNoKGgpfX1lbHNlIGc9bChkLHAsTWF0aC5taW4ocC1kLHYpKS5tYXAoYSk7cmV0dXJuIG4/Zy5yZXZlcnNlKCk6Z30sZS50aWNrRm9ybWF0PWZ1bmN0aW9uKG4scil7aWYobnVsbD09ciYmKHI9MTA9PT1pP1wiLjBlXCI6XCIsXCIpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJihyPXQuZm9ybWF0KHIpKSxuPT09MS8wKXJldHVybiByO251bGw9PW4mJihuPTEwKTt2YXIgdT1NYXRoLm1heCgxLGkqbi9lLnRpY2tzKCkubGVuZ3RoKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dC9hKE1hdGgucm91bmQobyh0KSkpO3JldHVybiBuKmk8aS0uNSYmKG4qPWkpLG48PXU/cih0KTpcIlwifX0sZS5uaWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHIoa2EocigpLHtmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4gYShNYXRoLmZsb29yKG8odCkpKX0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4gYShNYXRoLmNlaWwobyh0KSkpfX0pKX0sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKGUsVWEoKS5iYXNlKGkpKX0sZX1mdW5jdGlvbiBxYSh0LG4pe3JldHVybiB0PDA/LU1hdGgucG93KC10LG4pOk1hdGgucG93KHQsbil9ZnVuY3Rpb24gT2EoKXt2YXIgdD0xLG49VGEoZnVuY3Rpb24obixlKXtyZXR1cm4oZT1xYShlLHQpLShuPXFhKG4sdCkpKT9mdW5jdGlvbihyKXtyZXR1cm4ocWEocix0KS1uKS9lfTpiYShlKX0sZnVuY3Rpb24obixlKXtyZXR1cm4gZT1xYShlLHQpLShuPXFhKG4sdCkpLGZ1bmN0aW9uKHIpe3JldHVybiBxYShuK2UqciwxL3QpfX0pLGU9bi5kb21haW47cmV0dXJuIG4uZXhwb25lbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K24sZShlKCkpKTp0fSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQWEobixPYSgpLmV4cG9uZW50KHQpKX0sTmEobil9ZnVuY3Rpb24gWWEoKXtmdW5jdGlvbiB0KCl7dmFyIHQ9MCxuPU1hdGgubWF4KDEsaS5sZW5ndGgpO2ZvcihvPW5ldyBBcnJheShuLTEpOysrdDxuOylvW3QtMV09dihyLHQvbik7cmV0dXJuIGV9ZnVuY3Rpb24gZSh0KXtpZighaXNOYU4odD0rdCkpcmV0dXJuIGlbS2Mobyx0KV19dmFyIHI9W10saT1bXSxvPVtdO3JldHVybiBlLmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgbj1pLmluZGV4T2YodCk7cmV0dXJuIG48MD9bTmFOLE5hTl06W24+MD9vW24tMV06clswXSxuPG8ubGVuZ3RoP29bbl06cltyLmxlbmd0aC0xXV19LGUuZG9tYWluPWZ1bmN0aW9uKGUpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByLnNsaWNlKCk7cj1bXTtmb3IodmFyIGksbz0wLGE9ZS5sZW5ndGg7bzxhOysrbyludWxsPT0oaT1lW29dKXx8aXNOYU4oaT0raSl8fHIucHVzaChpKTtyZXR1cm4gci5zb3J0KG4pLHQoKX0sZS5yYW5nZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1Ddi5jYWxsKG4pLHQoKSk6aS5zbGljZSgpfSxlLnF1YW50aWxlcz1mdW5jdGlvbigpe3JldHVybiBvLnNsaWNlKCl9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBZYSgpLmRvbWFpbihyKS5yYW5nZShpKX0sZX1mdW5jdGlvbiBCYSgpe2Z1bmN0aW9uIHQodCl7aWYodDw9dClyZXR1cm4gYVtLYyhvLHQsMCxpKV19ZnVuY3Rpb24gbigpe3ZhciBuPS0xO2ZvcihvPW5ldyBBcnJheShpKTsrK248aTspb1tuXT0oKG4rMSkqci0obi1pKSplKS8oaSsxKTtyZXR1cm4gdH12YXIgZT0wLHI9MSxpPTEsbz1bLjVdLGE9WzAsMV07cmV0dXJuIHQuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0sbigpKTpbZSxyXX0sdC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0oYT1Ddi5jYWxsKHQpKS5sZW5ndGgtMSxuKCkpOmEuc2xpY2UoKX0sdC5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIG49YS5pbmRleE9mKHQpO3JldHVybiBuPDA/W05hTixOYU5dOm48MT9bZSxvWzBdXTpuPj1pP1tvW2ktMV0scl06W29bbi0xXSxvW25dXX0sdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEJhKCkuZG9tYWluKFtlLHJdKS5yYW5nZShhKX0sTmEodCl9ZnVuY3Rpb24gRmEoKXtmdW5jdGlvbiB0KHQpe2lmKHQ8PXQpcmV0dXJuIGVbS2Mobix0LDAscildfXZhciBuPVsuNV0sZT1bMCwxXSxyPTE7cmV0dXJuIHQuZG9tYWluPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPUN2LmNhbGwoaSkscj1NYXRoLm1pbihuLmxlbmd0aCxlLmxlbmd0aC0xKSx0KTpuLnNsaWNlKCl9LHQucmFuZ2U9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Q3YuY2FsbChpKSxyPU1hdGgubWluKG4ubGVuZ3RoLGUubGVuZ3RoLTEpLHQpOmUuc2xpY2UoKX0sdC5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIHI9ZS5pbmRleE9mKHQpO3JldHVybltuW3ItMV0sbltyXV19LHQuY29weT1mdW5jdGlvbigpe3JldHVybiBGYSgpLmRvbWFpbihuKS5yYW5nZShlKX0sdH1mdW5jdGlvbiBJYSh0LG4sZSxyKXtmdW5jdGlvbiBpKG4pe3JldHVybiB0KG49bmV3IERhdGUoK24pKSxufXJldHVybiBpLmZsb29yPWksaS5jZWlsPWZ1bmN0aW9uKGUpe3JldHVybiB0KGU9bmV3IERhdGUoZS0xKSksbihlLDEpLHQoZSksZX0saS5yb3VuZD1mdW5jdGlvbih0KXt2YXIgbj1pKHQpLGU9aS5jZWlsKHQpO3JldHVybiB0LW48ZS10P246ZX0saS5vZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0PW5ldyBEYXRlKCt0KSxudWxsPT1lPzE6TWF0aC5mbG9vcihlKSksdH0saS5yYW5nZT1mdW5jdGlvbihlLHIsbyl7dmFyIGEsdT1bXTtpZihlPWkuY2VpbChlKSxvPW51bGw9PW8/MTpNYXRoLmZsb29yKG8pLCEoZTxyJiZvPjApKXJldHVybiB1O2Rve3UucHVzaChhPW5ldyBEYXRlKCtlKSksbihlLG8pLHQoZSl9d2hpbGUoYTxlJiZlPHIpO3JldHVybiB1fSxpLmZpbHRlcj1mdW5jdGlvbihlKXtyZXR1cm4gSWEoZnVuY3Rpb24obil7aWYobj49bilmb3IoO3QobiksIWUobik7KW4uc2V0VGltZShuLTEpfSxmdW5jdGlvbih0LHIpe2lmKHQ+PXQpaWYocjwwKWZvcig7KytyPD0wOylmb3IoO24odCwtMSksIWUodCk7KTtlbHNlIGZvcig7LS1yPj0wOylmb3IoO24odCwxKSwhZSh0KTspO30pfSxlJiYoaS5jb3VudD1mdW5jdGlvbihuLHIpe3JldHVybiBSdi5zZXRUaW1lKCtuKSxMdi5zZXRUaW1lKCtyKSx0KFJ2KSx0KEx2KSxNYXRoLmZsb29yKGUoUnYsTHYpKX0saS5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2kuZmlsdGVyKHI/ZnVuY3Rpb24obil7cmV0dXJuIHIobikldD09MH06ZnVuY3Rpb24obil7cmV0dXJuIGkuY291bnQoMCxuKSV0PT0wfSk6aTpudWxsfSksaX1mdW5jdGlvbiBqYSh0KXtyZXR1cm4gSWEoZnVuY3Rpb24obil7bi5zZXREYXRlKG4uZ2V0RGF0ZSgpLShuLmdldERheSgpKzctdCklNyksbi5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldERhdGUodC5nZXREYXRlKCkrNypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10LShuLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSpxdikvT3Z9KX1mdW5jdGlvbiBIYSh0KXtyZXR1cm4gSWEoZnVuY3Rpb24obil7bi5zZXRVVENEYXRlKG4uZ2V0VVRDRGF0ZSgpLShuLmdldFVUQ0RheSgpKzctdCklNyksbi5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9Pdn0pfWZ1bmN0aW9uIFhhKHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIG49bmV3IERhdGUoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpO3JldHVybiBuLnNldEZ1bGxZZWFyKHQueSksbn1yZXR1cm4gbmV3IERhdGUodC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKX1mdW5jdGlvbiBHYSh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBuPW5ldyBEYXRlKERhdGUuVVRDKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSk7cmV0dXJuIG4uc2V0VVRDRnVsbFllYXIodC55KSxufXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKX1mdW5jdGlvbiBWYSh0KXtyZXR1cm57eTp0LG06MCxkOjEsSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiAkYSh0KXtmdW5jdGlvbiBuKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByLGksbyxhPVtdLHU9LTEsZj0wLGM9dC5sZW5ndGg7Zm9yKGUgaW5zdGFuY2VvZiBEYXRlfHwoZT1uZXcgRGF0ZSgrZSkpOysrdTxjOykzNz09PXQuY2hhckNvZGVBdCh1KSYmKGEucHVzaCh0LnNsaWNlKGYsdSkpLG51bGwhPShpPVVnW3I9dC5jaGFyQXQoKyt1KV0pP3I9dC5jaGFyQXQoKyt1KTppPVwiZVwiPT09cj9cIiBcIjpcIjBcIiwobz1uW3JdKSYmKHI9byhlLGkpKSxhLnB1c2gociksZj11KzEpO3JldHVybiBhLnB1c2godC5zbGljZShmLHUpKSxhLmpvaW4oXCJcIil9fWZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGksbyxhPVZhKDE5MDApO2lmKHIoYSx0LGUrPVwiXCIsMCkhPWUubGVuZ3RoKXJldHVybiBudWxsO2lmKFwiUVwiaW4gYSlyZXR1cm4gbmV3IERhdGUoYS5RKTtpZihcInBcImluIGEmJihhLkg9YS5IJTEyKzEyKmEucCksXCJWXCJpbiBhKXtpZihhLlY8MXx8YS5WPjUzKXJldHVybiBudWxsO1wid1wiaW4gYXx8KGEudz0xKSxcIlpcImluIGE/KGk9KG89KGk9R2EoVmEoYS55KSkpLmdldFVUQ0RheSgpKT40fHwwPT09bz9fZy5jZWlsKGkpOl9nKGkpLGk9dmcub2Zmc2V0KGksNyooYS5WLTEpKSxhLnk9aS5nZXRVVENGdWxsWWVhcigpLGEubT1pLmdldFVUQ01vbnRoKCksYS5kPWkuZ2V0VVRDRGF0ZSgpKyhhLncrNiklNyk6KGk9KG89KGk9bihWYShhLnkpKSkuZ2V0RGF5KCkpPjR8fDA9PT1vPyR2LmNlaWwoaSk6JHYoaSksaT1Ydi5vZmZzZXQoaSw3KihhLlYtMSkpLGEueT1pLmdldEZ1bGxZZWFyKCksYS5tPWkuZ2V0TW9udGgoKSxhLmQ9aS5nZXREYXRlKCkrKGEudys2KSU3KX1lbHNlKFwiV1wiaW4gYXx8XCJVXCJpbiBhKSYmKFwid1wiaW4gYXx8KGEudz1cInVcImluIGE/YS51JTc6XCJXXCJpbiBhPzE6MCksbz1cIlpcImluIGE/R2EoVmEoYS55KSkuZ2V0VVRDRGF5KCk6bihWYShhLnkpKS5nZXREYXkoKSxhLm09MCxhLmQ9XCJXXCJpbiBhPyhhLncrNiklNys3KmEuVy0obys1KSU3OmEudys3KmEuVS0obys2KSU3KTtyZXR1cm5cIlpcImluIGE/KGEuSCs9YS5aLzEwMHwwLGEuTSs9YS5aJTEwMCxHYShhKSk6bihhKX19ZnVuY3Rpb24gcih0LG4sZSxyKXtmb3IodmFyIGksbyxhPTAsdT1uLmxlbmd0aCxmPWUubGVuZ3RoO2E8dTspe2lmKHI+PWYpcmV0dXJuLTE7aWYoMzc9PT0oaT1uLmNoYXJDb2RlQXQoYSsrKSkpe2lmKGk9bi5jaGFyQXQoYSsrKSwhKG89QVtpIGluIFVnP24uY2hhckF0KGErKyk6aV0pfHwocj1vKHQsZSxyKSk8MClyZXR1cm4tMX1lbHNlIGlmKGkhPWUuY2hhckNvZGVBdChyKyspKXJldHVybi0xfXJldHVybiByfXZhciBpPXQuZGF0ZVRpbWUsbz10LmRhdGUsYT10LnRpbWUsdT10LnBlcmlvZHMsZj10LmRheXMsYz10LnNob3J0RGF5cyxzPXQubW9udGhzLGw9dC5zaG9ydE1vbnRocyxoPVFhKHUpLGQ9SmEodSkscD1RYShmKSx2PUphKGYpLGc9UWEoYykseT1KYShjKSxfPVFhKHMpLGI9SmEocyksbT1RYShsKSx4PUphKGwpLHc9e2E6ZnVuY3Rpb24odCl7cmV0dXJuIGNbdC5nZXREYXkoKV19LEE6ZnVuY3Rpb24odCl7cmV0dXJuIGZbdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24odCl7cmV0dXJuIGxbdC5nZXRNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gc1t0LmdldE1vbnRoKCldfSxjOm51bGwsZDpfdSxlOl91LGY6TXUsSDpidSxJOm11LGo6eHUsTDp3dSxtOkF1LE06VHUscDpmdW5jdGlvbih0KXtyZXR1cm4gdVsrKHQuZ2V0SG91cnMoKT49MTIpXX0sUTpLdSxzOnRmLFM6TnUsdTpTdSxVOkV1LFY6a3UsdzpDdSxXOlB1LHg6bnVsbCxYOm51bGwseTp6dSxZOlJ1LFo6THUsXCIlXCI6SnV9LE09e2E6ZnVuY3Rpb24odCl7cmV0dXJuIGNbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24odCl7cmV0dXJuIGZbdC5nZXRVVENEYXkoKV19LGI6ZnVuY3Rpb24odCl7cmV0dXJuIGxbdC5nZXRVVENNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpEdSxlOkR1LGY6QnUsSDpVdSxJOnF1LGo6T3UsTDpZdSxtOkZ1LE06SXUscDpmdW5jdGlvbih0KXtyZXR1cm4gdVsrKHQuZ2V0VVRDSG91cnMoKT49MTIpXX0sUTpLdSxzOnRmLFM6anUsdTpIdSxVOlh1LFY6R3UsdzpWdSxXOiR1LHg6bnVsbCxYOm51bGwseTpXdSxZOlp1LFo6UXUsXCIlXCI6SnV9LEE9e2E6ZnVuY3Rpb24odCxuLGUpe3ZhciByPWcuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC53PXlbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sQTpmdW5jdGlvbih0LG4sZSl7dmFyIHI9cC5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0Lnc9dltyWzBdLnRvTG93ZXJDYXNlKCldLGUrclswXS5sZW5ndGgpOi0xfSxiOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1tLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQubT14W3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24odCxuLGUpe3ZhciByPV8uZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5tPWJbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sYzpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHIodCxpLG4sZSl9LGQ6ZnUsZTpmdSxmOnB1LEg6c3UsSTpzdSxqOmN1LEw6ZHUsbTp1dSxNOmx1LHA6ZnVuY3Rpb24odCxuLGUpe3ZhciByPWguZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5wPWRbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sUTpndSxzOnl1LFM6aHUsdTp0dSxVOm51LFY6ZXUsdzpLYSxXOnJ1LHg6ZnVuY3Rpb24odCxuLGUpe3JldHVybiByKHQsbyxuLGUpfSxYOmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gcih0LGEsbixlKX0seTpvdSxZOml1LFo6YXUsXCIlXCI6dnV9O3JldHVybiB3Lng9bihvLHcpLHcuWD1uKGEsdyksdy5jPW4oaSx3KSxNLng9bihvLE0pLE0uWD1uKGEsTSksTS5jPW4oaSxNKSx7Zm9ybWF0OmZ1bmN0aW9uKHQpe3ZhciBlPW4odCs9XCJcIix3KTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgbj1lKHQrPVwiXCIsWGEpO3JldHVybiBuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LG59LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1uKHQrPVwiXCIsTSk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjUGFyc2U6ZnVuY3Rpb24odCl7dmFyIG49ZSh0LEdhKTtyZXR1cm4gbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxufX19ZnVuY3Rpb24gV2EodCxuLGUpe3ZhciByPXQ8MD9cIi1cIjpcIlwiLGk9KHI/LXQ6dCkrXCJcIixvPWkubGVuZ3RoO3JldHVybiByKyhvPGU/bmV3IEFycmF5KGUtbysxKS5qb2luKG4pK2k6aSl9ZnVuY3Rpb24gWmEodCl7cmV0dXJuIHQucmVwbGFjZShZZyxcIlxcXFwkJlwiKX1mdW5jdGlvbiBRYSh0KXtyZXR1cm4gbmV3IFJlZ0V4cChcIl4oPzpcIit0Lm1hcChaYSkuam9pbihcInxcIikrXCIpXCIsXCJpXCIpfWZ1bmN0aW9uIEphKHQpe2Zvcih2YXIgbj17fSxlPS0xLHI9dC5sZW5ndGg7KytlPHI7KW5bdFtlXS50b0xvd2VyQ2FzZSgpXT1lO3JldHVybiBufWZ1bmN0aW9uIEthKHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj8odC53PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHR1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj8odC51PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG51KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5VPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGV1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5WPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHJ1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5XPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGl1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzQpKTtyZXR1cm4gcj8odC55PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG91KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC55PStyWzBdKygrclswXT42OD8xOTAwOjJlMyksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYXUodCxuLGUpe3ZhciByPS9eKFopfChbKy1dXFxkXFxkKSg/Ojo/KFxcZFxcZCkpPy8uZXhlYyhuLnNsaWNlKGUsZSs2KSk7cmV0dXJuIHI/KHQuWj1yWzFdPzA6LShyWzJdKyhyWzNdfHxcIjAwXCIpKSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB1dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQubT1yWzBdLTEsZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZnUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0LmQ9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gY3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMykpO3JldHVybiByPyh0Lm09MCx0LmQ9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gc3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lkg9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lk09K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gaHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0LlM9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMykpO3JldHVybiByPyh0Lkw9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gcHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrNikpO3JldHVybiByPyh0Lkw9TWF0aC5mbG9vcihyWzBdLzFlMyksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdnUodCxuLGUpe3ZhciByPU9nLmV4ZWMobi5zbGljZShlLGUrMSkpO3JldHVybiByP2UrclswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gZ3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQuUT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB5dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5RPTFlMyorclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBfdSh0LG4pe3JldHVybiBXYSh0LmdldERhdGUoKSxuLDIpfWZ1bmN0aW9uIGJ1KHQsbil7cmV0dXJuIFdhKHQuZ2V0SG91cnMoKSxuLDIpfWZ1bmN0aW9uIG11KHQsbil7cmV0dXJuIFdhKHQuZ2V0SG91cnMoKSUxMnx8MTIsbiwyKX1mdW5jdGlvbiB4dSh0LG4pe3JldHVybiBXYSgxK1h2LmNvdW50KGNnKHQpLHQpLG4sMyl9ZnVuY3Rpb24gd3UodCxuKXtyZXR1cm4gV2EodC5nZXRNaWxsaXNlY29uZHMoKSxuLDMpfWZ1bmN0aW9uIE11KHQsbil7cmV0dXJuIHd1KHQsbikrXCIwMDBcIn1mdW5jdGlvbiBBdSh0LG4pe3JldHVybiBXYSh0LmdldE1vbnRoKCkrMSxuLDIpfWZ1bmN0aW9uIFR1KHQsbil7cmV0dXJuIFdhKHQuZ2V0TWludXRlcygpLG4sMil9ZnVuY3Rpb24gTnUodCxuKXtyZXR1cm4gV2EodC5nZXRTZWNvbmRzKCksbiwyKX1mdW5jdGlvbiBTdSh0KXt2YXIgbj10LmdldERheSgpO3JldHVybiAwPT09bj83Om59ZnVuY3Rpb24gRXUodCxuKXtyZXR1cm4gV2EoVnYuY291bnQoY2codCksdCksbiwyKX1mdW5jdGlvbiBrdSh0LG4pe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIHQ9ZT49NHx8MD09PWU/UXYodCk6UXYuY2VpbCh0KSxXYShRdi5jb3VudChjZyh0KSx0KSsoND09PWNnKHQpLmdldERheSgpKSxuLDIpfWZ1bmN0aW9uIEN1KHQpe3JldHVybiB0LmdldERheSgpfWZ1bmN0aW9uIFB1KHQsbil7cmV0dXJuIFdhKCR2LmNvdW50KGNnKHQpLHQpLG4sMil9ZnVuY3Rpb24genUodCxuKXtyZXR1cm4gV2EodC5nZXRGdWxsWWVhcigpJTEwMCxuLDIpfWZ1bmN0aW9uIFJ1KHQsbil7cmV0dXJuIFdhKHQuZ2V0RnVsbFllYXIoKSUxZTQsbiw0KX1mdW5jdGlvbiBMdSh0KXt2YXIgbj10LmdldFRpbWV6b25lT2Zmc2V0KCk7cmV0dXJuKG4+MD9cIi1cIjoobio9LTEsXCIrXCIpKStXYShuLzYwfDAsXCIwXCIsMikrV2EobiU2MCxcIjBcIiwyKX1mdW5jdGlvbiBEdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0RhdGUoKSxuLDIpfWZ1bmN0aW9uIFV1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDSG91cnMoKSxuLDIpfWZ1bmN0aW9uIHF1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDSG91cnMoKSUxMnx8MTIsbiwyKX1mdW5jdGlvbiBPdSh0LG4pe3JldHVybiBXYSgxK3ZnLmNvdW50KFJnKHQpLHQpLG4sMyl9ZnVuY3Rpb24gWXUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENNaWxsaXNlY29uZHMoKSxuLDMpfWZ1bmN0aW9uIEJ1KHQsbil7cmV0dXJuIFl1KHQsbikrXCIwMDBcIn1mdW5jdGlvbiBGdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ01vbnRoKCkrMSxuLDIpfWZ1bmN0aW9uIEl1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDTWludXRlcygpLG4sMil9ZnVuY3Rpb24ganUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENTZWNvbmRzKCksbiwyKX1mdW5jdGlvbiBIdSh0KXt2YXIgbj10LmdldFVUQ0RheSgpO3JldHVybiAwPT09bj83Om59ZnVuY3Rpb24gWHUodCxuKXtyZXR1cm4gV2EoeWcuY291bnQoUmcodCksdCksbiwyKX1mdW5jdGlvbiBHdSh0LG4pe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIHQ9ZT49NHx8MD09PWU/eGcodCk6eGcuY2VpbCh0KSxXYSh4Zy5jb3VudChSZyh0KSx0KSsoND09PVJnKHQpLmdldFVUQ0RheSgpKSxuLDIpfWZ1bmN0aW9uIFZ1KHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uICR1KHQsbil7cmV0dXJuIFdhKF9nLmNvdW50KFJnKHQpLHQpLG4sMil9ZnVuY3Rpb24gV3UodCxuKXtyZXR1cm4gV2EodC5nZXRVVENGdWxsWWVhcigpJTEwMCxuLDIpfWZ1bmN0aW9uIFp1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDRnVsbFllYXIoKSUxZTQsbiw0KX1mdW5jdGlvbiBRdSgpe3JldHVyblwiKzAwMDBcIn1mdW5jdGlvbiBKdSgpe3JldHVyblwiJVwifWZ1bmN0aW9uIEt1KHQpe3JldHVybit0fWZ1bmN0aW9uIHRmKHQpe3JldHVybiBNYXRoLmZsb29yKCt0LzFlMyl9ZnVuY3Rpb24gbmYobil7cmV0dXJuIExnPSRhKG4pLHQudGltZUZvcm1hdD1MZy5mb3JtYXQsdC50aW1lUGFyc2U9TGcucGFyc2UsdC51dGNGb3JtYXQ9TGcudXRjRm9ybWF0LHQudXRjUGFyc2U9TGcudXRjUGFyc2UsTGd9ZnVuY3Rpb24gZWYodCl7cmV0dXJuIG5ldyBEYXRlKHQpfWZ1bmN0aW9uIHJmKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZT8rdDorbmV3IERhdGUoK3QpfWZ1bmN0aW9uIG9mKHQsbixyLGksbyxhLHUsZixjKXtmdW5jdGlvbiBzKGUpe3JldHVybih1KGUpPGU/ZzphKGUpPGU/eTpvKGUpPGU/XzppKGUpPGU/YjpuKGUpPGU/cihlKTxlP206eDp0KGUpPGU/dzpNKShlKX1mdW5jdGlvbiBsKG4scixpLG8pe2lmKG51bGw9PW4mJihuPTEwKSxcIm51bWJlclwiPT10eXBlb2Ygbil7dmFyIGE9TWF0aC5hYnMoaS1yKS9uLHU9ZShmdW5jdGlvbih0KXtyZXR1cm4gdFsyXX0pLnJpZ2h0KEEsYSk7dT09PUEubGVuZ3RoPyhvPWQoci9XZyxpL1dnLG4pLG49dCk6dT8obz0odT1BW2EvQVt1LTFdWzJdPEFbdV1bMl0vYT91LTE6dV0pWzFdLG49dVswXSk6KG89TWF0aC5tYXgoZChyLGksbiksMSksbj1mKX1yZXR1cm4gbnVsbD09bz9uOm4uZXZlcnkobyl9dmFyIGg9VGEoeGEsc24pLHA9aC5pbnZlcnQsdj1oLmRvbWFpbixnPWMoXCIuJUxcIikseT1jKFwiOiVTXCIpLF89YyhcIiVJOiVNXCIpLGI9YyhcIiVJICVwXCIpLG09YyhcIiVhICVkXCIpLHg9YyhcIiViICVkXCIpLHc9YyhcIiVCXCIpLE09YyhcIiVZXCIpLEE9W1t1LDEsamddLFt1LDUsNSpqZ10sW3UsMTUsMTUqamddLFt1LDMwLDMwKmpnXSxbYSwxLEhnXSxbYSw1LDUqSGddLFthLDE1LDE1KkhnXSxbYSwzMCwzMCpIZ10sW28sMSxYZ10sW28sMywzKlhnXSxbbyw2LDYqWGddLFtvLDEyLDEyKlhnXSxbaSwxLEdnXSxbaSwyLDIqR2ddLFtyLDEsVmddLFtuLDEsJGddLFtuLDMsMyokZ10sW3QsMSxXZ11dO3JldHVybiBoLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IERhdGUocCh0KSl9LGguZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Yoa3YuY2FsbCh0LHJmKSk6digpLm1hcChlZil9LGgudGlja3M9ZnVuY3Rpb24odCxuKXt2YXIgZSxyPXYoKSxpPXJbMF0sbz1yW3IubGVuZ3RoLTFdLGE9bzxpO3JldHVybiBhJiYoZT1pLGk9byxvPWUpLGU9bCh0LGksbyxuKSxlPWU/ZS5yYW5nZShpLG8rMSk6W10sYT9lLnJldmVyc2UoKTplfSxoLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbD09bj9zOmMobil9LGgubmljZT1mdW5jdGlvbih0LG4pe3ZhciBlPXYoKTtyZXR1cm4odD1sKHQsZVswXSxlW2UubGVuZ3RoLTFdLG4pKT92KGthKGUsdCkpOmh9LGguY29weT1mdW5jdGlvbigpe3JldHVybiBBYShoLG9mKHQsbixyLGksbyxhLHUsZixjKSl9LGh9ZnVuY3Rpb24gYWYodCl7ZnVuY3Rpb24gbihuKXt2YXIgcj0obi1lKSppO3JldHVybiB0KG8/TWF0aC5tYXgoMCxNYXRoLm1pbigxLHIpKTpyKX12YXIgZT0wLHI9MSxpPTEsbz0hMTtyZXR1cm4gbi5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0scj0rdFsxXSxpPWU9PT1yPzA6MS8oci1lKSxuKTpbZSxyXX0sbi5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0hIXQsbik6b30sbi5pbnRlcnBvbGF0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxuKTp0fSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gYWYodCkuZG9tYWluKFtlLHJdKS5jbGFtcChvKX0sTmEobil9ZnVuY3Rpb24gdWYodCl7ZnVuY3Rpb24gbihuKXt2YXIgZT0uNSsoKG49K24pLXIpKihuPHI/bzphKTtyZXR1cm4gdCh1P01hdGgubWF4KDAsTWF0aC5taW4oMSxlKSk6ZSl9dmFyIGU9MCxyPS41LGk9MSxvPTEsYT0xLHU9ITE7cmV0dXJuIG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0saT0rdFsyXSxvPWU9PT1yPzA6LjUvKHItZSksYT1yPT09aT8wOi41LyhpLXIpLG4pOltlLHIsaV19LG4uY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ISF0LG4pOnV9LG4uaW50ZXJwb2xhdG9yPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbik6dH0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHVmKHQpLmRvbWFpbihbZSxyLGldKS5jbGFtcCh1KX0sTmEobil9ZnVuY3Rpb24gZmYodCl7Zm9yKHZhciBuPXQubGVuZ3RoLzZ8MCxlPW5ldyBBcnJheShuKSxyPTA7cjxuOyllW3JdPVwiI1wiK3Quc2xpY2UoNipyLDYqKytyKTtyZXR1cm4gZX1mdW5jdGlvbiBjZih0KXtyZXR1cm4gaWwodFt0Lmxlbmd0aC0xXSl9ZnVuY3Rpb24gc2YodCl7dmFyIG49dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0W01hdGgubWF4KDAsTWF0aC5taW4obi0xLE1hdGguZmxvb3IoZSpuKSkpXX19ZnVuY3Rpb24gbGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGhmKHQpe3JldHVybiB0Pj0xP1RfOnQ8PS0xPy1UXzpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gZGYodCl7cmV0dXJuIHQuaW5uZXJSYWRpdXN9ZnVuY3Rpb24gcGYodCl7cmV0dXJuIHQub3V0ZXJSYWRpdXN9ZnVuY3Rpb24gdmYodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiBnZih0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiB5Zih0KXtyZXR1cm4gdCYmdC5wYWRBbmdsZX1mdW5jdGlvbiBfZih0LG4sZSxyLGksbyxhKXt2YXIgdT10LWUsZj1uLXIsYz0oYT9vOi1vKS93Xyh1KnUrZipmKSxzPWMqZixsPS1jKnUsaD10K3MsZD1uK2wscD1lK3Msdj1yK2wsZz0oaCtwKS8yLHk9KGQrdikvMixfPXAtaCxiPXYtZCxtPV8qXytiKmIseD1pLW8sdz1oKnYtcCpkLE09KGI8MD8tMToxKSp3XyhiXygwLHgqeCptLXcqdykpLEE9KHcqYi1fKk0pL20sVD0oLXcqXy1iKk0pL20sTj0odypiK18qTSkvbSxTPSgtdypfK2IqTSkvbSxFPUEtZyxrPVQteSxDPU4tZyxQPVMteTtyZXR1cm4gRSpFK2sqaz5DKkMrUCpQJiYoQT1OLFQ9Uykse2N4OkEsY3k6VCx4MDE6LXMseTAxOi1sLHgxMTpBKihpL3gtMSkseTExOlQqKGkveC0xKX19ZnVuY3Rpb24gYmYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIG1mKHQpe3JldHVybiBuZXcgYmYodCl9ZnVuY3Rpb24geGYodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gd2YodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gTWYoKXtmdW5jdGlvbiB0KHQpe3ZhciB1LGYsYyxzPXQubGVuZ3RoLGw9ITE7Zm9yKG51bGw9PWkmJihhPW8oYz1vZSgpKSksdT0wO3U8PXM7Kyt1KSEodTxzJiZyKGY9dFt1XSx1LHQpKT09PWwmJigobD0hbCk/YS5saW5lU3RhcnQoKTphLmxpbmVFbmQoKSksbCYmYS5wb2ludCgrbihmLHUsdCksK2UoZix1LHQpKTtpZihjKXJldHVybiBhPW51bGwsYytcIlwifHxudWxsfXZhciBuPXhmLGU9d2Yscj1sZighMCksaT1udWxsLG89bWYsYT1udWxsO3JldHVybiB0Lng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LmRlZmluZWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCEhbiksdCk6cn0sdC5jdXJ2ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1uLG51bGwhPWkmJihhPW8oaSkpLHQpOm99LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj9pPWE9bnVsbDphPW8oaT1uKSx0KTppfSx0fWZ1bmN0aW9uIEFmKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbixzLGwsaCxkLHA9dC5sZW5ndGgsdj0hMSxnPW5ldyBBcnJheShwKSx5PW5ldyBBcnJheShwKTtmb3IobnVsbD09dSYmKGM9ZihkPW9lKCkpKSxuPTA7bjw9cDsrK24pe2lmKCEobjxwJiZhKGg9dFtuXSxuLHQpKT09PXYpaWYodj0hdilzPW4sYy5hcmVhU3RhcnQoKSxjLmxpbmVTdGFydCgpO2Vsc2V7Zm9yKGMubGluZUVuZCgpLGMubGluZVN0YXJ0KCksbD1uLTE7bD49czstLWwpYy5wb2ludChnW2xdLHlbbF0pO2MubGluZUVuZCgpLGMuYXJlYUVuZCgpfXYmJihnW25dPStlKGgsbix0KSx5W25dPStpKGgsbix0KSxjLnBvaW50KHI/K3IoaCxuLHQpOmdbbl0sbz8rbyhoLG4sdCk6eVtuXSkpfWlmKGQpcmV0dXJuIGM9bnVsbCxkK1wiXCJ8fG51bGx9ZnVuY3Rpb24gbigpe3JldHVybiBNZigpLmRlZmluZWQoYSkuY3VydmUoZikuY29udGV4dCh1KX12YXIgZT14ZixyPW51bGwsaT1sZigwKSxvPXdmLGE9bGYoITApLHU9bnVsbCxmPW1mLGM9bnVsbDtyZXR1cm4gdC54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbikscj1udWxsLHQpOmV9LHQueDA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LngxPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/bnVsbDpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOnJ9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLG89bnVsbCx0KTppfSx0LnkwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6aX0sdC55MT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LmxpbmVYMD10LmxpbmVZMD1mdW5jdGlvbigpe3JldHVybiBuKCkueChlKS55KGkpfSx0LmxpbmVZMT1mdW5jdGlvbigpe3JldHVybiBuKCkueChlKS55KG8pfSx0LmxpbmVYMT1mdW5jdGlvbigpe3JldHVybiBuKCkueChyKS55KGkpfSx0LmRlZmluZWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCEhbiksdCk6YX0sdC5jdXJ2ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1uLG51bGwhPXUmJihjPWYodSkpLHQpOmZ9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj91PWM9bnVsbDpjPWYodT1uKSx0KTp1fSx0fWZ1bmN0aW9uIFRmKHQsbil7cmV0dXJuIG48dD8tMTpuPnQ/MTpuPj10PzA6TmFOfWZ1bmN0aW9uIE5mKHQpe3JldHVybiB0fWZ1bmN0aW9uIFNmKHQpe3RoaXMuX2N1cnZlPXR9ZnVuY3Rpb24gRWYodCl7ZnVuY3Rpb24gbihuKXtyZXR1cm4gbmV3IFNmKHQobikpfXJldHVybiBuLl9jdXJ2ZT10LG59ZnVuY3Rpb24ga2YodCl7dmFyIG49dC5jdXJ2ZTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oRWYodCkpOm4oKS5fY3VydmV9LHR9ZnVuY3Rpb24gQ2YoKXtyZXR1cm4ga2YoTWYoKS5jdXJ2ZShTXykpfWZ1bmN0aW9uIFBmKCl7dmFyIHQ9QWYoKS5jdXJ2ZShTXyksbj10LmN1cnZlLGU9dC5saW5lWDAscj10LmxpbmVYMSxpPXQubGluZVkwLG89dC5saW5lWTE7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5zdGFydEFuZ2xlPXQueDAsZGVsZXRlIHQueDAsdC5lbmRBbmdsZT10LngxLGRlbGV0ZSB0LngxLHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuaW5uZXJSYWRpdXM9dC55MCxkZWxldGUgdC55MCx0Lm91dGVyUmFkaXVzPXQueTEsZGVsZXRlIHQueTEsdC5saW5lU3RhcnRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBrZihlKCkpfSxkZWxldGUgdC5saW5lWDAsdC5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4ga2YocigpKX0sZGVsZXRlIHQubGluZVgxLHQubGluZUlubmVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIGtmKGkoKSl9LGRlbGV0ZSB0LmxpbmVZMCx0LmxpbmVPdXRlclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBrZihvKCkpfSxkZWxldGUgdC5saW5lWTEsdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKEVmKHQpKTpuKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIHpmKHQsbil7cmV0dXJuWyhuPStuKSpNYXRoLmNvcyh0LT1NYXRoLlBJLzIpLG4qTWF0aC5zaW4odCldfWZ1bmN0aW9uIFJmKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBMZih0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gRGYodCl7ZnVuY3Rpb24gbigpe3ZhciBuLHU9RV8uY2FsbChhcmd1bWVudHMpLGY9ZS5hcHBseSh0aGlzLHUpLGM9ci5hcHBseSh0aGlzLHUpO2lmKGF8fChhPW49b2UoKSksdChhLCtpLmFwcGx5KHRoaXMsKHVbMF09Zix1KSksK28uYXBwbHkodGhpcyx1KSwraS5hcHBseSh0aGlzLCh1WzBdPWMsdSkpLCtvLmFwcGx5KHRoaXMsdSkpLG4pcmV0dXJuIGE9bnVsbCxuK1wiXCJ8fG51bGx9dmFyIGU9UmYscj1MZixpPXhmLG89d2YsYT1udWxsO3JldHVybiBuLnNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG4pOmV9LG4udGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sbi54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpsZigrdCksbik6aX0sbi55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpsZigrdCksbik6b30sbi5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW51bGw9PXQ/bnVsbDp0LG4pOmF9LG59ZnVuY3Rpb24gVWYodCxuLGUscixpKXt0Lm1vdmVUbyhuLGUpLHQuYmV6aWVyQ3VydmVUbyhuPShuK3IpLzIsZSxuLGkscixpKX1mdW5jdGlvbiBxZih0LG4sZSxyLGkpe3QubW92ZVRvKG4sZSksdC5iZXppZXJDdXJ2ZVRvKG4sZT0oZStpKS8yLHIsZSxyLGkpfWZ1bmN0aW9uIE9mKHQsbixlLHIsaSl7dmFyIG89emYobixlKSxhPXpmKG4sZT0oZStpKS8yKSx1PXpmKHIsZSksZj16ZihyLGkpO3QubW92ZVRvKG9bMF0sb1sxXSksdC5iZXppZXJDdXJ2ZVRvKGFbMF0sYVsxXSx1WzBdLHVbMV0sZlswXSxmWzFdKX1mdW5jdGlvbiBZZigpe31mdW5jdGlvbiBCZih0LG4sZSl7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKCgyKnQuX3gwK3QuX3gxKS8zLCgyKnQuX3kwK3QuX3kxKS8zLCh0Ll94MCsyKnQuX3gxKS8zLCh0Ll95MCsyKnQuX3kxKS8zLCh0Ll94MCs0KnQuX3gxK24pLzYsKHQuX3kwKzQqdC5feTErZSkvNil9ZnVuY3Rpb24gRmYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIElmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBqZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gSGYodCxuKXt0aGlzLl9iYXNpcz1uZXcgRmYodCksdGhpcy5fYmV0YT1ufWZ1bmN0aW9uIFhmKHQsbixlKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1uKSx0Ll95Mit0Ll9rKih0Ll95MS1lKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gR2YodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1uKS82fWZ1bmN0aW9uIFZmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtbikvNn1mdW5jdGlvbiAkZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLW4pLzZ9ZnVuY3Rpb24gV2YodCxuLGUpe3ZhciByPXQuX3gxLGk9dC5feTEsbz10Ll94MixhPXQuX3kyO2lmKHQuX2wwMV9hPk1fKXt2YXIgdT0yKnQuX2wwMV8yYSszKnQuX2wwMV9hKnQuX2wxMl9hK3QuX2wxMl8yYSxmPTMqdC5fbDAxX2EqKHQuX2wwMV9hK3QuX2wxMl9hKTtyPShyKnUtdC5feDAqdC5fbDEyXzJhK3QuX3gyKnQuX2wwMV8yYSkvZixpPShpKnUtdC5feTAqdC5fbDEyXzJhK3QuX3kyKnQuX2wwMV8yYSkvZn1pZih0Ll9sMjNfYT5NXyl7dmFyIGM9Mip0Ll9sMjNfMmErMyp0Ll9sMjNfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEscz0zKnQuX2wyM19hKih0Ll9sMjNfYSt0Ll9sMTJfYSk7bz0obypjK3QuX3gxKnQuX2wyM18yYS1uKnQuX2wxMl8yYSkvcyxhPShhKmMrdC5feTEqdC5fbDIzXzJhLWUqdC5fbDEyXzJhKS9zfXQuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhyLGksbyxhLHQuX3gyLHQuX3kyKX1mdW5jdGlvbiBaZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1ufWZ1bmN0aW9uIFFmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPW59ZnVuY3Rpb24gSmYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9bn1mdW5jdGlvbiBLZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gdGModCl7cmV0dXJuIHQ8MD8tMToxfWZ1bmN0aW9uIG5jKHQsbixlKXt2YXIgcj10Ll94MS10Ll94MCxpPW4tdC5feDEsbz0odC5feTEtdC5feTApLyhyfHxpPDAmJi0wKSxhPShlLXQuX3kxKS8oaXx8cjwwJiYtMCksdT0obyppK2EqcikvKHIraSk7cmV0dXJuKHRjKG8pK3RjKGEpKSpNYXRoLm1pbihNYXRoLmFicyhvKSxNYXRoLmFicyhhKSwuNSpNYXRoLmFicyh1KSl8fDB9ZnVuY3Rpb24gZWModCxuKXt2YXIgZT10Ll94MS10Ll94MDtyZXR1cm4gZT8oMyoodC5feTEtdC5feTApL2UtbikvMjpufWZ1bmN0aW9uIHJjKHQsbixlKXt2YXIgcj10Ll94MCxpPXQuX3kwLG89dC5feDEsYT10Ll95MSx1PShvLXIpLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHIrdSxpK3UqbixvLXUsYS11KmUsbyxhKX1mdW5jdGlvbiBpYyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gb2ModCl7dGhpcy5fY29udGV4dD1uZXcgYWModCl9ZnVuY3Rpb24gYWModCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHVjKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBmYyh0KXt2YXIgbixlLHI9dC5sZW5ndGgtMSxpPW5ldyBBcnJheShyKSxvPW5ldyBBcnJheShyKSxhPW5ldyBBcnJheShyKTtmb3IoaVswXT0wLG9bMF09MixhWzBdPXRbMF0rMip0WzFdLG49MTtuPHItMTsrK24paVtuXT0xLG9bbl09NCxhW25dPTQqdFtuXSsyKnRbbisxXTtmb3IoaVtyLTFdPTIsb1tyLTFdPTcsYVtyLTFdPTgqdFtyLTFdK3Rbcl0sbj0xO248cjsrK24pZT1pW25dL29bbi0xXSxvW25dLT1lLGFbbl0tPWUqYVtuLTFdO2ZvcihpW3ItMV09YVtyLTFdL29bci0xXSxuPXItMjtuPj0wOy0tbilpW25dPShhW25dLWlbbisxXSkvb1tuXTtmb3Iob1tyLTFdPSh0W3JdK2lbci0xXSkvMixuPTA7bjxyLTE7KytuKW9bbl09Mip0W24rMV0taVtuKzFdO3JldHVybltpLG9dfWZ1bmN0aW9uIGNjKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX3Q9bn1mdW5jdGlvbiBzYyh0LG4pe2lmKChpPXQubGVuZ3RoKT4xKWZvcih2YXIgZSxyLGksbz0xLGE9dFtuWzBdXSx1PWEubGVuZ3RoO288aTsrK28pZm9yKHI9YSxhPXRbbltvXV0sZT0wO2U8dTsrK2UpYVtlXVsxXSs9YVtlXVswXT1pc05hTihyW2VdWzFdKT9yW2VdWzBdOnJbZV1bMV19ZnVuY3Rpb24gbGModCl7Zm9yKHZhciBuPXQubGVuZ3RoLGU9bmV3IEFycmF5KG4pOy0tbj49MDspZVtuXT1uO3JldHVybiBlfWZ1bmN0aW9uIGhjKHQsbil7cmV0dXJuIHRbbl19ZnVuY3Rpb24gZGModCl7dmFyIG49dC5tYXAocGMpO3JldHVybiBsYyh0KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5bdF0tbltlXX0pfWZ1bmN0aW9uIHBjKHQpe2Zvcih2YXIgbixlPTAscj0tMSxpPXQubGVuZ3RoOysrcjxpOykobj0rdFtyXVsxXSkmJihlKz1uKTtyZXR1cm4gZX1mdW5jdGlvbiB2Yyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gZ2ModCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24geWModCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gX2MoKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBiYyh0KXt0LlU9dC5DPXQuTD10LlI9dC5QPXQuTj1udWxsfWZ1bmN0aW9uIG1jKHQsbil7dmFyIGU9bixyPW4uUixpPWUuVTtpP2kuTD09PWU/aS5MPXI6aS5SPXI6dC5fPXIsci5VPWksZS5VPXIsZS5SPXIuTCxlLlImJihlLlIuVT1lKSxyLkw9ZX1mdW5jdGlvbiB4Yyh0LG4pe3ZhciBlPW4scj1uLkwsaT1lLlU7aT9pLkw9PT1lP2kuTD1yOmkuUj1yOnQuXz1yLHIuVT1pLGUuVT1yLGUuTD1yLlIsZS5MJiYoZS5MLlU9ZSksci5SPWV9ZnVuY3Rpb24gd2ModCl7Zm9yKDt0Lkw7KXQ9dC5MO3JldHVybiB0fWZ1bmN0aW9uIE1jKHQsbixlLHIpe3ZhciBpPVtudWxsLG51bGxdLG89cmIucHVzaChpKS0xO3JldHVybiBpLmxlZnQ9dCxpLnJpZ2h0PW4sZSYmVGMoaSx0LG4sZSksciYmVGMoaSxuLHQsciksbmJbdC5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksbmJbbi5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksaX1mdW5jdGlvbiBBYyh0LG4sZSl7dmFyIHI9W24sZV07cmV0dXJuIHIubGVmdD10LHJ9ZnVuY3Rpb24gVGModCxuLGUscil7dFswXXx8dFsxXT90LmxlZnQ9PT1lP3RbMV09cjp0WzBdPXI6KHRbMF09cix0LmxlZnQ9bix0LnJpZ2h0PWUpfWZ1bmN0aW9uIE5jKHQsbixlLHIsaSl7dmFyIG8sYT10WzBdLHU9dFsxXSxmPWFbMF0sYz1hWzFdLHM9MCxsPTEsaD11WzBdLWYsZD11WzFdLWM7aWYobz1uLWYsaHx8IShvPjApKXtpZihvLz1oLGg8MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWVsc2UgaWYoaD4wKXtpZihvPmwpcmV0dXJuO28+cyYmKHM9byl9aWYobz1yLWYsaHx8IShvPDApKXtpZihvLz1oLGg8MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWVsc2UgaWYoaD4wKXtpZihvPHMpcmV0dXJuO288bCYmKGw9byl9aWYobz1lLWMsZHx8IShvPjApKXtpZihvLz1kLGQ8MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWVsc2UgaWYoZD4wKXtpZihvPmwpcmV0dXJuO28+cyYmKHM9byl9aWYobz1pLWMsZHx8IShvPDApKXtpZihvLz1kLGQ8MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWVsc2UgaWYoZD4wKXtpZihvPHMpcmV0dXJuO288bCYmKGw9byl9cmV0dXJuIShzPjB8fGw8MSl8fChzPjAmJih0WzBdPVtmK3MqaCxjK3MqZF0pLGw8MSYmKHRbMV09W2YrbCpoLGMrbCpkXSksITApfX19fX1mdW5jdGlvbiBTYyh0LG4sZSxyLGkpe3ZhciBvPXRbMV07aWYobylyZXR1cm4hMDt2YXIgYSx1LGY9dFswXSxjPXQubGVmdCxzPXQucmlnaHQsbD1jWzBdLGg9Y1sxXSxkPXNbMF0scD1zWzFdLHY9KGwrZCkvMixnPShoK3ApLzI7aWYocD09PWgpe2lmKHY8bnx8dj49cilyZXR1cm47aWYobD5kKXtpZihmKXtpZihmWzFdPj1pKXJldHVybn1lbHNlIGY9W3YsZV07bz1bdixpXX1lbHNle2lmKGYpe2lmKGZbMV08ZSlyZXR1cm59ZWxzZSBmPVt2LGldO289W3YsZV19fWVsc2UgaWYoYT0obC1kKS8ocC1oKSx1PWctYSp2LGE8LTF8fGE+MSlpZihsPmQpe2lmKGYpe2lmKGZbMV0+PWkpcmV0dXJufWVsc2UgZj1bKGUtdSkvYSxlXTtvPVsoaS11KS9hLGldfWVsc2V7aWYoZil7aWYoZlsxXTxlKXJldHVybn1lbHNlIGY9WyhpLXUpL2EsaV07bz1bKGUtdSkvYSxlXX1lbHNlIGlmKGg8cCl7aWYoZil7aWYoZlswXT49cilyZXR1cm59ZWxzZSBmPVtuLGEqbit1XTtvPVtyLGEqcit1XX1lbHNle2lmKGYpe2lmKGZbMF08bilyZXR1cm59ZWxzZSBmPVtyLGEqcit1XTtvPVtuLGEqbit1XX1yZXR1cm4gdFswXT1mLHRbMV09bywhMH1mdW5jdGlvbiBFYyh0LG4pe3ZhciBlPXQuc2l0ZSxyPW4ubGVmdCxpPW4ucmlnaHQ7cmV0dXJuIGU9PT1pJiYoaT1yLHI9ZSksaT9NYXRoLmF0YW4yKGlbMV0tclsxXSxpWzBdLXJbMF0pOihlPT09cj8ocj1uWzFdLGk9blswXSk6KHI9blswXSxpPW5bMV0pLE1hdGguYXRhbjIoclswXS1pWzBdLGlbMV0tclsxXSkpfWZ1bmN0aW9uIGtjKHQsbil7cmV0dXJuIG5bKyhuLmxlZnQhPT10LnNpdGUpXX1mdW5jdGlvbiBDYyh0LG4pe3JldHVybiBuWysobi5sZWZ0PT09dC5zaXRlKV19ZnVuY3Rpb24gUGModCl7dmFyIG49dC5QLGU9dC5OO2lmKG4mJmUpe3ZhciByPW4uc2l0ZSxpPXQuc2l0ZSxvPWUuc2l0ZTtpZihyIT09byl7dmFyIGE9aVswXSx1PWlbMV0sZj1yWzBdLWEsYz1yWzFdLXUscz1vWzBdLWEsbD1vWzFdLXUsaD0yKihmKmwtYypzKTtpZighKGg+PS11Yikpe3ZhciBkPWYqZitjKmMscD1zKnMrbCpsLHY9KGwqZC1jKnApL2gsZz0oZipwLXMqZCkvaCx5PWliLnBvcCgpfHxuZXcgZnVuY3Rpb24oKXtiYyh0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9O3kuYXJjPXQseS5zaXRlPWkseS54PXYrYSx5Lnk9KHkuY3k9Zyt1KStNYXRoLnNxcnQodip2K2cqZyksdC5jaXJjbGU9eTtmb3IodmFyIF89bnVsbCxiPWViLl87YjspaWYoeS55PGIueXx8eS55PT09Yi55JiZ5Lng8PWIueCl7aWYoIWIuTCl7Xz1iLlA7YnJlYWt9Yj1iLkx9ZWxzZXtpZighYi5SKXtfPWI7YnJlYWt9Yj1iLlJ9ZWIuaW5zZXJ0KF8seSksX3x8KEtfPXkpfX19fWZ1bmN0aW9uIHpjKHQpe3ZhciBuPXQuY2lyY2xlO24mJihuLlB8fChLXz1uLk4pLGViLnJlbW92ZShuKSxpYi5wdXNoKG4pLGJjKG4pLHQuY2lyY2xlPW51bGwpfWZ1bmN0aW9uIFJjKHQpe3ZhciBuPW9iLnBvcCgpfHxuZXcgZnVuY3Rpb24oKXtiYyh0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9O3JldHVybiBuLnNpdGU9dCxufWZ1bmN0aW9uIExjKHQpe3pjKHQpLHRiLnJlbW92ZSh0KSxvYi5wdXNoKHQpLGJjKHQpfWZ1bmN0aW9uIERjKHQpe3ZhciBuPXQuY2lyY2xlLGU9bi54LHI9bi5jeSxpPVtlLHJdLG89dC5QLGE9dC5OLHU9W3RdO0xjKHQpO2Zvcih2YXIgZj1vO2YuY2lyY2xlJiZNYXRoLmFicyhlLWYuY2lyY2xlLngpPGFiJiZNYXRoLmFicyhyLWYuY2lyY2xlLmN5KTxhYjspbz1mLlAsdS51bnNoaWZ0KGYpLExjKGYpLGY9bzt1LnVuc2hpZnQoZiksemMoZik7Zm9yKHZhciBjPWE7Yy5jaXJjbGUmJk1hdGguYWJzKGUtYy5jaXJjbGUueCk8YWImJk1hdGguYWJzKHItYy5jaXJjbGUuY3kpPGFiOylhPWMuTix1LnB1c2goYyksTGMoYyksYz1hO3UucHVzaChjKSx6YyhjKTt2YXIgcyxsPXUubGVuZ3RoO2ZvcihzPTE7czxsOysrcyljPXVbc10sZj11W3MtMV0sVGMoYy5lZGdlLGYuc2l0ZSxjLnNpdGUsaSk7Zj11WzBdLChjPXVbbC0xXSkuZWRnZT1NYyhmLnNpdGUsYy5zaXRlLG51bGwsaSksUGMoZiksUGMoYyl9ZnVuY3Rpb24gVWModCl7Zm9yKHZhciBuLGUscixpLG89dFswXSxhPXRbMV0sdT10Yi5fO3U7KWlmKChyPXFjKHUsYSktbyk+YWIpdT11Lkw7ZWxzZXtpZighKChpPW8tZnVuY3Rpb24odCxuKXt2YXIgZT10Lk47aWYoZSlyZXR1cm4gcWMoZSxuKTt2YXIgcj10LnNpdGU7cmV0dXJuIHJbMV09PT1uP3JbMF06MS8wfSh1LGEpKT5hYikpe3I+LWFiPyhuPXUuUCxlPXUpOmk+LWFiPyhuPXUsZT11Lk4pOm49ZT11O2JyZWFrfWlmKCF1LlIpe249dTticmVha311PXUuUn0oZnVuY3Rpb24odCl7bmJbdC5pbmRleF09e3NpdGU6dCxoYWxmZWRnZXM6W119fSkodCk7dmFyIGY9UmModCk7aWYodGIuaW5zZXJ0KG4sZiksbnx8ZSl7aWYobj09PWUpcmV0dXJuIHpjKG4pLGU9UmMobi5zaXRlKSx0Yi5pbnNlcnQoZixlKSxmLmVkZ2U9ZS5lZGdlPU1jKG4uc2l0ZSxmLnNpdGUpLFBjKG4pLHZvaWQgUGMoZSk7aWYoZSl7emMobiksemMoZSk7dmFyIGM9bi5zaXRlLHM9Y1swXSxsPWNbMV0saD10WzBdLXMsZD10WzFdLWwscD1lLnNpdGUsdj1wWzBdLXMsZz1wWzFdLWwseT0yKihoKmctZCp2KSxfPWgqaCtkKmQsYj12KnYrZypnLG09WyhnKl8tZCpiKS95K3MsKGgqYi12Kl8pL3krbF07VGMoZS5lZGdlLGMscCxtKSxmLmVkZ2U9TWMoYyx0LG51bGwsbSksZS5lZGdlPU1jKHQscCxudWxsLG0pLFBjKG4pLFBjKGUpfWVsc2UgZi5lZGdlPU1jKG4uc2l0ZSxmLnNpdGUpfX1mdW5jdGlvbiBxYyh0LG4pe3ZhciBlPXQuc2l0ZSxyPWVbMF0saT1lWzFdLG89aS1uO2lmKCFvKXJldHVybiByO3ZhciBhPXQuUDtpZighYSlyZXR1cm4tMS8wO3ZhciB1PShlPWEuc2l0ZSlbMF0sZj1lWzFdLGM9Zi1uO2lmKCFjKXJldHVybiB1O3ZhciBzPXUtcixsPTEvby0xL2MsaD1zL2M7cmV0dXJuIGw/KC1oK01hdGguc3FydChoKmgtMipsKihzKnMvKC0yKmMpLWYrYy8yK2ktby8yKSkpL2wrcjoocit1KS8yfWZ1bmN0aW9uIE9jKHQsbixlKXtyZXR1cm4odFswXS1lWzBdKSooblsxXS10WzFdKS0odFswXS1uWzBdKSooZVsxXS10WzFdKX1mdW5jdGlvbiBZYyh0LG4pe3JldHVybiBuWzFdLXRbMV18fG5bMF0tdFswXX1mdW5jdGlvbiBCYyh0LG4pe3ZhciBlLHIsaSxvPXQuc29ydChZYykucG9wKCk7Zm9yKHJiPVtdLG5iPW5ldyBBcnJheSh0Lmxlbmd0aCksdGI9bmV3IF9jLGViPW5ldyBfYzs7KWlmKGk9S18sbyYmKCFpfHxvWzFdPGkueXx8b1sxXT09PWkueSYmb1swXTxpLngpKW9bMF09PT1lJiZvWzFdPT09cnx8KFVjKG8pLGU9b1swXSxyPW9bMV0pLG89dC5wb3AoKTtlbHNle2lmKCFpKWJyZWFrO0RjKGkuYXJjKX1pZihmdW5jdGlvbigpe2Zvcih2YXIgdCxuLGUscixpPTAsbz1uYi5sZW5ndGg7aTxvOysraSlpZigodD1uYltpXSkmJihyPShuPXQuaGFsZmVkZ2VzKS5sZW5ndGgpKXt2YXIgYT1uZXcgQXJyYXkociksdT1uZXcgQXJyYXkocik7Zm9yKGU9MDtlPHI7KytlKWFbZV09ZSx1W2VdPUVjKHQscmJbbltlXV0pO2ZvcihhLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gdVtuXS11W3RdfSksZT0wO2U8cjsrK2UpdVtlXT1uW2FbZV1dO2ZvcihlPTA7ZTxyOysrZSluW2VdPXVbZV19fSgpLG4pe3ZhciBhPStuWzBdWzBdLHU9K25bMF1bMV0sZj0rblsxXVswXSxjPStuWzFdWzFdOyhmdW5jdGlvbih0LG4sZSxyKXtmb3IodmFyIGksbz1yYi5sZW5ndGg7by0tOylTYyhpPXJiW29dLHQsbixlLHIpJiZOYyhpLHQsbixlLHIpJiYoTWF0aC5hYnMoaVswXVswXS1pWzFdWzBdKT5hYnx8TWF0aC5hYnMoaVswXVsxXS1pWzFdWzFdKT5hYil8fGRlbGV0ZSByYltvXX0pKGEsdSxmLGMpLGZ1bmN0aW9uKHQsbixlLHIpe3ZhciBpLG8sYSx1LGYsYyxzLGwsaCxkLHAsdixnPW5iLmxlbmd0aCx5PSEwO2ZvcihpPTA7aTxnOysraSlpZihvPW5iW2ldKXtmb3IoYT1vLnNpdGUsdT0oZj1vLmhhbGZlZGdlcykubGVuZ3RoO3UtLTspcmJbZlt1XV18fGYuc3BsaWNlKHUsMSk7Zm9yKHU9MCxjPWYubGVuZ3RoO3U8YzspcD0oZD1DYyhvLHJiW2ZbdV1dKSlbMF0sdj1kWzFdLGw9KHM9a2MobyxyYltmWysrdSVjXV0pKVswXSxoPXNbMV0sKE1hdGguYWJzKHAtbCk+YWJ8fE1hdGguYWJzKHYtaCk+YWIpJiYoZi5zcGxpY2UodSwwLHJiLnB1c2goQWMoYSxkLE1hdGguYWJzKHAtdCk8YWImJnItdj5hYj9bdCxNYXRoLmFicyhsLXQpPGFiP2g6cl06TWF0aC5hYnModi1yKTxhYiYmZS1wPmFiP1tNYXRoLmFicyhoLXIpPGFiP2w6ZSxyXTpNYXRoLmFicyhwLWUpPGFiJiZ2LW4+YWI/W2UsTWF0aC5hYnMobC1lKTxhYj9oOm5dOk1hdGguYWJzKHYtbik8YWImJnAtdD5hYj9bTWF0aC5hYnMoaC1uKTxhYj9sOnQsbl06bnVsbCkpLTEpLCsrYyk7YyYmKHk9ITEpfWlmKHkpe3ZhciBfLGIsbSx4PTEvMDtmb3IoaT0wLHk9bnVsbDtpPGc7KytpKShvPW5iW2ldKSYmKG09KF89KGE9by5zaXRlKVswXS10KSpfKyhiPWFbMV0tbikqYik8eCYmKHg9bSx5PW8pO2lmKHkpe3ZhciB3PVt0LG5dLE09W3Qscl0sQT1bZSxyXSxUPVtlLG5dO3kuaGFsZmVkZ2VzLnB1c2gocmIucHVzaChBYyhhPXkuc2l0ZSx3LE0pKS0xLHJiLnB1c2goQWMoYSxNLEEpKS0xLHJiLnB1c2goQWMoYSxBLFQpKS0xLHJiLnB1c2goQWMoYSxULHcpKS0xKX19Zm9yKGk9MDtpPGc7KytpKShvPW5iW2ldKSYmKG8uaGFsZmVkZ2VzLmxlbmd0aHx8ZGVsZXRlIG5iW2ldKX0oYSx1LGYsYyl9dGhpcy5lZGdlcz1yYix0aGlzLmNlbGxzPW5iLHRiPWViPXJiPW5iPW51bGx9ZnVuY3Rpb24gRmModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEljKHQsbixlKXt0aGlzLms9dCx0aGlzLng9bix0aGlzLnk9ZX1mdW5jdGlvbiBqYyh0KXtyZXR1cm4gdC5fX3pvb218fGZifWZ1bmN0aW9uIEhjKCl7dC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBYYygpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIEdjKCl7cmV0dXJuIXQuZXZlbnQuYnV0dG9ufWZ1bmN0aW9uIFZjKCl7dmFyIHQsbixlPXRoaXM7cmV0dXJuIGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50Pyh0PShlPWUub3duZXJTVkdFbGVtZW50fHxlKS53aWR0aC5iYXNlVmFsLnZhbHVlLG49ZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSk6KHQ9ZS5jbGllbnRXaWR0aCxuPWUuY2xpZW50SGVpZ2h0KSxbWzAsMF0sW3Qsbl1dfWZ1bmN0aW9uICRjKCl7cmV0dXJuIHRoaXMuX196b29tfHxmYn1mdW5jdGlvbiBXYygpe3JldHVybi10LmV2ZW50LmRlbHRhWSoodC5ldmVudC5kZWx0YU1vZGU/MTIwOjEpLzUwMH1mdW5jdGlvbiBaYygpe3JldHVyblwib250b3VjaHN0YXJ0XCJpbiB0aGlzfWZ1bmN0aW9uIFFjKHQsbixlKXt2YXIgcj10LmludmVydFgoblswXVswXSktZVswXVswXSxpPXQuaW52ZXJ0WChuWzFdWzBdKS1lWzFdWzBdLG89dC5pbnZlcnRZKG5bMF1bMV0pLWVbMF1bMV0sYT10LmludmVydFkoblsxXVsxXSktZVsxXVsxXTtyZXR1cm4gdC50cmFuc2xhdGUoaT5yPyhyK2kpLzI6TWF0aC5taW4oMCxyKXx8TWF0aC5tYXgoMCxpKSxhPm8/KG8rYSkvMjpNYXRoLm1pbigwLG8pfHxNYXRoLm1heCgwLGEpKX12YXIgSmM9ZShuKSxLYz1KYy5yaWdodCx0cz1KYy5sZWZ0LG5zPUFycmF5LnByb3RvdHlwZSxlcz1ucy5zbGljZSxycz1ucy5tYXAsaXM9TWF0aC5zcXJ0KDUwKSxvcz1NYXRoLnNxcnQoMTApLGFzPU1hdGguc3FydCgyKSx1cz1BcnJheS5wcm90b3R5cGUuc2xpY2UsZnM9MSxjcz0yLHNzPTMsbHM9NCxocz0xZS02LGRzPXt2YWx1ZTpmdW5jdGlvbigpe319O1MucHJvdG90eXBlPU4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpTLG9uOmZ1bmN0aW9uKHQsbil7dmFyIGUscj10aGlzLl8saT1mdW5jdGlvbih0LG4pe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPVwiXCIscj10LmluZGV4T2YoXCIuXCIpO2lmKHI+PTAmJihlPXQuc2xpY2UocisxKSx0PXQuc2xpY2UoMCxyKSksdCYmIW4uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6ZX19KX0odCtcIlwiLHIpLG89LTEsYT1pLmxlbmd0aDt7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1uJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgY2FsbGJhY2s6IFwiK24pO2Zvcig7KytvPGE7KWlmKGU9KHQ9aVtvXSkudHlwZSlyW2VdPUUocltlXSx0Lm5hbWUsbik7ZWxzZSBpZihudWxsPT1uKWZvcihlIGluIHIpcltlXT1FKHJbZV0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChlPSh0PWlbb10pLnR5cGUpJiYoZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZSxyPTAsaT10Lmxlbmd0aDtyPGk7KytyKWlmKChlPXRbcl0pLm5hbWU9PT1uKXJldHVybiBlLnZhbHVlfShyW2VdLHQubmFtZSkpKXJldHVybiBlfX0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LG49dGhpcy5fO2Zvcih2YXIgZSBpbiBuKXRbZV09bltlXS5zbGljZSgpO3JldHVybiBuZXcgUyh0KX0sY2FsbDpmdW5jdGlvbih0LG4pe2lmKChlPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIGUscixpPW5ldyBBcnJheShlKSxvPTA7bzxlOysrbylpW29dPWFyZ3VtZW50c1tvKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIit0KTtmb3Iobz0wLGU9KHI9dGhpcy5fW3RdKS5sZW5ndGg7bzxlOysrbylyW29dLnZhbHVlLmFwcGx5KG4saSl9LGFwcGx5OmZ1bmN0aW9uKHQsbixlKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIrdCk7Zm9yKHZhciByPXRoaXMuX1t0XSxpPTAsbz1yLmxlbmd0aDtpPG87KytpKXJbaV0udmFsdWUuYXBwbHkobixlKX19O3ZhciBwcz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIix2cz17c3ZnOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIix4aHRtbDpwcyx4bGluazpcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIix4bWw6XCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCJ9LGdzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXModCl9fTtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQpe3ZhciB5cz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7aWYoIXlzLm1hdGNoZXMpe3ZhciBfcz15cy53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHlzLm1zTWF0Y2hlc1NlbGVjdG9yfHx5cy5tb3pNYXRjaGVzU2VsZWN0b3J8fHlzLm9NYXRjaGVzU2VsZWN0b3I7Z3M9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIF9zLmNhbGwodGhpcyx0KX19fX12YXIgYnM9Z3M7VS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlUsYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCxuKX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IodCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHQpfX07dmFyIG1zPVwiJFwiO0gucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsdGhpcy5fbmFtZXMuam9pbihcIiBcIikpKX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX25hbWVzLmluZGV4T2YodCk7bj49MCYmKHRoaXMuX25hbWVzLnNwbGljZShuLDEpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKFwiY2xhc3NcIix0aGlzLl9uYW1lcy5qb2luKFwiIFwiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciB4cz17fTtpZih0LmV2ZW50PW51bGwsXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50KXtcIm9ubW91c2VlbnRlclwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHwoeHM9e21vdXNlZW50ZXI6XCJtb3VzZW92ZXJcIixtb3VzZWxlYXZlOlwibW91c2VvdXRcIn0pfXZhciB3cz1bbnVsbF07dXQucHJvdG90eXBlPWZ0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6dXQsc2VsZWN0OmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXoodCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYSx1PW5baV0sZj11Lmxlbmd0aCxjPXJbaV09bmV3IEFycmF5KGYpLHM9MDtzPGY7KytzKShvPXVbc10pJiYoYT10LmNhbGwobyxvLl9fZGF0YV9fLHMsdSkpJiYoXCJfX2RhdGFfX1wiaW4gbyYmKGEuX19kYXRhX189by5fX2RhdGFfXyksY1tzXT1hKTtyZXR1cm4gbmV3IHV0KHIsdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1MKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1bXSxpPVtdLG89MDtvPGU7KytvKWZvcih2YXIgYSx1PW5bb10sZj11Lmxlbmd0aCxjPTA7YzxmOysrYykoYT11W2NdKSYmKHIucHVzaCh0LmNhbGwoYSxhLl9fZGF0YV9fLGMsdSkpLGkucHVzaChhKSk7cmV0dXJuIG5ldyB1dChyLGkpfSxmaWx0ZXI6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9YnModCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYT1uW2ldLHU9YS5sZW5ndGgsZj1yW2ldPVtdLGM9MDtjPHU7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmYucHVzaChvKTtyZXR1cm4gbmV3IHV0KHIsdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24odCxuKXtpZighdClyZXR1cm4gZD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGM9LTEsdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe2RbKytjXT10fSksZDt2YXIgZT1uP086cSxyPXRoaXMuX3BhcmVudHMsaT10aGlzLl9ncm91cHM7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSh0KSk7Zm9yKHZhciBvPWkubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHU9bmV3IEFycmF5KG8pLGY9bmV3IEFycmF5KG8pLGM9MDtjPG87KytjKXt2YXIgcz1yW2NdLGw9aVtjXSxoPWwubGVuZ3RoLGQ9dC5jYWxsKHMscyYmcy5fX2RhdGFfXyxjLHIpLHA9ZC5sZW5ndGgsdj11W2NdPW5ldyBBcnJheShwKSxnPWFbY109bmV3IEFycmF5KHApO2UocyxsLHYsZyxmW2NdPW5ldyBBcnJheShoKSxkLG4pO2Zvcih2YXIgeSxfLGI9MCxtPTA7YjxwOysrYilpZih5PXZbYl0pe2ZvcihiPj1tJiYobT1iKzEpOyEoXz1nW21dKSYmKyttPHA7KTt5Ll9uZXh0PV98fG51bGx9fXJldHVybiBhPW5ldyB1dChhLHIpLGEuX2VudGVyPXUsYS5fZXhpdD1mLGF9LGVudGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB1dCh0aGlzLl9lbnRlcnx8dGhpcy5fZ3JvdXBzLm1hcChEKSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbigpe3JldHVybiBuZXcgdXQodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChEKSx0aGlzLl9wYXJlbnRzKX0sbWVyZ2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPXQuX2dyb3VwcyxyPW4ubGVuZ3RoLGk9ZS5sZW5ndGgsbz1NYXRoLm1pbihyLGkpLGE9bmV3IEFycmF5KHIpLHU9MDt1PG87Kyt1KWZvcih2YXIgZixjPW5bdV0scz1lW3VdLGw9Yy5sZW5ndGgsaD1hW3VdPW5ldyBBcnJheShsKSxkPTA7ZDxsOysrZCkoZj1jW2RdfHxzW2RdKSYmKGhbZF09Zik7Zm9yKDt1PHI7Kyt1KWFbdV09blt1XTtyZXR1cm4gbmV3IHV0KGEsdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxuPS0xLGU9dC5sZW5ndGg7KytuPGU7KWZvcih2YXIgcixpPXRbbl0sbz1pLmxlbmd0aC0xLGE9aVtvXTstLW8+PTA7KShyPWlbb10pJiYoYSYmYSE9PXIubmV4dFNpYmxpbmcmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocixhKSxhPXIpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4obixlKXtyZXR1cm4gbiYmZT90KG4uX19kYXRhX18sZS5fX2RhdGFfXyk6IW4tIWV9dHx8KHQ9WSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxyPWUubGVuZ3RoLGk9bmV3IEFycmF5KHIpLG89MDtvPHI7KytvKXtmb3IodmFyIGEsdT1lW29dLGY9dS5sZW5ndGgsYz1pW29dPW5ldyBBcnJheShmKSxzPTA7czxmOysrcykoYT11W3NdKSYmKGNbc109YSk7Yy5zb3J0KG4pfXJldHVybiBuZXcgdXQoaSx0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyx0LmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfSxub2RlczpmdW5jdGlvbigpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksbj0tMTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dFsrK25dPXRoaXN9KSx0fSxub2RlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxuPTAsZT10Lmxlbmd0aDtuPGU7KytuKWZvcih2YXIgcj10W25dLGk9MCxvPXIubGVuZ3RoO2k8bzsrK2kpe3ZhciBhPXJbaV07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeysrdH0pLHR9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT0wLHI9bi5sZW5ndGg7ZTxyOysrZSlmb3IodmFyIGksbz1uW2VdLGE9MCx1PW8ubGVuZ3RoO2E8dTsrK2EpKGk9b1thXSkmJnQuY2FsbChpLGkuX19kYXRhX18sYSxvKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbih0LG4pe3ZhciBlPWsodCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgcj10aGlzLm5vZGUoKTtyZXR1cm4gZS5sb2NhbD9yLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCk6ci5nZXRBdHRyaWJ1dGUoZSl9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09bj9lLmxvY2FsP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX06XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9lLmxvY2FsP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZT90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZSl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19OmUubG9jYWw/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19KShlLG4pKX0sc3R5bGU6ZnVuY3Rpb24odCxuLGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1uP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbixlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1yP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LHIsZSl9fTpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4sZSl9fSkodCxuLG51bGw9PWU/XCJcIjplKSk6Rih0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19OlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09ZX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1ufX0pKHQsbikpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uKHQsbil7dmFyIGU9SSh0K1wiXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciByPWoodGhpcy5ub2RlKCkpLGk9LTEsbz1lLmxlbmd0aDsrK2k8bzspaWYoIXIuY29udGFpbnMoZVtpXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpeyhuLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9YOkcpKHRoaXMsdCl9fTpuP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe1godGhpcyx0KX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe0codGhpcyx0KX19KShlLG4pKX0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9WOihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09bj9cIlwiOm59fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fSkodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10PyQ6KFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09bj9cIlwiOm59fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX0pKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChXKX0sbG93ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKFopfSxhcHBlbmQ6ZnVuY3Rpb24odCl7dmFyIG49XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkModCk7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSl9LGluc2VydDpmdW5jdGlvbih0LG4pe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpDKHQpLHI9bnVsbD09bj9ROlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjp6KG4pO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KX0scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChKKX0sY2xvbmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/dHQ6Syl9LGRhdHVtOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoXCJfX2RhdGFfX1wiLHQpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBuPVwiXCIsZT10LmluZGV4T2YoXCIuXCIpO3JldHVybiBlPj0wJiYobj10LnNsaWNlKGUrMSksdD10LnNsaWNlKDAsZSkpLHt0eXBlOnQsbmFtZTpufX0pfSh0K1wiXCIpLGE9by5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtmb3IodT1uP2l0OnJ0LG51bGw9PWUmJihlPSExKSxyPTA7cjxhOysrcil0aGlzLmVhY2godShvW3JdLG4sZSkpO3JldHVybiB0aGlzfXZhciB1PXRoaXMubm9kZSgpLl9fb247aWYodSlmb3IodmFyIGYsYz0wLHM9dS5sZW5ndGg7YzxzOysrYylmb3Iocj0wLGY9dVtjXTtyPGE7KytyKWlmKChpPW9bcl0pLnR5cGU9PT1mLnR5cGUmJmkubmFtZT09PWYubmFtZSlyZXR1cm4gZi52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5lYWNoKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGF0KHRoaXMsdCxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhdCh0aGlzLHQsbil9fSkodCxuKSl9fTt2YXIgTXM9MDtsdC5wcm90b3R5cGU9c3QucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpsdCxnZXQ6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMuXzshKG4gaW4gdCk7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdFtuXX0sc2V0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbdGhpcy5fXT1ufSxyZW1vdmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuXyBpbiB0JiZkZWxldGUgdFt0aGlzLl9dfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fSx4dC5wcm90b3R5cGUub249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl8ub24uYXBwbHkodGhpcy5fLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT10aGlzLl8/dGhpczp0fTt2YXIgQXM9XCJcXFxccyooWystXT9cXFxcZCspXFxcXHMqXCIsVHM9XCJcXFxccyooWystXT9cXFxcZCpcXFxcLj9cXFxcZCsoPzpbZUVdWystXT9cXFxcZCspPylcXFxccypcIixOcz1cIlxcXFxzKihbKy1dP1xcXFxkKlxcXFwuP1xcXFxkKyg/OltlRV1bKy1dP1xcXFxkKyk/KSVcXFxccypcIixTcz0vXiMoWzAtOWEtZl17M30pJC8sRXM9L14jKFswLTlhLWZdezZ9KSQvLGtzPW5ldyBSZWdFeHAoXCJecmdiXFxcXChcIitbQXMsQXMsQXNdK1wiXFxcXCkkXCIpLENzPW5ldyBSZWdFeHAoXCJecmdiXFxcXChcIitbTnMsTnMsTnNdK1wiXFxcXCkkXCIpLFBzPW5ldyBSZWdFeHAoXCJecmdiYVxcXFwoXCIrW0FzLEFzLEFzLFRzXStcIlxcXFwpJFwiKSx6cz1uZXcgUmVnRXhwKFwiXnJnYmFcXFxcKFwiK1tOcyxOcyxOcyxUc10rXCJcXFxcKSRcIiksUnM9bmV3IFJlZ0V4cChcIl5oc2xcXFxcKFwiK1tUcyxOcyxOc10rXCJcXFxcKSRcIiksTHM9bmV3IFJlZ0V4cChcIl5oc2xhXFxcXChcIitbVHMsTnMsTnMsVHNdK1wiXFxcXCkkXCIpLERzPXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O050KEV0LGt0LHtkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmhleCgpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpK1wiXCJ9fSksTnQoTHQsUnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBMdCh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgTHQodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIDA8PXRoaXMuciYmdGhpcy5yPD0yNTUmJjA8PXRoaXMuZyYmdGhpcy5nPD0yNTUmJjA8PXRoaXMuYiYmdGhpcy5iPD0yNTUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6ZnVuY3Rpb24oKXtyZXR1cm5cIiNcIitEdCh0aGlzLnIpK0R0KHRoaXMuZykrRHQodGhpcy5iKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpP1wicmdiKFwiOlwicmdiYShcIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrXCIsIFwiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpK1wiLCBcIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoMT09PXQ/XCIpXCI6XCIsIFwiK3QrXCIpXCIpfX0pKSxOdChPdCxxdCxTdChFdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8xLy43Ok1hdGgucG93KDEvLjcsdCksbmV3IE90KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IE90KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxuPWlzTmFOKHQpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLGU9dGhpcy5sLHI9ZSsoZTwuNT9lOjEtZSkqbixpPTIqZS1yO3JldHVybiBuZXcgTHQoWXQodD49MjQwP3QtMjQwOnQrMTIwLGksciksWXQodCxpLHIpLFl0KHQ8MTIwP3QrMjQwOnQtMTIwLGksciksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9fSkpO3ZhciBVcz1NYXRoLlBJLzE4MCxxcz0xODAvTWF0aC5QSSxPcz0uOTY0MjIsWXM9MSxCcz0uODI1MjEsRnM9NC8yOSxJcz02LzI5LGpzPTMqSXMqSXMsSHM9SXMqSXMqSXM7TnQoSXQsRnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSXQodGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBJdCh0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmwrMTYpLzExNixuPWlzTmFOKHRoaXMuYSk/dDp0K3RoaXMuYS81MDAsZT1pc05hTih0aGlzLmIpP3Q6dC10aGlzLmIvMjAwO3JldHVybiBuPU9zKkh0KG4pLHQ9WXMqSHQodCksZT1CcypIdChlKSxuZXcgTHQoWHQoMy4xMzM4NTYxKm4tMS42MTY4NjY3KnQtLjQ5MDYxNDYqZSksWHQoLS45Nzg3Njg0Km4rMS45MTYxNDE1KnQrLjAzMzQ1NCplKSxYdCguMDcxOTQ1MypuLS4yMjg5OTE0KnQrMS40MDUyNDI3KmUpLHRoaXMub3BhY2l0eSl9fSkpLE50KFd0LCR0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFd0KHRoaXMuaCx0aGlzLmMsdGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV3QodGhpcy5oLHRoaXMuYyx0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gQnQodGhpcykucmdiKCl9fSkpO3ZhciBYcz0tLjI5MjI3LEdzPS0uOTA2NDksVnM9MS45NzI5NCwkcz1WcypHcyxXcz0xLjc4Mjc3KlZzLFpzPTEuNzgyNzcqWHMtIC0uMTQ4NjEqR3M7TnQoUXQsWnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBRdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyBRdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqVXMsbj0rdGhpcy5sLGU9aXNOYU4odGhpcy5zKT8wOnRoaXMucypuKigxLW4pLHI9TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KTtyZXR1cm4gbmV3IEx0KDI1NSoobitlKigtLjE0ODYxKnIrMS43ODI3NyppKSksMjU1KihuK2UqKFhzKnIrR3MqaSkpLDI1NSoobitlKihWcypyKSksdGhpcy5vcGFjaXR5KX19KSk7dmFyIFFzLEpzLEtzLHRsLG5sLGVsLHJsPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPXIoKHQ9UnQodCkpLnIsKG49UnQobikpLnIpLGk9cih0Lmcsbi5nKSxvPXIodC5iLG4uYiksYT1hbih0Lm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQucj1lKG4pLHQuZz1pKG4pLHQuYj1vKG4pLHQub3BhY2l0eT1hKG4pLHQrXCJcIn19dmFyIHI9b24obik7cmV0dXJuIGUuZ2FtbWE9dCxlfSgxKSxpbD11bihLdCksb2w9dW4odG4pLGFsPS9bLStdPyg/OlxcZCtcXC4/XFxkKnxcXC4/XFxkKykoPzpbZUVdWy0rXT9cXGQrKT8vZyx1bD1uZXcgUmVnRXhwKGFsLnNvdXJjZSxcImdcIiksZmw9MTgwL01hdGguUEksY2w9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX0sc2w9Z24oZnVuY3Rpb24odCl7cmV0dXJuXCJub25lXCI9PT10P2NsOihRc3x8KFFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJESVZcIiksSnM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEtzPWRvY3VtZW50LmRlZmF1bHRWaWV3KSxRcy5zdHlsZS50cmFuc2Zvcm09dCx0PUtzLmdldENvbXB1dGVkU3R5bGUoSnMuYXBwZW5kQ2hpbGQoUXMpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoXCJ0cmFuc2Zvcm1cIiksSnMucmVtb3ZlQ2hpbGQoUXMpLHQ9dC5zbGljZSg3LC0xKS5zcGxpdChcIixcIiksdm4oK3RbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0sXCJweCwgXCIsXCJweClcIixcImRlZylcIiksbGw9Z24oZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/Y2w6KHRsfHwodGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImdcIikpLHRsLnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLHQpLCh0PXRsLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpPyh0PXQubWF0cml4LHZuKHQuYSx0LmIsdC5jLHQuZCx0LmUsdC5mKSk6Y2wpfSxcIiwgXCIsXCIpXCIsXCIpXCIpLGhsPU1hdGguU1FSVDIsZGw9MixwbD00LHZsPTFlLTEyLGdsPWJuKHJuKSx5bD1ibihhbiksX2w9bW4ocm4pLGJsPW1uKGFuKSxtbD14bihybikseGw9eG4oYW4pLHdsPTAsTWw9MCxBbD0wLFRsPTFlMyxObD0wLFNsPTAsRWw9MCxrbD1cIm9iamVjdFwiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLENsPVwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07QW4ucHJvdG90eXBlPVRuLnByb3RvdHlwZT17Y29uc3RydWN0b3I6QW4scmVzdGFydDpmdW5jdGlvbih0LG4sZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb25cIik7ZT0obnVsbD09ZT93bigpOitlKSsobnVsbD09bj8wOituKSx0aGlzLl9uZXh0fHxlbD09PXRoaXN8fChlbD9lbC5fbmV4dD10aGlzOm5sPXRoaXMsZWw9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9ZSxrbigpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCxrbigpKX19O3ZhciBQbD1OKFwic3RhcnRcIixcImVuZFwiLFwiaW50ZXJydXB0XCIpLHpsPVtdLFJsPTAsTGw9MSxEbD0yLFVsPTMscWw9NCxPbD01LFlsPTYsQmw9ZnQucHJvdG90eXBlLmNvbnN0cnVjdG9yLEZsPTAsSWw9ZnQucHJvdG90eXBlO09uLnByb3RvdHlwZT1Zbi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk9uLHNlbGVjdDpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9uYW1lLGU9dGhpcy5faWQ7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9eih0KSk7Zm9yKHZhciByPXRoaXMuX2dyb3VwcyxpPXIubGVuZ3RoLG89bmV3IEFycmF5KGkpLGE9MDthPGk7KythKWZvcih2YXIgdSxmLGM9clthXSxzPWMubGVuZ3RoLGw9b1thXT1uZXcgQXJyYXkocyksaD0wO2g8czsrK2gpKHU9Y1toXSkmJihmPXQuY2FsbCh1LHUuX19kYXRhX18saCxjKSkmJihcIl9fZGF0YV9fXCJpbiB1JiYoZi5fX2RhdGFfXz11Ll9fZGF0YV9fKSxsW2hdPWYsUG4obFtoXSxuLGUsaCxsLExuKHUsZSkpKTtyZXR1cm4gbmV3IE9uKG8sdGhpcy5fcGFyZW50cyxuLGUpfSxzZWxlY3RBbGw6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5fbmFtZSxlPXRoaXMuX2lkO1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PUwodCkpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPVtdLGE9W10sdT0wO3U8aTsrK3UpZm9yKHZhciBmLGM9clt1XSxzPWMubGVuZ3RoLGw9MDtsPHM7KytsKWlmKGY9Y1tsXSl7Zm9yKHZhciBoLGQ9dC5jYWxsKGYsZi5fX2RhdGFfXyxsLGMpLHA9TG4oZixlKSx2PTAsZz1kLmxlbmd0aDt2PGc7Kyt2KShoPWRbdl0pJiZQbihoLG4sZSx2LGQscCk7by5wdXNoKGQpLGEucHVzaChmKX1yZXR1cm4gbmV3IE9uKG8sYSxuLGUpfSxmaWx0ZXI6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9YnModCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYT1uW2ldLHU9YS5sZW5ndGgsZj1yW2ldPVtdLGM9MDtjPHU7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmYucHVzaChvKTtyZXR1cm4gbmV3IE9uKHIsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVuY3Rpb24odCl7aWYodC5faWQhPT10aGlzLl9pZCl0aHJvdyBuZXcgRXJyb3I7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPXQuX2dyb3VwcyxyPW4ubGVuZ3RoLGk9ZS5sZW5ndGgsbz1NYXRoLm1pbihyLGkpLGE9bmV3IEFycmF5KHIpLHU9MDt1PG87Kyt1KWZvcih2YXIgZixjPW5bdV0scz1lW3VdLGw9Yy5sZW5ndGgsaD1hW3VdPW5ldyBBcnJheShsKSxkPTA7ZDxsOysrZCkoZj1jW2RdfHxzW2RdKSYmKGhbZF09Zik7Zm9yKDt1PHI7Kyt1KWFbdV09blt1XTtyZXR1cm4gbmV3IE9uKGEsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCbCh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxuPXRoaXMuX2lkLGU9Qm4oKSxyPXRoaXMuX2dyb3VwcyxpPXIubGVuZ3RoLG89MDtvPGk7KytvKWZvcih2YXIgYSx1PXJbb10sZj11Lmxlbmd0aCxjPTA7YzxmOysrYylpZihhPXVbY10pe3ZhciBzPUxuKGEsbik7UG4oYSx0LGUsYyx1LHt0aW1lOnMudGltZStzLmRlbGF5K3MuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjpzLmR1cmF0aW9uLGVhc2U6cy5lYXNlfSl9cmV0dXJuIG5ldyBPbihyLHRoaXMuX3BhcmVudHMsdCxlKX0sY2FsbDpJbC5jYWxsLG5vZGVzOklsLm5vZGVzLG5vZGU6SWwubm9kZSxzaXplOklsLnNpemUsZW1wdHk6SWwuZW1wdHksZWFjaDpJbC5lYWNoLG9uOmZ1bmN0aW9uKHQsbil7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9Mbih0aGlzLm5vZGUoKSxlKS5vbi5vbih0KTp0aGlzLmVhY2goZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbz1mdW5jdGlvbih0KXtyZXR1cm4odCtcIlwiKS50cmltKCkuc3BsaXQoL158XFxzKy8pLmV2ZXJ5KGZ1bmN0aW9uKHQpe3ZhciBuPXQuaW5kZXhPZihcIi5cIik7cmV0dXJuIG4+PTAmJih0PXQuc2xpY2UoMCxuKSksIXR8fFwic3RhcnRcIj09PXR9KX0obik/em46Um47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLHQpLHU9YS5vbjt1IT09ciYmKGk9KHI9dSkuY29weSgpKS5vbihuLGUpLGEub249aX19KGUsdCxuKSl9LGF0dHI6ZnVuY3Rpb24odCxuKXt2YXIgZT1rKHQpLHI9XCJ0cmFuc2Zvcm1cIj09PWU/bGw6cW47cmV0dXJuIHRoaXMuYXR0clR3ZWVuKHQsXCJmdW5jdGlvblwiPT10eXBlb2Ygbj8oZS5sb2NhbD9mdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLHU9ZSh0aGlzKTtpZihudWxsIT11KXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKSk9PT11P251bGw6YT09PXImJnU9PT1pP286bz1uKHI9YSxpPXUpO3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEsdT1lKHRoaXMpO2lmKG51bGwhPXUpcmV0dXJuKGE9dGhpcy5nZXRBdHRyaWJ1dGUodCkpPT09dT9udWxsOmE9PT1yJiZ1PT09aT9vOm89bihyPWEsaT11KTt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19KShlLHIsVW4odGhpcyxcImF0dHIuXCIrdCxuKSk6bnVsbD09bj8oZS5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19KShlKTooZS5sb2NhbD9mdW5jdGlvbih0LG4sZSl7dmFyIHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX06ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89dGhpcy5nZXRBdHRyaWJ1dGUodCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX0pKGUscixuK1wiXCIpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uKHQsbil7dmFyIGU9XCJhdHRyLlwiK3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihlPXRoaXMudHdlZW4oZSkpJiZlLl92YWx1ZTtpZihudWxsPT1uKXJldHVybiB0aGlzLnR3ZWVuKGUsbnVsbCk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7dmFyIHI9ayh0KTtyZXR1cm4gdGhpcy50d2VlbihlLChyLmxvY2FsP2Z1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlPXRoaXMscj1uLmFwcGx5KGUsYXJndW1lbnRzKTtyZXR1cm4gciYmZnVuY3Rpb24obil7ZS5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwscihuKSl9fXJldHVybiBlLl92YWx1ZT1uLGV9OmZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlPXRoaXMscj1uLmFwcGx5KGUsYXJndW1lbnRzKTtyZXR1cm4gciYmZnVuY3Rpb24obil7ZS5zZXRBdHRyaWJ1dGUodCxyKG4pKX19cmV0dXJuIGUuX3ZhbHVlPW4sZX0pKHIsbikpfSxzdHlsZTpmdW5jdGlvbih0LG4sZSl7dmFyIHI9XCJ0cmFuc2Zvcm1cIj09KHQrPVwiXCIpP3NsOnFuO3JldHVybiBudWxsPT1uP3RoaXMuc3R5bGVUd2Vlbih0LGZ1bmN0aW9uKHQsbil7dmFyIGUscixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUYodGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLEYodGhpcyx0KSk7cmV0dXJuIG89PT1hP251bGw6bz09PWUmJmE9PT1yP2k6aT1uKGU9byxyPWEpfX0odCxyKSkub24oXCJlbmQuc3R5bGUuXCIrdCxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX0odCkpOnRoaXMuc3R5bGVUd2Vlbih0LFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1GKHRoaXMsdCksdT1lKHRoaXMpO3JldHVybiBudWxsPT11JiYodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSx1PUYodGhpcyx0KSksYT09PXU/bnVsbDphPT09ciYmdT09PWk/bzpvPW4ocj1hLGk9dSl9fSh0LHIsVW4odGhpcyxcInN0eWxlLlwiK3QsbikpOmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUYodGhpcyx0KTtyZXR1cm4gbz09PWU/bnVsbDpvPT09cj9pOmk9bihyPW8sZSl9fSh0LHIsbitcIlwiKSxlKX0sc3R5bGVUd2VlbjpmdW5jdGlvbih0LG4sZSl7dmFyIHI9XCJzdHlsZS5cIisodCs9XCJcIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihyPXRoaXMudHdlZW4ocikpJiZyLl92YWx1ZTtpZihudWxsPT1uKXJldHVybiB0aGlzLnR3ZWVuKHIsbnVsbCk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4ocixmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcigpe3ZhciByPXRoaXMsaT1uLmFwcGx5KHIsYXJndW1lbnRzKTtyZXR1cm4gaSYmZnVuY3Rpb24obil7ci5zdHlsZS5zZXRQcm9wZXJ0eSh0LGkobiksZSl9fXJldHVybiByLl92YWx1ZT1uLHJ9KHQsbixudWxsPT1lP1wiXCI6ZSkpfSx0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnR3ZWVuKFwidGV4dFwiLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dCh0aGlzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PW4/XCJcIjpufX0oVW4odGhpcyxcInRleHRcIix0KSk6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX0obnVsbD09dD9cIlwiOnQrXCJcIikpfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbihcImVuZC5yZW1vdmVcIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBlIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtlIT09dClyZXR1cm47biYmbi5yZW1vdmVDaGlsZCh0aGlzKX19KHRoaXMuX2lkKSl9LHR3ZWVuOmZ1bmN0aW9uKHQsbil7dmFyIGU9dGhpcy5faWQ7aWYodCs9XCJcIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgcixpPUxuKHRoaXMubm9kZSgpLGUpLnR3ZWVuLG89MCxhPWkubGVuZ3RoO288YTsrK28paWYoKHI9aVtvXSkubmFtZT09PXQpcmV0dXJuIHIudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0LG4pe3ZhciBlLHI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9Um4odGhpcyx0KSxvPWkudHdlZW47aWYobyE9PWUpZm9yKHZhciBhPTAsdT0ocj1lPW8pLmxlbmd0aDthPHU7KythKWlmKHJbYV0ubmFtZT09PW4peyhyPXIuc2xpY2UoKSkuc3BsaWNlKGEsMSk7YnJlYWt9aS50d2Vlbj1yfX06ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89Um4odGhpcyx0KSxhPW8udHdlZW47aWYoYSE9PXIpe2k9KHI9YSkuc2xpY2UoKTtmb3IodmFyIHU9e25hbWU6bix2YWx1ZTplfSxmPTAsYz1pLmxlbmd0aDtmPGM7KytmKWlmKGlbZl0ubmFtZT09PW4pe2lbZl09dTticmVha31mPT09YyYmaS5wdXNoKHUpfW8udHdlZW49aX19KShlLHQsbikpfSxkZWxheTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt6bih0aGlzLHQpLmRlbGF5PStuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIG49K24sZnVuY3Rpb24oKXt6bih0aGlzLHQpLmRlbGF5PW59fSkobix0KSk6TG4odGhpcy5ub2RlKCksbikuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2YgdD9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe1JuKHRoaXMsdCkuZHVyYXRpb249K24uYXBwbHkodGhpcyxhcmd1bWVudHMpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gbj0rbixmdW5jdGlvbigpe1JuKHRoaXMsdCkuZHVyYXRpb249bn19KShuLHQpKTpMbih0aGlzLm5vZGUoKSxuKS5kdXJhdGlvbn0sZWFzZTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24odCxuKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtSbih0aGlzLHQpLmVhc2U9bn19KG4sdCkpOkxuKHRoaXMubm9kZSgpLG4pLmVhc2V9fTt2YXIgamw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBNYXRoLnBvdyh0LG4pfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxIbD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIDEtTWF0aC5wb3coMS10LG4pfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxYbD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuKCh0Kj0yKTw9MT9NYXRoLnBvdyh0LG4pOjItTWF0aC5wb3coMi10LG4pKS8yfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxHbD1NYXRoLlBJLFZsPUdsLzIsJGw9NC8xMSxXbD02LzExLFpsPTgvMTEsUWw9Ljc1LEpsPTkvMTEsS2w9MTAvMTEsdGg9LjkzNzUsbmg9MjEvMjIsZWg9NjMvNjQscmg9MS8kbC8kbCxpaD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQqdCooKG4rMSkqdC1uKX1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLG9oPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4tLXQqdCooKG4rMSkqdCtuKSsxfXJldHVybiBuPStuLGUub3ZlcnNob290PXQsZX0oMS43MDE1OCksYWg9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybigodCo9Mik8MT90KnQqKChuKzEpKnQtbik6KHQtPTIpKnQqKChuKzEpKnQrbikrMikvMn1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLHVoPTIqTWF0aC5QSSxmaD1mdW5jdGlvbiB0KG4sZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gbipNYXRoLnBvdygyLDEwKi0tdCkqTWF0aC5zaW4oKGktdCkvZSl9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLGNoPWZ1bmN0aW9uIHQobixlKXtmdW5jdGlvbiByKHQpe3JldHVybiAxLW4qTWF0aC5wb3coMiwtMTAqKHQ9K3QpKSpNYXRoLnNpbigodCtpKS9lKX12YXIgaT1NYXRoLmFzaW4oMS8obj1NYXRoLm1heCgxLG4pKSkqKGUvPXVoKTtyZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24obil7cmV0dXJuIHQobixlKnVoKX0sci5wZXJpb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHQobixlKX0scn0oMSwuMyksc2g9ZnVuY3Rpb24gdChuLGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuKCh0PTIqdC0xKTwwP24qTWF0aC5wb3coMiwxMCp0KSpNYXRoLnNpbigoaS10KS9lKToyLW4qTWF0aC5wb3coMiwtMTAqdCkqTWF0aC5zaW4oKGkrdCkvZSkpLzJ9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLGxoPXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpJbn07ZnQucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7RG4odGhpcyx0KX0pfSxmdC5wcm90b3R5cGUudHJhbnNpdGlvbj1mdW5jdGlvbih0KXt2YXIgbixlO3QgaW5zdGFuY2VvZiBPbj8obj10Ll9pZCx0PXQuX25hbWUpOihuPUJuKCksKGU9bGgpLnRpbWU9d24oKSx0PW51bGw9PXQ/bnVsbDp0K1wiXCIpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPTA7bzxpOysrbylmb3IodmFyIGEsdT1yW29dLGY9dS5sZW5ndGgsYz0wO2M8ZjsrK2MpKGE9dVtjXSkmJlBuKGEsdCxuLGMsdSxlfHxWbihhLG4pKTtyZXR1cm4gbmV3IE9uKHIsdGhpcy5fcGFyZW50cyx0LG4pfTt2YXIgaGg9W251bGxdLGRoPXtuYW1lOlwiZHJhZ1wifSxwaD17bmFtZTpcInNwYWNlXCJ9LHZoPXtuYW1lOlwiaGFuZGxlXCJ9LGdoPXtuYW1lOlwiY2VudGVyXCJ9LHloPXtuYW1lOlwieFwiLGhhbmRsZXM6W1wiZVwiLFwid1wiXS5tYXAoUW4pLGlucHV0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQmJltbdFswXSxuWzBdWzFdXSxbdFsxXSxuWzFdWzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMF0sdFsxXVswXV19fSxfaD17bmFtZTpcInlcIixoYW5kbGVzOltcIm5cIixcInNcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0LG4pe3JldHVybiB0JiZbW25bMF1bMF0sdFswXV0sW25bMV1bMF0sdFsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlt0WzBdWzFdLHRbMV1bMV1dfX0sYmg9e25hbWU6XCJ4eVwiLGhhbmRsZXM6W1wiblwiLFwiZVwiLFwic1wiLFwid1wiLFwibndcIixcIm5lXCIsXCJzZVwiLFwic3dcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdH0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sbWg9e292ZXJsYXk6XCJjcm9zc2hhaXJcIixzZWxlY3Rpb246XCJtb3ZlXCIsbjpcIm5zLXJlc2l6ZVwiLGU6XCJldy1yZXNpemVcIixzOlwibnMtcmVzaXplXCIsdzpcImV3LXJlc2l6ZVwiLG53OlwibndzZS1yZXNpemVcIixuZTpcIm5lc3ctcmVzaXplXCIsc2U6XCJud3NlLXJlc2l6ZVwiLHN3OlwibmVzdy1yZXNpemVcIn0seGg9e2U6XCJ3XCIsdzpcImVcIixudzpcIm5lXCIsbmU6XCJud1wiLHNlOlwic3dcIixzdzpcInNlXCJ9LHdoPXtuOlwic1wiLHM6XCJuXCIsbnc6XCJzd1wiLG5lOlwic2VcIixzZTpcIm5lXCIsc3c6XCJud1wifSxNaD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46bnVsbCxlOjEsczpudWxsLHc6LTEsbnc6LTEsbmU6MSxzZToxLHN3Oi0xfSxBaD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46LTEsZTpudWxsLHM6MSx3Om51bGwsbnc6LTEsbmU6LTEsc2U6MSxzdzoxfSxUaD1NYXRoLmNvcyxOaD1NYXRoLnNpbixTaD1NYXRoLlBJLEVoPVNoLzIsa2g9MipTaCxDaD1NYXRoLm1heCxQaD1BcnJheS5wcm90b3R5cGUuc2xpY2Usemg9TWF0aC5QSSxSaD0yKnpoLExoPVJoLTFlLTY7aWUucHJvdG90eXBlPW9lLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aWUsbW92ZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fKz1cIk1cIisodGhpcy5feDA9dGhpcy5feDE9K3QpK1wiLFwiKyh0aGlzLl95MD10aGlzLl95MT0rbil9LGNsb3NlUGF0aDpmdW5jdGlvbigpe251bGwhPT10aGlzLl94MSYmKHRoaXMuX3gxPXRoaXMuX3gwLHRoaXMuX3kxPXRoaXMuX3kwLHRoaXMuXys9XCJaXCIpfSxsaW5lVG86ZnVuY3Rpb24odCxuKXt0aGlzLl8rPVwiTFwiKyh0aGlzLl94MT0rdCkrXCIsXCIrKHRoaXMuX3kxPStuKX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyKXt0aGlzLl8rPVwiUVwiKyArdCtcIixcIisgK24rXCIsXCIrKHRoaXMuX3gxPStlKStcIixcIisodGhpcy5feTE9K3IpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsbixlLHIsaSxvKXt0aGlzLl8rPVwiQ1wiKyArdCtcIixcIisgK24rXCIsXCIrICtlK1wiLFwiKyArcitcIixcIisodGhpcy5feDE9K2kpK1wiLFwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKHQsbixlLHIsaSl7dD0rdCxuPStuLGU9K2Uscj0rcixpPStpO3ZhciBvPXRoaXMuX3gxLGE9dGhpcy5feTEsdT1lLXQsZj1yLW4sYz1vLXQscz1hLW4sbD1jKmMrcypzO2lmKGk8MCl0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiK2kpO2lmKG51bGw9PT10aGlzLl94MSl0aGlzLl8rPVwiTVwiKyh0aGlzLl94MT10KStcIixcIisodGhpcy5feTE9bik7ZWxzZSBpZihsPjFlLTYpaWYoTWF0aC5hYnMocyp1LWYqYyk+MWUtNiYmaSl7dmFyIGg9ZS1vLGQ9ci1hLHA9dSp1K2YqZix2PWgqaCtkKmQsZz1NYXRoLnNxcnQocCkseT1NYXRoLnNxcnQobCksXz1pKk1hdGgudGFuKCh6aC1NYXRoLmFjb3MoKHArbC12KS8oMipnKnkpKSkvMiksYj1fL3ksbT1fL2c7TWF0aC5hYnMoYi0xKT4xZS02JiYodGhpcy5fKz1cIkxcIisodCtiKmMpK1wiLFwiKyhuK2IqcykpLHRoaXMuXys9XCJBXCIraStcIixcIitpK1wiLDAsMCxcIisgKyhzKmg+YypkKStcIixcIisodGhpcy5feDE9dCttKnUpK1wiLFwiKyh0aGlzLl95MT1uK20qZil9ZWxzZSB0aGlzLl8rPVwiTFwiKyh0aGlzLl94MT10KStcIixcIisodGhpcy5feTE9bik7ZWxzZTt9LGFyYzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dD0rdCxuPStuO3ZhciBhPShlPStlKSpNYXRoLmNvcyhyKSx1PWUqTWF0aC5zaW4ociksZj10K2EsYz1uK3Uscz0xXm8sbD1vP3ItaTppLXI7aWYoZTwwKXRocm93IG5ldyBFcnJvcihcIm5lZ2F0aXZlIHJhZGl1czogXCIrZSk7bnVsbD09PXRoaXMuX3gxP3RoaXMuXys9XCJNXCIrZitcIixcIitjOihNYXRoLmFicyh0aGlzLl94MS1mKT4xZS02fHxNYXRoLmFicyh0aGlzLl95MS1jKT4xZS02KSYmKHRoaXMuXys9XCJMXCIrZitcIixcIitjKSxlJiYobDwwJiYobD1sJVJoK1JoKSxsPkxoP3RoaXMuXys9XCJBXCIrZStcIixcIitlK1wiLDAsMSxcIitzK1wiLFwiKyh0LWEpK1wiLFwiKyhuLXUpK1wiQVwiK2UrXCIsXCIrZStcIiwwLDEsXCIrcytcIixcIisodGhpcy5feDE9ZikrXCIsXCIrKHRoaXMuX3kxPWMpOmw+MWUtNiYmKHRoaXMuXys9XCJBXCIrZStcIixcIitlK1wiLDAsXCIrICsobD49emgpK1wiLFwiK3MrXCIsXCIrKHRoaXMuX3gxPXQrZSpNYXRoLmNvcyhpKSkrXCIsXCIrKHRoaXMuX3kxPW4rZSpNYXRoLnNpbihpKSkpKX0scmVjdDpmdW5jdGlvbih0LG4sZSxyKXt0aGlzLl8rPVwiTVwiKyh0aGlzLl94MD10aGlzLl94MT0rdCkrXCIsXCIrKHRoaXMuX3kwPXRoaXMuX3kxPStuKStcImhcIisgK2UrXCJ2XCIrICtyK1wiaFwiKy1lK1wiWlwifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTtsZS5wcm90b3R5cGU9aGUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpsZSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuXCIkXCIrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbXCIkXCIrdF19LHNldDpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzW1wiJFwiK3RdPW4sdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBuPVwiJFwiK3Q7cmV0dXJuIG4gaW4gdGhpcyYmZGVsZXRlIHRoaXNbbl19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpXCIkXCI9PT10WzBdJiZkZWxldGUgdGhpc1t0XX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmdC5wdXNoKG4uc2xpY2UoMSkpO3JldHVybiB0fSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQucHVzaCh0aGlzW25dKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmdC5wdXNoKHtrZXk6bi5zbGljZSgxKSx2YWx1ZTp0aGlzW25dfSk7cmV0dXJuIHR9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmKyt0O3JldHVybiB0fSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKWlmKFwiJFwiPT09dFswXSlyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQodGhpc1tuXSxuLnNsaWNlKDEpLHRoaXMpfX07dmFyIERoPWhlLnByb3RvdHlwZTt5ZS5wcm90b3R5cGU9X2UucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp5ZSxoYXM6RGguaGFzLGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdCs9XCJcIix0aGlzW1wiJFwiK3RdPXQsdGhpc30scmVtb3ZlOkRoLnJlbW92ZSxjbGVhcjpEaC5jbGVhcix2YWx1ZXM6RGgua2V5cyxzaXplOkRoLnNpemUsZW1wdHk6RGguZW1wdHksZWFjaDpEaC5lYWNofTt2YXIgVWg9QXJyYXkucHJvdG90eXBlLnNsaWNlLHFoPVtbXSxbW1sxLDEuNV0sWy41LDFdXV0sW1tbMS41LDFdLFsxLDEuNV1dXSxbW1sxLjUsMV0sWy41LDFdXV0sW1tbMSwuNV0sWzEuNSwxXV1dLFtbWzEsMS41XSxbLjUsMV1dLFtbMSwuNV0sWzEuNSwxXV1dLFtbWzEsLjVdLFsxLDEuNV1dXSxbW1sxLC41XSxbLjUsMV1dXSxbW1suNSwxXSxbMSwuNV1dXSxbW1sxLDEuNV0sWzEsLjVdXV0sW1tbLjUsMV0sWzEsLjVdXSxbWzEuNSwxXSxbMSwxLjVdXV0sW1tbMS41LDFdLFsxLC41XV1dLFtbWy41LDFdLFsxLjUsMV1dXSxbW1sxLDEuNV0sWzEuNSwxXV1dLFtbWy41LDFdLFsxLDEuNV1dXSxbXV0sT2g9e30sWWg9e30sQmg9MzQsRmg9MTAsSWg9MTMsamg9a2UoXCIsXCIpLEhoPWpoLnBhcnNlLFhoPWpoLnBhcnNlUm93cyxHaD1qaC5mb3JtYXQsVmg9amguZm9ybWF0Um93cywkaD1rZShcIlxcdFwiKSxXaD0kaC5wYXJzZSxaaD0kaC5wYXJzZVJvd3MsUWg9JGguZm9ybWF0LEpoPSRoLmZvcm1hdFJvd3MsS2g9TGUoSGgpLHRkPUxlKFdoKSxuZD1VZShcImFwcGxpY2F0aW9uL3htbFwiKSxlZD1VZShcInRleHQvaHRtbFwiKSxyZD1VZShcImltYWdlL3N2Zyt4bWxcIiksaWQ9amUucHJvdG90eXBlPUhlLnByb3RvdHlwZTtpZC5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQsbixlPW5ldyBIZSh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLHI9dGhpcy5fcm9vdDtpZighcilyZXR1cm4gZTtpZighci5sZW5ndGgpcmV0dXJuIGUuX3Jvb3Q9WGUociksZTtmb3IodD1be3NvdXJjZTpyLHRhcmdldDplLl9yb290PW5ldyBBcnJheSg0KX1dO3I9dC5wb3AoKTspZm9yKHZhciBpPTA7aTw0OysraSkobj1yLnNvdXJjZVtpXSkmJihuLmxlbmd0aD90LnB1c2goe3NvdXJjZTpuLHRhcmdldDpyLnRhcmdldFtpXT1uZXcgQXJyYXkoNCl9KTpyLnRhcmdldFtpXT1YZShuKSk7cmV0dXJuIGV9LGlkLmFkZD1mdW5jdGlvbih0KXt2YXIgbj0rdGhpcy5feC5jYWxsKG51bGwsdCksZT0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIFllKHRoaXMuY292ZXIobixlKSxuLGUsdCl9LGlkLmFkZEFsbD1mdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvPXQubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHU9bmV3IEFycmF5KG8pLGY9MS8wLGM9MS8wLHM9LTEvMCxsPS0xLzA7Zm9yKGU9MDtlPG87KytlKWlzTmFOKHI9K3RoaXMuX3guY2FsbChudWxsLG49dFtlXSkpfHxpc05hTihpPSt0aGlzLl95LmNhbGwobnVsbCxuKSl8fChhW2VdPXIsdVtlXT1pLHI8ZiYmKGY9cikscj5zJiYocz1yKSxpPGMmJihjPWkpLGk+bCYmKGw9aSkpO2ZvcihzPGYmJihmPXRoaXMuX3gwLHM9dGhpcy5feDEpLGw8YyYmKGM9dGhpcy5feTAsbD10aGlzLl95MSksdGhpcy5jb3ZlcihmLGMpLmNvdmVyKHMsbCksZT0wO2U8bzsrK2UpWWUodGhpcyxhW2VdLHVbZV0sdFtlXSk7cmV0dXJuIHRoaXN9LGlkLmNvdmVyPWZ1bmN0aW9uKHQsbil7aWYoaXNOYU4odD0rdCl8fGlzTmFOKG49K24pKXJldHVybiB0aGlzO3ZhciBlPXRoaXMuX3gwLHI9dGhpcy5feTAsaT10aGlzLl94MSxvPXRoaXMuX3kxO2lmKGlzTmFOKGUpKWk9KGU9TWF0aC5mbG9vcih0KSkrMSxvPShyPU1hdGguZmxvb3IobikpKzE7ZWxzZXtpZighKGU+dHx8dD5pfHxyPm58fG4+bykpcmV0dXJuIHRoaXM7dmFyIGEsdSxmPWktZSxjPXRoaXMuX3Jvb3Q7c3dpdGNoKHU9KG48KHIrbykvMik8PDF8dDwoZStpKS8yKXtjYXNlIDA6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGk9ZStmLG89citmLHQ+aXx8bj5vKTticmVhaztjYXNlIDE6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGU9aS1mLG89citmLGU+dHx8bj5vKTticmVhaztjYXNlIDI6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGk9ZStmLHI9by1mLHQ+aXx8cj5uKTticmVhaztjYXNlIDM6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGU9aS1mLHI9by1mLGU+dHx8cj5uKX10aGlzLl9yb290JiZ0aGlzLl9yb290Lmxlbmd0aCYmKHRoaXMuX3Jvb3Q9Yyl9cmV0dXJuIHRoaXMuX3gwPWUsdGhpcy5feTA9cix0aGlzLl94MT1pLHRoaXMuX3kxPW8sdGhpc30saWQuZGF0YT1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKG4pe2lmKCFuLmxlbmd0aClkb3t0LnB1c2gobi5kYXRhKX13aGlsZShuPW4ubmV4dCl9KSx0fSxpZC5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LGlkLmZpbmQ9ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbyxhLHUsZixjLHM9dGhpcy5feDAsbD10aGlzLl95MCxoPXRoaXMuX3gxLGQ9dGhpcy5feTEscD1bXSx2PXRoaXMuX3Jvb3Q7Zm9yKHYmJnAucHVzaChuZXcgQmUodixzLGwsaCxkKSksbnVsbD09ZT9lPTEvMDoocz10LWUsbD1uLWUsaD10K2UsZD1uK2UsZSo9ZSk7Zj1wLnBvcCgpOylpZighKCEodj1mLm5vZGUpfHwoaT1mLngwKT5ofHwobz1mLnkwKT5kfHwoYT1mLngxKTxzfHwodT1mLnkxKTxsKSlpZih2Lmxlbmd0aCl7dmFyIGc9KGkrYSkvMix5PShvK3UpLzI7cC5wdXNoKG5ldyBCZSh2WzNdLGcseSxhLHUpLG5ldyBCZSh2WzJdLGkseSxnLHUpLG5ldyBCZSh2WzFdLGcsbyxhLHkpLG5ldyBCZSh2WzBdLGksbyxnLHkpKSwoYz0obj49eSk8PDF8dD49ZykmJihmPXBbcC5sZW5ndGgtMV0scFtwLmxlbmd0aC0xXT1wW3AubGVuZ3RoLTEtY10scFtwLmxlbmd0aC0xLWNdPWYpfWVsc2V7dmFyIF89dC0rdGhpcy5feC5jYWxsKG51bGwsdi5kYXRhKSxiPW4tK3RoaXMuX3kuY2FsbChudWxsLHYuZGF0YSksbT1fKl8rYipiO2lmKG08ZSl7dmFyIHg9TWF0aC5zcXJ0KGU9bSk7cz10LXgsbD1uLXgsaD10K3gsZD1uK3gscj12LmRhdGF9fXJldHVybiByfSxpZC5yZW1vdmU9ZnVuY3Rpb24odCl7aWYoaXNOYU4obz0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihhPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIG4sZSxyLGksbyxhLHUsZixjLHMsbCxoLGQ9dGhpcy5fcm9vdCxwPXRoaXMuX3gwLHY9dGhpcy5feTAsZz10aGlzLl94MSx5PXRoaXMuX3kxO2lmKCFkKXJldHVybiB0aGlzO2lmKGQubGVuZ3RoKWZvcig7Oyl7aWYoKGM9bz49KHU9KHArZykvMikpP3A9dTpnPXUsKHM9YT49KGY9KHYreSkvMikpP3Y9Zjp5PWYsbj1kLCEoZD1kW2w9czw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIWQubGVuZ3RoKWJyZWFrOyhuW2wrMSYzXXx8bltsKzImM118fG5bbCszJjNdKSYmKGU9bixoPWwpfWZvcig7ZC5kYXRhIT09dDspaWYocj1kLCEoZD1kLm5leHQpKXJldHVybiB0aGlzO3JldHVybihpPWQubmV4dCkmJmRlbGV0ZSBkLm5leHQscj8oaT9yLm5leHQ9aTpkZWxldGUgci5uZXh0LHRoaXMpOm4/KGk/bltsXT1pOmRlbGV0ZSBuW2xdLChkPW5bMF18fG5bMV18fG5bMl18fG5bM10pJiZkPT09KG5bM118fG5bMl18fG5bMV18fG5bMF0pJiYhZC5sZW5ndGgmJihlP2VbaF09ZDp0aGlzLl9yb290PWQpLHRoaXMpOih0aGlzLl9yb290PWksdGhpcyl9LGlkLnJlbW92ZUFsbD1mdW5jdGlvbih0KXtmb3IodmFyIG49MCxlPXQubGVuZ3RoO248ZTsrK24pdGhpcy5yZW1vdmUodFtuXSk7cmV0dXJuIHRoaXN9LGlkLnJvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdH0saWQuc2l6ZT1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoZnVuY3Rpb24obil7aWYoIW4ubGVuZ3RoKWRveysrdH13aGlsZShuPW4ubmV4dCl9KSx0fSxpZC52aXNpdD1mdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvLGEsdT1bXSxmPXRoaXMuX3Jvb3Q7Zm9yKGYmJnUucHVzaChuZXcgQmUoZix0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO249dS5wb3AoKTspaWYoIXQoZj1uLm5vZGUscj1uLngwLGk9bi55MCxvPW4ueDEsYT1uLnkxKSYmZi5sZW5ndGgpe3ZhciBjPShyK28pLzIscz0oaSthKS8yOyhlPWZbM10pJiZ1LnB1c2gobmV3IEJlKGUsYyxzLG8sYSkpLChlPWZbMl0pJiZ1LnB1c2gobmV3IEJlKGUscixzLGMsYSkpLChlPWZbMV0pJiZ1LnB1c2gobmV3IEJlKGUsYyxpLG8scykpLChlPWZbMF0pJiZ1LnB1c2gobmV3IEJlKGUscixpLGMscykpfXJldHVybiB0aGlzfSxpZC52aXNpdEFmdGVyPWZ1bmN0aW9uKHQpe3ZhciBuLGU9W10scj1bXTtmb3IodGhpcy5fcm9vdCYmZS5wdXNoKG5ldyBCZSh0aGlzLl9yb290LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7bj1lLnBvcCgpOyl7dmFyIGk9bi5ub2RlO2lmKGkubGVuZ3RoKXt2YXIgbyxhPW4ueDAsdT1uLnkwLGY9bi54MSxjPW4ueTEscz0oYStmKS8yLGw9KHUrYykvMjsobz1pWzBdKSYmZS5wdXNoKG5ldyBCZShvLGEsdSxzLGwpKSwobz1pWzFdKSYmZS5wdXNoKG5ldyBCZShvLHMsdSxmLGwpKSwobz1pWzJdKSYmZS5wdXNoKG5ldyBCZShvLGEsbCxzLGMpKSwobz1pWzNdKSYmZS5wdXNoKG5ldyBCZShvLHMsbCxmLGMpKX1yLnB1c2gobil9Zm9yKDtuPXIucG9wKCk7KXQobi5ub2RlLG4ueDAsbi55MCxuLngxLG4ueTEpO3JldHVybiB0aGlzfSxpZC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl94PXQsdGhpcyk6dGhpcy5feH0saWQueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feT10LHRoaXMpOnRoaXMuX3l9O3ZhciBvZD0xMCxhZD1NYXRoLlBJKigzLU1hdGguc3FydCg1KSksdWQ9L14oPzooLik/KFs8Pj1eXSkpPyhbK1xcLVxcKCBdKT8oWyQjXSk/KDApPyhcXGQrKT8oLCk/KFxcLlxcZCspPyh+KT8oW2EteiVdKT8kL2k7dHIucHJvdG90eXBlPW5yLnByb3RvdHlwZSxuci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/XCIwXCI6XCJcIikrKG51bGw9PXRoaXMud2lkdGg/XCJcIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hP1wiLFwiOlwiXCIpKyhudWxsPT10aGlzLnByZWNpc2lvbj9cIlwiOlwiLlwiK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/XCJ+XCI6XCJcIikrdGhpcy50eXBlfTt2YXIgZmQsY2Qsc2Q9e1wiJVwiOmZ1bmN0aW9uKHQsbil7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKG4pfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0K1wiXCJ9LGQ6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTApfSxlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQudG9FeHBvbmVudGlhbChuKX0sZjpmdW5jdGlvbih0LG4pe3JldHVybiB0LnRvRml4ZWQobil9LGc6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50b1ByZWNpc2lvbihuKX0sbzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZyg4KX0scDpmdW5jdGlvbih0LG4pe3JldHVybiBlcigxMDAqdCxuKX0scjplcixzOmZ1bmN0aW9uKHQsbil7dmFyIGU9SmUodCxuKTtpZighZSlyZXR1cm4gdCtcIlwiO3ZhciByPWVbMF0saT1lWzFdLG89aS0oZmQ9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoaS8zKSkpKSsxLGE9ci5sZW5ndGg7cmV0dXJuIG89PT1hP3I6bz5hP3IrbmV3IEFycmF5KG8tYSsxKS5qb2luKFwiMFwiKTpvPjA/ci5zbGljZSgwLG8pK1wiLlwiK3Iuc2xpY2Uobyk6XCIwLlwiK25ldyBBcnJheSgxLW8pLmpvaW4oXCIwXCIpK0plKHQsTWF0aC5tYXgoMCxuK28tMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19LGxkPVtcInlcIixcInpcIixcImFcIixcImZcIixcInBcIixcIm5cIixcIsK1XCIsXCJtXCIsXCJcIixcImtcIixcIk1cIixcIkdcIixcIlRcIixcIlBcIixcIkVcIixcIlpcIixcIllcIl07b3Ioe2RlY2ltYWw6XCIuXCIsdGhvdXNhbmRzOlwiLFwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbXCIkXCIsXCJcIl19KSxzci5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnNyLHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5zPXRoaXMudD0wfSxhZGQ6ZnVuY3Rpb24odCl7bHIoamQsdCx0aGlzLnQpLGxyKHRoaXMsamQucyx0aGlzLnMpLHRoaXMucz90aGlzLnQrPWpkLnQ6dGhpcy5zPWpkLnR9LHZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zfX07dmFyIGhkLGRkLHBkLHZkLGdkLHlkLF9kLGJkLG1kLHhkLHdkLE1kLEFkLFRkLE5kLFNkLEVkLGtkLENkLFBkLHpkLFJkLExkLERkLFVkLHFkLE9kLFlkLEJkLEZkLElkLGpkPW5ldyBzcixIZD0xZS02LFhkPTFlLTEyLEdkPU1hdGguUEksVmQ9R2QvMiwkZD1HZC80LFdkPTIqR2QsWmQ9MTgwL0dkLFFkPUdkLzE4MCxKZD1NYXRoLmFicyxLZD1NYXRoLmF0YW4sdHA9TWF0aC5hdGFuMixucD1NYXRoLmNvcyxlcD1NYXRoLmNlaWwscnA9TWF0aC5leHAsaXA9TWF0aC5sb2csb3A9TWF0aC5wb3csYXA9TWF0aC5zaW4sdXA9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9LGZwPU1hdGguc3FydCxjcD1NYXRoLnRhbixzcD17RmVhdHVyZTpmdW5jdGlvbih0LG4pe2dyKHQuZ2VvbWV0cnksbil9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZmVhdHVyZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylncihlW3JdLmdlb21ldHJ5LG4pfX0sbHA9e1NwaGVyZTpmdW5jdGlvbih0LG4pe24uc3BoZXJlKCl9LFBvaW50OmZ1bmN0aW9uKHQsbil7dD10LmNvb3JkaW5hdGVzLG4ucG9pbnQodFswXSx0WzFdLHRbMl0pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOyl0PWVbcl0sbi5wb2ludCh0WzBdLHRbMV0sdFsyXSl9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXt5cih0LmNvb3JkaW5hdGVzLG4sMCl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspeXIoZVtyXSxuLDApfSxQb2x5Z29uOmZ1bmN0aW9uKHQsbil7X3IodC5jb29yZGluYXRlcyxuKX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylfcihlW3JdLG4pfSxHZW9tZXRyeUNvbGxlY3Rpb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5nZW9tZXRyaWVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspZ3IoZVtyXSxuKX19LGhwPWNyKCksZHA9Y3IoKSxwcD17cG9pbnQ6dnIsbGluZVN0YXJ0OnZyLGxpbmVFbmQ6dnIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7aHAucmVzZXQoKSxwcC5saW5lU3RhcnQ9bXIscHAubGluZUVuZD14cn0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciB0PStocDtkcC5hZGQodDwwP1dkK3Q6dCksdGhpcy5saW5lU3RhcnQ9dGhpcy5saW5lRW5kPXRoaXMucG9pbnQ9dnJ9LHNwaGVyZTpmdW5jdGlvbigpe2RwLmFkZChXZCl9fSx2cD1jcigpLGdwPXtwb2ludDpQcixsaW5lU3RhcnQ6UnIsbGluZUVuZDpMcixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtncC5wb2ludD1EcixncC5saW5lU3RhcnQ9VXIsZ3AubGluZUVuZD1xcix2cC5yZXNldCgpLHBwLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7cHAucG9seWdvbkVuZCgpLGdwLnBvaW50PVByLGdwLmxpbmVTdGFydD1ScixncC5saW5lRW5kPUxyLGhwPDA/KHlkPS0oYmQ9MTgwKSxfZD0tKG1kPTkwKSk6dnA+SGQ/bWQ9OTA6dnA8LUhkJiYoX2Q9LTkwKSxOZFswXT15ZCxOZFsxXT1iZH19LHlwPXtzcGhlcmU6dnIscG9pbnQ6RnIsbGluZVN0YXJ0OmpyLGxpbmVFbmQ6R3IscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7eXAubGluZVN0YXJ0PVZyLHlwLmxpbmVFbmQ9JHJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt5cC5saW5lU3RhcnQ9anIseXAubGluZUVuZD1Hcn19O0tyLmludmVydD1Lcjt2YXIgX3AsYnAsbXAseHAsd3AsTXAsQXAsVHAsTnAsU3AsRXAsa3A9Y3IoKSxDcD1kaShmdW5jdGlvbigpe3JldHVybiEwfSxmdW5jdGlvbih0KXt2YXIgbixlPU5hTixyPU5hTixpPU5hTjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxuPTF9LHBvaW50OmZ1bmN0aW9uKG8sYSl7dmFyIHU9bz4wP0dkOi1HZCxmPUpkKG8tZSk7SmQoZi1HZCk8SGQ/KHQucG9pbnQoZSxyPShyK2EpLzI+MD9WZDotVmQpLHQucG9pbnQoaSxyKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQodSxyKSx0LnBvaW50KG8sciksbj0wKTppIT09dSYmZj49R2QmJihKZChlLWkpPEhkJiYoZS09aSpIZCksSmQoby11KTxIZCYmKG8tPXUqSGQpLHI9ZnVuY3Rpb24odCxuLGUscil7dmFyIGksbyxhPWFwKHQtZSk7cmV0dXJuIEpkKGEpPkhkP0tkKChhcChuKSoobz1ucChyKSkqYXAoZSktYXAocikqKGk9bnAobikpKmFwKHQpKS8oaSpvKmEpKToobityKS8yfShlLHIsbyxhKSx0LnBvaW50KGksciksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHUsciksbj0wKSx0LnBvaW50KGU9byxyPWEpLGk9dX0sbGluZUVuZDpmdW5jdGlvbigpe3QubGluZUVuZCgpLGU9cj1OYU59LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIDItbn19fSxmdW5jdGlvbih0LG4sZSxyKXt2YXIgaTtpZihudWxsPT10KWk9ZSpWZCxyLnBvaW50KC1HZCxpKSxyLnBvaW50KDAsaSksci5wb2ludChHZCxpKSxyLnBvaW50KEdkLDApLHIucG9pbnQoR2QsLWkpLHIucG9pbnQoMCwtaSksci5wb2ludCgtR2QsLWkpLHIucG9pbnQoLUdkLDApLHIucG9pbnQoLUdkLGkpO2Vsc2UgaWYoSmQodFswXS1uWzBdKT5IZCl7dmFyIG89dFswXTxuWzBdP0dkOi1HZDtpPWUqby8yLHIucG9pbnQoLW8saSksci5wb2ludCgwLGkpLHIucG9pbnQobyxpKX1lbHNlIHIucG9pbnQoblswXSxuWzFdKX0sWy1HZCwtVmRdKSxQcD0xZTksenA9LVBwLFJwPWNyKCksTHA9e3NwaGVyZTp2cixwb2ludDp2cixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtMcC5wb2ludD1iaSxMcC5saW5lRW5kPV9pfSxsaW5lRW5kOnZyLHBvbHlnb25TdGFydDp2cixwb2x5Z29uRW5kOnZyfSxEcD1bbnVsbCxudWxsXSxVcD17dHlwZTpcIkxpbmVTdHJpbmdcIixjb29yZGluYXRlczpEcH0scXA9e0ZlYXR1cmU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gTWkodC5nZW9tZXRyeSxuKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5mZWF0dXJlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE1pKGVbcl0uZ2VvbWV0cnksbikpcmV0dXJuITA7cmV0dXJuITF9fSxPcD17U3BoZXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LFBvaW50OmZ1bmN0aW9uKHQsbil7cmV0dXJuIEFpKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKEFpKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXtyZXR1cm4gVGkodC5jb29yZGluYXRlcyxuKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihUaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfSxQb2x5Z29uOmZ1bmN0aW9uKHQsbil7cmV0dXJuIE5pKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspaWYoTmkoZVtyXSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZ2VvbWV0cmllcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE1pKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9fSxZcD1jcigpLEJwPWNyKCksRnA9e3BvaW50OnZyLGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe0ZwLmxpbmVTdGFydD1SaSxGcC5saW5lRW5kPVVpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7RnAubGluZVN0YXJ0PUZwLmxpbmVFbmQ9RnAucG9pbnQ9dnIsWXAuYWRkKEpkKEJwKSksQnAucmVzZXQoKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9WXAvMjtyZXR1cm4gWXAucmVzZXQoKSx0fX0sSXA9MS8wLGpwPUlwLEhwPS1JcCxYcD1IcCxHcD17cG9pbnQ6ZnVuY3Rpb24odCxuKXt0PElwJiYoSXA9dCksdD5IcCYmKEhwPXQpLG48anAmJihqcD1uKSxuPlhwJiYoWHA9bil9LGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDp2cixwb2x5Z29uRW5kOnZyLHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVtbSXAsanBdLFtIcCxYcF1dO3JldHVybiBIcD1YcD0tKGpwPUlwPTEvMCksdH19LFZwPTAsJHA9MCxXcD0wLFpwPTAsUXA9MCxKcD0wLEtwPTAsdHY9MCxudj0wLGV2PXtwb2ludDpxaSxsaW5lU3RhcnQ6T2ksbGluZUVuZDpGaSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtldi5saW5lU3RhcnQ9SWksZXYubGluZUVuZD1qaX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2V2LnBvaW50PXFpLGV2LmxpbmVTdGFydD1PaSxldi5saW5lRW5kPUZpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1udj9bS3AvbnYsdHYvbnZdOkpwP1tacC9KcCxRcC9KcF06V3A/W1ZwL1dwLCRwL1dwXTpbTmFOLE5hTl07cmV0dXJuIFZwPSRwPVdwPVpwPVFwPUpwPUtwPXR2PW52PTAsdH19O0dpLnByb3RvdHlwZT17X3JhZGl1czo0LjUscG9pbnRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JhZGl1cz10LHRoaXN9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MD09PXRoaXMuX2xpbmUmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fcG9pbnQ9TmFOfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbiksdGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTticmVhaztkZWZhdWx0OnRoaXMuX2NvbnRleHQubW92ZVRvKHQrdGhpcy5fcmFkaXVzLG4pLHRoaXMuX2NvbnRleHQuYXJjKHQsbix0aGlzLl9yYWRpdXMsMCxXZCl9fSxyZXN1bHQ6dnJ9O3ZhciBydixpdixvdixhdix1dixmdj1jcigpLGN2PXtwb2ludDp2cixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtjdi5wb2ludD1WaX0sbGluZUVuZDpmdW5jdGlvbigpe3J2JiYkaShpdixvdiksY3YucG9pbnQ9dnJ9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3J2PSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7cnY9bnVsbH0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9K2Z2O3JldHVybiBmdi5yZXNldCgpLHR9fTtXaS5wcm90b3R5cGU9e19yYWRpdXM6NC41LF9jaXJjbGU6WmkoNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4odD0rdCkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9dCx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fc3RyaW5nLnB1c2goXCJaXCIpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9zdHJpbmcucHVzaChcIk1cIix0LFwiLFwiLG4pLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3N0cmluZy5wdXNoKFwiTFwiLHQsXCIsXCIsbik7YnJlYWs7ZGVmYXVsdDpudWxsPT10aGlzLl9jaXJjbGUmJih0aGlzLl9jaXJjbGU9WmkodGhpcy5fcmFkaXVzKSksdGhpcy5fc3RyaW5nLnB1c2goXCJNXCIsdCxcIixcIixuLHRoaXMuX2NpcmNsZSl9fSxyZXN1bHQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9zdHJpbmcubGVuZ3RoKXt2YXIgdD10aGlzLl9zdHJpbmcuam9pbihcIlwiKTtyZXR1cm4gdGhpcy5fc3RyaW5nPVtdLHR9cmV0dXJuIG51bGx9fSxKaS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkppLHBvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5zdHJlYW0ucG9pbnQodCxuKX0sc3BoZXJlOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25FbmQoKX19O3ZhciBzdj0xNixsdj1ucCgzMCpRZCksaHY9UWkoe3BvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5zdHJlYW0ucG9pbnQodCpRZCxuKlFkKX19KSxkdj1obyhmdW5jdGlvbih0KXtyZXR1cm4gZnAoMi8oMSt0KSl9KTtkdi5pbnZlcnQ9cG8oZnVuY3Rpb24odCl7cmV0dXJuIDIqZHIodC8yKX0pO3ZhciBwdj1obyhmdW5jdGlvbih0KXtyZXR1cm4odD1ocih0KSkmJnQvYXAodCl9KTtwdi5pbnZlcnQ9cG8oZnVuY3Rpb24odCl7cmV0dXJuIHR9KSx2by5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdCwyKktkKHJwKG4pKS1WZF19LGJvLmludmVydD1ibyx4by5pbnZlcnQ9cG8oS2QpLE1vLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlLHI9bixpPTI1O2Rve3ZhciBvPXIqcixhPW8qbztyLT1lPShyKigxLjAwNzIyNitvKiguMDE1MDg1K2EqKC4wMjg4NzQqby0uMDQ0NDc1LS4wMDU5MTYqYSkpKS1uKS8oMS4wMDcyMjYrbyooLjA0NTI1NSthKiguMjU5ODY2Km8tLjMxMTMyNS0uMDA1OTE2KjExKmEpKSl9d2hpbGUoSmQoZSk+SGQmJi0taT4wKTtyZXR1cm5bdC8oLjg3MDcrKG89cipyKSoobyoobypvKm8qKC4wMDM5NzEtLjAwMTUyOSpvKS0uMDEzNzkxKS0uMTMxOTc5KSkscl19LEFvLmludmVydD1wbyhkciksVG8uaW52ZXJ0PXBvKGZ1bmN0aW9uKHQpe3JldHVybiAyKktkKHQpfSksTm8uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuWy1uLDIqS2QocnAodCkpLVZkXX0sRG8ucHJvdG90eXBlPVBvLnByb3RvdHlwZT17Y29uc3RydWN0b3I6RG8sY291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoQ28pfSxlYWNoOmZ1bmN0aW9uKHQpe3ZhciBuLGUscixpLG89dGhpcyxhPVtvXTtkb3tmb3Iobj1hLnJldmVyc2UoKSxhPVtdO289bi5wb3AoKTspaWYodChvKSxlPW8uY2hpbGRyZW4pZm9yKHI9MCxpPWUubGVuZ3RoO3I8aTsrK3IpYS5wdXNoKGVbcl0pfXdoaWxlKGEubGVuZ3RoKTtyZXR1cm4gdGhpc30sZWFjaEFmdGVyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHIsaT10aGlzLG89W2ldLGE9W107aT1vLnBvcCgpOylpZihhLnB1c2goaSksbj1pLmNoaWxkcmVuKWZvcihlPTAscj1uLmxlbmd0aDtlPHI7KytlKW8ucHVzaChuW2VdKTtmb3IoO2k9YS5wb3AoKTspdChpKTtyZXR1cm4gdGhpc30sZWFjaEJlZm9yZTpmdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPXRoaXMsaT1bcl07cj1pLnBvcCgpOylpZih0KHIpLG49ci5jaGlsZHJlbilmb3IoZT1uLmxlbmd0aC0xO2U+PTA7LS1lKWkucHVzaChuW2VdKTtyZXR1cm4gdGhpc30sc3VtOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2hBZnRlcihmdW5jdGlvbihuKXtmb3IodmFyIGU9K3Qobi5kYXRhKXx8MCxyPW4uY2hpbGRyZW4saT1yJiZyLmxlbmd0aDstLWk+PTA7KWUrPXJbaV0udmFsdWU7bi52YWx1ZT1lfSl9LHNvcnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaEJlZm9yZShmdW5jdGlvbihuKXtuLmNoaWxkcmVuJiZuLmNoaWxkcmVuLnNvcnQodCl9KX0scGF0aDpmdW5jdGlvbih0KXtmb3IodmFyIG49dGhpcyxlPWZ1bmN0aW9uKHQsbil7aWYodD09PW4pcmV0dXJuIHQ7dmFyIGU9dC5hbmNlc3RvcnMoKSxyPW4uYW5jZXN0b3JzKCksaT1udWxsO2Zvcih0PWUucG9wKCksbj1yLnBvcCgpO3Q9PT1uOylpPXQsdD1lLnBvcCgpLG49ci5wb3AoKTtyZXR1cm4gaX0obix0KSxyPVtuXTtuIT09ZTspbj1uLnBhcmVudCxyLnB1c2gobik7Zm9yKHZhciBpPXIubGVuZ3RoO3QhPT1lOylyLnNwbGljZShpLDAsdCksdD10LnBhcmVudDtyZXR1cm4gcn0sYW5jZXN0b3JzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsbj1bdF07dD10LnBhcmVudDspbi5wdXNoKHQpO3JldHVybiBufSxkZXNjZW5kYW50czpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24obil7dC5wdXNoKG4pfSksdH0sbGVhdmVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaEJlZm9yZShmdW5jdGlvbihuKXtuLmNoaWxkcmVufHx0LnB1c2gobil9KSx0fSxsaW5rczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1bXTtyZXR1cm4gdC5lYWNoKGZ1bmN0aW9uKGUpe2UhPT10JiZuLnB1c2goe3NvdXJjZTplLnBhcmVudCx0YXJnZXQ6ZX0pfSksbn0sY29weTpmdW5jdGlvbigpe3JldHVybiBQbyh0aGlzKS5lYWNoQmVmb3JlKFJvKX19O3ZhciB2dj1BcnJheS5wcm90b3R5cGUuc2xpY2UsZ3Y9XCIkXCIseXY9e2RlcHRoOi0xfSxfdj17fTtjYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShEby5wcm90b3R5cGUpO3ZhciBidj0oMStNYXRoLnNxcnQoNSkpLzIsbXY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSxyLGksbyl7bGEobix0LGUscixpLG8pfXJldHVybiBlLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiB0KChuPStuKT4xP246MSl9LGV9KGJ2KSx4dj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlLHIsaSxvKXtpZigoYT10Ll9zcXVhcmlmeSkmJmEucmF0aW89PT1uKWZvcih2YXIgYSx1LGYsYyxzLGw9LTEsaD1hLmxlbmd0aCxkPXQudmFsdWU7KytsPGg7KXtmb3IoZj0odT1hW2xdKS5jaGlsZHJlbixjPXUudmFsdWU9MCxzPWYubGVuZ3RoO2M8czsrK2MpdS52YWx1ZSs9ZltjXS52YWx1ZTt1LmRpY2U/bmEodSxlLHIsaSxyKz0oby1yKSp1LnZhbHVlL2QpOnNhKHUsZSxyLGUrPShpLWUpKnUudmFsdWUvZCxvKSxkLT11LnZhbHVlfWVsc2UgdC5fc3F1YXJpZnk9YT1sYShuLHQsZSxyLGksbyksYS5yYXRpbz1ufXJldHVybiBlLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiB0KChuPStuKT4xP246MSl9LGV9KGJ2KSx3dj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlKXtyZXR1cm4gdD1udWxsPT10PzA6K3QsZT1udWxsPT1lPzE6K2UsMT09PWFyZ3VtZW50cy5sZW5ndGg/KGU9dCx0PTApOmUtPXQsZnVuY3Rpb24oKXtyZXR1cm4gbigpKmUrdH19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLE12PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LGUpe3ZhciByLGk7cmV0dXJuIHQ9bnVsbD09dD8wOit0LGU9bnVsbD09ZT8xOitlLGZ1bmN0aW9uKCl7dmFyIG87aWYobnVsbCE9cilvPXIscj1udWxsO2Vsc2UgZG97cj0yKm4oKS0xLG89MipuKCktMSxpPXIqcitvKm99d2hpbGUoIWl8fGk+MSk7cmV0dXJuIHQrZSpvKk1hdGguc3FydCgtMipNYXRoLmxvZyhpKS9pKX19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLEF2PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSgpe3ZhciB0PU12LnNvdXJjZShuKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZXhwKHQoKSl9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxUdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAscj0wO3I8dDsrK3IpZSs9bigpO3JldHVybiBlfX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksTnY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3ZhciBlPVR2LnNvdXJjZShuKSh0KTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSgpL3R9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxTdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuLU1hdGgubG9nKDEtbigpKS90fX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksRXY9QXJyYXkucHJvdG90eXBlLGt2PUV2Lm1hcCxDdj1Fdi5zbGljZSxQdj17bmFtZTpcImltcGxpY2l0XCJ9LHp2PVswLDFdLFJ2PW5ldyBEYXRlLEx2PW5ldyBEYXRlLER2PUlhKGZ1bmN0aW9uKCl7fSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi10fSk7RHYuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9JYShmdW5jdGlvbihuKXtuLnNldFRpbWUoTWF0aC5mbG9vcihuL3QpKnQpfSxmdW5jdGlvbihuLGUpe24uc2V0VGltZSgrbitlKnQpfSxmdW5jdGlvbihuLGUpe3JldHVybihlLW4pL3R9KTpEdjpudWxsfTt2YXIgVXY9RHYucmFuZ2UscXY9NmU0LE92PTYwNDhlNSxZdj1JYShmdW5jdGlvbih0KXt0LnNldFRpbWUoMWUzKk1hdGguZmxvb3IodC8xZTMpKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3QrMWUzKm4pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzFlM30sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDU2Vjb25kcygpfSksQnY9WXYucmFuZ2UsRnY9SWEoZnVuY3Rpb24odCl7dC5zZXRUaW1lKE1hdGguZmxvb3IodC9xdikqcXYpfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKnF2KX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9xdn0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSksSXY9RnYucmFuZ2UsanY9SWEoZnVuY3Rpb24odCl7dmFyIG49dC5nZXRUaW1lem9uZU9mZnNldCgpKnF2JTM2ZTU7bjwwJiYobis9MzZlNSksdC5zZXRUaW1lKDM2ZTUqTWF0aC5mbG9vcigoK3QtbikvMzZlNSkrbil9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0KzM2ZTUqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvMzZlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pLEh2PWp2LnJhbmdlLFh2PUlhKGZ1bmN0aW9uKHQpe3Quc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQtKG4uZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnF2KS84NjRlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpLTF9KSxHdj1Ydi5yYW5nZSxWdj1qYSgwKSwkdj1qYSgxKSxXdj1qYSgyKSxadj1qYSgzKSxRdj1qYSg0KSxKdj1qYSg1KSxLdj1qYSg2KSx0Zz1Wdi5yYW5nZSxuZz0kdi5yYW5nZSxlZz1Xdi5yYW5nZSxyZz1adi5yYW5nZSxpZz1Rdi5yYW5nZSxvZz1Kdi5yYW5nZSxhZz1Ldi5yYW5nZSx1Zz1JYShmdW5jdGlvbih0KXt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldE1vbnRoKHQuZ2V0TW9udGgoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXRNb250aCgpLXQuZ2V0TW9udGgoKSsxMioobi5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKSl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSxmZz11Zy5yYW5nZSxjZz1JYShmdW5jdGlvbih0KXt0LnNldE1vbnRoKDAsMSksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0pO2NnLmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/SWEoZnVuY3Rpb24obil7bi5zZXRGdWxsWWVhcihNYXRoLmZsb29yKG4uZ2V0RnVsbFllYXIoKS90KSp0KSxuLnNldE1vbnRoKDAsMSksbi5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24obixlKXtuLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKStlKnQpfSk6bnVsbH07dmFyIHNnPWNnLnJhbmdlLGxnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDU2Vjb25kcygwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKnF2KX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9xdn0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTWludXRlcygpfSksaGc9bGcucmFuZ2UsZGc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENNaW51dGVzKDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3QrMzZlNSpuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS8zNmU1fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENIb3VycygpfSkscGc9ZGcucmFuZ2Usdmc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvODY0ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSksZ2c9dmcucmFuZ2UseWc9SGEoMCksX2c9SGEoMSksYmc9SGEoMiksbWc9SGEoMykseGc9SGEoNCksd2c9SGEoNSksTWc9SGEoNiksQWc9eWcucmFuZ2UsVGc9X2cucmFuZ2UsTmc9YmcucmFuZ2UsU2c9bWcucmFuZ2UsRWc9eGcucmFuZ2Usa2c9d2cucmFuZ2UsQ2c9TWcucmFuZ2UsUGc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENEYXRlKDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENNb250aCh0LmdldFVUQ01vbnRoKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0VVRDTW9udGgoKS10LmdldFVUQ01vbnRoKCkrMTIqKG4uZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCkpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNb250aCgpfSksemc9UGcucmFuZ2UsUmc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCl9KTtSZy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP0lhKGZ1bmN0aW9uKG4pe24uc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcihuLmdldFVUQ0Z1bGxZZWFyKCkvdCkqdCksbi5zZXRVVENNb250aCgwLDEpLG4uc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKG4sZSl7bi5zZXRVVENGdWxsWWVhcihuLmdldFVUQ0Z1bGxZZWFyKCkrZSp0KX0pOm51bGx9O3ZhciBMZyxEZz1SZy5yYW5nZSxVZz17XCItXCI6XCJcIixfOlwiIFwiLDA6XCIwXCJ9LHFnPS9eXFxzKlxcZCsvLE9nPS9eJS8sWWc9L1tcXFxcXiQqKz98W1xcXSgpLnt9XS9nO25mKHtkYXRlVGltZTpcIiV4LCAlWFwiLGRhdGU6XCIlLW0vJS1kLyVZXCIsdGltZTpcIiUtSTolTTolUyAlcFwiLHBlcmlvZHM6W1wiQU1cIixcIlBNXCJdLGRheXM6W1wiU3VuZGF5XCIsXCJNb25kYXlcIixcIlR1ZXNkYXlcIixcIldlZG5lc2RheVwiLFwiVGh1cnNkYXlcIixcIkZyaWRheVwiLFwiU2F0dXJkYXlcIl0sc2hvcnREYXlzOltcIlN1blwiLFwiTW9uXCIsXCJUdWVcIixcIldlZFwiLFwiVGh1XCIsXCJGcmlcIixcIlNhdFwiXSxtb250aHM6W1wiSmFudWFyeVwiLFwiRmVicnVhcnlcIixcIk1hcmNoXCIsXCJBcHJpbFwiLFwiTWF5XCIsXCJKdW5lXCIsXCJKdWx5XCIsXCJBdWd1c3RcIixcIlNlcHRlbWJlclwiLFwiT2N0b2JlclwiLFwiTm92ZW1iZXJcIixcIkRlY2VtYmVyXCJdLHNob3J0TW9udGhzOltcIkphblwiLFwiRmViXCIsXCJNYXJcIixcIkFwclwiLFwiTWF5XCIsXCJKdW5cIixcIkp1bFwiLFwiQXVnXCIsXCJTZXBcIixcIk9jdFwiLFwiTm92XCIsXCJEZWNcIl19KTt2YXIgQmc9XCIlWS0lbS0lZFQlSDolTTolUy4lTFpcIixGZz1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZz9mdW5jdGlvbih0KXtyZXR1cm4gdC50b0lTT1N0cmluZygpfTp0LnV0Y0Zvcm1hdChCZyksSWc9K25ldyBEYXRlKFwiMjAwMC0wMS0wMVQwMDowMDowMC4wMDBaXCIpP2Z1bmN0aW9uKHQpe3ZhciBuPW5ldyBEYXRlKHQpO3JldHVybiBpc05hTihuKT9udWxsOm59OnQudXRjUGFyc2UoQmcpLGpnPTFlMyxIZz02MCpqZyxYZz02MCpIZyxHZz0yNCpYZyxWZz03KkdnLCRnPTMwKkdnLFdnPTM2NSpHZyxaZz1mZihcIjFmNzdiNGZmN2YwZTJjYTAyY2Q2MjcyODk0NjdiZDhjNTY0YmUzNzdjMjdmN2Y3ZmJjYmQyMjE3YmVjZlwiKSxRZz1mZihcIjdmYzk3ZmJlYWVkNGZkYzA4NmZmZmY5OTM4NmNiMGYwMDI3ZmJmNWIxNzY2NjY2NlwiKSxKZz1mZihcIjFiOWU3N2Q5NWYwMjc1NzBiM2U3Mjk4YTY2YTYxZWU2YWIwMmE2NzYxZDY2NjY2NlwiKSxLZz1mZihcImE2Y2VlMzFmNzhiNGIyZGY4YTMzYTAyY2ZiOWE5OWUzMWExY2ZkYmY2ZmZmN2YwMGNhYjJkNjZhM2Q5YWZmZmY5OWIxNTkyOFwiKSx0eT1mZihcImZiYjRhZWIzY2RlM2NjZWJjNWRlY2JlNGZlZDlhNmZmZmZjY2U1ZDhiZGZkZGFlY2YyZjJmMlwiKSxueT1mZihcImIzZTJjZGZkY2RhY2NiZDVlOGY0Y2FlNGU2ZjVjOWZmZjJhZWYxZTJjY2NjY2NjY1wiKSxleT1mZihcImU0MWExYzM3N2ViODRkYWY0YTk4NGVhM2ZmN2YwMGZmZmYzM2E2NTYyOGY3ODFiZjk5OTk5OVwiKSxyeT1mZihcIjY2YzJhNWZjOGQ2MjhkYTBjYmU3OGFjM2E2ZDg1NGZmZDkyZmU1YzQ5NGIzYjNiM1wiKSxpeT1mZihcIjhkZDNjN2ZmZmZiM2JlYmFkYWZiODA3MjgwYjFkM2ZkYjQ2MmIzZGU2OWZjY2RlNWQ5ZDlkOWJjODBiZGNjZWJjNWZmZWQ2ZlwiKSxveT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZDhiMzY1ZjVmNWY1NWFiNGFjXCIsXCJhNjYxMWFkZmMyN2Q4MGNkYzEwMTg1NzFcIixcImE2NjExYWRmYzI3ZGY1ZjVmNTgwY2RjMTAxODU3MVwiLFwiOGM1MTBhZDhiMzY1ZjZlOGMzYzdlYWU1NWFiNGFjMDE2NjVlXCIsXCI4YzUxMGFkOGIzNjVmNmU4YzNmNWY1ZjVjN2VhZTU1YWI0YWMwMTY2NWVcIixcIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZVwiLFwiOGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzZjVmNWY1YzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlXCIsXCI1NDMwMDU4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUwMDNjMzBcIixcIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMFwiKS5tYXAoZmYpLGF5PWNmKG95KSx1eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiYWY4ZGMzZjdmN2Y3N2ZiZjdiXCIsXCI3YjMyOTRjMmE1Y2ZhNmRiYTAwMDg4MzdcIixcIjdiMzI5NGMyYTVjZmY3ZjdmN2E2ZGJhMDAwODgzN1wiLFwiNzYyYTgzYWY4ZGMzZTdkNGU4ZDlmMGQzN2ZiZjdiMWI3ODM3XCIsXCI3NjJhODNhZjhkYzNlN2Q0ZThmN2Y3ZjdkOWYwZDM3ZmJmN2IxYjc4MzdcIixcIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzN1wiLFwiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZjdmN2Y3ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3XCIsXCI0MDAwNGI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzcwMDQ0MWJcIixcIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYlwiKS5tYXAoZmYpLGZ5PWNmKHV5KSxjeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTlhM2M5ZjdmN2Y3YTFkNzZhXCIsXCJkMDFjOGJmMWI2ZGFiOGUxODY0ZGFjMjZcIixcImQwMWM4YmYxYjZkYWY3ZjdmN2I4ZTE4NjRkYWMyNlwiLFwiYzUxYjdkZTlhM2M5ZmRlMGVmZTZmNWQwYTFkNzZhNGQ5MjIxXCIsXCJjNTFiN2RlOWEzYzlmZGUwZWZmN2Y3ZjdlNmY1ZDBhMWQ3NmE0ZDkyMjFcIixcImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMVwiLFwiYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZjdmN2Y3ZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxXCIsXCI4ZTAxNTJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjEyNzY0MTlcIixcIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOVwiKS5tYXAoZmYpLHN5PWNmKGN5KSxseT1uZXcgQXJyYXkoMykuY29uY2F0KFwiOTk4ZWMzZjdmN2Y3ZjFhMzQwXCIsXCI1ZTNjOTliMmFiZDJmZGI4NjNlNjYxMDFcIixcIjVlM2M5OWIyYWJkMmY3ZjdmN2ZkYjg2M2U2NjEwMVwiLFwiNTQyNzg4OTk4ZWMzZDhkYWViZmVlMGI2ZjFhMzQwYjM1ODA2XCIsXCI1NDI3ODg5OThlYzNkOGRhZWJmN2Y3ZjdmZWUwYjZmMWEzNDBiMzU4MDZcIixcIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNlwiLFwiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZjdmN2Y3ZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2XCIsXCIyZDAwNGI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDY3ZjNiMDhcIixcIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOFwiKS5tYXAoZmYpLGh5PWNmKGx5KSxkeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWY4YTYyZjdmN2Y3NjdhOWNmXCIsXCJjYTAwMjBmNGE1ODI5MmM1ZGUwNTcxYjBcIixcImNhMDAyMGY0YTU4MmY3ZjdmNzkyYzVkZTA1NzFiMFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZDFlNWYwNjdhOWNmMjE2NmFjXCIsXCJiMjE4MmJlZjhhNjJmZGRiYzdmN2Y3ZjdkMWU1ZjA2N2E5Y2YyMTY2YWNcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhY1wiLFwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZjdmN2Y3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWMwNTMwNjFcIixcIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MVwiKS5tYXAoZmYpLHB5PWNmKGR5KSx2eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWY4YTYyZmZmZmZmOTk5OTk5XCIsXCJjYTAwMjBmNGE1ODJiYWJhYmE0MDQwNDBcIixcImNhMDAyMGY0YTU4MmZmZmZmZmJhYmFiYTQwNDA0MFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZTBlMGUwOTk5OTk5NGQ0ZDRkXCIsXCJiMjE4MmJlZjhhNjJmZGRiYzdmZmZmZmZlMGUwZTA5OTk5OTk0ZDRkNGRcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZFwiLFwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZmZmZmZmZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGQxYTFhMWFcIixcIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYVwiKS5tYXAoZmYpLGd5PWNmKHZ5KSx5eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTFiZmRiXCIsXCJkNzE5MWNmZGFlNjFhYmQ5ZTkyYzdiYjZcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZDllOTJjN2JiNlwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDkwZTBmM2Y4OTFiZmRiNDU3NWI0XCIsXCJkNzMwMjdmYzhkNTlmZWUwOTBmZmZmYmZlMGYzZjg5MWJmZGI0NTc1YjRcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNFwiLFwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZmZmZmJmZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0XCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQzMTM2OTVcIixcImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NVwiKS5tYXAoZmYpLF95PWNmKHl5KSxieT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTFjZjYwXCIsXCJkNzE5MWNmZGFlNjFhNmQ5NmExYTk2NDFcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmE2ZDk2YTFhOTY0MVwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDhiZDllZjhiOTFjZjYwMWE5ODUwXCIsXCJkNzMwMjdmYzhkNTlmZWUwOGJmZmZmYmZkOWVmOGI5MWNmNjAxYTk4NTBcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MFwiLFwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwXCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTAwMDY4MzdcIixcImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzN1wiKS5tYXAoZmYpLG15PWNmKGJ5KSx4eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTlkNTk0XCIsXCJkNzE5MWNmZGFlNjFhYmRkYTQyYjgzYmFcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZGRhNDJiODNiYVwiLFwiZDUzZTRmZmM4ZDU5ZmVlMDhiZTZmNTk4OTlkNTk0MzI4OGJkXCIsXCJkNTNlNGZmYzhkNTlmZWUwOGJmZmZmYmZlNmY1OTg5OWQ1OTQzMjg4YmRcIixcImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZFwiLFwiZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkXCIsXCI5ZTAxNDJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmQ1ZTRmYTJcIixcIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMlwiKS5tYXAoZmYpLHd5PWNmKHh5KSxNeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTVmNWY5OTlkOGM5MmNhMjVmXCIsXCJlZGY4ZmJiMmUyZTI2NmMyYTQyMzhiNDVcIixcImVkZjhmYmIyZTJlMjY2YzJhNDJjYTI1ZjAwNmQyY1wiLFwiZWRmOGZiY2NlY2U2OTlkOGM5NjZjMmE0MmNhMjVmMDA2ZDJjXCIsXCJlZGY4ZmJjY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDU4MjRcIixcImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNFwiLFwiZjdmY2ZkZTVmNWY5Y2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA2ZDJjMDA0NDFiXCIpLm1hcChmZiksQXk9Y2YoTXkpLFR5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlMGVjZjQ5ZWJjZGE4ODU2YTdcIixcImVkZjhmYmIzY2RlMzhjOTZjNjg4NDE5ZFwiLFwiZWRmOGZiYjNjZGUzOGM5NmM2ODg1NmE3ODEwZjdjXCIsXCJlZGY4ZmJiZmQzZTY5ZWJjZGE4Yzk2YzY4ODU2YTc4MTBmN2NcIixcImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YlwiLFwiZjdmY2ZkZTBlY2Y0YmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkNmUwMTZiXCIsXCJmN2ZjZmRlMGVjZjRiZmQzZTY5ZWJjZGE4Yzk2YzY4YzZiYjE4ODQxOWQ4MTBmN2M0ZDAwNGJcIikubWFwKGZmKSxOeT1jZihUeSksU3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImUwZjNkYmE4ZGRiNTQzYTJjYVwiLFwiZjBmOWU4YmFlNGJjN2JjY2M0MmI4Y2JlXCIsXCJmMGY5ZThiYWU0YmM3YmNjYzQ0M2EyY2EwODY4YWNcIixcImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDQzYTJjYTA4NjhhY1wiLFwiZjBmOWU4Y2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllXCIsXCJmN2ZjZjBlMGYzZGJjY2ViYzVhOGRkYjU3YmNjYzQ0ZWIzZDMyYjhjYmUwODU4OWVcIixcImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NjhhYzA4NDA4MVwiKS5tYXAoZmYpLEV5PWNmKFN5KSxreT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmVlOGM4ZmRiYjg0ZTM0YTMzXCIsXCJmZWYwZDlmZGNjOGFmYzhkNTlkNzMwMWZcIixcImZlZjBkOWZkY2M4YWZjOGQ1OWUzNGEzM2IzMDAwMFwiLFwiZmVmMGQ5ZmRkNDllZmRiYjg0ZmM4ZDU5ZTM0YTMzYjMwMDAwXCIsXCJmZWYwZDlmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWY5OTAwMDBcIixcImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMFwiLFwiZmZmN2VjZmVlOGM4ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmYjMwMDAwN2YwMDAwXCIpLm1hcChmZiksQ3k9Y2Yoa3kpLFB5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlY2UyZjBhNmJkZGIxYzkwOTlcIixcImY2ZWZmN2JkYzllMTY3YTljZjAyODE4YVwiLFwiZjZlZmY3YmRjOWUxNjdhOWNmMWM5MDk5MDE2YzU5XCIsXCJmNmVmZjdkMGQxZTZhNmJkZGI2N2E5Y2YxYzkwOTkwMTZjNTlcIixcImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MFwiLFwiZmZmN2ZiZWNlMmYwZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2NDUwXCIsXCJmZmY3ZmJlY2UyZjBkMGQxZTZhNmJkZGI2N2E5Y2YzNjkwYzAwMjgxOGEwMTZjNTkwMTQ2MzZcIikubWFwKGZmKSx6eT1jZihQeSksUnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVjZTdmMmE2YmRkYjJiOGNiZVwiLFwiZjFlZWY2YmRjOWUxNzRhOWNmMDU3MGIwXCIsXCJmMWVlZjZiZGM5ZTE3NGE5Y2YyYjhjYmUwNDVhOGRcIixcImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjJiOGNiZTA0NWE4ZFwiLFwiZjFlZWY2ZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiXCIsXCJmZmY3ZmJlY2U3ZjJkMGQxZTZhNmJkZGI3NGE5Y2YzNjkwYzAwNTcwYjAwMzRlN2JcIixcImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDA0NWE4ZDAyMzg1OFwiKS5tYXAoZmYpLEx5PWNmKFJ5KSxEeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTdlMWVmYzk5NGM3ZGQxYzc3XCIsXCJmMWVlZjZkN2I1ZDhkZjY1YjBjZTEyNTZcIixcImYxZWVmNmQ3YjVkOGRmNjViMGRkMWM3Nzk4MDA0M1wiLFwiZjFlZWY2ZDRiOWRhYzk5NGM3ZGY2NWIwZGQxYzc3OTgwMDQzXCIsXCJmMWVlZjZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5MTAwM2ZcIixcImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZlwiLFwiZjdmNGY5ZTdlMWVmZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTgwMDQzNjcwMDFmXCIpLm1hcChmZiksVXk9Y2YoRHkpLHF5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZGUwZGRmYTlmYjVjNTFiOGFcIixcImZlZWJlMmZiYjRiOWY3NjhhMWFlMDE3ZVwiLFwiZmVlYmUyZmJiNGI5Zjc2OGExYzUxYjhhN2EwMTc3XCIsXCJmZWViZTJmY2M1YzBmYTlmYjVmNzY4YTFjNTFiOGE3YTAxNzdcIixcImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3N1wiLFwiZmZmN2YzZmRlMGRkZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3XCIsXCJmZmY3ZjNmZGUwZGRmY2M1YzBmYTlmYjVmNzY4YTFkZDM0OTdhZTAxN2U3YTAxNzc0OTAwNmFcIikubWFwKGZmKSxPeT1jZihxeSksWXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVkZjhiMTdmY2RiYjJjN2ZiOFwiLFwiZmZmZmNjYTFkYWI0NDFiNmM0MjI1ZWE4XCIsXCJmZmZmY2NhMWRhYjQ0MWI2YzQyYzdmYjgyNTM0OTRcIixcImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDJjN2ZiODI1MzQ5NFwiLFwiZmZmZmNjYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0XCIsXCJmZmZmZDllZGY4YjFjN2U5YjQ3ZmNkYmI0MWI2YzQxZDkxYzAyMjVlYTgwYzJjODRcIixcImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODI1MzQ5NDA4MWQ1OFwiKS5tYXAoZmYpLEJ5PWNmKFl5KSxGeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZjdmY2I5YWRkZDhlMzFhMzU0XCIsXCJmZmZmY2NjMmU2OTk3OGM2NzkyMzg0NDNcIixcImZmZmZjY2MyZTY5OTc4YzY3OTMxYTM1NDAwNjgzN1wiLFwiZmZmZmNjZDlmMGEzYWRkZDhlNzhjNjc5MzFhMzU0MDA2ODM3XCIsXCJmZmZmY2NkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDVhMzJcIixcImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMlwiLFwiZmZmZmU1ZjdmY2I5ZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA2ODM3MDA0NTI5XCIpLm1hcChmZiksSXk9Y2YoRnkpLGp5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZmY3YmNmZWM0NGZkOTVmMGVcIixcImZmZmZkNGZlZDk4ZWZlOTkyOWNjNGMwMlwiLFwiZmZmZmQ0ZmVkOThlZmU5OTI5ZDk1ZjBlOTkzNDA0XCIsXCJmZmZmZDRmZWUzOTFmZWM0NGZmZTk5MjlkOTVmMGU5OTM0MDRcIixcImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNFwiLFwiZmZmZmU1ZmZmN2JjZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOGMyZDA0XCIsXCJmZmZmZTVmZmY3YmNmZWUzOTFmZWM0NGZmZTk5MjllYzcwMTRjYzRjMDI5OTM0MDQ2NjI1MDZcIikubWFwKGZmKSxIeT1jZihqeSksWHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZmZWRhMGZlYjI0Y2YwM2IyMFwiLFwiZmZmZmIyZmVjYzVjZmQ4ZDNjZTMxYTFjXCIsXCJmZmZmYjJmZWNjNWNmZDhkM2NmMDNiMjBiZDAwMjZcIixcImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2YwM2IyMGJkMDAyNlwiLFwiZmZmZmIyZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2XCIsXCJmZmZmY2NmZmVkYTBmZWQ5NzZmZWIyNGNmZDhkM2NmYzRlMmFlMzFhMWNiMTAwMjZcIixcImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2JkMDAyNjgwMDAyNlwiKS5tYXAoZmYpLEd5PWNmKFh5KSxWeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZGVlYmY3OWVjYWUxMzE4MmJkXCIsXCJlZmYzZmZiZGQ3ZTc2YmFlZDYyMTcxYjVcIixcImVmZjNmZmJkZDdlNzZiYWVkNjMxODJiZDA4NTE5Y1wiLFwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2MzE4MmJkMDg1MTljXCIsXCJlZmYzZmZjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODQ1OTRcIixcImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NFwiLFwiZjdmYmZmZGVlYmY3YzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg1MTljMDgzMDZiXCIpLm1hcChmZiksJHk9Y2YoVnkpLFd5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlNWY1ZTBhMWQ5OWIzMWEzNTRcIixcImVkZjhlOWJhZTRiMzc0YzQ3NjIzOGI0NVwiLFwiZWRmOGU5YmFlNGIzNzRjNDc2MzFhMzU0MDA2ZDJjXCIsXCJlZGY4ZTljN2U5YzBhMWQ5OWI3NGM0NzYzMWEzNTQwMDZkMmNcIixcImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMlwiLFwiZjdmY2Y1ZTVmNWUwYzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA1YTMyXCIsXCJmN2ZjZjVlNWY1ZTBjN2U5YzBhMWQ5OWI3NGM0NzY0MWFiNWQyMzhiNDUwMDZkMmMwMDQ0MWJcIikubWFwKGZmKSxaeT1jZihXeSksUXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImYwZjBmMGJkYmRiZDYzNjM2M1wiLFwiZjdmN2Y3Y2NjY2NjOTY5Njk2NTI1MjUyXCIsXCJmN2Y3ZjdjY2NjY2M5Njk2OTY2MzYzNjMyNTI1MjVcIixcImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjYzNjM2MzI1MjUyNVwiLFwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1XCIsXCJmZmZmZmZmMGYwZjBkOWQ5ZDliZGJkYmQ5Njk2OTY3MzczNzM1MjUyNTIyNTI1MjVcIixcImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNTAwMDAwMFwiKS5tYXAoZmYpLEp5PWNmKFF5KSxLeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWZlZGY1YmNiZGRjNzU2YmIxXCIsXCJmMmYwZjdjYmM5ZTI5ZTlhYzg2YTUxYTNcIixcImYyZjBmN2NiYzllMjllOWFjODc1NmJiMTU0Mjc4ZlwiLFwiZjJmMGY3ZGFkYWViYmNiZGRjOWU5YWM4NzU2YmIxNTQyNzhmXCIsXCJmMmYwZjdkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM0YTE0ODZcIixcImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NlwiLFwiZmNmYmZkZWZlZGY1ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNTQyNzhmM2YwMDdkXCIpLm1hcChmZiksdF89Y2YoS3kpLG5fPW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZWUwZDJmYzkyNzJkZTJkMjZcIixcImZlZTVkOWZjYWU5MWZiNmE0YWNiMTgxZFwiLFwiZmVlNWQ5ZmNhZTkxZmI2YTRhZGUyZDI2YTUwZjE1XCIsXCJmZWU1ZDlmY2JiYTFmYzkyNzJmYjZhNGFkZTJkMjZhNTBmMTVcIixcImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZFwiLFwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkOTkwMDBkXCIsXCJmZmY1ZjBmZWUwZDJmY2JiYTFmYzkyNzJmYjZhNGFlZjNiMmNjYjE4MWRhNTBmMTU2NzAwMGRcIikubWFwKGZmKSxlXz1jZihuXykscl89bmV3IEFycmF5KDMpLmNvbmNhdChcImZlZTZjZWZkYWU2YmU2NTUwZFwiLFwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZDk0NzAxXCIsXCJmZWVkZGVmZGJlODVmZDhkM2NlNjU1MGRhNjM2MDNcIixcImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2U2NTUwZGE2MzYwM1wiLFwiZmVlZGRlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0XCIsXCJmZmY1ZWJmZWU2Y2VmZGQwYTJmZGFlNmJmZDhkM2NmMTY5MTNkOTQ4MDE4YzJkMDRcIixcImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMWE2MzYwMzdmMjcwNFwiKS5tYXAoZmYpLGlfPWNmKHJfKSxvXz14bChadCgzMDAsLjUsMCksWnQoLTI0MCwuNSwxKSksYV89eGwoWnQoLTEwMCwuNzUsLjM1KSxadCg4MCwxLjUsLjgpKSx1Xz14bChadCgyNjAsLjc1LC4zNSksWnQoODAsMS41LC44KSksZl89WnQoKSxjXz1SdCgpLHNfPU1hdGguUEkvMyxsXz0yKk1hdGguUEkvMyxoXz1zZihmZihcIjQ0MDE1NDQ0MDI1NjQ1MDQ1NzQ1MDU1OTQ2MDc1YTQ2MDg1YzQ2MGE1ZDQ2MGI1ZTQ3MGQ2MDQ3MGU2MTQ3MTA2MzQ3MTE2NDQ3MTM2NTQ4MTQ2NzQ4MTY2ODQ4MTc2OTQ4MTg2YTQ4MWE2YzQ4MWI2ZDQ4MWM2ZTQ4MWQ2ZjQ4MWY3MDQ4MjA3MTQ4MjE3MzQ4MjM3NDQ4MjQ3NTQ4MjU3NjQ4MjY3NzQ4Mjg3ODQ4Mjk3OTQ3MmE3YTQ3MmM3YTQ3MmQ3YjQ3MmU3YzQ3MmY3ZDQ2MzA3ZTQ2MzI3ZTQ2MzM3ZjQ2MzQ4MDQ1MzU4MTQ1Mzc4MTQ1Mzg4MjQ0Mzk4MzQ0M2E4MzQ0M2I4NDQzM2Q4NDQzM2U4NTQyM2Y4NTQyNDA4NjQyNDE4NjQxNDI4NzQxNDQ4NzQwNDU4ODQwNDY4ODNmNDc4ODNmNDg4OTNlNDk4OTNlNGE4OTNlNGM4YTNkNGQ4YTNkNGU4YTNjNGY4YTNjNTA4YjNiNTE4YjNiNTI4YjNhNTM4YjNhNTQ4YzM5NTU4YzM5NTY4YzM4NTg4YzM4NTk4YzM3NWE4YzM3NWI4ZDM2NWM4ZDM2NWQ4ZDM1NWU4ZDM1NWY4ZDM0NjA4ZDM0NjE4ZDMzNjI4ZDMzNjM4ZDMyNjQ4ZTMyNjU4ZTMxNjY4ZTMxNjc4ZTMxNjg4ZTMwNjk4ZTMwNmE4ZTJmNmI4ZTJmNmM4ZTJlNmQ4ZTJlNmU4ZTJlNmY4ZTJkNzA4ZTJkNzE4ZTJjNzE4ZTJjNzI4ZTJjNzM4ZTJiNzQ4ZTJiNzU4ZTJhNzY4ZTJhNzc4ZTJhNzg4ZTI5Nzk4ZTI5N2E4ZTI5N2I4ZTI4N2M4ZTI4N2Q4ZTI3N2U4ZTI3N2Y4ZTI3ODA4ZTI2ODE4ZTI2ODI4ZTI2ODI4ZTI1ODM4ZTI1ODQ4ZTI1ODU4ZTI0ODY4ZTI0ODc4ZTIzODg4ZTIzODk4ZTIzOGE4ZDIyOGI4ZDIyOGM4ZDIyOGQ4ZDIxOGU4ZDIxOGY4ZDIxOTA4ZDIxOTE4YzIwOTI4YzIwOTI4YzIwOTM4YzFmOTQ4YzFmOTU4YjFmOTY4YjFmOTc4YjFmOTg4YjFmOTk4YTFmOWE4YTFlOWI4YTFlOWM4OTFlOWQ4OTFmOWU4OTFmOWY4ODFmYTA4ODFmYTE4ODFmYTE4NzFmYTI4NzIwYTM4NjIwYTQ4NjIxYTU4NTIxYTY4NTIyYTc4NTIyYTg4NDIzYTk4MzI0YWE4MzI1YWI4MjI1YWM4MjI2YWQ4MTI3YWQ4MTI4YWU4MDI5YWY3ZjJhYjA3ZjJjYjE3ZTJkYjI3ZDJlYjM3YzJmYjQ3YzMxYjU3YjMyYjY3YTM0YjY3OTM1Yjc3OTM3Yjg3ODM4Yjk3NzNhYmE3NjNiYmI3NTNkYmM3NDNmYmM3MzQwYmQ3MjQyYmU3MTQ0YmY3MDQ2YzA2ZjQ4YzE2ZTRhYzE2ZDRjYzI2YzRlYzM2YjUwYzQ2YTUyYzU2OTU0YzU2ODU2YzY2NzU4Yzc2NTVhYzg2NDVjYzg2MzVlYzk2MjYwY2E2MDYzY2I1ZjY1Y2I1ZTY3Y2M1YzY5Y2Q1YjZjY2Q1YTZlY2U1ODcwY2Y1NzczZDA1Njc1ZDA1NDc3ZDE1MzdhZDE1MTdjZDI1MDdmZDM0ZTgxZDM0ZDg0ZDQ0Yjg2ZDU0OTg5ZDU0ODhiZDY0NjhlZDY0NTkwZDc0MzkzZDc0MTk1ZDg0MDk4ZDgzZTliZDkzYzlkZDkzYmEwZGEzOWEyZGEzN2E1ZGIzNmE4ZGIzNGFhZGMzMmFkZGMzMGIwZGQyZmIyZGQyZGI1ZGUyYmI4ZGUyOWJhZGUyOGJkZGYyNmMwZGYyNWMyZGYyM2M1ZTAyMWM4ZTAyMGNhZTExZmNkZTExZGQwZTExY2QyZTIxYmQ1ZTIxYWQ4ZTIxOWRhZTMxOWRkZTMxOGRmZTMxOGUyZTQxOGU1ZTQxOWU3ZTQxOWVhZTUxYWVjZTUxYmVmZTUxY2YxZTUxZGY0ZTYxZWY2ZTYyMGY4ZTYyMWZiZTcyM2ZkZTcyNVwiKSksZF89c2YoZmYoXCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMDkwMjAyMGIwMjAyMGQwMzAzMGYwMzAzMTIwNDA0MTQwNTA0MTYwNjA1MTgwNjA1MWEwNzA2MWMwODA3MWUwOTA3MjAwYTA4MjIwYjA5MjQwYzA5MjYwZDBhMjkwZTBiMmIxMDBiMmQxMTBjMmYxMjBkMzExMzBkMzQxNDBlMzYxNTBlMzgxNjBmM2IxODBmM2QxOTEwM2YxYTEwNDIxYzEwNDQxZDExNDcxZTExNDkyMDExNGIyMTExNGUyMjExNTAyNDEyNTMyNTEyNTUyNzEyNTgyOTExNWEyYTExNWMyYzExNWYyZDExNjEyZjExNjMzMTExNjUzMzEwNjczNDEwNjkzNjEwNmIzODEwNmMzOTBmNmUzYjBmNzAzZDBmNzEzZjBmNzI0MDBmNzQ0MjBmNzU0NDBmNzY0NTEwNzc0NzEwNzg0OTEwNzg0YTEwNzk0YzExN2E0ZTExN2I0ZjEyN2I1MTEyN2M1MjEzN2M1NDEzN2Q1NjE0N2Q1NzE1N2U1OTE1N2U1YTE2N2U1YzE2N2Y1ZDE3N2Y1ZjE4N2Y2MDE4ODA2MjE5ODA2NDFhODA2NTFhODA2NzFiODA2ODFjODE2YTFjODE2YjFkODE2ZDFkODE2ZTFlODE3MDFmODE3MjFmODE3MzIwODE3NTIxODE3NjIxODE3ODIyODE3OTIyODI3YjIzODI3YzIzODI3ZTI0ODI4MDI1ODI4MTI1ODE4MzI2ODE4NDI2ODE4NjI3ODE4ODI3ODE4OTI4ODE4YjI5ODE4YzI5ODE4ZTJhODE5MDJhODE5MTJiODE5MzJiODA5NDJjODA5NjJjODA5ODJkODA5OTJkODA5YjJlN2Y5YzJlN2Y5ZTJmN2ZhMDJmN2ZhMTMwN2VhMzMwN2VhNTMxN2VhNjMxN2RhODMyN2RhYTMzN2RhYjMzN2NhZDM0N2NhZTM0N2JiMDM1N2JiMjM1N2JiMzM2N2FiNTM2N2FiNzM3NzliODM3NzliYTM4NzhiYzM5NzhiZDM5NzdiZjNhNzdjMDNhNzZjMjNiNzVjNDNjNzVjNTNjNzRjNzNkNzNjODNlNzNjYTNlNzJjYzNmNzFjZDQwNzFjZjQwNzBkMDQxNmZkMjQyNmZkMzQzNmVkNTQ0NmRkNjQ1NmNkODQ1NmNkOTQ2NmJkYjQ3NmFkYzQ4NjlkZTQ5NjhkZjRhNjhlMDRjNjdlMjRkNjZlMzRlNjVlNDRmNjRlNTUwNjRlNzUyNjNlODUzNjJlOTU0NjJlYTU2NjFlYjU3NjBlYzU4NjBlZDVhNWZlZTViNWVlZjVkNWVmMDVmNWVmMTYwNWRmMjYyNWRmMjY0NWNmMzY1NWNmNDY3NWNmNDY5NWNmNTZiNWNmNjZjNWNmNjZlNWNmNzcwNWNmNzcyNWNmODc0NWNmODc2NWNmOTc4NWRmOTc5NWRmOTdiNWRmYTdkNWVmYTdmNWVmYTgxNWZmYjgzNWZmYjg1NjBmYjg3NjFmYzg5NjFmYzhhNjJmYzhjNjNmYzhlNjRmYzkwNjVmZDkyNjZmZDk0NjdmZDk2NjhmZDk4NjlmZDlhNmFmZDliNmJmZTlkNmNmZTlmNmRmZWExNmVmZWEzNmZmZWE1NzFmZWE3NzJmZWE5NzNmZWFhNzRmZWFjNzZmZWFlNzdmZWIwNzhmZWIyN2FmZWI0N2JmZWI2N2NmZWI3N2VmZWI5N2ZmZWJiODFmZWJkODJmZWJmODRmZWMxODVmZWMyODdmZWM0ODhmZWM2OGFmZWM4OGNmZWNhOGRmZWNjOGZmZWNkOTBmZWNmOTJmZWQxOTRmZWQzOTVmZWQ1OTdmZWQ3OTlmZWQ4OWFmZGRhOWNmZGRjOWVmZGRlYTBmZGUwYTFmZGUyYTNmZGUzYTVmZGU1YTdmZGU3YTlmZGU5YWFmZGViYWNmY2VjYWVmY2VlYjBmY2YwYjJmY2YyYjRmY2Y0YjZmY2Y2YjhmY2Y3YjlmY2Y5YmJmY2ZiYmRmY2ZkYmZcIikpLHBfPXNmKGZmKFwiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTBhMDIwMjBjMDIwMjBlMDMwMjEwMDQwMzEyMDQwMzE0MDUwNDE3MDYwNDE5MDcwNTFiMDgwNTFkMDkwNjFmMGEwNzIyMGIwNzI0MGMwODI2MGQwODI5MGUwOTJiMTAwOTJkMTEwYTMwMTIwYTMyMTQwYjM0MTUwYjM3MTYwYjM5MTgwYzNjMTkwYzNlMWIwYzQxMWMwYzQzMWUwYzQ1MWYwYzQ4MjEwYzRhMjMwYzRjMjQwYzRmMjYwYzUxMjgwYjUzMjkwYjU1MmIwYjU3MmQwYjU5MmYwYTViMzEwYTVjMzIwYTVlMzQwYTVmMzYwOTYxMzgwOTYyMzkwOTYzM2IwOTY0M2QwOTY1M2UwOTY2NDAwYTY3NDIwYTY4NDQwYTY4NDUwYTY5NDcwYjZhNDkwYjZhNGEwYzZiNGMwYzZiNGQwZDZjNGYwZDZjNTEwZTZjNTIwZTZkNTQwZjZkNTUwZjZkNTcxMDZlNTkxMDZlNWExMTZlNWMxMjZlNWQxMjZlNWYxMzZlNjExMzZlNjIxNDZlNjQxNTZlNjUxNTZlNjcxNjZlNjkxNjZlNmExNzZlNmMxODZlNmQxODZlNmYxOTZlNzExOTZlNzIxYTZlNzQxYTZlNzUxYjZlNzcxYzZkNzgxYzZkN2ExZDZkN2MxZDZkN2QxZTZkN2YxZTZjODAxZjZjODIyMDZjODQyMDZiODUyMTZiODcyMTZiODgyMjZhOGEyMjZhOGMyMzY5OGQyMzY5OGYyNDY5OTAyNTY4OTIyNTY4OTMyNjY3OTUyNjY3OTcyNzY2OTgyNzY2OWEyODY1OWIyOTY0OWQyOTY0OWYyYTYzYTAyYTYzYTIyYjYyYTMyYzYxYTUyYzYwYTYyZDYwYTgyZTVmYTkyZTVlYWIyZjVlYWQzMDVkYWUzMDVjYjAzMTViYjEzMjVhYjMzMjVhYjQzMzU5YjYzNDU4YjczNTU3YjkzNTU2YmEzNjU1YmMzNzU0YmQzODUzYmYzOTUyYzAzYTUxYzEzYTUwYzMzYjRmYzQzYzRlYzYzZDRkYzczZTRjYzgzZjRiY2E0MDRhY2I0MTQ5Y2M0MjQ4Y2U0MzQ3Y2Y0NDQ2ZDA0NTQ1ZDI0NjQ0ZDM0NzQzZDQ0ODQyZDU0YTQxZDc0YjNmZDg0YzNlZDk0ZDNkZGE0ZTNjZGI1MDNiZGQ1MTNhZGU1MjM4ZGY1MzM3ZTA1NTM2ZTE1NjM1ZTI1NzM0ZTM1OTMzZTQ1YTMxZTU1YzMwZTY1ZDJmZTc1ZTJlZTg2MDJkZTk2MTJiZWE2MzJhZWI2NDI5ZWI2NjI4ZWM2NzI2ZWQ2OTI1ZWU2YTI0ZWY2YzIzZWY2ZTIxZjA2ZjIwZjE3MTFmZjE3MzFkZjI3NDFjZjM3NjFiZjM3ODE5ZjQ3OTE4ZjU3YjE3ZjU3ZDE1ZjY3ZTE0ZjY4MDEzZjc4MjEyZjc4NDEwZjg4NTBmZjg4NzBlZjg4OTBjZjk4YjBiZjk4YzBhZjk4ZTA5ZmE5MDA4ZmE5MjA3ZmE5NDA3ZmI5NjA2ZmI5NzA2ZmI5OTA2ZmI5YjA2ZmI5ZDA3ZmM5ZjA3ZmNhMTA4ZmNhMzA5ZmNhNTBhZmNhNjBjZmNhODBkZmNhYTBmZmNhYzExZmNhZTEyZmNiMDE0ZmNiMjE2ZmNiNDE4ZmJiNjFhZmJiODFkZmJiYTFmZmJiYzIxZmJiZTIzZmFjMDI2ZmFjMjI4ZmFjNDJhZmFjNjJkZjljNzJmZjljOTMyZjljYjM1ZjhjZDM3ZjhjZjNhZjdkMTNkZjdkMzQwZjZkNTQzZjZkNzQ2ZjVkOTQ5ZjVkYjRjZjRkZDRmZjRkZjUzZjRlMTU2ZjNlMzVhZjNlNTVkZjJlNjYxZjJlODY1ZjJlYTY5ZjFlYzZkZjFlZDcxZjFlZjc1ZjFmMTc5ZjJmMjdkZjJmNDgyZjNmNTg2ZjNmNjhhZjRmODhlZjVmOTkyZjZmYTk2ZjhmYjlhZjlmYzlkZmFmZGExZmNmZmE0XCIpKSx2Xz1zZihmZihcIjBkMDg4NzEwMDc4ODEzMDc4OTE2MDc4YTE5MDY4YzFiMDY4ZDFkMDY4ZTIwMDY4ZjIyMDY5MDI0MDY5MTI2MDU5MTI4MDU5MjJhMDU5MzJjMDU5NDJlMDU5NTJmMDU5NjMxMDU5NzMzMDU5NzM1MDQ5ODM3MDQ5OTM4MDQ5YTNhMDQ5YTNjMDQ5YjNlMDQ5YzNmMDQ5YzQxMDQ5ZDQzMDM5ZTQ0MDM5ZTQ2MDM5ZjQ4MDM5ZjQ5MDNhMDRiMDNhMTRjMDJhMTRlMDJhMjUwMDJhMjUxMDJhMzUzMDJhMzU1MDJhNDU2MDFhNDU4MDFhNDU5MDFhNTViMDFhNTVjMDFhNjVlMDFhNjYwMDFhNjYxMDBhNzYzMDBhNzY0MDBhNzY2MDBhNzY3MDBhODY5MDBhODZhMDBhODZjMDBhODZlMDBhODZmMDBhODcxMDBhODcyMDFhODc0MDFhODc1MDFhODc3MDFhODc4MDFhODdhMDJhODdiMDJhODdkMDNhODdlMDNhODgwMDRhODgxMDRhNzgzMDVhNzg0MDVhNzg2MDZhNjg3MDdhNjg4MDhhNjhhMDlhNThiMGFhNThkMGJhNThlMGNhNDhmMGRhNDkxMGVhMzkyMGZhMzk0MTBhMjk1MTFhMTk2MTNhMTk4MTRhMDk5MTU5ZjlhMTY5ZjljMTc5ZTlkMTg5ZDllMTk5ZGEwMWE5Y2ExMWI5YmEyMWQ5YWEzMWU5YWE1MWY5OWE2MjA5OGE3MjE5N2E4MjI5NmFhMjM5NWFiMjQ5NGFjMjY5NGFkMjc5M2FlMjg5MmIwMjk5MWIxMmE5MGIyMmI4ZmIzMmM4ZWI0MmU4ZGI1MmY4Y2I2MzA4YmI3MzE4YWI4MzI4OWJhMzM4OGJiMzQ4OGJjMzU4N2JkMzc4NmJlMzg4NWJmMzk4NGMwM2E4M2MxM2I4MmMyM2M4MWMzM2Q4MGM0M2U3ZmM1NDA3ZWM2NDE3ZGM3NDI3Y2M4NDM3YmM5NDQ3YWNhNDU3YWNiNDY3OWNjNDc3OGNjNDk3N2NkNGE3NmNlNGI3NWNmNGM3NGQwNGQ3M2QxNGU3MmQyNGY3MWQzNTE3MWQ0NTI3MGQ1NTM2ZmQ1NTQ2ZWQ2NTU2ZGQ3NTY2Y2Q4NTc2YmQ5NTg2YWRhNWE2YWRhNWI2OWRiNWM2OGRjNWQ2N2RkNWU2NmRlNWY2NWRlNjE2NGRmNjI2M2UwNjM2M2UxNjQ2MmUyNjU2MWUyNjY2MGUzNjg1ZmU0Njk1ZWU1NmE1ZGU1NmI1ZGU2NmM1Y2U3NmU1YmU3NmY1YWU4NzA1OWU5NzE1OGU5NzI1N2VhNzQ1N2ViNzU1NmViNzY1NWVjNzc1NGVkNzk1M2VkN2E1MmVlN2I1MWVmN2M1MWVmN2U1MGYwN2Y0ZmYwODA0ZWYxODE0ZGYxODM0Y2YyODQ0YmYzODU0YmYzODc0YWY0ODg0OWY0ODk0OGY1OGI0N2Y1OGM0NmY2OGQ0NWY2OGY0NGY3OTA0NGY3OTE0M2Y3OTM0MmY4OTQ0MWY4OTU0MGY5OTczZmY5OTgzZWY5OWEzZWZhOWIzZGZhOWMzY2ZhOWUzYmZiOWYzYWZiYTEzOWZiYTIzOGZjYTMzOGZjYTUzN2ZjYTYzNmZjYTgzNWZjYTkzNGZkYWIzM2ZkYWMzM2ZkYWUzMmZkYWYzMWZkYjEzMGZkYjIyZmZkYjQyZmZkYjUyZWZlYjcyZGZlYjgyY2ZlYmEyY2ZlYmIyYmZlYmQyYWZlYmUyYWZlYzAyOWZkYzIyOWZkYzMyOGZkYzUyN2ZkYzYyN2ZkYzgyN2ZkY2EyNmZkY2IyNmZjY2QyNWZjY2UyNWZjZDAyNWZjZDIyNWZiZDMyNGZiZDUyNGZiZDcyNGZhZDgyNGZhZGEyNGY5ZGMyNGY5ZGQyNWY4ZGYyNWY4ZTEyNWY3ZTIyNWY3ZTQyNWY2ZTYyNmY2ZTgyNmY1ZTkyNmY1ZWIyN2Y0ZWQyN2YzZWUyN2YzZjAyN2YyZjIyN2YxZjQyNmYxZjUyNWYwZjcyNGYwZjkyMVwiKSksZ189TWF0aC5hYnMseV89TWF0aC5hdGFuMixfXz1NYXRoLmNvcyxiXz1NYXRoLm1heCxtXz1NYXRoLm1pbix4Xz1NYXRoLnNpbix3Xz1NYXRoLnNxcnQsTV89MWUtMTIsQV89TWF0aC5QSSxUXz1BXy8yLE5fPTIqQV87YmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OnRoaXMuX2NvbnRleHQubGluZVRvKHQsbil9fX07dmFyIFNfPUVmKG1mKTtTZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFTdGFydCgpfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYUVuZCgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLl9jdXJ2ZS5wb2ludChuKk1hdGguc2luKHQpLG4qLU1hdGguY29zKHQpKX19O3ZhciBFXz1BcnJheS5wcm90b3R5cGUuc2xpY2Usa189e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi9BXyk7dC5tb3ZlVG8oZSwwKSx0LmFyYygwLDAsZSwwLE5fKX19LENfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4vNSkvMjt0Lm1vdmVUbygtMyplLC1lKSx0LmxpbmVUbygtZSwtZSksdC5saW5lVG8oLWUsLTMqZSksdC5saW5lVG8oZSwtMyplKSx0LmxpbmVUbyhlLC1lKSx0LmxpbmVUbygzKmUsLWUpLHQubGluZVRvKDMqZSxlKSx0LmxpbmVUbyhlLGUpLHQubGluZVRvKGUsMyplKSx0LmxpbmVUbygtZSwzKmUpLHQubGluZVRvKC1lLGUpLHQubGluZVRvKC0zKmUsZSksdC5jbG9zZVBhdGgoKX19LFBfPU1hdGguc3FydCgxLzMpLHpfPTIqUF8sUl89e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi96Xykscj1lKlBfO3QubW92ZVRvKDAsLWUpLHQubGluZVRvKHIsMCksdC5saW5lVG8oMCxlKSx0LmxpbmVUbygtciwwKSx0LmNsb3NlUGF0aCgpfX0sTF89TWF0aC5zaW4oQV8vMTApL01hdGguc2luKDcqQV8vMTApLERfPU1hdGguc2luKE5fLzEwKSpMXyxVXz0tTWF0aC5jb3MoTl8vMTApKkxfLHFfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KC44OTA4MTMwOTE1MjkyODUyKm4pLHI9RF8qZSxpPVVfKmU7dC5tb3ZlVG8oMCwtZSksdC5saW5lVG8ocixpKTtmb3IodmFyIG89MTtvPDU7KytvKXt2YXIgYT1OXypvLzUsdT1NYXRoLmNvcyhhKSxmPU1hdGguc2luKGEpO3QubGluZVRvKGYqZSwtdSplKSx0LmxpbmVUbyh1KnItZippLGYqcit1KmkpfXQuY2xvc2VQYXRoKCl9fSxPXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydChuKSxyPS1lLzI7dC5yZWN0KHIscixlLGUpfX0sWV89TWF0aC5zcXJ0KDMpLEJfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9LU1hdGguc3FydChuLygzKllfKSk7dC5tb3ZlVG8oMCwyKmUpLHQubGluZVRvKC1ZXyplLC1lKSx0LmxpbmVUbyhZXyplLC1lKSx0LmNsb3NlUGF0aCgpfX0sRl89TWF0aC5zcXJ0KDMpLzIsSV89MS9NYXRoLnNxcnQoMTIpLGpfPTMqKElfLzIrMSksSF89e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi9qXykscj1lLzIsaT1lKklfLG89cixhPWUqSV8rZSx1PS1vLGY9YTt0Lm1vdmVUbyhyLGkpLHQubGluZVRvKG8sYSksdC5saW5lVG8odSxmKSx0LmxpbmVUbygtLjUqci1GXyppLEZfKnIrLS41KmkpLHQubGluZVRvKC0uNSpvLUZfKmEsRl8qbystLjUqYSksdC5saW5lVG8oLS41KnUtRl8qZixGXyp1Ky0uNSpmKSx0LmxpbmVUbygtLjUqcitGXyppLC0uNSppLUZfKnIpLHQubGluZVRvKC0uNSpvK0ZfKmEsLS41KmEtRl8qbyksdC5saW5lVG8oLS41KnUrRl8qZiwtLjUqZi1GXyp1KSx0LmNsb3NlUGF0aCgpfX0sWF89W2tfLENfLFJfLE9fLHFfLEJfLEhfXTtGZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAzOkJmKHRoaXMsdGhpcy5feDEsdGhpcy5feTEpO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2NvbnRleHQubGluZVRvKCg1KnRoaXMuX3gwK3RoaXMuX3gxKS82LCg1KnRoaXMuX3kwK3RoaXMuX3kxKS82KTtkZWZhdWx0OkJmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPW59fSxJZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCl9fSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gyPXQsdGhpcy5feTI9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94Mz10LHRoaXMuX3kzPW47YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDQ9dCx0aGlzLl95ND1uLHRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsKHRoaXMuX3kwKzQqdGhpcy5feTErbikvNik7YnJlYWs7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0samYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7dmFyIGU9KHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNixyPSh0aGlzLl95MCs0KnRoaXMuX3kxK24pLzY7dGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhlLHIpOnRoaXMuX2NvbnRleHQubW92ZVRvKGUscik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0sSGYucHJvdG90eXBlPXtsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W10sdGhpcy5fYmFzaXMubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LG49dGhpcy5feSxlPXQubGVuZ3RoLTE7aWYoZT4wKWZvcih2YXIgcixpPXRbMF0sbz1uWzBdLGE9dFtlXS1pLHU9bltlXS1vLGY9LTE7KytmPD1lOylyPWYvZSx0aGlzLl9iYXNpcy5wb2ludCh0aGlzLl9iZXRhKnRbZl0rKDEtdGhpcy5fYmV0YSkqKGkrciphKSx0aGlzLl9iZXRhKm5bZl0rKDEtdGhpcy5fYmV0YSkqKG8rcip1KSk7dGhpcy5feD10aGlzLl95PW51bGwsdGhpcy5fYmFzaXMubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtuKX19O3ZhciBHXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIDE9PT1uP25ldyBGZih0KTpuZXcgSGYodCxuKX1yZXR1cm4gZS5iZXRhPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oLjg1KTtHZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6WGYodGhpcyx0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPXQsdGhpcy5feTE9bjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgVl89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgR2YodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7VmYucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PW4pO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9bjticmVhaztkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgJF89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgVmYodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7JGYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6WGYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBXXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyAkZih0LG4pfXJldHVybiBlLnRlbnNpb249ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSgwKTtaZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mil9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe2lmKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7dmFyIGU9dGhpcy5feDItdCxyPXRoaXMuX3kyLW47dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhlKmUrcipyLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFpfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgWmYodCxuKTpuZXcgR2YodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtRZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsbil7aWYodD0rdCxuPStuLHRoaXMuX3BvaW50KXt2YXIgZT10aGlzLl94Mi10LHI9dGhpcy5feTItbjt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KGUqZStyKnIsdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PW4pO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9bjticmVhaztkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFFfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgUWYodCxuKTpuZXcgVmYodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtKZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtpZih0PSt0LG49K24sdGhpcy5fcG9pbnQpe3ZhciBlPXRoaXMuX3gyLXQscj10aGlzLl95Mi1uO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3coZSplK3Iqcix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6V2YodGhpcyx0LG4pfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgSl89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuP25ldyBKZih0LG4pOm5ldyAkZih0LDApfXJldHVybiBlLmFscGhhPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oLjUpO0tmLnByb3RvdHlwZT17YXJlYVN0YXJ0OllmLGFyZWFFbmQ6WWYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxwb2ludDpmdW5jdGlvbih0LG4pe3Q9K3Qsbj0rbix0aGlzLl9wb2ludD90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOih0aGlzLl9wb2ludD0xLHRoaXMuX2NvbnRleHQubW92ZVRvKHQsbikpfX0saWMucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOnJjKHRoaXMsdGhpcy5fdDAsZWModGhpcyx0aGlzLl90MCkpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt2YXIgZT1OYU47aWYodD0rdCxuPStuLHQhPT10aGlzLl94MXx8biE9PXRoaXMuX3kxKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHJjKHRoaXMsZWModGhpcyxlPW5jKHRoaXMsdCxuKSksZSk7YnJlYWs7ZGVmYXVsdDpyYyh0aGlzLHRoaXMuX3QwLGU9bmModGhpcyx0LG4pKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPW4sdGhpcy5fdDA9ZX19fSwob2MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaWMucHJvdG90eXBlKSkucG9pbnQ9ZnVuY3Rpb24odCxuKXtpYy5wcm90b3R5cGUucG9pbnQuY2FsbCh0aGlzLG4sdCl9LGFjLnByb3RvdHlwZT17bW92ZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fY29udGV4dC5tb3ZlVG8obix0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0sbGluZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fY29udGV4dC5saW5lVG8obix0KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG4sdCxyLGUsbyxpKX19LHVjLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsbj10aGlzLl95LGU9dC5sZW5ndGg7aWYoZSlpZih0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRbMF0sblswXSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odFswXSxuWzBdKSwyPT09ZSl0aGlzLl9jb250ZXh0LmxpbmVUbyh0WzFdLG5bMV0pO2Vsc2UgZm9yKHZhciByPWZjKHQpLGk9ZmMobiksbz0wLGE9MTthPGU7KytvLCsrYSl0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oclswXVtvXSxpWzBdW29dLHJbMV1bb10saVsxXVtvXSx0W2FdLG5bYV0pOyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PWUpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lLHRoaXMuX3g9dGhpcy5feT1udWxsfSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtuKX19LGNjLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiYyPT09dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDppZih0aGlzLl90PD0wKXRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsbiksdGhpcy5fY29udGV4dC5saW5lVG8odCxuKTtlbHNle3ZhciBlPXRoaXMuX3gqKDEtdGhpcy5fdCkrdCp0aGlzLl90O3RoaXMuX2NvbnRleHQubGluZVRvKGUsdGhpcy5feSksdGhpcy5fY29udGV4dC5saW5lVG8oZSxuKX19dGhpcy5feD10LHRoaXMuX3k9bn19LF9jLnByb3RvdHlwZT17Y29uc3RydWN0b3I6X2MsaW5zZXJ0OmZ1bmN0aW9uKHQsbil7dmFyIGUscixpO2lmKHQpe2lmKG4uUD10LG4uTj10Lk4sdC5OJiYodC5OLlA9biksdC5OPW4sdC5SKXtmb3IodD10LlI7dC5MOyl0PXQuTDt0Lkw9bn1lbHNlIHQuUj1uO2U9dH1lbHNlIHRoaXMuXz8odD13Yyh0aGlzLl8pLG4uUD1udWxsLG4uTj10LHQuUD10Lkw9bixlPXQpOihuLlA9bi5OPW51bGwsdGhpcy5fPW4sZT1udWxsKTtmb3Iobi5MPW4uUj1udWxsLG4uVT1lLG4uQz0hMCx0PW47ZSYmZS5DOyllPT09KHI9ZS5VKS5MPyhpPXIuUikmJmkuQz8oZS5DPWkuQz0hMSxyLkM9ITAsdD1yKToodD09PWUuUiYmKG1jKHRoaXMsZSksZT0odD1lKS5VKSxlLkM9ITEsci5DPSEwLHhjKHRoaXMscikpOihpPXIuTCkmJmkuQz8oZS5DPWkuQz0hMSxyLkM9ITAsdD1yKToodD09PWUuTCYmKHhjKHRoaXMsZSksZT0odD1lKS5VKSxlLkM9ITEsci5DPSEwLG1jKHRoaXMscikpLGU9dC5VO3RoaXMuXy5DPSExfSxyZW1vdmU6ZnVuY3Rpb24odCl7dC5OJiYodC5OLlA9dC5QKSx0LlAmJih0LlAuTj10Lk4pLHQuTj10LlA9bnVsbDt2YXIgbixlLHIsaT10LlUsbz10LkwsYT10LlI7aWYoZT1vP2E/d2MoYSk6bzphLGk/aS5MPT09dD9pLkw9ZTppLlI9ZTp0aGlzLl89ZSxvJiZhPyhyPWUuQyxlLkM9dC5DLGUuTD1vLG8uVT1lLGUhPT1hPyhpPWUuVSxlLlU9dC5VLHQ9ZS5SLGkuTD10LGUuUj1hLGEuVT1lKTooZS5VPWksaT1lLHQ9ZS5SKSk6KHI9dC5DLHQ9ZSksdCYmKHQuVT1pKSwhcilpZih0JiZ0LkMpdC5DPSExO2Vsc2V7ZG97aWYodD09PXRoaXMuXylicmVhaztpZih0PT09aS5MKXtpZigobj1pLlIpLkMmJihuLkM9ITEsaS5DPSEwLG1jKHRoaXMsaSksbj1pLlIpLG4uTCYmbi5MLkN8fG4uUiYmbi5SLkMpe24uUiYmbi5SLkN8fChuLkwuQz0hMSxuLkM9ITAseGModGhpcyxuKSxuPWkuUiksbi5DPWkuQyxpLkM9bi5SLkM9ITEsbWModGhpcyxpKSx0PXRoaXMuXzticmVha319ZWxzZSBpZigobj1pLkwpLkMmJihuLkM9ITEsaS5DPSEwLHhjKHRoaXMsaSksbj1pLkwpLG4uTCYmbi5MLkN8fG4uUiYmbi5SLkMpe24uTCYmbi5MLkN8fChuLlIuQz0hMSxuLkM9ITAsbWModGhpcyxuKSxuPWkuTCksbi5DPWkuQyxpLkM9bi5MLkM9ITEseGModGhpcyxpKSx0PXRoaXMuXzticmVha31uLkM9ITAsdD1pLGk9aS5VfXdoaWxlKCF0LkMpO3QmJih0LkM9ITEpfX19O3ZhciBLXyx0YixuYixlYixyYixpYj1bXSxvYj1bXSxhYj0xZS02LHViPTFlLTEyO0JjLnByb3RvdHlwZT17Y29uc3RydWN0b3I6QmMscG9seWdvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLm1hcChmdW5jdGlvbihuKXt2YXIgZT1uLmhhbGZlZGdlcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGtjKG4sdFtlXSl9KTtyZXR1cm4gZS5kYXRhPW4uc2l0ZS5kYXRhLGV9KX0sdHJpYW5nbGVzOmZ1bmN0aW9uKCl7dmFyIHQ9W10sbj10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLmZvckVhY2goZnVuY3Rpb24oZSxyKXtpZihvPShpPWUuaGFsZmVkZ2VzKS5sZW5ndGgpZm9yKHZhciBpLG8sYSx1PWUuc2l0ZSxmPS0xLGM9bltpW28tMV1dLHM9Yy5sZWZ0PT09dT9jLnJpZ2h0OmMubGVmdDsrK2Y8bzspYT1zLHM9KGM9bltpW2ZdXSkubGVmdD09PXU/Yy5yaWdodDpjLmxlZnQsYSYmcyYmcjxhLmluZGV4JiZyPHMuaW5kZXgmJk9jKHUsYSxzKTwwJiZ0LnB1c2goW3UuZGF0YSxhLmRhdGEscy5kYXRhXSl9KSx0fSxsaW5rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZ2VzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5yaWdodH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm57c291cmNlOnQubGVmdC5kYXRhLHRhcmdldDp0LnJpZ2h0LmRhdGF9fSl9LGZpbmQ6ZnVuY3Rpb24odCxuLGUpe2Zvcih2YXIgcixpLG89dGhpcyxhPW8uX2ZvdW5kfHwwLHU9by5jZWxscy5sZW5ndGg7IShpPW8uY2VsbHNbYV0pOylpZigrK2E+PXUpcmV0dXJuIG51bGw7dmFyIGY9dC1pLnNpdGVbMF0sYz1uLWkuc2l0ZVsxXSxzPWYqZitjKmM7ZG97aT1vLmNlbGxzW3I9YV0sYT1udWxsLGkuaGFsZmVkZ2VzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHI9by5lZGdlc1tlXSx1PXIubGVmdDtpZih1IT09aS5zaXRlJiZ1fHwodT1yLnJpZ2h0KSl7dmFyIGY9dC11WzBdLGM9bi11WzFdLGw9ZipmK2MqYztsPHMmJihzPWwsYT11LmluZGV4KX19KX13aGlsZShudWxsIT09YSk7cmV0dXJuIG8uX2ZvdW5kPXIsbnVsbD09ZXx8czw9ZSplP2kuc2l0ZTpudWxsfX0sSWMucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpJYyxzY2FsZTpmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQ/dGhpczpuZXcgSWModGhpcy5rKnQsdGhpcy54LHRoaXMueSl9LHRyYW5zbGF0ZTpmdW5jdGlvbih0LG4pe3JldHVybiAwPT09dCYwPT09bj90aGlzOm5ldyBJYyh0aGlzLmssdGhpcy54K3RoaXMuayp0LHRoaXMueSt0aGlzLmsqbil9LGFwcGx5OmZ1bmN0aW9uKHQpe3JldHVyblt0WzBdKnRoaXMuayt0aGlzLngsdFsxXSp0aGlzLmsrdGhpcy55XX0sYXBwbHlYOmZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMuayt0aGlzLnh9LGFwcGx5WTpmdW5jdGlvbih0KXtyZXR1cm4gdCp0aGlzLmsrdGhpcy55fSxpbnZlcnQ6ZnVuY3Rpb24odCl7cmV0dXJuWyh0WzBdLXRoaXMueCkvdGhpcy5rLCh0WzFdLXRoaXMueSkvdGhpcy5rXX0saW52ZXJ0WDpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLngpL3RoaXMua30saW52ZXJ0WTpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLnkpL3RoaXMua30scmVzY2FsZVg6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weSgpLmRvbWFpbih0LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WCx0aGlzKS5tYXAodC5pbnZlcnQsdCkpfSxyZXNjYWxlWTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KCkuZG9tYWluKHQucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRZLHRoaXMpLm1hcCh0LmludmVydCx0KSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0cmFuc2xhdGUoXCIrdGhpcy54K1wiLFwiK3RoaXMueStcIikgc2NhbGUoXCIrdGhpcy5rK1wiKVwifX07dmFyIGZiPW5ldyBJYygxLDAsMCk7amMucHJvdG90eXBlPUljLnByb3RvdHlwZSx0LnZlcnNpb249XCI1LjUuMFwiLHQuYmlzZWN0PUtjLHQuYmlzZWN0UmlnaHQ9S2MsdC5iaXNlY3RMZWZ0PXRzLHQuYXNjZW5kaW5nPW4sdC5iaXNlY3Rvcj1lLHQuY3Jvc3M9ZnVuY3Rpb24odCxuLGUpe3ZhciBpLG8sYSx1LGY9dC5sZW5ndGgsYz1uLmxlbmd0aCxzPW5ldyBBcnJheShmKmMpO2ZvcihudWxsPT1lJiYoZT1yKSxpPWE9MDtpPGY7KytpKWZvcih1PXRbaV0sbz0wO288YzsrK28sKythKXNbYV09ZSh1LG5bb10pO3JldHVybiBzfSx0LmRlc2NlbmRpbmc9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbjx0Py0xOm4+dD8xOm4+PXQ/MDpOYU59LHQuZGV2aWF0aW9uPWEsdC5leHRlbnQ9dSx0Lmhpc3RvZ3JhbT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGksbyxhPXQubGVuZ3RoLHU9bmV3IEFycmF5KGEpO2ZvcihpPTA7aTxhOysraSl1W2ldPW4odFtpXSxpLHQpO3ZhciBmPWUodSksYz1mWzBdLGw9ZlsxXSxoPXIodSxjLGwpO0FycmF5LmlzQXJyYXkoaCl8fChoPWQoYyxsLGgpLGg9cyhNYXRoLmNlaWwoYy9oKSpoLE1hdGguZmxvb3IobC9oKSpoLGgpKTtmb3IodmFyIHA9aC5sZW5ndGg7aFswXTw9YzspaC5zaGlmdCgpLC0tcDtmb3IoO2hbcC0xXT5sOyloLnBvcCgpLC0tcDt2YXIgdixnPW5ldyBBcnJheShwKzEpO2ZvcihpPTA7aTw9cDsrK2kpKHY9Z1tpXT1bXSkueDA9aT4wP2hbaS0xXTpjLHYueDE9aTxwP2hbaV06bDtmb3IoaT0wO2k8YTsrK2kpYzw9KG89dVtpXSkmJm88PWwmJmdbS2MoaCxvLDAscCldLnB1c2godFtpXSk7cmV0dXJuIGd9dmFyIG49YyxlPXUscj1wO3JldHVybiB0LnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpmKGUpLHQpOm59LHQuZG9tYWluPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpmKFtuWzBdLG5bMV1dKSx0KTplfSx0LnRocmVzaG9sZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOkFycmF5LmlzQXJyYXkobik/Zihlcy5jYWxsKG4pKTpmKG4pLHQpOnJ9LHR9LHQudGhyZXNob2xkRnJlZWRtYW5EaWFjb25pcz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9cnMuY2FsbCh0LGkpLnNvcnQobiksTWF0aC5jZWlsKChyLWUpLygyKih2KHQsLjc1KS12KHQsLjI1KSkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdC50aHJlc2hvbGRTY290dD1mdW5jdGlvbih0LG4sZSl7cmV0dXJuIE1hdGguY2VpbCgoZS1uKS8oMy41KmEodCkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdC50aHJlc2hvbGRTdHVyZ2VzPXAsdC5tYXg9Zyx0Lm1lYW49ZnVuY3Rpb24odCxuKXt2YXIgZSxyPXQubGVuZ3RoLG89cixhPS0xLHU9MDtpZihudWxsPT1uKWZvcig7KythPHI7KWlzTmFOKGU9aSh0W2FdKSk/LS1vOnUrPWU7ZWxzZSBmb3IoOysrYTxyOylpc05hTihlPWkobih0W2FdLGEsdCkpKT8tLW86dSs9ZTtpZihvKXJldHVybiB1L299LHQubWVkaWFuPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbz10Lmxlbmd0aCxhPS0xLHU9W107aWYobnVsbD09ZSlmb3IoOysrYTxvOylpc05hTihyPWkodFthXSkpfHx1LnB1c2gocik7ZWxzZSBmb3IoOysrYTxvOylpc05hTihyPWkoZSh0W2FdLGEsdCkpKXx8dS5wdXNoKHIpO3JldHVybiB2KHUuc29ydChuKSwuNSl9LHQubWVyZ2U9eSx0Lm1pbj1fLHQucGFpcnM9ZnVuY3Rpb24odCxuKXtudWxsPT1uJiYobj1yKTtmb3IodmFyIGU9MCxpPXQubGVuZ3RoLTEsbz10WzBdLGE9bmV3IEFycmF5KGk8MD8wOmkpO2U8aTspYVtlXT1uKG8sbz10WysrZV0pO3JldHVybiBhfSx0LnBlcm11dGU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSk7ZS0tOylyW2VdPXRbbltlXV07cmV0dXJuIHJ9LHQucXVhbnRpbGU9dix0LnJhbmdlPXMsdC5zY2FuPWZ1bmN0aW9uKHQsZSl7aWYocj10Lmxlbmd0aCl7dmFyIHIsaSxvPTAsYT0wLHU9dFthXTtmb3IobnVsbD09ZSYmKGU9bik7KytvPHI7KShlKGk9dFtvXSx1KTwwfHwwIT09ZSh1LHUpKSYmKHU9aSxhPW8pO3JldHVybiAwPT09ZSh1LHUpP2E6dm9pZCAwfX0sdC5zaHVmZmxlPWZ1bmN0aW9uKHQsbixlKXtmb3IodmFyIHIsaSxvPShudWxsPT1lP3QubGVuZ3RoOmUpLShuPW51bGw9PW4/MDorbik7bzspaT1NYXRoLnJhbmRvbSgpKm8tLXwwLHI9dFtvK25dLHRbbytuXT10W2krbl0sdFtpK25dPXI7cmV0dXJuIHR9LHQuc3VtPWZ1bmN0aW9uKHQsbil7dmFyIGUscj10Lmxlbmd0aCxpPS0xLG89MDtpZihudWxsPT1uKWZvcig7KytpPHI7KShlPSt0W2ldKSYmKG8rPWUpO2Vsc2UgZm9yKDsrK2k8cjspKGU9K24odFtpXSxpLHQpKSYmKG8rPWUpO3JldHVybiBvfSx0LnRpY2tzPWwsdC50aWNrSW5jcmVtZW50PWgsdC50aWNrU3RlcD1kLHQudHJhbnNwb3NlPWIsdC52YXJpYW5jZT1vLHQuemlwPWZ1bmN0aW9uKCl7cmV0dXJuIGIoYXJndW1lbnRzKX0sdC5heGlzVG9wPWZ1bmN0aW9uKHQpe3JldHVybiBUKGZzLHQpfSx0LmF4aXNSaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gVChjcyx0KX0sdC5heGlzQm90dG9tPWZ1bmN0aW9uKHQpe3JldHVybiBUKHNzLHQpfSx0LmF4aXNMZWZ0PWZ1bmN0aW9uKHQpe3JldHVybiBUKGxzLHQpfSx0LmJydXNoPWZ1bmN0aW9uKCl7cmV0dXJuIGVlKGJoKX0sdC5icnVzaFg9ZnVuY3Rpb24oKXtyZXR1cm4gZWUoeWgpfSx0LmJydXNoWT1mdW5jdGlvbigpe3JldHVybiBlZShfaCl9LHQuYnJ1c2hTZWxlY3Rpb249ZnVuY3Rpb24odCl7dmFyIG49dC5fX2JydXNoO3JldHVybiBuP24uZGltLm91dHB1dChuLnNlbGVjdGlvbik6bnVsbH0sdC5jaG9yZD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG8sYSx1LGYsYyxsLGg9dC5sZW5ndGgsZD1bXSxwPXMoaCksdj1bXSxnPVtdLHk9Zy5ncm91cHM9bmV3IEFycmF5KGgpLF89bmV3IEFycmF5KGgqaCk7Zm9yKG89MCxjPS0xOysrYzxoOyl7Zm9yKGE9MCxsPS0xOysrbDxoOylhKz10W2NdW2xdO2QucHVzaChhKSx2LnB1c2gocyhoKSksbys9YX1mb3IoZSYmcC5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUoZFt0XSxkW25dKX0pLHImJnYuZm9yRWFjaChmdW5jdGlvbihuLGUpe24uc29ydChmdW5jdGlvbihuLGkpe3JldHVybiByKHRbZV1bbl0sdFtlXVtpXSl9KX0pLGY9KG89Q2goMCxraC1uKmgpL28pP246a2gvaCxhPTAsYz0tMTsrK2M8aDspe2Zvcih1PWEsbD0tMTsrK2w8aDspe3ZhciBiPXBbY10sbT12W2JdW2xdLHg9dFtiXVttXSx3PWEsTT1hKz14Km87X1ttKmgrYl09e2luZGV4OmIsc3ViaW5kZXg6bSxzdGFydEFuZ2xlOncsZW5kQW5nbGU6TSx2YWx1ZTp4fX15W2JdPXtpbmRleDpiLHN0YXJ0QW5nbGU6dSxlbmRBbmdsZTphLHZhbHVlOmRbYl19LGErPWZ9Zm9yKGM9LTE7KytjPGg7KWZvcihsPWMtMTsrK2w8aDspe3ZhciBBPV9bbCpoK2NdLFQ9X1tjKmgrbF07KEEudmFsdWV8fFQudmFsdWUpJiZnLnB1c2goQS52YWx1ZTxULnZhbHVlP3tzb3VyY2U6VCx0YXJnZXQ6QX06e3NvdXJjZTpBLHRhcmdldDpUfSl9cmV0dXJuIGk/Zy5zb3J0KGkpOmd9dmFyIG49MCxlPW51bGwscj1udWxsLGk9bnVsbDtyZXR1cm4gdC5wYWRBbmdsZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1DaCgwLGUpLHQpOm59LHQuc29ydEdyb3Vwcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQuc29ydFN1Ymdyb3Vwcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLHQpOnJ9LHQuc29ydENob3Jkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj9pPW51bGw6KGk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIHQobi5zb3VyY2UudmFsdWUrbi50YXJnZXQudmFsdWUsZS5zb3VyY2UudmFsdWUrZS50YXJnZXQudmFsdWUpfX0obikpLl89bix0KTppJiZpLl99LHR9LHQucmliYm9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0LHU9UGguY2FsbChhcmd1bWVudHMpLGY9bi5hcHBseSh0aGlzLHUpLGM9ZS5hcHBseSh0aGlzLHUpLHM9K3IuYXBwbHkodGhpcywodVswXT1mLHUpKSxsPWkuYXBwbHkodGhpcyx1KS1FaCxoPW8uYXBwbHkodGhpcyx1KS1FaCxkPXMqVGgobCkscD1zKk5oKGwpLHY9K3IuYXBwbHkodGhpcywodVswXT1jLHUpKSxnPWkuYXBwbHkodGhpcyx1KS1FaCx5PW8uYXBwbHkodGhpcyx1KS1FaDtpZihhfHwoYT10PW9lKCkpLGEubW92ZVRvKGQscCksYS5hcmMoMCwwLHMsbCxoKSxsPT09ZyYmaD09PXl8fChhLnF1YWRyYXRpY0N1cnZlVG8oMCwwLHYqVGgoZyksdipOaChnKSksYS5hcmMoMCwwLHYsZyx5KSksYS5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCxkLHApLGEuY2xvc2VQYXRoKCksdClyZXR1cm4gYT1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1hZSxlPXVlLHI9ZmUsaT1jZSxvPXNlLGE9bnVsbDtyZXR1cm4gdC5yYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnJlKCtuKSx0KTpyfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnJlKCtuKSx0KTppfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpyZSgrbiksdCk6b30sdC5zb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ZSx0KTpufSx0LnRhcmdldD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1udWxsPT1uP251bGw6bix0KTphfSx0fSx0Lm5lc3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KG4saSxhLHUpe2lmKGk+PW8ubGVuZ3RoKXJldHVybiBudWxsIT1lJiZuLnNvcnQoZSksbnVsbCE9cj9yKG4pOm47Zm9yKHZhciBmLGMscyxsPS0xLGg9bi5sZW5ndGgsZD1vW2krK10scD1oZSgpLHY9YSgpOysrbDxoOykocz1wLmdldChmPWQoYz1uW2xdKStcIlwiKSk/cy5wdXNoKGMpOnAuc2V0KGYsW2NdKTtyZXR1cm4gcC5lYWNoKGZ1bmN0aW9uKG4sZSl7dSh2LGUsdChuLGksYSx1KSl9KSx2fWZ1bmN0aW9uIG4odCxlKXtpZigrK2U+by5sZW5ndGgpcmV0dXJuIHQ7dmFyIGksdT1hW2UtMV07cmV0dXJuIG51bGwhPXImJmU+PW8ubGVuZ3RoP2k9dC5lbnRyaWVzKCk6KGk9W10sdC5lYWNoKGZ1bmN0aW9uKHQscil7aS5wdXNoKHtrZXk6cix2YWx1ZXM6bih0LGUpfSl9KSksbnVsbCE9dT9pLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gdSh0LmtleSxuLmtleSl9KTppfXZhciBlLHIsaSxvPVtdLGE9W107cmV0dXJuIGk9e29iamVjdDpmdW5jdGlvbihuKXtyZXR1cm4gdChuLDAsZGUscGUpfSxtYXA6ZnVuY3Rpb24obil7cmV0dXJuIHQobiwwLHZlLGdlKX0sZW50cmllczpmdW5jdGlvbihlKXtyZXR1cm4gbih0KGUsMCx2ZSxnZSksMCl9LGtleTpmdW5jdGlvbih0KXtyZXR1cm4gby5wdXNoKHQpLGl9LHNvcnRLZXlzOmZ1bmN0aW9uKHQpe3JldHVybiBhW28ubGVuZ3RoLTFdPXQsaX0sc29ydFZhbHVlczpmdW5jdGlvbih0KXtyZXR1cm4gZT10LGl9LHJvbGx1cDpmdW5jdGlvbih0KXtyZXR1cm4gcj10LGl9fX0sdC5zZXQ9X2UsdC5tYXA9aGUsdC5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2Zvcih2YXIgZSBpbiB0KW4ucHVzaChlKTtyZXR1cm4gbn0sdC52YWx1ZXM9ZnVuY3Rpb24odCl7dmFyIG49W107Zm9yKHZhciBlIGluIHQpbi5wdXNoKHRbZV0pO3JldHVybiBufSx0LmVudHJpZXM9ZnVuY3Rpb24odCl7dmFyIG49W107Zm9yKHZhciBlIGluIHQpbi5wdXNoKHtrZXk6ZSx2YWx1ZTp0W2VdfSk7cmV0dXJuIG59LHQuY29sb3I9a3QsdC5yZ2I9UnQsdC5oc2w9cXQsdC5sYWI9RnQsdC5oY2w9JHQsdC5sY2g9ZnVuY3Rpb24odCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1Z0KHQpOm5ldyBXdChlLG4sdCxudWxsPT1yPzE6cil9LHQuZ3JheT1mdW5jdGlvbih0LG4pe3JldHVybiBuZXcgSXQodCwwLDAsbnVsbD09bj8xOm4pfSx0LmN1YmVoZWxpeD1adCx0LmNvbnRvdXJzPU1lLHQuY29udG91ckRlbnNpdHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlPW5ldyBGbG9hdDMyQXJyYXkodip5KSxyPW5ldyBGbG9hdDMyQXJyYXkodip5KTt0LmZvckVhY2goZnVuY3Rpb24odCxuLHIpe3ZhciBpPWEodCxuLHIpK3A+Pmgsbz11KHQsbixyKStwPj5oO2k+PTAmJmk8diYmbz49MCYmbzx5JiYrK2VbaStvKnZdfSksQWUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LGw+PmgpLFRlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSxsPj5oKSxBZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0sbD4+aCksVGUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LGw+PmgpLEFlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSxsPj5oKSxUZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0sbD4+aCk7dmFyIGk9XyhlKTtpZighQXJyYXkuaXNBcnJheShpKSl7dmFyIG89ZyhlKTtpPWQoMCxvLGkpLChpPXMoMCxNYXRoLmZsb29yKG8vaSkqaSxpKSkuc2hpZnQoKX1yZXR1cm4gTWUoKS50aHJlc2hvbGRzKGkpLnNpemUoW3YseV0pKGUpLm1hcChuKX1mdW5jdGlvbiBuKHQpe3JldHVybiB0LnZhbHVlKj1NYXRoLnBvdygyLC0yKmgpLHQuY29vcmRpbmF0ZXMuZm9yRWFjaChlKSx0fWZ1bmN0aW9uIGUodCl7dC5mb3JFYWNoKHIpfWZ1bmN0aW9uIHIodCl7dC5mb3JFYWNoKGkpfWZ1bmN0aW9uIGkodCl7dFswXT10WzBdKk1hdGgucG93KDIsaCktcCx0WzFdPXRbMV0qTWF0aC5wb3coMixoKS1wfWZ1bmN0aW9uIG8oKXtyZXR1cm4gcD0zKmwsdj1mKzIqcD4+aCx5PWMrMipwPj5oLHR9dmFyIGE9TmUsdT1TZSxmPTk2MCxjPTUwMCxsPTIwLGg9MixwPTMqbCx2PWYrMipwPj5oLHk9YysyKnA+PmgsXz1tZSgyMCk7cmV0dXJuIHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bWUoK24pLHQpOmF9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bWUoK24pLHQpOnV9LHQuc2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bZixjXTt2YXIgbj1NYXRoLmNlaWwodFswXSksZT1NYXRoLmNlaWwodFsxXSk7aWYoIShuPj0wfHxuPj0wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHNpemVcIik7cmV0dXJuIGY9bixjPWUsbygpfSx0LmNlbGxTaXplPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiAxPDxoO2lmKCEoKHQ9K3QpPj0xKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGNlbGwgc2l6ZVwiKTtyZXR1cm4gaD1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4yKSxvKCl9LHQudGhyZXNob2xkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246QXJyYXkuaXNBcnJheShuKT9tZShVaC5jYWxsKG4pKTptZShuKSx0KTpffSx0LmJhbmR3aWR0aD1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gTWF0aC5zcXJ0KGwqKGwrMSkpO2lmKCEoKHQ9K3QpPj0wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGJhbmR3aWR0aFwiKTtyZXR1cm4gbD1NYXRoLnJvdW5kKChNYXRoLnNxcnQoNCp0KnQrMSktMSkvMiksbygpfSx0fSx0LmRpc3BhdGNoPU4sdC5kcmFnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0Lm9uKFwibW91c2Vkb3duLmRyYWdcIixlKS5maWx0ZXIoZykub24oXCJ0b3VjaHN0YXJ0LmRyYWdcIixvKS5vbihcInRvdWNobW92ZS5kcmFnXCIsYSkub24oXCJ0b3VjaGVuZC5kcmFnIHRvdWNoY2FuY2VsLmRyYWdcIix1KS5zdHlsZShcInRvdWNoLWFjdGlvblwiLFwibm9uZVwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKX1mdW5jdGlvbiBlKCl7aWYoIWgmJmQuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbj1mKFwibW91c2VcIixwLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxwdCx0aGlzLGFyZ3VtZW50cyk7biYmKGN0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuZHJhZ1wiLHIsITApLm9uKFwibW91c2V1cC5kcmFnXCIsaSwhMCksX3QodC5ldmVudC52aWV3KSxndCgpLGw9ITEsYz10LmV2ZW50LmNsaWVudFgscz10LmV2ZW50LmNsaWVudFksbihcInN0YXJ0XCIpKX19ZnVuY3Rpb24gcigpe2lmKHl0KCksIWwpe3ZhciBuPXQuZXZlbnQuY2xpZW50WC1jLGU9dC5ldmVudC5jbGllbnRZLXM7bD1uKm4rZSplPm19eS5tb3VzZShcImRyYWdcIil9ZnVuY3Rpb24gaSgpe2N0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuZHJhZyBtb3VzZXVwLmRyYWdcIixudWxsKSxidCh0LmV2ZW50LnZpZXcsbCkseXQoKSx5Lm1vdXNlKFwiZW5kXCIpfWZ1bmN0aW9uIG8oKXtpZihkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIG4sZSxyPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsaT1wLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvPXIubGVuZ3RoO2ZvcihuPTA7bjxvOysrbikoZT1mKHJbbl0uaWRlbnRpZmllcixpLHZ0LHRoaXMsYXJndW1lbnRzKSkmJihndCgpLGUoXCJzdGFydFwiKSl9fWZ1bmN0aW9uIGEoKXt2YXIgbixlLHI9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxpPXIubGVuZ3RoO2ZvcihuPTA7bjxpOysrbikoZT15W3Jbbl0uaWRlbnRpZmllcl0pJiYoeXQoKSxlKFwiZHJhZ1wiKSl9ZnVuY3Rpb24gdSgpe3ZhciBuLGUscj10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGk9ci5sZW5ndGg7Zm9yKGgmJmNsZWFyVGltZW91dChoKSxoPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtoPW51bGx9LDUwMCksbj0wO248aTsrK24pKGU9eVtyW25dLmlkZW50aWZpZXJdKSYmKGd0KCksZShcImVuZFwiKSl9ZnVuY3Rpb24gZihlLHIsaSxvLGEpe3ZhciB1LGYsYyxzPWkocixlKSxsPV8uY29weSgpO2lmKG90KG5ldyB4dChuLFwiYmVmb3Jlc3RhcnRcIix1LGUsYixzWzBdLHNbMV0sMCwwLGwpLGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPSh0LmV2ZW50LnN1YmplY3Q9dT12LmFwcGx5KG8sYSkpJiYoZj11Lngtc1swXXx8MCxjPXUueS1zWzFdfHwwLCEwKX0pKXJldHVybiBmdW5jdGlvbiB0KGgpe3ZhciBkLHA9cztzd2l0Y2goaCl7Y2FzZVwic3RhcnRcIjp5W2VdPXQsZD1iKys7YnJlYWs7Y2FzZVwiZW5kXCI6ZGVsZXRlIHlbZV0sLS1iO2Nhc2VcImRyYWdcIjpzPWkocixlKSxkPWJ9b3QobmV3IHh0KG4saCx1LGUsZCxzWzBdK2Ysc1sxXStjLHNbMF0tcFswXSxzWzFdLXBbMV0sbCksbC5hcHBseSxsLFtoLG8sYV0pfX12YXIgYyxzLGwsaCxkPXd0LHA9TXQsdj1BdCxnPVR0LHk9e30sXz1OKFwic3RhcnRcIixcImRyYWdcIixcImVuZFwiKSxiPTAsbT0wO3JldHVybiBuLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQoISF0KSxuKTpkfSxuLmNvbnRhaW5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQodCksbik6cH0sbi5zdWJqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDptdCh0KSxuKTp2fSxuLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQoISF0KSxuKTpnfSxuLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Xy5vbi5hcHBseShfLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1fP246dH0sbi5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhtPSh0PSt0KSp0LG4pOk1hdGguc3FydChtKX0sbn0sdC5kcmFnRGlzYWJsZT1fdCx0LmRyYWdFbmFibGU9YnQsdC5kc3ZGb3JtYXQ9a2UsdC5jc3ZQYXJzZT1IaCx0LmNzdlBhcnNlUm93cz1YaCx0LmNzdkZvcm1hdD1HaCx0LmNzdkZvcm1hdFJvd3M9VmgsdC50c3ZQYXJzZT1XaCx0LnRzdlBhcnNlUm93cz1aaCx0LnRzdkZvcm1hdD1RaCx0LnRzdkZvcm1hdFJvd3M9SmgsdC5lYXNlTGluZWFyPWZ1bmN0aW9uKHQpe3JldHVybit0fSx0LmVhc2VRdWFkPUZuLHQuZWFzZVF1YWRJbj1mdW5jdGlvbih0KXtyZXR1cm4gdCp0fSx0LmVhc2VRdWFkT3V0PWZ1bmN0aW9uKHQpe3JldHVybiB0KigyLXQpfSx0LmVhc2VRdWFkSW5PdXQ9Rm4sdC5lYXNlQ3ViaWM9SW4sdC5lYXNlQ3ViaWNJbj1mdW5jdGlvbih0KXtyZXR1cm4gdCp0KnR9LHQuZWFzZUN1YmljT3V0PWZ1bmN0aW9uKHQpe3JldHVybi0tdCp0KnQrMX0sdC5lYXNlQ3ViaWNJbk91dD1Jbix0LmVhc2VQb2x5PVhsLHQuZWFzZVBvbHlJbj1qbCx0LmVhc2VQb2x5T3V0PUhsLHQuZWFzZVBvbHlJbk91dD1YbCx0LmVhc2VTaW49am4sdC5lYXNlU2luSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5jb3ModCpWbCl9LHQuZWFzZVNpbk91dD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zaW4odCpWbCl9LHQuZWFzZVNpbkluT3V0PWpuLHQuZWFzZUV4cD1Ibix0LmVhc2VFeHBJbj1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3coMiwxMCp0LTEwKX0sdC5lYXNlRXhwT3V0PWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGgucG93KDIsLTEwKnQpfSx0LmVhc2VFeHBJbk91dD1Ibix0LmVhc2VDaXJjbGU9WG4sdC5lYXNlQ2lyY2xlSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtdCp0KX0sdC5lYXNlQ2lyY2xlT3V0PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoMS0gLS10KnQpfSx0LmVhc2VDaXJjbGVJbk91dD1Ybix0LmVhc2VCb3VuY2U9R24sdC5lYXNlQm91bmNlSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtR24oMS10KX0sdC5lYXNlQm91bmNlT3V0PUduLHQuZWFzZUJvdW5jZUluT3V0PWZ1bmN0aW9uKHQpe3JldHVybigodCo9Mik8PTE/MS1HbigxLXQpOkduKHQtMSkrMSkvMn0sdC5lYXNlQmFjaz1haCx0LmVhc2VCYWNrSW49aWgsdC5lYXNlQmFja091dD1vaCx0LmVhc2VCYWNrSW5PdXQ9YWgsdC5lYXNlRWxhc3RpYz1jaCx0LmVhc2VFbGFzdGljSW49ZmgsdC5lYXNlRWxhc3RpY091dD1jaCx0LmVhc2VFbGFzdGljSW5PdXQ9c2gsdC5ibG9iPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGZldGNoKHQsbikudGhlbihDZSl9LHQuYnVmZmVyPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGZldGNoKHQsbikudGhlbihQZSl9LHQuZHN2PWZ1bmN0aW9uKHQsbixlLHIpezM9PT1hcmd1bWVudHMubGVuZ3RoJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYocj1lLGU9dm9pZCAwKTt2YXIgaT1rZSh0KTtyZXR1cm4gUmUobixlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBpLnBhcnNlKHQscil9KX0sdC5jc3Y9S2gsdC50c3Y9dGQsdC5pbWFnZT1mdW5jdGlvbih0LG4pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLHIpe3ZhciBpPW5ldyBJbWFnZTtmb3IodmFyIG8gaW4gbilpW29dPW5bb107aS5vbmVycm9yPXIsaS5vbmxvYWQ9ZnVuY3Rpb24oKXtlKGkpfSxpLnNyYz10fSl9LHQuanNvbj1mdW5jdGlvbih0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oRGUpfSx0LnRleHQ9UmUsdC54bWw9bmQsdC5odG1sPWVkLHQuc3ZnPXJkLHQuZm9yY2VDZW50ZXI9ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiBlKCl7dmFyIGUsaSxvPXIubGVuZ3RoLGE9MCx1PTA7Zm9yKGU9MDtlPG87KytlKWErPShpPXJbZV0pLngsdSs9aS55O2ZvcihhPWEvby10LHU9dS9vLW4sZT0wO2U8bzsrK2UpKGk9cltlXSkueC09YSxpLnktPXV9dmFyIHI7cmV0dXJuIG51bGw9PXQmJih0PTApLG51bGw9PW4mJihuPTApLGUuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXR9LGUueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rbixlKTp0fSxlLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsZSk6bn0sZX0sdC5mb3JjZUNvbGxpZGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe2Zvcih2YXIgdCxuLHIsZixjLHMsbCxoPWkubGVuZ3RoLGQ9MDtkPHU7KytkKWZvcihuPWplKGksR2UsVmUpLnZpc2l0QWZ0ZXIoZSksdD0wO3Q8aDsrK3Qpcj1pW3RdLHM9b1tyLmluZGV4XSxsPXMqcyxmPXIueCtyLnZ4LGM9ci55K3Iudnksbi52aXNpdChmdW5jdGlvbih0LG4sZSxpLG8pe3ZhciB1PXQuZGF0YSxoPXQucixkPXMraDtpZighdSlyZXR1cm4gbj5mK2R8fGk8Zi1kfHxlPmMrZHx8bzxjLWQ7aWYodS5pbmRleD5yLmluZGV4KXt2YXIgcD1mLXUueC11LnZ4LHY9Yy11LnktdS52eSxnPXAqcCt2KnY7ZzxkKmQmJigwPT09cCYmKHA9T2UoKSxnKz1wKnApLDA9PT12JiYodj1PZSgpLGcrPXYqdiksZz0oZC0oZz1NYXRoLnNxcnQoZykpKS9nKmEsci52eCs9KHAqPWcpKihkPShoKj1oKS8obCtoKSksci52eSs9KHYqPWcpKmQsdS52eC09cCooZD0xLWQpLHUudnktPXYqZCl9fSl9ZnVuY3Rpb24gZSh0KXtpZih0LmRhdGEpcmV0dXJuIHQucj1vW3QuZGF0YS5pbmRleF07Zm9yKHZhciBuPXQucj0wO248NDsrK24pdFtuXSYmdFtuXS5yPnQuciYmKHQucj10W25dLnIpfWZ1bmN0aW9uIHIoKXtpZihpKXt2YXIgbixlLHI9aS5sZW5ndGg7Zm9yKG89bmV3IEFycmF5KHIpLG49MDtuPHI7KytuKWU9aVtuXSxvW2UuaW5kZXhdPSt0KGUsbixpKX19dmFyIGksbyxhPTEsdT0xO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKG51bGw9PXQ/MTordCkpLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtpPXQscigpfSxuLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3Qsbik6dX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxuKTphfSxuLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6cWUoK2UpLHIoKSxuKTp0fSxufSx0LmZvcmNlTGluaz1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKG4pe2Zvcih2YXIgZT0wLHI9dC5sZW5ndGg7ZTxkOysrZSlmb3IodmFyIGksdSxmLHMsbCxoLHAsdj0wO3Y8cjsrK3YpdT0oaT10W3ZdKS5zb3VyY2Uscz0oZj1pLnRhcmdldCkueCtmLnZ4LXUueC11LnZ4fHxPZSgpLGw9Zi55K2YudnktdS55LXUudnl8fE9lKCkscyo9aD0oKGg9TWF0aC5zcXJ0KHMqcytsKmwpKS1hW3ZdKS9oKm4qb1t2XSxsKj1oLGYudngtPXMqKHA9Y1t2XSksZi52eS09bCpwLHUudngrPXMqKHA9MS1wKSx1LnZ5Kz1sKnB9ZnVuY3Rpb24gZSgpe2lmKHUpe3ZhciBuLGUsbD11Lmxlbmd0aCxoPXQubGVuZ3RoLGQ9aGUodSxzKTtmb3Iobj0wLGY9bmV3IEFycmF5KGwpO248aDsrK24pKGU9dFtuXSkuaW5kZXg9bixcIm9iamVjdFwiIT10eXBlb2YgZS5zb3VyY2UmJihlLnNvdXJjZT1XZShkLGUuc291cmNlKSksXCJvYmplY3RcIiE9dHlwZW9mIGUudGFyZ2V0JiYoZS50YXJnZXQ9V2UoZCxlLnRhcmdldCkpLGZbZS5zb3VyY2UuaW5kZXhdPShmW2Uuc291cmNlLmluZGV4XXx8MCkrMSxmW2UudGFyZ2V0LmluZGV4XT0oZltlLnRhcmdldC5pbmRleF18fDApKzE7Zm9yKG49MCxjPW5ldyBBcnJheShoKTtuPGg7KytuKWU9dFtuXSxjW25dPWZbZS5zb3VyY2UuaW5kZXhdLyhmW2Uuc291cmNlLmluZGV4XStmW2UudGFyZ2V0LmluZGV4XSk7bz1uZXcgQXJyYXkoaCkscigpLGE9bmV3IEFycmF5KGgpLGkoKX19ZnVuY3Rpb24gcigpe2lmKHUpZm9yKHZhciBuPTAsZT10Lmxlbmd0aDtuPGU7KytuKW9bbl09K2wodFtuXSxuLHQpfWZ1bmN0aW9uIGkoKXtpZih1KWZvcih2YXIgbj0wLGU9dC5sZW5ndGg7bjxlOysrbilhW25dPStoKHRbbl0sbix0KX12YXIgbyxhLHUsZixjLHM9JGUsbD1mdW5jdGlvbih0KXtyZXR1cm4gMS9NYXRoLm1pbihmW3Quc291cmNlLmluZGV4XSxmW3QudGFyZ2V0LmluZGV4XSl9LGg9cWUoMzApLGQ9MTtyZXR1cm4gbnVsbD09dCYmKHQ9W10pLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXt1PXQsZSgpfSxuLmxpbmtzPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXIsZSgpLG4pOnR9LG4uaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9dCxuKTpzfSxuLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K3Qsbik6ZH0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLHIoKSxuKTpsfSxuLmRpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCksaSgpLG4pOmh9LG59LHQuZm9yY2VNYW55Qm9keT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG4sdT1pLmxlbmd0aCxmPWplKGksWmUsUWUpLnZpc2l0QWZ0ZXIoZSk7Zm9yKGE9dCxuPTA7bjx1OysrbilvPWlbbl0sZi52aXNpdChyKX1mdW5jdGlvbiBuKCl7aWYoaSl7dmFyIHQsbixlPWkubGVuZ3RoO2Zvcih1PW5ldyBBcnJheShlKSx0PTA7dDxlOysrdCluPWlbdF0sdVtuLmluZGV4XT0rZihuLHQsaSl9fWZ1bmN0aW9uIGUodCl7dmFyIG4sZSxyLGksbyxhPTAsZj0wO2lmKHQubGVuZ3RoKXtmb3Iocj1pPW89MDtvPDQ7KytvKShuPXRbb10pJiYoZT1NYXRoLmFicyhuLnZhbHVlKSkmJihhKz1uLnZhbHVlLGYrPWUscis9ZSpuLngsaSs9ZSpuLnkpO3QueD1yL2YsdC55PWkvZn1lbHNleyhuPXQpLng9bi5kYXRhLngsbi55PW4uZGF0YS55O2Rve2ErPXVbbi5kYXRhLmluZGV4XX13aGlsZShuPW4ubmV4dCl9dC52YWx1ZT1hfWZ1bmN0aW9uIHIodCxuLGUscil7aWYoIXQudmFsdWUpcmV0dXJuITA7dmFyIGk9dC54LW8ueCxmPXQueS1vLnksaD1yLW4sZD1pKmkrZipmO2lmKGgqaC9sPGQpcmV0dXJuIGQ8cyYmKDA9PT1pJiYoaT1PZSgpLGQrPWkqaSksMD09PWYmJihmPU9lKCksZCs9ZipmKSxkPGMmJihkPU1hdGguc3FydChjKmQpKSxvLnZ4Kz1pKnQudmFsdWUqYS9kLG8udnkrPWYqdC52YWx1ZSphL2QpLCEwO2lmKCEodC5sZW5ndGh8fGQ+PXMpKXsodC5kYXRhIT09b3x8dC5uZXh0KSYmKDA9PT1pJiYoaT1PZSgpLGQrPWkqaSksMD09PWYmJihmPU9lKCksZCs9ZipmKSxkPGMmJihkPU1hdGguc3FydChjKmQpKSk7ZG97dC5kYXRhIT09byYmKGg9dVt0LmRhdGEuaW5kZXhdKmEvZCxvLnZ4Kz1pKmgsby52eSs9ZipoKX13aGlsZSh0PXQubmV4dCl9fXZhciBpLG8sYSx1LGY9cWUoLTMwKSxjPTEscz0xLzAsbD0uODE7cmV0dXJuIHQuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtpPXQsbigpfSx0LnN0cmVuZ3RoPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpxZSgrZSksbigpLHQpOmZ9LHQuZGlzdGFuY2VNaW49ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9bipuLHQpOk1hdGguc3FydChjKX0sdC5kaXN0YW5jZU1heD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1uKm4sdCk6TWF0aC5zcXJ0KHMpfSx0LnRoZXRhPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPW4qbix0KTpNYXRoLnNxcnQobCl9LHR9LHQuZm9yY2VSYWRpYWw9ZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIodCl7Zm9yKHZhciByPTAsaT1vLmxlbmd0aDtyPGk7KytyKXt2YXIgZj1vW3JdLGM9Zi54LW58fDFlLTYscz1mLnktZXx8MWUtNixsPU1hdGguc3FydChjKmMrcypzKSxoPSh1W3JdLWwpKmFbcl0qdC9sO2YudngrPWMqaCxmLnZ5Kz1zKmh9fWZ1bmN0aW9uIGkoKXtpZihvKXt2YXIgbixlPW8ubGVuZ3RoO2ZvcihhPW5ldyBBcnJheShlKSx1PW5ldyBBcnJheShlKSxuPTA7bjxlOysrbil1W25dPSt0KG9bbl0sbixvKSxhW25dPWlzTmFOKHVbbl0pPzA6K2Yob1tuXSxuLG8pfX12YXIgbyxhLHUsZj1xZSguMSk7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9cWUoK3QpKSxudWxsPT1uJiYobj0wKSxudWxsPT1lJiYoZT0wKSxyLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7bz10LGkoKX0sci5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGkoKSxyKTpmfSxyLnJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246cWUoK24pLGkoKSxyKTp0fSxyLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3Qscik6bn0sci55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0LHIpOmV9LHJ9LHQuZm9yY2VTaW11bGF0aW9uPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXtlKCksZC5jYWxsKFwidGlja1wiLG8pLGE8dSYmKGguc3RvcCgpLGQuY2FsbChcImVuZFwiLG8pKX1mdW5jdGlvbiBlKCl7dmFyIG4sZSxyPXQubGVuZ3RoO2ZvcihhKz0oYy1hKSpmLGwuZWFjaChmdW5jdGlvbih0KXt0KGEpfSksbj0wO248cjsrK24pbnVsbD09KGU9dFtuXSkuZng/ZS54Kz1lLnZ4Kj1zOihlLng9ZS5meCxlLnZ4PTApLG51bGw9PWUuZnk/ZS55Kz1lLnZ5Kj1zOihlLnk9ZS5meSxlLnZ5PTApfWZ1bmN0aW9uIHIoKXtmb3IodmFyIG4sZT0wLHI9dC5sZW5ndGg7ZTxyOysrZSl7aWYobj10W2VdLG4uaW5kZXg9ZSxpc05hTihuLngpfHxpc05hTihuLnkpKXt2YXIgaT1vZCpNYXRoLnNxcnQoZSksbz1lKmFkO24ueD1pKk1hdGguY29zKG8pLG4ueT1pKk1hdGguc2luKG8pfShpc05hTihuLnZ4KXx8aXNOYU4obi52eSkpJiYobi52eD1uLnZ5PTApfX1mdW5jdGlvbiBpKG4pe3JldHVybiBuLmluaXRpYWxpemUmJm4uaW5pdGlhbGl6ZSh0KSxufXZhciBvLGE9MSx1PS4wMDEsZj0xLU1hdGgucG93KHUsMS8zMDApLGM9MCxzPS42LGw9aGUoKSxoPVRuKG4pLGQ9TihcInRpY2tcIixcImVuZFwiKTtyZXR1cm4gbnVsbD09dCYmKHQ9W10pLHIoKSxvPXt0aWNrOmUscmVzdGFydDpmdW5jdGlvbigpe3JldHVybiBoLnJlc3RhcnQobiksb30sc3RvcDpmdW5jdGlvbigpe3JldHVybiBoLnN0b3AoKSxvfSxub2RlczpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uLHIoKSxsLmVhY2goaSksbyk6dH0sYWxwaGE6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3Qsbyk6YX0sYWxwaGFNaW46ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3Qsbyk6dX0sYWxwaGFEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0rdCxvKTorZn0sYWxwaGFUYXJnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9K3Qsbyk6Y30sdmVsb2NpdHlEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0xLXQsbyk6MS1zfSxmb3JjZTpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KG51bGw9PW4/bC5yZW1vdmUodCk6bC5zZXQodCxpKG4pKSxvKTpsLmdldCh0KX0sZmluZDpmdW5jdGlvbihuLGUscil7dmFyIGksbyxhLHUsZixjPTAscz10Lmxlbmd0aDtmb3IobnVsbD09cj9yPTEvMDpyKj1yLGM9MDtjPHM7KytjKShhPShpPW4tKHU9dFtjXSkueCkqaSsobz1lLXUueSkqbyk8ciYmKGY9dSxyPWEpO3JldHVybiBmfSxvbjpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGQub24odCxuKSxvKTpkLm9uKHQpfX19LHQuZm9yY2VYPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBuLGU9MCxhPXIubGVuZ3RoO2U8YTsrK2UpKG49cltlXSkudngrPShvW2VdLW4ueCkqaVtlXSp0fWZ1bmN0aW9uIGUoKXtpZihyKXt2YXIgbixlPXIubGVuZ3RoO2ZvcihpPW5ldyBBcnJheShlKSxvPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilpW25dPWlzTmFOKG9bbl09K3QocltuXSxuLHIpKT8wOithKHJbbl0sbixyKX19dmFyIHIsaSxvLGE9cWUoLjEpO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKG51bGw9PXQ/MDordCkpLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXQsZSgpfSxuLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCksZSgpLG4pOmF9LG4ueD1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByP3I6cWUoK3IpLGUoKSxuKTp0fSxufSx0LmZvcmNlWT1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgbixlPTAsYT1yLmxlbmd0aDtlPGE7KytlKShuPXJbZV0pLnZ5Kz0ob1tlXS1uLnkpKmlbZV0qdH1mdW5jdGlvbiBlKCl7aWYocil7dmFyIG4sZT1yLmxlbmd0aDtmb3IoaT1uZXcgQXJyYXkoZSksbz1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24paVtuXT1pc05hTihvW25dPSt0KHJbbl0sbixyKSk/MDorYShyW25dLG4scil9fXZhciByLGksbyxhPXFlKC4xKTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZShudWxsPT10PzA6K3QpKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10LGUoKX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGUoKSxuKTphfSxuLnk9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOnFlKCtyKSxlKCksbik6dH0sbn0sdC5mb3JtYXREZWZhdWx0TG9jYWxlPW9yLHQuZm9ybWF0TG9jYWxlPWlyLHQuZm9ybWF0U3BlY2lmaWVyPXRyLHQucHJlY2lzaW9uRml4ZWQ9YXIsdC5wcmVjaXNpb25QcmVmaXg9dXIsdC5wcmVjaXNpb25Sb3VuZD1mcix0Lmdlb0FyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIGRwLnJlc2V0KCksYnIodCxwcCksMipkcH0sdC5nZW9Cb3VuZHM9ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbyxhLHU7aWYobWQ9YmQ9LSh5ZD1fZD0xLzApLFRkPVtdLGJyKHQsZ3ApLGU9VGQubGVuZ3RoKXtmb3IoVGQuc29ydChZciksbj0xLG89W3I9VGRbMF1dO248ZTsrK24pQnIociwoaT1UZFtuXSlbMF0pfHxCcihyLGlbMV0pPyhPcihyWzBdLGlbMV0pPk9yKHJbMF0sclsxXSkmJihyWzFdPWlbMV0pLE9yKGlbMF0sclsxXSk+T3IoclswXSxyWzFdKSYmKHJbMF09aVswXSkpOm8ucHVzaChyPWkpO2ZvcihhPS0xLzAsbj0wLHI9b1tlPW8ubGVuZ3RoLTFdO248PWU7cj1pLCsrbilpPW9bbl0sKHU9T3IoclsxXSxpWzBdKSk+YSYmKGE9dSx5ZD1pWzBdLGJkPXJbMV0pfXJldHVybiBUZD1OZD1udWxsLHlkPT09MS8wfHxfZD09PTEvMD9bW05hTixOYU5dLFtOYU4sTmFOXV06W1t5ZCxfZF0sW2JkLG1kXV19LHQuZ2VvQ2VudHJvaWQ9ZnVuY3Rpb24odCl7U2Q9RWQ9a2Q9Q2Q9UGQ9emQ9UmQ9TGQ9RGQ9VWQ9cWQ9MCxicih0LHlwKTt2YXIgbj1EZCxlPVVkLHI9cWQsaT1uKm4rZSplK3IqcjtyZXR1cm4gaTxYZCYmKG49emQsZT1SZCxyPUxkLEVkPEhkJiYobj1rZCxlPUNkLHI9UGQpLChpPW4qbitlKmUrcipyKTxYZCk/W05hTixOYU5dOlt0cChlLG4pKlpkLGRyKHIvZnAoaSkpKlpkXX0sdC5nZW9DaXJjbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdT1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpRZCxmPW8uYXBwbHkodGhpcyxhcmd1bWVudHMpKlFkO3JldHVybiBuPVtdLGU9dGkoLXRbMF0qUWQsLXRbMV0qUWQsMCkuaW52ZXJ0LG9pKGEsdSxmLDEpLHQ9e3R5cGU6XCJQb2x5Z29uXCIsY29vcmRpbmF0ZXM6W25dfSxuPWU9bnVsbCx0fXZhciBuLGUscj1RcihbMCwwXSksaT1Rcig5MCksbz1Rcig2KSxhPXtwb2ludDpmdW5jdGlvbih0LHIpe24ucHVzaCh0PWUodCxyKSksdFswXSo9WmQsdFsxXSo9WmR9fTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOlFyKFsrblswXSwrblsxXV0pLHQpOnJ9LHQucmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpRcigrbiksdCk6aX0sdC5wcmVjaXNpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOlFyKCtuKSx0KTpvfSx0fSx0Lmdlb0NsaXBBbnRpbWVyaWRpYW49Q3AsdC5nZW9DbGlwQ2lyY2xlPWdpLHQuZ2VvQ2xpcEV4dGVudD1mdW5jdGlvbigpe3ZhciB0LG4sZSxyPTAsaT0wLG89OTYwLGE9NTAwO3JldHVybiBlPXtzdHJlYW06ZnVuY3Rpb24oZSl7cmV0dXJuIHQmJm49PT1lP3Q6dD15aShyLGksbyxhKShuPWUpfSxleHRlbnQ6ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K3VbMF1bMF0saT0rdVswXVsxXSxvPSt1WzFdWzBdLGE9K3VbMV1bMV0sdD1uPW51bGwsZSk6W1tyLGldLFtvLGFdXX19fSx0Lmdlb0NsaXBSZWN0YW5nbGU9eWksdC5nZW9Db250YWlucz1mdW5jdGlvbih0LG4pe3JldHVybih0JiZxcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP3FwW3QudHlwZV06TWkpKHQsbil9LHQuZ2VvRGlzdGFuY2U9d2ksdC5nZW9HcmF0aWN1bGU9UGksdC5nZW9HcmF0aWN1bGUxMD1mdW5jdGlvbigpe3JldHVybiBQaSgpKCl9LHQuZ2VvSW50ZXJwb2xhdGU9ZnVuY3Rpb24odCxuKXt2YXIgZT10WzBdKlFkLHI9dFsxXSpRZCxpPW5bMF0qUWQsbz1uWzFdKlFkLGE9bnAociksdT1hcChyKSxmPW5wKG8pLGM9YXAobykscz1hKm5wKGUpLGw9YSphcChlKSxoPWYqbnAoaSksZD1mKmFwKGkpLHA9MipkcihmcChwcihvLXIpK2EqZipwcihpLWUpKSksdj1hcChwKSxnPXA/ZnVuY3Rpb24odCl7dmFyIG49YXAodCo9cCkvdixlPWFwKHAtdCkvdixyPWUqcytuKmgsaT1lKmwrbipkLG89ZSp1K24qYztyZXR1cm5bdHAoaSxyKSpaZCx0cChvLGZwKHIqcitpKmkpKSpaZF19OmZ1bmN0aW9uKCl7cmV0dXJuW2UqWmQscipaZF19O3JldHVybiBnLmRpc3RhbmNlPXAsZ30sdC5nZW9MZW5ndGg9eGksdC5nZW9QYXRoPWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCYmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG8mJmkucG9pbnRSYWRpdXMoK28uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxicih0LHIoaSkpKSxpLnJlc3VsdCgpfXZhciByLGksbz00LjU7cmV0dXJuIGUuYXJlYT1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKEZwKSksRnAucmVzdWx0KCl9LGUubWVhc3VyZT1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKGN2KSksY3YucmVzdWx0KCl9LGUuYm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiBicih0LHIoR3ApKSxHcC5yZXN1bHQoKX0sZS5jZW50cm9pZD1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKGV2KSksZXYucmVzdWx0KCl9LGUucHJvamVjdGlvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uPyh0PW51bGwsemkpOih0PW4pLnN0cmVhbSxlKTp0fSxlLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD8obj1udWxsLG5ldyBXaSk6bmV3IEdpKG49dCksXCJmdW5jdGlvblwiIT10eXBlb2YgbyYmaS5wb2ludFJhZGl1cyhvKSxlKTpufSxlLnBvaW50UmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDooaS5wb2ludFJhZGl1cygrdCksK3QpLGUpOm99LGUucHJvamVjdGlvbih0KS5jb250ZXh0KG4pfSx0Lmdlb0FsYmVycz1sbyx0Lmdlb0FsYmVyc1VzYT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG49dFswXSxlPXRbMV07cmV0dXJuIHU9bnVsbCxpLnBvaW50KG4sZSksdXx8KG8ucG9pbnQobixlKSx1KXx8KGEucG9pbnQobixlKSx1KX1mdW5jdGlvbiBuKCl7cmV0dXJuIGU9cj1udWxsLHR9dmFyIGUscixpLG8sYSx1LGY9bG8oKSxjPXNvKCkucm90YXRlKFsxNTQsMF0pLmNlbnRlcihbLTIsNTguNV0pLnBhcmFsbGVscyhbNTUsNjVdKSxzPXNvKCkucm90YXRlKFsxNTcsMF0pLmNlbnRlcihbLTMsMTkuOV0pLnBhcmFsbGVscyhbOCwxOF0pLGw9e3BvaW50OmZ1bmN0aW9uKHQsbil7dT1bdCxuXX19O3JldHVybiB0LmludmVydD1mdW5jdGlvbih0KXt2YXIgbj1mLnNjYWxlKCksZT1mLnRyYW5zbGF0ZSgpLHI9KHRbMF0tZVswXSkvbixpPSh0WzFdLWVbMV0pL247cmV0dXJuKGk+PS4xMiYmaTwuMjM0JiZyPj0tLjQyNSYmcjwtLjIxND9jOmk+PS4xNjYmJmk8LjIzNCYmcj49LS4yMTQmJnI8LS4xMTU/czpmKS5pbnZlcnQodCl9LHQuc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybiBlJiZyPT09dD9lOmU9ZnVuY3Rpb24odCl7dmFyIG49dC5sZW5ndGg7cmV0dXJue3BvaW50OmZ1bmN0aW9uKGUscil7Zm9yKHZhciBpPS0xOysraTxuOyl0W2ldLnBvaW50KGUscil9LHNwaGVyZTpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLnBvbHlnb25FbmQoKX19fShbZi5zdHJlYW0ocj10KSxjLnN0cmVhbSh0KSxzLnN0cmVhbSh0KV0pfSx0LnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZi5wcmVjaXNpb24odCksYy5wcmVjaXNpb24odCkscy5wcmVjaXNpb24odCksbigpKTpmLnByZWNpc2lvbigpfSx0LnNjYWxlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmLnNjYWxlKG4pLGMuc2NhbGUoLjM1Km4pLHMuc2NhbGUobiksdC50cmFuc2xhdGUoZi50cmFuc2xhdGUoKSkpOmYuc2NhbGUoKX0sdC50cmFuc2xhdGU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGYudHJhbnNsYXRlKCk7dmFyIGU9Zi5zY2FsZSgpLHI9K3RbMF0sdT0rdFsxXTtyZXR1cm4gaT1mLnRyYW5zbGF0ZSh0KS5jbGlwRXh0ZW50KFtbci0uNDU1KmUsdS0uMjM4KmVdLFtyKy40NTUqZSx1Ky4yMzgqZV1dKS5zdHJlYW0obCksbz1jLnRyYW5zbGF0ZShbci0uMzA3KmUsdSsuMjAxKmVdKS5jbGlwRXh0ZW50KFtbci0uNDI1KmUrSGQsdSsuMTIqZStIZF0sW3ItLjIxNCplLUhkLHUrLjIzNCplLUhkXV0pLnN0cmVhbShsKSxhPXMudHJhbnNsYXRlKFtyLS4yMDUqZSx1Ky4yMTIqZV0pLmNsaXBFeHRlbnQoW1tyLS4yMTQqZStIZCx1Ky4xNjYqZStIZF0sW3ItLjExNSplLUhkLHUrLjIzNCplLUhkXV0pLnN0cmVhbShsKSxuKCl9LHQuZml0RXh0ZW50PWZ1bmN0aW9uKG4sZSl7cmV0dXJuIHRvKHQsbixlKX0sdC5maXRTaXplPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIG5vKHQsbixlKX0sdC5maXRXaWR0aD1mdW5jdGlvbihuLGUpe3JldHVybiBlbyh0LG4sZSl9LHQuZml0SGVpZ2h0PWZ1bmN0aW9uKG4sZSl7cmV0dXJuIHJvKHQsbixlKX0sdC5zY2FsZSgxMDcwKX0sdC5nZW9BemltdXRoYWxFcXVhbEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oZHYpLnNjYWxlKDEyNC43NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0F6aW11dGhhbEVxdWFsQXJlYVJhdz1kdix0Lmdlb0F6aW11dGhhbEVxdWlkaXN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIGFvKHB2KS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LHQuZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXc9cHYsdC5nZW9Db25pY0NvbmZvcm1hbD1mdW5jdGlvbigpe3JldHVybiBmbyhfbykuc2NhbGUoMTA5LjUpLnBhcmFsbGVscyhbMzAsMzBdKX0sdC5nZW9Db25pY0NvbmZvcm1hbFJhdz1fbyx0Lmdlb0NvbmljRXF1YWxBcmVhPXNvLHQuZ2VvQ29uaWNFcXVhbEFyZWFSYXc9Y28sdC5nZW9Db25pY0VxdWlkaXN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIGZvKG1vKS5zY2FsZSgxMzEuMTU0KS5jZW50ZXIoWzAsMTMuOTM4OV0pfSx0Lmdlb0NvbmljRXF1aWRpc3RhbnRSYXc9bW8sdC5nZW9FcXVpcmVjdGFuZ3VsYXI9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oYm8pLnNjYWxlKDE1Mi42Myl9LHQuZ2VvRXF1aXJlY3Rhbmd1bGFyUmF3PWJvLHQuZ2VvR25vbW9uaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oeG8pLnNjYWxlKDE0NC4wNDkpLmNsaXBBbmdsZSg2MCl9LHQuZ2VvR25vbW9uaWNSYXc9eG8sdC5nZW9JZGVudGl0eT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtyZXR1cm4gaT1vPW51bGwsYX12YXIgbixlLHIsaSxvLGEsdT0xLGY9MCxjPTAscz0xLGw9MSxoPXppLGQ9bnVsbCxwPXppO3JldHVybiBhPXtzdHJlYW06ZnVuY3Rpb24odCl7cmV0dXJuIGkmJm89PT10P2k6aT1oKHAobz10KSl9LHBvc3RjbGlwOmZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPWksZD1uPWU9cj1udWxsLHQoKSk6cH0sY2xpcEV4dGVudDpmdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1udWxsPT1pPyhkPW49ZT1yPW51bGwsemkpOnlpKGQ9K2lbMF1bMF0sbj0raVswXVsxXSxlPStpWzFdWzBdLHI9K2lbMV1bMV0pLHQoKSk6bnVsbD09ZD9udWxsOltbZCxuXSxbZSxyXV19LHNjYWxlOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKCh1PStuKSpzLHUqbCxmLGMpLHQoKSk6dX0sdHJhbnNsYXRlOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKHUqcyx1KmwsZj0rblswXSxjPStuWzFdKSx0KCkpOltmLGNdfSxyZWZsZWN0WDpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13byh1KihzPW4/LTE6MSksdSpsLGYsYyksdCgpKTpzPDB9LHJlZmxlY3RZOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKHUqcyx1KihsPW4/LTE6MSksZixjKSx0KCkpOmw8MH0sZml0RXh0ZW50OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRvKGEsdCxuKX0sZml0U2l6ZTpmdW5jdGlvbih0LG4pe3JldHVybiBubyhhLHQsbil9LGZpdFdpZHRoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGVvKGEsdCxuKX0sZml0SGVpZ2h0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHJvKGEsdCxuKX19fSx0Lmdlb1Byb2plY3Rpb249YW8sdC5nZW9Qcm9qZWN0aW9uTXV0YXRvcj11byx0Lmdlb01lcmNhdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGdvKHZvKS5zY2FsZSg5NjEvV2QpfSx0Lmdlb01lcmNhdG9yUmF3PXZvLHQuZ2VvTmF0dXJhbEVhcnRoMT1mdW5jdGlvbigpe3JldHVybiBhbyhNbykuc2NhbGUoMTc1LjI5NSl9LHQuZ2VvTmF0dXJhbEVhcnRoMVJhdz1Nbyx0Lmdlb09ydGhvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBhbyhBbykuc2NhbGUoMjQ5LjUpLmNsaXBBbmdsZSg5MCtIZCl9LHQuZ2VvT3J0aG9ncmFwaGljUmF3PUFvLHQuZ2VvU3RlcmVvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBhbyhUbykuc2NhbGUoMjUwKS5jbGlwQW5nbGUoMTQyKX0sdC5nZW9TdGVyZW9ncmFwaGljUmF3PVRvLHQuZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yPWZ1bmN0aW9uKCl7dmFyIHQ9Z28oTm8pLG49dC5jZW50ZXIsZT10LnJvdGF0ZTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihbLXRbMV0sdFswXV0pOih0PW4oKSxbdFsxXSwtdFswXV0pfSx0LnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKFt0WzBdLHRbMV0sdC5sZW5ndGg+Mj90WzJdKzkwOjkwXSk6KHQ9ZSgpLFt0WzBdLHRbMV0sdFsyXS05MF0pfSxlKFswLDAsOTBdKS5zY2FsZSgxNTkuMTU1KX0sdC5nZW9UcmFuc3ZlcnNlTWVyY2F0b3JSYXc9Tm8sdC5nZW9Sb3RhdGlvbj1paSx0Lmdlb1N0cmVhbT1icix0Lmdlb1RyYW5zZm9ybT1mdW5jdGlvbih0KXtyZXR1cm57c3RyZWFtOlFpKHQpfX0sdC5jbHVzdGVyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbyxhPTA7dC5lYWNoQWZ0ZXIoZnVuY3Rpb24odCl7dmFyIGU9dC5jaGlsZHJlbjtlPyh0Lng9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKEVvLDApL3QubGVuZ3RofShlKSx0Lnk9ZnVuY3Rpb24odCl7cmV0dXJuIDErdC5yZWR1Y2Uoa28sMCl9KGUpKToodC54PW8/YSs9bih0LG8pOjAsdC55PTAsbz10KX0pO3ZhciB1PWZ1bmN0aW9uKHQpe2Zvcih2YXIgbjtuPXQuY2hpbGRyZW47KXQ9blswXTtyZXR1cm4gdH0odCksZj1mdW5jdGlvbih0KXtmb3IodmFyIG47bj10LmNoaWxkcmVuOyl0PW5bbi5sZW5ndGgtMV07cmV0dXJuIHR9KHQpLGM9dS54LW4odSxmKS8yLHM9Zi54K24oZix1KS8yO3JldHVybiB0LmVhY2hBZnRlcihpP2Z1bmN0aW9uKG4pe24ueD0obi54LXQueCkqZSxuLnk9KHQueS1uLnkpKnJ9OmZ1bmN0aW9uKG4pe24ueD0obi54LWMpLyhzLWMpKmUsbi55PSgxLSh0Lnk/bi55L3QueToxKSkqcn0pfXZhciBuPVNvLGU9MSxyPTEsaT0hMTtyZXR1cm4gdC5zZXBhcmF0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWUsdCk6bn0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSExLGU9K25bMF0scj0rblsxXSx0KTppP251bGw6W2Uscl19LHQubm9kZVNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITAsZT0rblswXSxyPStuWzFdLHQpOmk/W2Uscl06bnVsbH0sdH0sdC5oaWVyYXJjaHk9UG8sdC5wYWNrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gdC54PWUvMix0Lnk9ci8yLG4/dC5lYWNoQmVmb3JlKFFvKG4pKS5lYWNoQWZ0ZXIoSm8oaSwuNSkpLmVhY2hCZWZvcmUoS28oMSkpOnQuZWFjaEJlZm9yZShRbyhabykpLmVhY2hBZnRlcihKbygkbywxKSkuZWFjaEFmdGVyKEpvKGksdC5yL01hdGgubWluKGUscikpKS5lYWNoQmVmb3JlKEtvKE1hdGgubWluKGUscikvKDIqdC5yKSkpLHR9dmFyIG49bnVsbCxlPTEscj0xLGk9JG87cmV0dXJuIHQucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P251bGw6Vm8odCl9KGUpLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rblswXSxyPStuWzFdLHQpOltlLHJdfSx0LnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTppfSx0fSx0LnBhY2tTaWJsaW5ncz1mdW5jdGlvbih0KXtyZXR1cm4gR28odCksdH0sdC5wYWNrRW5jbG9zZT1Vbyx0LnBhcnRpdGlvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG89dC5oZWlnaHQrMTtyZXR1cm4gdC54MD10LnkwPXIsdC54MT1uLHQueTE9ZS9vLHQuZWFjaEJlZm9yZShmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbihlKXtlLmNoaWxkcmVuJiZuYShlLGUueDAsdCooZS5kZXB0aCsxKS9uLGUueDEsdCooZS5kZXB0aCsyKS9uKTt2YXIgaT1lLngwLG89ZS55MCxhPWUueDEtcix1PWUueTEtcjthPGkmJihpPWE9KGkrYSkvMiksdTxvJiYobz11PShvK3UpLzIpLGUueDA9aSxlLnkwPW8sZS54MT1hLGUueTE9dX19KGUsbykpLGkmJnQuZWFjaEJlZm9yZSh0YSksdH12YXIgbj0xLGU9MSxyPTAsaT0hMTtyZXR1cm4gdC5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hIW4sdCk6aX0sdC5zaXplPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStyWzBdLGU9K3JbMV0sdCk6W24sZV19LHQucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rbix0KTpyfSx0fSx0LnN0cmF0aWZ5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgcixpLG8sYSx1LGYsYyxzPXQubGVuZ3RoLGw9bmV3IEFycmF5KHMpLGg9e307Zm9yKGk9MDtpPHM7KytpKXI9dFtpXSx1PWxbaV09bmV3IERvKHIpLG51bGwhPShmPW4ocixpLHQpKSYmKGYrPVwiXCIpJiYoaFtjPWd2Kyh1LmlkPWYpXT1jIGluIGg/X3Y6dSk7Zm9yKGk9MDtpPHM7KytpKWlmKHU9bFtpXSxudWxsIT0oZj1lKHRbaV0saSx0KSkmJihmKz1cIlwiKSl7aWYoIShhPWhbZ3YrZl0pKXRocm93IG5ldyBFcnJvcihcIm1pc3Npbmc6IFwiK2YpO2lmKGE9PT1fdil0aHJvdyBuZXcgRXJyb3IoXCJhbWJpZ3VvdXM6IFwiK2YpO2EuY2hpbGRyZW4/YS5jaGlsZHJlbi5wdXNoKHUpOmEuY2hpbGRyZW49W3VdLHUucGFyZW50PWF9ZWxzZXtpZihvKXRocm93IG5ldyBFcnJvcihcIm11bHRpcGxlIHJvb3RzXCIpO289dX1pZighbyl0aHJvdyBuZXcgRXJyb3IoXCJubyByb290XCIpO2lmKG8ucGFyZW50PXl2LG8uZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0LmRlcHRoPXQucGFyZW50LmRlcHRoKzEsLS1zfSkuZWFjaEJlZm9yZShMbyksby5wYXJlbnQ9bnVsbCxzPjApdGhyb3cgbmV3IEVycm9yKFwiY3ljbGVcIik7cmV0dXJuIG99dmFyIG49ZWEsZT1yYTtyZXR1cm4gdC5pZD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1WbyhlKSx0KTpufSx0LnBhcmVudElkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVZvKG4pLHQpOmV9LHR9LHQudHJlZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGY9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscixpLG8sYT1uZXcgY2EodCwwKSx1PVthXTtuPXUucG9wKCk7KWlmKHI9bi5fLmNoaWxkcmVuKWZvcihuLmNoaWxkcmVuPW5ldyBBcnJheShvPXIubGVuZ3RoKSxpPW8tMTtpPj0wOy0taSl1LnB1c2goZT1uLmNoaWxkcmVuW2ldPW5ldyBjYShyW2ldLGkpKSxlLnBhcmVudD1uO3JldHVybihhLnBhcmVudD1uZXcgY2EobnVsbCwwKSkuY2hpbGRyZW49W2FdLGF9KHQpO2lmKGYuZWFjaEFmdGVyKG4pLGYucGFyZW50Lm09LWYueixmLmVhY2hCZWZvcmUoZSksdSl0LmVhY2hCZWZvcmUocik7ZWxzZXt2YXIgYz10LHM9dCxsPXQ7dC5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQpe3QueDxjLngmJihjPXQpLHQueD5zLngmJihzPXQpLHQuZGVwdGg+bC5kZXB0aCYmKGw9dCl9KTt2YXIgaD1jPT09cz8xOmkoYyxzKS8yLGQ9aC1jLngscD1vLyhzLngraCtkKSx2PWEvKGwuZGVwdGh8fDEpO3QuZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0Lng9KHQueCtkKSpwLHQueT10LmRlcHRoKnZ9KX1yZXR1cm4gdH1mdW5jdGlvbiBuKHQpe3ZhciBuPXQuY2hpbGRyZW4sZT10LnBhcmVudC5jaGlsZHJlbixyPXQuaT9lW3QuaS0xXTpudWxsO2lmKG4peyhmdW5jdGlvbih0KXtmb3IodmFyIG4sZT0wLHI9MCxpPXQuY2hpbGRyZW4sbz1pLmxlbmd0aDstLW8+PTA7KShuPWlbb10pLnorPWUsbi5tKz1lLGUrPW4ucysocis9bi5jKX0pKHQpO3ZhciBvPShuWzBdLnorbltuLmxlbmd0aC0xXS56KS8yO3I/KHQuej1yLnoraSh0Ll8sci5fKSx0Lm09dC56LW8pOnQuej1vfWVsc2UgciYmKHQuej1yLnoraSh0Ll8sci5fKSk7dC5wYXJlbnQuQT1mdW5jdGlvbih0LG4sZSl7aWYobil7Zm9yKHZhciByLG89dCxhPXQsdT1uLGY9by5wYXJlbnQuY2hpbGRyZW5bMF0sYz1vLm0scz1hLm0sbD11Lm0saD1mLm07dT1hYSh1KSxvPW9hKG8pLHUmJm87KWY9b2EoZiksKGE9YWEoYSkpLmE9dCwocj11LnorbC1vLnotYytpKHUuXyxvLl8pKT4wJiYodWEoZmEodSx0LGUpLHQsciksYys9cixzKz1yKSxsKz11Lm0sYys9by5tLGgrPWYubSxzKz1hLm07dSYmIWFhKGEpJiYoYS50PXUsYS5tKz1sLXMpLG8mJiFvYShmKSYmKGYudD1vLGYubSs9Yy1oLGU9dCl9cmV0dXJuIGV9KHQscix0LnBhcmVudC5BfHxlWzBdKX1mdW5jdGlvbiBlKHQpe3QuXy54PXQueit0LnBhcmVudC5tLHQubSs9dC5wYXJlbnQubX1mdW5jdGlvbiByKHQpe3QueCo9byx0Lnk9dC5kZXB0aCphfXZhciBpPWlhLG89MSxhPTEsdT1udWxsO3JldHVybiB0LnNlcGFyYXRpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bix0KTppfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ITEsbz0rblswXSxhPStuWzFdLHQpOnU/bnVsbDpbbyxhXX0sdC5ub2RlU2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0hMCxvPStuWzBdLGE9K25bMV0sdCk6dT9bbyxhXTpudWxsfSx0fSx0LnRyZWVtYXA9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiB0LngwPXQueTA9MCx0LngxPWksdC55MT1vLHQuZWFjaEJlZm9yZShuKSxhPVswXSxyJiZ0LmVhY2hCZWZvcmUodGEpLHR9ZnVuY3Rpb24gbih0KXt2YXIgbj1hW3QuZGVwdGhdLHI9dC54MCtuLGk9dC55MCtuLG89dC54MS1uLGg9dC55MS1uO288ciYmKHI9bz0ocitvKS8yKSxoPGkmJihpPWg9KGkraCkvMiksdC54MD1yLHQueTA9aSx0LngxPW8sdC55MT1oLHQuY2hpbGRyZW4mJihuPWFbdC5kZXB0aCsxXT11KHQpLzIscis9bCh0KS1uLGkrPWYodCktbixvLT1jKHQpLW4saC09cyh0KS1uLG88ciYmKHI9bz0ocitvKS8yKSxoPGkmJihpPWg9KGkraCkvMiksZSh0LHIsaSxvLGgpKX12YXIgZT1tdixyPSExLGk9MSxvPTEsYT1bMF0sdT0kbyxmPSRvLGM9JG8scz0kbyxsPSRvO3JldHVybiB0LnJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSEhbix0KTpyfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K25bMF0sbz0rblsxXSx0KTpbaSxvXX0sdC50aWxlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVZvKG4pLHQpOmV9LHQucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LnBhZGRpbmdJbm5lcihuKS5wYWRkaW5nT3V0ZXIobik6dC5wYWRkaW5nSW5uZXIoKX0sdC5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTp1fSx0LnBhZGRpbmdPdXRlcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LnBhZGRpbmdUb3AobikucGFkZGluZ1JpZ2h0KG4pLnBhZGRpbmdCb3R0b20obikucGFkZGluZ0xlZnQobik6dC5wYWRkaW5nVG9wKCl9LHQucGFkZGluZ1RvcD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmZ9LHQucGFkZGluZ1JpZ2h0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6Y30sdC5wYWRkaW5nQm90dG9tPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6c30sdC5wYWRkaW5nTGVmdD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmx9LHR9LHQudHJlZW1hcEJpbmFyeT1mdW5jdGlvbih0LG4sZSxyLGkpe2Z1bmN0aW9uIG8odCxuLGUscixpLGEsdSl7aWYodD49bi0xKXt2YXIgYz1mW3RdO3JldHVybiBjLngwPXIsYy55MD1pLGMueDE9YSx2b2lkKGMueTE9dSl9Zm9yKHZhciBsPXNbdF0saD1lLzIrbCxkPXQrMSxwPW4tMTtkPHA7KXt2YXIgdj1kK3A+Pj4xO3Nbdl08aD9kPXYrMTpwPXZ9aC1zW2QtMV08c1tkXS1oJiZ0KzE8ZCYmLS1kO3ZhciBnPXNbZF0tbCx5PWUtZztpZihhLXI+dS1pKXt2YXIgXz0ocip5K2EqZykvZTtvKHQsZCxnLHIsaSxfLHUpLG8oZCxuLHksXyxpLGEsdSl9ZWxzZXt2YXIgYj0oaSp5K3UqZykvZTtvKHQsZCxnLHIsaSxhLGIpLG8oZCxuLHkscixiLGEsdSl9fXZhciBhLHUsZj10LmNoaWxkcmVuLGM9Zi5sZW5ndGgscz1uZXcgQXJyYXkoYysxKTtmb3Ioc1swXT11PWE9MDthPGM7KythKXNbYSsxXT11Kz1mW2FdLnZhbHVlO28oMCxjLHQudmFsdWUsbixlLHIsaSl9LHQudHJlZW1hcERpY2U9bmEsdC50cmVlbWFwU2xpY2U9c2EsdC50cmVlbWFwU2xpY2VEaWNlPWZ1bmN0aW9uKHQsbixlLHIsaSl7KDEmdC5kZXB0aD9zYTpuYSkodCxuLGUscixpKX0sdC50cmVlbWFwU3F1YXJpZnk9bXYsdC50cmVlbWFwUmVzcXVhcmlmeT14dix0LmludGVycG9sYXRlPWRuLHQuaW50ZXJwb2xhdGVBcnJheT1mbix0LmludGVycG9sYXRlQmFzaXM9S3QsdC5pbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkPXRuLHQuaW50ZXJwb2xhdGVEYXRlPWNuLHQuaW50ZXJwb2xhdGVOdW1iZXI9c24sdC5pbnRlcnBvbGF0ZU9iamVjdD1sbix0LmludGVycG9sYXRlUm91bmQ9cG4sdC5pbnRlcnBvbGF0ZVN0cmluZz1obix0LmludGVycG9sYXRlVHJhbnNmb3JtQ3NzPXNsLHQuaW50ZXJwb2xhdGVUcmFuc2Zvcm1Tdmc9bGwsdC5pbnRlcnBvbGF0ZVpvb209X24sdC5pbnRlcnBvbGF0ZVJnYj1ybCx0LmludGVycG9sYXRlUmdiQmFzaXM9aWwsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzQ2xvc2VkPW9sLHQuaW50ZXJwb2xhdGVIc2w9Z2wsdC5pbnRlcnBvbGF0ZUhzbExvbmc9eWwsdC5pbnRlcnBvbGF0ZUxhYj1mdW5jdGlvbih0LG4pe3ZhciBlPWFuKCh0PUZ0KHQpKS5sLChuPUZ0KG4pKS5sKSxyPWFuKHQuYSxuLmEpLGk9YW4odC5iLG4uYiksbz1hbih0Lm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQubD1lKG4pLHQuYT1yKG4pLHQuYj1pKG4pLHQub3BhY2l0eT1vKG4pLHQrXCJcIn19LHQuaW50ZXJwb2xhdGVIY2w9X2wsdC5pbnRlcnBvbGF0ZUhjbExvbmc9YmwsdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeD1tbCx0LmludGVycG9sYXRlQ3ViZWhlbGl4TG9uZz14bCx0LnBpZWNld2lzZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT0wLHI9bi5sZW5ndGgtMSxpPW5bMF0sbz1uZXcgQXJyYXkocjwwPzA6cik7ZTxyOylvW2VdPXQoaSxpPW5bKytlXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPU1hdGgubWF4KDAsTWF0aC5taW4oci0xLE1hdGguZmxvb3IodCo9cikpKTtyZXR1cm4gb1tuXSh0LW4pfX0sdC5xdWFudGl6ZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZVtyXT10KHIvKG4tMSkpO3JldHVybiBlfSx0LnBhdGg9b2UsdC5wb2x5Z29uQXJlYT1mdW5jdGlvbih0KXtmb3IodmFyIG4sZT0tMSxyPXQubGVuZ3RoLGk9dFtyLTFdLG89MDsrK2U8cjspbj1pLGk9dFtlXSxvKz1uWzFdKmlbMF0tblswXSppWzFdO3JldHVybiBvLzJ9LHQucG9seWdvbkNlbnRyb2lkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHI9LTEsaT10Lmxlbmd0aCxvPTAsYT0wLHU9dFtpLTFdLGY9MDsrK3I8aTspbj11LHU9dFtyXSxmKz1lPW5bMF0qdVsxXS11WzBdKm5bMV0sbys9KG5bMF0rdVswXSkqZSxhKz0oblsxXSt1WzFdKSplO3JldHVybiBmKj0zLFtvL2YsYS9mXX0sdC5wb2x5Z29uSHVsbD1mdW5jdGlvbih0KXtpZigoZT10Lmxlbmd0aCk8MylyZXR1cm4gbnVsbDt2YXIgbixlLHI9bmV3IEFycmF5KGUpLGk9bmV3IEFycmF5KGUpO2ZvcihuPTA7bjxlOysrbilyW25dPVsrdFtuXVswXSwrdFtuXVsxXSxuXTtmb3Ioci5zb3J0KGRhKSxuPTA7bjxlOysrbilpW25dPVtyW25dWzBdLC1yW25dWzFdXTt2YXIgbz1wYShyKSxhPXBhKGkpLHU9YVswXT09PW9bMF0sZj1hW2EubGVuZ3RoLTFdPT09b1tvLmxlbmd0aC0xXSxjPVtdO2ZvcihuPW8ubGVuZ3RoLTE7bj49MDstLW4pYy5wdXNoKHRbcltvW25dXVsyXV0pO2ZvcihuPSt1O248YS5sZW5ndGgtZjsrK24pYy5wdXNoKHRbclthW25dXVsyXV0pO3JldHVybiBjfSx0LnBvbHlnb25Db250YWlucz1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZSxyLGk9dC5sZW5ndGgsbz10W2ktMV0sYT1uWzBdLHU9blsxXSxmPW9bMF0sYz1vWzFdLHM9ITEsbD0wO2w8aTsrK2wpZT0obz10W2xdKVswXSwocj1vWzFdKT51IT1jPnUmJmE8KGYtZSkqKHUtcikvKGMtcikrZSYmKHM9IXMpLGY9ZSxjPXI7cmV0dXJuIHN9LHQucG9seWdvbkxlbmd0aD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPS0xLGk9dC5sZW5ndGgsbz10W2ktMV0sYT1vWzBdLHU9b1sxXSxmPTA7KytyPGk7KW49YSxlPXUsbi09YT0obz10W3JdKVswXSxlLT11PW9bMV0sZis9TWF0aC5zcXJ0KG4qbitlKmUpO3JldHVybiBmfSx0LnF1YWR0cmVlPWplLHQucmFuZG9tVW5pZm9ybT13dix0LnJhbmRvbU5vcm1hbD1Ndix0LnJhbmRvbUxvZ05vcm1hbD1Bdix0LnJhbmRvbUJhdGVzPU52LHQucmFuZG9tSXJ3aW5IYWxsPVR2LHQucmFuZG9tRXhwb25lbnRpYWw9U3YsdC5zY2FsZUJhbmQ9eWEsdC5zY2FsZVBvaW50PWZ1bmN0aW9uKCl7cmV0dXJuIF9hKHlhKCkucGFkZGluZ0lubmVyKDEpKX0sdC5zY2FsZUlkZW50aXR5PUVhLHQuc2NhbGVMaW5lYXI9U2EsdC5zY2FsZUxvZz1VYSx0LnNjYWxlT3JkaW5hbD1nYSx0LnNjYWxlSW1wbGljaXQ9UHYsdC5zY2FsZVBvdz1PYSx0LnNjYWxlU3FydD1mdW5jdGlvbigpe3JldHVybiBPYSgpLmV4cG9uZW50KC41KX0sdC5zY2FsZVF1YW50aWxlPVlhLHQuc2NhbGVRdWFudGl6ZT1CYSx0LnNjYWxlVGhyZXNob2xkPUZhLHQuc2NhbGVUaW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG9mKGNnLHVnLFZ2LFh2LGp2LEZ2LFl2LER2LHQudGltZUZvcm1hdCkuZG9tYWluKFtuZXcgRGF0ZSgyZTMsMCwxKSxuZXcgRGF0ZSgyZTMsMCwyKV0pfSx0LnNjYWxlVXRjPWZ1bmN0aW9uKCl7cmV0dXJuIG9mKFJnLFBnLHlnLHZnLGRnLGxnLFl2LER2LHQudXRjRm9ybWF0KS5kb21haW4oW0RhdGUuVVRDKDJlMywwLDEpLERhdGUuVVRDKDJlMywwLDIpXSl9LHQuc2NhbGVTZXF1ZW50aWFsPWFmLHQuc2NhbGVEaXZlcmdpbmc9dWYsdC5zY2hlbWVDYXRlZ29yeTEwPVpnLHQuc2NoZW1lQWNjZW50PVFnLHQuc2NoZW1lRGFyazI9SmcsdC5zY2hlbWVQYWlyZWQ9S2csdC5zY2hlbWVQYXN0ZWwxPXR5LHQuc2NoZW1lUGFzdGVsMj1ueSx0LnNjaGVtZVNldDE9ZXksdC5zY2hlbWVTZXQyPXJ5LHQuc2NoZW1lU2V0Mz1peSx0LmludGVycG9sYXRlQnJCRz1heSx0LnNjaGVtZUJyQkc9b3ksdC5pbnRlcnBvbGF0ZVBSR249ZnksdC5zY2hlbWVQUkduPXV5LHQuaW50ZXJwb2xhdGVQaVlHPXN5LHQuc2NoZW1lUGlZRz1jeSx0LmludGVycG9sYXRlUHVPcj1oeSx0LnNjaGVtZVB1T3I9bHksdC5pbnRlcnBvbGF0ZVJkQnU9cHksdC5zY2hlbWVSZEJ1PWR5LHQuaW50ZXJwb2xhdGVSZEd5PWd5LHQuc2NoZW1lUmRHeT12eSx0LmludGVycG9sYXRlUmRZbEJ1PV95LHQuc2NoZW1lUmRZbEJ1PXl5LHQuaW50ZXJwb2xhdGVSZFlsR249bXksdC5zY2hlbWVSZFlsR249YnksdC5pbnRlcnBvbGF0ZVNwZWN0cmFsPXd5LHQuc2NoZW1lU3BlY3RyYWw9eHksdC5pbnRlcnBvbGF0ZUJ1R249QXksdC5zY2hlbWVCdUduPU15LHQuaW50ZXJwb2xhdGVCdVB1PU55LHQuc2NoZW1lQnVQdT1UeSx0LmludGVycG9sYXRlR25CdT1FeSx0LnNjaGVtZUduQnU9U3ksdC5pbnRlcnBvbGF0ZU9yUmQ9Q3ksdC5zY2hlbWVPclJkPWt5LHQuaW50ZXJwb2xhdGVQdUJ1R249enksdC5zY2hlbWVQdUJ1R249UHksdC5pbnRlcnBvbGF0ZVB1QnU9THksdC5zY2hlbWVQdUJ1PVJ5LHQuaW50ZXJwb2xhdGVQdVJkPVV5LHQuc2NoZW1lUHVSZD1EeSx0LmludGVycG9sYXRlUmRQdT1PeSx0LnNjaGVtZVJkUHU9cXksdC5pbnRlcnBvbGF0ZVlsR25CdT1CeSx0LnNjaGVtZVlsR25CdT1ZeSx0LmludGVycG9sYXRlWWxHbj1JeSx0LnNjaGVtZVlsR249RnksdC5pbnRlcnBvbGF0ZVlsT3JCcj1IeSx0LnNjaGVtZVlsT3JCcj1qeSx0LmludGVycG9sYXRlWWxPclJkPUd5LHQuc2NoZW1lWWxPclJkPVh5LHQuaW50ZXJwb2xhdGVCbHVlcz0keSx0LnNjaGVtZUJsdWVzPVZ5LHQuaW50ZXJwb2xhdGVHcmVlbnM9WnksdC5zY2hlbWVHcmVlbnM9V3ksdC5pbnRlcnBvbGF0ZUdyZXlzPUp5LHQuc2NoZW1lR3JleXM9UXksdC5pbnRlcnBvbGF0ZVB1cnBsZXM9dF8sdC5zY2hlbWVQdXJwbGVzPUt5LHQuaW50ZXJwb2xhdGVSZWRzPWVfLHQuc2NoZW1lUmVkcz1uXyx0LmludGVycG9sYXRlT3Jhbmdlcz1pXyx0LnNjaGVtZU9yYW5nZXM9cl8sdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ9b18sdC5pbnRlcnBvbGF0ZVJhaW5ib3c9ZnVuY3Rpb24odCl7KHQ8MHx8dD4xKSYmKHQtPU1hdGguZmxvb3IodCkpO3ZhciBuPU1hdGguYWJzKHQtLjUpO3JldHVybiBmXy5oPTM2MCp0LTEwMCxmXy5zPTEuNS0xLjUqbixmXy5sPS44LS45Km4sZl8rXCJcIn0sdC5pbnRlcnBvbGF0ZVdhcm09YV8sdC5pbnRlcnBvbGF0ZUNvb2w9dV8sdC5pbnRlcnBvbGF0ZVNpbmVib3c9ZnVuY3Rpb24odCl7dmFyIG47cmV0dXJuIHQ9KC41LXQpKk1hdGguUEksY18ucj0yNTUqKG49TWF0aC5zaW4odCkpKm4sY18uZz0yNTUqKG49TWF0aC5zaW4odCtzXykpKm4sY18uYj0yNTUqKG49TWF0aC5zaW4odCtsXykpKm4sY18rXCJcIn0sdC5pbnRlcnBvbGF0ZVZpcmlkaXM9aF8sdC5pbnRlcnBvbGF0ZU1hZ21hPWRfLHQuaW50ZXJwb2xhdGVJbmZlcm5vPXBfLHQuaW50ZXJwb2xhdGVQbGFzbWE9dl8sdC5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGN0KEModCkuY2FsbChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX0sdC5jcmVhdG9yPUMsdC5sb2NhbD1zdCx0Lm1hdGNoZXI9YnMsdC5tb3VzZT1wdCx0Lm5hbWVzcGFjZT1rLHQubmFtZXNwYWNlcz12cyx0LmNsaWVudFBvaW50PWR0LHQuc2VsZWN0PWN0LHQuc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P25ldyB1dChbZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0KV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB1dChbbnVsbD09dD9bXTp0XSx3cyl9LHQuc2VsZWN0aW9uPWZ0LHQuc2VsZWN0b3I9eix0LnNlbGVjdG9yQWxsPUwsdC5zdHlsZT1GLHQudG91Y2g9dnQsdC50b3VjaGVzPWZ1bmN0aW9uKHQsbil7bnVsbD09biYmKG49aHQoKS50b3VjaGVzKTtmb3IodmFyIGU9MCxyPW4/bi5sZW5ndGg6MCxpPW5ldyBBcnJheShyKTtlPHI7KytlKWlbZV09ZHQodCxuW2VdKTtyZXR1cm4gaX0sdC53aW5kb3c9Qix0LmN1c3RvbUV2ZW50PW90LHQuYXJjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0LGMscz0rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyksbD0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksaD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1UXyxkPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLVRfLHA9Z18oZC1oKSx2PWQ+aDtpZihmfHwoZj10PW9lKCkpLGw8cyYmKGM9bCxsPXMscz1jKSxsPk1fKWlmKHA+Tl8tTV8pZi5tb3ZlVG8obCpfXyhoKSxsKnhfKGgpKSxmLmFyYygwLDAsbCxoLGQsIXYpLHM+TV8mJihmLm1vdmVUbyhzKl9fKGQpLHMqeF8oZCkpLGYuYXJjKDAsMCxzLGQsaCx2KSk7ZWxzZXt2YXIgZyx5LF89aCxiPWQsbT1oLHg9ZCx3PXAsTT1wLEE9dS5hcHBseSh0aGlzLGFyZ3VtZW50cykvMixUPUE+TV8mJihpPytpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp3XyhzKnMrbCpsKSksTj1tXyhnXyhsLXMpLzIsK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxTPU4sRT1OO2lmKFQ+TV8pe3ZhciBrPWhmKFQvcyp4XyhBKSksQz1oZihUL2wqeF8oQSkpOyh3LT0yKmspPk1fPyhrKj12PzE6LTEsbSs9ayx4LT1rKToodz0wLG09eD0oaCtkKS8yKSwoTS09MipDKT5NXz8oQyo9dj8xOi0xLF8rPUMsYi09Qyk6KE09MCxfPWI9KGgrZCkvMil9dmFyIFA9bCpfXyhfKSx6PWwqeF8oXyksUj1zKl9fKHgpLEw9cyp4Xyh4KTtpZihOPk1fKXt2YXIgRD1sKl9fKGIpLFU9bCp4XyhiKSxxPXMqX18obSksTz1zKnhfKG0pO2lmKHA8QV8pe3ZhciBZPXc+TV8/ZnVuY3Rpb24odCxuLGUscixpLG8sYSx1KXt2YXIgZj1lLXQsYz1yLW4scz1hLWksbD11LW8saD0ocyoobi1vKS1sKih0LWkpKS8obCpmLXMqYyk7cmV0dXJuW3QraCpmLG4raCpjXX0oUCx6LHEsTyxELFUsUixMKTpbUixMXSxCPVAtWVswXSxGPXotWVsxXSxJPUQtWVswXSxqPVUtWVsxXSxIPTEveF8oZnVuY3Rpb24odCl7cmV0dXJuIHQ+MT8wOnQ8LTE/QV86TWF0aC5hY29zKHQpfSgoQipJK0YqaikvKHdfKEIqQitGKkYpKndfKEkqSStqKmopKSkvMiksWD13XyhZWzBdKllbMF0rWVsxXSpZWzFdKTtTPW1fKE4sKHMtWCkvKEgtMSkpLEU9bV8oTiwobC1YKS8oSCsxKSl9fU0+TV8/RT5NXz8oZz1fZihxLE8sUCx6LGwsRSx2KSx5PV9mKEQsVSxSLEwsbCxFLHYpLGYubW92ZVRvKGcuY3grZy54MDEsZy5jeStnLnkwMSksRTxOP2YuYXJjKGcuY3gsZy5jeSxFLHlfKGcueTAxLGcueDAxKSx5Xyh5LnkwMSx5LngwMSksIXYpOihmLmFyYyhnLmN4LGcuY3ksRSx5XyhnLnkwMSxnLngwMSkseV8oZy55MTEsZy54MTEpLCF2KSxmLmFyYygwLDAsbCx5XyhnLmN5K2cueTExLGcuY3grZy54MTEpLHlfKHkuY3kreS55MTEseS5jeCt5LngxMSksIXYpLGYuYXJjKHkuY3gseS5jeSxFLHlfKHkueTExLHkueDExKSx5Xyh5LnkwMSx5LngwMSksIXYpKSk6KGYubW92ZVRvKFAseiksZi5hcmMoMCwwLGwsXyxiLCF2KSk6Zi5tb3ZlVG8oUCx6KSxzPk1fJiZ3Pk1fP1M+TV8/KGc9X2YoUixMLEQsVSxzLC1TLHYpLHk9X2YoUCx6LHEsTyxzLC1TLHYpLGYubGluZVRvKGcuY3grZy54MDEsZy5jeStnLnkwMSksUzxOP2YuYXJjKGcuY3gsZy5jeSxTLHlfKGcueTAxLGcueDAxKSx5Xyh5LnkwMSx5LngwMSksIXYpOihmLmFyYyhnLmN4LGcuY3ksUyx5XyhnLnkwMSxnLngwMSkseV8oZy55MTEsZy54MTEpLCF2KSxmLmFyYygwLDAscyx5XyhnLmN5K2cueTExLGcuY3grZy54MTEpLHlfKHkuY3kreS55MTEseS5jeCt5LngxMSksdiksZi5hcmMoeS5jeCx5LmN5LFMseV8oeS55MTEseS54MTEpLHlfKHkueTAxLHkueDAxKSwhdikpKTpmLmFyYygwLDAscyx4LG0sdik6Zi5saW5lVG8oUixMKX1lbHNlIGYubW92ZVRvKDAsMCk7aWYoZi5jbG9zZVBhdGgoKSx0KXJldHVybiBmPW51bGwsdCtcIlwifHxudWxsfXZhciBuPWRmLGU9cGYscj1sZigwKSxpPW51bGwsbz12ZixhPWdmLHU9eWYsZj1udWxsO3JldHVybiB0LmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIHQ9KCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2UuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLHI9KCtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2EuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLUFfLzI7cmV0dXJuW19fKHIpKnQseF8ocikqdF19LHQuaW5uZXJSYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0Lm91dGVyUmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC5jb3JuZXJSYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpyfSx0LnBhZFJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6YX0sdC5wYWRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOnV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1udWxsPT1uP251bGw6bix0KTpmfSx0fSx0LmFyZWE9QWYsdC5saW5lPU1mLHQucGllPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgdSxmLGMscyxsLGg9dC5sZW5ndGgsZD0wLHA9bmV3IEFycmF5KGgpLHY9bmV3IEFycmF5KGgpLGc9K2kuYXBwbHkodGhpcyxhcmd1bWVudHMpLHk9TWF0aC5taW4oTl8sTWF0aC5tYXgoLU5fLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpLWcpKSxfPU1hdGgubWluKE1hdGguYWJzKHkpL2gsYS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGI9XyooeTwwPy0xOjEpO2Zvcih1PTA7dTxoOysrdSkobD12W3BbdV09dV09K24odFt1XSx1LHQpKT4wJiYoZCs9bCk7Zm9yKG51bGwhPWU/cC5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodlt0XSx2W25dKX0pOm51bGwhPXImJnAuc29ydChmdW5jdGlvbihuLGUpe3JldHVybiByKHRbbl0sdFtlXSl9KSx1PTAsYz1kPyh5LWgqYikvZDowO3U8aDsrK3UsZz1zKWY9cFt1XSxzPWcrKChsPXZbZl0pPjA/bCpjOjApK2IsdltmXT17ZGF0YTp0W2ZdLGluZGV4OnUsdmFsdWU6bCxzdGFydEFuZ2xlOmcsZW5kQW5nbGU6cyxwYWRBbmdsZTpffTtyZXR1cm4gdn12YXIgbj1OZixlPVRmLHI9bnVsbCxpPWxmKDApLG89bGYoTl8pLGE9bGYoMCk7cmV0dXJuIHQudmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0LnNvcnRWYWx1ZXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bixyPW51bGwsdCk6ZX0sdC5zb3J0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW4sZT1udWxsLHQpOnJ9LHQuc3RhcnRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQuZW5kQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LnBhZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6YX0sdH0sdC5hcmVhUmFkaWFsPVBmLHQucmFkaWFsQXJlYT1QZix0LmxpbmVSYWRpYWw9Q2YsdC5yYWRpYWxMaW5lPUNmLHQucG9pbnRSYWRpYWw9emYsdC5saW5rSG9yaXpvbnRhbD1mdW5jdGlvbigpe3JldHVybiBEZihVZil9LHQubGlua1ZlcnRpY2FsPWZ1bmN0aW9uKCl7cmV0dXJuIERmKHFmKX0sdC5saW5rUmFkaWFsPWZ1bmN0aW9uKCl7dmFyIHQ9RGYoT2YpO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQucmFkaXVzPXQueSxkZWxldGUgdC55LHR9LHQuc3ltYm9sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0O2lmKHJ8fChyPXQ9b2UoKSksbi5hcHBseSh0aGlzLGFyZ3VtZW50cykuZHJhdyhyLCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdClyZXR1cm4gcj1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1sZihrXyksZT1sZig2NCkscj1udWxsO3JldHVybiB0LnR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKGUpLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6bix0KTpyfSx0fSx0LnN5bWJvbHM9WF8sdC5zeW1ib2xDaXJjbGU9a18sdC5zeW1ib2xDcm9zcz1DXyx0LnN5bWJvbERpYW1vbmQ9Ul8sdC5zeW1ib2xTcXVhcmU9T18sdC5zeW1ib2xTdGFyPXFfLHQuc3ltYm9sVHJpYW5nbGU9Ql8sdC5zeW1ib2xXeWU9SF8sdC5jdXJ2ZUJhc2lzQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSWYodCl9LHQuY3VydmVCYXNpc09wZW49ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBqZih0KX0sdC5jdXJ2ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRmYodCl9LHQuY3VydmVCdW5kbGU9R18sdC5jdXJ2ZUNhcmRpbmFsQ2xvc2VkPSRfLHQuY3VydmVDYXJkaW5hbE9wZW49V18sdC5jdXJ2ZUNhcmRpbmFsPVZfLHQuY3VydmVDYXRtdWxsUm9tQ2xvc2VkPVFfLHQuY3VydmVDYXRtdWxsUm9tT3Blbj1KXyx0LmN1cnZlQ2F0bXVsbFJvbT1aXyx0LmN1cnZlTGluZWFyQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgS2YodCl9LHQuY3VydmVMaW5lYXI9bWYsdC5jdXJ2ZU1vbm90b25lWD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGljKHQpfSx0LmN1cnZlTW9ub3RvbmVZPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgb2ModCl9LHQuY3VydmVOYXR1cmFsPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdWModCl9LHQuY3VydmVTdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY2ModCwuNSl9LHQuY3VydmVTdGVwQWZ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjYyh0LDEpfSx0LmN1cnZlU3RlcEJlZm9yZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGNjKHQsMCl9LHQuc3RhY2s9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvLGEsdT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxmPXQubGVuZ3RoLGM9dS5sZW5ndGgscz1uZXcgQXJyYXkoYyk7Zm9yKG89MDtvPGM7KytvKXtmb3IodmFyIGwsaD11W29dLGQ9c1tvXT1uZXcgQXJyYXkoZikscD0wO3A8ZjsrK3ApZFtwXT1sPVswLCtpKHRbcF0saCxwLHQpXSxsLmRhdGE9dFtwXTtkLmtleT1ofWZvcihvPTAsYT1lKHMpO288YzsrK28pc1thW29dXS5pbmRleD1vO3JldHVybiByKHMsYSksc312YXIgbj1sZihbXSksZT1sYyxyPXNjLGk9aGM7cmV0dXJuIHQua2V5cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bGYoRV8uY2FsbChlKSksdCk6bn0sdC52YWx1ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQub3JkZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09bj9sYzpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoRV8uY2FsbChuKSksdCk6ZX0sdC5vZmZzZXQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9zYzpuLHQpOnJ9LHR9LHQuc3RhY2tPZmZzZXRFeHBhbmQ9ZnVuY3Rpb24odCxuKXtpZigocj10Lmxlbmd0aCk+MCl7Zm9yKHZhciBlLHIsaSxvPTAsYT10WzBdLmxlbmd0aDtvPGE7KytvKXtmb3IoaT1lPTA7ZTxyOysrZSlpKz10W2VdW29dWzFdfHwwO2lmKGkpZm9yKGU9MDtlPHI7KytlKXRbZV1bb11bMV0vPWl9c2ModCxuKX19LHQuc3RhY2tPZmZzZXREaXZlcmdpbmc9ZnVuY3Rpb24odCxuKXtpZigodT10Lmxlbmd0aCk+MSlmb3IodmFyIGUscixpLG8sYSx1LGY9MCxjPXRbblswXV0ubGVuZ3RoO2Y8YzsrK2YpZm9yKG89YT0wLGU9MDtlPHU7KytlKShpPShyPXRbbltlXV1bZl0pWzFdLXJbMF0pPj0wPyhyWzBdPW8sclsxXT1vKz1pKTppPDA/KHJbMV09YSxyWzBdPWErPWkpOnJbMF09b30sdC5zdGFja09mZnNldE5vbmU9c2MsdC5zdGFja09mZnNldFNpbGhvdWV0dGU9ZnVuY3Rpb24odCxuKXtpZigoZT10Lmxlbmd0aCk+MCl7Zm9yKHZhciBlLHI9MCxpPXRbblswXV0sbz1pLmxlbmd0aDtyPG87KytyKXtmb3IodmFyIGE9MCx1PTA7YTxlOysrYSl1Kz10W2FdW3JdWzFdfHwwO2lbcl1bMV0rPWlbcl1bMF09LXUvMn1zYyh0LG4pfX0sdC5zdGFja09mZnNldFdpZ2dsZT1mdW5jdGlvbih0LG4pe2lmKChpPXQubGVuZ3RoKT4wJiYocj0oZT10W25bMF1dKS5sZW5ndGgpPjApe2Zvcih2YXIgZSxyLGksbz0wLGE9MTthPHI7KythKXtmb3IodmFyIHU9MCxmPTAsYz0wO3U8aTsrK3Upe2Zvcih2YXIgcz10W25bdV1dLGw9c1thXVsxXXx8MCxoPShsLShzW2EtMV1bMV18fDApKS8yLGQ9MDtkPHU7KytkKXt2YXIgcD10W25bZF1dO2grPShwW2FdWzFdfHwwKS0ocFthLTFdWzFdfHwwKX1mKz1sLGMrPWgqbH1lW2EtMV1bMV0rPWVbYS0xXVswXT1vLGYmJihvLT1jL2YpfWVbYS0xXVsxXSs9ZVthLTFdWzBdPW8sc2ModCxuKX19LHQuc3RhY2tPcmRlckFzY2VuZGluZz1kYyx0LnN0YWNrT3JkZXJEZXNjZW5kaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBkYyh0KS5yZXZlcnNlKCl9LHQuc3RhY2tPcmRlckluc2lkZU91dD1mdW5jdGlvbih0KXt2YXIgbixlLHI9dC5sZW5ndGgsaT10Lm1hcChwYyksbz1sYyh0KS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGlbbl0taVt0XX0pLGE9MCx1PTAsZj1bXSxjPVtdO2ZvcihuPTA7bjxyOysrbillPW9bbl0sYTx1PyhhKz1pW2VdLGYucHVzaChlKSk6KHUrPWlbZV0sYy5wdXNoKGUpKTtyZXR1cm4gYy5yZXZlcnNlKCkuY29uY2F0KGYpfSx0LnN0YWNrT3JkZXJOb25lPWxjLHQuc3RhY2tPcmRlclJldmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGxjKHQpLnJldmVyc2UoKX0sdC50aW1lSW50ZXJ2YWw9SWEsdC50aW1lTWlsbGlzZWNvbmQ9RHYsdC50aW1lTWlsbGlzZWNvbmRzPVV2LHQudXRjTWlsbGlzZWNvbmQ9RHYsdC51dGNNaWxsaXNlY29uZHM9VXYsdC50aW1lU2Vjb25kPVl2LHQudGltZVNlY29uZHM9QnYsdC51dGNTZWNvbmQ9WXYsdC51dGNTZWNvbmRzPUJ2LHQudGltZU1pbnV0ZT1Gdix0LnRpbWVNaW51dGVzPUl2LHQudGltZUhvdXI9anYsdC50aW1lSG91cnM9SHYsdC50aW1lRGF5PVh2LHQudGltZURheXM9R3YsdC50aW1lV2Vlaz1Wdix0LnRpbWVXZWVrcz10Zyx0LnRpbWVTdW5kYXk9VnYsdC50aW1lU3VuZGF5cz10Zyx0LnRpbWVNb25kYXk9JHYsdC50aW1lTW9uZGF5cz1uZyx0LnRpbWVUdWVzZGF5PVd2LHQudGltZVR1ZXNkYXlzPWVnLHQudGltZVdlZG5lc2RheT1adix0LnRpbWVXZWRuZXNkYXlzPXJnLHQudGltZVRodXJzZGF5PVF2LHQudGltZVRodXJzZGF5cz1pZyx0LnRpbWVGcmlkYXk9SnYsdC50aW1lRnJpZGF5cz1vZyx0LnRpbWVTYXR1cmRheT1Ldix0LnRpbWVTYXR1cmRheXM9YWcsdC50aW1lTW9udGg9dWcsdC50aW1lTW9udGhzPWZnLHQudGltZVllYXI9Y2csdC50aW1lWWVhcnM9c2csdC51dGNNaW51dGU9bGcsdC51dGNNaW51dGVzPWhnLHQudXRjSG91cj1kZyx0LnV0Y0hvdXJzPXBnLHQudXRjRGF5PXZnLHQudXRjRGF5cz1nZyx0LnV0Y1dlZWs9eWcsdC51dGNXZWVrcz1BZyx0LnV0Y1N1bmRheT15Zyx0LnV0Y1N1bmRheXM9QWcsdC51dGNNb25kYXk9X2csdC51dGNNb25kYXlzPVRnLHQudXRjVHVlc2RheT1iZyx0LnV0Y1R1ZXNkYXlzPU5nLHQudXRjV2VkbmVzZGF5PW1nLHQudXRjV2VkbmVzZGF5cz1TZyx0LnV0Y1RodXJzZGF5PXhnLHQudXRjVGh1cnNkYXlzPUVnLHQudXRjRnJpZGF5PXdnLHQudXRjRnJpZGF5cz1rZyx0LnV0Y1NhdHVyZGF5PU1nLHQudXRjU2F0dXJkYXlzPUNnLHQudXRjTW9udGg9UGcsdC51dGNNb250aHM9emcsdC51dGNZZWFyPVJnLHQudXRjWWVhcnM9RGcsdC50aW1lRm9ybWF0RGVmYXVsdExvY2FsZT1uZix0LnRpbWVGb3JtYXRMb2NhbGU9JGEsdC5pc29Gb3JtYXQ9RmcsdC5pc29QYXJzZT1JZyx0Lm5vdz13bix0LnRpbWVyPVRuLHQudGltZXJGbHVzaD1Obix0LnRpbWVvdXQ9Q24sdC5pbnRlcnZhbD1mdW5jdGlvbih0LG4sZSl7dmFyIHI9bmV3IEFuLGk9bjtyZXR1cm4gbnVsbD09bj8oci5yZXN0YXJ0KHQsbixlKSxyKToobj0rbixlPW51bGw9PWU/d24oKTorZSxyLnJlc3RhcnQoZnVuY3Rpb24gbyhhKXthKz1pLHIucmVzdGFydChvLGkrPW4sZSksdChhKX0sbixlKSxyKX0sdC50cmFuc2l0aW9uPVluLHQuYWN0aXZlPWZ1bmN0aW9uKHQsbil7dmFyIGUscixpPXQuX190cmFuc2l0aW9uO2lmKGkpe249bnVsbD09bj9udWxsOm4rXCJcIjtmb3IociBpbiBpKWlmKChlPWlbcl0pLnN0YXRlPkxsJiZlLm5hbWU9PT1uKXJldHVybiBuZXcgT24oW1t0XV0saGgsbiwrcil9cmV0dXJuIG51bGx9LHQuaW50ZXJydXB0PURuLHQudm9yb25vaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIG5ldyBCYyh0Lm1hcChmdW5jdGlvbihyLGkpe3ZhciBvPVtNYXRoLnJvdW5kKG4ocixpLHQpL2FiKSphYixNYXRoLnJvdW5kKGUocixpLHQpL2FiKSphYl07cmV0dXJuIG8uaW5kZXg9aSxvLmRhdGE9cixvfSkscil9dmFyIG49Z2MsZT15YyxyPW51bGw7cmV0dXJuIHQucG9seWdvbnM9ZnVuY3Rpb24obil7cmV0dXJuIHQobikucG9seWdvbnMoKX0sdC5saW5rcz1mdW5jdGlvbihuKXtyZXR1cm4gdChuKS5saW5rcygpfSx0LnRyaWFuZ2xlcz1mdW5jdGlvbihuKXtyZXR1cm4gdChuKS50cmlhbmdsZXMoKX0sdC54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTp2YygrZSksdCk6bn0sdC55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjp2YygrbiksdCk6ZX0sdC5leHRlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOltbK25bMF1bMF0sK25bMF1bMV1dLFsrblsxXVswXSwrblsxXVsxXV1dLHQpOnImJltbclswXVswXSxyWzBdWzFdXSxbclsxXVswXSxyWzFdWzFdXV19LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6W1swLDBdLFsrblswXSwrblsxXV1dLHQpOnImJltyWzFdWzBdLXJbMF1bMF0sclsxXVsxXS1yWzBdWzFdXX0sdH0sdC56b29tPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0LnByb3BlcnR5KFwiX196b29tXCIsJGMpLm9uKFwid2hlZWwuem9vbVwiLGYpLm9uKFwibW91c2Vkb3duLnpvb21cIixjKS5vbihcImRibGNsaWNrLnpvb21cIixzKS5maWx0ZXIobSkub24oXCJ0b3VjaHN0YXJ0Lnpvb21cIixsKS5vbihcInRvdWNobW92ZS56b29tXCIsaCkub24oXCJ0b3VjaGVuZC56b29tIHRvdWNoY2FuY2VsLnpvb21cIixkKS5zdHlsZShcInRvdWNoLWFjdGlvblwiLFwibm9uZVwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKX1mdW5jdGlvbiBlKHQsbil7cmV0dXJuKG49TWF0aC5tYXgoeFswXSxNYXRoLm1pbih4WzFdLG4pKSk9PT10Lms/dDpuZXcgSWMobix0LngsdC55KX1mdW5jdGlvbiByKHQsbixlKXt2YXIgcj1uWzBdLWVbMF0qdC5rLGk9blsxXS1lWzFdKnQuaztyZXR1cm4gcj09PXQueCYmaT09PXQueT90Om5ldyBJYyh0LmsscixpKX1mdW5jdGlvbiBpKHQpe3JldHVyblsoK3RbMF1bMF0rICt0WzFdWzBdKS8yLCgrdFswXVsxXSsgK3RbMV1bMV0pLzJdfWZ1bmN0aW9uIG8odCxuLGUpe3Qub24oXCJzdGFydC56b29tXCIsZnVuY3Rpb24oKXthKHRoaXMsYXJndW1lbnRzKS5zdGFydCgpfSkub24oXCJpbnRlcnJ1cHQuem9vbSBlbmQuem9vbVwiLGZ1bmN0aW9uKCl7YSh0aGlzLGFyZ3VtZW50cykuZW5kKCl9KS50d2VlbihcInpvb21cIixmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cyxyPWEodGhpcyx0KSxvPXkuYXBwbHkodGhpcyx0KSx1PWV8fGkobyksZj1NYXRoLm1heChvWzFdWzBdLW9bMF1bMF0sb1sxXVsxXS1vWzBdWzFdKSxjPXRoaXMuX196b29tLHM9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsdCk6bixsPUEoYy5pbnZlcnQodSkuY29uY2F0KGYvYy5rKSxzLmludmVydCh1KS5jb25jYXQoZi9zLmspKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYoMT09PXQpdD1zO2Vsc2V7dmFyIG49bCh0KSxlPWYvblsyXTt0PW5ldyBJYyhlLHVbMF0tblswXSplLHVbMV0tblsxXSplKX1yLnpvb20obnVsbCx0KX19KX1mdW5jdGlvbiBhKHQsbil7Zm9yKHZhciBlLHI9MCxpPVQubGVuZ3RoO3I8aTsrK3IpaWYoKGU9VFtyXSkudGhhdD09PXQpcmV0dXJuIGU7cmV0dXJuIG5ldyB1KHQsbil9ZnVuY3Rpb24gdSh0LG4pe3RoaXMudGhhdD10LHRoaXMuYXJncz1uLHRoaXMuaW5kZXg9LTEsdGhpcy5hY3RpdmU9MCx0aGlzLmV4dGVudD15LmFwcGx5KHQsbil9ZnVuY3Rpb24gZigpe2lmKGcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD1hKHRoaXMsYXJndW1lbnRzKSxuPXRoaXMuX196b29tLGk9TWF0aC5tYXgoeFswXSxNYXRoLm1pbih4WzFdLG4uaypNYXRoLnBvdygyLGIuYXBwbHkodGhpcyxhcmd1bWVudHMpKSkpLG89cHQodGhpcyk7aWYodC53aGVlbCl0Lm1vdXNlWzBdWzBdPT09b1swXSYmdC5tb3VzZVswXVsxXT09PW9bMV18fCh0Lm1vdXNlWzFdPW4uaW52ZXJ0KHQubW91c2VbMF09bykpLGNsZWFyVGltZW91dCh0LndoZWVsKTtlbHNle2lmKG4uaz09PWkpcmV0dXJuO3QubW91c2U9W28sbi5pbnZlcnQobyldLERuKHRoaXMpLHQuc3RhcnQoKX1YYygpLHQud2hlZWw9c2V0VGltZW91dChmdW5jdGlvbigpe3Qud2hlZWw9bnVsbCx0LmVuZCgpfSxrKSx0Lnpvb20oXCJtb3VzZVwiLF8ocihlKG4saSksdC5tb3VzZVswXSx0Lm1vdXNlWzFdKSx0LmV4dGVudCx3KSl9fWZ1bmN0aW9uIGMoKXtpZighdiYmZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuPWEodGhpcyxhcmd1bWVudHMpLGU9Y3QodC5ldmVudC52aWV3KS5vbihcIm1vdXNlbW92ZS56b29tXCIsZnVuY3Rpb24oKXtpZihYYygpLCFuLm1vdmVkKXt2YXIgZT10LmV2ZW50LmNsaWVudFgtbyxpPXQuZXZlbnQuY2xpZW50WS11O24ubW92ZWQ9ZSplK2kqaT5DfW4uem9vbShcIm1vdXNlXCIsXyhyKG4udGhhdC5fX3pvb20sbi5tb3VzZVswXT1wdChuLnRoYXQpLG4ubW91c2VbMV0pLG4uZXh0ZW50LHcpKX0sITApLm9uKFwibW91c2V1cC56b29tXCIsZnVuY3Rpb24oKXtlLm9uKFwibW91c2Vtb3ZlLnpvb20gbW91c2V1cC56b29tXCIsbnVsbCksYnQodC5ldmVudC52aWV3LG4ubW92ZWQpLFhjKCksbi5lbmQoKX0sITApLGk9cHQodGhpcyksbz10LmV2ZW50LmNsaWVudFgsdT10LmV2ZW50LmNsaWVudFk7X3QodC5ldmVudC52aWV3KSxIYygpLG4ubW91c2U9W2ksdGhpcy5fX3pvb20uaW52ZXJ0KGkpXSxEbih0aGlzKSxuLnN0YXJ0KCl9fWZ1bmN0aW9uIHMoKXtpZihnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGk9dGhpcy5fX3pvb20sYT1wdCh0aGlzKSx1PWkuaW52ZXJ0KGEpLGY9aS5rKih0LmV2ZW50LnNoaWZ0S2V5Py41OjIpLGM9XyhyKGUoaSxmKSxhLHUpLHkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHcpO1hjKCksTT4wP2N0KHRoaXMpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihNKS5jYWxsKG8sYyxhKTpjdCh0aGlzKS5jYWxsKG4udHJhbnNmb3JtLGMpfX1mdW5jdGlvbiBsKCl7aWYoZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuLGUscixpLG89YSh0aGlzLGFyZ3VtZW50cyksdT10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGY9dS5sZW5ndGg7Zm9yKEhjKCksZT0wO2U8ZjsrK2UpaT1baT12dCh0aGlzLHUsKHI9dVtlXSkuaWRlbnRpZmllciksdGhpcy5fX3pvb20uaW52ZXJ0KGkpLHIuaWRlbnRpZmllcl0sby50b3VjaDA/by50b3VjaDF8fChvLnRvdWNoMT1pKTooby50b3VjaDA9aSxuPSEwKTtpZihwJiYocD1jbGVhclRpbWVvdXQocCksIW8udG91Y2gxKSlyZXR1cm4gby5lbmQoKSx2b2lkKChpPWN0KHRoaXMpLm9uKFwiZGJsY2xpY2suem9vbVwiKSkmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKTtuJiYocD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cD1udWxsfSxFKSxEbih0aGlzKSxvLnN0YXJ0KCkpfX1mdW5jdGlvbiBoKCl7dmFyIG4saSxvLHUsZj1hKHRoaXMsYXJndW1lbnRzKSxjPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMscz1jLmxlbmd0aDtmb3IoWGMoKSxwJiYocD1jbGVhclRpbWVvdXQocCkpLG49MDtuPHM7KytuKW89dnQodGhpcyxjLChpPWNbbl0pLmlkZW50aWZpZXIpLGYudG91Y2gwJiZmLnRvdWNoMFsyXT09PWkuaWRlbnRpZmllcj9mLnRvdWNoMFswXT1vOmYudG91Y2gxJiZmLnRvdWNoMVsyXT09PWkuaWRlbnRpZmllciYmKGYudG91Y2gxWzBdPW8pO2lmKGk9Zi50aGF0Ll9fem9vbSxmLnRvdWNoMSl7dmFyIGw9Zi50b3VjaDBbMF0saD1mLnRvdWNoMFsxXSxkPWYudG91Y2gxWzBdLHY9Zi50b3VjaDFbMV0sZz0oZz1kWzBdLWxbMF0pKmcrKGc9ZFsxXS1sWzFdKSpnLHk9KHk9dlswXS1oWzBdKSp5Kyh5PXZbMV0taFsxXSkqeTtpPWUoaSxNYXRoLnNxcnQoZy95KSksbz1bKGxbMF0rZFswXSkvMiwobFsxXStkWzFdKS8yXSx1PVsoaFswXSt2WzBdKS8yLChoWzFdK3ZbMV0pLzJdfWVsc2V7aWYoIWYudG91Y2gwKXJldHVybjtvPWYudG91Y2gwWzBdLHU9Zi50b3VjaDBbMV19Zi56b29tKFwidG91Y2hcIixfKHIoaSxvLHUpLGYuZXh0ZW50LHcpKX1mdW5jdGlvbiBkKCl7dmFyIG4sZSxyPWEodGhpcyxhcmd1bWVudHMpLGk9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxvPWkubGVuZ3RoO2ZvcihIYygpLHYmJmNsZWFyVGltZW91dCh2KSx2PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PW51bGx9LEUpLG49MDtuPG87KytuKWU9aVtuXSxyLnRvdWNoMCYmci50b3VjaDBbMl09PT1lLmlkZW50aWZpZXI/ZGVsZXRlIHIudG91Y2gwOnIudG91Y2gxJiZyLnRvdWNoMVsyXT09PWUuaWRlbnRpZmllciYmZGVsZXRlIHIudG91Y2gxO3IudG91Y2gxJiYhci50b3VjaDAmJihyLnRvdWNoMD1yLnRvdWNoMSxkZWxldGUgci50b3VjaDEpLHIudG91Y2gwP3IudG91Y2gwWzFdPXRoaXMuX196b29tLmludmVydChyLnRvdWNoMFswXSk6ci5lbmQoKX12YXIgcCx2LGc9R2MseT1WYyxfPVFjLGI9V2MsbT1aYyx4PVswLDEvMF0sdz1bWy0xLzAsLTEvMF0sWzEvMCwxLzBdXSxNPTI1MCxBPV9uLFQ9W10sUz1OKFwic3RhcnRcIixcInpvb21cIixcImVuZFwiKSxFPTUwMCxrPTE1MCxDPTA7cmV0dXJuIG4udHJhbnNmb3JtPWZ1bmN0aW9uKHQsbil7dmFyIGU9dC5zZWxlY3Rpb24/dC5zZWxlY3Rpb24oKTp0O2UucHJvcGVydHkoXCJfX3pvb21cIiwkYyksdCE9PWU/byh0LG4pOmUuaW50ZXJydXB0KCkuZWFjaChmdW5jdGlvbigpe2EodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCkuem9vbShudWxsLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bikuZW5kKCl9KX0sbi5zY2FsZUJ5PWZ1bmN0aW9uKHQsZSl7bi5zY2FsZVRvKHQsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3pvb20uayooXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplKX0pfSxuLnNjYWxlVG89ZnVuY3Rpb24odCxvKXtuLnRyYW5zZm9ybSh0LGZ1bmN0aW9uKCl7dmFyIHQ9eS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxhPWkodCksdT1uLmludmVydChhKSxmPVwiZnVuY3Rpb25cIj09dHlwZW9mIG8/by5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bztyZXR1cm4gXyhyKGUobixmKSxhLHUpLHQsdyl9KX0sbi50cmFuc2xhdGVCeT1mdW5jdGlvbih0LGUscil7bi50cmFuc2Zvcm0odCxmdW5jdGlvbigpe3JldHVybiBfKHRoaXMuX196b29tLnRyYW5zbGF0ZShcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsXCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpyKSx5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3KX0pfSxuLnRyYW5zbGF0ZVRvPWZ1bmN0aW9uKHQsZSxyKXtuLnRyYW5zZm9ybSh0LGZ1bmN0aW9uKCl7dmFyIHQ9eS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxvPWkodCk7cmV0dXJuIF8oZmIudHJhbnNsYXRlKG9bMF0sb1sxXSkuc2NhbGUobi5rKS50cmFuc2xhdGUoXCJmdW5jdGlvblwiPT10eXBlb2YgZT8tZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LWUsXCJmdW5jdGlvblwiPT10eXBlb2Ygcj8tci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LXIpLHQsdyl9KX0sdS5wcm90b3R5cGU9e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLmluZGV4PVQucHVzaCh0aGlzKS0xLHRoaXMuZW1pdChcInN0YXJ0XCIpKSx0aGlzfSx6b29tOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMubW91c2UmJlwibW91c2VcIiE9PXQmJih0aGlzLm1vdXNlWzFdPW4uaW52ZXJ0KHRoaXMubW91c2VbMF0pKSx0aGlzLnRvdWNoMCYmXCJ0b3VjaFwiIT09dCYmKHRoaXMudG91Y2gwWzFdPW4uaW52ZXJ0KHRoaXMudG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJlwidG91Y2hcIiE9PXQmJih0aGlzLnRvdWNoMVsxXT1uLmludmVydCh0aGlzLnRvdWNoMVswXSkpLHRoaXMudGhhdC5fX3pvb209bix0aGlzLmVtaXQoXCJ6b29tXCIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoVC5zcGxpY2UodGhpcy5pbmRleCwxKSx0aGlzLmluZGV4PS0xLHRoaXMuZW1pdChcImVuZFwiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXtvdChuZXcgZnVuY3Rpb24odCxuLGUpe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPW4sdGhpcy50cmFuc2Zvcm09ZX0obix0LHRoaXMudGhhdC5fX3pvb20pLFMuYXBwbHksUyxbdCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxuLndoZWVsRGVsdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKCt0KSxuKTpifSxuLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoISF0KSxuKTpnfSxuLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoISF0KSxuKTptfSxuLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoW1srdFswXVswXSwrdFswXVsxXV0sWyt0WzFdWzBdLCt0WzFdWzFdXV0pLG4pOnl9LG4uc2NhbGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHhbMF09K3RbMF0seFsxXT0rdFsxXSxuKTpbeFswXSx4WzFdXX0sbi50cmFuc2xhdGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHdbMF1bMF09K3RbMF1bMF0sd1sxXVswXT0rdFsxXVswXSx3WzBdWzFdPSt0WzBdWzFdLHdbMV1bMV09K3RbMV1bMV0sbik6W1t3WzBdWzBdLHdbMF1bMV1dLFt3WzFdWzBdLHdbMV1bMV1dXX0sbi5jb25zdHJhaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89dCxuKTpffSxuLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPSt0LG4pOk19LG4uaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9dCxuKTpBfSxuLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Uy5vbi5hcHBseShTLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1TP246dH0sbi5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhDPSh0PSt0KSp0LG4pOk1hdGguc3FydChDKX0sbn0sdC56b29tVHJhbnNmb3JtPWpjLHQuem9vbUlkZW50aXR5PWZiLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSk7IiwiLyohXG4gKiBMaWdodGJveCBmb3IgQm9vdHN0cmFwIGJ5IEBhc2hsZXlkd1xuICogaHR0cHM6Ly9naXRodWIuY29tL2FzaGxleWR3L2xpZ2h0Ym94XG4gKlxuICogTGljZW5zZTogaHR0cHM6Ly9naXRodWIuY29tL2FzaGxleWR3L2xpZ2h0Ym94L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuK2Z1bmN0aW9uICgkKSB7XG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBMaWdodGJveCA9IChmdW5jdGlvbiAoJCkge1xuXG5cdHZhciBOQU1FID0gJ2Vra29MaWdodGJveCc7XG5cdHZhciBKUVVFUllfTk9fQ09ORkxJQ1QgPSAkLmZuW05BTUVdO1xuXG5cdHZhciBEZWZhdWx0ID0ge1xuXHRcdHRpdGxlOiAnJyxcblx0XHRmb290ZXI6ICcnLFxuXHRcdG1heFdpZHRoOiA5OTk5LFxuXHRcdG1heEhlaWdodDogOTk5OSxcblx0XHRzaG93QXJyb3dzOiB0cnVlLCAvL2Rpc3BsYXkgdGhlIGxlZnQgLyByaWdodCBhcnJvd3Mgb3Igbm90XG5cdFx0d3JhcHBpbmc6IHRydWUsIC8vaWYgdHJ1ZSwgZ2FsbGVyeSBsb29wcyBpbmZpbml0ZWx5XG5cdFx0dHlwZTogbnVsbCwgLy9mb3JjZSB0aGUgbGlnaHRib3ggaW50byBpbWFnZSAvIHlvdXR1YmUgbW9kZS4gaWYgbnVsbCwgb3Igbm90IGltYWdlfHlvdXR1YmV8dmltZW87IGRldGVjdCBpdFxuXHRcdGFsd2F5c1Nob3dDbG9zZTogZmFsc2UsIC8vYWx3YXlzIHNob3cgdGhlIGNsb3NlIGJ1dHRvbiwgZXZlbiBpZiB0aGVyZSBpcyBubyB0aXRsZVxuXHRcdGxvYWRpbmdNZXNzYWdlOiAnPGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtbG9hZGVyXCI+PGRpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PC9kaXY+JywgLy8gaHR0cDovL3RvYmlhc2FobGluLmNvbS9zcGlua2l0L1xuXHRcdGxlZnRBcnJvdzogJzxzcGFuPiYjMTAwOTQ7PC9zcGFuPicsXG5cdFx0cmlnaHRBcnJvdzogJzxzcGFuPiYjMTAwOTU7PC9zcGFuPicsXG5cdFx0c3RyaW5nczoge1xuXHRcdFx0Y2xvc2U6ICdDbG9zZScsXG5cdFx0XHRmYWlsOiAnRmFpbGVkIHRvIGxvYWQgaW1hZ2U6Jyxcblx0XHRcdHR5cGU6ICdDb3VsZCBub3QgZGV0ZWN0IHJlbW90ZSB0YXJnZXQgdHlwZS4gRm9yY2UgdGhlIHR5cGUgdXNpbmcgZGF0YS10eXBlJ1xuXHRcdH0sXG5cdFx0ZG9jOiBkb2N1bWVudCwgLy8gaWYgaW4gYW4gaWZyYW1lIGNhbiBzcGVjaWZ5IHRvcC5kb2N1bWVudFxuXHRcdG9uU2hvdzogZnVuY3Rpb24gb25TaG93KCkge30sXG5cdFx0b25TaG93bjogZnVuY3Rpb24gb25TaG93bigpIHt9LFxuXHRcdG9uSGlkZTogZnVuY3Rpb24gb25IaWRlKCkge30sXG5cdFx0b25IaWRkZW46IGZ1bmN0aW9uIG9uSGlkZGVuKCkge30sXG5cdFx0b25OYXZpZ2F0ZTogZnVuY3Rpb24gb25OYXZpZ2F0ZSgpIHt9LFxuXHRcdG9uQ29udGVudExvYWRlZDogZnVuY3Rpb24gb25Db250ZW50TG9hZGVkKCkge31cblx0fTtcblxuXHR2YXIgTGlnaHRib3ggPSAoZnVuY3Rpb24gKCkge1xuXHRcdF9jcmVhdGVDbGFzcyhMaWdodGJveCwgbnVsbCwgW3tcblx0XHRcdGtleTogJ0RlZmF1bHQnLFxuXG5cdFx0XHQvKipcbiAgICAgICBDbGFzcyBwcm9wZXJ0aWVzOlxuICAgXHQgXyRlbGVtZW50OiBudWxsIC0+IHRoZSA8YT4gZWxlbWVudCBjdXJyZW50bHkgYmVpbmcgZGlzcGxheWVkXG4gICAgXyRtb2RhbDogVGhlIGJvb3RzdHJhcCBtb2RhbCBnZW5lcmF0ZWRcbiAgICAgICBfJG1vZGFsRGlhbG9nOiBUaGUgLm1vZGFsLWRpYWxvZ1xuICAgICAgIF8kbW9kYWxDb250ZW50OiBUaGUgLm1vZGFsLWNvbnRlbnRcbiAgICAgICBfJG1vZGFsQm9keTogVGhlIC5tb2RhbC1ib2R5XG4gICAgICAgXyRtb2RhbEhlYWRlcjogVGhlIC5tb2RhbC1oZWFkZXJcbiAgICAgICBfJG1vZGFsRm9vdGVyOiBUaGUgLm1vZGFsLWZvb3RlclxuICAgIF8kbGlnaHRib3hDb250YWluZXJPbmU6IENvbnRhaW5lciBvZiB0aGUgZmlyc3QgbGlnaHRib3ggZWxlbWVudFxuICAgIF8kbGlnaHRib3hDb250YWluZXJUd286IENvbnRhaW5lciBvZiB0aGUgc2Vjb25kIGxpZ2h0Ym94IGVsZW1lbnRcbiAgICBfJGxpZ2h0Ym94Qm9keTogRmlyc3QgZWxlbWVudCBpbiB0aGUgY29udGFpbmVyXG4gICAgXyRtb2RhbEFycm93czogVGhlIG92ZXJsYXllZCBhcnJvd3MgY29udGFpbmVyXG4gICBcdCBfJGdhbGxlcnlJdGVtczogT3RoZXIgPGE+J3MgYXZhaWxhYmxlIGZvciB0aGlzIGdhbGxlcnlcbiAgICBfZ2FsbGVyeU5hbWU6IE5hbWUgb2YgdGhlIGN1cnJlbnQgZGF0YSgnZ2FsbGVyeScpIHNob3dpbmdcbiAgICBfZ2FsbGVyeUluZGV4OiBUaGUgY3VycmVudCBpbmRleCBvZiB0aGUgXyRnYWxsZXJ5SXRlbXMgYmVpbmcgc2hvd25cbiAgIFx0IF9jb25maWc6IHt9IHRoZSBvcHRpb25zIGZvciB0aGUgbW9kYWxcbiAgICBfbW9kYWxJZDogdW5pcXVlIGlkIGZvciB0aGUgY3VycmVudCBsaWdodGJveFxuICAgIF9wYWRkaW5nIC8gX2JvcmRlcjogQ1NTIHByb3BlcnRpZXMgZm9yIHRoZSBtb2RhbCBjb250YWluZXI7IHRoZXNlIGFyZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgYXZhaWxhYmxlIHNwYWNlIGZvciB0aGUgY29udGVudFxuICAgXHQgKi9cblxuXHRcdFx0Z2V0OiBmdW5jdGlvbiBnZXQoKSB7XG5cdFx0XHRcdHJldHVybiBEZWZhdWx0O1xuXHRcdFx0fVxuXHRcdH1dKTtcblxuXHRcdGZ1bmN0aW9uIExpZ2h0Ym94KCRlbGVtZW50LCBjb25maWcpIHtcblx0XHRcdHZhciBfdGhpcyA9IHRoaXM7XG5cblx0XHRcdF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaWdodGJveCk7XG5cblx0XHRcdHRoaXMuX2NvbmZpZyA9ICQuZXh0ZW5kKHt9LCBEZWZhdWx0LCBjb25maWcpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQXJyb3dzID0gbnVsbDtcblx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IDA7XG5cdFx0XHR0aGlzLl9nYWxsZXJ5TmFtZSA9IG51bGw7XG5cdFx0XHR0aGlzLl9wYWRkaW5nID0gbnVsbDtcblx0XHRcdHRoaXMuX2JvcmRlciA9IG51bGw7XG5cdFx0XHR0aGlzLl90aXRsZUlzU2hvd24gPSBmYWxzZTtcblx0XHRcdHRoaXMuX2Zvb3RlcklzU2hvd24gPSBmYWxzZTtcblx0XHRcdHRoaXMuX3dhbnRlZFdpZHRoID0gMDtcblx0XHRcdHRoaXMuX3dhbnRlZEhlaWdodCA9IDA7XG5cdFx0XHR0aGlzLl90b3VjaHN0YXJ0WCA9IDA7XG5cdFx0XHR0aGlzLl90b3VjaGVuZFggPSAwO1xuXG5cdFx0XHR0aGlzLl9tb2RhbElkID0gJ2Vra29MaWdodGJveC0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMCArIDEpO1xuXHRcdFx0dGhpcy5fJGVsZW1lbnQgPSAkZWxlbWVudCBpbnN0YW5jZW9mIGpRdWVyeSA/ICRlbGVtZW50IDogJCgkZWxlbWVudCk7XG5cblx0XHRcdHRoaXMuX2lzQm9vdHN0cmFwMyA9ICQuZm4ubW9kYWwuQ29uc3RydWN0b3IuVkVSU0lPTlswXSA9PSAzO1xuXG5cdFx0XHR2YXIgaDQgPSAnPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj4nICsgKHRoaXMuX2NvbmZpZy50aXRsZSB8fCBcIiZuYnNwO1wiKSArICc8L2g0Pic7XG5cdFx0XHR2YXIgYnRuID0gJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCInICsgdGhpcy5fY29uZmlnLnN0cmluZ3MuY2xvc2UgKyAnXCI+PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj48L2J1dHRvbj4nO1xuXG5cdFx0XHR2YXIgaGVhZGVyID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXInICsgKHRoaXMuX2NvbmZpZy50aXRsZSB8fCB0aGlzLl9jb25maWcuYWx3YXlzU2hvd0Nsb3NlID8gJycgOiAnIGhpZGUnKSArICdcIj4nICsgKHRoaXMuX2lzQm9vdHN0cmFwMyA/IGJ0biArIGg0IDogaDQgKyBidG4pICsgJzwvZGl2Pic7XG5cdFx0XHR2YXIgZm9vdGVyID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXInICsgKHRoaXMuX2NvbmZpZy5mb290ZXIgPyAnJyA6ICcgaGlkZScpICsgJ1wiPicgKyAodGhpcy5fY29uZmlnLmZvb3RlciB8fCBcIiZuYnNwO1wiKSArICc8L2Rpdj4nO1xuXHRcdFx0dmFyIGJvZHkgPSAnPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1jb250YWluZXJcIj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1pdGVtIGZhZGUgaW4gc2hvd1wiPjwvZGl2PjxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LWl0ZW0gZmFkZVwiPjwvZGl2PjwvZGl2PjwvZGl2Pic7XG5cdFx0XHR2YXIgZGlhbG9nID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiByb2xlPVwiZG9jdW1lbnRcIj48ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPicgKyBoZWFkZXIgKyBib2R5ICsgZm9vdGVyICsgJzwvZGl2PjwvZGl2Pic7XG5cdFx0XHQkKHRoaXMuX2NvbmZpZy5kb2MuYm9keSkuYXBwZW5kKCc8ZGl2IGlkPVwiJyArIHRoaXMuX21vZGFsSWQgKyAnXCIgY2xhc3M9XCJla2tvLWxpZ2h0Ym94IG1vZGFsIGZhZGVcIiB0YWJpbmRleD1cIi0xXCIgdGFiaW5kZXg9XCItMVwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4nICsgZGlhbG9nICsgJzwvZGl2PicpO1xuXG5cdFx0XHR0aGlzLl8kbW9kYWwgPSAkKCcjJyArIHRoaXMuX21vZGFsSWQsIHRoaXMuX2NvbmZpZy5kb2MpO1xuXHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1kaWFsb2cnKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQ29udGVudCA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtY29udGVudCcpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxCb2R5ID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1ib2R5JykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbEhlYWRlciA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtaGVhZGVyJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbEZvb3RlciA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtZm9vdGVyJykuZmlyc3QoKTtcblxuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyID0gdGhpcy5fJG1vZGFsQm9keS5maW5kKCcuZWtrby1saWdodGJveC1jb250YWluZXInKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Qm9keU9uZSA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCc+IGRpdjpmaXJzdC1jaGlsZCcpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbGlnaHRib3hCb2R5VHdvID0gdGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmZpbmQoJz4gZGl2Omxhc3QtY2hpbGQnKS5maXJzdCgpO1xuXG5cdFx0XHR0aGlzLl9ib3JkZXIgPSB0aGlzLl9jYWxjdWxhdGVCb3JkZXJzKCk7XG5cdFx0XHR0aGlzLl9wYWRkaW5nID0gdGhpcy5fY2FsY3VsYXRlUGFkZGluZygpO1xuXG5cdFx0XHR0aGlzLl9nYWxsZXJ5TmFtZSA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2dhbGxlcnknKTtcblx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5TmFtZSkge1xuXHRcdFx0XHR0aGlzLl8kZ2FsbGVyeUl0ZW1zID0gJChkb2N1bWVudC5ib2R5KS5maW5kKCcqW2RhdGEtZ2FsbGVyeT1cIicgKyB0aGlzLl9nYWxsZXJ5TmFtZSArICdcIl0nKTtcblx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4ID0gdGhpcy5fJGdhbGxlcnlJdGVtcy5pbmRleCh0aGlzLl8kZWxlbWVudCk7XG5cdFx0XHRcdCQoZG9jdW1lbnQpLm9uKCdrZXlkb3duLmVra29MaWdodGJveCcsIHRoaXMuX25hdmlnYXRpb25hbEJpbmRlci5iaW5kKHRoaXMpKTtcblxuXHRcdFx0XHQvLyBhZGQgdGhlIGRpcmVjdGlvbmFsIGFycm93cyB0byB0aGUgbW9kYWxcblx0XHRcdFx0aWYgKHRoaXMuX2NvbmZpZy5zaG93QXJyb3dzICYmIHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5hcHBlbmQoJzxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5XCI+PGEgaHJlZj1cIiNcIj4nICsgdGhpcy5fY29uZmlnLmxlZnRBcnJvdyArICc8L2E+PGEgaHJlZj1cIiNcIj4nICsgdGhpcy5fY29uZmlnLnJpZ2h0QXJyb3cgKyAnPC9hPjwvZGl2PicpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEFycm93cyA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCdkaXYuZWtrby1saWdodGJveC1uYXYtb3ZlcmxheScpLmZpcnN0KCk7XG5cdFx0XHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLm9uKCdjbGljaycsICdhOmZpcnN0LWNoaWxkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5vbignY2xpY2snLCAnYTpsYXN0LWNoaWxkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzLm5hdmlnYXRlUmlnaHQoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZU5hdmlnYXRpb24oKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLl8kbW9kYWwub24oJ3Nob3cuYnMubW9kYWwnLCB0aGlzLl9jb25maWcub25TaG93LmJpbmQodGhpcykpLm9uKCdzaG93bi5icy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0X3RoaXMuX3RvZ2dsZUxvYWRpbmcodHJ1ZSk7XG5cdFx0XHRcdF90aGlzLl9oYW5kbGUoKTtcblx0XHRcdFx0cmV0dXJuIF90aGlzLl9jb25maWcub25TaG93bi5jYWxsKF90aGlzKTtcblx0XHRcdH0pLm9uKCdoaWRlLmJzLm1vZGFsJywgdGhpcy5fY29uZmlnLm9uSGlkZS5iaW5kKHRoaXMpKS5vbignaGlkZGVuLmJzLm1vZGFsJywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRpZiAoX3RoaXMuX2dhbGxlcnlOYW1lKSB7XG5cdFx0XHRcdFx0JChkb2N1bWVudCkub2ZmKCdrZXlkb3duLmVra29MaWdodGJveCcpO1xuXHRcdFx0XHRcdCQod2luZG93KS5vZmYoJ3Jlc2l6ZS5la2tvTGlnaHRib3gnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRfdGhpcy5fJG1vZGFsLnJlbW92ZSgpO1xuXHRcdFx0XHRyZXR1cm4gX3RoaXMuX2NvbmZpZy5vbkhpZGRlbi5jYWxsKF90aGlzKTtcblx0XHRcdH0pLm1vZGFsKHRoaXMuX2NvbmZpZyk7XG5cblx0XHRcdCQod2luZG93KS5vbigncmVzaXplLmVra29MaWdodGJveCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0X3RoaXMuX3Jlc2l6ZShfdGhpcy5fd2FudGVkV2lkdGgsIF90aGlzLl93YW50ZWRIZWlnaHQpO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIub24oJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b3VjaHN0YXJ0WCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnNjcmVlblg7XG5cdFx0XHR9KS5vbigndG91Y2hlbmQnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b3VjaGVuZFggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5zY3JlZW5YO1xuXHRcdFx0XHRfdGhpcy5fc3dpcGVHZXN1cmUoKTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdF9jcmVhdGVDbGFzcyhMaWdodGJveCwgW3tcblx0XHRcdGtleTogJ2VsZW1lbnQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIGVsZW1lbnQoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kZWxlbWVudDtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdtb2RhbCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbW9kYWwoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kbW9kYWw7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbmF2aWdhdGVUbycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbmF2aWdhdGVUbyhpbmRleCkge1xuXG5cdFx0XHRcdGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDEpIHJldHVybiB0aGlzO1xuXG5cdFx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IGluZGV4O1xuXG5cdFx0XHRcdHRoaXMudXBkYXRlTmF2aWdhdGlvbigpO1xuXG5cdFx0XHRcdHRoaXMuXyRlbGVtZW50ID0gJCh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmdldCh0aGlzLl9nYWxsZXJ5SW5kZXgpKTtcblx0XHRcdFx0dGhpcy5faGFuZGxlKCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbmF2aWdhdGVMZWZ0Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBuYXZpZ2F0ZUxlZnQoKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID09PSAxKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gMCkge1xuXHRcdFx0XHRcdGlmICh0aGlzLl9jb25maWcud3JhcHBpbmcpIHRoaXMuX2dhbGxlcnlJbmRleCA9IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMTtlbHNlIHJldHVybjtcblx0XHRcdFx0fSBlbHNlIC8vY2lyY3VsYXJcblx0XHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXgtLTtcblxuXHRcdFx0XHR0aGlzLl9jb25maWcub25OYXZpZ2F0ZS5jYWxsKHRoaXMsICdsZWZ0JywgdGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdFx0cmV0dXJuIHRoaXMubmF2aWdhdGVUbyh0aGlzLl9nYWxsZXJ5SW5kZXgpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ25hdmlnYXRlUmlnaHQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG5hdmlnYXRlUmlnaHQoKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID09PSAxKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gdGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggLSAxKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX2NvbmZpZy53cmFwcGluZykgdGhpcy5fZ2FsbGVyeUluZGV4ID0gMDtlbHNlIHJldHVybjtcblx0XHRcdFx0fSBlbHNlIC8vY2lyY3VsYXJcblx0XHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXgrKztcblxuXHRcdFx0XHR0aGlzLl9jb25maWcub25OYXZpZ2F0ZS5jYWxsKHRoaXMsICdyaWdodCcsIHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlVG8odGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICd1cGRhdGVOYXZpZ2F0aW9uJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiB1cGRhdGVOYXZpZ2F0aW9uKCkge1xuXHRcdFx0XHRpZiAoIXRoaXMuX2NvbmZpZy53cmFwcGluZykge1xuXHRcdFx0XHRcdHZhciAkbmF2ID0gdGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmZpbmQoJ2Rpdi5la2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5Jyk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gMCkgJG5hdi5maW5kKCdhOmZpcnN0LWNoaWxkJykuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7ZWxzZSAkbmF2LmZpbmQoJ2E6Zmlyc3QtY2hpbGQnKS5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMSkgJG5hdi5maW5kKCdhOmxhc3QtY2hpbGQnKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtlbHNlICRuYXYuZmluZCgnYTpsYXN0LWNoaWxkJykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdjbG9zZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gY2xvc2UoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kbW9kYWwubW9kYWwoJ2hpZGUnKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gaGVscGVyIHByaXZhdGUgbWV0aG9kc1xuXHRcdH0sIHtcblx0XHRcdGtleTogJ19uYXZpZ2F0aW9uYWxCaW5kZXInLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9uYXZpZ2F0aW9uYWxCaW5kZXIoZXZlbnQpIHtcblx0XHRcdFx0ZXZlbnQgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7XG5cdFx0XHRcdGlmIChldmVudC5rZXlDb2RlID09PSAzOSkgcmV0dXJuIHRoaXMubmF2aWdhdGVSaWdodCgpO1xuXHRcdFx0XHRpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzcpIHJldHVybiB0aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB0eXBlIGRldGVjdGlvbiBwcml2YXRlIG1ldGhvZHNcblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZGV0ZWN0UmVtb3RlVHlwZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2RldGVjdFJlbW90ZVR5cGUoc3JjLCB0eXBlKSB7XG5cblx0XHRcdFx0dHlwZSA9IHR5cGUgfHwgZmFsc2U7XG5cblx0XHRcdFx0aWYgKCF0eXBlICYmIHRoaXMuX2lzSW1hZ2Uoc3JjKSkgdHlwZSA9ICdpbWFnZSc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRZb3V0dWJlSWQoc3JjKSkgdHlwZSA9ICd5b3V0dWJlJztcblx0XHRcdFx0aWYgKCF0eXBlICYmIHRoaXMuX2dldFZpbWVvSWQoc3JjKSkgdHlwZSA9ICd2aW1lbyc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRJbnN0YWdyYW1JZChzcmMpKSB0eXBlID0gJ2luc3RhZ3JhbSc7XG5cblx0XHRcdFx0aWYgKCF0eXBlIHx8IFsnaW1hZ2UnLCAneW91dHViZScsICd2aW1lbycsICdpbnN0YWdyYW0nLCAndmlkZW8nLCAndXJsJ10uaW5kZXhPZih0eXBlKSA8IDApIHR5cGUgPSAndXJsJztcblxuXHRcdFx0XHRyZXR1cm4gdHlwZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfaXNJbWFnZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2lzSW1hZ2Uoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLm1hdGNoKC8oXmRhdGE6aW1hZ2VcXC8uKiwpfChcXC4oanAoZXxnfGVnKXxnaWZ8cG5nfGJtcHx3ZWJwfHN2ZykoKFxcP3wjKS4qKT8kKS9pKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfY29udGFpbmVyVG9Vc2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9jb250YWluZXJUb1VzZSgpIHtcblx0XHRcdFx0dmFyIF90aGlzMiA9IHRoaXM7XG5cblx0XHRcdFx0Ly8gaWYgY3VycmVudGx5IHNob3dpbmcgYW4gaW1hZ2UsIGZhZGUgaXQgb3V0IGFuZCByZW1vdmVcblx0XHRcdFx0dmFyICR0b1VzZSA9IHRoaXMuXyRsaWdodGJveEJvZHlUd287XG5cdFx0XHRcdHZhciAkY3VycmVudCA9IHRoaXMuXyRsaWdodGJveEJvZHlPbmU7XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRsaWdodGJveEJvZHlUd28uaGFzQ2xhc3MoJ2luJykpIHtcblx0XHRcdFx0XHQkdG9Vc2UgPSB0aGlzLl8kbGlnaHRib3hCb2R5T25lO1xuXHRcdFx0XHRcdCRjdXJyZW50ID0gdGhpcy5fJGxpZ2h0Ym94Qm9keVR3bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCRjdXJyZW50LnJlbW92ZUNsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdGlmICghX3RoaXMyLl8kbGlnaHRib3hCb2R5VHdvLmhhc0NsYXNzKCdpbicpKSBfdGhpczIuXyRsaWdodGJveEJvZHlUd28uZW1wdHkoKTtcblx0XHRcdFx0XHRpZiAoIV90aGlzMi5fJGxpZ2h0Ym94Qm9keU9uZS5oYXNDbGFzcygnaW4nKSkgX3RoaXMyLl8kbGlnaHRib3hCb2R5T25lLmVtcHR5KCk7XG5cdFx0XHRcdH0sIDUwMCk7XG5cblx0XHRcdFx0JHRvVXNlLmFkZENsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdHJldHVybiAkdG9Vc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2hhbmRsZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2hhbmRsZSgpIHtcblxuXHRcdFx0XHR2YXIgJHRvVXNlID0gdGhpcy5fY29udGFpbmVyVG9Vc2UoKTtcblx0XHRcdFx0dGhpcy5fdXBkYXRlVGl0bGVBbmRGb290ZXIoKTtcblxuXHRcdFx0XHR2YXIgY3VycmVudFJlbW90ZSA9IHRoaXMuXyRlbGVtZW50LmF0dHIoJ2RhdGEtcmVtb3RlJykgfHwgdGhpcy5fJGVsZW1lbnQuYXR0cignaHJlZicpO1xuXHRcdFx0XHR2YXIgY3VycmVudFR5cGUgPSB0aGlzLl9kZXRlY3RSZW1vdGVUeXBlKGN1cnJlbnRSZW1vdGUsIHRoaXMuXyRlbGVtZW50LmF0dHIoJ2RhdGEtdHlwZScpIHx8IGZhbHNlKTtcblxuXHRcdFx0XHRpZiAoWydpbWFnZScsICd5b3V0dWJlJywgJ3ZpbWVvJywgJ2luc3RhZ3JhbScsICd2aWRlbycsICd1cmwnXS5pbmRleE9mKGN1cnJlbnRUeXBlKSA8IDApIHJldHVybiB0aGlzLl9lcnJvcih0aGlzLl9jb25maWcuc3RyaW5ncy50eXBlKTtcblxuXHRcdFx0XHRzd2l0Y2ggKGN1cnJlbnRUeXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSAnaW1hZ2UnOlxuXHRcdFx0XHRcdFx0dGhpcy5fcHJlbG9hZEltYWdlKGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9wcmVsb2FkSW1hZ2VCeUluZGV4KHRoaXMuX2dhbGxlcnlJbmRleCwgMyk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICd5b3V0dWJlJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dZb3V0dWJlVmlkZW8oY3VycmVudFJlbW90ZSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ3ZpbWVvJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dWaW1lb1ZpZGVvKHRoaXMuX2dldFZpbWVvSWQoY3VycmVudFJlbW90ZSksICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdpbnN0YWdyYW0nOlxuXHRcdFx0XHRcdFx0dGhpcy5fc2hvd0luc3RhZ3JhbVZpZGVvKHRoaXMuX2dldEluc3RhZ3JhbUlkKGN1cnJlbnRSZW1vdGUpLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAndmlkZW8nOlxuXHRcdFx0XHRcdFx0dGhpcy5fc2hvd0h0bWw1VmlkZW8oY3VycmVudFJlbW90ZSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHQvLyB1cmxcblx0XHRcdFx0XHRcdHRoaXMuX2xvYWRSZW1vdGVDb250ZW50KGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19nZXRZb3V0dWJlSWQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9nZXRZb3V0dWJlSWQoc3RyaW5nKSB7XG5cdFx0XHRcdGlmICghc3RyaW5nKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdHZhciBtYXRjaGVzID0gc3RyaW5nLm1hdGNoKC9eLiooeW91dHUuYmVcXC98dlxcL3x1XFwvXFx3XFwvfGVtYmVkXFwvfHdhdGNoXFw/dj18XFwmdj0pKFteI1xcJlxcP10qKS4qLyk7XG5cdFx0XHRcdHJldHVybiBtYXRjaGVzICYmIG1hdGNoZXNbMl0ubGVuZ3RoID09PSAxMSA/IG1hdGNoZXNbMl0gOiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZ2V0VmltZW9JZCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2dldFZpbWVvSWQoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLmluZGV4T2YoJ3ZpbWVvJykgPiAwID8gc3RyaW5nIDogZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2dldEluc3RhZ3JhbUlkJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZ2V0SW5zdGFncmFtSWQoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLmluZGV4T2YoJ2luc3RhZ3JhbScpID4gMCA/IHN0cmluZyA6IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBsYXlvdXQgcHJpdmF0ZSBtZXRob2RzXG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3RvZ2dsZUxvYWRpbmcnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF90b2dnbGVMb2FkaW5nKHNob3cpIHtcblx0XHRcdFx0c2hvdyA9IHNob3cgfHwgZmFsc2U7XG5cdFx0XHRcdGlmIChzaG93KSB7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsLnJlbW92ZUNsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdFx0JCgnLm1vZGFsLWJhY2tkcm9wJykuYXBwZW5kKHRoaXMuX2NvbmZpZy5sb2FkaW5nTWVzc2FnZSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZGlzcGxheScsICdibG9jaycpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbC5hZGRDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRcdCQoJy5tb2RhbC1iYWNrZHJvcCcpLmZpbmQoJy5la2tvLWxpZ2h0Ym94LWxvYWRlcicpLnJlbW92ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19jYWxjdWxhdGVCb3JkZXJzJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY2FsY3VsYXRlQm9yZGVycygpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0b3A6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci10b3Atd2lkdGgnKSxcblx0XHRcdFx0XHRyaWdodDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLXJpZ2h0LXdpZHRoJyksXG5cdFx0XHRcdFx0Ym90dG9tOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdib3JkZXItYm90dG9tLXdpZHRoJyksXG5cdFx0XHRcdFx0bGVmdDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLWxlZnQtd2lkdGgnKVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19jYWxjdWxhdGVQYWRkaW5nJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY2FsY3VsYXRlUGFkZGluZygpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0b3A6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctdG9wJyksXG5cdFx0XHRcdFx0cmlnaHQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctcmlnaHQnKSxcblx0XHRcdFx0XHRib3R0b206IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctYm90dG9tJyksXG5cdFx0XHRcdFx0bGVmdDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgncGFkZGluZy1sZWZ0Jylcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfdG90YWxDc3NCeUF0dHJpYnV0ZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoYXR0cmlidXRlKSB7XG5cdFx0XHRcdHJldHVybiBwYXJzZUludCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKGF0dHJpYnV0ZSksIDEwKSArIHBhcnNlSW50KHRoaXMuXyRtb2RhbENvbnRlbnQuY3NzKGF0dHJpYnV0ZSksIDEwKSArIHBhcnNlSW50KHRoaXMuXyRtb2RhbEJvZHkuY3NzKGF0dHJpYnV0ZSksIDEwKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfdXBkYXRlVGl0bGVBbmRGb290ZXInLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF91cGRhdGVUaXRsZUFuZEZvb3RlcigpIHtcblx0XHRcdFx0dmFyIHRpdGxlID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgndGl0bGUnKSB8fCBcIlwiO1xuXHRcdFx0XHR2YXIgY2FwdGlvbiA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2Zvb3RlcicpIHx8IFwiXCI7XG5cblx0XHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gZmFsc2U7XG5cdFx0XHRcdGlmICh0aXRsZSB8fCB0aGlzLl9jb25maWcuYWx3YXlzU2hvd0Nsb3NlKSB7XG5cdFx0XHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxIZWFkZXIuY3NzKCdkaXNwbGF5JywgJycpLmZpbmQoJy5tb2RhbC10aXRsZScpLmh0bWwodGl0bGUgfHwgXCImbmJzcDtcIik7XG5cdFx0XHRcdH0gZWxzZSB0aGlzLl8kbW9kYWxIZWFkZXIuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuXHRcdFx0XHR0aGlzLl9mb290ZXJJc1Nob3duID0gZmFsc2U7XG5cdFx0XHRcdGlmIChjYXB0aW9uKSB7XG5cdFx0XHRcdFx0dGhpcy5fZm9vdGVySXNTaG93biA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRm9vdGVyLmNzcygnZGlzcGxheScsICcnKS5odG1sKGNhcHRpb24pO1xuXHRcdFx0XHR9IGVsc2UgdGhpcy5fJG1vZGFsRm9vdGVyLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dZb3V0dWJlVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93WW91dHViZVZpZGVvKHJlbW90ZSwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIGlkID0gdGhpcy5fZ2V0WW91dHViZUlkKHJlbW90ZSk7XG5cdFx0XHRcdHZhciBxdWVyeSA9IHJlbW90ZS5pbmRleE9mKCcmJykgPiAwID8gcmVtb3RlLnN1YnN0cihyZW1vdGUuaW5kZXhPZignJicpKSA6ICcnO1xuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDU2MDtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2hlaWdodCcpIHx8IHdpZHRoIC8gKDU2MCAvIDMxNSk7XG5cdFx0XHRcdHJldHVybiB0aGlzLl9zaG93VmlkZW9JZnJhbWUoJy8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/YmFkZ2U9MCZhdXRvcGxheT0xJmh0bWw1PTEnICsgcXVlcnksIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd1ZpbWVvVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93VmltZW9WaWRlbyhpZCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1MDA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fc2hvd1ZpZGVvSWZyYW1lKGlkICsgJz9hdXRvcGxheT0xJywgd2lkdGgsIGhlaWdodCwgJGNvbnRhaW5lckZvckVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93SW5zdGFncmFtVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93SW5zdGFncmFtVmlkZW8oaWQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIGluc3RhZ3JhbSBsb2FkIHRoZWlyIGNvbnRlbnQgaW50byBpZnJhbWUncyBzbyB0aGlzIGNhbiBiZSBwdXQgc3RyYWlnaHQgaW50byB0aGUgZWxlbWVudFxuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDYxMjtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHdpZHRoICsgODA7XG5cdFx0XHRcdGlkID0gaWQuc3Vic3RyKC0xKSAhPT0gJy8nID8gaWQgKyAnLycgOiBpZDsgLy8gZW5zdXJlIGlkIGhhcyB0cmFpbGluZyBzbGFzaFxuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8aWZyYW1lIHdpZHRoPVwiJyArIHdpZHRoICsgJ1wiIGhlaWdodD1cIicgKyBoZWlnaHQgKyAnXCIgc3JjPVwiJyArIGlkICsgJ2VtYmVkL1wiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gc2hvd2luZyB2aWRlb1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXHRcdFx0XHR0aGlzLl90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dWaWRlb0lmcmFtZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Nob3dWaWRlb0lmcmFtZSh1cmwsIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIHNob3VsZCBiZSB1c2VkIGZvciB2aWRlb3Mgb25seS4gZm9yIHJlbW90ZSBjb250ZW50IHVzZSBsb2FkUmVtb3RlQ29udGVudCAoZGF0YS10eXBlPXVybClcblx0XHRcdFx0aGVpZ2h0ID0gaGVpZ2h0IHx8IHdpZHRoOyAvLyBkZWZhdWx0IHRvIHNxdWFyZVxuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8ZGl2IGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZC1yZXNwb25zaXZlLTE2Ynk5XCI+PGlmcmFtZSB3aWR0aD1cIicgKyB3aWR0aCArICdcIiBoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiIHNyYz1cIicgKyB1cmwgKyAnXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3dmdWxsc2NyZWVuIGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZS1pdGVtXCI+PC9pZnJhbWU+PC9kaXY+Jyk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSB0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsgLy9oaWRlIHRoZSBhcnJvd3Mgd2hlbiBzaG93aW5nIHZpZGVvXG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd0h0bWw1VmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93SHRtbDVWaWRlbyh1cmwsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIHNob3VsZCBiZSB1c2VkIGZvciB2aWRlb3Mgb25seS4gZm9yIHJlbW90ZSBjb250ZW50IHVzZSBsb2FkUmVtb3RlQ29udGVudCAoZGF0YS10eXBlPXVybClcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8ZGl2IGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZC1yZXNwb25zaXZlLTE2Ynk5XCI+PHZpZGVvIHdpZHRoPVwiJyArIHdpZHRoICsgJ1wiIGhlaWdodD1cIicgKyBoZWlnaHQgKyAnXCIgc3JjPVwiJyArIHVybCArICdcIiBwcmVsb2FkPVwiYXV0b1wiIGF1dG9wbGF5IGNvbnRyb2xzIGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZS1pdGVtXCI+PC92aWRlbz48L2Rpdj4nKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIHRoaXMuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOyAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHNob3dpbmcgdmlkZW9cblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19sb2FkUmVtb3RlQ29udGVudCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2xvYWRSZW1vdGVDb250ZW50KHVybCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIF90aGlzMyA9IHRoaXM7XG5cblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCA1NjA7XG5cblx0XHRcdFx0dmFyIGRpc2FibGVFeHRlcm5hbENoZWNrID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnZGlzYWJsZUV4dGVybmFsQ2hlY2snKSB8fCBmYWxzZTtcblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cblx0XHRcdFx0Ly8gZXh0ZXJuYWwgdXJscyBhcmUgbG9hZGluZyBpbnRvIGFuIGlmcmFtZVxuXHRcdFx0XHQvLyBsb2NhbCBhamF4IGNhbiBiZSBsb2FkZWQgaW50byB0aGUgY29udGFpbmVyIGl0c2VsZlxuXHRcdFx0XHRpZiAoIWRpc2FibGVFeHRlcm5hbENoZWNrICYmICF0aGlzLl9pc0V4dGVybmFsKHVybCkpIHtcblx0XHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5sb2FkKHVybCwgJC5wcm94eShmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXMzLl8kZWxlbWVudC50cmlnZ2VyKCdsb2FkZWQuYnMubW9kYWwnKTtsO1xuXHRcdFx0XHRcdH0pKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8aWZyYW1lIHNyYz1cIicgKyB1cmwgKyAnXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpO1xuXHRcdFx0XHRcdHRoaXMuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbCh0aGlzKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gcmVtb3RlIGNvbnRlbnRcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuXHRcdFx0XHR0aGlzLl9yZXNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19pc0V4dGVybmFsJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfaXNFeHRlcm5hbCh1cmwpIHtcblx0XHRcdFx0dmFyIG1hdGNoID0gdXJsLm1hdGNoKC9eKFteOlxcLz8jXSs6KT8oPzpcXC9cXC8oW15cXC8/I10qKSk/KFtePyNdKyk/KFxcP1teI10qKT8oIy4qKT8vKTtcblx0XHRcdFx0aWYgKHR5cGVvZiBtYXRjaFsxXSA9PT0gXCJzdHJpbmdcIiAmJiBtYXRjaFsxXS5sZW5ndGggPiAwICYmIG1hdGNoWzFdLnRvTG93ZXJDYXNlKCkgIT09IGxvY2F0aW9uLnByb3RvY29sKSByZXR1cm4gdHJ1ZTtcblxuXHRcdFx0XHRpZiAodHlwZW9mIG1hdGNoWzJdID09PSBcInN0cmluZ1wiICYmIG1hdGNoWzJdLmxlbmd0aCA+IDAgJiYgbWF0Y2hbMl0ucmVwbGFjZShuZXcgUmVnRXhwKCc6KCcgKyAoe1xuXHRcdFx0XHRcdFwiaHR0cDpcIjogODAsXG5cdFx0XHRcdFx0XCJodHRwczpcIjogNDQzXG5cdFx0XHRcdH0pW2xvY2F0aW9uLnByb3RvY29sXSArICcpPyQnKSwgXCJcIikgIT09IGxvY2F0aW9uLmhvc3QpIHJldHVybiB0cnVlO1xuXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZXJyb3InLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9lcnJvcihtZXNzYWdlKSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG5cdFx0XHRcdHRoaXMuX2NvbnRhaW5lclRvVXNlKCkuaHRtbChtZXNzYWdlKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKDMwMCwgMzAwKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3ByZWxvYWRJbWFnZUJ5SW5kZXgnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9wcmVsb2FkSW1hZ2VCeUluZGV4KHN0YXJ0SW5kZXgsIG51bWJlck9mVGltZXMpIHtcblxuXHRcdFx0XHRpZiAoIXRoaXMuXyRnYWxsZXJ5SXRlbXMpIHJldHVybjtcblxuXHRcdFx0XHR2YXIgbmV4dCA9ICQodGhpcy5fJGdhbGxlcnlJdGVtcy5nZXQoc3RhcnRJbmRleCksIGZhbHNlKTtcblx0XHRcdFx0aWYgKHR5cGVvZiBuZXh0ID09ICd1bmRlZmluZWQnKSByZXR1cm47XG5cblx0XHRcdFx0dmFyIHNyYyA9IG5leHQuYXR0cignZGF0YS1yZW1vdGUnKSB8fCBuZXh0LmF0dHIoJ2hyZWYnKTtcblx0XHRcdFx0aWYgKG5leHQuYXR0cignZGF0YS10eXBlJykgPT09ICdpbWFnZScgfHwgdGhpcy5faXNJbWFnZShzcmMpKSB0aGlzLl9wcmVsb2FkSW1hZ2Uoc3JjLCBmYWxzZSk7XG5cblx0XHRcdFx0aWYgKG51bWJlck9mVGltZXMgPiAwKSByZXR1cm4gdGhpcy5fcHJlbG9hZEltYWdlQnlJbmRleChzdGFydEluZGV4ICsgMSwgbnVtYmVyT2ZUaW1lcyAtIDEpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19wcmVsb2FkSW1hZ2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9wcmVsb2FkSW1hZ2Uoc3JjLCAkY29udGFpbmVyRm9ySW1hZ2UpIHtcblx0XHRcdFx0dmFyIF90aGlzNCA9IHRoaXM7XG5cblx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlID0gJGNvbnRhaW5lckZvckltYWdlIHx8IGZhbHNlO1xuXG5cdFx0XHRcdHZhciBpbWcgPSBuZXcgSW1hZ2UoKTtcblx0XHRcdFx0aWYgKCRjb250YWluZXJGb3JJbWFnZSkge1xuXHRcdFx0XHRcdChmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0XHRcdC8vIGlmIGxvYWRpbmcgdGFrZXMgPiAyMDBtcyBzaG93IGEgbG9hZGVyXG5cdFx0XHRcdFx0XHR2YXIgbG9hZGluZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlLmFwcGVuZChfdGhpczQuX2NvbmZpZy5sb2FkaW5nTWVzc2FnZSk7XG5cdFx0XHRcdFx0XHR9LCAyMDApO1xuXG5cdFx0XHRcdFx0XHRpbWcub25sb2FkID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRpZiAobG9hZGluZ1RpbWVvdXQpIGNsZWFyVGltZW91dChsb2FkaW5nVGltZW91dCk7XG5cdFx0XHRcdFx0XHRcdGxvYWRpbmdUaW1lb3V0ID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0dmFyIGltYWdlID0gJCgnPGltZyAvPicpO1xuXHRcdFx0XHRcdFx0XHRpbWFnZS5hdHRyKCdzcmMnLCBpbWcuc3JjKTtcblx0XHRcdFx0XHRcdFx0aW1hZ2UuYWRkQ2xhc3MoJ2ltZy1mbHVpZCcpO1xuXG5cdFx0XHRcdFx0XHRcdC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGJvb3RzdHJhcCB2M1xuXHRcdFx0XHRcdFx0XHRpbWFnZS5jc3MoJ3dpZHRoJywgJzEwMCUnKTtcblxuXHRcdFx0XHRcdFx0XHQkY29udGFpbmVyRm9ySW1hZ2UuaHRtbChpbWFnZSk7XG5cdFx0XHRcdFx0XHRcdGlmIChfdGhpczQuXyRtb2RhbEFycm93cykgX3RoaXM0Ll8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJycpOyAvLyByZW1vdmUgZGlzcGxheSB0byBkZWZhdWx0IHRvIGNzcyBwcm9wZXJ0eVxuXG5cdFx0XHRcdFx0XHRcdF90aGlzNC5fcmVzaXplKGltZy53aWR0aCwgaW1nLmhlaWdodCk7XG5cdFx0XHRcdFx0XHRcdF90aGlzNC5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBfdGhpczQuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbChfdGhpczQpO1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdGltZy5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRfdGhpczQuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXM0Ll9lcnJvcihfdGhpczQuX2NvbmZpZy5zdHJpbmdzLmZhaWwgKyAoJyAgJyArIHNyYykpO1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9KSgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aW1nLnNyYyA9IHNyYztcblx0XHRcdFx0cmV0dXJuIGltZztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc3dpcGVHZXN1cmUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zd2lwZUdlc3VyZSgpIHtcblx0XHRcdFx0aWYgKHRoaXMuX3RvdWNoZW5kWCA8IHRoaXMuX3RvdWNoc3RhcnRYKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMubmF2aWdhdGVSaWdodCgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLl90b3VjaGVuZFggPiB0aGlzLl90b3VjaHN0YXJ0WCkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Jlc2l6ZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KSB7XG5cblx0XHRcdFx0aGVpZ2h0ID0gaGVpZ2h0IHx8IHdpZHRoO1xuXHRcdFx0XHR0aGlzLl93YW50ZWRXaWR0aCA9IHdpZHRoO1xuXHRcdFx0XHR0aGlzLl93YW50ZWRIZWlnaHQgPSBoZWlnaHQ7XG5cblx0XHRcdFx0dmFyIGltYWdlQXNwZWNSYXRpbyA9IHdpZHRoIC8gaGVpZ2h0O1xuXG5cdFx0XHRcdC8vIGlmIHdpZHRoID4gdGhlIGF2YWlsYWJsZSBzcGFjZSwgc2NhbGUgZG93biB0aGUgZXhwZWN0ZWQgd2lkdGggYW5kIGhlaWdodFxuXHRcdFx0XHR2YXIgd2lkdGhCb3JkZXJBbmRQYWRkaW5nID0gdGhpcy5fcGFkZGluZy5sZWZ0ICsgdGhpcy5fcGFkZGluZy5yaWdodCArIHRoaXMuX2JvcmRlci5sZWZ0ICsgdGhpcy5fYm9yZGVyLnJpZ2h0O1xuXG5cdFx0XHRcdC8vIGZvcmNlIDEwcHggbWFyZ2luIGlmIHdpbmRvdyBzaXplID4gNTc1cHhcblx0XHRcdFx0dmFyIGFkZE1hcmdpbiA9IHRoaXMuX2NvbmZpZy5kb2MuYm9keS5jbGllbnRXaWR0aCA+IDU3NSA/IDIwIDogMDtcblx0XHRcdFx0dmFyIGRpc2NvdW50TWFyZ2luID0gdGhpcy5fY29uZmlnLmRvYy5ib2R5LmNsaWVudFdpZHRoID4gNTc1ID8gMCA6IDIwO1xuXG5cdFx0XHRcdHZhciBtYXhXaWR0aCA9IE1hdGgubWluKHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nLCB0aGlzLl9jb25maWcuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBhZGRNYXJnaW4sIHRoaXMuX2NvbmZpZy5tYXhXaWR0aCk7XG5cblx0XHRcdFx0aWYgKHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nID4gbWF4V2lkdGgpIHtcblx0XHRcdFx0XHRoZWlnaHQgPSAobWF4V2lkdGggLSB3aWR0aEJvcmRlckFuZFBhZGRpbmcgLSBkaXNjb3VudE1hcmdpbikgLyBpbWFnZUFzcGVjUmF0aW87XG5cdFx0XHRcdFx0d2lkdGggPSBtYXhXaWR0aDtcblx0XHRcdFx0fSBlbHNlIHdpZHRoID0gd2lkdGggKyB3aWR0aEJvcmRlckFuZFBhZGRpbmc7XG5cblx0XHRcdFx0dmFyIGhlYWRlckhlaWdodCA9IDAsXG5cdFx0XHRcdCAgICBmb290ZXJIZWlnaHQgPSAwO1xuXG5cdFx0XHRcdC8vIGFzIHRoZSByZXNpemUgaXMgcGVyZm9ybWVkIHRoZSBtb2RhbCBpcyBzaG93LCB0aGUgY2FsY3VsYXRlIG1pZ2h0IGZhaWxcblx0XHRcdFx0Ly8gaWYgc28sIGRlZmF1bHQgdG8gdGhlIGRlZmF1bHQgc2l6ZXNcblx0XHRcdFx0aWYgKHRoaXMuX2Zvb3RlcklzU2hvd24pIGZvb3RlckhlaWdodCA9IHRoaXMuXyRtb2RhbEZvb3Rlci5vdXRlckhlaWdodCh0cnVlKSB8fCA1NTtcblxuXHRcdFx0XHRpZiAodGhpcy5fdGl0bGVJc1Nob3duKSBoZWFkZXJIZWlnaHQgPSB0aGlzLl8kbW9kYWxIZWFkZXIub3V0ZXJIZWlnaHQodHJ1ZSkgfHwgNjc7XG5cblx0XHRcdFx0dmFyIGJvcmRlclBhZGRpbmcgPSB0aGlzLl9wYWRkaW5nLnRvcCArIHRoaXMuX3BhZGRpbmcuYm90dG9tICsgdGhpcy5fYm9yZGVyLmJvdHRvbSArIHRoaXMuX2JvcmRlci50b3A7XG5cblx0XHRcdFx0Ly9jYWxjdWxhdGVkIGVhY2ggdGltZSBhcyByZXNpemluZyB0aGUgd2luZG93IGNhbiBjYXVzZSB0aGVtIHRvIGNoYW5nZSBkdWUgdG8gQm9vdHN0cmFwcyBmbHVpZCBtYXJnaW5zXG5cdFx0XHRcdHZhciBtYXJnaW5zID0gcGFyc2VGbG9hdCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdtYXJnaW4tdG9wJykpICsgcGFyc2VGbG9hdCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdtYXJnaW4tYm90dG9tJykpO1xuXG5cdFx0XHRcdHZhciBtYXhIZWlnaHQgPSBNYXRoLm1pbihoZWlnaHQsICQod2luZG93KS5oZWlnaHQoKSAtIGJvcmRlclBhZGRpbmcgLSBtYXJnaW5zIC0gaGVhZGVySGVpZ2h0IC0gZm9vdGVySGVpZ2h0LCB0aGlzLl9jb25maWcubWF4SGVpZ2h0IC0gYm9yZGVyUGFkZGluZyAtIGhlYWRlckhlaWdodCAtIGZvb3RlckhlaWdodCk7XG5cblx0XHRcdFx0aWYgKGhlaWdodCA+IG1heEhlaWdodCkge1xuXHRcdFx0XHRcdC8vIGlmIGhlaWdodCA+IHRoZSBhdmFpbGFibGUgaGVpZ2h0LCBzY2FsZSBkb3duIHRoZSB3aWR0aFxuXHRcdFx0XHRcdHdpZHRoID0gTWF0aC5jZWlsKG1heEhlaWdodCAqIGltYWdlQXNwZWNSYXRpbykgKyB3aWR0aEJvcmRlckFuZFBhZGRpbmc7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIuY3NzKCdoZWlnaHQnLCBtYXhIZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdmbGV4JywgMSkuY3NzKCdtYXhXaWR0aCcsIHdpZHRoKTtcblxuXHRcdFx0XHR2YXIgbW9kYWwgPSB0aGlzLl8kbW9kYWwuZGF0YSgnYnMubW9kYWwnKTtcblx0XHRcdFx0aWYgKG1vZGFsKSB7XG5cdFx0XHRcdFx0Ly8gdjQgbWV0aG9kIGlzIG1pc3Rha2VubHkgcHJvdGVjdGVkXG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdG1vZGFsLl9oYW5kbGVVcGRhdGUoKTtcblx0XHRcdFx0XHR9IGNhdGNoIChFeGNlcHRpb24pIHtcblx0XHRcdFx0XHRcdG1vZGFsLmhhbmRsZVVwZGF0ZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9XSwgW3tcblx0XHRcdGtleTogJ19qUXVlcnlJbnRlcmZhY2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9qUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG5cdFx0XHRcdHZhciBfdGhpczUgPSB0aGlzO1xuXG5cdFx0XHRcdGNvbmZpZyA9IGNvbmZpZyB8fCB7fTtcblx0XHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dmFyICR0aGlzID0gJChfdGhpczUpO1xuXHRcdFx0XHRcdHZhciBfY29uZmlnID0gJC5leHRlbmQoe30sIExpZ2h0Ym94LkRlZmF1bHQsICR0aGlzLmRhdGEoKSwgdHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcgJiYgY29uZmlnKTtcblxuXHRcdFx0XHRcdG5ldyBMaWdodGJveChfdGhpczUsIF9jb25maWcpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XSk7XG5cblx0XHRyZXR1cm4gTGlnaHRib3g7XG5cdH0pKCk7XG5cblx0JC5mbltOQU1FXSA9IExpZ2h0Ym94Ll9qUXVlcnlJbnRlcmZhY2U7XG5cdCQuZm5bTkFNRV0uQ29uc3RydWN0b3IgPSBMaWdodGJveDtcblx0JC5mbltOQU1FXS5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xuXHRcdCQuZm5bTkFNRV0gPSBKUVVFUllfTk9fQ09ORkxJQ1Q7XG5cdFx0cmV0dXJuIExpZ2h0Ym94Ll9qUXVlcnlJbnRlcmZhY2U7XG5cdH07XG5cblx0cmV0dXJuIExpZ2h0Ym94O1xufSkoalF1ZXJ5KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVra28tbGlnaHRib3guanMubWFwXG5cbn0oalF1ZXJ5KTtcbiIsIiIsIlxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG5cdHZhciBwcmV2aW91cyA9IFwiIFwiO1xuICAgICQoXCIjaW1hZ2VfZ2FsbGVyeVwiKS5jbGljayhmdW5jdGlvbihldmVudCkge1xuICAgICAgICB2YXIgaWRfbmFtZSA9IGV2ZW50LnRhcmdldC5pZDtcbiAgICAgICAgaWRfbmFtZSA9IGlkX25hbWUucmVwbGFjZSgvWzAtOV0vZywgJycpOyAvL3JlZ2V4IGZvciBhbHBoYWJldHMsIG5vIG51bWJlcnNcbiAgICAgICAgdmFyIGlkX3RvZ2dsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkX25hbWUpOyAvL2dldCBJRCBvZiBuYW1lcyB1bmRlciBjbGFzcyBcInRlYW0tYmlvXCJcbiAgICAgICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRfbmFtZSkpeyAvL2lmIElEIGV4aXN0c1xuXHRcdFx0aWYoKHByZXZpb3VzICE9IGlkX25hbWUpICYmIChwcmV2aW91cyAhPSBcIiBcIikpeyAvL2lmIHlvdSBjbGljayBhIGRpZmYgaW1hZ2Vcblx0XHRcdFx0dmFyIGlkX3ByZXZpb3VzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlvdXMpO1xuXHRcdFx0XHQkKGlkX3ByZXZpb3VzKS50b2dnbGUoXCJoaWRkZW5cIik7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGlkX3ByZXZpb3VzKTtcblxuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZihwcmV2aW91cyA9PSBpZF9uYW1lKXsgLy9jbGlja2luZyBvbiB0aGUgc2FtZSBpbWFnZVxuXHRcdFx0XHQkKGlkX3RvZ2dsZSkudG9nZ2xlKFwidW5oaWRkZW5cIik7XG5cdFx0XHR9XG5cdFx0XHQkKGlkX3RvZ2dsZSkudG9nZ2xlKFwidW5oaWRkZW5cIik7IC8vdG9nZ2xlcyB0eHRib3ggdG8gYXBwZWFyXG4gICAgICAgIFx0IHByZXZpb3VzID0gaWRfbmFtZTsvL2NoZWNrcyB0byBzZWUgaWYgeW91IGNsaWNrZWQgZGlmZmVyZW50IGltYWdlc1xuICAgICAgICB9XG4gICAgICAgIGVsc2V7XG4gICAgICAgIFx0YWxlcnQoXCJUaGlzIHBlcnNvbiBkb2VzIG5vdCBleGlzdC4gVHJ5IGFnYWluLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcbn0pOyIsIihmdW5jdGlvbigkKSB7XHJcblxyXG4gICAgJC5mbi52aXNpYmxlID0gZnVuY3Rpb24oKSB7XHJcblxyXG4gICAgICAgIHZhciAkdCAgICAgICAgICAgID0gJCh0aGlzKSxcclxuICAgICAgICAgICAgJHcgICAgICAgICAgICA9ICQod2luZG93KSxcclxuICAgICAgICAgICAgd2luZG93SGVpZ2h0ICA9IHdpbmRvdy5pbm5lckhlaWdodCxcclxuICAgICAgICAgICAgd2luZG93VG9wICAgICA9ICR3LnNjcm9sbFRvcCgpLFxyXG4gICAgICAgICAgICB3aW5kb3dCb3R0b20gID0gd2luZG93VG9wICsgd2luZG93SGVpZ2h0LFxyXG4gICAgICAgICAgICBfaGVpZ2h0ICAgICAgID0gJHQub3V0ZXJIZWlnaHQoKSxcclxuICAgICAgICAgICAgX3RvcCAgICAgICAgICA9ICR0Lm9mZnNldCgpLnRvcCxcclxuICAgICAgICAgICAgX2JvdHRvbSAgICAgICA9IF90b3AgKyBfaGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gKChfYm90dG9tID49IHdpbmRvd1RvcCkgJiYgKF90b3AgPD0gd2luZG93Qm90dG9tKSk7XHJcbiAgICB9O1xyXG5cclxufSkoalF1ZXJ5KTtcclxuXHJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuXHJcbiAgICAkKHdpbmRvdykub24oXCJzY3JvbGxcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwICYmICEkKFwiLm5hdmJhclwiKS5oYXNDbGFzcyhcImZpeGVkXCIpKSB7XHJcbiAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmFkZENsYXNzKFwiZml4ZWRcIikuYWRkQ2xhc3MoXCJmaXhlZC10b3BcIikuYW5pbWF0ZSh7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDE1LFxyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMVxyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpIDw9IDUwKSB7XHJcbiAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmNzcyhcInRvcFwiLCBcIlwiKS5yZW1vdmVDbGFzcyhcImZpeGVkXCIpLnJlbW92ZUNsYXNzKFwiZml4ZWQtdG9wXCIpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgLy9vbiBvciBzY3JvbGwsIGRldGVjdCBlbGVtZW50cyBpbiB2aWV3XHJcbiAgICAkKHdpbmRvdykub24oJ3Njcm9sbCByZXNpemUnLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAkKCcuZmx5LWluJykuZWFjaChmdW5jdGlvbiAoaSwgdmFsKSB7XHJcbiAgICAgICAgICAgIGlmKCQodmFsKS52aXNpYmxlKCkpe1xyXG4gICAgICAgICAgICAgICAgJCh2YWwpLmFkZENsYXNzKFwiY29tZS1pblwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9KTtcclxuICAgIC8vdHJpZ2dlciBvdXIgc2Nyb2xsIGV2ZW50IG9uIGluaXRpYWwgbG9hZFxyXG4gICAgJCh3aW5kb3cpLnRyaWdnZXIoJ3Njcm9sbCcpO1xyXG5cclxuXHJcbn0pO1xyXG5cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xyXG5cclxuXHJcbiAgICBsZXQgd2lkdGhQb2wgPSAxOTIwLFxyXG4gICAgICAgIGhlaWdodFBvbCA9IDEwMDtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJQb2x5ID0gW1xyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aFBvbCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aFBvbCwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBsZXQgd2lkdGhJbWdPdmVybGF5ID0gMTkyMCxcclxuICAgICAgICBoZWlnaHRJbWdPdmVybGF5ID0gMTAwO1xyXG5cclxuXHJcbiAgICBjb25zdCBpbWFnZVBvbHlUb3AgPSBbXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IGltYWdlUG9seUJvdHRvbSA9IFtcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhJbWdPdmVybGF5LCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgXTtcclxuXHJcblxyXG4gICAgbGV0IGltZ0hlYWRlckhvbGRlciA9IGQzLnNlbGVjdChcImJvZHlcIikuc2VsZWN0KFwiI2JvdHRvbS1sYW5kaW5nLW92ZXJsYXlcIikuc2VsZWN0KCcjbGFuZGluZy1zdmcnKVxyXG4gICAgICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGhQb2wpXHJcbiAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0UG9sKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhkMy5zZWxlY3QoXCJib2R5XCIpKTtcclxuXHJcbiAgICBsZXQgaW1nQm90dG9tSG9sZGVyID0gZDMuc2VsZWN0KFwiYm9keVwiKS5zZWxlY3RBbGwoXCIuc3ZnLWltYWdlLW92ZXJsYXktYm90dG9tXCIpXHJcbiAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aEltZ092ZXJsYXkpXHJcbiAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0SW1nT3ZlcmxheSk7XHJcblxyXG5cclxuICAgIGxldCBpbWdUb3BIb2xkZXIgPSBkMy5zZWxlY3QoXCJib2R5XCIpLnNlbGVjdEFsbChcIi5zdmctaW1hZ2Utb3ZlcmxheS10b3BcIilcclxuICAgICAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoSW1nT3ZlcmxheSlcclxuICAgICAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHRJbWdPdmVybGF5KTtcclxuXHJcbiAgICBjcmVhdGVQb2x5Z29uKGhlYWRlclBvbHksIHdpZHRoUG9sLCBoZWlnaHRQb2wsIGltZ0hlYWRlckhvbGRlcik7XHJcbiAgICBjcmVhdGVQb2x5Z29uKGltYWdlUG9seUJvdHRvbSwgd2lkdGhJbWdPdmVybGF5LCBoZWlnaHRJbWdPdmVybGF5LCBpbWdCb3R0b21Ib2xkZXIpO1xyXG4gICAgY3JlYXRlUG9seWdvbihpbWFnZVBvbHlUb3AsIHdpZHRoSW1nT3ZlcmxheSwgaGVpZ2h0SW1nT3ZlcmxheSwgaW1nVG9wSG9sZGVyKTtcclxuXHJcblxyXG4gICAgZnVuY3Rpb24gY3JlYXRlUG9seWdvbihwb2x5Z29uLCB3aWR0aCwgaGVpZ2h0LCB2aXMpIHtcclxuXHJcbiAgICAgICAgbGV0IHN2ZyA9IHZpcy5zZWxlY3RBbGwoXCJwYXRoXCIpLmRhdGEoW3BvbHlnb25dKTtcclxuXHJcbiAgICAgICAgc3ZnLmV4aXQoKS5yZW1vdmUoKTtcclxuXHJcbiAgICAgICAgbGV0IGxpbmVGdW5jdGlvbiA9IGQzLmxpbmUoKVxyXG4gICAgICAgICAgICAueChmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGQueFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAueShmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGQueVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc3ZnLmVudGVyKCkuYXBwZW5kKFwicGF0aFwiKVxyXG4gICAgICAgICAgICAuYXR0cihcImRcIiwgbGluZUZ1bmN0aW9uKHBvbHlnb24pKVxyXG4gICAgICAgICAgICAuYXR0cihcImZpbGxcIiwgXCIjZmZmXCIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdG9nZ2xlPVwibGlnaHRib3hcIl0nLCBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgJCh0aGlzKS5la2tvTGlnaHRib3goe1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICAkKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkKCdbZGF0YS10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBJbnN0YW50aWF0ZSB0aGUgQm9vdHN0cmFwIGNhcm91c2VsXHJcbiAgICAkKCcjdGhlQ2Fyb3VzZWwnKS5jYXJvdXNlbCh7XHJcbiAgICAgICAgaW50ZXJ2YWw6IGZhbHNlXHJcbiAgICB9KTtcclxuXHJcbi8vIGZvciBldmVyeSBzbGlkZSBpbiBjYXJvdXNlbCwgY29weSB0aGUgbmV4dCBzbGlkZSdzIGl0ZW0gaW4gdGhlIHNsaWRlLlxyXG4vLyBEbyB0aGUgc2FtZSBmb3IgdGhlIG5leHQsIG5leHQgaXRlbS5cclxuICAgICQoJyN0aGVDYXJvdXNlbCAuaXRlbScpLmVhY2goZnVuY3Rpb24oKXtcclxuICAgICAgICB2YXIgbmV4dCA9ICQodGhpcykubmV4dCgpO1xyXG4gICAgICAgIGlmICghbmV4dC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbmV4dCA9ICQodGhpcykuc2libGluZ3MoJzpmaXJzdCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBuZXh0LmNoaWxkcmVuKCc6Zmlyc3QtY2hpbGQnKS5jbG9uZSgpLmFwcGVuZFRvKCQodGhpcykpO1xyXG5cclxuICAgICAgICBpZiAobmV4dC5uZXh0KCkubGVuZ3RoPjApIHtcclxuICAgICAgICAgICAgbmV4dC5uZXh0KCkuY2hpbGRyZW4oJzpmaXJzdC1jaGlsZCcpLmNsb25lKCkuYXBwZW5kVG8oJCh0aGlzKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJCh0aGlzKS5zaWJsaW5ncygnOmZpcnN0JykuY2hpbGRyZW4oJzpmaXJzdC1jaGlsZCcpLmNsb25lKCkuYXBwZW5kVG8oJCh0aGlzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG59KTsiLCIkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG5cbiAgICBsZXQgZHVyYXRpb24gPSA3NTA7XG5cbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCgnLnNwaW5uZXInKS5lYWNoKGZ1bmN0aW9uIChrLHYpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICQodikuZmFkZUluKGR1cmF0aW9uKS5jc3MoXCJkaXNwbGF5XCIsIFwiZmxleFwiKTtcbiAgICAgICAgICAgICAgICAkKHtkZWc6IDB9KS5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgZGVnOiAzNjBcbiAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXA6IGZ1bmN0aW9uIChub3csIGZ4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHYpLmNzcyh7XCJ0cmFuc2Zvcm1cIjogXCJyb3RhdGVZKFwiICsgbm93ICsgXCJkZWcpXCJ9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICdsaW5lYXInLFxuICAgICAgICAgICAgICAgICAgICBxdWV1ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAnbGluZWFyJyk7XG4gICAgICAgICAgICB9LCBrICogZHVyYXRpb24qMi8zKTtcbiAgICAgICAgfSlcbiAgICB9LCAyMDApO1xuXG4gICAgJChcIi5tYWluLWJhY2tncm91bmRcIikub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoJy5zcGlubmVyJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKHRoaXMpLmZhZGVJbigpLmNzcyhcImRpc3BsYXlcIiwgXCJmbGV4XCIpO1xuICAgICAgICB9KVxuICAgIH0pXG5cbn0pOyIsImxldCBtb2RlbEluaXREYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLFxuICAgICAgICByb2ZmOiAwLFxuICAgICAgICByb246IDBcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAsXG4gICAgICAgIGdmcDogMC41MDMzMDgsXG4gICAgICAgIHJvZmY6IDAuMDA1MTEzLFxuICAgICAgICByb246IDAuNDIzOTAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMCxcbiAgICAgICAgZ2ZwOiAwLjY5MDU4MSxcbiAgICAgICAgcm9mZjogMC4wMDQ5MTM2LFxuICAgICAgICByb246IDAuNzkyODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MCxcbiAgICAgICAgZ2ZwOiAwLjc2NzU4NixcbiAgICAgICAgcm9mZjogMC4wMDQ3MTYzNyxcbiAgICAgICAgcm9uOiAwLjg4OTIwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAsXG4gICAgICAgIGdmcDogMC44MDM0MyxcbiAgICAgICAgcm9mZjogMC4wMDQ1MzQ4NSxcbiAgICAgICAgcm9uOiAwLjg3MzEyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAsXG4gICAgICAgIGdmcDogMC44MjM1MTYsXG4gICAgICAgIHJvZmY6IDAuMDA0MzY0ODgsXG4gICAgICAgIHJvbjogMC44NDcyODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwLFxuICAgICAgICBnZnA6IDAuODM3MzEzLFxuICAgICAgICByb2ZmOiAwLjAwNDIwNDQ5LFxuICAgICAgICByb246IDAuODI0ODA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MCxcbiAgICAgICAgZ2ZwOiAwLjg0ODM2MSxcbiAgICAgICAgcm9mZjogMC4wMDQwNTI2NixcbiAgICAgICAgcm9uOiAwLjgwODAyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAsXG4gICAgICAgIGdmcDogMC44NTgsXG4gICAgICAgIHJvZmY6IDAuMDAzOTA4NTksXG4gICAgICAgIHJvbjogMC43OTY2NDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwLFxuICAgICAgICBnZnA6IDAuODY2NzU2LFxuICAgICAgICByb2ZmOiAwLjAwMzc3MTU3LFxuICAgICAgICByb246IDAuNzg5NTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMCxcbiAgICAgICAgZ2ZwOiAwLjg3NDg1MSxcbiAgICAgICAgcm9mZjogMC4wMDM2NDEwMixcbiAgICAgICAgcm9uOiAwLjc4NTUzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAsXG4gICAgICAgIGdmcDogMC44ODIzOTMsXG4gICAgICAgIHJvZmY6IDAuMDAzNTE2NDcsXG4gICAgICAgIHJvbjogMC43ODM1NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwLFxuICAgICAgICBnZnA6IDAuODg5NDQyLFxuICAgICAgICByb2ZmOiAwLjAwMzM5NzUzLFxuICAgICAgICByb246IDAuNzgyOTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MCxcbiAgICAgICAgZ2ZwOiAwLjg5NjAzOSxcbiAgICAgICAgcm9mZjogMC4wMDMyODM4OCxcbiAgICAgICAgcm9uOiAwLjc4MzAxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAsXG4gICAgICAgIGdmcDogMC45MDIyMTQsXG4gICAgICAgIHJvZmY6IDAuMDAzMTc1MjUsXG4gICAgICAgIHJvbjogMC43ODM1MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwLFxuICAgICAgICBnZnA6IDAuOTA3OTk2LFxuICAgICAgICByb2ZmOiAwLjAwMzA3MTQsXG4gICAgICAgIHJvbjogMC43ODQyNzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwLFxuICAgICAgICBnZnA6IDAuOTEzNDA3LFxuICAgICAgICByb2ZmOiAwLjAwMjk3MjExLFxuICAgICAgICByb246IDAuNzg1MTAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MCxcbiAgICAgICAgZ2ZwOiAwLjkxODQ2OSxcbiAgICAgICAgcm9mZjogMC4wMDI4NzcxNyxcbiAgICAgICAgcm9uOiAwLjc4NTk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMCxcbiAgICAgICAgZ2ZwOiAwLjkyMzIwNSxcbiAgICAgICAgcm9mZjogMC4wMDI3ODYzOCxcbiAgICAgICAgcm9uOiAwLjc4Njc3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAsXG4gICAgICAgIGdmcDogMC45Mjc2MzMsXG4gICAgICAgIHJvZmY6IDAuMDAyNjk5NTcsXG4gICAgICAgIHJvbjogMC43ODc1NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjkzMTc3MixcbiAgICAgICAgcm9mZjogMC4wMDI2MTY1NyxcbiAgICAgICAgcm9uOiAwLjc4ODMxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwLFxuICAgICAgICBnZnA6IDAuOTM1NjQxLFxuICAgICAgICByb2ZmOiAwLjAwMjUzNzIsXG4gICAgICAgIHJvbjogMC43ODkwMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjkzOTI1NixcbiAgICAgICAgcm9mZjogMC4wMDI0NjEzMSxcbiAgICAgICAgcm9uOiAwLjc4OTY2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwLFxuICAgICAgICBnZnA6IDAuOTQyNjM0LFxuICAgICAgICByb2ZmOiAwLjAwMjM4ODc1LFxuICAgICAgICByb246IDAuNzkwMjc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAsXG4gICAgICAgIGdmcDogMC45NDU3ODksXG4gICAgICAgIHJvZmY6IDAuMDAyMzE5MzcsXG4gICAgICAgIHJvbjogMC43OTA4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk0ODczNixcbiAgICAgICAgcm9mZjogMC4wMDIyNTMwNCxcbiAgICAgICAgcm9uOiAwLjc5MTM2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwLFxuICAgICAgICBnZnA6IDAuOTUxNDg5LFxuICAgICAgICByb2ZmOiAwLjAwMjE4OTYyLFxuICAgICAgICByb246IDAuNzkxODQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAsXG4gICAgICAgIGdmcDogMC45NTQwNjEsXG4gICAgICAgIHJvZmY6IDAuMDAyMTI4OTgsXG4gICAgICAgIHJvbjogMC43OTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDAsXG4gICAgICAgIGdmcDogMC45NTY0NjQsXG4gICAgICAgIHJvZmY6IDAuMDAyMDcxMDEsXG4gICAgICAgIHJvbjogMC43OTI3MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk1ODcwOSxcbiAgICAgICAgcm9mZjogMC4wMDIwMTU1OSxcbiAgICAgICAgcm9uOiAwLjc5MzExMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwLFxuICAgICAgICBnZnA6IDAuOTYwODA3LFxuICAgICAgICByb2ZmOiAwLjAwMTk2MjYsXG4gICAgICAgIHJvbjogMC43OTM0NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk2Mjc2OCxcbiAgICAgICAgcm9mZjogMC4wMDE5MTE5NCxcbiAgICAgICAgcm9uOiAwLjc5MzgxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwLFxuICAgICAgICBnZnA6IDAuOTY0NjAxLFxuICAgICAgICByb2ZmOiAwLjAwMTg2MzUxLFxuICAgICAgICByb246IDAuNzk0MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk2NjMxNCxcbiAgICAgICAgcm9mZjogMC4wMDE4MTcyMSxcbiAgICAgICAgcm9uOiAwLjc5NDQyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwLFxuICAgICAgICBnZnA6IDAuOTY3OTE3LFxuICAgICAgICByb2ZmOiAwLjAwMTc3Mjk1LFxuICAgICAgICByb246IDAuNzk0Njk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAsXG4gICAgICAgIGdmcDogMC45Njk0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAxNzMwNjMsXG4gICAgICAgIHJvbjogMC43OTQ5NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MDgxOSxcbiAgICAgICAgcm9mZjogMC4wMDE2OTAxOCxcbiAgICAgICAgcm9uOiAwLjc5NTE5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODUwLFxuICAgICAgICBnZnA6IDAuOTcyMTMyLFxuICAgICAgICByb2ZmOiAwLjAwMTY1MTUxLFxuICAgICAgICByb246IDAuNzk1NDE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAsXG4gICAgICAgIGdmcDogMC45NzMzNjEsXG4gICAgICAgIHJvZmY6IDAuMDAxNjE0NTQsXG4gICAgICAgIHJvbjogMC43OTU2MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NDUxMixcbiAgICAgICAgcm9mZjogMC4wMDE1NzkyMSxcbiAgICAgICAgcm9uOiAwLjc5NTgxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAwLFxuICAgICAgICBnZnA6IDAuOTc1NTkxLFxuICAgICAgICByb2ZmOiAwLjAwMTU0NTQyLFxuICAgICAgICByb246IDAuNzk1OTk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAsXG4gICAgICAgIGdmcDogMC45NzY2MDIsXG4gICAgICAgIHJvZmY6IDAuMDAxNTEzMTMsXG4gICAgICAgIHJvbjogMC43OTYxNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NzU0OSxcbiAgICAgICAgcm9mZjogMC4wMDE0ODIyNixcbiAgICAgICAgcm9uOiAwLjc5NjMyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwLFxuICAgICAgICBnZnA6IDAuOTc4NDM4LFxuICAgICAgICByb2ZmOiAwLjAwMTQ1Mjc1LFxuICAgICAgICByb246IDAuNzk2NDc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAsXG4gICAgICAgIGdmcDogMC45NzkyNzIsXG4gICAgICAgIHJvZmY6IDAuMDAxNDI0NTQsXG4gICAgICAgIHJvbjogMC43OTY2MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk4MDA1NSxcbiAgICAgICAgcm9mZjogMC4wMDEzOTc1NyxcbiAgICAgICAgcm9uOiAwLjc5Njc0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwLFxuICAgICAgICBnZnA6IDAuOTgwNzksXG4gICAgICAgIHJvZmY6IDAuMDAxMzcxNzksXG4gICAgICAgIHJvbjogMC43OTY4NjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk4MTQ4MSxcbiAgICAgICAgcm9mZjogMC4wMDEzNDcxNSxcbiAgICAgICAgcm9uOiAwLjc5Njk4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwLFxuICAgICAgICBnZnA6IDAuOTgyMTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMzIzNixcbiAgICAgICAgcm9uOiAwLjc5NzA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAsXG4gICAgICAgIGdmcDogMC45ODI3NCxcbiAgICAgICAgcm9mZjogMC4wMDEzMDEwOSxcbiAgICAgICAgcm9uOiAwLjc5NzE5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAwLFxuICAgICAgICBnZnA6IDAuOTgzMzE0LFxuICAgICAgICByb2ZmOiAwLjAwMTI3OTU3LFxuICAgICAgICByb246IDAuNzk3Mjg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAsXG4gICAgICAgIGdmcDogMC45ODM4NTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMjU4OTksXG4gICAgICAgIHJvbjogMC43OTczNzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NDM2MixcbiAgICAgICAgcm9mZjogMC4wMDEyMzkzMyxcbiAgICAgICAgcm9uOiAwLjc5NzQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAsXG4gICAgICAgIGdmcDogMC45ODQ4NCxcbiAgICAgICAgcm9mZjogMC4wMDEyMjA1MyxcbiAgICAgICAgcm9uOiAwLjc5NzUzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzAwLFxuICAgICAgICBnZnA6IDAuOTg1MjkxLFxuICAgICAgICByb2ZmOiAwLjAwMTIwMjU3LFxuICAgICAgICByb246IDAuNzk3NjEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3NTAsXG4gICAgICAgIGdmcDogMC45ODU3MTUsXG4gICAgICAgIHJvZmY6IDAuMDAxMTg1MzksXG4gICAgICAgIHJvbjogMC43OTc2ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NjExNixcbiAgICAgICAgcm9mZjogMC4wMDExNjg5OCxcbiAgICAgICAgcm9uOiAwLjc5Nzc0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODUwLFxuICAgICAgICBnZnA6IDAuOTg2NDkzLFxuICAgICAgICByb2ZmOiAwLjAwMTE1MzI5LFxuICAgICAgICByb246IDAuNzk3ODExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5MDAsXG4gICAgICAgIGdmcDogMC45ODY4NSxcbiAgICAgICAgcm9mZjogMC4wMDExMzgyOSxcbiAgICAgICAgcm9uOiAwLjc5Nzg2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTUwLFxuICAgICAgICBnZnA6IDAuOTg3MTg2LFxuICAgICAgICByb2ZmOiAwLjAwMTEyMzk1LFxuICAgICAgICByb246IDAuNzk3OTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMDAsXG4gICAgICAgIGdmcDogMC45ODc1MDMsXG4gICAgICAgIHJvZmY6IDAuMDAxMTEwMjUsXG4gICAgICAgIHJvbjogMC43OTc5NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NzgwMyxcbiAgICAgICAgcm9mZjogMC4wMDEwOTcxNSxcbiAgICAgICAgcm9uOiAwLjc5ODAyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTAwLFxuICAgICAgICBnZnA6IDAuOTg4MDg3LFxuICAgICAgICByb2ZmOiAwLjAwMTA4NDYzLFxuICAgICAgICByb246IDAuNzk4MDcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxNTAsXG4gICAgICAgIGdmcDogMC45ODgzNTQsXG4gICAgICAgIHJvZmY6IDAuMDAxMDcyNjcsXG4gICAgICAgIHJvbjogMC43OTgxMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk4ODYwOCxcbiAgICAgICAgcm9mZjogMC4wMDEwNjEyMyxcbiAgICAgICAgcm9uOiAwLjc5ODE1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjUwLFxuICAgICAgICBnZnA6IDAuOTg4ODQ3LFxuICAgICAgICByb2ZmOiAwLjAwMTA1MDMsXG4gICAgICAgIHJvbjogMC43OTgxOTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTA3NCxcbiAgICAgICAgcm9mZjogMC4wMDEwMzk4NSxcbiAgICAgICAgcm9uOiAwLjc5ODIzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzUwLFxuICAgICAgICBnZnA6IDAuOTg5Mjg5LFxuICAgICAgICByb2ZmOiAwLjAwMTAyOTg2LFxuICAgICAgICByb246IDAuNzk4MjY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0MDAsXG4gICAgICAgIGdmcDogMC45ODk0OTIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDIwMzEsXG4gICAgICAgIHJvbjogMC43OTgzMDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk4OTY4NCxcbiAgICAgICAgcm9mZjogMC4wMDEwMTExOSxcbiAgICAgICAgcm9uOiAwLjc5ODMzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAwLFxuICAgICAgICBnZnA6IDAuOTg5ODY2LFxuICAgICAgICByb2ZmOiAwLjAwMTAwMjQ3LFxuICAgICAgICByb246IDAuNzk4MzY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1NTAsXG4gICAgICAgIGdmcDogMC45OTAwMzksXG4gICAgICAgIHJvZmY6IDAuMDAwOTk0MTMsXG4gICAgICAgIHJvbjogMC43OTgzOTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDIwMyxcbiAgICAgICAgcm9mZjogMC4wMDA5ODYxNjIsXG4gICAgICAgIHJvbjogMC43OTg0MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDM1OCxcbiAgICAgICAgcm9mZjogMC4wMDA5Nzg1NDYsXG4gICAgICAgIHJvbjogMC43OTg0NDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDUwNixcbiAgICAgICAgcm9mZjogMC4wMDA5NzEyNjYsXG4gICAgICAgIHJvbjogMC43OTg0NjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDY0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5NjQzMDgsXG4gICAgICAgIHJvbjogMC43OTg0OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDc3OCxcbiAgICAgICAgcm9mZjogMC4wMDA5NTc2NTcsXG4gICAgICAgIHJvbjogMC43OTg1MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDkwNCxcbiAgICAgICAgcm9mZjogMC4wMDA5NTEzLFxuICAgICAgICByb246IDAuNzk4NTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5MDAsXG4gICAgICAgIGdmcDogMC45OTEwMjQsXG4gICAgICAgIHJvZmY6IDAuMDAwOTQ1MjI0LFxuICAgICAgICByb246IDAuNzk4NTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5NTAsXG4gICAgICAgIGdmcDogMC45OTExMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwOTM5NDE3LFxuICAgICAgICByb246IDAuNzk4NTcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMDAsXG4gICAgICAgIGdmcDogMC45OTEyNDUsXG4gICAgICAgIHJvZmY6IDAuMDAwOTMzODY2LFxuICAgICAgICByb246IDAuNzk4NTg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwNTAsXG4gICAgICAgIGdmcDogMC45OTEzNDgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTI4NTYxLFxuICAgICAgICByb246IDAuNzk4NjA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxMDAsXG4gICAgICAgIGdmcDogMC45OTE0NDUsXG4gICAgICAgIHJvZmY6IDAuMDAwOTIzNDksXG4gICAgICAgIHJvbjogMC43OTg2MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTUzOCxcbiAgICAgICAgcm9mZjogMC4wMDA5MTg2NDMsXG4gICAgICAgIHJvbjogMC43OTg2MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTYyNixcbiAgICAgICAgcm9mZjogMC4wMDA5MTQwMTEsXG4gICAgICAgIHJvbjogMC43OTg2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjUwLFxuICAgICAgICBnZnA6IDAuOTkxNzEsXG4gICAgICAgIHJvZmY6IDAuMDAwOTA5NTgzLFxuICAgICAgICByb246IDAuNzk4NjY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzMDAsXG4gICAgICAgIGdmcDogMC45OTE3ODksXG4gICAgICAgIHJvZmY6IDAuMDAwOTA1MzUxLFxuICAgICAgICByb246IDAuNzk4Njc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzNTAsXG4gICAgICAgIGdmcDogMC45OTE4NjUsXG4gICAgICAgIHJvZmY6IDAuMDAwOTAxMzA2LFxuICAgICAgICByb246IDAuNzk4Njg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0MDAsXG4gICAgICAgIGdmcDogMC45OTE5MzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODk3NDQsXG4gICAgICAgIHJvbjogMC43OTg3MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjAwNixcbiAgICAgICAgcm9mZjogMC4wMDA4OTM3NDUsXG4gICAgICAgIHJvbjogMC43OTg3MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjA3MSxcbiAgICAgICAgcm9mZjogMC4wMDA4OTAyMTMsXG4gICAgICAgIHJvbjogMC43OTg3MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjEzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4ODY4MzcsXG4gICAgICAgIHJvbjogMC43OTg3MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjE5MyxcbiAgICAgICAgcm9mZjogMC4wMDA4ODM2MSxcbiAgICAgICAgcm9uOiAwLjc5ODc0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjUwLFxuICAgICAgICBnZnA6IDAuOTkyMjQ5LFxuICAgICAgICByb2ZmOiAwLjAwMDg4MDUyNixcbiAgICAgICAgcm9uOiAwLjc5ODc1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzAwLFxuICAgICAgICBnZnA6IDAuOTkyMzAzLFxuICAgICAgICByb2ZmOiAwLjAwMDg3NzU3OSxcbiAgICAgICAgcm9uOiAwLjc5ODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3NTAsXG4gICAgICAgIGdmcDogMC45OTIzNTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODc0NzYxLFxuICAgICAgICByb246IDAuNzk4NzY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4MDAsXG4gICAgICAgIGdmcDogMC45OTI0MDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODcyMDY5LFxuICAgICAgICByb246IDAuNzk4Nzc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4NTAsXG4gICAgICAgIGdmcDogMC45OTI0NDksXG4gICAgICAgIHJvZmY6IDAuMDAwODY5NDk1LFxuICAgICAgICByb246IDAuNzk4Nzg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5MDAsXG4gICAgICAgIGdmcDogMC45OTI0OTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODY3MDM1LFxuICAgICAgICByb246IDAuNzk4NzkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5NTAsXG4gICAgICAgIGdmcDogMC45OTI1MzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODY0Njg0LFxuICAgICAgICByb246IDAuNzk4Nzk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMDAsXG4gICAgICAgIGdmcDogMC45OTI1NzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODYyNDM3LFxuICAgICAgICByb246IDAuNzk4ODA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwNTAsXG4gICAgICAgIGdmcDogMC45OTI2MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODYwMjksXG4gICAgICAgIHJvbjogMC43OTg4MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjY1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTgyMzcsXG4gICAgICAgIHJvbjogMC43OTg4MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjY4NixcbiAgICAgICAgcm9mZjogMC4wMDA4NTYyNzUsXG4gICAgICAgIHJvbjogMC43OTg4MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjcxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTQ0LFxuICAgICAgICByb246IDAuNzk4ODI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyNTAsXG4gICAgICAgIGdmcDogMC45OTI3NTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODUyNjA3LFxuICAgICAgICByb246IDAuNzk4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzMDAsXG4gICAgICAgIGdmcDogMC45OTI3ODEsXG4gICAgICAgIHJvZmY6IDAuMDAwODUwODk0LFxuICAgICAgICByb246IDAuNzk4ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzNTAsXG4gICAgICAgIGdmcDogMC45OTI4MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NDkyNTcsXG4gICAgICAgIHJvbjogMC43OTg4NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgzOCxcbiAgICAgICAgcm9mZjogMC4wMDA4NDc2OTIsXG4gICAgICAgIHJvbjogMC43OTg4NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjg2NCxcbiAgICAgICAgcm9mZjogMC4wMDA4NDYxOTYsXG4gICAgICAgIHJvbjogMC43OTg4NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjg4OSxcbiAgICAgICAgcm9mZjogMC4wMDA4NDQ3NjYsXG4gICAgICAgIHJvbjogMC43OTg4NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjkxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4NDMzOTksXG4gICAgICAgIHJvbjogMC43OTg4NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjkzNixcbiAgICAgICAgcm9mZjogMC4wMDA4NDIwOTMsXG4gICAgICAgIHJvbjogMC43OTg4NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk1NyxcbiAgICAgICAgcm9mZjogMC4wMDA4NDA4NDUsXG4gICAgICAgIHJvbjogMC43OTg4NjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk3OCxcbiAgICAgICAgcm9mZjogMC4wMDA4Mzk2NTIsXG4gICAgICAgIHJvbjogMC43OTg4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzUwLFxuICAgICAgICBnZnA6IDAuOTkyOTk4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzODUxMixcbiAgICAgICAgcm9uOiAwLjc5ODg3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNzQyMixcbiAgICAgICAgcm9uOiAwLjc5ODg3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMDM1LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNjM4LFxuICAgICAgICByb246IDAuNzk4ODc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5MDAsXG4gICAgICAgIGdmcDogMC45OTMwNTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODM1Mzg1LFxuICAgICAgICByb246IDAuNzk4ODgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5NTAsXG4gICAgICAgIGdmcDogMC45OTMwNjksXG4gICAgICAgIHJvZmY6IDAuMDAwODM0NDMzLFxuICAgICAgICByb246IDAuNzk4ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMDAsXG4gICAgICAgIGdmcDogMC45OTMwODQsXG4gICAgICAgIHJvZmY6IDAuMDAwODMzNTI0LFxuICAgICAgICByb246IDAuNzk4ODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwNTAsXG4gICAgICAgIGdmcDogMC45OTMwOTksXG4gICAgICAgIHJvZmY6IDAuMDAwODMyNjU0LFxuICAgICAgICByb246IDAuNzk4ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzExNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzE4MjQsXG4gICAgICAgIHJvbjogMC43OTg4OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzEyNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MzEwMyxcbiAgICAgICAgcm9uOiAwLjc5ODg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODMwMjcxLFxuICAgICAgICByb246IDAuNzk4ODk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyNTAsXG4gICAgICAgIGdmcDogMC45OTMxNTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODI5NTQ1LFxuICAgICAgICByb246IDAuNzk4ODk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzMDAsXG4gICAgICAgIGdmcDogMC45OTMxNjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI4ODUyLFxuICAgICAgICByb246IDAuNzk4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMTc2LFxuICAgICAgICByb2ZmOiAwLjAwMDgyODE4OSxcbiAgICAgICAgcm9uOiAwLjc5ODkwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMTg3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNzU1NSxcbiAgICAgICAgcm9uOiAwLjc5ODkwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMTk3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNjk1LFxuICAgICAgICByb246IDAuNzk4OTA2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MDAsXG4gICAgICAgIGdmcDogMC45OTMyMDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI2MzcxLFxuICAgICAgICByb246IDAuNzk4OTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1NTAsXG4gICAgICAgIGdmcDogMC45OTMyMTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI1ODE4LFxuICAgICAgICByb246IDAuNzk4OTA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2MDAsXG4gICAgICAgIGdmcDogMC45OTMyMjYsXG4gICAgICAgIHJvZmY6IDAuMDAwODI1Mjg5LFxuICAgICAgICByb246IDAuNzk4OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIzNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjQ3ODMsXG4gICAgICAgIHJvbjogMC43OTg5MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI0MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjQzLFxuICAgICAgICByb246IDAuNzk4OTEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3NTAsXG4gICAgICAgIGdmcDogMC45OTMyNTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIzODM5LFxuICAgICAgICByb246IDAuNzk4OTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4MDAsXG4gICAgICAgIGdmcDogMC45OTMyNTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODIzMzk4LFxuICAgICAgICByb246IDAuNzk4OTE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4NTAsXG4gICAgICAgIGdmcDogMC45OTMyNjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODIyOTc2LFxuICAgICAgICByb246IDAuNzk4OTE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5MDAsXG4gICAgICAgIGdmcDogMC45OTMyNzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODIyNTczLFxuICAgICAgICByb246IDAuNzk4OTE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5NTAsXG4gICAgICAgIGdmcDogMC45OTMyNzksXG4gICAgICAgIHJvZmY6IDAuMDAwODIyMTg4LFxuICAgICAgICByb246IDAuNzk4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMDAsXG4gICAgICAgIGdmcDogMC45OTMyODUsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxODIsXG4gICAgICAgIHJvbjogMC43OTg5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMjkxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTQ2OCxcbiAgICAgICAgcm9uOiAwLjc5ODkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMjk3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTEzMixcbiAgICAgICAgcm9uOiAwLjc5ODkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzAyLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDgxLFxuICAgICAgICByb246IDAuNzk4OTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyMDAsXG4gICAgICAgIGdmcDogMC45OTMzMDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwNTAzLFxuICAgICAgICByb246IDAuNzk4OTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyNTAsXG4gICAgICAgIGdmcDogMC45OTMzMTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwMjA5LFxuICAgICAgICByb246IDAuNzk4OTI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczMDAsXG4gICAgICAgIGdmcDogMC45OTMzMTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5OTI5LFxuICAgICAgICByb246IDAuNzk4OTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczNTAsXG4gICAgICAgIGdmcDogMC45OTMzMjIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5NjYsXG4gICAgICAgIHJvbjogMC43OTg5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTk0MDQsXG4gICAgICAgIHJvbjogMC43OTg5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTE1OSxcbiAgICAgICAgcm9uOiAwLjc5ODkyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzM0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODkyNSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzM4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODcwMSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxODQ4NyxcbiAgICAgICAgcm9uOiAwLjc5ODkyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODI4MixcbiAgICAgICAgcm9uOiAwLjc5ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3MDAsXG4gICAgICAgIGdmcDogMC45OTMzNDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4MDg3LFxuICAgICAgICByb246IDAuNzk4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTc5LFxuICAgICAgICByb246IDAuNzk4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4MDAsXG4gICAgICAgIGdmcDogMC45OTMzNTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NzIyLFxuICAgICAgICByb246IDAuNzk4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4NTAsXG4gICAgICAgIGdmcDogMC45OTMzNTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NTUxLFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5MDAsXG4gICAgICAgIGdmcDogMC45OTMzNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTczODgsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTcyMzIsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTcwODMsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY5NDEsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjgwNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzcyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjY3NCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzc0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjU1LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyNTAsXG4gICAgICAgIGdmcDogMC45OTMzNzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NDMxLFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzMDAsXG4gICAgICAgIGdmcDogMC45OTMzNzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MzE4LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzNTAsXG4gICAgICAgIGdmcDogMC45OTMzOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYyMDksXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTYxMDUsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYwMDYsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU5MTEsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU4MjEsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU3MzQsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTY1MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzkxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTU3MixcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzkyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTQ5NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzk0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTQyNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTM1NixcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzk2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTI5LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5NTAsXG4gICAgICAgIGdmcDogMC45OTMzOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MjI3LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MTY2LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MTA5LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxMDAsXG4gICAgICAgIGdmcDogMC45OTM0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTA1NCxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDAxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTAwMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDAyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDk1MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDAyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDkwMyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDAzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDg1NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDgxMyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDc3MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDczMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDY5MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDY1NixcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDYyMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTg3LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1NTUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDUyNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDksXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDk2LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0NDEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDExLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQxNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDExLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM5MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDExLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM0NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDMyNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDMwNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyNDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjMxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIxNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxOTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTg0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE1NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTMxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwOTcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDg3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA3NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNjgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDU5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA0MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMzQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDI3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAxOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDA2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5OTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTg4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk4MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTcyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NjMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTU4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTMzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTIxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTAxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfVxuXVxubGV0IG1vZGVsT2ZmRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOFxuICAgIH1cbl07XG5sZXQgbW9kZWxPZmZPbkRhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAuMDAwMTYzNjk4LFxuICAgICAgICByb2ZmOiAwLjY5NzcwMSxcbiAgICAgICAgcm9uOiAwLjgzMjY3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIxMTA3NCxcbiAgICAgICAgcm9mZjogMC42MTIzNjMsXG4gICAgICAgIHJvbjogMC45NDg1MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMjY3NTI2LFxuICAgICAgICByb2ZmOiAwLjU1MDc3NyxcbiAgICAgICAgcm9uOiAwLjkxOTYyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAsXG4gICAgICAgIGdmcDogMC4wMDAzMjk2NzYsXG4gICAgICAgIHJvZmY6IDAuNTAxNTE2LFxuICAgICAgICByb246IDAuODcwODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDM5NzU4NCxcbiAgICAgICAgcm9mZjogMC40NjAzMTksXG4gICAgICAgIHJvbjogMC44MDk5NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwLFxuICAgICAgICBnZnA6IDAuMDAwNDcyMDI4LFxuICAgICAgICByb2ZmOiAwLjQyNDk0NSxcbiAgICAgICAgcm9uOiAwLjc0NDQ3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAsXG4gICAgICAgIGdmcDogMC4wMDA1NTM5NSxcbiAgICAgICAgcm9mZjogMC4zOTQwMTUsXG4gICAgICAgIHJvbjogMC42ODAzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAsXG4gICAgICAgIGdmcDogMC4wMDA2NDQzNCxcbiAgICAgICAgcm9mZjogMC4zNjY2MSxcbiAgICAgICAgcm9uOiAwLjYyMTAyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAsXG4gICAgICAgIGdmcDogMC4wMDA3NDQyMjIsXG4gICAgICAgIHJvZmY6IDAuMzQyMDgyLFxuICAgICAgICByb246IDAuNTY3ODA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDg1NDY2NCxcbiAgICAgICAgcm9mZjogMC4zMTk5NTgsXG4gICAgICAgIHJvbjogMC41MjA3NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwLFxuICAgICAgICBnZnA6IDAuMDAwOTc2Nzg3LFxuICAgICAgICByb2ZmOiAwLjI5OTg3NyxcbiAgICAgICAgcm9uOiAwLjQ3OTMyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAsXG4gICAgICAgIGdmcDogMC4wMDExMTE3OCxcbiAgICAgICAgcm9mZjogMC4yODE1NTYsXG4gICAgICAgIHJvbjogMC40NDI4MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwLFxuICAgICAgICBnZnA6IDAuMDAxMjYwOTEsXG4gICAgICAgIHJvZmY6IDAuMjY0NzcxLFxuICAgICAgICByb246IDAuNDEwNTA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTQyNTUyLFxuICAgICAgICByb2ZmOiAwLjI0OTMzOCxcbiAgICAgICAgcm9uOiAwLjM4MTc1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAsXG4gICAgICAgIGdmcDogMC4wMDE2MDcwNCxcbiAgICAgICAgcm9mZjogMC4yMzUxMDYsXG4gICAgICAgIHJvbjogMC4zNTYwMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwLFxuICAgICAgICBnZnA6IDAuMDAxODA3LFxuICAgICAgICByb2ZmOiAwLjIyMTk0OCxcbiAgICAgICAgcm9uOiAwLjMzMjg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjAyNzAxLFxuICAgICAgICByb2ZmOiAwLjIwOTc1NyxcbiAgICAgICAgcm9uOiAwLjMxMTg3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAsXG4gICAgICAgIGdmcDogMC4wMDIyNjg3NCxcbiAgICAgICAgcm9mZjogMC4xOTg0NDIsXG4gICAgICAgIHJvbjogMC4yOTI4MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwLFxuICAgICAgICBnZnA6IDAuMDAyNTMzOTUsXG4gICAgICAgIHJvZmY6IDAuMTg3OTI1LFxuICAgICAgICByb246IDAuMjc1NDM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjgyNDQzLFxuICAgICAgICByb2ZmOiAwLjE3ODEzNyxcbiAgICAgICAgcm9uOiAwLjI1OTUyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwLFxuICAgICAgICBnZnA6IDAuMDAzMTQyMDMsXG4gICAgICAgIHJvZmY6IDAuMTY5MDIxLFxuICAgICAgICByb246IDAuMjQ0OTE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAsXG4gICAgICAgIGdmcDogMC4wMDM0ODg1NCxcbiAgICAgICAgcm9mZjogMC4xNjA1MjMsXG4gICAgICAgIHJvbjogMC4yMzE0NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzg2NTc2LFxuICAgICAgICByb2ZmOiAwLjE1MjYsXG4gICAgICAgIHJvbjogMC4yMTkwOTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDI3NTM2LFxuICAgICAgICByb2ZmOiAwLjE0NTIxLFxuICAgICAgICByb246IDAuMjA3NjY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAsXG4gICAgICAgIGdmcDogMC4wMDQ3MTg4NixcbiAgICAgICAgcm9mZjogMC4xMzgzMTksXG4gICAgICAgIHJvbjogMC4xOTcxMDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNTE5NzU2LFxuICAgICAgICByb2ZmOiAwLjEzMTg5NSxcbiAgICAgICAgcm9uOiAwLjE4NzM0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwLFxuICAgICAgICBnZnA6IDAuMDA1NzEyNDIsXG4gICAgICAgIHJvZmY6IDAuMTI1OTA5LFxuICAgICAgICByb246IDAuMTc4MzI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAsXG4gICAgICAgIGdmcDogMC4wMDYyNjQwMSxcbiAgICAgICAgcm9mZjogMC4xMjAzMzYsXG4gICAgICAgIHJvbjogMC4xNjk5OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNjg1MjM5LFxuICAgICAgICByb2ZmOiAwLjExNTE1NCxcbiAgICAgICAgcm9uOiAwLjE2MjI4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwLFxuICAgICAgICBnZnA6IDAuMDA3NDc3MDQsXG4gICAgICAgIHJvZmY6IDAuMTEwMzQxLFxuICAgICAgICByb246IDAuMTU1MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwODEzNjY4LFxuICAgICAgICByb2ZmOiAwLjEwNTg3OCxcbiAgICAgICAgcm9uOiAwLjE0ODYyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwLFxuICAgICAgICBnZnA6IDAuMDA4ODI5MjksXG4gICAgICAgIHJvZmY6IDAuMTAxNzQ4LFxuICAgICAgICByb246IDAuMTQyNTkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAsXG4gICAgICAgIGdmcDogMC4wMDk1NTE5OCxcbiAgICAgICAgcm9mZjogMC4wOTc5MzI2LFxuICAgICAgICByb246IDAuMTM3MDQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAsXG4gICAgICAgIGdmcDogMC4wMTAzMDEsXG4gICAgICAgIHJvZmY6IDAuMDk0NDE3NCxcbiAgICAgICAgcm9uOiAwLjEzMTk2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwLFxuICAgICAgICBnZnA6IDAuMDExMDcxOCxcbiAgICAgICAgcm9mZjogMC4wOTExODY2LFxuICAgICAgICByb246IDAuMTI3MzE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAsXG4gICAgICAgIGdmcDogMC4wMTE4NTg5LFxuICAgICAgICByb2ZmOiAwLjA4ODIyNTIsXG4gICAgICAgIHJvbjogMC4xMjMwNzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY1NjQsXG4gICAgICAgIHJvZmY6IDAuMDg1NTE4OCxcbiAgICAgICAgcm9uOiAwLjExOTIxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODUwLFxuICAgICAgICBnZnA6IDAuMDEzNDU3NixcbiAgICAgICAgcm9mZjogMC4wODMwNTI4LFxuICAgICAgICByb246IDAuMTE1NzEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAsXG4gICAgICAgIGdmcDogMC4wMTQyNTU3LFxuICAgICAgICByb2ZmOiAwLjA4MDgxMjcsXG4gICAgICAgIHJvbjogMC4xMTI1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwLFxuICAgICAgICBnZnA6IDAuMDE1MDQzOSxcbiAgICAgICAgcm9mZjogMC4wNzg3ODQyLFxuICAgICAgICByb246IDAuMTA5NzAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAsXG4gICAgICAgIGdmcDogMC4wMTU4MTU2LFxuICAgICAgICByb2ZmOiAwLjA3Njk1MyxcbiAgICAgICAgcm9uOiAwLjEwNzE0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwLFxuICAgICAgICBnZnA6IDAuMDE2NTY0NSxcbiAgICAgICAgcm9mZjogMC4wNzUzMDQ5LFxuICAgICAgICByb246IDAuMTA0ODU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAsXG4gICAgICAgIGdmcDogMC4wMTcyODUzLFxuICAgICAgICByb2ZmOiAwLjA3MzgyNTcsXG4gICAgICAgIHJvbjogMC4xMDI4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwLFxuICAgICAgICBnZnA6IDAuMDE3OTczMyxcbiAgICAgICAgcm9mZjogMC4wNzI1MDE4LFxuICAgICAgICByb246IDAuMTAxMDEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAsXG4gICAgICAgIGdmcDogMC4wMTg2MjQ4LFxuICAgICAgICByb2ZmOiAwLjA3MTMxOTYsXG4gICAgICAgIHJvbjogMC4wOTk0MTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAsXG4gICAgICAgIGdmcDogMC4wMTkyMzczLFxuICAgICAgICByb2ZmOiAwLjA3MDI2NjMsXG4gICAgICAgIHJvbjogMC4wOTgwMDQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAsXG4gICAgICAgIGdmcDogMC4wMTk4MDkxLFxuICAgICAgICByb2ZmOiAwLjA2OTMyOTQsXG4gICAgICAgIHJvbjogMC4wOTY3NjgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAsXG4gICAgICAgIGdmcDogMC4wMjAzMzk4LFxuICAgICAgICByb2ZmOiAwLjA2ODQ5NzIsXG4gICAgICAgIHJvbjogMC4wOTU2ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMDgyOTYsXG4gICAgICAgIHJvZmY6IDAuMDY3NzU4NyxcbiAgICAgICAgcm9uOiAwLjA5NDc0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDUwLFxuICAgICAgICBnZnA6IDAuMDIxMjc5NCxcbiAgICAgICAgcm9mZjogMC4wNjcxMDM2LFxuICAgICAgICByb246IDAuMDkzOTMzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAwLFxuICAgICAgICBnZnA6IDAuMDIxNjkwOSxcbiAgICAgICAgcm9mZjogMC4wNjY1MjI1LFxuICAgICAgICByb246IDAuMDkzMjMxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTUwLFxuICAgICAgICBnZnA6IDAuMDIyMDY2MyxcbiAgICAgICAgcm9mZjogMC4wNjYwMDY2LFxuICAgICAgICByb246IDAuMDkyNjI4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjAwLFxuICAgICAgICBnZnA6IDAuMDIyNDA3OCxcbiAgICAgICAgcm9mZjogMC4wNjU1NDgsXG4gICAgICAgIHJvbjogMC4wOTIxMTU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAsXG4gICAgICAgIGdmcDogMC4wMjI3MTgzLFxuICAgICAgICByb2ZmOiAwLjA2NTEzOTUsXG4gICAgICAgIHJvbjogMC4wOTE2ODA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3MDAsXG4gICAgICAgIGdmcDogMC4wMjMwMDAzLFxuICAgICAgICByb2ZmOiAwLjA2NDc3NDYsXG4gICAgICAgIHJvbjogMC4wOTEzMTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3NTAsXG4gICAgICAgIGdmcDogMC4wMjMyNTY3LFxuICAgICAgICByb2ZmOiAwLjA2NDQ0NzYsXG4gICAgICAgIHJvbjogMC4wOTEwMTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4MDAsXG4gICAgICAgIGdmcDogMC4wMjM0OTAyLFxuICAgICAgICByb2ZmOiAwLjA2NDE1MzMsXG4gICAgICAgIHJvbjogMC4wOTA3NjU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4NTAsXG4gICAgICAgIGdmcDogMC4wMjM3MDMzLFxuICAgICAgICByb2ZmOiAwLjA2Mzg4NzEsXG4gICAgICAgIHJvbjogMC4wOTA1NjYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5MDAsXG4gICAgICAgIGdmcDogMC4wMjM4OTg2LFxuICAgICAgICByb2ZmOiAwLjA2MzY0NDgsXG4gICAgICAgIHJvbjogMC4wOTA0MTAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5NTAsXG4gICAgICAgIGdmcDogMC4wMjQwNzgzLFxuICAgICAgICByb2ZmOiAwLjA2MzQyMjksXG4gICAgICAgIHJvbjogMC4wOTAyOTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMDAsXG4gICAgICAgIGdmcDogMC4wMjQyNDQ2LFxuICAgICAgICByb2ZmOiAwLjA2MzIxODIsXG4gICAgICAgIHJvbjogMC4wOTAyMDg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwNTAsXG4gICAgICAgIGdmcDogMC4wMjQzOTk1LFxuICAgICAgICByb2ZmOiAwLjA2MzAyNzksXG4gICAgICAgIHJvbjogMC4wOTAxNTU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxMDAsXG4gICAgICAgIGdmcDogMC4wMjQ1NDQ3LFxuICAgICAgICByb2ZmOiAwLjA2Mjg0OTUsXG4gICAgICAgIHJvbjogMC4wOTAxMzAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxNTAsXG4gICAgICAgIGdmcDogMC4wMjQ2ODIsXG4gICAgICAgIHJvZmY6IDAuMDYyNjgwNyxcbiAgICAgICAgcm9uOiAwLjA5MDEyOTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNDgxMjcsXG4gICAgICAgIHJvZmY6IDAuMDYyNTE5OCxcbiAgICAgICAgcm9uOiAwLjA5MDE1MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDkzODMsXG4gICAgICAgIHJvZmY6IDAuMDYyMzY0OSxcbiAgICAgICAgcm9uOiAwLjA5MDE5MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTA2LFxuICAgICAgICByb2ZmOiAwLjA2MjIxNDcsXG4gICAgICAgIHJvbjogMC4wOTAyNTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzNTAsXG4gICAgICAgIGdmcDogMC4wMjUxNzg3LFxuICAgICAgICByb2ZmOiAwLjA2MjA2NzcsXG4gICAgICAgIHJvbjogMC4wOTAzMzA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0MDAsXG4gICAgICAgIGdmcDogMC4wMjUyOTU3LFxuICAgICAgICByb2ZmOiAwLjA2MTkyMjksXG4gICAgICAgIHJvbjogMC4wOTA0MjQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0NTAsXG4gICAgICAgIGdmcDogMC4wMjU0MTE2LFxuICAgICAgICByb2ZmOiAwLjA2MTc3OTEsXG4gICAgICAgIHJvbjogMC4wOTA1MzQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MDAsXG4gICAgICAgIGdmcDogMC4wMjU1Mjc0LFxuICAgICAgICByb2ZmOiAwLjA2MTYzNTQsXG4gICAgICAgIHJvbjogMC4wOTA2NTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1NTAsXG4gICAgICAgIGdmcDogMC4wMjU2NDM4LFxuICAgICAgICByb2ZmOiAwLjA2MTQ5MTEsXG4gICAgICAgIHJvbjogMC4wOTA3OTYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2MDAsXG4gICAgICAgIGdmcDogMC4wMjU3NjE2LFxuICAgICAgICByb2ZmOiAwLjA2MTM0NTMsXG4gICAgICAgIHJvbjogMC4wOTA5NDc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2NTAsXG4gICAgICAgIGdmcDogMC4wMjU4ODEyLFxuICAgICAgICByb2ZmOiAwLjA2MTE5NzMsXG4gICAgICAgIHJvbjogMC4wOTExMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNjAwMzUsXG4gICAgICAgIHJvZmY6IDAuMDYxMDQ2NyxcbiAgICAgICAgcm9uOiAwLjA5MTI4OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNjEyODgsXG4gICAgICAgIHJvZmY6IDAuMDYwODkyNyxcbiAgICAgICAgcm9uOiAwLjA5MTQ3OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNjI1NzgsXG4gICAgICAgIHJvZmY6IDAuMDYwNzM0OCxcbiAgICAgICAgcm9uOiAwLjA5MTY4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNjM5MDksXG4gICAgICAgIHJvZmY6IDAuMDYwNTcyNyxcbiAgICAgICAgcm9uOiAwLjA5MTg5OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNjUyODcsXG4gICAgICAgIHJvZmY6IDAuMDYwNDA1NyxcbiAgICAgICAgcm9uOiAwLjA5MjEyODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNjY3MTcsXG4gICAgICAgIHJvZmY6IDAuMDYwMjMzNixcbiAgICAgICAgcm9uOiAwLjA5MjM3MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNjgyMDMsXG4gICAgICAgIHJvZmY6IDAuMDYwMDU1OSxcbiAgICAgICAgcm9uOiAwLjA5MjYyNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNjk3NSxcbiAgICAgICAgcm9mZjogMC4wNTk4NzIxLFxuICAgICAgICByb246IDAuMDkyODk4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTAwLFxuICAgICAgICBnZnA6IDAuMDI3MTM2MyxcbiAgICAgICAgcm9mZjogMC4wNTk2ODE5LFxuICAgICAgICByb246IDAuMDkzMTgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTUwLFxuICAgICAgICBnZnA6IDAuMDI3MzA0NyxcbiAgICAgICAgcm9mZjogMC4wNTk0ODUsXG4gICAgICAgIHJvbjogMC4wOTM0ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyMDAsXG4gICAgICAgIGdmcDogMC4wMjc0ODA4LFxuICAgICAgICByb2ZmOiAwLjA1OTI4MSxcbiAgICAgICAgcm9uOiAwLjA5Mzc5OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNzY2NSxcbiAgICAgICAgcm9mZjogMC4wNTkwNjk1LFxuICAgICAgICByb246IDAuMDk0MTMxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzAwLFxuICAgICAgICBnZnA6IDAuMDI3ODU3OCxcbiAgICAgICAgcm9mZjogMC4wNTg4NTAzLFxuICAgICAgICByb246IDAuMDk0NDc5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzUwLFxuICAgICAgICBnZnA6IDAuMDI4MDU5OSxcbiAgICAgICAgcm9mZjogMC4wNTg2MjI5LFxuICAgICAgICByb246IDAuMDk0ODQ2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDAwLFxuICAgICAgICBnZnA6IDAuMDI4MjcxNyxcbiAgICAgICAgcm9mZjogMC4wNTgzODcsXG4gICAgICAgIHJvbjogMC4wOTUyMzE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0NTAsXG4gICAgICAgIGdmcDogMC4wMjg0OTQsXG4gICAgICAgIHJvZmY6IDAuMDU4MTQyMyxcbiAgICAgICAgcm9uOiAwLjA5NTYzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAwLFxuICAgICAgICBnZnA6IDAuMDI4NzI3MyxcbiAgICAgICAgcm9mZjogMC4wNTc4ODg1LFxuICAgICAgICByb246IDAuMDk2MDYwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTUwLFxuICAgICAgICBnZnA6IDAuMDI4OTcyNCxcbiAgICAgICAgcm9mZjogMC4wNTc2MjUyLFxuICAgICAgICByb246IDAuMDk2NTA2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjAwLFxuICAgICAgICBnZnA6IDAuMDI5MjI5OSxcbiAgICAgICAgcm9mZjogMC4wNTczNTIyLFxuICAgICAgICByb246IDAuMDk2OTc1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjUwLFxuICAgICAgICBnZnA6IDAuMDI5NTAwNSxcbiAgICAgICAgcm9mZjogMC4wNTcwNjg5LFxuICAgICAgICByb246IDAuMDk3NDY3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzAwLFxuICAgICAgICBnZnA6IDAuMDI5Nzg1MixcbiAgICAgICAgcm9mZjogMC4wNTY3NzUzLFxuICAgICAgICByb246IDAuMDk3OTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3NTAsXG4gICAgICAgIGdmcDogMC4wMzAwODQ3LFxuICAgICAgICByb2ZmOiAwLjA1NjQ3MDgsXG4gICAgICAgIHJvbjogMC4wOTg1MjY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4MDAsXG4gICAgICAgIGdmcDogMC4wMzAzOTk5LFxuICAgICAgICByb2ZmOiAwLjA1NjE1NTIsXG4gICAgICAgIHJvbjogMC4wOTkwOTcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4NTAsXG4gICAgICAgIGdmcDogMC4wMzA3MzE5LFxuICAgICAgICByb2ZmOiAwLjA1NTgyODIsXG4gICAgICAgIHJvbjogMC4wOTk2OTY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5MDAsXG4gICAgICAgIGdmcDogMC4wMzEwODE2LFxuICAgICAgICByb2ZmOiAwLjA1NTQ4OTQsXG4gICAgICAgIHJvbjogMC4xMDAzMjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMTQ1MDIsXG4gICAgICAgIHJvZmY6IDAuMDU1MTM4NixcbiAgICAgICAgcm9uOiAwLjEwMDk4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAwLFxuICAgICAgICBnZnA6IDAuMDMxODM4NyxcbiAgICAgICAgcm9mZjogMC4wNTQ3NzU0LFxuICAgICAgICByb246IDAuMTAxNjg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwNTAsXG4gICAgICAgIGdmcDogMC4wMzIyNDg2LFxuICAgICAgICByb2ZmOiAwLjA1NDM5OTUsXG4gICAgICAgIHJvbjogMC4xMDI0MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMjY4MSxcbiAgICAgICAgcm9mZjogMC4wNTQwMTA1LFxuICAgICAgICByb246IDAuMTAzMTg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxNTAsXG4gICAgICAgIGdmcDogMC4wMzMxMzc1LFxuICAgICAgICByb2ZmOiAwLjA1MzYwODMsXG4gICAgICAgIHJvbjogMC4xMDM5OTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMzYxOTcsXG4gICAgICAgIHJvZmY6IDAuMDUzMTkyNixcbiAgICAgICAgcm9uOiAwLjEwNDg1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjUwLFxuICAgICAgICBnZnA6IDAuMDM0MTI5MSxcbiAgICAgICAgcm9mZjogMC4wNTI3NjMsXG4gICAgICAgIHJvbjogMC4xMDU3NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAzNDY2NzcsXG4gICAgICAgIHJvZmY6IDAuMDUyMzE5MixcbiAgICAgICAgcm9uOiAwLjEwNjY5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzUwLFxuICAgICAgICBnZnA6IDAuMDM1MjM3MixcbiAgICAgICAgcm9mZjogMC4wNTE4NjEyLFxuICAgICAgICByb246IDAuMTA3Njk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0MDAsXG4gICAgICAgIGdmcDogMC4wMzU4Mzk4LFxuICAgICAgICByb2ZmOiAwLjA1MTM4ODYsXG4gICAgICAgIHJvbjogMC4xMDg3NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAzNjQ3NzcsXG4gICAgICAgIHJvZmY6IDAuMDUwOTAxMixcbiAgICAgICAgcm9uOiAwLjEwOTg1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAwLFxuICAgICAgICBnZnA6IDAuMDM3MTUzNCxcbiAgICAgICAgcm9mZjogMC4wNTAzOTg5LFxuICAgICAgICByb246IDAuMTExMDIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1NTAsXG4gICAgICAgIGdmcDogMC4wMzc4NjkzLFxuICAgICAgICByb2ZmOiAwLjA0OTg4MTQsXG4gICAgICAgIHJvbjogMC4xMTIyNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAzODYyODQsXG4gICAgICAgIHJvZmY6IDAuMDQ5MzQ4NyxcbiAgICAgICAgcm9uOiAwLjExMzU1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjUwLFxuICAgICAgICBnZnA6IDAuMDM5NDMzNixcbiAgICAgICAgcm9mZjogMC4wNDg4MDA3LFxuICAgICAgICByb246IDAuMTE0OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3MDAsXG4gICAgICAgIGdmcDogMC4wNDAyODgyLFxuICAgICAgICByb2ZmOiAwLjA0ODIzNzIsXG4gICAgICAgIHJvbjogMC4xMTYzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzUwLFxuICAgICAgICBnZnA6IDAuMDQxMTk1OCxcbiAgICAgICAgcm9mZjogMC4wNDc2NTgzLFxuICAgICAgICByb246IDAuMTE3OTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4MDAsXG4gICAgICAgIGdmcDogMC4wNDIxNjAxLFxuICAgICAgICByb2ZmOiAwLjA0NzA2NCxcbiAgICAgICAgcm9uOiAwLjExOTUzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODUwLFxuICAgICAgICBnZnA6IDAuMDQzMTg1MixcbiAgICAgICAgcm9mZjogMC4wNDY0NTQyLFxuICAgICAgICByb246IDAuMTIxMjQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5MDAsXG4gICAgICAgIGdmcDogMC4wNDQyNzU2LFxuICAgICAgICByb2ZmOiAwLjA0NTgyOTIsXG4gICAgICAgIHJvbjogMC4xMjMwNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjA0NTQzNjIsXG4gICAgICAgIHJvZmY6IDAuMDQ1MTg5LFxuICAgICAgICByb246IDAuMTI0OTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMDAsXG4gICAgICAgIGdmcDogMC4wNDY2NzIxLFxuICAgICAgICByb2ZmOiAwLjA0NDUzMzgsXG4gICAgICAgIHJvbjogMC4xMjcwMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjA0Nzk4OSxcbiAgICAgICAgcm9mZjogMC4wNDM4NjM5LFxuICAgICAgICByb246IDAuMTI5MTY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxMDAsXG4gICAgICAgIGdmcDogMC4wNDkzOTI5LFxuICAgICAgICByb2ZmOiAwLjA0MzE3OTUsXG4gICAgICAgIHJvbjogMC4xMzE0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTUwLFxuICAgICAgICBnZnA6IDAuMDUwODkwNixcbiAgICAgICAgcm9mZjogMC4wNDI0ODExLFxuICAgICAgICByb246IDAuMTMzODY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyMDAsXG4gICAgICAgIGdmcDogMC4wNTI0ODksXG4gICAgICAgIHJvZmY6IDAuMDQxNzY5LFxuICAgICAgICByb246IDAuMTM2NDM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyNTAsXG4gICAgICAgIGdmcDogMC4wNTQxOTYsXG4gICAgICAgIHJvZmY6IDAuMDQxMDQzOCxcbiAgICAgICAgcm9uOiAwLjEzOTE1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzAwLFxuICAgICAgICBnZnA6IDAuMDU2MDE5OCxcbiAgICAgICAgcm9mZjogMC4wNDAzMDYsXG4gICAgICAgIHJvbjogMC4xNDIwNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjA1Nzk2OTUsXG4gICAgICAgIHJvZmY6IDAuMDM5NTU2MSxcbiAgICAgICAgcm9uOiAwLjE0NTExOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDAwLFxuICAgICAgICBnZnA6IDAuMDYwMDU0NyxcbiAgICAgICAgcm9mZjogMC4wMzg3OTUsXG4gICAgICAgIHJvbjogMC4xNDgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDUwLFxuICAgICAgICBnZnA6IDAuMDYyMjg2MSxcbiAgICAgICAgcm9mZjogMC4wMzgwMjMyLFxuICAgICAgICByb246IDAuMTUxODQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MDAsXG4gICAgICAgIGdmcDogMC4wNjQ2NzQ4LFxuICAgICAgICByb2ZmOiAwLjAzNzI0MTcsXG4gICAgICAgIHJvbjogMC4xNTU1MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjA2NzIzMzEsXG4gICAgICAgIHJvZmY6IDAuMDM2NDUxNCxcbiAgICAgICAgcm9uOiAwLjE1OTQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2MDAsXG4gICAgICAgIGdmcDogMC4wNjk5NzM5LFxuICAgICAgICByb2ZmOiAwLjAzNTY1MyxcbiAgICAgICAgcm9uOiAwLjE2MzYxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjUwLFxuICAgICAgICBnZnA6IDAuMDcyOTExNCxcbiAgICAgICAgcm9mZjogMC4wMzQ4NDc4LFxuICAgICAgICByb246IDAuMTY4MDUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3MDAsXG4gICAgICAgIGdmcDogMC4wNzYwNjA1LFxuICAgICAgICByb2ZmOiAwLjAzNDAzNjYsXG4gICAgICAgIHJvbjogMC4xNzI3NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjA3OTQzNzIsXG4gICAgICAgIHJvZmY6IDAuMDMzMjIwNyxcbiAgICAgICAgcm9uOiAwLjE3Nzc5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODAwLFxuICAgICAgICBnZnA6IDAuMDgzMDU4NixcbiAgICAgICAgcm9mZjogMC4wMzI0MDEyLFxuICAgICAgICByb246IDAuMTgzMTQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4NTAsXG4gICAgICAgIGdmcDogMC4wODY5NDMsXG4gICAgICAgIHJvZmY6IDAuMDMxNTc5MixcbiAgICAgICAgcm9uOiAwLjE4ODgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTAwLFxuICAgICAgICBnZnA6IDAuMDkxMTA5NSxcbiAgICAgICAgcm9mZjogMC4wMzA3NTYsXG4gICAgICAgIHJvbjogMC4xOTQ4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjA5NTU3ODQsXG4gICAgICAgIHJvZmY6IDAuMDI5OTMyOSxcbiAgICAgICAgcm9uOiAwLjIwMTM0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAwLFxuICAgICAgICBnZnA6IDAuMTAwMzcxLFxuICAgICAgICByb2ZmOiAwLjAyOTExMTEsXG4gICAgICAgIHJvbjogMC4yMDgyMDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjEwNTUxLFxuICAgICAgICByb2ZmOiAwLjAyODI5MixcbiAgICAgICAgcm9uOiAwLjIxNTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjExMTAxOSxcbiAgICAgICAgcm9mZjogMC4wMjc0NzY3LFxuICAgICAgICByb246IDAuMjIzMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzE1MCxcbiAgICAgICAgZ2ZwOiAwLjExNjkyMSxcbiAgICAgICAgcm9mZjogMC4wMjY2NjY1LFxuICAgICAgICByb246IDAuMjMxNTA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyMDAsXG4gICAgICAgIGdmcDogMC4xMjMyNDEsXG4gICAgICAgIHJvZmY6IDAuMDI1ODYyOCxcbiAgICAgICAgcm9uOiAwLjI0MDI2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjUwLFxuICAgICAgICBnZnA6IDAuMTMwMDA1LFxuICAgICAgICByb2ZmOiAwLjAyNTA2NjgsXG4gICAgICAgIHJvbjogMC4yNDk1NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjEzNzIzOCxcbiAgICAgICAgcm9mZjogMC4wMjQyNzk1LFxuICAgICAgICByb246IDAuMjU5Mzk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczNTAsXG4gICAgICAgIGdmcDogMC4xNDQ5NjcsXG4gICAgICAgIHJvZmY6IDAuMDIzNTAyMixcbiAgICAgICAgcm9uOiAwLjI2OTgyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDAwLFxuICAgICAgICBnZnA6IDAuMTUzMjE1LFxuICAgICAgICByb2ZmOiAwLjAyMjczNTksXG4gICAgICAgIHJvbjogMC4yODA4NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjE2MjAwOSxcbiAgICAgICAgcm9mZjogMC4wMjE5ODE3LFxuICAgICAgICByb246IDAuMjkyNDgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MDAsXG4gICAgICAgIGdmcDogMC4xNzEzNzEsXG4gICAgICAgIHJvZmY6IDAuMDIxMjQwNSxcbiAgICAgICAgcm9uOiAwLjMwNDc0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTUwLFxuICAgICAgICBnZnA6IDAuMTgxMzI1LFxuICAgICAgICByb2ZmOiAwLjAyMDUxMzIsXG4gICAgICAgIHJvbjogMC4zMTc2MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzYwMCxcbiAgICAgICAgZ2ZwOiAwLjE5MTg4OSxcbiAgICAgICAgcm9mZjogMC4wMTk4MDA2LFxuICAgICAgICByb246IDAuMzMxMTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2NTAsXG4gICAgICAgIGdmcDogMC4yMDMwODMsXG4gICAgICAgIHJvZmY6IDAuMDE5MTAzMyxcbiAgICAgICAgcm9uOiAwLjM0NTMxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzAwLFxuICAgICAgICBnZnA6IDAuMjE0OTIxLFxuICAgICAgICByb2ZmOiAwLjAxODQyMjEsXG4gICAgICAgIHJvbjogMC4zNjAwODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzc1MCxcbiAgICAgICAgZ2ZwOiAwLjIyNzQxNCxcbiAgICAgICAgcm9mZjogMC4wMTc3NTc0LFxuICAgICAgICByb246IDAuMzc1NDQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4MDAsXG4gICAgICAgIGdmcDogMC4yNDA1NjgsXG4gICAgICAgIHJvZmY6IDAuMDE3MTA5NyxcbiAgICAgICAgcm9uOiAwLjM5MTM1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODUwLFxuICAgICAgICBnZnA6IDAuMjU0Mzg3LFxuICAgICAgICByb2ZmOiAwLjAxNjQ3OTMsXG4gICAgICAgIHJvbjogMC40MDc3ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjI2ODg2NixcbiAgICAgICAgcm9mZjogMC4wMTU4NjY3LFxuICAgICAgICByb246IDAuNDI0NjY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5NTAsXG4gICAgICAgIGdmcDogMC4yODM5OTcsXG4gICAgICAgIHJvZmY6IDAuMDE1MjcxOSxcbiAgICAgICAgcm9uOiAwLjQ0MTkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAwLFxuICAgICAgICBnZnA6IDAuMjk5NzY1LFxuICAgICAgICByb2ZmOiAwLjAxNDY5NTEsXG4gICAgICAgIHJvbjogMC40NTk0OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODA1MCxcbiAgICAgICAgZ2ZwOiAwLjMxNjE0NixcbiAgICAgICAgcm9mZjogMC4wMTQxMzYzLFxuICAgICAgICByb246IDAuNDc3MjU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxMDAsXG4gICAgICAgIGdmcDogMC4zMzMxMTMsXG4gICAgICAgIHJvZmY6IDAuMDEzNTk1NixcbiAgICAgICAgcm9uOiAwLjQ5NTExNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTUwLFxuICAgICAgICBnZnA6IDAuMzUwNjMsXG4gICAgICAgIHJvZmY6IDAuMDEzMDcyOSxcbiAgICAgICAgcm9uOiAwLjUxMjk0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjAwLFxuICAgICAgICBnZnA6IDAuMzY4NjU0LFxuICAgICAgICByb2ZmOiAwLjAxMjU2OCxcbiAgICAgICAgcm9uOiAwLjUzMDYzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjUwLFxuICAgICAgICBnZnA6IDAuMzg3MTM2LFxuICAgICAgICByb2ZmOiAwLjAxMjA4MDgsXG4gICAgICAgIHJvbjogMC41NDgwMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODMwMCxcbiAgICAgICAgZ2ZwOiAwLjQwNjAyMSxcbiAgICAgICAgcm9mZjogMC4wMTE2MTExLFxuICAgICAgICByb246IDAuNTY1MDM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzNTAsXG4gICAgICAgIGdmcDogMC40MjUyNDgsXG4gICAgICAgIHJvZmY6IDAuMDExMTU4NSxcbiAgICAgICAgcm9uOiAwLjU4MTUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDAwLFxuICAgICAgICBnZnA6IDAuNDQ0NzUyLFxuICAgICAgICByb2ZmOiAwLjAxMDcyMjgsXG4gICAgICAgIHJvbjogMC41OTczM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDUwLFxuICAgICAgICBnZnA6IDAuNDY0NDY0LFxuICAgICAgICByb2ZmOiAwLjAxMDMwMzYsXG4gICAgICAgIHJvbjogMC42MTI0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAwLFxuICAgICAgICBnZnA6IDAuNDg0MzEsXG4gICAgICAgIHJvZmY6IDAuMDA5OTAwNTQsXG4gICAgICAgIHJvbjogMC42MjY2OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODU1MCxcbiAgICAgICAgZ2ZwOiAwLjUwNDIxOCxcbiAgICAgICAgcm9mZjogMC4wMDk1MTMyNixcbiAgICAgICAgcm9uOiAwLjY0MDEwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjAwLFxuICAgICAgICBnZnA6IDAuNTI0MTE0LFxuICAgICAgICByb2ZmOiAwLjAwOTE0MTMzLFxuICAgICAgICByb246IDAuNjUyNjI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2NTAsXG4gICAgICAgIGdmcDogMC41NDM5MjMsXG4gICAgICAgIHJvZmY6IDAuMDA4Nzg0MyxcbiAgICAgICAgcm9uOiAwLjY2NDI0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzAwLFxuICAgICAgICBnZnA6IDAuNTYzNTc1LFxuICAgICAgICByb2ZmOiAwLjAwODQ0MTczLFxuICAgICAgICByb246IDAuNjc0OTc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3NTAsXG4gICAgICAgIGdmcDogMC41ODMwMDEsXG4gICAgICAgIHJvZmY6IDAuMDA4MTEzMTYsXG4gICAgICAgIHJvbjogMC42ODQ4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODAwLFxuICAgICAgICBnZnA6IDAuNjAyMTM2LFxuICAgICAgICByb2ZmOiAwLjAwNzc5ODEyLFxuICAgICAgICByb246IDAuNjkzOTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4NTAsXG4gICAgICAgIGdmcDogMC42MjA5MTksXG4gICAgICAgIHJvZmY6IDAuMDA3NDk2MTUsXG4gICAgICAgIHJvbjogMC43MDIyMjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODkwMCxcbiAgICAgICAgZ2ZwOiAwLjYzOTI5NyxcbiAgICAgICAgcm9mZjogMC4wMDcyMDY3OSxcbiAgICAgICAgcm9uOiAwLjcwOTgyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTUwLFxuICAgICAgICBnZnA6IDAuNjU3MjIxLFxuICAgICAgICByb2ZmOiAwLjAwNjkyOTU3LFxuICAgICAgICByb246IDAuNzE2Nzg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMDAsXG4gICAgICAgIGdmcDogMC42NzQ2NDcsXG4gICAgICAgIHJvZmY6IDAuMDA2NjY0MDMsXG4gICAgICAgIHJvbjogMC43MjMxNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjY5MTUzOSxcbiAgICAgICAgcm9mZjogMC4wMDY0MDk3MyxcbiAgICAgICAgcm9uOiAwLjcyOTAwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTAwLFxuICAgICAgICBnZnA6IDAuNzA3ODY2LFxuICAgICAgICByb2ZmOiAwLjAwNjE2NjIzLFxuICAgICAgICByb246IDAuNzM0MzU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxNTAsXG4gICAgICAgIGdmcDogMC43MjM2MDQsXG4gICAgICAgIHJvZmY6IDAuMDA1OTMzMTEsXG4gICAgICAgIHJvbjogMC43MzkyNzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTIwMCxcbiAgICAgICAgZ2ZwOiAwLjczODczNixcbiAgICAgICAgcm9mZjogMC4wMDU3MDk5NSxcbiAgICAgICAgcm9uOiAwLjc0Mzc4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjUwLFxuICAgICAgICBnZnA6IDAuNzUzMjQ5LFxuICAgICAgICByb2ZmOiAwLjAwNTQ5NjM0LFxuICAgICAgICByb246IDAuNzQ3OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzMDAsXG4gICAgICAgIGdmcDogMC43NjcxMzUsXG4gICAgICAgIHJvZmY6IDAuMDA1MjkxOTEsXG4gICAgICAgIHJvbjogMC43NTE3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzUwLFxuICAgICAgICBnZnA6IDAuNzgwMzkyLFxuICAgICAgICByb2ZmOiAwLjAwNTA5NjI2LFxuICAgICAgICByb246IDAuNzU1MjYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0MDAsXG4gICAgICAgIGdmcDogMC43OTMwMjMsXG4gICAgICAgIHJvZmY6IDAuMDA0OTA5MDQsXG4gICAgICAgIHJvbjogMC43NTg0OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjgwNTAzNCxcbiAgICAgICAgcm9mZjogMC4wMDQ3Mjk5LFxuICAgICAgICByb246IDAuNzYxNDc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MDAsXG4gICAgICAgIGdmcDogMC44MTY0MzQsXG4gICAgICAgIHJvZmY6IDAuMDA0NTU4NSxcbiAgICAgICAgcm9uOiAwLjc2NDIyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTUwLFxuICAgICAgICBnZnA6IDAuODI3MjM1LFxuICAgICAgICByb2ZmOiAwLjAwNDM5NDUyLFxuICAgICAgICByb246IDAuNzY2NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTYwMCxcbiAgICAgICAgZ2ZwOiAwLjgzNzQ1NCxcbiAgICAgICAgcm9mZjogMC4wMDQyMzc2NCxcbiAgICAgICAgcm9uOiAwLjc2OTA5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjUwLFxuICAgICAgICBnZnA6IDAuODQ3MTA4LFxuICAgICAgICByb2ZmOiAwLjAwNDA4NzU2LFxuICAgICAgICByb246IDAuNzcxMjU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3MDAsXG4gICAgICAgIGdmcDogMC44NTYyMTUsXG4gICAgICAgIHJvZmY6IDAuMDAzOTQ0LFxuICAgICAgICByb246IDAuNzczMjQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3NTAsXG4gICAgICAgIGdmcDogMC44NjQ3OTUsXG4gICAgICAgIHJvZmY6IDAuMDAzODA2NjgsXG4gICAgICAgIHJvbjogMC43NzUwODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjg3Mjg3MSxcbiAgICAgICAgcm9mZjogMC4wMDM2NzUzNCxcbiAgICAgICAgcm9uOiAwLjc3Njc4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODUwLFxuICAgICAgICBnZnA6IDAuODgwNDYyLFxuICAgICAgICByb2ZmOiAwLjAwMzU0OTcxLFxuICAgICAgICByb246IDAuNzc4MzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5MDAsXG4gICAgICAgIGdmcDogMC44ODc1OTMsXG4gICAgICAgIHJvZmY6IDAuMDAzNDI5NTYsXG4gICAgICAgIHJvbjogMC43Nzk3OTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjg5NDI4NSxcbiAgICAgICAgcm9mZjogMC4wMDMzMTQ2NCxcbiAgICAgICAgcm9uOiAwLjc4MTEzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwMCxcbiAgICAgICAgZ2ZwOiAwLjkwMDU2LFxuICAgICAgICByb2ZmOiAwLjAwMzIwNDc0LFxuICAgICAgICByb246IDAuNzgyMzc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDUwLFxuICAgICAgICBnZnA6IDAuOTA2NDQxLFxuICAgICAgICByb2ZmOiAwLjAwMzA5OTY0LFxuICAgICAgICByb246IDAuNzgzNTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTAwLFxuICAgICAgICBnZnA6IDAuOTExOTQ4LFxuICAgICAgICByb2ZmOiAwLjAwMjk5OTE0LFxuICAgICAgICByb246IDAuNzg0NTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTUwLFxuICAgICAgICBnZnA6IDAuOTE3MTAzLFxuICAgICAgICByb2ZmOiAwLjAwMjkwMzAyLFxuICAgICAgICByb246IDAuNzg1NTY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjAwLFxuICAgICAgICBnZnA6IDAuOTIxOTI2LFxuICAgICAgICByb2ZmOiAwLjAwMjgxMTExLFxuICAgICAgICByb246IDAuNzg2NDczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjUwLFxuICAgICAgICBnZnA6IDAuOTI2NDM3LFxuICAgICAgICByb2ZmOiAwLjAwMjcyMzIzLFxuICAgICAgICByb246IDAuNzg3MzE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzAwLFxuICAgICAgICBnZnA6IDAuOTMwNjU0LFxuICAgICAgICByb2ZmOiAwLjAwMjYzOTE5LFxuICAgICAgICByb246IDAuNzg4MDk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzUwLFxuICAgICAgICBnZnA6IDAuOTM0NTk2LFxuICAgICAgICByb2ZmOiAwLjAwMjU1ODgzLFxuICAgICAgICByb246IDAuNzg4ODE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDAwLFxuICAgICAgICBnZnA6IDAuOTM4Mjc5LFxuICAgICAgICByb2ZmOiAwLjAwMjQ4MTk5LFxuICAgICAgICByb246IDAuNzg5NDg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDUwLFxuICAgICAgICBnZnA6IDAuOTQxNzIxLFxuICAgICAgICByb2ZmOiAwLjAwMjQwODUyLFxuICAgICAgICByb246IDAuNzkwMTA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAwLFxuICAgICAgICBnZnA6IDAuOTQ0OTM2LFxuICAgICAgICByb2ZmOiAwLjAwMjMzODI4LFxuICAgICAgICByb246IDAuNzkwNjg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTUwLFxuICAgICAgICBnZnA6IDAuOTQ3OTQsXG4gICAgICAgIHJvZmY6IDAuMDAyMjcxMTIsXG4gICAgICAgIHJvbjogMC43OTEyMTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2MDAsXG4gICAgICAgIGdmcDogMC45NTA3NDUsXG4gICAgICAgIHJvZmY6IDAuMDAyMjA2OSxcbiAgICAgICAgcm9uOiAwLjc5MTcxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk1MzM2NixcbiAgICAgICAgcm9mZjogMC4wMDIxNDU1MSxcbiAgICAgICAgcm9uOiAwLjc5MjE3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk1NTgxNSxcbiAgICAgICAgcm9mZjogMC4wMDIwODY4MSxcbiAgICAgICAgcm9uOiAwLjc5MjYwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk1ODEwMyxcbiAgICAgICAgcm9mZjogMC4wMDIwMzA2OSxcbiAgICAgICAgcm9uOiAwLjc5MzAwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk2MDI0LFxuICAgICAgICByb2ZmOiAwLjAwMTk3NzA0LFxuICAgICAgICByb246IDAuNzkzMzc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODUwLFxuICAgICAgICBnZnA6IDAuOTYyMjM4LFxuICAgICAgICByb2ZmOiAwLjAwMTkyNTc1LFxuICAgICAgICByb246IDAuNzkzNzIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTAwLFxuICAgICAgICBnZnA6IDAuOTY0MTA1LFxuICAgICAgICByb2ZmOiAwLjAwMTg3NjcxLFxuICAgICAgICByb246IDAuNzk0MDQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTUwLFxuICAgICAgICBnZnA6IDAuOTY1ODUxLFxuICAgICAgICByb2ZmOiAwLjAwMTgyOTgzLFxuICAgICAgICByb246IDAuNzk0MzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAwLFxuICAgICAgICBnZnA6IDAuOTY3NDg0LFxuICAgICAgICByb2ZmOiAwLjAwMTc4NTAxLFxuICAgICAgICByb246IDAuNzk0NjI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDUwLFxuICAgICAgICBnZnA6IDAuOTY5MDExLFxuICAgICAgICByb2ZmOiAwLjAwMTc0MjE2LFxuICAgICAgICByb246IDAuNzk0ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTAwLFxuICAgICAgICBnZnA6IDAuOTcwNDQsXG4gICAgICAgIHJvZmY6IDAuMDAxNzAxMjEsXG4gICAgICAgIHJvbjogMC43OTUxMjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExNTAsXG4gICAgICAgIGdmcDogMC45NzE3NzcsXG4gICAgICAgIHJvZmY6IDAuMDAxNjYyMDUsXG4gICAgICAgIHJvbjogMC43OTUzNTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyMDAsXG4gICAgICAgIGdmcDogMC45NzMwMjksXG4gICAgICAgIHJvZmY6IDAuMDAxNjI0NjIsXG4gICAgICAgIHJvbjogMC43OTU1NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyNTAsXG4gICAgICAgIGdmcDogMC45NzQyMDEsXG4gICAgICAgIHJvZmY6IDAuMDAxNTg4ODMsXG4gICAgICAgIHJvbjogMC43OTU3NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzMDAsXG4gICAgICAgIGdmcDogMC45NzUyOTksXG4gICAgICAgIHJvZmY6IDAuMDAxNTU0NjMsXG4gICAgICAgIHJvbjogMC43OTU5NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzNTAsXG4gICAgICAgIGdmcDogMC45NzYzMjgsXG4gICAgICAgIHJvZmY6IDAuMDAxNTIxOTMsXG4gICAgICAgIHJvbjogMC43OTYxMjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0MDAsXG4gICAgICAgIGdmcDogMC45NzcyOTMsXG4gICAgICAgIHJvZmY6IDAuMDAxNDkwNjcsXG4gICAgICAgIHJvbjogMC43OTYyODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0NTAsXG4gICAgICAgIGdmcDogMC45NzgxOTgsXG4gICAgICAgIHJvZmY6IDAuMDAxNDYwNzgsXG4gICAgICAgIHJvbjogMC43OTY0MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MDAsXG4gICAgICAgIGdmcDogMC45NzkwNDcsXG4gICAgICAgIHJvZmY6IDAuMDAxNDMyMjIsXG4gICAgICAgIHJvbjogMC43OTY1NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1NTAsXG4gICAgICAgIGdmcDogMC45Nzk4NDQsXG4gICAgICAgIHJvZmY6IDAuMDAxNDA0OTIsXG4gICAgICAgIHJvbjogMC43OTY3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MDU5MixcbiAgICAgICAgcm9mZjogMC4wMDEzNzg4MixcbiAgICAgICAgcm9uOiAwLjc5NjgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk4MTI5NCxcbiAgICAgICAgcm9mZjogMC4wMDEzNTM4NyxcbiAgICAgICAgcm9uOiAwLjc5Njk1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MTk1NCxcbiAgICAgICAgcm9mZjogMC4wMDEzMzAwMixcbiAgICAgICAgcm9uOiAwLjc5NzA2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk4MjU3NSxcbiAgICAgICAgcm9mZjogMC4wMDEzMDcyMixcbiAgICAgICAgcm9uOiAwLjc5NzE2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MzE1OCxcbiAgICAgICAgcm9mZjogMC4wMDEyODU0MyxcbiAgICAgICAgcm9uOiAwLjc5NzI2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk4MzcwNyxcbiAgICAgICAgcm9mZjogMC4wMDEyNjQ2LFxuICAgICAgICByb246IDAuNzk3MzUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTAwLFxuICAgICAgICBnZnA6IDAuOTg0MjI0LFxuICAgICAgICByb2ZmOiAwLjAwMTI0NDY5LFxuICAgICAgICByb246IDAuNzk3NDM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTUwLFxuICAgICAgICBnZnA6IDAuOTg0NzEsXG4gICAgICAgIHJvZmY6IDAuMDAxMjI1NjUsXG4gICAgICAgIHJvbjogMC43OTc1MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMDAsXG4gICAgICAgIGdmcDogMC45ODUxNjgsXG4gICAgICAgIHJvZmY6IDAuMDAxMjA3NDYsXG4gICAgICAgIHJvbjogMC43OTc1OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwNTAsXG4gICAgICAgIGdmcDogMC45ODU2LFxuICAgICAgICByb2ZmOiAwLjAwMTE5MDA3LFxuICAgICAgICByb246IDAuNzk3NjY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTAwLFxuICAgICAgICBnZnA6IDAuOTg2MDA3LFxuICAgICAgICByb2ZmOiAwLjAwMTE3MzQ1LFxuICAgICAgICByb246IDAuNzk3NzMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTUwLFxuICAgICAgICBnZnA6IDAuOTg2MzkxLFxuICAgICAgICByb2ZmOiAwLjAwMTE1NzU2LFxuICAgICAgICByb246IDAuNzk3Nzk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjAwLFxuICAgICAgICBnZnA6IDAuOTg2NzUzLFxuICAgICAgICByb2ZmOiAwLjAwMTE0MjM4LFxuICAgICAgICByb246IDAuNzk3ODU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjUwLFxuICAgICAgICBnZnA6IDAuOTg3MDk1LFxuICAgICAgICByb2ZmOiAwLjAwMTEyNzg2LFxuICAgICAgICByb246IDAuNzk3OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzMDAsXG4gICAgICAgIGdmcDogMC45ODc0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAxMTEzOTgsXG4gICAgICAgIHJvbjogMC43OTc5NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzNTAsXG4gICAgICAgIGdmcDogMC45ODc3MjIsXG4gICAgICAgIHJvZmY6IDAuMDAxMTAwNzIsXG4gICAgICAgIHJvbjogMC43OTgwMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0MDAsXG4gICAgICAgIGdmcDogMC45ODgwMSxcbiAgICAgICAgcm9mZjogMC4wMDEwODgwNCxcbiAgICAgICAgcm9uOiAwLjc5ODA2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDUwLFxuICAgICAgICBnZnA6IDAuOTg4MjgyLFxuICAgICAgICByb2ZmOiAwLjAwMTA3NTkzLFxuICAgICAgICByb246IDAuNzk4MTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAwLFxuICAgICAgICBnZnA6IDAuOTg4NTM5LFxuICAgICAgICByb2ZmOiAwLjAwMTA2NDM1LFxuICAgICAgICByb246IDAuNzk4MTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTUwLFxuICAgICAgICBnZnA6IDAuOTg4NzgyLFxuICAgICAgICByb2ZmOiAwLjAwMTA1MzI4LFxuICAgICAgICByb246IDAuNzk4MTg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjAwLFxuICAgICAgICBnZnA6IDAuOTg5MDEyLFxuICAgICAgICByb2ZmOiAwLjAwMTA0MjY5LFxuICAgICAgICByb246IDAuNzk4MjI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjUwLFxuICAgICAgICBnZnA6IDAuOTg5MjMsXG4gICAgICAgIHJvZmY6IDAuMDAxMDMyNTgsXG4gICAgICAgIHJvbjogMC43OTgyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTQzNyxcbiAgICAgICAgcm9mZjogMC4wMDEwMjI5MSxcbiAgICAgICAgcm9uOiAwLjc5ODI5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk4OTYzMixcbiAgICAgICAgcm9mZjogMC4wMDEwMTM2NyxcbiAgICAgICAgcm9uOiAwLjc5ODMyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTgxNyxcbiAgICAgICAgcm9mZjogMC4wMDEwMDQ4NCxcbiAgICAgICAgcm9uOiAwLjc5ODM1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk4OTk5MixcbiAgICAgICAgcm9mZjogMC4wMDA5OTY0MDEsXG4gICAgICAgIHJvbjogMC43OTgzODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5MDAsXG4gICAgICAgIGdmcDogMC45OTAxNTgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTg4MzMzLFxuICAgICAgICByb246IDAuNzk4NDExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTUwLFxuICAgICAgICBnZnA6IDAuOTkwMzE2LFxuICAgICAgICByb2ZmOiAwLjAwMDk4MDYyMSxcbiAgICAgICAgcm9uOiAwLjc5ODQzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDQ2NixcbiAgICAgICAgcm9mZjogMC4wMDA5NzMyNDksXG4gICAgICAgIHJvbjogMC43OTg0NjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwNTAsXG4gICAgICAgIGdmcDogMC45OTA2MDcsXG4gICAgICAgIHJvZmY6IDAuMDAwOTY2MjAzLFxuICAgICAgICByb246IDAuNzk4NDg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTAwLFxuICAgICAgICBnZnA6IDAuOTkwNzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDk1OTQ2OSxcbiAgICAgICAgcm9uOiAwLjc5ODUwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDg3LFxuICAgICAgICByb2ZmOiAwLjAwMDk1MzAzMixcbiAgICAgICAgcm9uOiAwLjc5ODUyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDk5MSxcbiAgICAgICAgcm9mZjogMC4wMDA5NDY4NzksXG4gICAgICAgIHJvbjogMC43OTg1NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyNTAsXG4gICAgICAgIGdmcDogMC45OTExMDYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTQwOTk5LFxuICAgICAgICByb246IDAuNzk4NTY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzAwLFxuICAgICAgICBnZnA6IDAuOTkxMjE2LFxuICAgICAgICByb2ZmOiAwLjAwMDkzNTM3OCxcbiAgICAgICAgcm9uOiAwLjc5ODU4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTMyLFxuICAgICAgICByb2ZmOiAwLjAwMDkzMDAwNixcbiAgICAgICAgcm9uOiAwLjc5ODYwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA5MjQ4NzEsXG4gICAgICAgIHJvbjogMC43OTg2MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0NTAsXG4gICAgICAgIGdmcDogMC45OTE1MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwOTE5OTY0LFxuICAgICAgICByb246IDAuNzk4NjMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAwLFxuICAgICAgICBnZnA6IDAuOTkxNjAyLFxuICAgICAgICByb2ZmOiAwLjAwMDkxNTI3MyxcbiAgICAgICAgcm9uOiAwLjc5ODY0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTY4NyxcbiAgICAgICAgcm9mZjogMC4wMDA5MTA3ODksXG4gICAgICAgIHJvbjogMC43OTg2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTc2OCxcbiAgICAgICAgcm9mZjogMC4wMDA5MDY1MDQsXG4gICAgICAgIHJvbjogMC43OTg2NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2NTAsXG4gICAgICAgIGdmcDogMC45OTE4NDUsXG4gICAgICAgIHJvZmY6IDAuMDAwOTAyNDA4LFxuICAgICAgICByb246IDAuNzk4Njg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNzAwLFxuICAgICAgICBnZnA6IDAuOTkxOTE4LFxuICAgICAgICByb2ZmOiAwLjAwMDg5ODQ5MyxcbiAgICAgICAgcm9uOiAwLjc5ODY5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTk4NyxcbiAgICAgICAgcm9mZjogMC4wMDA4OTQ3NTEsXG4gICAgICAgIHJvbjogMC43OTg3MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM4MDAsXG4gICAgICAgIGdmcDogMC45OTIwNTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODkxMTc0LFxuICAgICAgICByb246IDAuNzk4NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM4NTAsXG4gICAgICAgIGdmcDogMC45OTIxMTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODg3NzU2LFxuICAgICAgICByb246IDAuNzk4NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM5MDAsXG4gICAgICAgIGdmcDogMC45OTIxNzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODg0NDg5LFxuICAgICAgICByb246IDAuNzk4NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM5NTAsXG4gICAgICAgIGdmcDogMC45OTIyMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODgxMzY2LFxuICAgICAgICByb246IDAuNzk4NzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDAwLFxuICAgICAgICBnZnA6IDAuOTkyMjg4LFxuICAgICAgICByb2ZmOiAwLjAwMDg3ODM4MSxcbiAgICAgICAgcm9uOiAwLjc5ODc1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjM0LFxuICAgICAgICByb2ZmOiAwLjAwMDg3NTUyOSxcbiAgICAgICAgcm9uOiAwLjc5ODc2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjM5LFxuICAgICAgICByb2ZmOiAwLjAwMDg3MjgwMixcbiAgICAgICAgcm9uOiAwLjc5ODc3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4NzAxOTYsXG4gICAgICAgIHJvbjogMC43OTg3ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyMDAsXG4gICAgICAgIGdmcDogMC45OTI0ODIsXG4gICAgICAgIHJvZmY6IDAuMDAwODY3NzA2LFxuICAgICAgICByb246IDAuNzk4Nzg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MjUwLFxuICAgICAgICBnZnA6IDAuOTkyNTI0LFxuICAgICAgICByb2ZmOiAwLjAwMDg2NTMyNSxcbiAgICAgICAgcm9uOiAwLjc5ODc5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjU2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4NjMwNSxcbiAgICAgICAgcm9uOiAwLjc5ODgwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjYwNCxcbiAgICAgICAgcm9mZjogMC4wMDA4NjA4NzUsXG4gICAgICAgIHJvbjogMC43OTg4MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0MDAsXG4gICAgICAgIGdmcDogMC45OTI2NDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODU4Nzk2LFxuICAgICAgICByb246IDAuNzk4ODE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NDUwLFxuICAgICAgICBnZnA6IDAuOTkyNjc2LFxuICAgICAgICByb2ZmOiAwLjAwMDg1NjgwOSxcbiAgICAgICAgcm9uOiAwLjc5ODgyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjcxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1NDkxLFxuICAgICAgICByb246IDAuNzk4ODI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTUwLFxuICAgICAgICBnZnA6IDAuOTkyNzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDg1MzA5NSxcbiAgICAgICAgcm9uOiAwLjc5ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc3MyxcbiAgICAgICAgcm9mZjogMC4wMDA4NTEzNjEsXG4gICAgICAgIHJvbjogMC43OTg4MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ2NTAsXG4gICAgICAgIGdmcDogMC45OTI4MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ5NzAyLFxuICAgICAgICByb246IDAuNzk4ODQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NzAwLFxuICAgICAgICBnZnA6IDAuOTkyODMsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ4MTE4LFxuICAgICAgICByb246IDAuNzk4ODQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NzUwLFxuICAgICAgICBnZnA6IDAuOTkyODU3LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NjYwMyxcbiAgICAgICAgcm9uOiAwLjc5ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODAwLFxuICAgICAgICBnZnA6IDAuOTkyODgyLFxuICAgICAgICByb2ZmOiAwLjAwMDg0NTE1NSxcbiAgICAgICAgcm9uOiAwLjc5ODg1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjkwNixcbiAgICAgICAgcm9mZjogMC4wMDA4NDM3NzIsXG4gICAgICAgIHJvbjogMC43OTg4NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5MDAsXG4gICAgICAgIGdmcDogMC45OTI5MjksXG4gICAgICAgIHJvZmY6IDAuMDAwODQyNDQ5LFxuICAgICAgICByb246IDAuNzk4ODYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0OTUwLFxuICAgICAgICBnZnA6IDAuOTkyOTUxLFxuICAgICAgICByb2ZmOiAwLjAwMDg0MTE4NSxcbiAgICAgICAgcm9uOiAwLjc5ODg2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk3MixcbiAgICAgICAgcm9mZjogMC4wMDA4Mzk5NzcsXG4gICAgICAgIHJvbjogMC43OTg4NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwNTAsXG4gICAgICAgIGdmcDogMC45OTI5OTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODM4ODIyLFxuICAgICAgICByb246IDAuNzk4ODcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgzNzcxOSxcbiAgICAgICAgcm9uOiAwLjc5ODg3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzAzLFxuICAgICAgICByb2ZmOiAwLjAwMDgzNjY2NCxcbiAgICAgICAgcm9uOiAwLjc5ODg3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA0OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzU2NTYsXG4gICAgICAgIHJvbjogMC43OTg4ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUyNTAsXG4gICAgICAgIGdmcDogMC45OTMwNjQsXG4gICAgICAgIHJvZmY6IDAuMDAwODM0NjkyLFxuICAgICAgICByb246IDAuNzk4ODg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODMzNzcxLFxuICAgICAgICByb246IDAuNzk4ODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMDk1LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMjg5MSxcbiAgICAgICAgcm9uOiAwLjc5ODg4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzExLFxuICAgICAgICByb2ZmOiAwLjAwMDgzMjA0OSxcbiAgICAgICAgcm9uOiAwLjc5ODg5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzEyNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzEyNDUsXG4gICAgICAgIHJvbjogMC43OTg4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MDAsXG4gICAgICAgIGdmcDogMC45OTMxMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODMwNDc2LFxuICAgICAgICByb246IDAuNzk4ODk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI5NzQyLFxuICAgICAgICByb246IDAuNzk4ODk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMTYyLFxuICAgICAgICByb2ZmOiAwLjAwMDgyOTA0LFxuICAgICAgICByb246IDAuNzk4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE3MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjgzNjksXG4gICAgICAgIHJvbjogMC43OTg5MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU3MDAsXG4gICAgICAgIGdmcDogMC45OTMxODQsXG4gICAgICAgIHJvZmY6IDAuMDAwODI3NzI3LFxuICAgICAgICByb246IDAuNzk4OTAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMTk1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNzExNCxcbiAgICAgICAgcm9uOiAwLjc5ODkwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIwNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjY1MjgsXG4gICAgICAgIHJvbjogMC43OTg5MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4NTAsXG4gICAgICAgIGdmcDogMC45OTMyMTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODI1OTY4LFxuICAgICAgICByb246IDAuNzk4OTA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMjIzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNTQzMyxcbiAgICAgICAgcm9uOiAwLjc5ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMjMyLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDkyMSxcbiAgICAgICAgcm9uOiAwLjc5ODkxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjQ0MzIsXG4gICAgICAgIHJvbjogMC43OTg5MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwNTAsXG4gICAgICAgIGdmcDogMC45OTMyNDksXG4gICAgICAgIHJvZmY6IDAuMDAwODIzOTY1LFxuICAgICAgICByb246IDAuNzk4OTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMjU2LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzUxOCxcbiAgICAgICAgcm9uOiAwLjc5ODkxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI2MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjMwOTEsXG4gICAgICAgIHJvbjogMC43OTg5MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYyMDAsXG4gICAgICAgIGdmcDogMC45OTMyNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjI2ODMsXG4gICAgICAgIHJvbjogMC43OTg5MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYyNTAsXG4gICAgICAgIGdmcDogMC45OTMyNzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODIyMjkzLFxuICAgICAgICByb246IDAuNzk4OTE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMjgzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTkyLFxuICAgICAgICByb246IDAuNzk4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMjg5LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTU2NCxcbiAgICAgICAgcm9uOiAwLjc5ODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMjk1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTIyNCxcbiAgICAgICAgcm9uOiAwLjc5ODkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjA4OTgsXG4gICAgICAgIHJvbjogMC43OTg5MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MDAsXG4gICAgICAgIGdmcDogMC45OTMzMDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwNTg3LFxuICAgICAgICByb246IDAuNzk4OTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzExLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDI5LFxuICAgICAgICByb246IDAuNzk4OTI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDAwNixcbiAgICAgICAgcm9uOiAwLjc5ODkyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTk3MzQsXG4gICAgICAgIHJvbjogMC43OTg5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3MDAsXG4gICAgICAgIGdmcDogMC45OTMzMjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5NDc0LFxuICAgICAgICByb246IDAuNzk4OTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzI5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTIyNixcbiAgICAgICAgcm9uOiAwLjc5ODkyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg5ODksXG4gICAgICAgIHJvbjogMC43OTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY4NTAsXG4gICAgICAgIGdmcDogMC45OTMzMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NzYzLFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxODU0NixcbiAgICAgICAgcm9uOiAwLjc5ODkyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgzMzksXG4gICAgICAgIHJvbjogMC43OTg5MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMDAsXG4gICAgICAgIGdmcDogMC45OTMzNDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4MTQxLFxuICAgICAgICByb246IDAuNzk4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwNTAsXG4gICAgICAgIGdmcDogMC45OTMzNTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3OTUyLFxuICAgICAgICByb246IDAuNzk4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxMDAsXG4gICAgICAgIGdmcDogMC45OTMzNTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NzcxLFxuICAgICAgICByb246IDAuNzk4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzU3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzU5OCxcbiAgICAgICAgcm9uOiAwLjc5ODkzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzQzMyxcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTcyNzYsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczMDAsXG4gICAgICAgIGdmcDogMC45OTMzNjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3MTI1LFxuICAgICAgICByb246IDAuNzk4OTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzY3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjk4LFxuICAgICAgICByb246IDAuNzk4OTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2ODQzLFxuICAgICAgICByb246IDAuNzk4OTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzcyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjcxMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY1ODUsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1NTAsXG4gICAgICAgIGdmcDogMC45OTMzNzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NDY1LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzc4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjM1LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MjQsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3MDAsXG4gICAgICAgIGdmcDogMC45OTMzODIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MTM1LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzgzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjAzNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU5MzgsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc4NTAsXG4gICAgICAgIGdmcDogMC45OTMzODYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1ODQ3LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTc1OSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU2NzUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NTk1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzkyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTUxOCxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU0NDUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgxNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1Mzc1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzk1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTMwOSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUyNDUsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MTg0LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTEyNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDcsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg0NTAsXG4gICAgICAgIGdmcDogMC45OTM0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTAxNixcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ5NjUsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTE3LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDAzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDg3LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDgyNixcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3ODMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzQzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDcwNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2NjcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjMxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTk3LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTY1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDksXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTM0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDksXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTA0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0NzYsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ0OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDIzLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0Mzk4LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0Mzc1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzUyLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzMxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI3MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI1MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMzYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjA0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNzQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTYxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE0OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMzUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTIzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDExMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMDEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDcxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA2MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNTMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDQ0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAzNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMjksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDIyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAxNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDAyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk5NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTc5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk3NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NjksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjExNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTY0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQ4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTM0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTI1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTAxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODgzLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODgyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODgxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg2NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH1cbl07XG5sZXQgbW9kZWxPbkRhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfVxuXTtcbmxldCBtb2RlbE9uT2ZmRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC40MDAzMjksXG4gICAgICAgIHJvZmY6IDAuNDYwMjk4LFxuICAgICAgICByb246IDAuNjgxNjMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwLFxuICAgICAgICBnZnA6IDAuMTQ3NDk5LFxuICAgICAgICByb2ZmOiAwLjU1ODYzOCxcbiAgICAgICAgcm9uOiAwLjYwMTg1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAsXG4gICAgICAgIGdmcDogMC4wNTQ0Njk0LFxuICAgICAgICByb2ZmOiAwLjUzOTExMyxcbiAgICAgICAgcm9uOiAwLjU0MjUxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAsXG4gICAgICAgIGdmcDogMC4wMjAyNzQ2LFxuICAgICAgICByb2ZmOiAwLjQ5ODUyNSxcbiAgICAgICAgcm9uOiAwLjQ5NDY3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAsXG4gICAgICAgIGdmcDogMC4wMDc3MzY5NCxcbiAgICAgICAgcm9mZjogMC40NTkxNDIsXG4gICAgICAgIHJvbjogMC40NTQ0ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwLFxuICAgICAgICBnZnA6IDAuMDAzMTczMzUsXG4gICAgICAgIHJvZmY6IDAuNDI0MjA2LFxuICAgICAgICByb246IDAuNDE5ODUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTU0ODksXG4gICAgICAgIHJvZmY6IDAuMzkzNDQyLFxuICAgICAgICByb246IDAuMzg5NTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTAxMTU0LFxuICAgICAgICByb2ZmOiAwLjM2NjE1NCxcbiAgICAgICAgcm9uOiAwLjM2MjYwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAsXG4gICAgICAgIGdmcDogMC4wMDA4ODA0MzEsXG4gICAgICAgIHJvZmY6IDAuMzQxNzQ0LFxuICAgICAgICByb246IDAuMzM4NTAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDkwNTcxNyxcbiAgICAgICAgcm9mZjogMC4zMTk3NDgsXG4gICAgICAgIHJvbjogMC4zMTY3NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwLFxuICAgICAgICBnZnA6IDAuMDAwOTk2MTQ0LFxuICAgICAgICByb2ZmOiAwLjI5OTgwNCxcbiAgICAgICAgcm9uOiAwLjI5NzAyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAsXG4gICAgICAgIGdmcDogMC4wMDExMTg4NSxcbiAgICAgICAgcm9mZjogMC4yODE2MzMsXG4gICAgICAgIHJvbjogMC4yNzkwMThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwLFxuICAgICAgICBnZnA6IDAuMDAxMjYyNDcsXG4gICAgICAgIHJvZmY6IDAuMjY1MDA5LFxuICAgICAgICByb246IDAuMjYyNTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTQyMzYsXG4gICAgICAgIHJvZmY6IDAuMjQ5NzQ4LFxuICAgICAgICByb246IDAuMjQ3Mzc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTYwMTc2LFxuICAgICAgICByb2ZmOiAwLjIzNTcwMSxcbiAgICAgICAgcm9uOiAwLjIzMzQwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAsXG4gICAgICAgIGdmcDogMC4wMDE3OTc1OSxcbiAgICAgICAgcm9mZjogMC4yMjI3NDIsXG4gICAgICAgIHJvbjogMC4yMjA1MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwLFxuICAgICAgICBnZnA6IDAuMDAyMDEyMSxcbiAgICAgICAgcm9mZjogMC4yMTA3NjQsXG4gICAgICAgIHJvbjogMC4yMDg1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAsXG4gICAgICAgIGdmcDogMC4wMDIyNDY0NixcbiAgICAgICAgcm9mZjogMC4xOTk2NzksXG4gICAgICAgIHJvbjogMC4xOTc0ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwLFxuICAgICAgICBnZnA6IDAuMDAyNTAxODQsXG4gICAgICAgIHJvZmY6IDAuMTg5NDA5LFxuICAgICAgICByb246IDAuMTg3MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwLFxuICAgICAgICBnZnA6IDAuMDAyNzc5MzQsXG4gICAgICAgIHJvZmY6IDAuMTc5ODg5LFxuICAgICAgICByb246IDAuMTc3NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzA3OTk0LFxuICAgICAgICByb2ZmOiAwLjE3MTA2LFxuICAgICAgICByb246IDAuMTY4NzgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAsXG4gICAgICAgIGdmcDogMC4wMDM0MDQ0NCxcbiAgICAgICAgcm9mZjogMC4xNjI4NzIsXG4gICAgICAgIHJvbjogMC4xNjA1MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzc1MzM3LFxuICAgICAgICByb2ZmOiAwLjE1NTI4MyxcbiAgICAgICAgcm9uOiAwLjE1MjgzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwLFxuICAgICAgICBnZnA6IDAuMDA0MTI2OTUsXG4gICAgICAgIHJvZmY6IDAuMTQ4MjUyLFxuICAgICAgICByb246IDAuMTQ1NjkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAsXG4gICAgICAgIGdmcDogMC4wMDQ1MjQ5OCxcbiAgICAgICAgcm9mZjogMC4xNDE3NDcsXG4gICAgICAgIHJvbjogMC4xMzkwNDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDk0Njc2LFxuICAgICAgICByb2ZmOiAwLjEzNTczNyxcbiAgICAgICAgcm9uOiAwLjEzMjg3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwLFxuICAgICAgICBnZnA6IDAuMDA1MzkxMDMsXG4gICAgICAgIHJvZmY6IDAuMTMwMTk0LFxuICAgICAgICByb246IDAuMTI3MTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAsXG4gICAgICAgIGdmcDogMC4wMDU4NTU4NyxcbiAgICAgICAgcm9mZjogMC4xMjUwOTMsXG4gICAgICAgIHJvbjogMC4xMjE4MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNjMzODY2LFxuICAgICAgICByb2ZmOiAwLjEyMDQxNCxcbiAgICAgICAgcm9uOiAwLjExNjg4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwLFxuICAgICAgICBnZnA6IDAuMDA2ODM2MDUsXG4gICAgICAgIHJvZmY6IDAuMTE2MTMzLFxuICAgICAgICByb246IDAuMTEyMzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAsXG4gICAgICAgIGdmcDogMC4wMDczNDM5NyxcbiAgICAgICAgcm9mZjogMC4xMTIyMzMsXG4gICAgICAgIHJvbjogMC4xMDgwOTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNzg1NzY1LFxuICAgICAgICByb2ZmOiAwLjEwODY5NSxcbiAgICAgICAgcm9uOiAwLjEwNDE5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwLFxuICAgICAgICBnZnA6IDAuMDA4MzcxNzQsXG4gICAgICAgIHJvZmY6IDAuMTA1NTAxLFxuICAgICAgICByb246IDAuMTAwNjA2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAsXG4gICAgICAgIGdmcDogMC4wMDg4ODA0LFxuICAgICAgICByb2ZmOiAwLjEwMjYzNCxcbiAgICAgICAgcm9uOiAwLjA5NzI5ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwOTM3NzU0LFxuICAgICAgICByb2ZmOiAwLjEwMDA3OCxcbiAgICAgICAgcm9uOiAwLjA5NDI1NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwOTg1NyxcbiAgICAgICAgcm9mZjogMC4wOTc4MTY0LFxuICAgICAgICByb246IDAuMDkxNDU4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwLFxuICAgICAgICBnZnA6IDAuMDEwMzEyNyxcbiAgICAgICAgcm9mZjogMC4wOTU4MzM0LFxuICAgICAgICByb246IDAuMDg4ODg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODUwLFxuICAgICAgICBnZnA6IDAuMDEwNzM5MSxcbiAgICAgICAgcm9mZjogMC4wOTQxMTM1LFxuICAgICAgICByb246IDAuMDg2NTI2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwLFxuICAgICAgICBnZnA6IDAuMDExMTMxLFxuICAgICAgICByb2ZmOiAwLjA5MjY0MTMsXG4gICAgICAgIHJvbjogMC4wODQzNTUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAsXG4gICAgICAgIGdmcDogMC4wMTE0ODQxLFxuICAgICAgICByb2ZmOiAwLjA5MTQwMTgsXG4gICAgICAgIHJvbjogMC4wODIzNTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAsXG4gICAgICAgIGdmcDogMC4wMTE3OTUxLFxuICAgICAgICByb2ZmOiAwLjA5MDM4MDksXG4gICAgICAgIHJvbjogMC4wODA1MTI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAsXG4gICAgICAgIGdmcDogMC4wMTIwNjEzLFxuICAgICAgICByb2ZmOiAwLjA4OTU2NDYsXG4gICAgICAgIHJvbjogMC4wNzg4MDY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAsXG4gICAgICAgIGdmcDogMC4wMTIyODEzLFxuICAgICAgICByb2ZmOiAwLjA4ODk0MDIsXG4gICAgICAgIHJvbjogMC4wNzcyMjQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAsXG4gICAgICAgIGdmcDogMC4wMTI0NTQ0LFxuICAgICAgICByb2ZmOiAwLjA4ODQ5NTMsXG4gICAgICAgIHJvbjogMC4wNzU3NDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAsXG4gICAgICAgIGdmcDogMC4wMTI1ODA3LFxuICAgICAgICByb2ZmOiAwLjA4ODIxODksXG4gICAgICAgIHJvbjogMC4wNzQzNjc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAsXG4gICAgICAgIGdmcDogMC4wMTI2NjEyLFxuICAgICAgICByb2ZmOiAwLjA4ODEwMDUsXG4gICAgICAgIHJvbjogMC4wNzMwNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY5NzUsXG4gICAgICAgIHJvZmY6IDAuMDg4MTMxMixcbiAgICAgICAgcm9uOiAwLjA3MTgzNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY5MTUsXG4gICAgICAgIHJvZmY6IDAuMDg4MzAyNyxcbiAgICAgICAgcm9uOiAwLjA3MDY2MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY0NTYsXG4gICAgICAgIHJvZmY6IDAuMDg4NjA4MixcbiAgICAgICAgcm9uOiAwLjA2OTUzMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjU2MjMsXG4gICAgICAgIHJvZmY6IDAuMDg5MDQxNyxcbiAgICAgICAgcm9uOiAwLjA2ODQ0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAwLFxuICAgICAgICBnZnA6IDAuMDEyNDQ0MyxcbiAgICAgICAgcm9mZjogMC4wODk1OTg1LFxuICAgICAgICByb246IDAuMDY3Mzg5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTUwLFxuICAgICAgICBnZnA6IDAuMDEyMjk0NSxcbiAgICAgICAgcm9mZjogMC4wOTAyNzQ4LFxuICAgICAgICByb246IDAuMDY2MzU2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjAwLFxuICAgICAgICBnZnA6IDAuMDEyMTE1NSxcbiAgICAgICAgcm9mZjogMC4wOTEwNjgxLFxuICAgICAgICByb246IDAuMDY1MzQwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjUwLFxuICAgICAgICBnZnA6IDAuMDExOTEwMSxcbiAgICAgICAgcm9mZjogMC4wOTE5NzY4LFxuICAgICAgICByb246IDAuMDY0MzM3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzAwLFxuICAgICAgICBnZnA6IDAuMDExNjgwNyxcbiAgICAgICAgcm9mZjogMC4wOTMwMDAzLFxuICAgICAgICByb246IDAuMDYzMzQyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzUwLFxuICAgICAgICBnZnA6IDAuMDExNDMsXG4gICAgICAgIHJvZmY6IDAuMDk0MTM4OCxcbiAgICAgICAgcm9uOiAwLjA2MjM1MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTE2MDEsXG4gICAgICAgIHJvZmY6IDAuMDk1MzkzNyxcbiAgICAgICAgcm9uOiAwLjA2MTM1ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMDg3MzMsXG4gICAgICAgIHJvZmY6IDAuMDk2NzY3MyxcbiAgICAgICAgcm9uOiAwLjA2MDM2NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMDU3MTgsXG4gICAgICAgIHJvZmY6IDAuMDk4MjYyNixcbiAgICAgICAgcm9uOiAwLjA1OTM2NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMDI1NzMsXG4gICAgICAgIHJvZmY6IDAuMDk5ODgzOSxcbiAgICAgICAgcm9uOiAwLjA1ODM1NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwOTkzMTg0LFxuICAgICAgICByb2ZmOiAwLjEwMTYzNixcbiAgICAgICAgcm9uOiAwLjA1NzM0MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwOTU5NzA3LFxuICAgICAgICByb2ZmOiAwLjEwMzUyNSxcbiAgICAgICAgcm9uOiAwLjA1NjMxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTAwLFxuICAgICAgICBnZnA6IDAuMDA5MjU0NjcsXG4gICAgICAgIHJvZmY6IDAuMTA1NTU3LFxuICAgICAgICByb246IDAuMDU1MjgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTUwLFxuICAgICAgICBnZnA6IDAuMDA4OTA2MjEsXG4gICAgICAgIHJvZmY6IDAuMTA3NzQyLFxuICAgICAgICByb246IDAuMDU0MjM0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjAwLFxuICAgICAgICBnZnA6IDAuMDA4NTUzMTgsXG4gICAgICAgIHJvZmY6IDAuMTEwMDg2LFxuICAgICAgICByb246IDAuMDUzMTc2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjUwLFxuICAgICAgICBnZnA6IDAuMDA4MTk3MDMsXG4gICAgICAgIHJvZmY6IDAuMTEyNixcbiAgICAgICAgcm9uOiAwLjA1MjEwNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzgzOTEzLFxuICAgICAgICByb2ZmOiAwLjExNTI5NixcbiAgICAgICAgcm9uOiAwLjA1MTAyNjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNzQ4MDg0LFxuICAgICAgICByb2ZmOiAwLjExODE4NSxcbiAgICAgICAgcm9uOiAwLjA0OTkzNTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzEyMzQzLFxuICAgICAgICByb2ZmOiAwLjEyMTI4LFxuICAgICAgICByb246IDAuMDQ4ODM0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDUwLFxuICAgICAgICBnZnA6IDAuMDA2NzY4MTUsXG4gICAgICAgIHJvZmY6IDAuMTI0NTk2LFxuICAgICAgICByb246IDAuMDQ3NzI0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAwLFxuICAgICAgICBnZnA6IDAuMDA2NDE2MixcbiAgICAgICAgcm9mZjogMC4xMjgxNDksXG4gICAgICAgIHJvbjogMC4wNDY2MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNjA2ODc1LFxuICAgICAgICByb2ZmOiAwLjEzMTk1NSxcbiAgICAgICAgcm9uOiAwLjA0NTQ4MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNTcyNjg4LFxuICAgICAgICByb2ZmOiAwLjEzNjAzMyxcbiAgICAgICAgcm9uOiAwLjA0NDM1MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNTM5MTY2LFxuICAgICAgICByb2ZmOiAwLjE0MDQwNCxcbiAgICAgICAgcm9uOiAwLjA0MzIxNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNTA2NDA3LFxuICAgICAgICByb2ZmOiAwLjE0NTA4OCxcbiAgICAgICAgcm9uOiAwLjA0MjA4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzUwLFxuICAgICAgICBnZnA6IDAuMDA0NzQ1MDUsXG4gICAgICAgIHJvZmY6IDAuMTUwMTA5LFxuICAgICAgICByb246IDAuMDQwOTQzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODAwLFxuICAgICAgICBnZnA6IDAuMDA0NDM1NDYsXG4gICAgICAgIHJvZmY6IDAuMTU1NDksXG4gICAgICAgIHJvbjogMC4wMzk4MDYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4NTAsXG4gICAgICAgIGdmcDogMC4wMDQxMzYwOSxcbiAgICAgICAgcm9mZjogMC4xNjEyNTksXG4gICAgICAgIHJvbjogMC4wMzg2NzEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5MDAsXG4gICAgICAgIGdmcDogMC4wMDM4NDc2MyxcbiAgICAgICAgcm9mZjogMC4xNjc0NDQsXG4gICAgICAgIHJvbjogMC4wMzc1NDA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5NTAsXG4gICAgICAgIGdmcDogMC4wMDM1NzA3LFxuICAgICAgICByb2ZmOiAwLjE3NDA3MixcbiAgICAgICAgcm9uOiAwLjAzNjQxNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzMwNTgsXG4gICAgICAgIHJvZmY6IDAuMTgxMTc2LFxuICAgICAgICByb246IDAuMDM1Mjk5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDUwLFxuICAgICAgICBnZnA6IDAuMDAzMDUzMzcsXG4gICAgICAgIHJvZmY6IDAuMTg4Nzg3LFxuICAgICAgICByb246IDAuMDM0MTkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTAwLFxuICAgICAgICBnZnA6IDAuMDAyODEzNzEsXG4gICAgICAgIHJvZmY6IDAuMTk2OTM4LFxuICAgICAgICByb246IDAuMDMzMDk2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTUwLFxuICAgICAgICBnZnA6IDAuMDAyNTg3MDQsXG4gICAgICAgIHJvZmY6IDAuMjA1NjY0LFxuICAgICAgICByb246IDAuMDMyMDEzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjAwLFxuICAgICAgICBnZnA6IDAuMDAyMzczNDYsXG4gICAgICAgIHJvZmY6IDAuMjE0OTk4LFxuICAgICAgICByb246IDAuMDMwOTQ0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjUwLFxuICAgICAgICBnZnA6IDAuMDAyMTczLFxuICAgICAgICByb2ZmOiAwLjIyNDk3NyxcbiAgICAgICAgcm9uOiAwLjAyOTg5MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTk4NTU1LFxuICAgICAgICByb2ZmOiAwLjIzNTYzMixcbiAgICAgICAgcm9uOiAwLjAyODg1NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTgxMDk0LFxuICAgICAgICByb2ZmOiAwLjI0Njk5OSxcbiAgICAgICAgcm9uOiAwLjAyNzg0MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTY0ODg5LFxuICAgICAgICByb2ZmOiAwLjI1OTEwOCxcbiAgICAgICAgcm9uOiAwLjAyNjg0NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTQ5OTA3LFxuICAgICAgICByb2ZmOiAwLjI3MTk4NyxcbiAgICAgICAgcm9uOiAwLjAyNTg3MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTM2MTA2LFxuICAgICAgICByb2ZmOiAwLjI4NTY2MSxcbiAgICAgICAgcm9uOiAwLjAyNDkxODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTIzNDM4LFxuICAgICAgICByb2ZmOiAwLjMwMDE0NyxcbiAgICAgICAgcm9uOiAwLjAyMzk4ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTExODUzLFxuICAgICAgICByb2ZmOiAwLjMxNTQ1OCxcbiAgICAgICAgcm9uOiAwLjAyMzA4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTAxMjkzLFxuICAgICAgICByb2ZmOiAwLjMzMTU5NyxcbiAgICAgICAgcm9uOiAwLjAyMjIwMThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDkxNzAwMSxcbiAgICAgICAgcm9mZjogMC4zNDg1NTcsXG4gICAgICAgIHJvbjogMC4wMjEzNDU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3NTAsXG4gICAgICAgIGdmcDogMC4wMDA4MzAxNDksXG4gICAgICAgIHJvZmY6IDAuMzY2MzE3LFxuICAgICAgICByb246IDAuMDIwNTE0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODAwLFxuICAgICAgICBnZnA6IDAuMDAwNzUxNzYyLFxuICAgICAgICByb2ZmOiAwLjM4NDg0MyxcbiAgICAgICAgcm9uOiAwLjAxOTcwODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDY4MTIzNixcbiAgICAgICAgcm9mZjogMC40MDQwODQsXG4gICAgICAgIHJvbjogMC4wMTg5Mjc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5MDAsXG4gICAgICAgIGdmcDogMC4wMDA2MTc5NzIsXG4gICAgICAgIHJvZmY6IDAuNDIzOTY5LFxuICAgICAgICByb246IDAuMDE4MTczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5NTAsXG4gICAgICAgIGdmcDogMC4wMDA1NjEzOTMsXG4gICAgICAgIHJvZmY6IDAuNDQ0NDA4LFxuICAgICAgICByb246IDAuMDE3NDQzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAwLFxuICAgICAgICBnZnA6IDAuMDAwNTEwOTQxLFxuICAgICAgICByb2ZmOiAwLjQ2NTI4OSxcbiAgICAgICAgcm9uOiAwLjAxNjczOTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDQ2NjA4NCxcbiAgICAgICAgcm9mZjogMC40ODY0NzgsXG4gICAgICAgIHJvbjogMC4wMTYwNjAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxMDAsXG4gICAgICAgIGdmcDogMC4wMDA0MjYzMTgsXG4gICAgICAgIHJvZmY6IDAuNTA3ODIsXG4gICAgICAgIHJvbjogMC4wMTU0MDU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxNTAsXG4gICAgICAgIGdmcDogMC4wMDAzOTExNjgsXG4gICAgICAgIHJvZmY6IDAuNTI5MTQ0LFxuICAgICAgICByb246IDAuMDE0Nzc1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMzYwMTkzLFxuICAgICAgICByb2ZmOiAwLjU1MDI2MSxcbiAgICAgICAgcm9uOiAwLjAxNDE2OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDMzMjk4MixcbiAgICAgICAgcm9mZjogMC41NzA5NzgsXG4gICAgICAgIHJvbjogMC4wMTM1ODYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzMDAsXG4gICAgICAgIGdmcDogMC4wMDAzMDkxNTIsXG4gICAgICAgIHJvZmY6IDAuNTkxMTAxLFxuICAgICAgICByb246IDAuMDEzMDI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzNTAsXG4gICAgICAgIGdmcDogMC4wMDAyODgzNDksXG4gICAgICAgIHJvZmY6IDAuNjEwNDQ2LFxuICAgICAgICByb246IDAuMDEyNDg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0MDAsXG4gICAgICAgIGdmcDogMC4wMDAyNzAyNDYsXG4gICAgICAgIHJvZmY6IDAuNjI4ODUxLFxuICAgICAgICByb246IDAuMDExOTcxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMjU0NTM4LFxuICAgICAgICByb2ZmOiAwLjY0NjE4NSxcbiAgICAgICAgcm9uOiAwLjAxMTQ3NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI0MDk0MyxcbiAgICAgICAgcm9mZjogMC42NjIzNTcsXG4gICAgICAgIHJvbjogMC4wMTEwMDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1NTAsXG4gICAgICAgIGdmcDogMC4wMDAyMjkyMDEsXG4gICAgICAgIHJvZmY6IDAuNjc3MzE3LFxuICAgICAgICByb246IDAuMDEwNTQ2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMjE5MDcyLFxuICAgICAgICByb2ZmOiAwLjY5MTA1NixcbiAgICAgICAgcm9uOiAwLjAxMDExMDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIxMDMzNyxcbiAgICAgICAgcm9mZjogMC43MDM2MDUsXG4gICAgICAgIHJvbjogMC4wMDk2OTMyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMjAyNzk4LFxuICAgICAgICByb2ZmOiAwLjcxNTAyNCxcbiAgICAgICAgcm9uOiAwLjAwOTI5MzUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxOTYyNzgsXG4gICAgICAgIHJvZmY6IDAuNzI1Mzk1LFxuICAgICAgICByb246IDAuMDA4OTEwODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE5MDYyMyxcbiAgICAgICAgcm9mZjogMC43MzQ4MDYsXG4gICAgICAgIHJvbjogMC4wMDg1NDQ2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTg1Njk4LFxuICAgICAgICByb2ZmOiAwLjc0MzM1MSxcbiAgICAgICAgcm9uOiAwLjAwODE5NDI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxODEzOSxcbiAgICAgICAgcm9mZjogMC43NTExMTgsXG4gICAgICAgIHJvbjogMC4wMDc4NTkwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTc3NjA0LFxuICAgICAgICByb2ZmOiAwLjc1ODE5MSxcbiAgICAgICAgcm9uOiAwLjAwNzUzODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNzQyNjEsXG4gICAgICAgIHJvZmY6IDAuNzY0NjQyLFxuICAgICAgICByb246IDAuMDA3MjMxNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE3MTI5NSxcbiAgICAgICAgcm9mZjogMC43NzA1MzUsXG4gICAgICAgIHJvbjogMC4wMDY5MzgxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTY4NjUzLFxuICAgICAgICByb2ZmOiAwLjc3NTkyNyxcbiAgICAgICAgcm9uOiAwLjAwNjY1NzU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNjYyOSxcbiAgICAgICAgcm9mZjogMC43ODA4NjYsXG4gICAgICAgIHJvbjogMC4wMDYzODkxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTY0MTcsXG4gICAgICAgIHJvZmY6IDAuNzg1Mzk0LFxuICAgICAgICByb246IDAuMDA2MTMyNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2MjI2MyxcbiAgICAgICAgcm9mZjogMC43ODk1NSxcbiAgICAgICAgcm9uOiAwLjAwNTg4NzE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjA1NDIsXG4gICAgICAgIHJvZmY6IDAuNzkzMzY1LFxuICAgICAgICByb246IDAuMDA1NjUyNTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1ODk4NyxcbiAgICAgICAgcm9mZjogMC43OTY4NjksXG4gICAgICAgIHJvbjogMC4wMDU0MjgxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTU3NTc5LFxuICAgICAgICByb2ZmOiAwLjgwMDA4OSxcbiAgICAgICAgcm9uOiAwLjAwNTIxMzY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTYzMDIsXG4gICAgICAgIHJvZmY6IDAuODAzMDQ5LFxuICAgICAgICByb246IDAuMDA1MDA4NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1NTE0MixcbiAgICAgICAgcm9mZjogMC44MDU3NzEsXG4gICAgICAgIHJvbjogMC4wMDQ4MTI1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTU0MDg3LFxuICAgICAgICByb2ZmOiAwLjgwODI3MyxcbiAgICAgICAgcm9uOiAwLjAwNDYyNTA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTMxMjYsXG4gICAgICAgIHJvZmY6IDAuODEwNTc1LFxuICAgICAgICByb246IDAuMDA0NDQ1ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MjI1MSxcbiAgICAgICAgcm9mZjogMC44MTI2OTMsXG4gICAgICAgIHJvbjogMC4wMDQyNzQ1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTUxNDUyLFxuICAgICAgICByb2ZmOiAwLjgxNDY0MSxcbiAgICAgICAgcm9uOiAwLjAwNDExMDczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTA3MjMsXG4gICAgICAgIHJvZmY6IDAuODE2NDM0LFxuICAgICAgICByb246IDAuMDAzOTU0MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MDA1NixcbiAgICAgICAgcm9mZjogMC44MTgwODUsXG4gICAgICAgIHJvbjogMC4wMDM4MDQ0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ5NDQ3LFxuICAgICAgICByb2ZmOiAwLjgxOTYwNCxcbiAgICAgICAgcm9uOiAwLjAwMzY2MTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDg4ODksXG4gICAgICAgIHJvZmY6IDAuODIxMDAzLFxuICAgICAgICByb246IDAuMDAzNTI0NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0ODM3OCxcbiAgICAgICAgcm9mZjogMC44MjIyOTIsXG4gICAgICAgIHJvbjogMC4wMDMzOTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDc5MSxcbiAgICAgICAgcm9mZjogMC44MjM0NzksXG4gICAgICAgIHJvbjogMC4wMDMyNjg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ3NDgxLFxuICAgICAgICByb2ZmOiAwLjgyNDU3MixcbiAgICAgICAgcm9uOiAwLjAwMzE0OTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDcwODcsXG4gICAgICAgIHJvZmY6IDAuODI1NTgsXG4gICAgICAgIHJvbjogMC4wMDMwMzUyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ2NzI1LFxuICAgICAgICByb2ZmOiAwLjgyNjUwOSxcbiAgICAgICAgcm9uOiAwLjAwMjkyNjE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDYzOTMsXG4gICAgICAgIHJvZmY6IDAuODI3MzY1LFxuICAgICAgICByb246IDAuMDAyODIxODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NjA4OCxcbiAgICAgICAgcm9mZjogMC44MjgxNTUsXG4gICAgICAgIHJvbjogMC4wMDI3MjIxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ1ODA4LFxuICAgICAgICByb2ZmOiAwLjgyODg4NCxcbiAgICAgICAgcm9uOiAwLjAwMjYyNjc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDU1NSxcbiAgICAgICAgcm9mZjogMC44Mjk1NTYsXG4gICAgICAgIHJvbjogMC4wMDI1MzU2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ1MzEyLFxuICAgICAgICByb2ZmOiAwLjgzMDE3NyxcbiAgICAgICAgcm9uOiAwLjAwMjQ0ODYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDUwOTMsXG4gICAgICAgIHJvZmY6IDAuODMwNzUsXG4gICAgICAgIHJvbjogMC4wMDIzNjUzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0ODkyLFxuICAgICAgICByb2ZmOiAwLjgzMTI3OSxcbiAgICAgICAgcm9uOiAwLjAwMjI4NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQ3MDYsXG4gICAgICAgIHJvZmY6IDAuODMxNzY5LFxuICAgICAgICByb246IDAuMDAyMjA5ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDUzNSxcbiAgICAgICAgcm9mZjogMC44MzIyMjEsXG4gICAgICAgIHJvbjogMC4wMDIxMzcxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0Mzc3LFxuICAgICAgICByb2ZmOiAwLjgzMjYzOCxcbiAgICAgICAgcm9uOiAwLjAwMjA2NzY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQyMzEsXG4gICAgICAgIHJvZmY6IDAuODMzMDI1LFxuICAgICAgICByb246IDAuMDAyMDAxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0MDk2LFxuICAgICAgICByb2ZmOiAwLjgzMzM4MyxcbiAgICAgICAgcm9uOiAwLjAwMTkzNzg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM5NzIsXG4gICAgICAgIHJvZmY6IDAuODMzNzE0LFxuICAgICAgICByb246IDAuMDAxODc3MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mzg1NyxcbiAgICAgICAgcm9mZjogMC44MzQwMixcbiAgICAgICAgcm9uOiAwLjAwMTgxOTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM3NTEsXG4gICAgICAgIHJvZmY6IDAuODM0MzA0LFxuICAgICAgICByb246IDAuMDAxNzYzODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzY1MixcbiAgICAgICAgcm9mZjogMC44MzQ1NjcsXG4gICAgICAgIHJvbjogMC4wMDE3MTA5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzNTYxLFxuICAgICAgICByb2ZmOiAwLjgzNDgxMSxcbiAgICAgICAgcm9uOiAwLjAwMTY2MDMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM0NzcsXG4gICAgICAgIHJvZmY6IDAuODM1MDM3LFxuICAgICAgICByb246IDAuMDAxNjExOTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzM5OCxcbiAgICAgICAgcm9mZjogMC44MzUyNDcsXG4gICAgICAgIHJvbjogMC4wMDE1NjU3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMzI2LFxuICAgICAgICByb2ZmOiAwLjgzNTQ0MixcbiAgICAgICAgcm9uOiAwLjAwMTUyMTU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMyNTksXG4gICAgICAgIHJvZmY6IDAuODM1NjIzLFxuICAgICAgICByb246IDAuMDAxNDc5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzE5NixcbiAgICAgICAgcm9mZjogMC44MzU3OTEsXG4gICAgICAgIHJvbjogMC4wMDE0MzkwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMTM4LFxuICAgICAgICByb2ZmOiAwLjgzNTk0OCxcbiAgICAgICAgcm9uOiAwLjAwMTQwMDQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMwODQsXG4gICAgICAgIHJvZmY6IDAuODM2MDkzLFxuICAgICAgICByb246IDAuMDAxMzYzNTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzAzNCxcbiAgICAgICAgcm9mZjogMC44MzYyMjgsXG4gICAgICAgIHJvbjogMC4wMDEzMjgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyOTg4LFxuICAgICAgICByb2ZmOiAwLjgzNjM1NCxcbiAgICAgICAgcm9uOiAwLjAwMTI5NDcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI5NDQsXG4gICAgICAgIHJvZmY6IDAuODM2NDcyLFxuICAgICAgICByb246IDAuMDAxMjYyNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjkwNCxcbiAgICAgICAgcm9mZjogMC44MzY1ODEsXG4gICAgICAgIHJvbjogMC4wMDEyMzE3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyODY2LFxuICAgICAgICByb2ZmOiAwLjgzNjY4MyxcbiAgICAgICAgcm9uOiAwLjAwMTIwMjQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI4MzEsXG4gICAgICAgIHJvZmY6IDAuODM2Nzc4LFxuICAgICAgICByb246IDAuMDAxMTc0MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjc5OSxcbiAgICAgICAgcm9mZjogMC44MzY4NjcsXG4gICAgICAgIHJvbjogMC4wMDExNDc0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzY4LFxuICAgICAgICByb2ZmOiAwLjgzNjk1LFxuICAgICAgICByb246IDAuMDAxMTIxODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjc0LFxuICAgICAgICByb2ZmOiAwLjgzNzAyNyxcbiAgICAgICAgcm9uOiAwLjAwMTA5NzMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI3MTMsXG4gICAgICAgIHJvZmY6IDAuODM3MDk5LFxuICAgICAgICByb246IDAuMDAxMDczOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjg5LFxuICAgICAgICByb2ZmOiAwLjgzNzE2NyxcbiAgICAgICAgcm9uOiAwLjAwMTA1MTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2NjUsXG4gICAgICAgIHJvZmY6IDAuODM3MjMsXG4gICAgICAgIHJvbjogMC4wMDEwMzAxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjQ0LFxuICAgICAgICByb2ZmOiAwLjgzNzI5LFxuICAgICAgICByb246IDAuMDAxMDA5NjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjYyMyxcbiAgICAgICAgcm9mZjogMC44MzczNDUsXG4gICAgICAgIHJvbjogMC4wMDA5OTAxMjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjYwNCxcbiAgICAgICAgcm9mZjogMC44MzczOTcsXG4gICAgICAgIHJvbjogMC4wMDA5NzE0NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU4NyxcbiAgICAgICAgcm9mZjogMC44Mzc0NDYsXG4gICAgICAgIHJvbjogMC4wMDA5NTM1OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU3LFxuICAgICAgICByb2ZmOiAwLjgzNzQ5MixcbiAgICAgICAgcm9uOiAwLjAwMDkzNjU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1NTQsXG4gICAgICAgIHJvZmY6IDAuODM3NTM1LFxuICAgICAgICByb246IDAuMDAwOTIwMjM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1NCxcbiAgICAgICAgcm9mZjogMC44Mzc1NzUsXG4gICAgICAgIHJvbjogMC4wMDA5MDQ2NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjUyNixcbiAgICAgICAgcm9mZjogMC44Mzc2MTMsXG4gICAgICAgIHJvbjogMC4wMDA4ODk3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTEzLFxuICAgICAgICByb2ZmOiAwLjgzNzY0OCxcbiAgICAgICAgcm9uOiAwLjAwMDg3NTU0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTAxLFxuICAgICAgICByb2ZmOiAwLjgzNzY4MixcbiAgICAgICAgcm9uOiAwLjAwMDg2MTk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDg5LFxuICAgICAgICByb2ZmOiAwLjgzNzcxMyxcbiAgICAgICAgcm9uOiAwLjAwMDg0ODk0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDc5LFxuICAgICAgICByb2ZmOiAwLjgzNzc0MyxcbiAgICAgICAgcm9uOiAwLjAwMDgzNjUyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDY4LFxuICAgICAgICByb2ZmOiAwLjgzNzc3MSxcbiAgICAgICAgcm9uOiAwLjAwMDgyNDY1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDU5LFxuICAgICAgICByb2ZmOiAwLjgzNzc5NyxcbiAgICAgICAgcm9uOiAwLjAwMDgxMzMxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDUsXG4gICAgICAgIHJvZmY6IDAuODM3ODIyLFxuICAgICAgICByb246IDAuMDAwODAyNDc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NDIsXG4gICAgICAgIHJvZmY6IDAuODM3ODQ1LFxuICAgICAgICByb246IDAuMDAwNzkyMTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MzQsXG4gICAgICAgIHJvZmY6IDAuODM3ODY3LFxuICAgICAgICByb246IDAuMDAwNzgyMjE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MjYsXG4gICAgICAgIHJvZmY6IDAuODM3ODg4LFxuICAgICAgICByb246IDAuMDAwNzcyNzU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MTksXG4gICAgICAgIHJvZmY6IDAuODM3OTA3LFxuICAgICAgICByb246IDAuMDAwNzYzNzEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MTIsXG4gICAgICAgIHJvZmY6IDAuODM3OTI2LFxuICAgICAgICByb246IDAuMDAwNzU1MDcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDA2LFxuICAgICAgICByb2ZmOiAwLjgzNzk0MyxcbiAgICAgICAgcm9uOiAwLjAwMDc0NjgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQsXG4gICAgICAgIHJvZmY6IDAuODM3OTYsXG4gICAgICAgIHJvbjogMC4wMDA3Mzg5MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzOTQsXG4gICAgICAgIHJvZmY6IDAuODM3OTc2LFxuICAgICAgICByb246IDAuMDAwNzMxMzc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzg5LFxuICAgICAgICByb2ZmOiAwLjgzNzk5LFxuICAgICAgICByb246IDAuMDAwNzI0MTcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzg0LFxuICAgICAgICByb2ZmOiAwLjgzODAwNCxcbiAgICAgICAgcm9uOiAwLjAwMDcxNzI4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM3OSxcbiAgICAgICAgcm9mZjogMC44MzgwMTgsXG4gICAgICAgIHJvbjogMC4wMDA3MTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzc1LFxuICAgICAgICByb2ZmOiAwLjgzODAzLFxuICAgICAgICByb246IDAuMDAwNzA0NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNyxcbiAgICAgICAgcm9mZjogMC44MzgwNDIsXG4gICAgICAgIHJvbjogMC4wMDA2OTgzOThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNjYsXG4gICAgICAgIHJvZmY6IDAuODM4MDUzLFxuICAgICAgICByb246IDAuMDAwNjkyNjUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzYzLFxuICAgICAgICByb2ZmOiAwLjgzODA2NCxcbiAgICAgICAgcm9uOiAwLjAwMDY4NzE2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM1OSxcbiAgICAgICAgcm9mZjogMC44MzgwNzQsXG4gICAgICAgIHJvbjogMC4wMDA2ODE5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNTUsXG4gICAgICAgIHJvZmY6IDAuODM4MDg0LFxuICAgICAgICByb246IDAuMDAwNjc2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM1MixcbiAgICAgICAgcm9mZjogMC44MzgwOTMsXG4gICAgICAgIHJvbjogMC4wMDA2NzIxMDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNDksXG4gICAgICAgIHJvZmY6IDAuODM4MTAxLFxuICAgICAgICByb246IDAuMDAwNjY3NTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzQ2LFxuICAgICAgICByb2ZmOiAwLjgzODEwOSxcbiAgICAgICAgcm9uOiAwLjAwMDY2MzE1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0MyxcbiAgICAgICAgcm9mZjogMC44MzgxMTcsXG4gICAgICAgIHJvbjogMC4wMDA2NTg5NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNDEsXG4gICAgICAgIHJvZmY6IDAuODM4MTI1LFxuICAgICAgICByb246IDAuMDAwNjU0OTcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzM4LFxuICAgICAgICByb2ZmOiAwLjgzODEzMixcbiAgICAgICAgcm9uOiAwLjAwMDY1MTE1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMzNixcbiAgICAgICAgcm9mZjogMC44MzgxMzgsXG4gICAgICAgIHJvbjogMC4wMDA2NDc1MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzQsXG4gICAgICAgIHJvZmY6IDAuODM4MTQ1LFxuICAgICAgICByb246IDAuMDAwNjQ0MDEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzMxLFxuICAgICAgICByb2ZmOiAwLjgzODE1MSxcbiAgICAgICAgcm9uOiAwLjAwMDY0MDY3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyOSxcbiAgICAgICAgcm9mZjogMC44MzgxNTYsXG4gICAgICAgIHJvbjogMC4wMDA2Mzc0OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjcsXG4gICAgICAgIHJvZmY6IDAuODM4MTYyLFxuICAgICAgICByb246IDAuMDAwNjM0NDQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI2LFxuICAgICAgICByb2ZmOiAwLjgzODE2NyxcbiAgICAgICAgcm9uOiAwLjAwMDYzMTUzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyNCxcbiAgICAgICAgcm9mZjogMC44MzgxNzIsXG4gICAgICAgIHJvbjogMC4wMDA2Mjg3NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjIsXG4gICAgICAgIHJvZmY6IDAuODM4MTc2LFxuICAgICAgICByb246IDAuMDAwNjI2MDk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzIxLFxuICAgICAgICByb2ZmOiAwLjgzODE4MSxcbiAgICAgICAgcm9uOiAwLjAwMDYyMzU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE5LFxuICAgICAgICByb2ZmOiAwLjgzODE4NSxcbiAgICAgICAgcm9uOiAwLjAwMDYyMTEzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxOCxcbiAgICAgICAgcm9mZjogMC44MzgxODksXG4gICAgICAgIHJvbjogMC4wMDA2MTg4MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTYsXG4gICAgICAgIHJvZmY6IDAuODM4MTkzLFxuICAgICAgICByb246IDAuMDAwNjE2NTk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE1LFxuICAgICAgICByb2ZmOiAwLjgzODE5NyxcbiAgICAgICAgcm9uOiAwLjAwMDYxNDQ3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxNCxcbiAgICAgICAgcm9mZjogMC44MzgyLFxuICAgICAgICByb246IDAuMDAwNjEyNDU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzEyLFxuICAgICAgICByb2ZmOiAwLjgzODIwMyxcbiAgICAgICAgcm9uOiAwLjAwMDYxMDUxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxMSxcbiAgICAgICAgcm9mZjogMC44MzgyMDcsXG4gICAgICAgIHJvbjogMC4wMDA2MDg2NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMSxcbiAgICAgICAgcm9mZjogMC44MzgyMSxcbiAgICAgICAgcm9uOiAwLjAwMDYwNjkwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwOSxcbiAgICAgICAgcm9mZjogMC44MzgyMTIsXG4gICAgICAgIHJvbjogMC4wMDA2MDUyMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDgsXG4gICAgICAgIHJvZmY6IDAuODM4MjE1LFxuICAgICAgICByb246IDAuMDAwNjAzNjAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA3LFxuICAgICAgICByb2ZmOiAwLjgzODIxOCxcbiAgICAgICAgcm9uOiAwLjAwMDYwMjA2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA2LFxuICAgICAgICByb2ZmOiAwLjgzODIyLFxuICAgICAgICByb246IDAuMDAwNjAwNTg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA2LFxuICAgICAgICByb2ZmOiAwLjgzODIyMyxcbiAgICAgICAgcm9uOiAwLjAwMDU5OTE3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNSxcbiAgICAgICAgcm9mZjogMC44MzgyMjUsXG4gICAgICAgIHJvbjogMC4wMDA1OTc4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDQsXG4gICAgICAgIHJvZmY6IDAuODM4MjI3LFxuICAgICAgICByb246IDAuMDAwNTk2NTQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAzLFxuICAgICAgICByb2ZmOiAwLjgzODIyOSxcbiAgICAgICAgcm9uOiAwLjAwMDU5NTMxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMyxcbiAgICAgICAgcm9mZjogMC44MzgyMzEsXG4gICAgICAgIHJvbjogMC4wMDA1OTQxNDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDIsXG4gICAgICAgIHJvZmY6IDAuODM4MjMzLFxuICAgICAgICByb246IDAuMDAwNTkzMDE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAxLFxuICAgICAgICByb2ZmOiAwLjgzODIzNSxcbiAgICAgICAgcm9uOiAwLjAwMDU5MTk0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMSxcbiAgICAgICAgcm9mZjogMC44MzgyMzYsXG4gICAgICAgIHJvbjogMC4wMDA1OTA5MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzLFxuICAgICAgICByb2ZmOiAwLjgzODIzOCxcbiAgICAgICAgcm9uOiAwLjAwMDU4OTk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMsXG4gICAgICAgIHJvZmY6IDAuODM4MjQsXG4gICAgICAgIHJvbjogMC4wMDA1ODkwMDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTksXG4gICAgICAgIHJvZmY6IDAuODM4MjQxLFxuICAgICAgICByb246IDAuMDAwNTg4MTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk5LFxuICAgICAgICByb2ZmOiAwLjgzODI0MixcbiAgICAgICAgcm9uOiAwLjAwMDU4NzI1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OCxcbiAgICAgICAgcm9mZjogMC44MzgyNDQsXG4gICAgICAgIHJvbjogMC4wMDA1ODY0MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTgsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ1LFxuICAgICAgICByb246IDAuMDAwNTg1NjU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk3LFxuICAgICAgICByb2ZmOiAwLjgzODI0NixcbiAgICAgICAgcm9uOiAwLjAwMDU4NDkxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NyxcbiAgICAgICAgcm9mZjogMC44MzgyNDcsXG4gICAgICAgIHJvbjogMC4wMDA1ODQxOThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTYsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ5LFxuICAgICAgICByb246IDAuMDAwNTgzNTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk2LFxuICAgICAgICByb2ZmOiAwLjgzODI1LFxuICAgICAgICByb246IDAuMDAwNTgyODY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk2LFxuICAgICAgICByb2ZmOiAwLjgzODI1MSxcbiAgICAgICAgcm9uOiAwLjAwMDU4MjI0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NSxcbiAgICAgICAgcm9mZjogMC44MzgyNTIsXG4gICAgICAgIHJvbjogMC4wMDA1ODE2NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTUsXG4gICAgICAgIHJvZmY6IDAuODM4MjUzLFxuICAgICAgICByb246IDAuMDAwNTgxMDc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk1LFxuICAgICAgICByb2ZmOiAwLjgzODI1MyxcbiAgICAgICAgcm9uOiAwLjAwMDU4MDUzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NCxcbiAgICAgICAgcm9mZjogMC44MzgyNTQsXG4gICAgICAgIHJvbjogMC4wMDA1ODAwMTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTQsXG4gICAgICAgIHJvZmY6IDAuODM4MjU1LFxuICAgICAgICByb246IDAuMDAwNTc5NTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NixcbiAgICAgICAgcm9uOiAwLjAwMDU3OTA0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NCxcbiAgICAgICAgcm9mZjogMC44MzgyNTcsXG4gICAgICAgIHJvbjogMC4wMDA1Nzg1OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTMsXG4gICAgICAgIHJvZmY6IDAuODM4MjU3LFxuICAgICAgICByb246IDAuMDAwNTc4MTYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkzLFxuICAgICAgICByb2ZmOiAwLjgzODI1OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3Nzc0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTksXG4gICAgICAgIHJvbjogMC4wMDA1NzczNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTMsXG4gICAgICAgIHJvZmY6IDAuODM4MjU5LFxuICAgICAgICByb246IDAuMDAwNTc2OTczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2LFxuICAgICAgICByb246IDAuMDAwNTc2NjEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2LFxuICAgICAgICByb246IDAuMDAwNTc2MjY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2MSxcbiAgICAgICAgcm9uOiAwLjAwMDU3NTkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNjEsXG4gICAgICAgIHJvbjogMC4wMDA1NzU2MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYyLFxuICAgICAgICByb246IDAuMDAwNTc1MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjYyLFxuICAgICAgICByb246IDAuMDAwNTc1MDMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2MyxcbiAgICAgICAgcm9uOiAwLjAwMDU3NDc1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjMsXG4gICAgICAgIHJvbjogMC4wMDA1NzQ0OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY0LFxuICAgICAgICByb246IDAuMDAwNTc0MjQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NCxcbiAgICAgICAgcm9uOiAwLjAwMDU3NDAwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjQsXG4gICAgICAgIHJvbjogMC4wMDA1NzM3NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY1LFxuICAgICAgICByb246IDAuMDAwNTczNTU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MzM0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MzE0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NixcbiAgICAgICAgcm9uOiAwLjAwMDU3Mjk1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NixcbiAgICAgICAgcm9uOiAwLjAwMDU3Mjc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyNTk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyNDI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY3LFxuICAgICAgICByb246IDAuMDAwNTcyMjY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY3LFxuICAgICAgICByb246IDAuMDAwNTcyMTE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY3LFxuICAgICAgICByb246IDAuMDAwNTcxOTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzE4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTY5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzE1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzE0NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxMzMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTIyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzExMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcxMDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDkxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA4MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwNzM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDU2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDQ5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDQxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDM0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMjE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMTU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMDk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMDM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTY5OTg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTY5OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTg4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NzkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTcwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk2MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NTk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTU2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0OTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NDQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTQxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkzODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5MzYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTMzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkzMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5Mjk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTI3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MjM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTIxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTE4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTEzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTAzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwMjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTAwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOFxuICAgIH1cbl07IiwidmFyIHNpdGVtYXAgPSB7XHJcbiAgICAnJzogJ2hvbWUnLFxyXG4gICAgXHJcbiAgICAnT3ZlcnZpZXdfUHJvamVjdCc6ICdxdW9ydXMnLFxyXG4gICAgJ0Rlc2NyaXB0aW9uJzogJ3F1b3J1cycsXHJcbiAgICAnRGVzaWduJzogJ3F1b3J1cycsXHJcbiAgICAnRXhwZXJpbWVudHMnOiAncXVvcnVzJyxcclxuICAgICdOb3RlYm9vayc6ICdxdW9ydXMnLFxyXG4gICAgJ0ludGVyTGFiJzogJ3F1b3J1cycsXHJcbiAgICAnTW9kZWwnOiAncXVvcnVzJyxcclxuICAgICdSZXN1bHRzJzogJ3F1b3J1cycsXHJcbiAgICAnRGVtb25zdHJhdGUnOiAncXVvcnVzJyxcclxuICAgICdJbXByb3ZlJzogJ3F1b3J1cycsXHJcblxyXG4gICAgJ1BhcnRzJzogJ3F1b3J1cycsXHJcbiAgICAnQmFzaWNfUGFydCc6ICdxdW9ydXMnLFxyXG4gICAgJ0NvbXBvc2l0ZV9QYXJ0JzogJ3F1b3J1cycsXHJcbiAgICAnUGFydF9Db2xsZWN0aW9uJzogJ3F1b3J1cycsXHJcblxyXG4gICAgJ1NhZmV0eSc6ICdxdW9ydXMnLFxyXG5cclxuICAgICdPdmVydmlld19IUCc6ICdocCcsXHJcbiAgICAnSHVtYW5fUHJhY3RpY2VzJzogJ2hwJyxcclxuICAgICdQdWJsaWNfRW5nYWdlbWVudCc6ICdocCcsXHJcblxyXG4gICAgJ1RlYW0nOiAndGVhbScsXHJcbiAgICAnQ29sbGFib3JhdGlvbnMnOiAndGVhbScsXHJcbiAgICAnQXR0cmlidXRpb25zJzogJ3RlYW0nLFxyXG5cclxuICAgICdBcHBsaWVkX0Rlc2lnbic6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnRW50cmVwcmVuZXVyc2hpcCc6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnSGFyZHdhcmUnOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ01lYXN1cmVtZW50JzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdNb2RlbCc6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnU29mdHdhcmUnOiAnY29tcGV0aXRpb24nXHJcbn1cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XHJcbiAgICB2YXIgY3VybmF2aXRlbSA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xyXG4gICAgaWYoY3VybmF2aXRlbS5tYXRjaCgvaWdlbVxcLm9yZy9pKSkgeyAvLyBXZSBrbm93IHdlJ3JlIGxpdmVcclxuICAgICAgICBjdXJuYXZpdGVtID0gY3VybmF2aXRlbS5yZXBsYWNlKC8oaHR0cDpcXC9cXC8pP1xcZHs0fVxcLmlnZW1cXC5vcmdcXC5UZWFtOlxcdytcXC8/L2ksICcnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGN1cm5hdml0ZW0gPSBjdXJuYXZpdGVtLnJlcGxhY2UoLyhodHRwOlxcL1xcLyk/bG9jYWxob3N0OlxcZCtcXC8/LywgJycpO1xyXG4gICAgICAgIGN1cm5hdml0ZW0gPSBjdXJuYXZpdGVtLnJlcGxhY2UoL1xcLmh0bWwvaSwgJycpO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coY3VybmF2aXRlbSk7XHJcbiAgICAkKCcuJyArIHNpdGVtYXBbY3VybmF2aXRlbV0pLmFkZENsYXNzKCdjdXJyZW50Jyk7XHJcbn0pIiwiLy8gQ29kZSBjb3VydGVzeSBvZiBNb2hhbWVkIEhhc2FuXHJcbi8vIGh0dHBzOi8vY29kZXBlbi5pby9NaG1kaGFzYW4vcGVuL21BZGFRRVxyXG5cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xyXG4gIFxyXG4gICd1c2Ugc3RyaWN0JztcclxuICBcclxuICAgdmFyIGMsIGN1cnJlbnRTY3JvbGxUb3AgPSAwLFxyXG4gICAgICAgbmF2YmFyID0gJCgnaGVhZGVyJyk7XHJcblxyXG4gICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIGEgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCk7XHJcbiAgICAgIHZhciBiID0gbmF2YmFyLmhlaWdodCgpO1xyXG4gICAgIFxyXG4gICAgICBjdXJyZW50U2Nyb2xsVG9wID0gYTtcclxuICAgICBcclxuICAgICAgaWYgKGMgPCBjdXJyZW50U2Nyb2xsVG9wICYmIGEgPiBiICsgYikge1xyXG4gICAgICAgIG5hdmJhci5hZGRDbGFzcyhcInNjcm9sbFVwXCIpO1xyXG4gICAgICB9IGVsc2UgaWYgKGMgPiBjdXJyZW50U2Nyb2xsVG9wICYmICEoYSA8PSBiKSkge1xyXG4gICAgICAgIG5hdmJhci5yZW1vdmVDbGFzcyhcInNjcm9sbFVwXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGMgPSBjdXJyZW50U2Nyb2xsVG9wO1xyXG4gIH0pO1xyXG4gIFxyXG59KTsiLCIvL0NvZGUgY291cnRlc3kgb2YgaHR0cHM6Ly9jb2RlcGVuLmlvL2tydXhvci9wZW4vQ3dwRnFcblxuJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbigpIHtcbiAgICBpZiAoJCh0aGlzKS5zY3JvbGxUb3AoKSA+IDUwICkge1xuICAgICAgICAkKCcuc2Nyb2xsdG9wOmhpZGRlbicpLnN0b3AodHJ1ZSwgdHJ1ZSkuZmFkZUluKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgJCgnLnNjcm9sbHRvcCcpLnN0b3AodHJ1ZSwgdHJ1ZSkuZmFkZU91dCgpO1xuICAgIH1cbn0pO1xuJChmdW5jdGlvbigpeyQoXCIuc2Nyb2xsXCIpLmNsaWNrKGZ1bmN0aW9uKCl7JChcImh0bWwsYm9keVwiKS5hbmltYXRlKHtzY3JvbGxUb3A6JChcIiN0b3BcIikub2Zmc2V0KCkudG9wfSxcIjEwMDBcIik7cmV0dXJuIGZhbHNlfSl9KTsiXX0=