{"animation_url":"data:text/html;base64,PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0iVVRGLTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+PGxpbmsgcmVsPSJpY29uIiBocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQWdDQUFBQUFCV0VTVW9BQUFBWFVsRVFWUjQydDJTUVE2QU1BZ0U1NVA3LzZlTUYyTnJJdlJpYXVJY0Z6YkFCdmFnQUZvcUdvZ0N6MG8wMFhBUmhVbFJWU1kwMFpzanpFUTFUUU9xVUl3WWxuSkpvRGtLK2xpRytIczhXVGQwUkYzVjgyRWROVy9rc09zbERwUk9oWHQvM0w1WUFBQUFBRWxGVGtTdVFtQ0MiIHR5cGU9ImltYWdlL3BuZyI+PGxpbmsgcmVsPSJpY29uIiBocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU1BQUFBREFDQUFBQUFCM3R6UGJBQUFGbDBsRVFWUjRBZXphQTNBc1N4VEc4VzgydkxIdGV2VnMyN1paZkxadDI3WnQyN1p0MjhZbTMrc1QxYW4wN2xiTjdUT1A4eXNIMHpteitIZHZCYWxVS3BWS3BWS3BWQ3FWU3FYK1M2TDJUZmFZdFNqR3ovelQxcXEvTE11M0ZrQkJUZGU0bjVrVkFkUmFjNkdnaGl0aXJqWGx0eVNmcTBBaHUveE9jZzhFbS9JYmtyZWhvRFYvaTdsVy8zdDBqaXRGZm5QOFNqSzdDWUwxdjA5bmRSUlE4eWJKd1RoclRUcGNidTlYSzBiSXAvc2hPbzkwSVZqRlNWbVNUM1lncjh6K2RKN3ZRd3c5cjVBY3Vyc0ZlWlRzSXhOK3UwNEc0ZWIraE9RdlcrVy8xTXp2a3Z4dDF5TEVzZHpQZFBiSWQ5WFpQcVp6Y1FrTVJLZlFlYlFUZVpRZUxnL1JLMzB4cjNxby9OWVBTeUtuMm52b3ZOQUZFNTN5aXN0dWl6eW1mNGZPcHJHdmVoK2RaN3R6VG5ma0VNbnZGNGVSRGVSeVgzVWd0N1BrdXcrV0k2N1Z2eWI1eDhHbDhFUkxmaUczN1BoSk1OTDZBSjB6UzVETFBQTDMvN2d3WXB0MEVwMlBGNEtuNlJhNTVrdlR3RXBta3g5SmZyWlF6czdkS1c4bkY5Y2d2cm9YT0RGbkttRkRLMFl3MC9DVXZOR2ZVUW5mZWorUS9ITFp5VnBzZ2EvcEhGdWFNMkVud3RKS2NrKytuaE9lcGx2cFhGT0N5VEhwaU9HY3JSQkI2MzZRenFNOXNGUjBKWjJiL0w5ejNWOWtzdW1oQk9STUpXemRERXpOK3JrOHJHdGhnc3EzNmV3VElUNlZzOTB6OWduejN6SUdaYnN3SWYyWi9laTgxQTB0TEdlMkNWUG1rUnZ6ODFaRjBHYVN4UDI2YXdtMG9Kd1pKMHdwUG9IT1krMytKdUtOSG1oQk9UTlBtTkwwS1oydG9Fd3JEOERnWmdneDZXU2RNL09FYVp2K0xpdXBQVnQwQnAwSEppRkkvWERPbnEyQTJOazhZVXI3L1hUT3pXRE1RaEtjbnhaR0lKVXorNFJwMFNieW52ZlpnaGhWZForM2lRak1XWmVmTUZPdGorZ05SYlRlZDdMdXNnaWpjdVluek5xeWRMNlpBOE1hYjVYWDI1VmxDTGY4U003bThCTm03Um82TjVaQXJENmNvQ2tSU09Yc01UOWgxdWFVZXpTNEZwekdsK1Z4M3c4bUpHZkNUNWo1aG1KSTN2SmFBUnhFNS9sK2hGSTU4eE5tYjk2UGhqY1VHY3p3Z2ZkSlJIRE9ra3FZdjZGNHRLUDg4RDlrdVFGWXFYK0RZbzBJQ1d2K2RQZ1RpaWsvb0xPeDNYS3ovMHAxT2t2U3BuTHJ2NzZRenVORnNDSUpFNUt6aExVOXdGSGZMZ2tySlh0THd0VHBMRUdaVFg3aWlFdXFZVUNkd241WHA3TUVOVDdKWVY4dUN3UDZGSGI4Y002V1FOSld6RkpjT2drRzlDbE1uYzRTVlh3bG5aK25nQWw5Q2x2OUczVTZTOUFjOGtaME9xdzAzVHgyQ2h2SjJVY0xJV0hUL0VieUNCaFFwN0NWSXNuWmkrcDA5bThaWUhaOUNsdndtMlJ6WmovQWhGUFlwQ1AxaDQzSkQyQ1ZzTy9HVDJHOXJ5YWFNL3NCOUFlSituU1dTWDRBdzRTOXFFNWgwV0hHT2JNZndFL1lFbEE2N3pmTm1mMEFmc0pPcUlCbW5qUDdBZnlFYVpOT01jK1ovUUFxWVpTRWFmWTVzeDlBSit3a2FNbm5UQTlnbVRETlBtZjJBK2lFYWNublRBOWdtekROUEdmMkEraUVhVHBuT2hEMkE5Z25MTG1jMlE4UUxmRzVuN0FjT1R1bzlCODZRUDExd3dtYkZqbXBuTTMrRHgxZ3ltLzloT1hNMlI3LzBBSGt2eGF6SjZPZ0JiKzIrYS9GM0tzSFhybDgrL2UrdmF3REJVM2F3ZjFNTyt6SjZ0K0VYcm04ZjhyNnlPQm5rbHM5bGZxem5Uc0VDUmlJd2pqK1lBanJXY1BLd0dMWTdNMXM3MEdzQm92T0RvdGl0bmV3Unp2V2hmV2dWUlJQdk01eElCL3ZuZjUvdmYvTGV4OEFBQUFBQUFBQS9QTVZrYlhDTW5jV1VsNzJxTEhORnRQNG11b3NGdE93cHlxZmx4WlRmN1cvbDMya0g4OUhGbFEvSEJlZFBINlZWMFJDMHI5ZzYwbGZzUFhVTDloNjRoZHNQY1VMdHA1Z1JjU1I0Z1ZiVDdBaTRrZjJnazNDU0pnL0VoYmZOUWx6ZFVqQy9KQXdFa2JDbmtpWXExTVM1dXJnam9UNUlXRVpDU05oNXlTTWhQM3lCZHNSQ1h0cFBXRm41a0d3SXVLQ2hLWFdFL1pBd2h5UU1CSkd3dktLU05ydTE2TGJxYk9ROG9wSWpXMnltTWEzVk9lbTlhdkZpMmF2RnJPOEloTDdhckdNclk4L0JnQUFBQUNBYnpIaTI3TkxTb09FQUFBQUFFbEZUa1N1UW1DQyIgdHlwZT0iaW1hZ2UvcG5nIj48c2NyaXB0PiBjb25zdCBtYW5pZmVzdCA9IHsgIm5hbWUiOiAiWC1ZLVoiLCAic2hvcnRfbmFtZSI6ICJYLVktWiIsICJkZXNjcmlwdGlvbiI6ICJYLVktWiIsICJ0aGVtZV9jb2xvciI6ICJibGFjayIsICJiYWNrZ3JvdW5kX2NvbG9yIjogImJsYWNrIiwgImRpc3BsYXlfb3ZlcnJpZGUiOiBbICJmdWxsc2NyZWVuIiBdLCAiZGlzcGxheSI6ICJzdGFuZGFsb25lIiwgImljb25zIjogWyB7ICJzcmMiOiAiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWndvSmRtVnljMmx2YmowaU1TNHhJZ29KZDJsa2RHZzlJalV4TWlJS0NXaGxhV2RvZEQwaU5URXlJZ29KZG1sbGQwSnZlRDBpTUNBd0lEVXhNaUExTVRJaUNnbDRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUNnbHpkSEp2YTJVOUluZG9hWFJsSWdvSlptbHNiRDBpYm05dVpTSUtDWE4wY205clpTMTNhV1IwYUQwaU1TNDJJZ29KYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb0pjM1J5YjJ0bExXeHBibVZxYjJsdVBTSnliM1Z1WkNJS1Bnb0pQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqVXhNaUlnYUdWcFoyaDBQU0kxTVRJaUlHWnBiR3c5SW1Kc1lXTnJJaUJ6ZEhKdmEyVTlJbTV2Ym1VaUx6NEtDVHhuSUhSeVlXNXpabTl5YlQwaWRISmhibk5zWVhSbEtEQXNJREFwSUhOallXeGxLRGdzTFRncElqNEtDUWs4WnlCMGNtRnVjMlp2Y20wOUluUnlZVzV6YkdGMFpTZzRMQ0F0TWpZcElqNEtDUWtKUEhCaGRHZ2daRDBpVFRBc01Fd3hNaXd4T0NCTk1Dd3hPRXd4TWl3d0lpQXZQZ29KQ1R3dlp6NEtDUWs4WnlCMGNtRnVjMlp2Y20wOUluUnlZVzV6YkdGMFpTZzBOQ3dnTFRJMktTSStDZ2tKQ1R4d1lYUm9JR1E5SWswMkxEQk1OaXczTERBc01UZ2dUVFlzTjB3eE1pd3hPQ0lnTHo0S0NRazhMMmMrQ2drSlBHY2dkSEpoYm5ObWIzSnRQU0owY21GdWMyeGhkR1VvTkRRc0lDMDFOaWtpUGdvSkNRazhjR0YwYUNCa1BTSk5NQ3d3VERFeUxERTRMREFzTVRnZ1RURXlMREJNTUN3d0lpQXZQZ29KQ1R3dlp6NEtDVHd2Wno0S1BDOXpkbWMrIiwgInNpemVzIjogIjMwMHgzMDAgNTEyeDUxMiAxMDI0eDEwMjQiLCAidHlwZSI6ICJpbWFnZS9zdmcreG1sIiB9LCB7ICJzcmMiOiAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUlBQ0FBQUFBRFJFNHNtQUFBSkRrbEVRVlI0QWV6QmdRQUFBQUNBb1AycEY2a0NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZSGJzRUxSNUtJcmkrREZkWnpiUGJMNll5SmxPdGQ2emVzK29TdjFnVEMzeE1PWTkyN3d2cVpyb3hBcXRycDlJOCtCOFZJU2UrQnZ1SHVUbnVlSW04T2ZkdnlncDEvdXFTUHFiWDFUN3RjNlBURnBXdTZwTWU1Ny9EMTd5STArYUpmcXhiSGh5ekJFZjJVL2QyMzVxbnRRNWZDelp5dEdIbkswbC9wNWhQMG5EVnBqQTNpU3cxU1NJVDFxelZXZXdsOG44RkE1S25uMlBZVzM4emJNQzhkSDlmTUxlSjg5S09LZ29DbGdyS0NyRXA2S1l3ZHJNZlQ5N2luQUhXM2VCWW8vNDdDaFdzTGFpMk1IQm1tcHpDVXVYRzZvMTRsTlJ6V0ZyVGxWNU44NDhBb1h0Y1AvOWJFZXdOTnBTbFhDUUhLbkN4UFlGb0k1UnZnSUMxUUtXRmxRaGhZZEhkbXpHc0RMZXNPTVJNWHFsT2x6RHp2V0I2aFV1THI3WVVmUVZnSzhMeE9qbWwrb1pkcDZwZm0vZzQ3YXhqWUFFUURXM2lOT1Q5V2VTWDBzOVFmaEdZQWlBdWpwUXZjSEtHOVhoQ3NJMUFpOURBRG9lcUVJR0cxbWdlb0R3anNBUUFEWDZvZnFBalErcW54R0Vld1NHQUtoN2RzeGdZY3FPZTZqNEkvQVNmUURVaW1yVi8wei9DQXdCVUZOMnpNMlB3SnlpeXo4Q1F3RFVPOVYyWkgwRWZvY0Iyd2dNQVZDWjlVRjRZZkN5K00rK0hSdEhjWUJ4RkZmRUZTU0pVRjBvb2dBbnBnZ1FDSTRXUkZjNnRRQkZjSjYxWnh5Yy9jM09tNTJEZ0h2enZ0QzdqdlJIditNaC9kcGJRU0FBSUFnTEl2QzRkeE9CQU9BZ0xJakFqRUFBVUJCV1JHQkc0UFhWZWZjYUFTZ0lZd1FXSURBQmVEZWVGNFFwQWdzUVlBQUt3aGlCQlFnd0FLSWdmQ2VJd0JzUUNBQ0l0NG9JekFnRUFBUmhTUVJtQkFJQWdyQWdBbTlDSUFEV1A3Mi92VHJuM3Y1MkVaZ1JDSUQvM0JNSDRUTWk4TlBwaVFBQkJxQWdEQkZZZ0lBVUFBN0NrZ2pNQ0FRQUJHRkZCQjUzalFoc0IrQjZQQzhJUXdRV0lHQUZnSU93SkFJUEJKNlgvOTJYY3dCNEhnQVVoQ0VDR3hCZ0FBckM4UDhLRU5nQVFFRVlJckFBZ1M4SVFFRVlJckFDQVFhZ0lBd1IrRklRQ0FBSXdvNEl6QWdFQUFSaFNRUm1CQUlBZ3JBaUFvOTdQeEg0S1FBS3dsOVg0SkFnd0FBVWhDRUNLeEJnQUFyQ0VJRVZDRXdBM28vbkJXR0l3QVlFR0lDQ01MeXZRSUFCS0FoREJCWWdzQUdBZ2pCRVlBRUNERUJCR0NLd0FnRUdvQ0RNRWZoU0VRaUFsYkwzQVY3OXdPWHc4aEFJZ08xZlZwN0toU0lRQUN2ZjJMOEtJdkEyQkFJQWdyQWpBak1DQVFCQldCS0JHWUVBZ0NDc2lNQ013TXN1QUNEd0tpSXdJN0FQQUFqQ2tnak1DQVFBQjJHT3dBb0VkaThCQUVHWUlyQURnWDBBUUJER0NLeEE0TThBZ01xSHRkQ0J3SUlBRklSaEhnNEVBZ0NDTUVaZ0NRSUJBRUhZRW9ISFBRVEFwaURNRWRpQVFBQndFTVlJckVDQUFTZ0l3MzgzSXZBdzNpb0lRd1NXSU1BQUZJUWhBanNRWUFBS3doQ0JKUWd3QUFWaGlNQWFCQUtBaTU4bEFvOTdNd2J3WnYyMWdyQWxBby9idlN4clB4M1V6Vy80YXlnWWJyL00yMTkxS3gvNTd1ZkhRc0dObndLaTN4Z3VDUDhGRWRnQVFBaHdFQjUzTHdRZ0JEZ0lLeUx3dU52anNuYkgyL0ZlUVhqY25RK0FFT0FnREJGWUFjQzR6K1BOZ2pCRVlBRUFJY0JCZU55VEZvQVE0Q0RzaXNDZkY3Z1FHRUVZSXJBRGdCOS8vQWdCQ01JUWdSMEFQRnc5aEFBRVlZakFDZ0NlWDQxL0dBNkIrYXVncmdoOHUvS0xZTmNoc0NFSTN6c0JHSjk0UWdCK1F0Z0p3RDhYQWh1QzhKMFVnSC92WmdXQjd2dHl1dThtQU9aZmJOY1I2TDR0cC92bUJjQ05RQU1BQUc1T2ovUUlOQUFBd0k5QUF3QUEvQWcwQUFEQWowQURBQUQ4Q0RRQUFHRGNxME1Jd0FDVUFQZ1JhQUFBZ0J1QkJnQUFIQVlBY2dRYUFBSGdSNkFCSUFCK0JCb0FBMEFJZkJyUEc0QVdnQkRnQVZnQjhDUFFBRDRCQUg0RUdnQUI0RWVnQVNBQWZnUWFBQURnUjZBQkFBQ0F3REVFWUFBS0FQZytoZ0FNUUFwQUNQQUFGQUFjQVlBUTRBRW9BUGc0bnNzUmFBQUVnQitCQmtBQStCRm9BQWlBSDRFR1FBRDRFV2dBQklBZmdRYUFBUGdSYUFBRWdCK0JCa0FBK0JGb0FMdkR1UUFBQW9kZEEvQURFQUk4QUQ4QUljQUQ4QU1RQWp3QVB3Q0F3R01Ec0FJUUFqd0FDd0IrQkJyQTQ4OEJFQUk4QUQ4QUljQUQ4QU1RQWp3QVB3QWh3QVB3QXhBQ1BBQS9BUHhkWmRjQTdBRHdyQjRiZ0I4QVJPQ21BZnlXeDM5U1EwQS9BUDR5aFlCOUFIK3pWd2NuRUlVd0VJYW5sMWlpNlVJcjB5S0UxMFU4dUFlUkJUMEhqUHAxRUJqOVNmUSs2aWtDUW04QSs0bUtyM1QrWGVJYndINnlacWVuQ09RM2dQMlVOUUJxRVNnNDM5ZitQaGlRMWdDb1JTRGhmTW5hdlhFTmdGb0VBczRYck4xTFZTMEFjd1FxNFh4TzJpQU9GbkFiUERUNE5qQnV3T2J1OVgyemxhR0QreDhqSG5kZzZmY3lyS0NZU3dvRUxSUlN5WkZ3Q3hkKzdkazdydE5BRk1maFU1R05XQ0JLM3N1Q3hqM3ZweU1CMjNLRUVBVGFJQ1hLQXFCQlRxU2hqWHZ1YUs3UDl5MWlmalAvR1hmajBBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUN4Tk40ejc0OVU2ZlBsOE8yaFRQNVVhem8ralJmU2xsaWZSSHJxcDFQTDNaalNIb2RUek1ackRXT3I1R3MxaFYrbzVCRTRBOHQ0QlBnV1pYd0duVzBIbUhlQnBrSGdKTE45dUJKbitBdjZVbWVsT1pNTHFaK29BTUtRT0FJL081ZExwYnFTQkFQQWhTUUFRQUFRQUFVQUFFQUFFZ0ljQ2NFRUFuZ1VDZ0FBZ0FBZ0FBb0FBSUFBSUFBS0FBQ3lWQU53TEJDQXJBZmllSkFBSUFBTEFld0dZRVFBRUFBRkFBQkFBQkFBQnlFRUFuc2UxaFFBZ0FBZ0FBb0FBSUFBSUFBS0FBQ0FBQ0FBQ2dBQWdBS3grcEE0QTd3UmdSZ0FRQUFRQUFVQUFFQUFFSUFjQmVCRUlBQUtBQUNBQUNNQlNJQUFJQUFLQUFDQUFQRWdXQUFRQUFVQUFFQURlNWdnQUFvQUFJQUFJQUFLQUFDQUFBakR6TWhBQTBnYmdmaUFBQ0FBQ2dBQWdBQWdBQXNEeUE3QmRjZ0FRQUFRQUFVQUFFQURlQ01DY0FDQUFDQUFDZ0FBZ0FHUUp3RmtBY2dmZ1ZTQUFDQUFDZ0FBZ0FBZ0FBb0FBc0RDcmJaSUFJQUFJQUFLQUFDQUFDQUN2OHdRQUFVQUFFQUFFQUFGQUFBUmc1dmZ4Lzl1UFF4ZTBHNEFLcGo1b09BQVY5RUY3dXFuVU1qVllBZGFsbmlGb3pxYlVNd2JOK1ZYcTJRVk9BTndCYUVoM3l2MEtvRSsrQTlCUHVaZEF1dlZtZjV4SjhSY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUHdEUjMwaHRXY2d1YThBQUFBQVNVVk9SSzVDWUlJPSIsICJzaXplcyI6ICI1MTJ4NTEyIiwgInR5cGUiOiAiaW1hZ2UvcG5nIiB9LCB7ICJzcmMiOiAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFNQUFBQURBQ0FBQUFBQjN0elBiQUFBRmwwbEVRVlI0QWV6YUEzQXNTeFRHOFc4MnZMSHRldlZzMjdaWmZMWnQyN1p0MjdadDI4WW0zK3NUMWFuMDdsYk43VE9QOHlzSDB6bXorSGR2QmFsVUtwVktwVktwVkNxVlNxWCtTNkwyVGZhWXRTakd6L3pUMXFxL0xNdTNGa0JCVGRlNG41a1ZBZFJhYzZHZ2hpdGlyalhsdHlTZnEwQWh1L3hPY2c4RW0vSWJrcmVob0RWL2k3bFcvM3Qwaml0RmZuUDhTaks3Q1lMMXYwOW5kUlJROHliSndUaHJUVHBjYnU5WEswYklwL3NoT285MElWakZTVm1TVDNZZ3I4eitkSjd2UXd3OXI1QWN1cnNGZVpUc0l4Tit1MDRHNGViK2hPUXZXK1cvMU16dmt2eHQxeUxFc2R6UGRQYklkOVhaUHFaemNRa01SS2ZRZWJRVGVaUWVMZy9SSzMweHIzcW8vTllQU3lLbjJudm92TkFGRTUzeWlzdHVpenltZjRmT3ByR3ZlaCtkWjd0elRuZmtFTW52RjRlUkRlUnlYM1VndDdQa3V3K1dJNjdWdnliNXg4R2w4RVJMZmlHMzdQaEpNTkw2QUowelM1RExQUEwzLzdnd1lwdDBFcDJQRjRLbjZSYTU1a3ZUd0VwbWt4OUpmclpRenM3ZEtXOG5GOWNndnJvWE9ERm5LbUZESzBZdzAvQ1V2TkdmVVFuZmVqK1EvSExaeVZwc2dhL3BIRnVhTTJFbnd0SktjaysrbmhPZXBsdnBYRk9DeVRIcGlPR2NyUkJCNjM2UXpxTTlzRlIwSloyYi9MOXozVjlrc3VtaEJPUk1KV3pkREV6TityazhyR3RoZ3NxMzZld1RJVDZWczkwejlnbnozeklHWmJzd0lmMlovZWk4MUEwdExHZTJDVlBta1J2ejgxWkYwR2FTeFAyNmF3bTBvSndaSjB3cFBvSE9ZKzMrSnVLTkhtaEJPVE5QbU5MMEtaMnRvRXdyRDhEZ1pnZ3g2V1NkTS9PRWFaditMaXVwUFZ0MEJwMEhKaUZJL1hET25xMkEyTms4WVVyNy9YVE96V0RNUWhLY254WkdJSlV6KzRScDBTYnludmZaZ2hoVmRaKzNpUWpNV1plZk1GT3RqK2dOUmJUZWQ3THVzZ2lqY3VZbnpOcXlkTDZaQThNYWI1WFgyNVZsQ0xmOFNNN204Qk5tN1JvNk41WkFyRDZjb0NrUlNPWHNNVDloMXVhVWV6UzRGcHpHbCtWeDN3OG1KR2ZDVDVqNWhtSkkzdkphQVJ4RTUvbCtoRkk1OHhObWI5NlBoamNVR2N6d2dmZEpSSERPa2txWXY2RjR0S1A4OEQ5a3VRRllxWCtEWW8wSUNXditkUGdUaWlrL29MT3gzWEt6LzBwMU9rdlNwbkxydjc2UXp1TkZzQ0lKRTVLemhMVTl3RkhmTGdrckpYdEx3dFRwTEVHWlRYN2lpRXVxWVVDZHduNVhwN01FTlQ3SllWOHVDd1A2RkhiOGNNNldRTkpXekZKY09na0c5Q2xNbmM0U1ZYd2xuWituZ0FsOUNsdjlHM1U2UzlBYzhrWjBPcXcwM1R4MkNodkoyVWNMSVdIVC9FYnlDQmhRcDdDVklzblppK3AwOW04WllIWjlDbHZ3bTJSelpqL0FoRlBZcENQMWg0M0pEMkNWc08vR1QyRzlyeWFhTS9zQjlBZUorblNXU1g0QXc0UzlxRTVoMFdIR09iTWZ3RS9ZRWxBNjd6Zk5tZjBBZnNKT3FJQm1ualA3QWZ5RWFaTk9NYytaL1FBcVlaU0VhZlk1c3g5QUord2thTW5uVEE5Z21URE5QbWYyQStpRWFjbm5UQTlnbXpETlBHZjJBK2lFYVRwbk9oRDJBOWduTExtYzJROFFMZkc1bjdBY09UdW85Qjg2UVAxMXd3bWJGam1wbk0zK0R4MWd5bS85aE9YTTJSNy8wQUhrdnhheko2T2dCYisyK2EvRjNLc0hYcmw4Ky9lK3Zhd0RCVTNhd2YxTU8reko2dCtFWHJtOGY4cjZ5T0Jua2xzOWxmcXpuVHNFQ1JpSXdqaitZQWpyV2NQS3dHTFk3TTFzNzBHc0Jvdk9Eb3RpdG5ld1J6dldoZldnVlJSUHZNNXhJQi92bmY1L3ZmL0xleDhBQUFBQUFBQUEvUE1Wa2JYQ01uY1dVbDcycUxITkZ0UDRtdW9zRnRPd3B5cWZseFpUZjdXL2wzMmtIODlIRmxRL0hCZWRQSDZWVjBSQzByOWc2MGxmc1BYVUw5aDY0aGRzUGNVTHRwNWdSY1NSNGdWYlQ3QWk0a2YyZ2szQ1NKZy9FaGJmTlFsemRVakMvSkF3RWtiQ25raVlxMU1TNXVyZ2pvVDVJV0VaQ1NOaDV5U01oUDN5QmRzUkNYdHBQV0ZuNWtHd0l1S0NoS1hXRS9aQXdoeVFNQkpHd3ZLS1NOcnUxNkxicWJPUThvcElqVzJ5bU1hM1ZPZW05YXZGaTJhdkZyTzhJaEw3YXJHTXJZOC9CZ0FBQUFDQWJ6SGkyN05MU29PRUFBQUFBRWxGVGtTdVFtQ0MiLCAic2l6ZXMiOiAiMTkyeDE5MiIsICJ0eXBlIjogImltYWdlL3BuZyIgfSwgeyAic3JjIjogImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTFFBQUFDMENBQUFBQUFZcGxudUFBQUd0RWxFUVZSNEFlM2NBNUFjVFFPSDhmL01NZG03MkxhZHZMWnQyN1p0MjdadDI3WVJYcjdZT083ZXp2TjFwZUxzWHZadVo5K2FydXBmMmMrWTNmcnZPSTdqT0k3ak9JN2pPUGx0WTZwYjQzWkZ5cExmdXZscU0wcVVzZEs3dm5sN0RkV2w5VFBmM2R0T1dTazgrY3VQZDFGZFNoWm5aT1owNFBOV1NxL3dhK0FrWldXTjZSRDBWWHJlQmNEYkpjclFiVUQ4SEtXVmR3ckd6Y3JLWnBYQTdVVktxOXVmd0RkdGxhRnRNV3BHS1oxdVpVRFZqc3BLcjMrQUdiMlYxcmtCOEVDK011VGRsZ1MrYTZmVUdyMkk4V3lwc3VKZGd2RjRudExvT1FkWU1FZ1phL0VGa0RoUHFaMlpCR1owVjVhYWpRUGkyeWkxZ3Vjd3p2R1V1VjByZ2ZsOWxjcndNcUJ5WjJWdGx4cmcwNlpLYVpQWndHK2xxb2VpT3pGK2FhdFZlYzhGd0tPTmxiVW03d0xsdXltbEp3SkluT3lyUHZ4ZmdlQnlYeXZ6anNHbzdxMFE3QlVBWC90S1lYZ0FUR211K3RsdURqQmxsRlkyYWlaUXVaZkMwT2hUak9PMHFtYS9BSW5kVkU4RjkyUDgwVWdyS25nMkFPN3pGWW91RmNEazdsckZrVW5nVlYvMTFlSVBqS3NLdFlJREVzRDR3UXJKN1Vtb3ZjRFhTbHA4Q2N6YlN2VzErUGlkdnE2V04yb3VFT3p2S1NSclRBZkd0OUJLamtvQXI4VlVmd1czWTN6U1NNdVV2Z29FanlnMDNqMFl0L2xhUWR2NVFQVklOVVRuc1JoWDUybXB3eXFBdi9zb1BPMG1BUEgxdEx5Q216RnVVTU1NckFIbWJhb2xPbGRpSEswd0hSNEF6eFZyT1lNbUF1TzdxMkg4NjJ1QmQ0dGtHTTNmd25pbVFHSHErQU13ZXdNdDUyYU1xL0xWUUozR0E3V1h5ekNPcUFiKzdLaFFlY2RoZktCbGhsWUNGUjNVWUZ1WFkyenF5ZWcwRVVnYzRTbGN4YjlpN0tNbFloOEF0VWVvNGJ3cms4Q0hMU1NWZm96eFVreGhXNzhjK0xHREZ0dWxIUGkwV0ZubzhoUEdLWjY4azJxQnNwaENWL3dNRUQ5Y2hwSDNKbEI5Z0xLeVV4eFl1SWw2alFFV0hxZ2MyS0lhK0MybVJYYUpBOTgwVjFhOHF6RythL014eHB2RnlnSC9aWXdySktQWmZJeTFsS1ZXWHdQeFR6QW1kRmRPZEpvR0xCd3NLZStjY0M2NTNpNEJobEc1cTNMa29nQ0NXL0tsRG44QVU5ZFcxcndIQWhaNU1xWWM2VDhXbU5aTE9oZmowUUpsci9STERHYjFVNjc0RjJLODRBK2NDOHp2b3pEc1dZV3huM0tuWUR6R2pzOEN3WmtLZy9kMGdQRkRhK1hPWHBYQWhEbUxuNlpEY0ZpQ1JhN0pVODQwL3dqRENNN3dGSUxobFJqR2xIV1VPM3NITERLeHRVSlE4anpHVEl5dmk1VXpSZTloa054U1lkZ25BWXplb0F6am1uemxUTS81R0s4cURNTm1ZQnptYnpRSG1MbXhjaWIvWG1EQlRncEI3SDJNcDZUOG13TGdJMDg1YzNvQVU0Y3FCRWRVQUg5Mms5UjlOTVlsZWRHUDdqZ0Q0MGhmeGxweG9Iekx5RWMzL1FEanpVSXRjbTBDZUs5cHhLTzk0MnFBUDl2SU1McitBU1F1aUhoMG00bEE5VUZhWXZzYWpQVWpIVjN5THNhTHBWckN1eVlKZk5JMnl0R25ZMHh2cW1YYWZ3OEVwMFk0ZXNCb1lPRytXdDd1Q1dEK09wR045dDRJZ09kaldsNytqUmcvdG8xb2RONUpHRE42YVVXTnZ3VVM1MFUwZW5oWnlrZFpiNWNLWU1iZ1NFYm5QWVh4V0xGVzVqMGFBR1ZOSWhqdEhWdWJib1UyK3hZSUxpdUlYdlRJdVJnN2VFcGh5M25BckFHUml5NStKb0RrUTBxcDZGNk1MNXRITGZxUWF1Qi9BNVZhcTc4eHJzMkxWblMvYWlCeGxOTFpZRDR3Yloxb1JWK0w4V0MrMGltNkZlUEs2RVgvMDFQcHRab0hYS1Z3SFI2SHNoNXFxRjRmekIrOXI2ODZyUGRUK1NjREZhNE96ODJkY0xLdkJpdnQyTnBYblZwMGF1WXBaTEdPYmZPVVBjZHhITWR4SE1keEhNZHhITWR4SEsvRGlaZXZ6aVhiTjFha2RQdVdERnhWcUNqWnNvWU1mTjllVVRKeUtobDRyWW1pcFBDd3NvcTZKRENDaldXVHpuOEJpWXRsbFdzU3dIdE5aSk5oTlVENWxySkoxOUVZVitiSkhvdi9FZjI0UURiWllQYml2M0V0MG1vMHhyVUZza2poblJnL0ZNc21XODVhL0MrL1JRcCt4N2pHbDBVV1Q4UFFSamJaWVFFd3I3ZHNVdm81a0xqSWwwVzh1NVBBcjIxbEVXOG5qUElSc2ttYnI0SDR1YkxLbFJqZnRaWk50bzhENVp2TEpsMSt4RGpkbDAwdVN3SWZOcGROTmw4QUpEZjNaSkgyRTRIa1ZiSkozblcxd1B1RnNzbmdTbURPcHJKSng5RVkxK1hKSW9XM1kzeGFJcHRzTkJ1WXNiWnMwdUpuaktzTFpaRzhCekJHRjhzbTI4MEJwbzZTVGZ3ZmdlVGxkcDA1YnNYNHJaMXNza3NWTUcrd2JOSnk4U3laTnZGdVRBTGZkcEJOZHNCSXJpR2JkUHdPaUo4bnExeFpDM3pXV2piWkxBNVViUzJiZFBzVjR6eGZOcmt5QUQ0c2trM1dud3NzM0VJMmFUVUg0M3BQRmltOENlT1RJdGxrblhuQURNcyt2UDJGOFhTWGp1bDFpRVh5MndyamZxckRqMit2b1VoWll6b1plRHVtS05tOGlneDgwMVpSMHYwdk1uQlh2aUpsMkUwUHJjNERwNWVxRG83ak9JN2pPSTdqT0k3emYzMWhGV0s1c1JvMEFBQUFBRWxGVGtTdVFtQ0MiLCAic2l6ZXMiOiAiMTgweDE4MCIsICJ0eXBlIjogImltYWdlL3BuZyIgfSwgeyAic3JjIjogImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBQUFBQUJ5YWFaYkFBQUJaa2xFUVZSNEFlM1VNMkJmUVJ3SDhHOXQyemJIMnJidGJ1M2F0VEcyN0xHVEtiWnQyN2J4WjZ3TDc5MXdMOVpuZXpqK2dMbkwySE1CK2xnN0N6NjVnN0FZL3NsTXFySUF3SUxmRWk5UWJDWGYwZXRtY3dDR0xFMHBPZ3hnZDFiZWVsRFdsY1p0QUxBcXFIb3ZocmxWNVFIQXRPNDFCUDQxdmdCd3BWNFB3eTIwa1gvRGRhbjdFZ2pzekVwZmdnVVJSUWVwMTlrVjd3dUxqNEZCUzZxSzd4S0RCUmpwYkZPOTdBRllWdWRVSGkwcTNReWFTYWNuMkc1S2MyUi9RRnVUclN6WkFiYUFqa1FJdUVrc215TVhnT2x4dzJkUUZ2eVMrTUNLaEUvb2VzMURERWRDdG9HRWoyY0FDUmtKSCtlQUt6MGhJK0g3d2h4UVN3OXd5RDFPd3BjV0FvYnptUmZwSXh3R3NlY1FHSlllWFlaeE5lL1F3d0Vud2NXbWhtaFFoSVBMN3V0OWJrZko3ME9NcDdXMkVHTk5kdTVlaU9FbStic0EvQmI4bHZoQUROSkMrWkY2NUVkYXFBaUhTQXZsdHRoSjltQjZoY3krdmFHRWNBWVgzZlFCeHBpenVnRTJjNVlFdWRHRG5nQUFBQUJKUlU1RXJrSmdnZz09IiwgInNpemVzIjogIjQ4eDQ4IiwgInR5cGUiOiAiaW1hZ2UvcG5nIiB9LCB7ICJzcmMiOiAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFnQ0FBQUFBQldFU1VvQUFBQVhVbEVRVlI0MnQyU1FRNkFNQWdFNTVQNy82ZU1GMk5ySXZSaWF1SWNGemJBQnZhZ0FGb3FHb2dDejBvMDBYQVJoVWxSVlNZMDBac2p6RVExVFFPcVVJd1lsbkpKb0RrSytsaUcrSHM4V1RkMFJGM1Y4MkVkTlcva3NPc2xEcFJPaFh0LzNMNVlBQUFBQUVsRlRrU3VRbUNDIiwgInNpemVzIjogIjMyeDMyIiwgInR5cGUiOiAiaW1hZ2UvcG5nIiB9IF19O2NvbnN0IGJsb2IgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QpXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vanNvbicgfSk7IGNvbnN0IG1hbmlmZXN0VVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsgbGluay5yZWwgPSAnbWFuaWZlc3QnOyBsaW5rLmhyZWYgPSBtYW5pZmVzdFVSTDsgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTs8L3NjcmlwdD48dGl0bGU+WC1ZLVo8L3RpdGxlPjxzdHlsZT5odG1sLCBib2R5IHsgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTsgaGVpZ2h0OiAxMDAlOyB9IGJvZHkgeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyB9IGNhbnZhcyB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB0b3VjaC1hY3Rpb246IG5vbmU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfSBwcmUgeyBtYXJnaW46IDA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgY29sb3I6IHdoaXRlOyBwYWRkaW5nOiAxZW07IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC41KTsgfSAubm8tc2VsZWN0IHsgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50OyB1c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50OyB9IC5oaWRkZW4geyBkaXNwbGF5OiBub25lOyB9PC9zdHlsZT48L2hlYWQ+PGJvZHk+PGNhbnZhcyBjbGFzcz0ibm8tc2VsZWN0Ij48L2NhbnZhcz48cHJlIGNsYXNzPSJoaWRkZW4gbm8tc2VsZWN0Ij48L3ByZT48c2NyaXB0PmxldCBoYXNoID0gJzB4MGU0MGNhNmFlNjZiYTAyYzFlODgxMTY3NWMwYzFhNTU2ZGYwMTI5MTA1ZGMyYzFjMjI5NzQwYjQ1MjM4MDNiZic7bGV0IHRva2VuSWQgPSAnMTgnOy8vIGVydGRmZ2N2Yi54eXoKY2xhc3MgRCBleHRlbmRzIGNsYXNze3QxPTEvMioqMzI7aTEoKXt9ZmxvYXQodD0xKXtyZXR1cm4gdGhpcy5pMSgpKnRoaXMudDEqdH1uMSh0KXtyZXR1cm4gdGhpcy5mbG9hdCgpPHR9YTEodD0xKXtyZXR1cm4gMioodGhpcy5pMSgpKnRoaXMudDEtLjUpKnR9aDEodCxlKXt0PXRoaXMuczEodCxlKTtyZXR1cm4gdGhpcy5mbG9hdCgpPC41P3Q6LXR9czEodCxlKXtyZXR1cm4gdGhpcy5mbG9hdCgpKihlLXQpK3R9bzEodCxlKXtlPSgwfGUpLSh0fD0wKTtyZXR1cm4gZT90K3RoaXMuaTEoKSVlOnR9bDEodCxlKXtlPShlPj4+MCktKHQ+Pj49MCk7cmV0dXJuIGU/dCt0aGlzLmkxKCklZTp0fXUxKCl7bGV0IHQ7cmV0dXJuKHQ9MT09YXJndW1lbnRzLmxlbmd0aCYmQXJyYXkuaXNBcnJheShhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTpbLi4uYXJndW1lbnRzXSlbdGhpcy5vMSgwLHQubGVuZ3RoKV19ZjEoZSl7Zm9yKGxldCB0PWUubGVuZ3RoLTE7MDx0O3QtLSl7dmFyIHI9TWF0aC5mbG9vcih0aGlzLmZsb2F0KCkqKHQrMSkpO1tlW3RdLGVbcl1dPVtlW3JdLGVbdF1dfXJldHVybiBlfXYxKGUpe3ZhciB0PU9iamVjdC5rZXlzKGUpLm1hcCh0PT5bZVt0XS53ZWlnaHQsdF0pO3JldHVybiB0aGlzLk0xKHQpfU0xKHQpe3ZhciBlPXQubWFwKHQ9PnRbMF0pLHI9dC5tYXAodD0+dFsxXSksaT1bXTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpW3RdPWVbdF0rKGlbdC0xXXx8MCk7dmFyIG49aVtpLmxlbmd0aC0xXSp0aGlzLmZsb2F0KCk7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0KyspaWYoaVt0XT49bilyZXR1cm4gclt0XX19e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5idWZmZXI9bmV3IFVpbnQzMkFycmF5KDQpLHRoaXMuc2VlZCh0KX1EMSgpe3JldHVybiBuZXcgRCh0aGlzLmJ1ZmZlcil9TjEoKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIuYnVmZmVyKX1pMSgpe3ZhciB0PXRoaXMuYnVmZmVyLGU9KHRbMF0rdFsxXT4+PjApK3RbM10+Pj4wO3JldHVybiB0WzNdPXRbM10rMT4+PjAsdFswXT10WzFdXnRbMV0+Pj45LHRbMV09dFsyXSsodFsyXTw8Myk+Pj4wLHRbMl09KHRbMl08PDIxfHRbMl0+Pj4xMSkrZT4+PjAsZX1zZWVkKHQpe3JldHVybiB0aGlzLmJ1ZmZlci5zZXQodCksdGhpc319Y2xhc3MgcDF7Y29uc3RydWN0b3IodD0xZTMpe3RoaXMuUjE9dCx0aGlzLmZwcz0wLHRoaXMuZnJhbWVzPTAsdGhpcy5fMT0wfWQxKHQpe3JldHVybiB0Pj10aGlzLl8xK3RoaXMuUjEmJih0aGlzLmZwcz10aGlzLmZyYW1lcyp0aGlzLlIxLyh0LXRoaXMuXzEpLHRoaXMuXzE9dCx0aGlzLmZyYW1lcz0wKSx0aGlzLmZyYW1lcysrLHRoaXMuZnBzfX1mdW5jdGlvbiBuKHQsZSxyLGkpe3JldHVybiBNYXRoLmFicyhyLXQpK01hdGguYWJzKGktZSl9ZnVuY3Rpb24gYSh0LGUscixpKXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnMoci10KSxNYXRoLmFicyhpLWUpKX1mdW5jdGlvbiB1MSh0LGUscil7cmV0dXJuIHQ8ZT9lOnI8dD9yOnR9ZnVuY3Rpb24gZjEodCxlLHIpe3I9dTEoKHItdCkvKGUtdCksMCwxKTtyZXR1cm4gcipyKnIqKHIqKDYqci0xNSkrMTApfWNsYXNzIE57Y29uc3RydWN0b3IodCxlLHIsaSxuPXQuRkxPQVQpe3RoaXMudzE9dCx0aGlzLm0xPWUsdGhpcy5iMT1yLHRoaXMubnVtRWxlbWVudHM9aSx0aGlzLnR5cGU9bix0aGlzLnR5cGU9PXQuRkxPQVQ/dGhpcy5nMT1uZXcgRmxvYXQzMkFycmF5KGkqcik6dGhpcy50eXBlPT10LlNIT1JUJiYodGhpcy5nMT1uZXcgSW50MTZBcnJheShpKnIpKSx0aGlzLmJ1ZmZlcj10LmNyZWF0ZUJ1ZmZlcigpLHRoaXMubG9jYXRpb249LTF9ejEodCl7cmV0dXJuIHRoaXMubG9jYXRpb249dGhpcy53MS5nZXRBdHRyaWJMb2NhdGlvbih0LHRoaXMubTEpLHRoaXMubG9jYXRpb259QTEodCl7dGhpcy53MS52ZXJ0ZXhBdHRyaWJEaXZpc29yKHRoaXMubG9jYXRpb24sdCl9ZW5hYmxlKCl7dmFyIHQ9dGhpcy53MTt0LmJpbmRCdWZmZXIodC5BUlJBWV9CVUZGRVIsdGhpcy5idWZmZXIpLHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkodGhpcy5sb2NhdGlvbiksdGhpcy50eXBlPT10LkZMT0FUP3QudmVydGV4QXR0cmliUG9pbnRlcih0aGlzLmxvY2F0aW9uLHRoaXMuYjEsdGhpcy50eXBlLCExLDAsMCk6dGhpcy50eXBlPT10LlNIT1JUJiZ0LnZlcnRleEF0dHJpYklQb2ludGVyKHRoaXMubG9jYXRpb24sdGhpcy5iMSx0aGlzLnR5cGUsMCwwKX1idWZmZXJEYXRhKHQ9dGhpcy53MS5EWU5BTUlDX0RSQVcpe3ZhciBlPXRoaXMudzE7ZS5iaW5kQnVmZmVyKGUuQVJSQVlfQlVGRkVSLHRoaXMuYnVmZmVyKSxlLmJ1ZmZlckRhdGEoZS5BUlJBWV9CVUZGRVIsdGhpcy5nMSx0KX19ZnVuY3Rpb24geDEoZSx0KXt0LnRvQmxvYih0PT5jMSh0LGUpKX1sZXQgYzE9KCgpPT57bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3JldHVybiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHIpLHIuc3R5bGUuZGlzcGxheT0ibm9uZSIsZnVuY3Rpb24odCxlKXtyLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTCh0KSxyLmRvd25sb2FkPWUsci5jbGljaygpfX0pKCk7ZnVuY3Rpb24gbSh0LGUscil7cj10LmNyZWF0ZVNoYWRlcihyKTtpZih0LnNoYWRlclNvdXJjZShyLGUpLHQuY29tcGlsZVNoYWRlcihyKSwhMCE9PXQuZ2V0U2hhZGVyUGFyYW1ldGVyKHIsdC5DT01QSUxFX1NUQVRVUykpdGhyb3cgdC5nZXRTaGFkZXJJbmZvTG9nKHIpO3JldHVybiByfWNsYXNzIGIxe3cxO08xO2oxO2NvbnN0cnVjdG9yKGUscil7dGhpcy53MT1lLHRoaXMuTzE9cix0aGlzLmoxPVtdLHRoaXMuRTE9W107dmFyIGk9ZS5nZXRQcm9ncmFtUGFyYW1ldGVyKHIsZS5BQ1RJVkVfVU5JRk9STVMpO2ZvcihsZXQgdD0wO3Q8aTsrK3Qpe3ZhciBuPWUuZ2V0QWN0aXZlVW5pZm9ybShyLHQpLGE9bi5uYW1lLGg9ZS5nZXRVbmlmb3JtTG9jYXRpb24ocixhKTt0aGlzLmoxW2FdPXRoaXMuI0gxKG4udHlwZSxoKSx0aGlzLkUxW2FdPWh9dmFyIHM9ZS5nZXRQcm9ncmFtUGFyYW1ldGVyKHIsZS5BQ1RJVkVfQVRUUklCVVRFUyk7Zm9yKGxldCB0PTA7dDxzOysrdCl7dmFyIG89ZS5nZXRBY3RpdmVBdHRyaWIocix0KS5uYW1lLGw9ZS5nZXRBdHRyaWJMb2NhdGlvbihyLG8pO3RoaXMuRTFbb109bH19c2V0KHQsLi4uZSl7dGhpcy5qMVt0XSYmdGhpcy5qMVt0XSguLi5lKX0jSDEodCxuKXtsZXQgYT10aGlzLncxO3N3aXRjaCh0KXtjYXNlIGEuQk9PTDpjYXNlIGEuSU5UOmNhc2UgYS5TQU1QTEVSXzJEOmNhc2UgYS5TQU1QTEVSXzJEX1JFQ1Q6Y2FzZSBhLlNBTVBMRVJfQ1VCRTpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGEudW5pZm9ybTFpKG4sdCksdGhpc307Y2FzZSBhLkZMT0FUOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYS51bmlmb3JtMWYobix0KSx0aGlzfTtjYXNlIGEuRkxPQVRfVkVDMjpyZXR1cm4gZnVuY3Rpb24odCxlKXthLnVuaWZvcm0yZihuLHQsZSl9O2Nhc2UgYS5GTE9BVF9WRUMzOnJldHVybiBmdW5jdGlvbih0LGUscil7YS51bmlmb3JtM2Yobix0LGUscil9O2Nhc2UgYS5GTE9BVF9WRUM0OnJldHVybiBmdW5jdGlvbih0LGUscixpKXthLnVuaWZvcm00ZihuLHQsZSxyLGkpfTtjYXNlIGEuRkxPQVRfTUFUMzpyZXR1cm4gZnVuY3Rpb24odCl7YS51bmlmb3JtTWF0cml4M2Z2KG4sITEsdCl9O2Nhc2UgYS5GTE9BVF9NQVQ0OnJldHVybiBmdW5jdGlvbih0KXthLnVuaWZvcm1NYXRyaXg0ZnYobiwhMSx0KX19cmV0dXJuIGZ1bmN0aW9uKCl7dGhyb3ciRG9uXHUyMDE5dCBrbm93IGhvdyB0byBzZXQgdHlwZTogIit0fX1GMSgpe3RoaXMudzEudXNlUHJvZ3JhbSh0aGlzLk8xKX1TMSgpe3ZhciB0PXRoaXMudzEsZT10aGlzLk8xO2lmKHQubGlua1Byb2dyYW0oZSksITAhPT10LmdldFByb2dyYW1QYXJhbWV0ZXIoZSx0LkxJTktfU1RBVFVTKSl0aHJvdyB0LmdldFByb2dyYW1JbmZvTG9nKGUpO3JldHVybiEwfX1sZXQgUD1GbG9hdDMyQXJyYXk7bGV0IHYxPXtUMTpmdW5jdGlvbih0LGUscixpLG4pe249bnx8bmV3IFAoMTYpO3ZhciB0PU1hdGgudGFuKC41Kk1hdGguUEktLjUqdCksYT0xLyhyLWkpO3JldHVybiBuWzBdPXQvZSxuWzFdPTAsblsyXT0wLG5bM109MCxuWzRdPTAsbls1XT10LG5bNl09MCxuWzddPTAsbls4XT0wLG5bOV09MCxuWzEwXT0ocitpKSphLG5bMTFdPS0xLG5bMTJdPTAsblsxM109MCxuWzE0XT1yKmkqYSoyLG5bMTVdPTAsbn0saWRlbnRpdHk6ZnVuY3Rpb24odCl7cmV0dXJuKHQ9dHx8bmV3IFAoMTYpKVswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9LEkxOmZ1bmN0aW9uKHQsZSxyLGksbil7bj1ufHxuZXcgUCgxNik7dmFyIGE9dFswXSxoPXRbMV0scz10WzJdLG89dFszXSxsPXRbNF0sdT10WzVdLGY9dFs2XSxjPXRbN10sdj10WzhdLE09dFs5XSx5PXRbMTBdLEQ9dFsxMV0sTj10WzEyXSxSPXRbMTNdLF89dFsxNF0sZD10WzE1XTtyZXR1cm4gdCE9PW4mJihuWzBdPWEsblsxXT1oLG5bMl09cyxuWzNdPW8sbls0XT1sLG5bNV09dSxuWzZdPWYsbls3XT1jLG5bOF09dixuWzldPU0sblsxMF09eSxuWzExXT1EKSxuWzEyXT1hKmUrbCpyK3YqaStOLG5bMTNdPWgqZSt1KnIrTSppK1IsblsxNF09cyplK2Yqcit5KmkrXyxuWzE1XT1vKmUrYypyK0QqaStkLG59LEwxOmZ1bmN0aW9uKHQsZSxyKXtyPXJ8fG5ldyBQKDE2KTt2YXIgaT10WzRdLG49dFs1XSxhPXRbNl0saD10WzddLHM9dFs4XSxvPXRbOV0sbD10WzEwXSx1PXRbMTFdLGY9TWF0aC5jb3MoZSksZT1NYXRoLnNpbihlKTtyZXR1cm4gcls0XT1mKmkrZSpzLHJbNV09ZipuK2UqbyxyWzZdPWYqYStlKmwscls3XT1mKmgrZSp1LHJbOF09ZipzLWUqaSxyWzldPWYqby1lKm4sclsxMF09ZipsLWUqYSxyWzExXT1mKnUtZSpoLHQhPT1yJiYoclswXT10WzBdLHJbMV09dFsxXSxyWzJdPXRbMl0sclszXT10WzNdLHJbMTJdPXRbMTJdLHJbMTNdPXRbMTNdLHJbMTRdPXRbMTRdLHJbMTVdPXRbMTVdKSxyfSxHMTpmdW5jdGlvbih0LGUscil7cj1yfHxuZXcgUCgxNik7dmFyIGk9dFswXSxuPXRbMV0sYT10WzJdLGg9dFszXSxzPXRbOF0sbz10WzldLGw9dFsxMF0sdT10WzExXSxmPU1hdGguY29zKGUpLGU9TWF0aC5zaW4oZSk7cmV0dXJuIHJbMF09ZippLWUqcyxyWzFdPWYqbi1lKm8sclsyXT1mKmEtZSpsLHJbM109ZipoLWUqdSxyWzhdPWYqcytlKmkscls5XT1mKm8rZSpuLHJbMTBdPWYqbCtlKmEsclsxMV09Zip1K2UqaCx0IT09ciYmKHJbNF09dFs0XSxyWzVdPXRbNV0scls2XT10WzZdLHJbN109dFs3XSxyWzEyXT10WzEyXSxyWzEzXT10WzEzXSxyWzE0XT10WzE0XSxyWzE1XT10WzE1XSkscn0scTE6ZnVuY3Rpb24odCxlLHIpe3I9cnx8bmV3IFAoMTYpO3ZhciBpPXRbMF0sbj10WzFdLGE9dFsyXSxoPXRbM10scz10WzRdLG89dFs1XSxsPXRbNl0sdT10WzddLGY9TWF0aC5jb3MoZSksZT1NYXRoLnNpbihlKTtyZXR1cm4gclswXT1mKmkrZSpzLHJbMV09ZipuK2UqbyxyWzJdPWYqYStlKmwsclszXT1mKmgrZSp1LHJbNF09ZipzLWUqaSxyWzVdPWYqby1lKm4scls2XT1mKmwtZSphLHJbN109Zip1LWUqaCx0IT09ciYmKHJbOF09dFs4XSxyWzldPXRbOV0sclsxMF09dFsxMF0sclsxMV09dFsxMV0sclsxMl09dFsxMl0sclsxM109dFsxM10sclsxNF09dFsxNF0sclsxNV09dFsxNV0pLHJ9LHNjYWxlOmZ1bmN0aW9uKHQsZSxyLGksbil7cmV0dXJuKG49bnx8bmV3IFAoMTYpKVswXT1lKnRbMF0sblsxXT1lKnRbMV0sblsyXT1lKnRbMl0sblszXT1lKnRbM10sbls0XT1yKnRbNF0sbls1XT1yKnRbNV0sbls2XT1yKnRbNl0sbls3XT1yKnRbN10sbls4XT1pKnRbOF0sbls5XT1pKnRbOV0sblsxMF09aSp0WzEwXSxuWzExXT1pKnRbMTFdLHQhPT1uJiYoblsxMl09dFsxMl0sblsxM109dFsxM10sblsxNF09dFsxNF0sblsxNV09dFsxNV0pLG59LG11bHRpcGx5OmZ1bmN0aW9uKHQsZSxyKXtyPXJ8fG5ldyBQKDE2KTt2YXIgaT1lWzBdLG49ZVsxXSxhPWVbMl0saD1lWzNdLHM9ZVs0XSxvPWVbNV0sbD1lWzZdLHU9ZVs3XSxmPWVbOF0sYz1lWzldLHY9ZVsxMF0sTT1lWzExXSx5PWVbMTJdLEQ9ZVsxM10sTj1lWzE0XSxlPWVbMTVdLFI9dFswXSxfPXRbMV0sZD10WzJdLHc9dFszXSxtPXRbNF0scD10WzVdLHg9dFs2XSxiPXRbN10sZz10WzhdLHo9dFs5XSxBPXRbMTBdLGs9dFsxMV0sTz10WzEyXSxqPXRbMTNdLEU9dFsxNF0sdD10WzE1XTtyZXR1cm4gclswXT1pKlIrbiptK2EqZytoKk8sclsxXT1pKl8rbipwK2EqeitoKmosclsyXT1pKmQrbip4K2EqQStoKkUsclszXT1pKncrbipiK2EqaytoKnQscls0XT1zKlIrbyptK2wqZyt1Kk8scls1XT1zKl8rbypwK2wqeit1Kmoscls2XT1zKmQrbyp4K2wqQSt1KkUscls3XT1zKncrbypiK2wqayt1KnQscls4XT1mKlIrYyptK3YqZytNKk8scls5XT1mKl8rYypwK3YqeitNKmosclsxMF09ZipkK2MqeCt2KkErTSpFLHJbMTFdPWYqdytjKmIrdiprK00qdCxyWzEyXT15KlIrRCptK04qZytlKk8sclsxM109eSpfK0QqcCtOKnorZSpqLHJbMTRdPXkqZCtEKngrTipBK2UqRSxyWzE1XT15KncrRCpiK04qaytlKnQscn0saW52ZXJzZTpmdW5jdGlvbih0LGUpe2U9ZXx8bmV3IFAoMTYpO3ZhciByPXRbMF0saT10WzFdLG49dFsyXSxhPXRbM10saD10WzRdLHM9dFs1XSxvPXRbNl0sbD10WzddLHU9dFs4XSxmPXRbOV0sYz10WzEwXSx2PXRbMTFdLE09dFsxMl0seT10WzEzXSxEPXRbMTRdLE49YyoodD10WzE1XSksUj1EKnYsXz1vKnQsZD1EKmwsdz1vKnYsbT1jKmwscD1uKnQseD1EKmEsYj1uKnYsZz1jKmEsej1uKmwsQT1vKmEsaz11KnksTz1NKmYsaj1oKnksRT1NKnMsSD1oKmYsRj11KnMsUz1yKnksVD1NKmksST1yKmYsTD11KmksRz1yKnMscT1oKmksWD1OKnMrZCpmK3cqeS0oUipzK18qZittKnkpLEM9UippK3AqZitnKnktKE4qaSt4KmYrYip5KSxzPTEvKHIqWCtoKkMrdSooeT1fKmkreCpzK3oqeS0oZCppK3AqcytBKnkpKStNKihpPW0qaStiKnMrQSpmLSh3KmkrZypzK3oqZikpKTtyZXR1cm4gZVswXT1zKlgsZVsxXT1zKkMsZVsyXT1zKnksZVszXT1zKmksZVs0XT1zKihSKmgrXyp1K20qTS0oTipoK2QqdSt3Kk0pKSxlWzVdPXMqKE4qcit4KnUrYipNLShSKnIrcCp1K2cqTSkpLGVbNl09cyooZCpyK3AqaCtBKk0tKF8qcit4KmgreipNKSksZVs3XT1zKih3KnIrZypoK3oqdS0obSpyK2IqaCtBKnUpKSxlWzhdPXMqKGsqbCtFKnYrSCp0LShPKmwraip2K0YqdCkpLGVbOV09cyooTyphK1MqditMKnQtKGsqYStUKnYrSSp0KSksZVsxMF09cyooaiphK1QqbCtHKnQtKEUqYStTKmwrcSp0KSksZVsxMV09cyooRiphK0kqbCtxKnYtKEgqYStMKmwrRyp2KSksZVsxMl09cyooaipjK0YqRCtPKm8tKEgqRCtrKm8rRSpjKSksZVsxM109cyooSSpEK2sqbitUKmMtKFMqYytMKkQrTypuKSksZVsxNF09cyooUypvK3EqRCtFKm4tKEcqRCtqKm4rVCpvKSksZVsxNV09cyooRypjK0gqbitMKm8tKEkqbytxKmMrRipuKSksZX0sWDE6ZnVuY3Rpb24odCxlLHIsaSxuLGEsaCl7cmV0dXJuKGg9aHx8bmV3IFAoMTYpKVswXT0yLyhlLXQpLGhbMV09MCxoWzJdPTAsaFszXT0wLGhbNF09MCxoWzVdPTIvKGktciksaFs2XT0wLGhbN109MCxoWzhdPTAsaFs5XT0wLGhbMTBdPTIvKG4tYSksaFsxMV09MCxoWzEyXT0odCtlKS8odC1lKSxoWzEzXT0ocitpKS8oci1pKSxoWzE0XT0obithKS8obi1hKSxoWzE1XT0xLGh9fTtmdW5jdGlvbiB1KHQsZSxyKXtyZXR1cm4gdCsoZS10KSpyfWZ1bmN0aW9uIGYodCxlLHIsaSl7dFswXT11KGVbMF0sclswXSxpKSx0WzFdPXUoZVsxXSxyWzFdLGkpLHRbMl09dShlWzJdLHJbMl0saSl9ZnVuY3Rpb24gYyh0LGUpe3RbMF09ZVsxMl0sdFsxXT1lWzEzXSx0WzJdPWVbMTRdfWZ1bmN0aW9uIHYodCxlKXt2YXIgcj1lWzBdK2VbNV0rZVsxMF07MDxyPyhyPS41L01hdGguc3FydChyKzEpLHRbM109LjI1L3IsdFswXT0oZVs2XS1lWzldKSpyLHRbMV09KGVbOF0tZVsyXSkqcix0WzJdPShlWzFdLWVbNF0pKnIpOmVbMF0+ZVs1XSYmZVswXT5lWzEwXT8ocj0yKk1hdGguc3FydCgxK2VbMF0tZVs1XS1lWzEwXSksdFszXT0oZVs2XS1lWzldKS9yLHRbMF09LjI1KnIsdFsxXT0oZVsxXStlWzRdKS9yLHRbMl09KGVbOF0rZVsyXSkvcik6ZVs1XT5lWzEwXT8ocj0yKk1hdGguc3FydCgxK2VbNV0tZVswXS1lWzEwXSksdFszXT0oZVs4XS1lWzJdKS9yLHRbMF09KGVbMV0rZVs0XSkvcix0WzFdPS4yNSpyLHRbMl09KGVbNl0rZVs5XSkvcik6KHI9MipNYXRoLnNxcnQoMStlWzEwXS1lWzBdLWVbNV0pLHRbM109KGVbMV0tZVs0XSkvcix0WzBdPShlWzhdK2VbMl0pL3IsdFsxXT0oZVs2XStlWzldKS9yLHRbMl09LjI1KnIpfWZ1bmN0aW9uIE0odCxlKXt0WzBdPU1hdGguc3FydChlWzBdKmVbMF0rZVsxXSplWzFdK2VbMl0qZVsyXSksdFsxXT1NYXRoLnNxcnQoZVs0XSplWzRdK2VbNV0qZVs1XStlWzZdKmVbNl0pLHRbMl09TWF0aC5zcXJ0KGVbOF0qZVs4XStlWzldKmVbOV0rZVsxMF0qZVsxMF0pfWZ1bmN0aW9uIHkodCxlLHIsaSl7dmFyIG49ZVswXSxhPWVbMV0saD1lWzJdLGU9ZVszXSxzPW4rbixvPWErYSxsPWgraCx1PW4qcyxmPW4qbyxuPW4qbCxjPWEqbyxhPWEqbCxoPWgqbCxzPWUqcyxvPWUqbyxlPWUqbDtyZXR1cm4gdFswXT0oMS0oYytoKSkqaVswXSx0WzFdPShmK2UpKmlbMF0sdFsyXT0obi1vKSppWzBdLHRbM109MCx0WzRdPShmLWUpKmlbMV0sdFs1XT0oMS0odStoKSkqaVsxXSx0WzZdPShhK3MpKmlbMV0sdFs3XT0wLHRbOF09KG4rbykqaVsyXSx0WzldPShhLXMpKmlbMl0sdFsxMF09KDEtKHUrYykpKmlbMl0sdFsxMV09MCx0WzEyXT1yWzBdLHRbMTNdPXJbMV0sdFsxNF09clsyXSx0WzE1XT0xLHR9ZnVuY3Rpb24gZzEoZSxyLGkpe3ZhciBuLGEsaD1bMCwwLDBdLHM9WzAsMCwwXSx0PVswLDAsMF0saD0oYyhoLGUpLGMocyxyKSxmKHQsaCxzLGkpLFsxLDEsMV0pLHM9WzEsMSwxXSxvPVsxLDEsMV0saD0oTShoLGUpLE0ocyxyKSxmKG8saCxzLGkpLFswLDAsMCwxXSkscz1bMCwwLDAsMV0sbD1bMCwwLDAsMV07dihoLGUpLHYocyxyKTt7ZT1sLHI9aCxoPXMscz1pO2xldCB0PXJbMF0qaFswXStyWzFdKmhbMV0rclsyXSpoWzJdK3JbM10qaFszXTt0PDAmJihoPVstaFswXSwtaFsxXSwtaFsyXSwtaFszXV0sdD0tdCksLjk5OTU8dD8oZVswXT11KHJbMF0saFswXSxzKSxlWzFdPXUoclsxXSxoWzFdLHMpLGVbMl09dShyWzJdLGhbMl0scyksZVszXT11KHJbM10saFszXSxzKSk6KGk9TWF0aC5hY29zKHQpLG49TWF0aC5zcXJ0KDEtdCp0KSxhPU1hdGguc2luKCgxLXMpKmkpL24scz1NYXRoLnNpbihzKmkpL24sZVswXT1yWzBdKmEraFswXSpzLGVbMV09clsxXSphK2hbMV0qcyxlWzJdPXJbMl0qYStoWzJdKnMsZVszXT1yWzNdKmEraFszXSpzKX1pPW5ldyBGbG9hdDMyQXJyYXkoMTYpO3JldHVybiB5KGksbCx0LG8pLGl9ZnVuY3Rpb24gbyh0LGUscixpLG4sYSl7dD10LGU9ZSxyPXIsdC89MixlLz0yLHIvPTIsbz1NYXRoLmNvcyh0KSx0PU1hdGguc2luKHQpLGg9TWF0aC5jb3MoZSksZT1NYXRoLnNpbihlKSxzPU1hdGguY29zKHIpLHI9TWF0aC5zaW4ocik7dmFyIGgscyxvPVt0Kmgqcy1vKmUqcixvKmUqcyt0KmgqcixvKmgqci10KmUqcyxvKmgqcyt0KmUqcl07cmV0dXJuIHkobmV3IEZsb2F0MzJBcnJheSgxNiksbyxbaSxuLGFdLFsxLDEsMV0pfWZ1bmN0aW9uIHoxKGkpe2xldCBuPXt4OjAseTowLHB4OjAsQzE6MCxwcmVzc2VkOiExLHVwZGF0ZTpmdW5jdGlvbigpe3RoaXMucHg9dGhpcy54LHRoaXMuQzE9dGhpcy55fSxQMTooKT0+e30scmVsZWFzZTooKT0+e30sbW92ZTooKT0+e319O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdD0+e3ZhciBlLHI7ZT10LnBhZ2VYLHQ9dC5wYWdlWSxyPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbi54PWUtci5sZWZ0LG4ueT10LXIudG9wfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHQ9Pnt2YXIgZSxyO2U9dC5wYWdlWCx0PXQucGFnZVksbi5wcmVzc2VkPSEwLHI9aS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuLng9ZS1yLmxlZnQsbi55PXQtci50b3B9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHQ9Pnt0LnBhZ2VYLG4ucHJlc3NlZD0hMX0pLG59bGV0IE0xPXtVMToxMixXMToxOCxCMTo2LFYxOjE4LFkxOjIyLFoxOjI0LEoxOnsiICI6W10sIlx1MjE5MSI6W1swLDEwLDYsMTgsMTIsMTBdLFs2LDE4LDYsMF1dLCJcdTIxOTAiOltbNiwzLDAsOSw2LDE1XSxbMCw5LDEyLDldXSwiXHUyMTkzIjpbWzAsOCw2LDAsMTIsOF0sWzYsMCw2LDE4XV0sIlx1MjE5MiI6W1s2LDMsMTIsOSw2LDE1XSxbMCw5LDEyLDldXSwiXHUyMjFhIjpbWzAsMywzLDAsNiwyMCwxMywyMF1dLCJcdTAzYzAiOltbMywwLDQsMTJdLFs5LDAsOSwxMl0sWzAsMTAsNCwxMiw5LDEyLDEyLDE0XV0sIlx1MjMwMiI6W1swLDAsNiwxNSwxMiwwLDAsMF1dLCJceGI1IjpbWzAsLTcsMiwxMV0sWzEsMiw2LDAsMTAsMiwxMSwxMV0sWzEwLDIsMTMsMF1dLCJceGIwIjpbWzYsMTYsNCwxOCw0LDIxLDYsMjMsOSwyMywxMSwyMSwxMSwxOCw5LDE2LDYsMTZdXSwiXHUwM2E5IjpbWzAsMCw0LDAsMSw3LDEsMTIsNCwxNiw5LDE2LDEyLDEyLDEyLDcsOSwwLDEzLDBdXSwiXHUwM2M2IjpbWzAsLTcsMyw5LDcsMTIsMTEsMTEsMTMsOCwxMyw0LDEwLDAsNSwwLDIsM11dLCJcdTAzOTMiOltbMCwwLDQsMF0sWzIsMCwyLDE4XSxbMCwxOCwxMiwxOCwxMiwxNF1dLCJcdTAzOTgiOltbNywwLDIsMCwwLDQsMCwxMCwyLDE1LDUsMTgsMTAsMTgsMTIsMTQsMTIsOCwxMCwzLDcsMF0sWzAsOSwxMiw5XV0sIlx1MDNiYiI6W1swLDAsNiwxMF0sWzAsMTcsMywxOCw5LDIsMTIsMF1dLCIhIjpbWzYsNSw2LDE4XSxbNiwwXV0sJyInOltbMywxNCw0LDE4XSxbNywxNCw4LDE4XV0sIiMiOltbMiwwLDQsMThdLFs4LDAsMTAsMThdLFswLDEzLDEyLDEzXSxbMCw1LDEyLDVdXSwkOltbMCwzLDMsMSw5LDEsMTIsMywxMiw3LDksOSwzLDksMCwxMSwwLDE1LDMsMTcsOSwxNywxMiwxNV0sWzYsMTksNiwtMV1dLCIlIjpbWzAsMCwxMiwxOF0sWzYsMTQsMywxMCwwLDE0LDMsMTgsNiwxNF0sWzksOCwxMiw0LDksMCw2LDQsOSw4XV0sIiYiOltbMTIsNSw4LDAsMiwwLDAsNCw5LDE0LDcsMTgsMywxOCwxLDE0LDEyLDBdXSwiJyI6W1s1LDE0LDcsMTgsNywxOF1dLCIoIjpbWzEyLC0yLDYsNCw2LDE0LDEyLDIwXV0sIikiOltbMCwtMiw2LDQsNiwxNCwwLDIwXV0sIioiOltbMywyLDksMTZdLFszLDE2LDksMl0sWzAsOSwxMiw5XV0sIisiOltbNiwyLDYsMTZdLFswLDksMTIsOV1dLCIsIjpbWzQsLTQsNiwxLDYsMV1dLCItIjpbWzAsOSwxMiw5XV0sIi4iOltbNiwwXV0sIi8iOltbMCwwLDEyLDE4XV0sMDpbWzEsMiwxMSwxNl0sWzEyLDEyLDEyLDYsOSwwLDMsMCwwLDYsMCwxMiwzLDE4LDksMTgsMTIsMTJdXSwxOltbMywwLDksMF0sWzYsMCw2LDE4LDMsMTVdXSwyOltbMCwxNSwzLDE4LDksMTgsMTIsMTUsMTIsMTEsMiw1LDAsMCwxMiwwXV0sMzpbWzAsMTYsMywxOCw5LDE4LDEyLDE1LDEyLDExLDksOSwzLDldLFs5LDksMTIsNywxMiwzLDksMCwzLDAsMCwyXV0sNDpbWzksMCw5LDE4LDAsNiwxMiw2XV0sNTpbWzAsMiwzLDAsOSwwLDEyLDIsMTIsOCw5LDEwLDMsMTAsMCw5LDIsMTgsMTIsMThdXSw2OltbMCw3LDMsMTAsOSwxMCwxMiw3LDEyLDMsOSwwLDMsMCwwLDMsMCwxMCwzLDE1LDcsMThdXSw3OltbMCwxOCwxMiwxOCw0LDBdXSw4OltbMywxMCwwLDEzLDAsMTYsMywxOSw5LDE5LDEyLDE2LDEyLDEzLDksMTAsMywxMCwwLDcsMCwzLDMsMCw5LDAsMTIsMywxMiw3LDksMTBdXSw5OltbNSwwLDksMywxMiw4LDEyLDE1LDksMTgsMywxOCwwLDE1LDAsMTEsMyw4LDksOCwxMiwxMV1dLCI6IjpbWzYsNCw2LDRdLFs2LDE0LDYsMTRdXSwiOyI6W1s1LC00LDcsMCw3LDBdLFs3LDEwLDcsMTBdXSwiPCI6W1sxMiwwLDAsOSwxMiwxOF1dLCI9IjpbWzAsNCwxMiw0XSxbMCwxNCwxMiwxNF1dLCI+IjpbWzAsMCwxMiw5LDAsMThdXSwiPyI6W1swLDE1LDMsMTgsOSwxOCwxMiwxNSwxMiwxMSw2LDcsNiw0XSxbNiwwXV0sIkAiOltbMTIsMiwxMCwwLDMsMCwwLDMsMCwxNSwzLDE4LDksMTgsMTIsMTUsMTIsNiw1LDYsNSwxMywxMiwxM11dLEE6W1swLDAsNiwxOCwxMiwwXSxbMyw5LDksOV1dLEI6W1swLDAsMCwxOCw5LDE4LDEyLDE1LDEyLDEyLDksOSwwLDldLFs5LDksMTIsNiwxMiwzLDksMCwwLDBdXSxDOltbMTIsMyw5LDAsMywwLDAsMywwLDE1LDMsMTgsOSwxOCwxMiwxNV1dLEQ6W1swLDAsMCwxOCw5LDE4LDEyLDE1LDEyLDMsOSwwLDAsMF1dLEU6W1swLDAsMCwxOCwxMiwxOF0sWzAsOSw5LDldLFswLDAsMTIsMF1dLEY6W1swLDAsMCwxOCwxMiwxOF0sWzAsOSw5LDldXSxHOltbMTIsMTUsOSwxOCwzLDE4LDAsMTUsMCwzLDMsMCw5LDAsMTIsMywxMiw4LDUsOF1dLEg6W1swLDAsMCwxOF0sWzEyLDAsMTIsMThdLFswLDksMTIsOV1dLEk6W1syLDAsMTAsMF0sWzYsMCw2LDE4XSxbMiwxOCwxMCwxOF1dLEo6W1swLDIsMywwLDUsMCw4LDIsOCwxOF0sWzQsMTgsMTIsMThdXSxLOltbMCwwLDAsMThdLFsxMiwxOCwwLDZdLFszLDksMTIsMF1dLEw6W1swLDE4LDAsMCwxMiwwXV0sTTpbWzAsMCwwLDE4LDYsNSwxMiwxOCwxMiwwXV0sTjpbWzAsMCwwLDE4LDEyLDAsMTIsMThdXSxPOltbMywwLDAsMywwLDE1LDMsMTgsOSwxOCwxMiwxNSwxMiwzLDksMCwzLDBdXSxQOltbMCwwLDAsMTgsOSwxOCwxMiwxNSwxMiwxMSw5LDgsMCw4XV0sUTpbWzMsMCwwLDMsMCwxNSwzLDE4LDksMTgsMTIsMTUsMTIsMyw5LDAsMywwXSxbNyw1LDE0LC0yXV0sUjpbWzAsMCwwLDE4LDksMTgsMTIsMTUsMTIsMTEsOSw4LDAsOF0sWzcsOCwxMiwwXV0sUzpbWzAsMiwzLDAsOSwwLDEyLDMsMTIsNiw5LDksMyw5LDAsMTIsMCwxNSwzLDE4LDksMTgsMTIsMTZdXSxUOltbNiwwLDYsMThdLFswLDE4LDEyLDE4XV0sVTpbWzAsMTgsMCwzLDMsMCw5LDAsMTIsMywxMiwxOF1dLFY6W1swLDE4LDYsMCwxMiwxOF1dLFc6W1swLDE4LDMsMCw2LDE0LDksMCwxMiwxOF1dLFg6W1swLDAsMTIsMThdLFswLDE4LDEyLDBdXSxZOltbNiwwLDYsNywwLDE4XSxbNiw3LDEyLDE4XV0sWjpbWzAsMCwxMiwxOCwwLDE4XSxbMTIsMCwwLDBdXSwiWyI6W1sxMiwyMCw2LDIwLDYsLTIsMTIsLTJdXSwiXFwiOltbMCwxOCwxMiwwXV0sIl0iOltbMCwtMiw2LC0yLDYsMjAsMCwyMF1dLCJeIjpbWzAsNyw2LDE2LDEyLDddXSxfOltbMCwtNSwxOCwtNV1dLCJgIjpbWzUsMTgsNSwxOCw3LDE0XV0sYTpbWzAsMTAsNSwxMiwxMSwxMCwxMSwyLDgsMCw0LDAsMCwyLDAsNSwxMSw2XSxbMTEsMiwxMywwXV0sYjpbWzAsMCwwLDE4XSxbMCw5LDYsMTEsMTIsOSwxMiwyLDYsMCwwLDJdXSxjOltbMTEsOSw2LDExLDAsOSwwLDIsNiwwLDExLDJdXSxkOltbMTIsMiw2LDAsMCwyLDAsOSw2LDExLDEyLDldLFsxMiwxOCwxMiwwXV0sZTpbWzAsNiwxMiw3LDksMTIsMywxMiwwLDksMCwyLDMsMCw5LDAsMTIsMl1dLGY6W1s0LDAsNCwxNiw4LDE4LDEyLDE2XSxbMCw5LDgsOV1dLGc6W1sxMSwyLDYsMCwwLDIsMCw5LDYsMTEsMTEsOV0sWzExLDExLDExLC01LDYsLTcsMCwtNV1dLGg6W1swLDAsMCwxOF0sWzAsOSw2LDExLDEyLDksMTIsMF1dLGk6W1s3LDAsNywxMSw0LDExXSxbNywxOF1dLGo6W1swLC01LDQsLTcsOCwtNSw4LDExXSxbOCwxOF1dLGs6W1swLDAsMCwxOF0sWzAsNSwxMiwxMV0sWzQsNywxMiwwXV0sbDpbWzMsMCw5LDBdLFs2LDAsNiwxOCwzLDE4XV0sbTpbWzAsMCwwLDEyXSxbMCw5LDQsMTIsNiw5LDYsMF0sWzYsOSwxMCwxMiwxMiw5LDEyLDBdXSxuOltbMCwwLDAsMTFdLFswLDgsNiwxMSwxMiw4LDEyLDBdXSxvOltbNiwwLDAsMiwwLDksNiwxMSwxMiw5LDEyLDIsNiwwXV0scDpbWzAsLTcsMCwxMV0sWzAsOSw2LDExLDEyLDksMTIsMiw2LDAsMCwyXV0scTpbWzExLDIsNiwwLDAsMiwwLDksNiwxMSwxMSw5XSxbMTEsMTEsMTEsLTYsMTMsLThdXSxyOltbMCwwLDAsMTFdLFswLDgsNiwxMSwxMiw4XV0sczpbWzAsMiw2LDAsMTIsMiwxMiw1LDAsNywwLDEwLDYsMTIsMTIsMTBdXSx0OltbMTIsMiw4LDAsNCwyLDQsMThdLFswLDExLDgsMTFdXSx1OltbMCwxMSwwLDIsNiwwLDEyLDIsMTIsMTFdXSx2OltbMCwxMSw2LDAsMTIsMTFdXSx3OltbMCwxMSwzLDAsNiw4LDksMCwxMiwxMV1dLHg6W1swLDAsMTEsMTFdLFswLDExLDExLDBdXSx5OltbMCwxMSw3LDFdLFszLC03LDEyLDExXV0sejpbWzAsMTEsMTIsMTEsMCwwLDEyLDBdXSwieyI6W1sxMiwtMiw3LDEsNyw2LDQsOSw3LDEyLDcsMTcsMTIsMjBdXSwifCI6W1s2LDAsNiw2XSxbNiwxMiw2LDE4XV0sIn0iOltbMCwtMiw1LDEsNSw2LDgsOSw1LDEyLDUsMTcsMCwyMF1dLCJcdTI1YmEiOltbMCwwLDAsMTgsMTIsOSwwLDBdLFswLDMsNCwzLDQsMTUsMCwxNV0sWzAsNiw4LDYsOCwxMiwwLDEyXSxbMCw5LDEyLDldXSwiXHhlNyI6W1sxMSw5LDUsMTEsMCw5LDAsMiw1LDAsMTEsMl0sWzUsMCw1LC00LDgsLTcsNSwtMTBdXSwiXHhiZiI6W1sxMiwzLDYsMCwwLDMsMCw3LDYsMTAsNiwxNF0sWzYsMThdXSwiXHhhMyI6W1szLDksOSw5XSxbMTIsMTcsOCwxOCw2LDE1LDYsMiwzLDAsMCwwLDAsMiwzLDIsNiwwLDksMCwxMiwyXV0sIlx4YzYiOltbMCwwLDQsMTgsNywxOCw3LDAsMTIsMF0sWzEyLDksMiw5XSxbNywxOCwxMiwxOF1dLCJceGU2IjpbWzAsMTEsNiwxMSw2LDAsMCwwLDIsNSwxMyw1LDEzLDgsMTAsMTEsNyw4LDcsMiw5LDAsMTMsMF1dLGhwOltbLTE3LDAsLTMzLDAsLTM2LDMsLTM2LDI0LC0zMywyNywtMjIsMjddLFstMTYsMjcsNiwyNyw5LDI0LDksMyw2LDAsLTExLDBdLFstMjMsOSwtMTksMjddLFstMjEsMTgsLTE3LDE4LC0xNSwxNiwtMTYsOV0sWy0xNCwwLC0xMCwxOCwtNiwxOCwtNCwxNiwtNSwxMSwtNyw5LC0xMiw5XV19fTtjbGFzcyB5MXtjb25zdHJ1Y3Rvcih0LGUscj1BcnJheSl7dGhpcy50eXBlPXIsdGhpcy5yZXNpemUodCxlKX1yZXNpemUodCxlLHI9MCl7dGhpcy53aWR0aD1NYXRoLm1heCgwLHQpfHwwLHRoaXMuaGVpZ2h0PU1hdGgubWF4KDAsZSl8fDAsdGhpcy5nMT1uZXcgdGhpcy50eXBlKHQqZSksKCJmdW5jdGlvbiI9PXR5cGVvZiByP3RoaXM6dGhpcy5nMSkuZmlsbChyKX1maWxsUmVjdChyLGksbix0LGEpe2ZvcihsZXQgZT0wO2U8dDtlKyspZm9yKGxldCB0PTA7dDxuO3QrKyl0aGlzLnNldChyK3QsaStlLGEpO3JldHVybiB0aGlzfWZpbGwodCl7cmV0dXJuIHRoaXMuZzEuZmlsbCh0KSx0aGlzfWxvb3Aocil7bGV0IGk9MDtmb3IobGV0IGU9MDtlPHRoaXMuaGVpZ2h0O2UrKylmb3IobGV0IHQ9MDt0PHRoaXMud2lkdGg7dCsrKXIodGhpcy5nMVtpXSx0LGUsaSsrLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfUsxKCl7bGV0IGU9MDtyZXR1cm4gdGhpcy5nMS5mb3JFYWNoKHQ9PmU9TWF0aC5tYXgodCxlKSksZX1pc0VxdWFsKGUpe2lmKGUud2lkdGghPXRoaXMud2lkdGh8fGUuaGVpZ2h0IT10aGlzLmhlaWdodClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHRoaXMuZzEubGVuZ3RoO3QrKylpZih0aGlzLmcxW3RdIT09ZS5nMVt0XSlyZXR1cm4hMTtyZXR1cm4hMH1RMSh0LGUpe3JldHVybiB0PSh0K3RoaXMud2lkdGgpJXRoaXMud2lkdGgsZT0oZSt0aGlzLmhlaWdodCkldGhpcy5oZWlnaHQsdGhpcy5nMVt0K2UqdGhpcy53aWR0aF19Z2V0KHQsZSl7cmV0dXJuIHQ8MHx8ZTwwfHx0Pj10aGlzLndpZHRofHxlPj10aGlzLmhlaWdodD9udWxsOnRoaXMuZzFbdCtlKnRoaXMud2lkdGhdfXQwKHQsZSl7dD0xLU1hdGguYWJzKE1hdGguYWJzKHQpJTItMSksZT0xLU1hdGguYWJzKE1hdGguYWJzKGUpJTItMSksdD1NYXRoLnJvdW5kKHQqKHRoaXMud2lkdGgtMSkpLGU9TWF0aC5yb3VuZChlKih0aGlzLmhlaWdodC0xKSk7cmV0dXJuIHRoaXMuZ2V0KHQsZSl9c2FtcGxlKHQsZSl7dmFyIHQ9dCp0aGlzLndpZHRoLS41LGU9ZSp0aGlzLmhlaWdodC0uNSxyPU1hdGguZmxvb3IodCksaT1NYXRoLmZsb29yKGUpLG49cisxLGE9aSsxLHQ9dC1yLGU9ZS1pLGk9aCh0aGlzLmdldChyLGkpLHRoaXMuZ2V0KG4saSksdCkscj1oKHRoaXMuZ2V0KHIsYSksdGhpcy5nZXQobixhKSx0KTtyZXR1cm4gaChpLHIsZSl9ZTAobj0wLGE9MCxoPTApe2xldCB0LGU7ZT0xPT1ofHwyPT1oPyh0PXRoaXMuaGVpZ2h0LHRoaXMud2lkdGgpOih0PXRoaXMud2lkdGgsdGhpcy5oZWlnaHQpO3ZhciBzPW5ldyB5MSh0LGUsdGhpcy50eXBlKTtmb3IobGV0IGk9MDtpPHMuaGVpZ2h0O2krKylmb3IobGV0IHI9MDtyPHMud2lkdGg7cisrKXtsZXQgdCxlOzA9PWg/KHQ9cixlPWkpOjE9PWg/KHQ9cy5oZWlnaHQtaS0xLGU9cik6Mj09aD8odD1zLndpZHRoLXItMSxlPXMuaGVpZ2h0LWktMSk6Mz09aCYmKHQ9aSxlPXMud2lkdGgtci0xKSx0PW4/cy53aWR0aC0xLXQ6dCxlPWE/cy5oZWlnaHQtMS1lOmUscy5zZXQodCxlLHRoaXMuZ2V0KHIsaSkpfXJldHVybiBzfXIwKHIsaSx0LGUpe3ZhciBuPW5ldyBHcmlkKHQsZSx0aGlzLnR5cGUpO2ZvcihsZXQgZT0wO2U8bi5oZWlnaHQ7ZSsrKWZvcihsZXQgdD0wO3Q8bi53aWR0aDt0Kyspbi5zZXQodCxlLHRoaXMuZ2V0KHQrcixlK2kpKTtyZXR1cm4gbn1zZXQodCxlLHIpe3Q8MHx8ZTwwfHx0Pj10aGlzLndpZHRofHxlPj10aGlzLmhlaWdodHx8KHRoaXMuZzFbdCtlKnRoaXMud2lkdGhdPXIpfWkwKHQpe3QubGVuZ3RoPT10aGlzLmcxLmxlbmd0aCYmdC5mb3JFYWNoKCh0LGUpPT50aGlzLmcxW2VdPXQpfW4wKHIsaSxuLHQsYSl7Zm9yKGxldCBlPTA7ZTx0O2UrKylmb3IobGV0IHQ9MDt0PG47dCsrKXRoaXMuc2V0KHIrdCxpK2UsYVt0K24qZV0pfWEwKHQsZSxyKXt0aGlzLm4wKHQsZSxyLndpZHRoLHIuaGVpZ2h0LHIuZzEpfXRvU3RyaW5nKCl7bGV0IHI9IiI7Zm9yKGxldCBlPTA7ZTx0aGlzLmhlaWdodDtlKyspe2ZvcihsZXQgdD0wO3Q8dGhpcy53aWR0aDt0Kyspcis9dGhpcy5nZXQodCxlKTtyKz0iXG4ifXJldHVybiByfXByaW50KCl7Y29uc29sZS5sb2coIiVjIit0aGlzLnRvU3RyaW5nKCksImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Iil9fWZ1bmN0aW9uIGgodCxlLHIpe3JldHVybiB0KigxLXIpK2Uqcn1mdW5jdGlvbiBEMSh0LGUscixpLG49MCxhPTEpe3ZhciBoPXQubnVtRWxlbWVudHMrKyxzPTMqaDt0LnMwLmgwLmcxW3NdPXIueDEsdC5zMC5oMC5nMVsxK3NdPXIueTEsdC5zMC5oMC5nMVsyK3NdPXIubzAsdC5zMC5oMC5sMD0hMCx0LnMwLnUwLmcxW3NdPXIueDIsdC5zMC51MC5nMVsxK3NdPXIueTIsdC5zMC51MC5nMVsyK3NdPXIuZjAsdC5zMC51MC5sMD0hMCx0LnMwLmMwLmcxW2hdPW4sdC5zMC5jMC5sMD0hMCx0LnMwLnYwLmcxW2hdPWEsdC5zMC52MC5sMD0hMCx0LnMwLmNvbG9yLmcxW3NdPWlbMF0sdC5zMC5jb2xvci5nMVsxK3NdPWlbMV0sdC5zMC5jb2xvci5nMVsyK3NdPWlbMl0sdC5zMC5jb2xvci5sMD0hMCx0LnMwLnRyYW5zZm9ybS5nMVtoXT1lLHQuczAudHJhbnNmb3JtLmwwPSEwfWxldCBBPTEyOCxzPTAscD1bXSxOMT0wLFIxPTA7bGV0IFI9e3gxOjAseTE6MCxvMDowLHgyOjAseTI6MCxmMDowfTtsZXQgaz17TTA6KGgsdCxzLG8pPT4odCxlLHIsaSxuLGEpPT57aC5nMVtpXT0oTWF0aC5mbG9vcihyL3MpJTI9PTA/ZTpoLndpZHRoLWUtMSkqb30seTA6KGgsdCxzLG8pPT4odCxlLHIsaSxuLGEpPT57aC5nMVtpXT0oTWF0aC5mbG9vcihyL3MpJTI9PTA/ZToyKmgud2lkdGgtZS0xKSpvfSxEMDooaCxzLHQsbyk9Pih0LGUscixpLG4sYSk9PntoLmcxW2ldPShNYXRoLmZsb29yKGUvcyklMj09MD9yOmguaGVpZ2h0LXItMSkqb30sTjA6KGgscyx0LG8pPT4odCxlLHIsaSxuLGEpPT57aC5nMVtpXT0oTWF0aC5mbG9vcihlL3MpJTI9PTA/cjoyKmguaGVpZ2h0LXItMSkqb30sZGlhbW9uZDooaCx0LGUscik9PntsZXQgcz1STkQudTEoMCwoaC53aWR0aC0xKS8yLGgud2lkdGgtMSksbz1STkQudTEoMCwoaC5oZWlnaHQtMSkvMixoLmhlaWdodC0xKSxsPVJORC51MSgxLDIpLHU9Uk5ELnUxKDEsMiksZj1STkQudTEoYSxuKTtyZXR1cm4odCxlLHIsaSxuLGEpPT57aC5nMVtpXT1NYXRoLmZsb29yKGYoTWF0aC5mbG9vcihlL2wpLE1hdGguZmxvb3Ioci91KSxNYXRoLmZsb29yKHMvbCksTWF0aC5mbG9vcihvL3UpKSl9fSxyYW5kb206KGgsdCxlLHIpPT4odCxlLHIsaSxuLGEpPT57aC5nMVtpXT1STkQubzEoMCxBKX19O2NsYXNzIEExe2NvbnN0cnVjdG9yKHQsZSxyLGksbixhLGgpe3RoaXMuZmVhdHVyZXM9aSx0aGlzLlIwPW4sdGhpcy5fMD1hLHRoaXMuZDA9aCx0aGlzLncwPVswLC4uLihpPWUsbj1STkQubzEoMCxlLmxlbmd0aCksMD09KGg9aS5sZW5ndGgpP2k6Wy4uLmkuc2xpY2Uobj0obiU9aCk8MD9oK246biksLi4uaS5zbGljZSgwLG4pXSldO2ZvcihsZXQgdD0wO3Q8Uk5ELm8xKDAsNSk7dCsrKXRoaXMudzAucHVzaCgwKTt0aGlzLm0wPTYsdGhpcy5wMD0xMix0aGlzLngwPWEuelNwYWNpbmcsdGhpcy5iMD0tYS56U3BhY2luZy8yLHRoaXMuY29sb3I9cix0aGlzLmcwPXBbc10scz0ocysxKSVwLmxlbmd0aCxPYmplY3Qua2V5cyh0aGlzLmcwKS5mb3JFYWNoKHQ9Pnt0aGlzLmcwW3RdLmcxLmZpbGwoMCl9KSx0aGlzLnowKCl9ejAoKXt2YXIgdD10aGlzLmcwLkEwLGU9Uk5ELnUxKDEsMiw0LDgsTjEsTjEvMikscj1STkQudTEoMSwyLDQsOCxSMSxSMS8yKSxlPVJORC51MShrLk0wLGsuRDAsay55MCxrLk4wLGsuZGlhbW9uZCxrLnJhbmRvbSkodCxlLHIsMSksaT0odC5sb29wKGUpLHRoaXMuZzAuazApLHI9Uk5ELnUxKDEsMiw0LDgsMTYsTjEvMiksdD1STkQudTEoMSwyLDQsOCwxNixSMS8yKTtpZihSTkQubjEoLjIpKXtlPVJORC51MShrLk0wLGsuRDAsay55MCxrLk4wKShpLHIsdCwxKTtpLmxvb3AoZSl9ZWxzZSBpZihSTkQubjEoLjgpKXt2YXIgbj1STkQubjEoLjQpLGE9Uk5ELm4xKC4zKSxoPVJORC51MSgwLDEsMikscz1STkQubzEoNSwzMCk7Zm9yKGxldCB0PTA7dDxzO3QrKyl7dmFyIG89Uk5ELm8xKDEsaS53aWR0aC8yKSxsPVJORC5vMSgxLGkuaGVpZ2h0LzIpLHU9Uk5ELm8xKDAsaS53aWR0aC1vLTEpLGY9Uk5ELm8xKDAsaS5oZWlnaHQtbC0xKSxjPVJORC51MSgxLDIsNCw4LDE2KSx2PVJORC51MSgwLFJORC5vMSgwLDY0KSk7bGV0IHQ9Uk5ELm8xKDAsNCk7RShpLHUsZixvLGwsdCxjLGgsdixhKSxuJiYodCUyPT0wJiYodD0odCsyKSU0KSxFKGksaS53aWR0aC11LW8sZixvLGwsdCxjLGgsdixhKSl9fWVsc2UgaS5nMS5maWxsKDApO3ZhciBNPVJORC51MSgwLFJORC5vMSg1LDE1KSk7Zm9yKGxldCB0PTA7dDxNO3QrKyl7dmFyIHk9Uk5ELnUxKDEsMiw0LDgsMTYpLEQ9Uk5ELnUxKDEsMiw0LDgsMTYpO3tOPXZvaWQgMDtSPXZvaWQgMDtfPXZvaWQgMDtkPXZvaWQgMDt3PXZvaWQgMDttPXZvaWQgMDtwPXZvaWQgMDt6PXZvaWQgMDt4PXZvaWQgMDtiPXZvaWQgMDtnPXZvaWQgMDt2YXIgTj10aGlzLmcwLmswO3ZhciBSPUE7dmFyIF89eTt2YXIgZD1EO2xldCByPU4ud2lkdGgsdD1OLmhlaWdodCxpPVJORC51MSgwLDEpLGU9TWF0aC5mbG9vcihyL18vKGk/MjoxKSksbj1NYXRoLmZsb29yKHQvZCksYT1STkQubzEoMCxlKSxoPVJORC5vMSgwLG4pLHM9Uk5ELm8xKDAsNCksbz1STkQubzEoMCxSKSxsPWUrIl8iK247Ty5oYXMobCl8fE8uc2V0KGwsbmV3IHkxKGUsbikpO3ZhciB3PU8uZ2V0KGwpO3cuZzEuZmlsbCgtMSk7bGV0IHU9ITAsZj1STkQubzEoMCxSKSxjPVJORC51MSgwLDEsMSwxLDIpLHY9Uk5ELnUxKDAsMSk7Zm9yKDt1Oyl7dT0hMTtsZXQgZT1zO3ZhciBtPVJORC51MSgtMSwxLDAsMCwwLDApLHA9Uk5ELnUxKC0xLDEpO2ZvcihsZXQgdD0wO3Q8NDt0Kyspe2lmKDA9PShlPShzK20rdCpwKzgpJTQpJiYtMT09dy5nZXQoYSsxLGgpKXthKz0xLHU9ITA7YnJlYWt9aWYoMT09ZSYmLTE9PXcuZ2V0KGEsaCsxKSl7aCs9MSx1PSEwO2JyZWFrfWlmKDI9PWUmJi0xPT13LmdldChhLTEsaCkpey0tYSx1PSEwO2JyZWFrfWlmKDM9PWUmJi0xPT13LmdldChhLGgtMSkpey0taCx1PSEwO2JyZWFrfX11JiYody5zZXQoYSxoLGYpLGYrPWMscz1lKX1mb3IobGV0IGU9MDtlPHcuaGVpZ2h0O2UrKylmb3IobGV0IHQ9MDt0PHcud2lkdGg7dCsrKXt2YXIgeCxiLGcsej13LmdldCh0LGUpOzA8PXomJih4PXQqXyxiPXIteC1fLGc9ZSpkLHo9KG8reiklUixqKE4seCxnLF8sZCx6LHYpLGkpJiZqKE4sYixnLF8sZCx6LHYpfX19dGhpcy5nMC5rMC5nMS5mb3JFYWNoKCh0LGUpPT57dGhpcy5nMC5rMC5nMVtlXT10JUF9KX1sb29wKHIsdixNLHQsZSxpKXtsZXQgbj0hMCx5PShNYXRoLmZsb29yKGUuZnJhbWUpJWk9PTAmJih0aGlzLmcwLk8wLmcxLm1hcCgodCxlKT0+ezA8dGhpcy5nMC5BMC5nMVtlXT8odGhpcy5nMC5BMC5nMVtlXS0tLG49ITEpOnQ+dGhpcy5nMC5rMC5nMVtlXT8odGhpcy5nMC5PMC5nMVtlXS0tLG49ITEpOnQ8dGhpcy5nMC5rMC5nMVtlXSYmKHRoaXMuZzAuTzAuZzFbZV0rKyxuPSExKX0pLG4pJiYxIT09dGhpcy5SMC5jYXB0dXJlJiZ0aGlzLnowKCksdGhpcy5SMC5zY2FsZSk7dmFyIGE9KHIuVTErdGhpcy5tMCkqeSxoPShyLlcxK3RoaXMucDApKnkscz0tKE4xLTEpKmEvMixvPS0oUjEtMSkqaC8yO2ZvcihsZXQgZT0wO2U8UjE7ZSsrKXtsZXQgYz10O2lmKDAhPWMpZm9yKGxldCB0PTA7dDxOMTt0Kyspe3ZhciBsPXRoaXMuZzAuTzAuZ2V0KHQsZSk7bGV0IHU9dCphK3MsZj1lKmgrbzt2YXIgRD0tbCp0aGlzLngwK3RoaXMuYjAsbD0obCV0aGlzLncwLmxlbmd0aCt0aGlzLncwLmxlbmd0aCkldGhpcy53MC5sZW5ndGgsbD10aGlzLncwW2xdO1IubzA9RCxSLmYwPUQsci5qMFtsXS5mb3JFYWNoKGU9Pnt2YXIgcixpLG4sYT1lLmxlbmd0aC8yLTEsaD1NYXRoLmZsb29yKDAqYSkscz1NYXRoLmZsb29yKGMqYSksbz0wKmEtaCxsPWMqYS1zO2ZvcihsZXQgdD0wO3Q8YTt0KyspdDxofHx0PnN8fChyPXQ9PWg/bzowLGk9dD09cz9sOjEsbj0yKnQsUi54MT11K2VbMCtuXSp5LFIueTE9ZitlWzErbl0qeSxSLngyPXUrZVsyK25dKnksUi55Mj1mK2VbMytuXSp5LEQxKHYsTSxSLHRoaXMuY29sb3IscixpKSl9KX19fX1sZXQgTz1uZXcgTWFwO2Z1bmN0aW9uIGoocixpLG4sYSx0LGgscz0hMSl7Zm9yKGxldCBlPTA7ZTx0O2UrKylmb3IobGV0IHQ9MDt0PGE7dCsrKXt2YXIgbz1zP3IuZ2V0KGkrdCxuK2UpOjA7ci5zZXQoaSt0LG4rZSxvK2gpfX1mdW5jdGlvbiBFKHIsaSxuLGEsaCxzLG89MSxsPTEsdT0wLGY9ITEpe2xldCB0OzA9PXN8fDI9PXM/dD1NYXRoLmZsb29yKGEvbykqbCt1OjEhPXMmJjMhPXN8fCh0PU1hdGguZmxvb3IoaC9vKSpsK3UpO2xldCBjO2ZvcihsZXQgZT0wO2U8aDtlKyspZm9yKGxldCB0PTA7dDxhO3QrKyl7MD09cz9jPU1hdGguZmxvb3IodC9vKToxPT1zP2M9TWF0aC5mbG9vcihlL28pOjI9PXM/Yz1NYXRoLmZsb29yKChhLXQtMSkvbyk6Mz09cyYmKGM9TWF0aC5mbG9vcigoaC1lLTEpL28pKTt2YXIgdj1mP3IuZ2V0KGkrdCxuK2UpOjA7ci5zZXQoaSt0LG4rZSx2K3UrYypsKX10fWxldCBfMT0wLF89bmV3IE1hcDtmdW5jdGlvbiBkMShlLHIsaSxuLGEpe2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXt2YXIgaCxzPU1hdGguZmxvb3IoYSppLmxlbmd0aCk7dD5zfHwoaD1hKmkubGVuZ3RoLXMscz10PHM/MTpoLEQxKGUscixpW3RdLG4sMCxzKSl9fWZ1bmN0aW9uIHcxKG8sbCx1LGU9MCxmPTAsYz0xKXtpZighXy5oYXMobCkpe3ZhciByPVtdO2ZvcihsZXQgdD0wO3Q8bDt0Kyspe3ZhciBpPXQvbCpNYXRoLlBJKjIrZSxuPSh0KzEpL2wqTWF0aC5QSSoyK2U7ci5wdXNoKHt4MTpNYXRoLmNvcyhpKSx5MTpNYXRoLnNpbihpKSxvMDowLHgyOk1hdGguY29zKG4pLHkyOk1hdGguc2luKG4pLGYwOjB9KX1fLnNldChsLHIpfXJldHVybiBmdW5jdGlvbihyLGksbix0LGEpe2xldCBlPShNYXRoLm1pbih0LnBsYW5lSCx0LnBsYW5lVyktXzEpLzIqYzt2YXIgaD1fLmdldChsKS5tYXAodD0+KHt4MTp0LngxKmUseTE6KHQueTErZikqZSxvMDowLHgyOnQueDIqZSx5MjoodC55MitmKSplLGYwOjB9KSk7Zm9yKGxldCB0PTA7dDxvO3QrKyl7dmFyIHM9blt0JW4ubGVuZ3RoXTtsZXQgZT0tdCp1O2guZm9yRWFjaCh0PT57dC5vMD1lLHQuZjA9ZX0pLGQxKHIsaSxoLHMsYSl9fX1mdW5jdGlvbiBlKHQsaSxuLGEpe3JldHVybiBuZXcgQXJyYXkodCkuZmlsbCgwKS5tYXAodD0+e3ZhciBlLHI9KCh0LGUpPT57bGV0IHI9dFswXSxpPXRbMV0sbj10WzJdLGE9TWF0aC5tYXgocixpLG4pLGg9TWF0aC5taW4ocixpLG4pLHMsbyxsPShhK2gpLzI7aWYoYT09PWgpcz1vPTA7ZWxzZXt2YXIgdT1hLWg7c3dpdGNoKG89LjU8bD91LygyLWEtaCk6dS8oYStoKSxhKXtjYXNlIHI6cz0oaS1uKS91KyhpPG4/NjowKTticmVhaztjYXNlIGk6cz0obi1yKS91KzI7YnJlYWs7Y2FzZSBuOnM9KHItaSkvdSs0fXMvPTZ9cmV0dXJuKHM9KHMrZS8zNjApJTEpPDAmJihzKz0xKSx0PWw8LjU/bCooMStvKTpsK28tbCpvLFtkKGU9MipsLXQsdCxzKzEvMyksZChlLHQscyksZChlLHQscy0xLzMpXX0pKGksUk5ELnMxKC1uLG4pKTtyZXR1cm4gcj1yLGU9dTEoZT1STkQuZmxvYXQoKSphLC0xLDEpLHIubWFwKHQ9PjA8ZT90KygxLXQpKmU6dCooMStlKSl9KX1mdW5jdGlvbiBkKHQsZSxyKXtyZXR1cm4gcjwwJiYocis9MSksMTxyJiYtLXIscjwxLzY/dCs2KihlLXQpKnI6cjwuNT9lOnI8Mi8zP3QrKGUtdCkqKDIvMy1yKSo2OnR9ZnVuY3Rpb24gaShlLHIpe3ZhciBpPW5ldyBBcnJheShlLmxlbmd0aCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspaVsodCtyKSVlLmxlbmd0aF09ZVt0XTtyZXR1cm4gaX1mdW5jdGlvbiBsKGUpe3ZhciByPW5ldyBBcnJheShlKSxpPVsuNiwuNiwuNl0sbj1bLjQsLjQsLjRdLGE9W1JORC5vMSgwLDMpLFJORC5vMSgwLDMpLFJORC5vMSgwLDMpXSxoPVtSTkQuZmxvYXQoKSxSTkQuZmxvYXQoKSxSTkQuZmxvYXQoKV07Zm9yKGxldCB0PTA7dDxlO3QrKylyW3RdPSgocixpLG4sYSxoKT0+aS5tYXAoKHQsZSk9PmlbZV0rbltlXSpNYXRoLmNvcygyKk1hdGguUEkqKGFbZV0qcitoW2VdKSkpKSh0L2UsaSxuLGEsaCk7cmV0dXJuIHJ9bGV0IHc9e3Bpbms6WzI1NjAsMzg0MCw0MDE1LDQwOTVdLGUxOlsyNTcwLDM5MzUsMjY0MCw0MDg1LDI3MzAsMTYwLDE3MCwxNTM1LDI1NjAsMzkyNV0sZTI6WzI3MzUsMTQ1NSwxMzcwLDI1NjUsMzg0MCw0MDEwLDQwOTVdLGUzOlsxMjgwLDI3MzAsMjczMCwyNzMwLDI3MzAsMTM2NSwyNTYwLDI3MzAsMTM2NSwxNzBdLGU0OlsxMzY1LDEwLDEzNzUsMTYwLDE1MjUsMTcwLDE1MzUsMjU2MCwzOTI1LDI1NzAsMzkzNSwyNjQwLDQwODUsMjczMCw0MDk1XSxlNTpbMTAsMTM3NSwxNDUwLDE1MjUsNDA4NSw0MDk1LDI3MzAsMzkyNSwyNTcwXSxlNjpbNDA5MCwzOTMwLDM5MjAsMzg0NSwyNTY1LDkwLDE3MCwxMzY1XSxlNzpbMTI4NSwyNTcwLDM4NTUsMjczMCw0ZTMsNDA4MCw0MDk1XSxjMTpbMTUzNSwzOTM1LDQwOTVdLGMyOlsxNzAsMjU3MCwyNzMwXSwiNGJpdCI6WzEzNjUsMTM3NSwxNTI1LDE1MzUsMzkyNSwzOTM1LDQwODUsMjczMCwxMCwxNjAsMTcwLDI1NjAsMjU3MCwyNzIwLDQwOTVdLGYwMDpbMzI3NiwzODQwXSwiMGYwIjpbMzI3NiwzODQwXSwiMGZmIjpbMzI3NiwyNTVdLGYwZjpbMzI3NiwzODU1XSxhMDA6WzMyNzYsMjU2MF0sIjBhYSI6WzMyNzYsMTcwXSxhMGE6WzMyNzYsMjU3MF0sZmFhOlszMjc2LDQwMTBdLGFhZjpbMzI3NiwyNzM1XSxiaXQ6WzIwNzEsMjYxMywzMTc0LDM3MzIsMzc5MiwyNTE3LDEyNDAsNzE1LDE4OCwxNTYsODc1LDE1OTNdLDY0Ols0MDk1LDIwNDgsMjgxNCwzMTQ4LDE5NywxMCwzODE1LDM0NjEsMTYwMCwzOTU5LDgxOSwxOTExLDI4MDYsMTQzLDMwMDNdfTtmdW5jdGlvbiB4KHQpe3JldHVyblsodD4+OCYxNSkvMTUsKHQ+PjQmMTUpLzE1LCgxNSZ0KS8xNV19ZnVuY3Rpb24gazEoKXtsZXQgcj17fTtPYmplY3Qua2V5cyh3KS5mb3JFYWNoKHQ9Pnt2YXIgZT13W3RdLm1hcCh4KTtyW3RdPXthOmkoZSxSTkQubzEoMCxlLmxlbmd0aCkpLGI6W1JORC51MShlKV19fSk7dmFyIHQ9e3JhaW5ib3c6e2E6bChSTkQudTEoMzIsNjQsMTI4KSksYjplKDEsWzEsMSwxXSwwLC0uNCl9LHJlZDp7YTplKDMyLFsxLDAsMF0sNSwtLjMpLGI6Uk5ELnUxKGUoMSxbLjksMCwwXSwyMCwtLjIpLGUoMSxbMSwxLDFdLDAsLS40KSl9LGhwOnthOmUoMzIsWzAsMSwwXSwxNSwtLjMpLGI6Uk5ELnUxKGUoMSxbMCwuOSwwXSwyMCwtLjIpLGUoMSxbMSwxLDFdLDAsLS4yKSl9LGdyYXkxOnthOmUoMzIsWy43LC43LC43XSwwLC0uNCksYjpSTkQudTEoZSgxLFsxLDEsMV0sMCwtLjQpLGUoMSxbLjksMCwwXSwyMCwtLjIpLGUoMSxbMCwuOSwwXSwyMCwtLjIpLGUoMSxbMCwuOCwuOV0sMjAsLS4yKSl9LGdyYXkyOnthOmUoMzIsWy43LC43LC43XSwwLC0uNCksYjppKFJORC51MShbWy45LDAsMF0sWzAsLjksMF0sWzAsLjksLjldXSxbWzAsMSwxXSxbMSwwLDFdLFsxLDEsMF1dKSxSTkQubzEoMCwzKSl9LHdnOnthOlsuLi5lKFJORC51MSgxLDgpLFsuOSwuNCwuNF0sNSwtLjIpLC4uLmUoUk5ELnUxKDEsOCksWy40LC45LC4zXSw1LC0uMiksLi4uZShSTkQudTEoMSw4KSxbLjUsLjYsMV0sNSwtLjIpXS5zb3J0KCgpPT5NYXRoLnJhbmRvbSgpLS41KSxiOltbMSwxLDFdXX19O3JldHVybnsuLi5yLC4uLnR9fWZ1bmN0aW9uIE8xKGEpe3ZhciByPWEuZzAuTzAsaT1yLndpZHRoLHQ9ci5oZWlnaHQsaD1hLmNlbGxILHM9aSphLmNlbGxXKzIqaCxvPXQqYS5jZWxsSCsyKmgsbD0ocy0oaS0xKSphLmNlbGxXKS8yLHU9KG8tKHQtMSkqYS5jZWxsSCkvMixmPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIiksZT0oYy5zZXRBdHRyaWJ1dGUoIndpZHRoIixzKSxjLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixvKSxjLnZpZXdCb3guYmFzZVZhbC54PTAsYy52aWV3Qm94LmJhc2VWYWwueT0wLGMudmlld0JveC5iYXNlVmFsLndpZHRoPXMsYy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0PW8sYy5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsIndoaXRlIiksYy5zZXRBdHRyaWJ1dGUoImZpbGwiLCJub25lIiksYy5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsMiksYy5zZXRBdHRyaWJ1dGUoInN0cm9rZS1saW5lY2FwIiwicm91bmQiKSxjLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWxpbmVqb2luIiwicm91bmQiKSxkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZiwicmVjdCIpKTtlLnNldEF0dHJpYnV0ZSgieCIsMCksZS5zZXRBdHRyaWJ1dGUoInkiLDApLGUuc2V0QXR0cmlidXRlKCJ3aWR0aCIscyksZS5zZXRBdHRyaWJ1dGUoImhlaWdodCIsbyksZS5zZXRBdHRyaWJ1dGUoImZpbGwiLCJibGFjayIpLGMuYXBwZW5kQ2hpbGQoZSk7Zm9yKGxldCBlPTA7ZTx0O2UrKylmb3IobGV0IHQ9MDt0PGk7dCsrKXtsZXQgaT10KmEuY2VsbFcrbCxuPWUqYS5jZWxsSCt1O2lmKCEoaTxofHxuPGh8fGk+cy1ofHxuPm8taCkpe3ZhciB2PShyLmdldCh0LGUpJWEudzAubGVuZ3RoK2EudzAubGVuZ3RoKSVhLncwLmxlbmd0aDtpZigwIT12KXt2PWEudzBbdl07bGV0IHI9IiI7TTEuSjFbdl0uZm9yRWFjaChlPT57cis9Ik0iO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9MilyKz1lW3RdK2krIiwiKygtZVt0KzFdK24pKyIgIn0pO3Y9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGYsInBhdGgiKTt2LnNldEF0dHJpYnV0ZSgiZCIsciksYy5hcHBlbmRDaGlsZCh2KX19fXJldHVybiBjfWFzeW5jIGZ1bmN0aW9uIHQocSxYKXtPYmplY3Qua2V5cyhNMS5KMSkuZm9yRWFjaCh0PT57TTEuSjFbdF0uZm9yRWFjaChlPT57Mj09ZS5sZW5ndGgmJihlLnB1c2goZVswXSksZS5wdXNoKGVbMV0rLjAwMSksZVsxXS09LjAwMSk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kz0yKWVbdF0tPU0xLlUxLzIsZVt0KzFdLT1NMS5XMS8yfSl9KTtsZXQgQz0iWC1ZLVoiLFA9WC5tYXhTZWdtZW50c3x8WC5udW1QbGFuZXMqTWF0aC5wb3coMiwxNiksVT1YLmZwcyxXPU1hdGgubWF4KDEsTWF0aC5yb3VuZChVLzMwKSksQj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJwcmUiKTt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTtsZXQgVj1TeW1ib2woInBsYXlpbmciKSxZPVN5bWJvbCgiaGFsdGluZyIpLFo9U3ltYm9sKCJoYWx0ZWQiKSxKPVN5bWJvbCgicmVzdW1pbmciKSxLPU1hdGguUEkvMyxRPS4xL1csJD1PYmplY3Quc2VhbCh7YmFzZToxMDI0LHpTcGFjaW5nOjI0LHBsYW5lVzowLHBsYW5lSDowLHZGb3Y6MCxleWVEaXN0OjB9KSx0MT1PYmplY3Quc2VhbCh7d2lkdGg6MCxoZWlnaHQ6MCxwaXhlbDowLGFzcGVjdDowfSksZTE9ITEscjE9ITEsaTE9ITEsbjE9ITEsYTE9ITAsaDE9ISFYLmNhcHR1cmUsczE9WC5jYXB0dXJlP1o6VixvMT0wLGwxPXQuZ2V0Q29udGV4dCgid2ViZ2wyIix7YWxwaGE6ITF9KTtpZihsMSl7bDEuRTA9ImRpc3BsYXktcDMiLGwxLmVuYWJsZShsMS5DVUxMX0ZBQ0UpLGwxLmN1bGxGYWNlKGwxLkJBQ0spLGwxLmVuYWJsZShsMS5ERVBUSF9URVNUKSxsMS5lbmFibGUobDEuQkxFTkQpLGwxLmJsZW5kRnVuYyhsMS5TUkNfQUxQSEEsbDEuT05FX01JTlVTX1NSQ19BTFBIQSksbDEuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCksY29uc29sZS5sb2coIlVzaW5nIGhhc2g6IixxLmhhc2gpO3ZhciByPShlPT57bGV0IHI9MjE2NjEzNjI2MTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylyPU1hdGguaW11bChyXmUuY2hhckNvZGVBdCh0KSwxNjc3NzYxOSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuKHI9KHI9KHI9KHI9KHIrPXI8PDEzKV5yPj4+NykrKHI8PDMpKV5yPj4+MTcpKyhyPDw1KSk+Pj4wfX0pKHEuaGFzaCkscj0oZ2xvYmFsVGhpcy5STkQ9bmV3IEQoW3IoKSxyKCkscigpLHIoKV0pLFJORC5NMShbWzQsMV0sWzIsM10sWzEsN11dKSk7bGV0IHg9MyokLnpTcGFjaW5nO3ZhciBSLF8sZCx3LG8sbCxpPVJORC51MSgtMSwxKTtsZXQgYj17Y2lyY2xlOncxKHIsNjQseCksYm94Oih0PT57bGV0IGg9LXQqUk5ELnUxKDMsNiwxMik7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLGksbil7dmFyIGE9KGkucGxhbmVXLV8xKS8yLGk9KGkucGxhbmVILV8xKS8yO2QxKHQsZSxbe3gxOi1hLHkxOi1pLG8wOjAseDI6LWEseTI6aSxmMDowfSx7eDE6LWEseTE6aSxvMDowLHgyOmEseTI6aSxmMDowfSx7eDE6YSx5MTppLG8wOjAseDI6YSx5MjotaSxmMDowfSx7eDE6YSx5MTotaSxvMDowLHgyOi1hLHkyOi1pLGYwOjB9LHt4MTotYSx5MTotaSxvMDpoLHgyOi1hLHkyOmksZjA6aH0se3gxOi1hLHkxOmksbzA6aCx4MjphLHkyOmksZjA6aH0se3gxOmEseTE6aSxvMDpoLHgyOmEseTI6LWksZjA6aH0se3gxOmEseTE6LWksbzA6aCx4MjotYSx5MjotaSxmMDpofSx7eDE6LWEseTE6LWksbzA6MCx4MjotYSx5MjotaSxmMDpofSx7eDE6LWEseTE6aSxvMDowLHgyOi1hLHkyOmksZjA6aH0se3gxOmEseTE6aSxvMDowLHgyOmEseTI6aSxmMDpofSx7eDE6YSx5MTotaSxvMDowLHgyOmEseTI6LWksZjA6aH1dLHJbMF0sbil9fSkoeCksdHJpOncxKHIsMyx4LE1hdGguUEkvMippLC0oMS0oTWF0aC5jb3MoTWF0aC5QSS8zKSsxKS8yKSppLDEvTWF0aC5zaW4oTWF0aC5QSS8zKSksb2N0YTp3MShyLDgseCxNYXRoLlBJLzgsMCwyLygyKk1hdGguY29zKE1hdGguUEkvOCkpKSxyZWN0OihvPXIsZnVuY3Rpb24ocixpLG4sdCxhKXt2YXIgZT0odC5wbGFuZVctXzEpLzIsdD0odC5wbGFuZUgtXzEpLzIsaD1be3gxOi1lLHkxOi10LG8wOjAseDI6LWUseTI6dCxmMDowfSx7eDE6LWUseTE6dCxvMDowLHgyOmUseTI6dCxmMDowfSx7eDE6ZSx5MTp0LG8wOjAseDI6ZSx5MjotdCxmMDowfSx7eDE6ZSx5MTotdCxvMDowLHgyOi1lLHkyOi10LGYwOjB9XTtmb3IobGV0IHQ9MDt0PG87dCsrKXt2YXIgcz1uW3Qlbi5sZW5ndGhdO2xldCBlPS10Kmw7aC5mb3JFYWNoKHQ9Pnt0Lm8wPWUsdC5mMD1lfSksZDEocixpLGgscyxhKX19KSxkaWFtb25kOncxKHIsNCxsPXgpLGhleDp3MShyLDYseCksZ3JpZDooW1IsXyxkLHc9LjVdPVsxLHgsMipSTkQubzEoNCw5KS0xLFJORC51MSguMywuNSwuOCldLGZ1bmN0aW9uKHIsaSxuLHQsYSl7dmFyIGU9dC5wbGFuZVctXzEsdD10LnBsYW5lSC1fMSxoPU1hdGgubWF4KGUsdCkvZCxzPU1hdGguZmxvb3IoZS9oKSxvPU1hdGguZmxvb3IodC9oKSxsPU1hdGgubWF4KGUvcyx0L28pLzIqdyx1PWUvcyxmPXQvbyxjPS1lLzIrKGUtcyp1KS8yK3UvMix2PS10LzIrKHQtbypmKS8yK2YvMixNPVtdO2ZvcihsZXQgZT0wO2U8bztlKyspZm9yKGxldCB0PTA7dDxzO3QrKyl7dmFyIHk9Yyt1KnQsRD12K2YqZTtNLnB1c2goe3gxOnktbCx5MTpELG8wOjAseDI6eStsLHkyOkQsZjA6MH0se3gxOnkseTE6RC1sLG8wOjAseDI6eSx5MjpEK2wsZjA6MH0pfWZvcihsZXQgdD0wO3Q8Ujt0Kyspe3ZhciBOPW5bdCVuLmxlbmd0aF07bGV0IGU9LXQqXztNLmZvckVhY2godD0+e3QubzA9ZSx0LmYwPWV9KSxkMShyLGksTSxOLGEpfX0pfTt2YXIgbj1bIjAxMjM0NTY3ODkiLCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIiwiXywuOjshP15cIidcXCIsIltdKCl7fSIsIiorLS88PT4lfCIsIlx1MjE5MVx1MjE5MFx1MjE5M1x1MjE5MiIsIlx1MjIxYVx1MDNjMFx1MjMwMlx4YjVceGIwXHUwM2E5XHUwM2M2XHUwMzkzXHUwMzk4XHUwM2JiIiwiXHUyNWJhXHhlN1x4YmZceGEzXHhjNlx4ZTYiLCIjJEAmIl07bGV0IGU9IiAiK24uam9pbigiIik7TTEuajA9W10sZS5zcGxpdCgiIikuZm9yRWFjaCh0PT57TTEuajAucHVzaChNMS5KMVt0XSl9KTt2YXIgcyxpPVsxMDIzLDEsMywxNSwzMSw2MywxMjcsMjU1LDYzOSw4MSxSTkQubzEoMSwxMDI0KV0sdT1STkQudTEoaSk7bGV0IGc9W107Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspMCE9KHUmMTw8dCkmJihzPW5bdF0uc3BsaXQoIiIpLm1hcCh0PT5lLmluZGV4T2YodCkpLGcucHVzaCguLi5zKSk7dmFyIGk9azEoKSxhPVJORC51MShPYmplY3Qua2V5cyhpKSk7bGV0IHo9aVthXSxBPSh6LmI9KChlLHIpPT57dmFyIGk9bmV3IEFycmF5KHIpO2ZvcihsZXQgdD0wO3Q8cjt0Kyspe3ZhciBuPU1hdGguZmxvb3IodC9yKmUubGVuZ3RoKTtpW3RdPWVbbl19cmV0dXJuIGl9KSh6LmIscikse2R1cmF0aW9uOk1hdGguZmxvb3IoMTI4KzE2KlJORC5vMSgyLDcpKlcpLHNoYXBlOlJORC51MShPYmplY3Qua2V5cyhiKSksImRlbnNpdHkgYml0cyI6dSxwYWxldHRlOmF9KTt2YXIgZj1YLm51bVBsYW5lcyxpPVguY29scyxyPVgucm93cztOMT1pLFIxPXI7Zm9yKGxldCB0PTA7dDxmO3QrKylwLnB1c2goe2swOm5ldyB5MShOMSxSMSksTzA6bmV3IHkxKE4xLFIxKSxBMDpuZXcgeTEoTjEsUjEpfSk7YWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdD0+eyJwIj09dC5rZXk/aTE9ITA6InMiPT10LmtleT9uMT0hMDoiYyI9PXQua2V5P2RvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSJub25lIj09ZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I/ImF1dG8iOiJub25lIjoiZiI9PXQua2V5P2RvY3VtZW50LmJvZHkucmVxdWVzdEZ1bGxzY3JlZW4mJmRvY3VtZW50LmJvZHkucmVxdWVzdEZ1bGxzY3JlZW4oKS5jYXRjaCh0PT5jb25zb2xlLndhcm4odCkpOiJpIj09dC5rZXk/KGUxPSFlMSk/Qi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTpCLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpOiJvIj09dC5rZXk/aDE9IWgxOiJ3Ij09dC5rZXk/WC5zdHJva2VNb2RlPShYLnN0cm9rZU1vZGUrMSklMjoiQXJyb3dVcCI9PXQua2V5P1guc3Ryb2tlV2VpZ2h0PU1hdGgubWluKDEwLFguc3Ryb2tlV2VpZ2h0Ky4xKToiQXJyb3dEb3duIj09dC5rZXk/WC5zdHJva2VXZWlnaHQ9TWF0aC5tYXgoLjUsWC5zdHJva2VXZWlnaHQtLjEpOiJBcnJvd1JpZ2h0Ij09dC5rZXk/KFguZm92PU1hdGgubWluKE1hdGguUEkvOCo3LFguZm92Ky4xKSxhMT0hMCk6IkFycm93TGVmdCI9PXQua2V5PyhYLmZvdj1NYXRoLm1heChNYXRoLlBJLzgsWC5mb3YtLjEpLGExPSEwKToiSCI9PXQua2V5P3IxPSFyMToiaCI9PXQua2V5JiYoczE9PVY/czE9WTpzMT09WT9zMT1WOnMxPT1aJiYoczE9SikpfSksYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwoKT0+YTE9ITApLGFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHQ9Pnt0LnByZXZlbnREZWZhdWx0KCl9KTtsZXQgaz16MSh0KSxPPXtyeDowLHJ5OjB9O2E9IiN2ZXJzaW9uIDMwMCBlc1xucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O3ByZWNpc2lvbiBoaWdocCBpbnQ7XG4jZGVmaW5lIE5QIF80XG51bmlmb3JtIG1hdDRbTlBdIF9kO3VuaWZvcm0gdmVjMiBfZTt1bmlmb3JtIGludCBfZjt1bmlmb3JtIGZsb2F0IF8xMCxfMTE7aW4gaW50IF81O2luIGZsb2F0IF82LF83LF84O2luIHZlYzMgXzksX2EsX2IsX2M7b3V0IHZlYzQgY29sb3I7b3V0IGZsb2F0IGZvZ19hbW91bnQ7XG4jZGVmaW5lIF8zIDBcbiNkZWZpbmUgTU9ERV9GTEFUIDFcbnZvaWQgbWFpbigpe3ZlYzMgYT1taXgoX2EsX2IsXzcpLG49bWl4KF9hLF9iLF84KTtpbnQgZj1fNTtpZihfZj09XzMpe3ZlYzQgdT1fZFtmXSp2ZWM0KGEsMSksdj1fZFtmXSp2ZWM0KG4sMSk7dmVjMiBpPV9lKiguNSp1LnN0L3UucSsuNSksdD1fZSooLjUqdi5zdC92LnErLjUpLHA9bm9ybWFsaXplKHQtaSksQT1fMTEqKF85LnMqcCtfOS50KnZlYzIoLXAudCxwKSkqXzEwO3ZlYzQgZT1taXgodSx2LF85LnApO2dsX1Bvc2l0aW9uPXZlYzQoZS5xKigyLiptaXgoaStBLHQrQSxfOS5wKS9fZS0xLiksZS5wcSk7fWVsc2UgaWYoX2Y9PU1PREVfRkxBVCl7dmVjMiB2PW5vcm1hbGl6ZShuLnN0LWEuc3QpLEE9XzExKihfOS5zKnYrXzkudCp2ZWMyKC12LnQsdikpKl8xMDtnbF9Qb3NpdGlvbj1fZFtmXSp2ZWM0KG1peChhLnN0K0Esbi5zdCtBLF85LnApLGEucCwxKTt9Y29sb3I9dmVjNChfYywxLi1zbW9vdGhzdGVwKC45LDEuLDEuLV84KSk7fVxuIi5yZXBsYWNlQWxsKCJfNCIsWC5udW1QbGFuZXMpO2xldCBqPW5ldyBiMShsMSwoKHQsZSxyKT0+e3ZhciBlPW0odCxlLHQuVkVSVEVYX1NIQURFUikscj1tKHQscix0LkZSQUdNRU5UX1NIQURFUiksaT10LmNyZWF0ZVByb2dyYW0oKTtpZih0LmF0dGFjaFNoYWRlcihpLGUpLHQuYXR0YWNoU2hhZGVyKGksciksdC5saW5rUHJvZ3JhbShpKSwhMCE9PXQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihpLHQuTElOS19TVEFUVVMpKXRocm93IHQuZ2V0UHJvZ3JhbUluZm9Mb2coaSk7cmV0dXJuIGl9KShsMSxhLCIjdmVyc2lvbiAzMDAgZXNcbnByZWNpc2lvbiBoaWdocCBmbG9hdDtpbiB2ZWM0IGNvbG9yO291dCB2ZWM0IG91dENvbG9yO3ZvaWQgbWFpbigpe291dENvbG9yPXZlYzQoY29sb3IpO31cbiIpKSxFPWwxLmNyZWF0ZVZlcnRleEFycmF5KCk7bDEuYmluZFZlcnRleEFycmF5KEUpO3ZhciBoPVtbMCwtLjUsMF0sWzAsLS41LDFdLFswLC41LDFdLFswLC0uNSwwXSxbMCwuNSwxXSxbMCwuNSwwXV07Zm9yKGxldCB0PTA7dDxYLnN0cm9rZVJlc29sdXRpb247dCsrKXt2YXIgYz1NYXRoLlBJLzIrKHQrMCkqTWF0aC5QSS9YLnN0cm9rZVJlc29sdXRpb24sdj1NYXRoLlBJLzIrKHQrMSkqTWF0aC5QSS9YLnN0cm9rZVJlc29sdXRpb247aC5wdXNoKFswLDAsMF0pLGgucHVzaChbLjUqTWF0aC5jb3MoYyksLjUqTWF0aC5zaW4oYyksMF0pLGgucHVzaChbLjUqTWF0aC5jb3ModiksLjUqTWF0aC5zaW4odiksMF0pfWZvcihsZXQgdD0wO3Q8WC5zdHJva2VSZXNvbHV0aW9uO3QrKyl7dmFyIE09MypNYXRoLlBJLzIrKHQrMCkqTWF0aC5QSS9YLnN0cm9rZVJlc29sdXRpb24seT0zKk1hdGguUEkvMisodCsxKSpNYXRoLlBJL1guc3Ryb2tlUmVzb2x1dGlvbjtoLnB1c2goWzAsMCwxXSksaC5wdXNoKFsuNSpNYXRoLmNvcyhNKSwuNSpNYXRoLnNpbihNKSwxXSksaC5wdXNoKFsuNSpNYXRoLmNvcyh5KSwuNSpNYXRoLnNpbih5KSwxXSl9bGV0IEg9bmV3IE4obDEsIl85IiwzLGguZmxhdCgpLmxlbmd0aC8zKSxGPShILnoxKGouTzEpLEguQTEoMCksSC5nMT1uZXcgRmxvYXQzMkFycmF5KGguZmxhdCgpKSxILmVuYWJsZSgpLEguYnVmZmVyRGF0YShsMS5TVEFUSUNfRFJBVykse251bUVsZW1lbnRzOjAsczA6W119KTtpPW5ldyBOKGwxLCJfNyIsMSxQKSxyPShpLnoxKGouTzEpLGkuQTEoMSksRi5zMC5jMD1pLG5ldyBOKGwxLCJfOCIsMSxQKSksdD0oci56MShqLk8xKSxyLkExKDEpLEYuczAudjA9cixuZXcgTihsMSwiX2MiLDMsUCkpLGE9KHQuejEoai5PMSksdC5BMSgxKSxGLnMwLmNvbG9yPXQsbmV3IE4obDEsIl9hIiwzLFApKSxpPShhLnoxKGouTzEpLGEuQTEoMSksRi5zMC5oMD1hLG5ldyBOKGwxLCJfYiIsMyxQKSkscj0oaS56MShqLk8xKSxpLkExKDEpLEYuczAudTA9aSxuZXcgTihsMSwiXzUiLDEsUCxsMS5TSE9SVCkpO3IuejEoai5PMSksci5BMSgxKSxGLnMwLnRyYW5zZm9ybT1yLE9iamVjdC5rZXlzKEYuczApLmZvckVhY2godD0+e0YuczBbdF0uZW5hYmxlKCl9KTtsZXQgUz1uZXcgcDEoMWUzKSxUPTAsST1PYmplY3Quc2VhbCh7aXRyOjAsZnJhbWU6MCxzdWJGcmFtZTowLHRfbm9ybTowfSksTD1bXSxHPVtdO2ZvcihsZXQgdD0wO3Q8WC5udW1QbGFuZXM7dCsrKUcucHVzaChsMS5nZXRVbmlmb3JtTG9jYXRpb24oai5PMSwiX2RbIit0KyJdIikpO3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiB0KGUpe3JlcXVlc3RBbmltYXRpb25GcmFtZSh0KTtsZXQgcj0xZTMvVTtsZXQgaT1lLVQ7e2lmKCEoaT49cikpcmV0dXJuO1Q9ZS1pJXJ9bGV0IG49TWF0aC5yb3VuZChTLmQxKGUpKTthMSYmKGExPSExLHQxLndpZHRoPWwxLmNhbnZhcy5jbGllbnRXaWR0aCx0MS5oZWlnaHQ9bDEuY2FudmFzLmNsaWVudEhlaWdodCx0MS5waXhlbD13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyx0MS5hc3BlY3Q9dDEud2lkdGgvdDEuaGVpZ2h0LDE8dDEuYXNwZWN0PygkLnBsYW5lVz0kLmJhc2UsJC5wbGFuZUg9JC5iYXNlL3QxLmFzcGVjdCwkLnZGb3Y9MipNYXRoLmF0YW4oTWF0aC50YW4oWC5mb3YvMikvdDEuYXNwZWN0KSk6KCQucGxhbmVXPSQuYmFzZSp0MS5hc3BlY3QsJC5wbGFuZUg9JC5iYXNlLCQudkZvdj1YLmZvdiksJC5leWVEaXN0PSQucGxhbmVILzIvTWF0aC50YW4oJC52Rm92LzIpLGwxLmNhbnZhcy53aWR0aD10MS53aWR0aCp0MS5waXhlbCxsMS5jYW52YXMuaGVpZ2h0PXQxLmhlaWdodCp0MS5waXhlbCxsMS52aWV3cG9ydCgwLDAsbDEuY2FudmFzLndpZHRoLGwxLmNhbnZhcy5oZWlnaHQpKTtsMS5jbGVhcihsMS5DT0xPUl9CVUZGRVJfQklUfGwxLkRFUFRIX0JVRkZFUl9CSVQpO2wxLmNsZWFyQ29sb3IoMCwwLDAsMSk7bDEudXNlUHJvZ3JhbShqLk8xKTtsZXQgYT1rLngvbDEuY2FudmFzLmNsaWVudFdpZHRoKjItMTtsZXQgaD1rLnkvbDEuY2FudmFzLmNsaWVudEhlaWdodCoyLTE7bGV0IHM9dTEoay5wcmVzc2VkP2g6MCwtSyxLKTtsZXQgbz11MShrLnByZXNzZWQ/YTowLC1LLEspO08ucngrPShzLU8ucngpKlE7Ty5yeSs9KG8tTy5yeSkqUTtsZXQgbD0zKiQuYmFzZTtsZXQgdT0xO2xldCBmPShYLm51bVBsYW5lcysyKSpsO2xldCBjPXQxLndpZHRoLzIqMS4wNTtsZXQgdj10MS5oZWlnaHQvMioxLjA1O2xldCBNPWgxP3YxLlgxKC1jLGMsLXYsdiwtZixmKTp2MS5UMSgkLnZGb3YsdDEuYXNwZWN0LDEsZik7bGV0IHk9TWF0aC5tYXgodDEud2lkdGgsdDEuaGVpZ2h0KS8kLmJhc2U7aDEmJnYxLnNjYWxlKE0seSx5LHksTSk7djEuSTEoTSwwLDAsLWwsTSk7djEuTDEoTSwtTy5yeCxNKTt2MS5HMShNLC1PLnJ5LE0pO3YxLkkxKE0sMCwwLGwsTSk7aWYoMD09SS5zdWJGcmFtZSYmczE9PVZ8fDA9PUkuZnJhbWUpZm9yKEwuc2hpZnQoKTtMLmxlbmd0aDxYLm51bVBsYW5lczspe2xldCB0PXouYVtJLml0ciV6LmEubGVuZ3RoXTtMLnB1c2goe3RyYW5zZm9ybTpqMSgkLnBsYW5lVywkLnBsYW5lSCxsKSxIMDpuZXcgQTEoTTEsZyx0LEEsWCwkLHQxKX0pLEkuaXRyKyt9bGV0IEQ7RD0xPT1YLnN0cm9rZU1vZGU/WC5zdHJva2VXZWlnaHQ6WC5zdHJva2VXZWlnaHQqTWF0aC5zcXJ0KE1hdGgucG93KHQxLndpZHRoLDIpK01hdGgucG93KHQxLmhlaWdodCwyKSkvJC5iYXNlO0Q9TWF0aC5tYXgoLjUsRCk7bGV0IE49ZjEoLjEsLjksSS50X25vcm0pO2xldCBSPXYxLkkxKHYxLmlkZW50aXR5KCksMCwwLCQuZXllRGlzdCt4KTtsZXQgXz12MS5JMShMWzBdLnRyYW5zZm9ybSwwLDAsJC5leWVEaXN0K3gpO2xldCBkPWcxKFIsXyxOKTtsZXQgdz12MS5pbnZlcnNlKGQpO2xldCBtPXYxLm11bHRpcGx5KE0sdyk7ai5zZXQoIl8xMCIsdDEucGl4ZWwpO2ouc2V0KCJfZSIsbDEuY2FudmFzLndpZHRoLGwxLmNhbnZhcy5oZWlnaHQpO2ouc2V0KCJfZiIsWC5zdHJva2VNb2RlKTtqLnNldCgiXzExIixEKTtGLm51bUVsZW1lbnRzPTA7bDEuYmluZFZlcnRleEFycmF5KEUpO2xldCBwPXYxLmlkZW50aXR5KCk7Zm9yKGxldCBpPTA7aTxYLm51bVBsYW5lcztpKyspe2xldCB0PXYxLm11bHRpcGx5KG0scCk7bDEudW5pZm9ybU1hdHJpeDRmdihHW2ldLCExLHQpLHA9djEubXVsdGlwbHkocCxMW2ldLnRyYW5zZm9ybSk7bGV0IGU7ZT0wPT1pPzEtZjEoLjMsLjksSS50X25vcm0pOmk9PVgubnVtUGxhbmVzLTE/ZjEoMCwxLEkudF9ub3JtKToxLExbaV0uSDAubG9vcChNMSxGLGksZSxJLFcpO2xldCByO3I9MD09aT8xLWYxKC41LDEsSS50X25vcm0pOmk9PVgubnVtUGxhbmVzLTE/ZjEoMCwuMyxJLnRfbm9ybSk6MSxiW0Euc2hhcGVdKEYsaSx6LmIsJCxyKX1PYmplY3Qua2V5cyhGLnMwKS5mb3JFYWNoKHQ9PntsZXQgZT1GLnMwW3RdO2UubDAmJihlLmJ1ZmZlckRhdGEobDEuRFlOQU1JQ19EUkFXKSxlLmwwPSExKX0pO2wxLmRyYXdBcnJheXNJbnN0YW5jZWQobDEuVFJJQU5HTEVTLDAsSC5udW1FbGVtZW50cyxGLm51bUVsZW1lbnRzKTtvMT1NYXRoLm1heChvMSxGLm51bUVsZW1lbnRzKTtpZihyMSl7Ri5udW1FbGVtZW50cz0wO2xldCB0PTEsZT0yMCxuPXQxLndpZHRoLTQtMjAscj0zMCxpPShNMS5KMS5ocC5mb3JFYWNoKGk9PntsZXQgdD1pLmxlbmd0aC8yLTE7Zm9yKGxldCByPTA7cjx0O3IrKyl7bGV0IHQ9MipyLGU9e3gxOm4rICtpWzArdF0seTE6K2lbMSt0XSszMCxvMDowLHgyOm4rICtpWzIrdF0seTI6K2lbMyt0XSszMCxmMDowfTtEMShGLDAsZSx6LmFbMF0sMCwxKX19KSxPYmplY3Qua2V5cyhGLnMwKS5mb3JFYWNoKHQ9PntsZXQgZT1GLnMwW3RdO2UubDAmJihlLmJ1ZmZlckRhdGEobDEuRFlOQU1JQ19EUkFXKSxlLmwwPSExKX0pLHYxLlgxKDAsdDEud2lkdGgsMCx0MS5oZWlnaHQsLWYsZikpO3YxLnNjYWxlKGksMSwxLDEsaSksbDEudW5pZm9ybU1hdHJpeDRmdihHWzBdLCExLGkpLGwxLmRyYXdBcnJheXNJbnN0YW5jZWQobDEuVFJJQU5HTEVTLDAsSC5udW1FbGVtZW50cyxGLm51bUVsZW1lbnRzKX1sMS5iaW5kVmVydGV4QXJyYXkobnVsbCk7aWYoaTEpe2kxPSExO2xldCB0PUMrIl8iK0RhdGUubm93KCkrIi5wbmciO3gxKHQsbDEuY2FudmFzKX1pZihuMSl7bjE9ITE7bGV0IHQ9QysiXyIrRGF0ZS5ub3coKSsiLnN2ZyIsZT1uZXcgWE1MU2VyaWFsaXplcixyPWUuc2VyaWFsaXplVG9TdHJpbmcoTzEoTFswXS5IMCwkLmJhc2UsJC5iYXNlKSksaT1uZXcgQmxvYihbcl0se3R5cGU6ImltYWdlL3N2Zyt4bWwifSk7YzEoaSx0KX1pZihlMSl7bGV0IHQ9MTgsZT0iIi5wYWRTdGFydCgzNiwiLSIpLHI9IiI7cj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocj0ocis9ZSsiXG4iKSttMShxLDE4KSkrKGUrIlxuIikpK20xKFgsMTgpKSsoZSsiXG4iKSkrbTEoeyJmcHMgKGN1cnJlbnQpIjpuLGZyYW1lOkkuZnJhbWUsdF9ub3JtOkkudF9ub3JtLHBsYXliYWNrU3RhdGU6czEuZGVzY3JpcHRpb24sbnVtRWxlbWVudHM6Ri5udW1FbGVtZW50c30sMTgpKSsoIm1heEVsZW1lbnRzIi5wYWRFbmQoMTgpK28xKyIvIitQKyJcbiIpKSsoZSsiXG4iKSkrbTEodDEsMTgpKSsoZSsiXG4iKSkrbTEoJCwxOCkpKyhlKyJcbiIpKSttMShBLDE4KSkrKGUrIlxuIikpKygia2V5cyIucGFkRW5kKDE2KSsiaSB0b2dnbGUgaW5mb1xuIikpKygiZiIucGFkRW5kKDIpLnBhZFN0YXJ0KDE4KSsiZnVsbHNjcmVlblxuIikpKygidyIucGFkRW5kKDIpLnBhZFN0YXJ0KDE4KSsidG9nZ2xlIHdpcmVmcmFtZVxuIikpKygibyIucGFkRW5kKDIpLnBhZFN0YXJ0KDE4KSsidG9nZ2xlIG9ydGhvXG4iKSkrKCJcdTIxOTNcdTIxOTEiLnBhZEVuZCgzKS5wYWRTdGFydCgxOCkrInN0cm9rZSB3aWR0aFxuIikpKygiXHUyMTkwXHUyMTkyIi5wYWRFbmQoMykucGFkU3RhcnQoMTgpKyJmb3ZcbiIpKSsoInAiLnBhZEVuZCgyKS5wYWRTdGFydCgxOCkrImV4cG9ydCBQTkdcbiIpKSsoInYiLnBhZEVuZCgyKS5wYWRTdGFydCgxOCkrImV4cG9ydCBTVkdcbiIpKSsoImMiLnBhZEVuZCgyKS5wYWRTdGFydCgxOCkrImhpZGUgY3Vyc29yXG4iKSkrKCJoIi5wYWRFbmQoMikucGFkU3RhcnQoMTgpKyJoYWx0L3Jlc3VtZVxuIikpKyhlKyJcbiIpLEIuaW5uZXJIVE1MPXJ9SS5mcmFtZSsrO0kuZnJhbWUlQS5kdXJhdGlvbj09MCYmKHMxPT1ZP3MxPVo6czE9PUomJihzMT1WKSk7czE9PVZ8fHMxPT1ZPyhJLnN1YkZyYW1lPUkuZnJhbWUlQS5kdXJhdGlvbixJLnRfbm9ybT1JLnN1YkZyYW1lL0EuZHVyYXRpb24pOkkuc3ViRnJhbWU9SS5mcmFtZX0pfWVsc2UgY29uc29sZS53YXJuKCJFcnJvciIpfWZ1bmN0aW9uIG0xKGUscil7bGV0IGk9IiI7Zm9yKHZhciBuIGluIGUpe2xldCB0PWVbbl07Im51bWJlciIhPXR5cGVvZiB0fHxOdW1iZXIuaXNJbnRlZ2VyKHQpfHwodD10LnRvRml4ZWQoMikpLGkrPW4ucGFkRW5kKHIpKygodCxlKT0+KHQ9U3RyaW5nKHQpKS5sZW5ndGg+ZT8iLi4uIit0LnN1YnN0cmluZyh0Lmxlbmd0aC1lKzMpOnQpKHQscikrIlxuIn1yZXR1cm4gaX1mdW5jdGlvbiBqMSh0LGUscil7dmFyIGk9Uk5ELk0xKFtbMSxbMCwwLDBdXSxbMixbMSwwLDBdXSxbMixbMCwxLDBdXSxbMixbMCwwLDFdXSxbMixbMSwxLDBdXSxbMSxbLjUsLjUsLjVdXV0pO3JldHVybiBvKChSTkQuZmxvYXQoKS0uNSkqTWF0aC5QSSouNippWzBdLChSTkQuZmxvYXQoKS0uNSkqTWF0aC5QSSouNippWzFdLChSTkQuZmxvYXQoKS0uNSkqTWF0aC5QSSouNippWzJdLDIqKFJORC5mbG9hdCgpKnQtdC8yKSwyKihSTkQuZmxvYXQoKSplLWUvMiksLXIpfQpjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7CmNvbnN0IFNFRUQgPSBPYmplY3Quc2VhbCh7CiAgaGFzaDogaGFzaCB8fCBwYXJhbXMuZ2V0KCdoYXNoJykgfHwgTWF0aC5yYW5kb20oKS50b1N0cmluZygxNikuc3Vic3RyaW5nKDIpLAogIHRva2VuSWQ6IHRva2VuSWQgfHwgcGFyYW1zLmdldCgndG9rZW5JZCcpIHx8IDAsCn0pOwpjb25zdCBTRVRUSU5HUyA9IE9iamVjdC5zZWFsKHsKICBmcHMgICAgICAgICAgICAgIDogTWF0aC5tYXgoMzAsIHBhcnNlSW50KHBhcmFtcy5nZXQoImZwcyIpKSB8fCA2MCksCiAgc3Ryb2tlUmVzb2x1dGlvbiA6IE1hdGgubWF4KDIsIHBhcnNlSW50KHBhcmFtcy5nZXQoInN0cm9rZVJlc29sdXRpb24iKSkgfHwgNiksCiAgc3Ryb2tlTW9kZSAgICAgICA6IHBhcnNlSW50KHBhcmFtcy5nZXQoInN0cm9rZU1vZGUiKSkgfHwgMCwKICBzdHJva2VXZWlnaHQgICAgIDogcGFyc2VGbG9hdChwYXJhbXMuZ2V0KCJzdHJva2VXZWlnaHQiKSkgfHwgMS4yLAogIG51bVBsYW5lcyAgICAgICAgOiBNYXRoLm1pbig2LCBNYXRoLm1heCgyLCBwYXJzZUludChwYXJhbXMuZ2V0KCJudW1QbGFuZXMiKSkgfHwgMykpLAogIG1heFNlZ21lbnRzICAgICAgOiBwYXJzZUludChwYXJhbXMuZ2V0KCJtYXhTZWdtZW50cyIpKSB8fCAwLAogIGNvbHMgICAgICAgICAgICAgOiBwYXJzZUludChwYXJhbXMuZ2V0KCJjb2xzIikpIHx8IDEyOCwKICByb3dzICAgICAgICAgICAgIDogcGFyc2VJbnQocGFyYW1zLmdldCgicm93cyIpKSB8fCA2NCwKICBzY2FsZSAgICAgICAgICAgIDogcGFyc2VGbG9hdChwYXJhbXMuZ2V0KCJzY2FsZSIpKSB8fCAyLAogIGZvdiAgICAgICAgICAgICAgOiBwYXJzZUZsb2F0KHBhcmFtcy5nZXQoImZvdiIpKSB8fCBNYXRoLlBJIC8gNCwKICBjYXB0dXJlICAgICAgICAgIDogcGFyc2VJbnQocGFyYW1zLmdldCgiY2FwdHVyZSIpKSB8fCAwLAp9KTsKdChTRUVELCBTRVRUSU5HUyk7PC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4K","description":"","image":"https://storage.googleapis.com/flamingo-flutter-xyz-thumbnails/18.png","name":"X-Y-Z #18"}