3N4XMPXxEs6eZsy78Fgo4butfcAiwoDtG9P · data · 2.7c767379.chunk.js_3
{
"2.7c767379.chunk.js_3": "base64:KyhpPj4+MTMpfDApKyhFZT4+PjI2KXwwLEVlJj02NzEwODg2MyxuPU1hdGguaW11bChQLFYpLGk9KGk9TWF0aC5pbXVsKFAscSkpK01hdGguaW11bChSLFYpfDAsbz1NYXRoLmltdWwoUixxKSxuPW4rTWF0aC5pbXVsKGsseil8MCxpPShpPWkrTWF0aC5pbXVsKGssRyl8MCkrTWF0aC5pbXVsKE8seil8MCxvPW8rTWF0aC5pbXVsKE8sRyl8MCxuPW4rTWF0aC5pbXVsKEMsVyl8MCxpPShpPWkrTWF0aC5pbXVsKEMsWSl8MCkrTWF0aC5pbXVsKHgsVyl8MCxvPW8rTWF0aC5pbXVsKHgsWSl8MCxuPW4rTWF0aC5pbXVsKHcsUSl8MCxpPShpPWkrTWF0aC5pbXVsKHcsJCl8MCkrTWF0aC5pbXVsKFQsUSl8MCxvPW8rTWF0aC5pbXVsKFQsJCl8MCxuPW4rTWF0aC5pbXVsKF8sSil8MCxpPShpPWkrTWF0aC5pbXVsKF8sZWUpfDApK01hdGguaW11bChTLEopfDAsbz1vK01hdGguaW11bChTLGVlKXwwLG49bitNYXRoLmltdWwodixyZSl8MCxpPShpPWkrTWF0aC5pbXVsKHYsbmUpfDApK01hdGguaW11bChtLHJlKXwwLG89bytNYXRoLmltdWwobSxuZSl8MCxuPW4rTWF0aC5pbXVsKGQsb2UpfDAsaT0oaT1pK01hdGguaW11bChkLGFlKXwwKStNYXRoLmltdWwoeSxvZSl8MCxvPW8rTWF0aC5pbXVsKHksYWUpfDA7dmFyIHdlPShjKyhuPW4rTWF0aC5pbXVsKGwsdWUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGNlKXwwKStNYXRoLmltdWwoaCx1ZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChoLGNlKXwwKSsoaT4+PjEzKXwwKSsod2U+Pj4yNil8MCx3ZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoTSxWKSxpPShpPU1hdGguaW11bChNLHEpKStNYXRoLmltdWwoTCxWKXwwLG89TWF0aC5pbXVsKEwscSksbj1uK01hdGguaW11bChQLHopfDAsaT0oaT1pK01hdGguaW11bChQLEcpfDApK01hdGguaW11bChSLHopfDAsbz1vK01hdGguaW11bChSLEcpfDAsbj1uK01hdGguaW11bChrLFcpfDAsaT0oaT1pK01hdGguaW11bChrLFkpfDApK01hdGguaW11bChPLFcpfDAsbz1vK01hdGguaW11bChPLFkpfDAsbj1uK01hdGguaW11bChDLFEpfDAsaT0oaT1pK01hdGguaW11bChDLCQpfDApK01hdGguaW11bCh4LFEpfDAsbz1vK01hdGguaW11bCh4LCQpfDAsbj1uK01hdGguaW11bCh3LEopfDAsaT0oaT1pK01hdGguaW11bCh3LGVlKXwwKStNYXRoLmltdWwoVCxKKXwwLG89bytNYXRoLmltdWwoVCxlZSl8MCxuPW4rTWF0aC5pbXVsKF8scmUpfDAsaT0oaT1pK01hdGguaW11bChfLG5lKXwwKStNYXRoLmltdWwoUyxyZSl8MCxvPW8rTWF0aC5pbXVsKFMsbmUpfDAsbj1uK01hdGguaW11bCh2LG9lKXwwLGk9KGk9aStNYXRoLmltdWwodixhZSl8MCkrTWF0aC5pbXVsKG0sb2UpfDAsbz1vK01hdGguaW11bChtLGFlKXwwLG49bitNYXRoLmltdWwoZCx1ZSl8MCxpPShpPWkrTWF0aC5pbXVsKGQsY2UpfDApK01hdGguaW11bCh5LHVlKXwwLG89bytNYXRoLmltdWwoeSxjZSl8MDt2YXIgVGU9KGMrKG49bitNYXRoLmltdWwobCxsZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwsaGUpfDApK01hdGguaW11bChoLGxlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGgsaGUpfDApKyhpPj4+MTMpfDApKyhUZT4+PjI2KXwwLFRlJj02NzEwODg2MyxuPU1hdGguaW11bChqLFYpLGk9KGk9TWF0aC5pbXVsKGoscSkpK01hdGguaW11bChVLFYpfDAsbz1NYXRoLmltdWwoVSxxKSxuPW4rTWF0aC5pbXVsKE0seil8MCxpPShpPWkrTWF0aC5pbXVsKE0sRyl8MCkrTWF0aC5pbXVsKEwseil8MCxvPW8rTWF0aC5pbXVsKEwsRyl8MCxuPW4rTWF0aC5pbXVsKFAsVyl8MCxpPShpPWkrTWF0aC5pbXVsKFAsWSl8MCkrTWF0aC5pbXVsKFIsVyl8MCxvPW8rTWF0aC5pbXVsKFIsWSl8MCxuPW4rTWF0aC5pbXVsKGssUSl8MCxpPShpPWkrTWF0aC5pbXVsKGssJCl8MCkrTWF0aC5pbXVsKE8sUSl8MCxvPW8rTWF0aC5pbXVsKE8sJCl8MCxuPW4rTWF0aC5pbXVsKEMsSil8MCxpPShpPWkrTWF0aC5pbXVsKEMsZWUpfDApK01hdGguaW11bCh4LEopfDAsbz1vK01hdGguaW11bCh4LGVlKXwwLG49bitNYXRoLmltdWwodyxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKHcsbmUpfDApK01hdGguaW11bChULHJlKXwwLG89bytNYXRoLmltdWwoVCxuZSl8MCxuPW4rTWF0aC5pbXVsKF8sb2UpfDAsaT0oaT1pK01hdGguaW11bChfLGFlKXwwKStNYXRoLmltdWwoUyxvZSl8MCxvPW8rTWF0aC5pbXVsKFMsYWUpfDAsbj1uK01hdGguaW11bCh2LHVlKXwwLGk9KGk9aStNYXRoLmltdWwodixjZSl8MCkrTWF0aC5pbXVsKG0sdWUpfDAsbz1vK01hdGguaW11bChtLGNlKXwwLG49bitNYXRoLmltdWwoZCxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKGQsaGUpfDApK01hdGguaW11bCh5LGxlKXwwLG89bytNYXRoLmltdWwoeSxoZSl8MDt2YXIgQWU9KGMrKG49bitNYXRoLmltdWwobCxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwseWUpfDApK01hdGguaW11bChoLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGgseWUpfDApKyhpPj4+MTMpfDApKyhBZT4+PjI2KXwwLEFlJj02NzEwODg2MyxuPU1hdGguaW11bChqLHopLGk9KGk9TWF0aC5pbXVsKGosRykpK01hdGguaW11bChVLHopfDAsbz1NYXRoLmltdWwoVSxHKSxuPW4rTWF0aC5pbXVsKE0sVyl8MCxpPShpPWkrTWF0aC5pbXVsKE0sWSl8MCkrTWF0aC5pbXVsKEwsVyl8MCxvPW8rTWF0aC5pbXVsKEwsWSl8MCxuPW4rTWF0aC5pbXVsKFAsUSl8MCxpPShpPWkrTWF0aC5pbXVsKFAsJCl8MCkrTWF0aC5pbXVsKFIsUSl8MCxvPW8rTWF0aC5pbXVsKFIsJCl8MCxuPW4rTWF0aC5pbXVsKGssSil8MCxpPShpPWkrTWF0aC5pbXVsKGssZWUpfDApK01hdGguaW11bChPLEopfDAsbz1vK01hdGguaW11bChPLGVlKXwwLG49bitNYXRoLmltdWwoQyxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKEMsbmUpfDApK01hdGguaW11bCh4LHJlKXwwLG89bytNYXRoLmltdWwoeCxuZSl8MCxuPW4rTWF0aC5pbXVsKHcsb2UpfDAsaT0oaT1pK01hdGguaW11bCh3LGFlKXwwKStNYXRoLmltdWwoVCxvZSl8MCxvPW8rTWF0aC5pbXVsKFQsYWUpfDAsbj1uK01hdGguaW11bChfLHVlKXwwLGk9KGk9aStNYXRoLmltdWwoXyxjZSl8MCkrTWF0aC5pbXVsKFMsdWUpfDAsbz1vK01hdGguaW11bChTLGNlKXwwLG49bitNYXRoLmltdWwodixsZSl8MCxpPShpPWkrTWF0aC5pbXVsKHYsaGUpfDApK01hdGguaW11bChtLGxlKXwwLG89bytNYXRoLmltdWwobSxoZSl8MDt2YXIgQ2U9KGMrKG49bitNYXRoLmltdWwoZCxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGQseWUpfDApK01hdGguaW11bCh5LGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKHkseWUpfDApKyhpPj4+MTMpfDApKyhDZT4+PjI2KXwwLENlJj02NzEwODg2MyxuPU1hdGguaW11bChqLFcpLGk9KGk9TWF0aC5pbXVsKGosWSkpK01hdGguaW11bChVLFcpfDAsbz1NYXRoLmltdWwoVSxZKSxuPW4rTWF0aC5pbXVsKE0sUSl8MCxpPShpPWkrTWF0aC5pbXVsKE0sJCl8MCkrTWF0aC5pbXVsKEwsUSl8MCxvPW8rTWF0aC5pbXVsKEwsJCl8MCxuPW4rTWF0aC5pbXVsKFAsSil8MCxpPShpPWkrTWF0aC5pbXVsKFAsZWUpfDApK01hdGguaW11bChSLEopfDAsbz1vK01hdGguaW11bChSLGVlKXwwLG49bitNYXRoLmltdWwoayxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKGssbmUpfDApK01hdGguaW11bChPLHJlKXwwLG89bytNYXRoLmltdWwoTyxuZSl8MCxuPW4rTWF0aC5pbXVsKEMsb2UpfDAsaT0oaT1pK01hdGguaW11bChDLGFlKXwwKStNYXRoLmltdWwoeCxvZSl8MCxvPW8rTWF0aC5pbXVsKHgsYWUpfDAsbj1uK01hdGguaW11bCh3LHVlKXwwLGk9KGk9aStNYXRoLmltdWwodyxjZSl8MCkrTWF0aC5pbXVsKFQsdWUpfDAsbz1vK01hdGguaW11bChULGNlKXwwLG49bitNYXRoLmltdWwoXyxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKF8saGUpfDApK01hdGguaW11bChTLGxlKXwwLG89bytNYXRoLmltdWwoUyxoZSl8MDt2YXIgeGU9KGMrKG49bitNYXRoLmltdWwodixkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKHYseWUpfDApK01hdGguaW11bChtLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKG0seWUpfDApKyhpPj4+MTMpfDApKyh4ZT4+PjI2KXwwLHhlJj02NzEwODg2MyxuPU1hdGguaW11bChqLFEpLGk9KGk9TWF0aC5pbXVsKGosJCkpK01hdGguaW11bChVLFEpfDAsbz1NYXRoLmltdWwoVSwkKSxuPW4rTWF0aC5pbXVsKE0sSil8MCxpPShpPWkrTWF0aC5pbXVsKE0sZWUpfDApK01hdGguaW11bChMLEopfDAsbz1vK01hdGguaW11bChMLGVlKXwwLG49bitNYXRoLmltdWwoUCxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKFAsbmUpfDApK01hdGguaW11bChSLHJlKXwwLG89bytNYXRoLmltdWwoUixuZSl8MCxuPW4rTWF0aC5pbXVsKGssb2UpfDAsaT0oaT1pK01hdGguaW11bChrLGFlKXwwKStNYXRoLmltdWwoTyxvZSl8MCxvPW8rTWF0aC5pbXVsKE8sYWUpfDAsbj1uK01hdGguaW11bChDLHVlKXwwLGk9KGk9aStNYXRoLmltdWwoQyxjZSl8MCkrTWF0aC5pbXVsKHgsdWUpfDAsbz1vK01hdGguaW11bCh4LGNlKXwwLG49bitNYXRoLmltdWwodyxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKHcsaGUpfDApK01hdGguaW11bChULGxlKXwwLG89bytNYXRoLmltdWwoVCxoZSl8MDt2YXIgSWU9KGMrKG49bitNYXRoLmltdWwoXyxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKF8seWUpfDApK01hdGguaW11bChTLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFMseWUpfDApKyhpPj4+MTMpfDApKyhJZT4+PjI2KXwwLEllJj02NzEwODg2MyxuPU1hdGguaW11bChqLEopLGk9KGk9TWF0aC5pbXVsKGosZWUpKStNYXRoLmltdWwoVSxKKXwwLG89TWF0aC5pbXVsKFUsZWUpLG49bitNYXRoLmltdWwoTSxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKE0sbmUpfDApK01hdGguaW11bChMLHJlKXwwLG89bytNYXRoLmltdWwoTCxuZSl8MCxuPW4rTWF0aC5pbXVsKFAsb2UpfDAsaT0oaT1pK01hdGguaW11bChQLGFlKXwwKStNYXRoLmltdWwoUixvZSl8MCxvPW8rTWF0aC5pbXVsKFIsYWUpfDAsbj1uK01hdGguaW11bChrLHVlKXwwLGk9KGk9aStNYXRoLmltdWwoayxjZSl8MCkrTWF0aC5pbXVsKE8sdWUpfDAsbz1vK01hdGguaW11bChPLGNlKXwwLG49bitNYXRoLmltdWwoQyxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKEMsaGUpfDApK01hdGguaW11bCh4LGxlKXwwLG89bytNYXRoLmltdWwoeCxoZSl8MDt2YXIga2U9KGMrKG49bitNYXRoLmltdWwodyxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKHcseWUpfDApK01hdGguaW11bChULGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFQseWUpfDApKyhpPj4+MTMpfDApKyhrZT4+PjI2KXwwLGtlJj02NzEwODg2MyxuPU1hdGguaW11bChqLHJlKSxpPShpPU1hdGguaW11bChqLG5lKSkrTWF0aC5pbXVsKFUscmUpfDAsbz1NYXRoLmltdWwoVSxuZSksbj1uK01hdGguaW11bChNLG9lKXwwLGk9KGk9aStNYXRoLmltdWwoTSxhZSl8MCkrTWF0aC5pbXVsKEwsb2UpfDAsbz1vK01hdGguaW11bChMLGFlKXwwLG49bitNYXRoLmltdWwoUCx1ZSl8MCxpPShpPWkrTWF0aC5pbXVsKFAsY2UpfDApK01hdGguaW11bChSLHVlKXwwLG89bytNYXRoLmltdWwoUixjZSl8MCxuPW4rTWF0aC5pbXVsKGssbGUpfDAsaT0oaT1pK01hdGguaW11bChrLGhlKXwwKStNYXRoLmltdWwoTyxsZSl8MCxvPW8rTWF0aC5pbXVsKE8saGUpfDA7dmFyIE9lPShjKyhuPW4rTWF0aC5pbXVsKEMsZGUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChDLHllKXwwKStNYXRoLmltdWwoeCxkZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bCh4LHllKXwwKSsoaT4+PjEzKXwwKSsoT2U+Pj4yNil8MCxPZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixvZSksaT0oaT1NYXRoLmltdWwoaixhZSkpK01hdGguaW11bChVLG9lKXwwLG89TWF0aC5pbXVsKFUsYWUpLG49bitNYXRoLmltdWwoTSx1ZSl8MCxpPShpPWkrTWF0aC5pbXVsKE0sY2UpfDApK01hdGguaW11bChMLHVlKXwwLG89bytNYXRoLmltdWwoTCxjZSl8MCxuPW4rTWF0aC5pbXVsKFAsbGUpfDAsaT0oaT1pK01hdGguaW11bChQLGhlKXwwKStNYXRoLmltdWwoUixsZSl8MCxvPW8rTWF0aC5pbXVsKFIsaGUpfDA7dmFyIE5lPShjKyhuPW4rTWF0aC5pbXVsKGssZGUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChrLHllKXwwKStNYXRoLmltdWwoTyxkZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChPLHllKXwwKSsoaT4+PjEzKXwwKSsoTmU+Pj4yNil8MCxOZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaix1ZSksaT0oaT1NYXRoLmltdWwoaixjZSkpK01hdGguaW11bChVLHVlKXwwLG89TWF0aC5pbXVsKFUsY2UpLG49bitNYXRoLmltdWwoTSxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKE0saGUpfDApK01hdGguaW11bChMLGxlKXwwLG89bytNYXRoLmltdWwoTCxoZSl8MDt2YXIgUGU9KGMrKG49bitNYXRoLmltdWwoUCxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKFAseWUpfDApK01hdGguaW11bChSLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFIseWUpfDApKyhpPj4+MTMpfDApKyhQZT4+PjI2KXwwLFBlJj02NzEwODg2MyxuPU1hdGguaW11bChqLGxlKSxpPShpPU1hdGguaW11bChqLGhlKSkrTWF0aC5pbXVsKFUsbGUpfDAsbz1NYXRoLmltdWwoVSxoZSk7dmFyIFJlPShjKyhuPW4rTWF0aC5pbXVsKE0sZGUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChNLHllKXwwKStNYXRoLmltdWwoTCxkZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChMLHllKXwwKSsoaT4+PjEzKXwwKSsoUmU+Pj4yNil8MCxSZSY9NjcxMDg4NjM7dmFyIEJlPShjKyhuPU1hdGguaW11bChqLGRlKSl8MCkrKCg4MTkxJihpPShpPU1hdGguaW11bChqLHllKSkrTWF0aC5pbXVsKFUsZGUpfDApKTw8MTMpfDA7cmV0dXJuIGM9KChvPU1hdGguaW11bChVLHllKSkrKGk+Pj4xMyl8MCkrKEJlPj4+MjYpfDAsQmUmPTY3MTA4ODYzLHVbMF09Z2UsdVsxXT12ZSx1WzJdPW1lLHVbM109YmUsdVs0XT1fZSx1WzVdPVNlLHVbNl09RWUsdVs3XT13ZSx1WzhdPVRlLHVbOV09QWUsdVsxMF09Q2UsdVsxMV09eGUsdVsxMl09SWUsdVsxM109a2UsdVsxNF09T2UsdVsxNV09TmUsdVsxNl09UGUsdVsxN109UmUsdVsxOF09QmUsMCE9PWMmJih1WzE5XT1jLHIubGVuZ3RoKyspLHJ9O2Z1bmN0aW9uIGQoZSx0LHIpe3JldHVybihuZXcgeSkubXVscChlLHQscil9ZnVuY3Rpb24geShlLHQpe3RoaXMueD1lLHRoaXMueT10fU1hdGguaW11bHx8KHA9aCksby5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLmxlbmd0aCtlLmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT1lLmxlbmd0aD9wKHRoaXMsZSx0KTpyPDYzP2godGhpcyxlLHQpOnI8MTAyND9mdW5jdGlvbihlLHQscil7ci5uZWdhdGl2ZT10Lm5lZ2F0aXZlXmUubmVnYXRpdmUsci5sZW5ndGg9ZS5sZW5ndGgrdC5sZW5ndGg7Zm9yKHZhciBuPTAsaT0wLG89MDtvPHIubGVuZ3RoLTE7bysrKXt2YXIgYT1pO2k9MDtmb3IodmFyIHM9NjcxMDg4NjMmbix1PU1hdGgubWluKG8sdC5sZW5ndGgtMSksYz1NYXRoLm1heCgwLG8tZS5sZW5ndGgrMSk7Yzw9dTtjKyspe3ZhciBmPW8tYyxsPSgwfGUud29yZHNbZl0pKigwfHQud29yZHNbY10pLGg9NjcxMDg4NjMmbDtzPTY3MTA4ODYzJihoPWgrc3wwKSxpKz0oYT0oYT1hKyhsLzY3MTA4ODY0fDApfDApKyhoPj4+MjYpfDApPj4+MjYsYSY9NjcxMDg4NjN9ci53b3Jkc1tvXT1zLG49YSxhPWl9cmV0dXJuIDAhPT1uP3Iud29yZHNbb109bjpyLmxlbmd0aC0tLHIuc3RyaXAoKX0odGhpcyxlLHQpOmQodGhpcyxlLHQpfSx5LnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgQXJyYXkoZSkscj1vLnByb3RvdHlwZS5fY291bnRCaXRzKGUpLTEsbj0wO248ZTtuKyspdFtuXT10aGlzLnJldkJpbihuLHIsZSk7cmV0dXJuIHR9LHkucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihlLHQscil7aWYoMD09PWV8fGU9PT1yLTEpcmV0dXJuIGU7Zm9yKHZhciBuPTAsaT0wO2k8dDtpKyspbnw9KDEmZSk8PHQtaS0xLGU+Pj0xO3JldHVybiBufSx5LnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGUsdCxyLG4saSxvKXtmb3IodmFyIGE9MDthPG87YSsrKW5bYV09dFtlW2FdXSxpW2FdPXJbZVthXV19LHkucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihlLHQscixuLGksbyl7dGhpcy5wZXJtdXRlKG8sZSx0LHIsbixpKTtmb3IodmFyIGE9MTthPGk7YTw8PTEpZm9yKHZhciBzPWE8PDEsdT1NYXRoLmNvcygyKk1hdGguUEkvcyksYz1NYXRoLnNpbigyKk1hdGguUEkvcyksZj0wO2Y8aTtmKz1zKWZvcih2YXIgbD11LGg9YyxwPTA7cDxhO3ArKyl7dmFyIGQ9cltmK3BdLHk9bltmK3BdLGc9cltmK3ArYV0sdj1uW2YrcCthXSxtPWwqZy1oKnY7dj1sKnYraCpnLGc9bSxyW2YrcF09ZCtnLG5bZitwXT15K3YscltmK3ArYV09ZC1nLG5bZitwK2FdPXktdixwIT09cyYmKG09dSpsLWMqaCxoPXUqaCtjKmwsbD1tKX19LHkucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGUsdCl7dmFyIHI9MXxNYXRoLm1heCh0LGUpLG49MSZyLGk9MDtmb3Iocj1yLzJ8MDtyO3I+Pj49MSlpKys7cmV0dXJuIDE8PGkrMStufSx5LnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oZSx0LHIpe2lmKCEocjw9MSkpZm9yKHZhciBuPTA7bjxyLzI7bisrKXt2YXIgaT1lW25dO2Vbbl09ZVtyLW4tMV0sZVtyLW4tMV09aSxpPXRbbl0sdFtuXT0tdFtyLW4tMV0sdFtyLW4tMV09LWl9fSx5LnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MCxuPTA7bjx0LzI7bisrKXt2YXIgaT04MTkyKk1hdGgucm91bmQoZVsyKm4rMV0vdCkrTWF0aC5yb3VuZChlWzIqbl0vdCkrcjtlW25dPTY3MTA4ODYzJmkscj1pPDY3MTA4ODY0PzA6aS82NzEwODg2NHwwfXJldHVybiBlfSx5LnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGUsdCxyLGkpe2Zvcih2YXIgbz0wLGE9MDthPHQ7YSsrKW8rPTB8ZVthXSxyWzIqYV09ODE5MSZvLG8+Pj49MTMsclsyKmErMV09ODE5MSZvLG8+Pj49MTM7Zm9yKGE9Mip0O2E8aTsrK2EpclthXT0wO24oMD09PW8pLG4oMD09PSgtODE5MiZvKSl9LHkucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPTA7cmV0dXJuIHR9LHkucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPTIqdGhpcy5ndWVzc0xlbjEzYihlLmxlbmd0aCx0Lmxlbmd0aCksaT10aGlzLm1ha2VSQlQobiksbz10aGlzLnN0dWIobiksYT1uZXcgQXJyYXkobikscz1uZXcgQXJyYXkobiksdT1uZXcgQXJyYXkobiksYz1uZXcgQXJyYXkobiksZj1uZXcgQXJyYXkobiksbD1uZXcgQXJyYXkobiksaD1yLndvcmRzO2gubGVuZ3RoPW4sdGhpcy5jb252ZXJ0MTNiKGUud29yZHMsZS5sZW5ndGgsYSxuKSx0aGlzLmNvbnZlcnQxM2IodC53b3Jkcyx0Lmxlbmd0aCxjLG4pLHRoaXMudHJhbnNmb3JtKGEsbyxzLHUsbixpKSx0aGlzLnRyYW5zZm9ybShjLG8sZixsLG4saSk7Zm9yKHZhciBwPTA7cDxuO3ArKyl7dmFyIGQ9c1twXSpmW3BdLXVbcF0qbFtwXTt1W3BdPXNbcF0qbFtwXSt1W3BdKmZbcF0sc1twXT1kfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShzLHUsbiksdGhpcy50cmFuc2Zvcm0ocyx1LGgsbyxuLGkpLHRoaXMuY29uanVnYXRlKGgsbyxuKSx0aGlzLm5vcm1hbGl6ZTEzYihoLG4pLHIubmVnYXRpdmU9ZS5uZWdhdGl2ZV50Lm5lZ2F0aXZlLHIubGVuZ3RoPWUubGVuZ3RoK3QubGVuZ3RoLHIuc3RyaXAoKX0sby5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBvKG51bGwpO3JldHVybiB0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtlLmxlbmd0aCksdGhpcy5tdWxUbyhlLHQpfSxvLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBvKG51bGwpO3JldHVybiB0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtlLmxlbmd0aCksZCh0aGlzLGUsdCl9LG8ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhlLHRoaXMpfSxvLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihlKXtuKCJudW1iZXIiPT09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCk7Zm9yKHZhciB0PTAscj0wO3I8dGhpcy5sZW5ndGg7cisrKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSplLG89KDY3MTA4ODYzJmkpKyg2NzEwODg2MyZ0KTt0Pj49MjYsdCs9aS82NzEwODg2NHwwLHQrPW8+Pj4yNix0aGlzLndvcmRzW3JdPTY3MTA4ODYzJm99cmV0dXJuIDAhPT10JiYodGhpcy53b3Jkc1tyXT10LHRoaXMubGVuZ3RoKyspLHRoaXN9LG8ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihlKX0sby5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxvLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxvLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBBcnJheShlLmJpdExlbmd0aCgpKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXIvMjZ8MCxpPXIlMjY7dFtyXT0oZS53b3Jkc1tuXSYxPDxpKT4+Pml9cmV0dXJuIHR9KGUpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gbmV3IG8oMSk7Zm9yKHZhciByPXRoaXMsbj0wO248dC5sZW5ndGgmJjA9PT10W25dO24rKyxyPXIuc3FyKCkpO2lmKCsrbjx0Lmxlbmd0aClmb3IodmFyIGk9ci5zcXIoKTtuPHQubGVuZ3RoO24rKyxpPWkuc3FyKCkpMCE9PXRbbl0mJihyPXIubXVsKGkpKTtyZXR1cm4gcn0sby5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGUpe24oIm51bWJlciI9PT10eXBlb2YgZSYmZT49MCk7dmFyIHQscj1lJTI2LGk9KGUtcikvMjYsbz02NzEwODg2Mz4+PjI2LXI8PDI2LXI7aWYoMCE9PXIpe3ZhciBhPTA7Zm9yKHQ9MDt0PHRoaXMubGVuZ3RoO3QrKyl7dmFyIHM9dGhpcy53b3Jkc1t0XSZvLHU9KDB8dGhpcy53b3Jkc1t0XSktczw8cjt0aGlzLndvcmRzW3RdPXV8YSxhPXM+Pj4yNi1yfWEmJih0aGlzLndvcmRzW3RdPWEsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PWkpe2Zvcih0PXRoaXMubGVuZ3RoLTE7dD49MDt0LS0pdGhpcy53b3Jkc1t0K2ldPXRoaXMud29yZHNbdF07Zm9yKHQ9MDt0PGk7dCsrKXRoaXMud29yZHNbdF09MDt0aGlzLmxlbmd0aCs9aX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihlKXtyZXR1cm4gbigwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oZSl9LG8ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihlLHQscil7dmFyIGk7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKSxpPXQ/KHQtdCUyNikvMjY6MDt2YXIgbz1lJTI2LGE9TWF0aC5taW4oKGUtbykvMjYsdGhpcy5sZW5ndGgpLHM9NjcxMDg4NjNeNjcxMDg4NjM+Pj5vPDxvLHU9cjtpZihpLT1hLGk9TWF0aC5tYXgoMCxpKSx1KXtmb3IodmFyIGM9MDtjPGE7YysrKXUud29yZHNbY109dGhpcy53b3Jkc1tjXTt1Lmxlbmd0aD1hfWlmKDA9PT1hKTtlbHNlIGlmKHRoaXMubGVuZ3RoPmEpZm9yKHRoaXMubGVuZ3RoLT1hLGM9MDtjPHRoaXMubGVuZ3RoO2MrKyl0aGlzLndvcmRzW2NdPXRoaXMud29yZHNbYythXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBmPTA7Zm9yKGM9dGhpcy5sZW5ndGgtMTtjPj0wJiYoMCE9PWZ8fGM+PWkpO2MtLSl7dmFyIGw9MHx0aGlzLndvcmRzW2NdO3RoaXMud29yZHNbY109Zjw8MjYtb3xsPj4+byxmPWwmc31yZXR1cm4gdSYmMCE9PWYmJih1LndvcmRzW3UubGVuZ3RoKytdPWYpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbigwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oZSx0LHIpfSxvLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oZSl9LG8ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKGUpfSxvLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oZSl9LG8ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGUpfSxvLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihlKXtuKCJudW1iZXIiPT09dHlwZW9mIGUmJmU+PTApO3ZhciB0PWUlMjYscj0oZS10KS8yNixpPTE8PHQ7cmV0dXJuISh0aGlzLmxlbmd0aDw9cikmJiEhKHRoaXMud29yZHNbcl0maSl9LG8ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihlKXtuKCJudW1iZXIiPT09dHlwZW9mIGUmJmU+PTApO3ZhciB0PWUlMjYscj0oZS10KS8yNjtpZihuKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9cilyZXR1cm4gdGhpcztpZigwIT09dCYmcisrLHRoaXMubGVuZ3RoPU1hdGgubWluKHIsdGhpcy5sZW5ndGgpLDAhPT10KXt2YXIgaT02NzEwODg2M142NzEwODg2Mz4+PnQ8PHQ7dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9aX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihlKX0sby5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oZSl7cmV0dXJuIG4oIm51bWJlciI9PT10eXBlb2YgZSksbihlPDY3MTA4ODY0KSxlPDA/dGhpcy5pc3VibigtZSk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxlPyh0aGlzLndvcmRzWzBdPWUtKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihlKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oZSl9LG8ucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihlKXt0aGlzLndvcmRzWzBdKz1lO2Zvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbdF0+PTY3MTA4ODY0O3QrKyl0aGlzLndvcmRzW3RdLT02NzEwODg2NCx0PT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW3QrMV09MTp0aGlzLndvcmRzW3QrMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsdCsxKSx0aGlzfSxvLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihlKXtpZihuKCJudW1iZXIiPT09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCksZTwwKXJldHVybiB0aGlzLmlhZGRuKC1lKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZSwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbdF08MDt0KyspdGhpcy53b3Jkc1t0XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t0KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihlKX0sby5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGUpfSxvLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxvLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sby5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGUsdCxyKXt2YXIgaSxvLGE9ZS5sZW5ndGgrcjt0aGlzLl9leHBhbmQoYSk7dmFyIHM9MDtmb3IoaT0wO2k8ZS5sZW5ndGg7aSsrKXtvPSgwfHRoaXMud29yZHNbaStyXSkrczt2YXIgdT0oMHxlLndvcmRzW2ldKSp0O3M9KChvLT02NzEwODg2MyZ1KT4+MjYpLSh1LzY3MTA4ODY0fDApLHRoaXMud29yZHNbaStyXT02NzEwODg2MyZvfWZvcig7aTx0aGlzLmxlbmd0aC1yO2krKylzPShvPSgwfHRoaXMud29yZHNbaStyXSkrcyk+PjI2LHRoaXMud29yZHNbaStyXT02NzEwODg2MyZvO2lmKDA9PT1zKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKG4oLTE9PT1zKSxzPTAsaT0wO2k8dGhpcy5sZW5ndGg7aSsrKXM9KG89LSgwfHRoaXMud29yZHNbaV0pK3MpPj4yNix0aGlzLndvcmRzW2ldPTY3MTA4ODYzJm87cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKGUsdCl7dmFyIHI9KHRoaXMubGVuZ3RoLGUubGVuZ3RoKSxuPXRoaXMuY2xvbmUoKSxpPWUsYT0wfGkud29yZHNbaS5sZW5ndGgtMV07MCE9PShyPTI2LXRoaXMuX2NvdW50Qml0cyhhKSkmJihpPWkudXNobG4ociksbi5pdXNobG4ociksYT0wfGkud29yZHNbaS5sZW5ndGgtMV0pO3ZhciBzLHU9bi5sZW5ndGgtaS5sZW5ndGg7aWYoIm1vZCIhPT10KXsocz1uZXcgbyhudWxsKSkubGVuZ3RoPXUrMSxzLndvcmRzPW5ldyBBcnJheShzLmxlbmd0aCk7Zm9yKHZhciBjPTA7YzxzLmxlbmd0aDtjKyspcy53b3Jkc1tjXT0wfXZhciBmPW4uY2xvbmUoKS5faXNobG5zdWJtdWwoaSwxLHUpOzA9PT1mLm5lZ2F0aXZlJiYobj1mLHMmJihzLndvcmRzW3VdPTEpKTtmb3IodmFyIGw9dS0xO2w+PTA7bC0tKXt2YXIgaD02NzEwODg2NCooMHxuLndvcmRzW2kubGVuZ3RoK2xdKSsoMHxuLndvcmRzW2kubGVuZ3RoK2wtMV0pO2ZvcihoPU1hdGgubWluKGgvYXwwLDY3MTA4ODYzKSxuLl9pc2hsbnN1Ym11bChpLGgsbCk7MCE9PW4ubmVnYXRpdmU7KWgtLSxuLm5lZ2F0aXZlPTAsbi5faXNobG5zdWJtdWwoaSwxLGwpLG4uaXNaZXJvKCl8fChuLm5lZ2F0aXZlXj0xKTtzJiYocy53b3Jkc1tsXT1oKX1yZXR1cm4gcyYmcy5zdHJpcCgpLG4uc3RyaXAoKSwiZGl2IiE9PXQmJjAhPT1yJiZuLml1c2hybihyKSx7ZGl2OnN8fG51bGwsbW9kOm59fSxvLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBuKCFlLmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IG8oMCksbW9kOm5ldyBvKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PWUubmVnYXRpdmU/KHM9dGhpcy5uZWcoKS5kaXZtb2QoZSx0KSwibW9kIiE9PXQmJihpPXMuZGl2Lm5lZygpKSwiZGl2IiE9PXQmJihhPXMubW9kLm5lZygpLHImJjAhPT1hLm5lZ2F0aXZlJiZhLmlhZGQoZSkpLHtkaXY6aSxtb2Q6YX0pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09ZS5uZWdhdGl2ZT8ocz10aGlzLmRpdm1vZChlLm5lZygpLHQpLCJtb2QiIT09dCYmKGk9cy5kaXYubmVnKCkpLHtkaXY6aSxtb2Q6cy5tb2R9KTowIT09KHRoaXMubmVnYXRpdmUmZS5uZWdhdGl2ZSk/KHM9dGhpcy5uZWcoKS5kaXZtb2QoZS5uZWcoKSx0KSwiZGl2IiE9PXQmJihhPXMubW9kLm5lZygpLHImJjAhPT1hLm5lZ2F0aXZlJiZhLmlzdWIoZSkpLHtkaXY6cy5kaXYsbW9kOmF9KTplLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoZSk8MD97ZGl2Om5ldyBvKDApLG1vZDp0aGlzfToxPT09ZS5sZW5ndGg/ImRpdiI9PT10P3tkaXY6dGhpcy5kaXZuKGUud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXQ/e2RpdjpudWxsLG1vZDpuZXcgbyh0aGlzLm1vZG4oZS53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihlLndvcmRzWzBdKSxtb2Q6bmV3IG8odGhpcy5tb2RuKGUud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihlLHQpO3ZhciBpLGEsc30sby5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmRpdm1vZChlLCJkaXYiLCExKS5kaXZ9LG8ucHJvdG90eXBlLm1vZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwibW9kIiwhMSkubW9kfSxvLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmRpdm1vZChlLCJtb2QiLCEwKS5tb2R9LG8ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZGl2bW9kKGUpO2lmKHQubW9kLmlzWmVybygpKXJldHVybiB0LmRpdjt2YXIgcj0wIT09dC5kaXYubmVnYXRpdmU/dC5tb2QuaXN1YihlKTp0Lm1vZCxuPWUudXNocm4oMSksaT1lLmFuZGxuKDEpLG89ci5jbXAobik7cmV0dXJuIG88MHx8MT09PWkmJjA9PT1vP3QuZGl2OjAhPT10LmRpdi5uZWdhdGl2ZT90LmRpdi5pc3VibigxKTp0LmRpdi5pYWRkbigxKX0sby5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihlKXtuKGU8PTY3MTA4ODYzKTtmb3IodmFyIHQ9KDE8PDI2KSVlLHI9MCxpPXRoaXMubGVuZ3RoLTE7aT49MDtpLS0pcj0odCpyKygwfHRoaXMud29yZHNbaV0pKSVlO3JldHVybiByfSxvLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihlKXtuKGU8PTY3MTA4ODYzKTtmb3IodmFyIHQ9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBpPSgwfHRoaXMud29yZHNbcl0pKzY3MTA4ODY0KnQ7dGhpcy53b3Jkc1tyXT1pL2V8MCx0PWklZX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oZSl9LG8ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oZSl7bigwPT09ZS5uZWdhdGl2ZSksbighZS5pc1plcm8oKSk7dmFyIHQ9dGhpcyxyPWUuY2xvbmUoKTt0PTAhPT10Lm5lZ2F0aXZlP3QudW1vZChlKTp0LmNsb25lKCk7Zm9yKHZhciBpPW5ldyBvKDEpLGE9bmV3IG8oMCkscz1uZXcgbygwKSx1PW5ldyBvKDEpLGM9MDt0LmlzRXZlbigpJiZyLmlzRXZlbigpOyl0Lml1c2hybigxKSxyLml1c2hybigxKSwrK2M7Zm9yKHZhciBmPXIuY2xvbmUoKSxsPXQuY2xvbmUoKTshdC5pc1plcm8oKTspe2Zvcih2YXIgaD0wLHA9MTswPT09KHQud29yZHNbMF0mcCkmJmg8MjY7KytoLHA8PD0xKTtpZihoPjApZm9yKHQuaXVzaHJuKGgpO2gtLSA+MDspKGkuaXNPZGQoKXx8YS5pc09kZCgpKSYmKGkuaWFkZChmKSxhLmlzdWIobCkpLGkuaXVzaHJuKDEpLGEuaXVzaHJuKDEpO2Zvcih2YXIgZD0wLHk9MTswPT09KHIud29yZHNbMF0meSkmJmQ8MjY7KytkLHk8PD0xKTtpZihkPjApZm9yKHIuaXVzaHJuKGQpO2QtLSA+MDspKHMuaXNPZGQoKXx8dS5pc09kZCgpKSYmKHMuaWFkZChmKSx1LmlzdWIobCkpLHMuaXVzaHJuKDEpLHUuaXVzaHJuKDEpO3QuY21wKHIpPj0wPyh0LmlzdWIociksaS5pc3ViKHMpLGEuaXN1Yih1KSk6KHIuaXN1Yih0KSxzLmlzdWIoaSksdS5pc3ViKGEpKX1yZXR1cm57YTpzLGI6dSxnY2Q6ci5pdXNobG4oYyl9fSxvLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oZSl7bigwPT09ZS5uZWdhdGl2ZSksbighZS5pc1plcm8oKSk7dmFyIHQ9dGhpcyxyPWUuY2xvbmUoKTt0PTAhPT10Lm5lZ2F0aXZlP3QudW1vZChlKTp0LmNsb25lKCk7Zm9yKHZhciBpLGE9bmV3IG8oMSkscz1uZXcgbygwKSx1PXIuY2xvbmUoKTt0LmNtcG4oMSk+MCYmci5jbXBuKDEpPjA7KXtmb3IodmFyIGM9MCxmPTE7MD09PSh0LndvcmRzWzBdJmYpJiZjPDI2OysrYyxmPDw9MSk7aWYoYz4wKWZvcih0Lml1c2hybihjKTtjLS0gPjA7KWEuaXNPZGQoKSYmYS5pYWRkKHUpLGEuaXVzaHJuKDEpO2Zvcih2YXIgbD0wLGg9MTswPT09KHIud29yZHNbMF0maCkmJmw8MjY7KytsLGg8PD0xKTtpZihsPjApZm9yKHIuaXVzaHJuKGwpO2wtLSA+MDspcy5pc09kZCgpJiZzLmlhZGQodSkscy5pdXNocm4oMSk7dC5jbXAocik+PTA/KHQuaXN1YihyKSxhLmlzdWIocykpOihyLmlzdWIodCkscy5pc3ViKGEpKX1yZXR1cm4oaT0wPT09dC5jbXBuKDEpP2E6cykuY21wbigwKTwwJiZpLmlhZGQoZSksaX0sby5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKGUpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIGUuYWJzKCk7aWYoZS5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgdD10aGlzLmNsb25lKCkscj1lLmNsb25lKCk7dC5uZWdhdGl2ZT0wLHIubmVnYXRpdmU9MDtmb3IodmFyIG49MDt0LmlzRXZlbigpJiZyLmlzRXZlbigpO24rKyl0Lml1c2hybigxKSxyLml1c2hybigxKTtmb3IoOzspe2Zvcig7dC5pc0V2ZW4oKTspdC5pdXNocm4oMSk7Zm9yKDtyLmlzRXZlbigpOylyLml1c2hybigxKTt2YXIgaT10LmNtcChyKTtpZihpPDApe3ZhciBvPXQ7dD1yLHI9b31lbHNlIGlmKDA9PT1pfHwwPT09ci5jbXBuKDEpKWJyZWFrO3QuaXN1YihyKX1yZXR1cm4gci5pdXNobG4obil9LG8ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWdjZChlKS5hLnVtb2QoZSl9LG8ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT09KDEmdGhpcy53b3Jkc1swXSl9LG8ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT0oMSZ0aGlzLndvcmRzWzBdKX0sby5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMud29yZHNbMF0mZX0sby5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjYsaT0xPDx0O2lmKHRoaXMubGVuZ3RoPD1yKXJldHVybiB0aGlzLl9leHBhbmQocisxKSx0aGlzLndvcmRzW3JdfD1pLHRoaXM7Zm9yKHZhciBvPWksYT1yOzAhPT1vJiZhPHRoaXMubGVuZ3RoO2ErKyl7dmFyIHM9MHx0aGlzLndvcmRzW2FdO289KHMrPW8pPj4+MjYscyY9NjcxMDg4NjMsdGhpcy53b3Jkc1thXT1zfXJldHVybiAwIT09byYmKHRoaXMud29yZHNbYV09byx0aGlzLmxlbmd0aCsrKSx0aGlzfSxvLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sby5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihlKXt2YXIgdCxyPWU8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXIpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnIpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpdD0xO2Vsc2V7ciYmKGU9LWUpLG4oZTw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIGk9MHx0aGlzLndvcmRzWzBdO3Q9aT09PWU/MDppPGU/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtdDp0fSxvLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZSl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1lLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09ZS5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgdD10aGlzLnVjbXAoZSk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXQ6dH0sby5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihlKXtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxlLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHQ9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBuPTB8dGhpcy53b3Jkc1tyXSxpPTB8ZS53b3Jkc1tyXTtpZihuIT09aSl7bjxpP3Q9LTE6bj5pJiYodD0xKTticmVha319cmV0dXJuIHR9LG8ucHJvdG90eXBlLmd0bj1mdW5jdGlvbihlKXtyZXR1cm4gMT09PXRoaXMuY21wbihlKX0sby5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT10aGlzLmNtcChlKX0sby5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbXBuKGUpPj0wfSxvLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wKGUpPj0wfSxvLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZSl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZSl9LG8ucHJvdG90eXBlLmx0PWZ1bmN0aW9uKGUpe3JldHVybi0xPT09dGhpcy5jbXAoZSl9LG8ucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wbihlKTw9MH0sby5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcChlKTw9MH0sby5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGUpe3JldHVybiAwPT09dGhpcy5jbXBuKGUpfSxvLnByb3RvdHlwZS5lcT1mdW5jdGlvbihlKXtyZXR1cm4gMD09PXRoaXMuY21wKGUpfSxvLnJlZD1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IEUoZSl9LG8ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGUpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLG4oMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZS5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGUpfSxvLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sby5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlZD1lLHRoaXN9LG8ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGUpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGUpfSxvLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxlKX0sby5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxlKX0sby5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZSksdGhpcy5yZWQubXVsKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGUpLHRoaXMucmVkLmltdWwodGhpcyxlKX0sby5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LG8ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sby5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LG8ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRQbw=="
}
Changelog:
{
"2020.03.29 15:15": "base64:KyhpPj4+MTMpfDApKyhFZT4+PjI2KXwwLEVlJj02NzEwODg2MyxuPU1hdGguaW11bChQLFYpLGk9KGk9TWF0aC5pbXVsKFAscSkpK01hdGguaW11bChSLFYpfDAsbz1NYXRoLmltdWwoUixxKSxuPW4rTWF0aC5pbXVsKGsseil8MCxpPShpPWkrTWF0aC5pbXVsKGssRyl8MCkrTWF0aC5pbXVsKE8seil8MCxvPW8rTWF0aC5pbXVsKE8sRyl8MCxuPW4rTWF0aC5pbXVsKEMsVyl8MCxpPShpPWkrTWF0aC5pbXVsKEMsWSl8MCkrTWF0aC5pbXVsKHgsVyl8MCxvPW8rTWF0aC5pbXVsKHgsWSl8MCxuPW4rTWF0aC5pbXVsKHcsUSl8MCxpPShpPWkrTWF0aC5pbXVsKHcsJCl8MCkrTWF0aC5pbXVsKFQsUSl8MCxvPW8rTWF0aC5pbXVsKFQsJCl8MCxuPW4rTWF0aC5pbXVsKF8sSil8MCxpPShpPWkrTWF0aC5pbXVsKF8sZWUpfDApK01hdGguaW11bChTLEopfDAsbz1vK01hdGguaW11bChTLGVlKXwwLG49bitNYXRoLmltdWwodixyZSl8MCxpPShpPWkrTWF0aC5pbXVsKHYsbmUpfDApK01hdGguaW11bChtLHJlKXwwLG89bytNYXRoLmltdWwobSxuZSl8MCxuPW4rTWF0aC5pbXVsKGQsb2UpfDAsaT0oaT1pK01hdGguaW11bChkLGFlKXwwKStNYXRoLmltdWwoeSxvZSl8MCxvPW8rTWF0aC5pbXVsKHksYWUpfDA7dmFyIHdlPShjKyhuPW4rTWF0aC5pbXVsKGwsdWUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGNlKXwwKStNYXRoLmltdWwoaCx1ZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChoLGNlKXwwKSsoaT4+PjEzKXwwKSsod2U+Pj4yNil8MCx3ZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoTSxWKSxpPShpPU1hdGguaW11bChNLHEpKStNYXRoLmltdWwoTCxWKXwwLG89TWF0aC5pbXVsKEwscSksbj1uK01hdGguaW11bChQLHopfDAsaT0oaT1pK01hdGguaW11bChQLEcpfDApK01hdGguaW11bChSLHopfDAsbz1vK01hdGguaW11bChSLEcpfDAsbj1uK01hdGguaW11bChrLFcpfDAsaT0oaT1pK01hdGguaW11bChrLFkpfDApK01hdGguaW11bChPLFcpfDAsbz1vK01hdGguaW11bChPLFkpfDAsbj1uK01hdGguaW11bChDLFEpfDAsaT0oaT1pK01hdGguaW11bChDLCQpfDApK01hdGguaW11bCh4LFEpfDAsbz1vK01hdGguaW11bCh4LCQpfDAsbj1uK01hdGguaW11bCh3LEopfDAsaT0oaT1pK01hdGguaW11bCh3LGVlKXwwKStNYXRoLmltdWwoVCxKKXwwLG89bytNYXRoLmltdWwoVCxlZSl8MCxuPW4rTWF0aC5pbXVsKF8scmUpfDAsaT0oaT1pK01hdGguaW11bChfLG5lKXwwKStNYXRoLmltdWwoUyxyZSl8MCxvPW8rTWF0aC5pbXVsKFMsbmUpfDAsbj1uK01hdGguaW11bCh2LG9lKXwwLGk9KGk9aStNYXRoLmltdWwodixhZSl8MCkrTWF0aC5pbXVsKG0sb2UpfDAsbz1vK01hdGguaW11bChtLGFlKXwwLG49bitNYXRoLmltdWwoZCx1ZSl8MCxpPShpPWkrTWF0aC5pbXVsKGQsY2UpfDApK01hdGguaW11bCh5LHVlKXwwLG89bytNYXRoLmltdWwoeSxjZSl8MDt2YXIgVGU9KGMrKG49bitNYXRoLmltdWwobCxsZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwsaGUpfDApK01hdGguaW11bChoLGxlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGgsaGUpfDApKyhpPj4+MTMpfDApKyhUZT4+PjI2KXwwLFRlJj02NzEwODg2MyxuPU1hdGguaW11bChqLFYpLGk9KGk9TWF0aC5pbXVsKGoscSkpK01hdGguaW11bChVLFYpfDAsbz1NYXRoLmltdWwoVSxxKSxuPW4rTWF0aC5pbXVsKE0seil8MCxpPShpPWkrTWF0aC5pbXVsKE0sRyl8MCkrTWF0aC5pbXVsKEwseil8MCxvPW8rTWF0aC5pbXVsKEwsRyl8MCxuPW4rTWF0aC5pbXVsKFAsVyl8MCxpPShpPWkrTWF0aC5pbXVsKFAsWSl8MCkrTWF0aC5pbXVsKFIsVyl8MCxvPW8rTWF0aC5pbXVsKFIsWSl8MCxuPW4rTWF0aC5pbXVsKGssUSl8MCxpPShpPWkrTWF0aC5pbXVsKGssJCl8MCkrTWF0aC5pbXVsKE8sUSl8MCxvPW8rTWF0aC5pbXVsKE8sJCl8MCxuPW4rTWF0aC5pbXVsKEMsSil8MCxpPShpPWkrTWF0aC5pbXVsKEMsZWUpfDApK01hdGguaW11bCh4LEopfDAsbz1vK01hdGguaW11bCh4LGVlKXwwLG49bitNYXRoLmltdWwodyxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKHcsbmUpfDApK01hdGguaW11bChULHJlKXwwLG89bytNYXRoLmltdWwoVCxuZSl8MCxuPW4rTWF0aC5pbXVsKF8sb2UpfDAsaT0oaT1pK01hdGguaW11bChfLGFlKXwwKStNYXRoLmltdWwoUyxvZSl8MCxvPW8rTWF0aC5pbXVsKFMsYWUpfDAsbj1uK01hdGguaW11bCh2LHVlKXwwLGk9KGk9aStNYXRoLmltdWwodixjZSl8MCkrTWF0aC5pbXVsKG0sdWUpfDAsbz1vK01hdGguaW11bChtLGNlKXwwLG49bitNYXRoLmltdWwoZCxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKGQsaGUpfDApK01hdGguaW11bCh5LGxlKXwwLG89bytNYXRoLmltdWwoeSxoZSl8MDt2YXIgQWU9KGMrKG49bitNYXRoLmltdWwobCxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwseWUpfDApK01hdGguaW11bChoLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGgseWUpfDApKyhpPj4+MTMpfDApKyhBZT4+PjI2KXwwLEFlJj02NzEwODg2MyxuPU1hdGguaW11bChqLHopLGk9KGk9TWF0aC5pbXVsKGosRykpK01hdGguaW11bChVLHopfDAsbz1NYXRoLmltdWwoVSxHKSxuPW4rTWF0aC5pbXVsKE0sVyl8MCxpPShpPWkrTWF0aC5pbXVsKE0sWSl8MCkrTWF0aC5pbXVsKEwsVyl8MCxvPW8rTWF0aC5pbXVsKEwsWSl8MCxuPW4rTWF0aC5pbXVsKFAsUSl8MCxpPShpPWkrTWF0aC5pbXVsKFAsJCl8MCkrTWF0aC5pbXVsKFIsUSl8MCxvPW8rTWF0aC5pbXVsKFIsJCl8MCxuPW4rTWF0aC5pbXVsKGssSil8MCxpPShpPWkrTWF0aC5pbXVsKGssZWUpfDApK01hdGguaW11bChPLEopfDAsbz1vK01hdGguaW11bChPLGVlKXwwLG49bitNYXRoLmltdWwoQyxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKEMsbmUpfDApK01hdGguaW11bCh4LHJlKXwwLG89bytNYXRoLmltdWwoeCxuZSl8MCxuPW4rTWF0aC5pbXVsKHcsb2UpfDAsaT0oaT1pK01hdGguaW11bCh3LGFlKXwwKStNYXRoLmltdWwoVCxvZSl8MCxvPW8rTWF0aC5pbXVsKFQsYWUpfDAsbj1uK01hdGguaW11bChfLHVlKXwwLGk9KGk9aStNYXRoLmltdWwoXyxjZSl8MCkrTWF0aC5pbXVsKFMsdWUpfDAsbz1vK01hdGguaW11bChTLGNlKXwwLG49bitNYXRoLmltdWwodixsZSl8MCxpPShpPWkrTWF0aC5pbXVsKHYsaGUpfDApK01hdGguaW11bChtLGxlKXwwLG89bytNYXRoLmltdWwobSxoZSl8MDt2YXIgQ2U9KGMrKG49bitNYXRoLmltdWwoZCxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGQseWUpfDApK01hdGguaW11bCh5LGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKHkseWUpfDApKyhpPj4+MTMpfDApKyhDZT4+PjI2KXwwLENlJj02NzEwODg2MyxuPU1hdGguaW11bChqLFcpLGk9KGk9TWF0aC5pbXVsKGosWSkpK01hdGguaW11bChVLFcpfDAsbz1NYXRoLmltdWwoVSxZKSxuPW4rTWF0aC5pbXVsKE0sUSl8MCxpPShpPWkrTWF0aC5pbXVsKE0sJCl8MCkrTWF0aC5pbXVsKEwsUSl8MCxvPW8rTWF0aC5pbXVsKEwsJCl8MCxuPW4rTWF0aC5pbXVsKFAsSil8MCxpPShpPWkrTWF0aC5pbXVsKFAsZWUpfDApK01hdGguaW11bChSLEopfDAsbz1vK01hdGguaW11bChSLGVlKXwwLG49bitNYXRoLmltdWwoayxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKGssbmUpfDApK01hdGguaW11bChPLHJlKXwwLG89bytNYXRoLmltdWwoTyxuZSl8MCxuPW4rTWF0aC5pbXVsKEMsb2UpfDAsaT0oaT1pK01hdGguaW11bChDLGFlKXwwKStNYXRoLmltdWwoeCxvZSl8MCxvPW8rTWF0aC5pbXVsKHgsYWUpfDAsbj1uK01hdGguaW11bCh3LHVlKXwwLGk9KGk9aStNYXRoLmltdWwodyxjZSl8MCkrTWF0aC5pbXVsKFQsdWUpfDAsbz1vK01hdGguaW11bChULGNlKXwwLG49bitNYXRoLmltdWwoXyxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKF8saGUpfDApK01hdGguaW11bChTLGxlKXwwLG89bytNYXRoLmltdWwoUyxoZSl8MDt2YXIgeGU9KGMrKG49bitNYXRoLmltdWwodixkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKHYseWUpfDApK01hdGguaW11bChtLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKG0seWUpfDApKyhpPj4+MTMpfDApKyh4ZT4+PjI2KXwwLHhlJj02NzEwODg2MyxuPU1hdGguaW11bChqLFEpLGk9KGk9TWF0aC5pbXVsKGosJCkpK01hdGguaW11bChVLFEpfDAsbz1NYXRoLmltdWwoVSwkKSxuPW4rTWF0aC5pbXVsKE0sSil8MCxpPShpPWkrTWF0aC5pbXVsKE0sZWUpfDApK01hdGguaW11bChMLEopfDAsbz1vK01hdGguaW11bChMLGVlKXwwLG49bitNYXRoLmltdWwoUCxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKFAsbmUpfDApK01hdGguaW11bChSLHJlKXwwLG89bytNYXRoLmltdWwoUixuZSl8MCxuPW4rTWF0aC5pbXVsKGssb2UpfDAsaT0oaT1pK01hdGguaW11bChrLGFlKXwwKStNYXRoLmltdWwoTyxvZSl8MCxvPW8rTWF0aC5pbXVsKE8sYWUpfDAsbj1uK01hdGguaW11bChDLHVlKXwwLGk9KGk9aStNYXRoLmltdWwoQyxjZSl8MCkrTWF0aC5pbXVsKHgsdWUpfDAsbz1vK01hdGguaW11bCh4LGNlKXwwLG49bitNYXRoLmltdWwodyxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKHcsaGUpfDApK01hdGguaW11bChULGxlKXwwLG89bytNYXRoLmltdWwoVCxoZSl8MDt2YXIgSWU9KGMrKG49bitNYXRoLmltdWwoXyxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKF8seWUpfDApK01hdGguaW11bChTLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFMseWUpfDApKyhpPj4+MTMpfDApKyhJZT4+PjI2KXwwLEllJj02NzEwODg2MyxuPU1hdGguaW11bChqLEopLGk9KGk9TWF0aC5pbXVsKGosZWUpKStNYXRoLmltdWwoVSxKKXwwLG89TWF0aC5pbXVsKFUsZWUpLG49bitNYXRoLmltdWwoTSxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKE0sbmUpfDApK01hdGguaW11bChMLHJlKXwwLG89bytNYXRoLmltdWwoTCxuZSl8MCxuPW4rTWF0aC5pbXVsKFAsb2UpfDAsaT0oaT1pK01hdGguaW11bChQLGFlKXwwKStNYXRoLmltdWwoUixvZSl8MCxvPW8rTWF0aC5pbXVsKFIsYWUpfDAsbj1uK01hdGguaW11bChrLHVlKXwwLGk9KGk9aStNYXRoLmltdWwoayxjZSl8MCkrTWF0aC5pbXVsKE8sdWUpfDAsbz1vK01hdGguaW11bChPLGNlKXwwLG49bitNYXRoLmltdWwoQyxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKEMsaGUpfDApK01hdGguaW11bCh4LGxlKXwwLG89bytNYXRoLmltdWwoeCxoZSl8MDt2YXIga2U9KGMrKG49bitNYXRoLmltdWwodyxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKHcseWUpfDApK01hdGguaW11bChULGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFQseWUpfDApKyhpPj4+MTMpfDApKyhrZT4+PjI2KXwwLGtlJj02NzEwODg2MyxuPU1hdGguaW11bChqLHJlKSxpPShpPU1hdGguaW11bChqLG5lKSkrTWF0aC5pbXVsKFUscmUpfDAsbz1NYXRoLmltdWwoVSxuZSksbj1uK01hdGguaW11bChNLG9lKXwwLGk9KGk9aStNYXRoLmltdWwoTSxhZSl8MCkrTWF0aC5pbXVsKEwsb2UpfDAsbz1vK01hdGguaW11bChMLGFlKXwwLG49bitNYXRoLmltdWwoUCx1ZSl8MCxpPShpPWkrTWF0aC5pbXVsKFAsY2UpfDApK01hdGguaW11bChSLHVlKXwwLG89bytNYXRoLmltdWwoUixjZSl8MCxuPW4rTWF0aC5pbXVsKGssbGUpfDAsaT0oaT1pK01hdGguaW11bChrLGhlKXwwKStNYXRoLmltdWwoTyxsZSl8MCxvPW8rTWF0aC5pbXVsKE8saGUpfDA7dmFyIE9lPShjKyhuPW4rTWF0aC5pbXVsKEMsZGUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChDLHllKXwwKStNYXRoLmltdWwoeCxkZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bCh4LHllKXwwKSsoaT4+PjEzKXwwKSsoT2U+Pj4yNil8MCxPZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixvZSksaT0oaT1NYXRoLmltdWwoaixhZSkpK01hdGguaW11bChVLG9lKXwwLG89TWF0aC5pbXVsKFUsYWUpLG49bitNYXRoLmltdWwoTSx1ZSl8MCxpPShpPWkrTWF0aC5pbXVsKE0sY2UpfDApK01hdGguaW11bChMLHVlKXwwLG89bytNYXRoLmltdWwoTCxjZSl8MCxuPW4rTWF0aC5pbXVsKFAsbGUpfDAsaT0oaT1pK01hdGguaW11bChQLGhlKXwwKStNYXRoLmltdWwoUixsZSl8MCxvPW8rTWF0aC5pbXVsKFIsaGUpfDA7dmFyIE5lPShjKyhuPW4rTWF0aC5pbXVsKGssZGUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChrLHllKXwwKStNYXRoLmltdWwoTyxkZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChPLHllKXwwKSsoaT4+PjEzKXwwKSsoTmU+Pj4yNil8MCxOZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaix1ZSksaT0oaT1NYXRoLmltdWwoaixjZSkpK01hdGguaW11bChVLHVlKXwwLG89TWF0aC5pbXVsKFUsY2UpLG49bitNYXRoLmltdWwoTSxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKE0saGUpfDApK01hdGguaW11bChMLGxlKXwwLG89bytNYXRoLmltdWwoTCxoZSl8MDt2YXIgUGU9KGMrKG49bitNYXRoLmltdWwoUCxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKFAseWUpfDApK01hdGguaW11bChSLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFIseWUpfDApKyhpPj4+MTMpfDApKyhQZT4+PjI2KXwwLFBlJj02NzEwODg2MyxuPU1hdGguaW11bChqLGxlKSxpPShpPU1hdGguaW11bChqLGhlKSkrTWF0aC5pbXVsKFUsbGUpfDAsbz1NYXRoLmltdWwoVSxoZSk7dmFyIFJlPShjKyhuPW4rTWF0aC5pbXVsKE0sZGUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChNLHllKXwwKStNYXRoLmltdWwoTCxkZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChMLHllKXwwKSsoaT4+PjEzKXwwKSsoUmU+Pj4yNil8MCxSZSY9NjcxMDg4NjM7dmFyIEJlPShjKyhuPU1hdGguaW11bChqLGRlKSl8MCkrKCg4MTkxJihpPShpPU1hdGguaW11bChqLHllKSkrTWF0aC5pbXVsKFUsZGUpfDApKTw8MTMpfDA7cmV0dXJuIGM9KChvPU1hdGguaW11bChVLHllKSkrKGk+Pj4xMyl8MCkrKEJlPj4+MjYpfDAsQmUmPTY3MTA4ODYzLHVbMF09Z2UsdVsxXT12ZSx1WzJdPW1lLHVbM109YmUsdVs0XT1fZSx1WzVdPVNlLHVbNl09RWUsdVs3XT13ZSx1WzhdPVRlLHVbOV09QWUsdVsxMF09Q2UsdVsxMV09eGUsdVsxMl09SWUsdVsxM109a2UsdVsxNF09T2UsdVsxNV09TmUsdVsxNl09UGUsdVsxN109UmUsdVsxOF09QmUsMCE9PWMmJih1WzE5XT1jLHIubGVuZ3RoKyspLHJ9O2Z1bmN0aW9uIGQoZSx0LHIpe3JldHVybihuZXcgeSkubXVscChlLHQscil9ZnVuY3Rpb24geShlLHQpe3RoaXMueD1lLHRoaXMueT10fU1hdGguaW11bHx8KHA9aCksby5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLmxlbmd0aCtlLmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT1lLmxlbmd0aD9wKHRoaXMsZSx0KTpyPDYzP2godGhpcyxlLHQpOnI8MTAyND9mdW5jdGlvbihlLHQscil7ci5uZWdhdGl2ZT10Lm5lZ2F0aXZlXmUubmVnYXRpdmUsci5sZW5ndGg9ZS5sZW5ndGgrdC5sZW5ndGg7Zm9yKHZhciBuPTAsaT0wLG89MDtvPHIubGVuZ3RoLTE7bysrKXt2YXIgYT1pO2k9MDtmb3IodmFyIHM9NjcxMDg4NjMmbix1PU1hdGgubWluKG8sdC5sZW5ndGgtMSksYz1NYXRoLm1heCgwLG8tZS5sZW5ndGgrMSk7Yzw9dTtjKyspe3ZhciBmPW8tYyxsPSgwfGUud29yZHNbZl0pKigwfHQud29yZHNbY10pLGg9NjcxMDg4NjMmbDtzPTY3MTA4ODYzJihoPWgrc3wwKSxpKz0oYT0oYT1hKyhsLzY3MTA4ODY0fDApfDApKyhoPj4+MjYpfDApPj4+MjYsYSY9NjcxMDg4NjN9ci53b3Jkc1tvXT1zLG49YSxhPWl9cmV0dXJuIDAhPT1uP3Iud29yZHNbb109bjpyLmxlbmd0aC0tLHIuc3RyaXAoKX0odGhpcyxlLHQpOmQodGhpcyxlLHQpfSx5LnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgQXJyYXkoZSkscj1vLnByb3RvdHlwZS5fY291bnRCaXRzKGUpLTEsbj0wO248ZTtuKyspdFtuXT10aGlzLnJldkJpbihuLHIsZSk7cmV0dXJuIHR9LHkucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihlLHQscil7aWYoMD09PWV8fGU9PT1yLTEpcmV0dXJuIGU7Zm9yKHZhciBuPTAsaT0wO2k8dDtpKyspbnw9KDEmZSk8PHQtaS0xLGU+Pj0xO3JldHVybiBufSx5LnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGUsdCxyLG4saSxvKXtmb3IodmFyIGE9MDthPG87YSsrKW5bYV09dFtlW2FdXSxpW2FdPXJbZVthXV19LHkucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihlLHQscixuLGksbyl7dGhpcy5wZXJtdXRlKG8sZSx0LHIsbixpKTtmb3IodmFyIGE9MTthPGk7YTw8PTEpZm9yKHZhciBzPWE8PDEsdT1NYXRoLmNvcygyKk1hdGguUEkvcyksYz1NYXRoLnNpbigyKk1hdGguUEkvcyksZj0wO2Y8aTtmKz1zKWZvcih2YXIgbD11LGg9YyxwPTA7cDxhO3ArKyl7dmFyIGQ9cltmK3BdLHk9bltmK3BdLGc9cltmK3ArYV0sdj1uW2YrcCthXSxtPWwqZy1oKnY7dj1sKnYraCpnLGc9bSxyW2YrcF09ZCtnLG5bZitwXT15K3YscltmK3ArYV09ZC1nLG5bZitwK2FdPXktdixwIT09cyYmKG09dSpsLWMqaCxoPXUqaCtjKmwsbD1tKX19LHkucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGUsdCl7dmFyIHI9MXxNYXRoLm1heCh0LGUpLG49MSZyLGk9MDtmb3Iocj1yLzJ8MDtyO3I+Pj49MSlpKys7cmV0dXJuIDE8PGkrMStufSx5LnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oZSx0LHIpe2lmKCEocjw9MSkpZm9yKHZhciBuPTA7bjxyLzI7bisrKXt2YXIgaT1lW25dO2Vbbl09ZVtyLW4tMV0sZVtyLW4tMV09aSxpPXRbbl0sdFtuXT0tdFtyLW4tMV0sdFtyLW4tMV09LWl9fSx5LnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MCxuPTA7bjx0LzI7bisrKXt2YXIgaT04MTkyKk1hdGgucm91bmQoZVsyKm4rMV0vdCkrTWF0aC5yb3VuZChlWzIqbl0vdCkrcjtlW25dPTY3MTA4ODYzJmkscj1pPDY3MTA4ODY0PzA6aS82NzEwODg2NHwwfXJldHVybiBlfSx5LnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGUsdCxyLGkpe2Zvcih2YXIgbz0wLGE9MDthPHQ7YSsrKW8rPTB8ZVthXSxyWzIqYV09ODE5MSZvLG8+Pj49MTMsclsyKmErMV09ODE5MSZvLG8+Pj49MTM7Zm9yKGE9Mip0O2E8aTsrK2EpclthXT0wO24oMD09PW8pLG4oMD09PSgtODE5MiZvKSl9LHkucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPTA7cmV0dXJuIHR9LHkucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPTIqdGhpcy5ndWVzc0xlbjEzYihlLmxlbmd0aCx0Lmxlbmd0aCksaT10aGlzLm1ha2VSQlQobiksbz10aGlzLnN0dWIobiksYT1uZXcgQXJyYXkobikscz1uZXcgQXJyYXkobiksdT1uZXcgQXJyYXkobiksYz1uZXcgQXJyYXkobiksZj1uZXcgQXJyYXkobiksbD1uZXcgQXJyYXkobiksaD1yLndvcmRzO2gubGVuZ3RoPW4sdGhpcy5jb252ZXJ0MTNiKGUud29yZHMsZS5sZW5ndGgsYSxuKSx0aGlzLmNvbnZlcnQxM2IodC53b3Jkcyx0Lmxlbmd0aCxjLG4pLHRoaXMudHJhbnNmb3JtKGEsbyxzLHUsbixpKSx0aGlzLnRyYW5zZm9ybShjLG8sZixsLG4saSk7Zm9yKHZhciBwPTA7cDxuO3ArKyl7dmFyIGQ9c1twXSpmW3BdLXVbcF0qbFtwXTt1W3BdPXNbcF0qbFtwXSt1W3BdKmZbcF0sc1twXT1kfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShzLHUsbiksdGhpcy50cmFuc2Zvcm0ocyx1LGgsbyxuLGkpLHRoaXMuY29uanVnYXRlKGgsbyxuKSx0aGlzLm5vcm1hbGl6ZTEzYihoLG4pLHIubmVnYXRpdmU9ZS5uZWdhdGl2ZV50Lm5lZ2F0aXZlLHIubGVuZ3RoPWUubGVuZ3RoK3QubGVuZ3RoLHIuc3RyaXAoKX0sby5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBvKG51bGwpO3JldHVybiB0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtlLmxlbmd0aCksdGhpcy5tdWxUbyhlLHQpfSxvLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBvKG51bGwpO3JldHVybiB0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtlLmxlbmd0aCksZCh0aGlzLGUsdCl9LG8ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhlLHRoaXMpfSxvLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihlKXtuKCJudW1iZXIiPT09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCk7Zm9yKHZhciB0PTAscj0wO3I8dGhpcy5sZW5ndGg7cisrKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSplLG89KDY3MTA4ODYzJmkpKyg2NzEwODg2MyZ0KTt0Pj49MjYsdCs9aS82NzEwODg2NHwwLHQrPW8+Pj4yNix0aGlzLndvcmRzW3JdPTY3MTA4ODYzJm99cmV0dXJuIDAhPT10JiYodGhpcy53b3Jkc1tyXT10LHRoaXMubGVuZ3RoKyspLHRoaXN9LG8ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihlKX0sby5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxvLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxvLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBBcnJheShlLmJpdExlbmd0aCgpKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXIvMjZ8MCxpPXIlMjY7dFtyXT0oZS53b3Jkc1tuXSYxPDxpKT4+Pml9cmV0dXJuIHR9KGUpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gbmV3IG8oMSk7Zm9yKHZhciByPXRoaXMsbj0wO248dC5sZW5ndGgmJjA9PT10W25dO24rKyxyPXIuc3FyKCkpO2lmKCsrbjx0Lmxlbmd0aClmb3IodmFyIGk9ci5zcXIoKTtuPHQubGVuZ3RoO24rKyxpPWkuc3FyKCkpMCE9PXRbbl0mJihyPXIubXVsKGkpKTtyZXR1cm4gcn0sby5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGUpe24oIm51bWJlciI9PT10eXBlb2YgZSYmZT49MCk7dmFyIHQscj1lJTI2LGk9KGUtcikvMjYsbz02NzEwODg2Mz4+PjI2LXI8PDI2LXI7aWYoMCE9PXIpe3ZhciBhPTA7Zm9yKHQ9MDt0PHRoaXMubGVuZ3RoO3QrKyl7dmFyIHM9dGhpcy53b3Jkc1t0XSZvLHU9KDB8dGhpcy53b3Jkc1t0XSktczw8cjt0aGlzLndvcmRzW3RdPXV8YSxhPXM+Pj4yNi1yfWEmJih0aGlzLndvcmRzW3RdPWEsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PWkpe2Zvcih0PXRoaXMubGVuZ3RoLTE7dD49MDt0LS0pdGhpcy53b3Jkc1t0K2ldPXRoaXMud29yZHNbdF07Zm9yKHQ9MDt0PGk7dCsrKXRoaXMud29yZHNbdF09MDt0aGlzLmxlbmd0aCs9aX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihlKXtyZXR1cm4gbigwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oZSl9LG8ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihlLHQscil7dmFyIGk7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKSxpPXQ/KHQtdCUyNikvMjY6MDt2YXIgbz1lJTI2LGE9TWF0aC5taW4oKGUtbykvMjYsdGhpcy5sZW5ndGgpLHM9NjcxMDg4NjNeNjcxMDg4NjM+Pj5vPDxvLHU9cjtpZihpLT1hLGk9TWF0aC5tYXgoMCxpKSx1KXtmb3IodmFyIGM9MDtjPGE7YysrKXUud29yZHNbY109dGhpcy53b3Jkc1tjXTt1Lmxlbmd0aD1hfWlmKDA9PT1hKTtlbHNlIGlmKHRoaXMubGVuZ3RoPmEpZm9yKHRoaXMubGVuZ3RoLT1hLGM9MDtjPHRoaXMubGVuZ3RoO2MrKyl0aGlzLndvcmRzW2NdPXRoaXMud29yZHNbYythXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBmPTA7Zm9yKGM9dGhpcy5sZW5ndGgtMTtjPj0wJiYoMCE9PWZ8fGM+PWkpO2MtLSl7dmFyIGw9MHx0aGlzLndvcmRzW2NdO3RoaXMud29yZHNbY109Zjw8MjYtb3xsPj4+byxmPWwmc31yZXR1cm4gdSYmMCE9PWYmJih1LndvcmRzW3UubGVuZ3RoKytdPWYpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbigwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oZSx0LHIpfSxvLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oZSl9LG8ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKGUpfSxvLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oZSl9LG8ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGUpfSxvLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihlKXtuKCJudW1iZXIiPT09dHlwZW9mIGUmJmU+PTApO3ZhciB0PWUlMjYscj0oZS10KS8yNixpPTE8PHQ7cmV0dXJuISh0aGlzLmxlbmd0aDw9cikmJiEhKHRoaXMud29yZHNbcl0maSl9LG8ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihlKXtuKCJudW1iZXIiPT09dHlwZW9mIGUmJmU+PTApO3ZhciB0PWUlMjYscj0oZS10KS8yNjtpZihuKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9cilyZXR1cm4gdGhpcztpZigwIT09dCYmcisrLHRoaXMubGVuZ3RoPU1hdGgubWluKHIsdGhpcy5sZW5ndGgpLDAhPT10KXt2YXIgaT02NzEwODg2M142NzEwODg2Mz4+PnQ8PHQ7dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9aX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihlKX0sby5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oZSl7cmV0dXJuIG4oIm51bWJlciI9PT10eXBlb2YgZSksbihlPDY3MTA4ODY0KSxlPDA/dGhpcy5pc3VibigtZSk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxlPyh0aGlzLndvcmRzWzBdPWUtKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihlKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oZSl9LG8ucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihlKXt0aGlzLndvcmRzWzBdKz1lO2Zvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbdF0+PTY3MTA4ODY0O3QrKyl0aGlzLndvcmRzW3RdLT02NzEwODg2NCx0PT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW3QrMV09MTp0aGlzLndvcmRzW3QrMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsdCsxKSx0aGlzfSxvLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihlKXtpZihuKCJudW1iZXIiPT09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCksZTwwKXJldHVybiB0aGlzLmlhZGRuKC1lKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZSwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbdF08MDt0KyspdGhpcy53b3Jkc1t0XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t0KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihlKX0sby5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGUpfSxvLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxvLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sby5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGUsdCxyKXt2YXIgaSxvLGE9ZS5sZW5ndGgrcjt0aGlzLl9leHBhbmQoYSk7dmFyIHM9MDtmb3IoaT0wO2k8ZS5sZW5ndGg7aSsrKXtvPSgwfHRoaXMud29yZHNbaStyXSkrczt2YXIgdT0oMHxlLndvcmRzW2ldKSp0O3M9KChvLT02NzEwODg2MyZ1KT4+MjYpLSh1LzY3MTA4ODY0fDApLHRoaXMud29yZHNbaStyXT02NzEwODg2MyZvfWZvcig7aTx0aGlzLmxlbmd0aC1yO2krKylzPShvPSgwfHRoaXMud29yZHNbaStyXSkrcyk+PjI2LHRoaXMud29yZHNbaStyXT02NzEwODg2MyZvO2lmKDA9PT1zKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKG4oLTE9PT1zKSxzPTAsaT0wO2k8dGhpcy5sZW5ndGg7aSsrKXM9KG89LSgwfHRoaXMud29yZHNbaV0pK3MpPj4yNix0aGlzLndvcmRzW2ldPTY3MTA4ODYzJm87cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKGUsdCl7dmFyIHI9KHRoaXMubGVuZ3RoLGUubGVuZ3RoKSxuPXRoaXMuY2xvbmUoKSxpPWUsYT0wfGkud29yZHNbaS5sZW5ndGgtMV07MCE9PShyPTI2LXRoaXMuX2NvdW50Qml0cyhhKSkmJihpPWkudXNobG4ociksbi5pdXNobG4ociksYT0wfGkud29yZHNbaS5sZW5ndGgtMV0pO3ZhciBzLHU9bi5sZW5ndGgtaS5sZW5ndGg7aWYoIm1vZCIhPT10KXsocz1uZXcgbyhudWxsKSkubGVuZ3RoPXUrMSxzLndvcmRzPW5ldyBBcnJheShzLmxlbmd0aCk7Zm9yKHZhciBjPTA7YzxzLmxlbmd0aDtjKyspcy53b3Jkc1tjXT0wfXZhciBmPW4uY2xvbmUoKS5faXNobG5zdWJtdWwoaSwxLHUpOzA9PT1mLm5lZ2F0aXZlJiYobj1mLHMmJihzLndvcmRzW3VdPTEpKTtmb3IodmFyIGw9dS0xO2w+PTA7bC0tKXt2YXIgaD02NzEwODg2NCooMHxuLndvcmRzW2kubGVuZ3RoK2xdKSsoMHxuLndvcmRzW2kubGVuZ3RoK2wtMV0pO2ZvcihoPU1hdGgubWluKGgvYXwwLDY3MTA4ODYzKSxuLl9pc2hsbnN1Ym11bChpLGgsbCk7MCE9PW4ubmVnYXRpdmU7KWgtLSxuLm5lZ2F0aXZlPTAsbi5faXNobG5zdWJtdWwoaSwxLGwpLG4uaXNaZXJvKCl8fChuLm5lZ2F0aXZlXj0xKTtzJiYocy53b3Jkc1tsXT1oKX1yZXR1cm4gcyYmcy5zdHJpcCgpLG4uc3RyaXAoKSwiZGl2IiE9PXQmJjAhPT1yJiZuLml1c2hybihyKSx7ZGl2OnN8fG51bGwsbW9kOm59fSxvLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBuKCFlLmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IG8oMCksbW9kOm5ldyBvKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PWUubmVnYXRpdmU/KHM9dGhpcy5uZWcoKS5kaXZtb2QoZSx0KSwibW9kIiE9PXQmJihpPXMuZGl2Lm5lZygpKSwiZGl2IiE9PXQmJihhPXMubW9kLm5lZygpLHImJjAhPT1hLm5lZ2F0aXZlJiZhLmlhZGQoZSkpLHtkaXY6aSxtb2Q6YX0pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09ZS5uZWdhdGl2ZT8ocz10aGlzLmRpdm1vZChlLm5lZygpLHQpLCJtb2QiIT09dCYmKGk9cy5kaXYubmVnKCkpLHtkaXY6aSxtb2Q6cy5tb2R9KTowIT09KHRoaXMubmVnYXRpdmUmZS5uZWdhdGl2ZSk/KHM9dGhpcy5uZWcoKS5kaXZtb2QoZS5uZWcoKSx0KSwiZGl2IiE9PXQmJihhPXMubW9kLm5lZygpLHImJjAhPT1hLm5lZ2F0aXZlJiZhLmlzdWIoZSkpLHtkaXY6cy5kaXYsbW9kOmF9KTplLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoZSk8MD97ZGl2Om5ldyBvKDApLG1vZDp0aGlzfToxPT09ZS5sZW5ndGg/ImRpdiI9PT10P3tkaXY6dGhpcy5kaXZuKGUud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXQ/e2RpdjpudWxsLG1vZDpuZXcgbyh0aGlzLm1vZG4oZS53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihlLndvcmRzWzBdKSxtb2Q6bmV3IG8odGhpcy5tb2RuKGUud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihlLHQpO3ZhciBpLGEsc30sby5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmRpdm1vZChlLCJkaXYiLCExKS5kaXZ9LG8ucHJvdG90eXBlLm1vZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwibW9kIiwhMSkubW9kfSxvLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmRpdm1vZChlLCJtb2QiLCEwKS5tb2R9LG8ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZGl2bW9kKGUpO2lmKHQubW9kLmlzWmVybygpKXJldHVybiB0LmRpdjt2YXIgcj0wIT09dC5kaXYubmVnYXRpdmU/dC5tb2QuaXN1YihlKTp0Lm1vZCxuPWUudXNocm4oMSksaT1lLmFuZGxuKDEpLG89ci5jbXAobik7cmV0dXJuIG88MHx8MT09PWkmJjA9PT1vP3QuZGl2OjAhPT10LmRpdi5uZWdhdGl2ZT90LmRpdi5pc3VibigxKTp0LmRpdi5pYWRkbigxKX0sby5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihlKXtuKGU8PTY3MTA4ODYzKTtmb3IodmFyIHQ9KDE8PDI2KSVlLHI9MCxpPXRoaXMubGVuZ3RoLTE7aT49MDtpLS0pcj0odCpyKygwfHRoaXMud29yZHNbaV0pKSVlO3JldHVybiByfSxvLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihlKXtuKGU8PTY3MTA4ODYzKTtmb3IodmFyIHQ9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBpPSgwfHRoaXMud29yZHNbcl0pKzY3MTA4ODY0KnQ7dGhpcy53b3Jkc1tyXT1pL2V8MCx0PWklZX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oZSl9LG8ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oZSl7bigwPT09ZS5uZWdhdGl2ZSksbighZS5pc1plcm8oKSk7dmFyIHQ9dGhpcyxyPWUuY2xvbmUoKTt0PTAhPT10Lm5lZ2F0aXZlP3QudW1vZChlKTp0LmNsb25lKCk7Zm9yKHZhciBpPW5ldyBvKDEpLGE9bmV3IG8oMCkscz1uZXcgbygwKSx1PW5ldyBvKDEpLGM9MDt0LmlzRXZlbigpJiZyLmlzRXZlbigpOyl0Lml1c2hybigxKSxyLml1c2hybigxKSwrK2M7Zm9yKHZhciBmPXIuY2xvbmUoKSxsPXQuY2xvbmUoKTshdC5pc1plcm8oKTspe2Zvcih2YXIgaD0wLHA9MTswPT09KHQud29yZHNbMF0mcCkmJmg8MjY7KytoLHA8PD0xKTtpZihoPjApZm9yKHQuaXVzaHJuKGgpO2gtLSA+MDspKGkuaXNPZGQoKXx8YS5pc09kZCgpKSYmKGkuaWFkZChmKSxhLmlzdWIobCkpLGkuaXVzaHJuKDEpLGEuaXVzaHJuKDEpO2Zvcih2YXIgZD0wLHk9MTswPT09KHIud29yZHNbMF0meSkmJmQ8MjY7KytkLHk8PD0xKTtpZihkPjApZm9yKHIuaXVzaHJuKGQpO2QtLSA+MDspKHMuaXNPZGQoKXx8dS5pc09kZCgpKSYmKHMuaWFkZChmKSx1LmlzdWIobCkpLHMuaXVzaHJuKDEpLHUuaXVzaHJuKDEpO3QuY21wKHIpPj0wPyh0LmlzdWIociksaS5pc3ViKHMpLGEuaXN1Yih1KSk6KHIuaXN1Yih0KSxzLmlzdWIoaSksdS5pc3ViKGEpKX1yZXR1cm57YTpzLGI6dSxnY2Q6ci5pdXNobG4oYyl9fSxvLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oZSl7bigwPT09ZS5uZWdhdGl2ZSksbighZS5pc1plcm8oKSk7dmFyIHQ9dGhpcyxyPWUuY2xvbmUoKTt0PTAhPT10Lm5lZ2F0aXZlP3QudW1vZChlKTp0LmNsb25lKCk7Zm9yKHZhciBpLGE9bmV3IG8oMSkscz1uZXcgbygwKSx1PXIuY2xvbmUoKTt0LmNtcG4oMSk+MCYmci5jbXBuKDEpPjA7KXtmb3IodmFyIGM9MCxmPTE7MD09PSh0LndvcmRzWzBdJmYpJiZjPDI2OysrYyxmPDw9MSk7aWYoYz4wKWZvcih0Lml1c2hybihjKTtjLS0gPjA7KWEuaXNPZGQoKSYmYS5pYWRkKHUpLGEuaXVzaHJuKDEpO2Zvcih2YXIgbD0wLGg9MTswPT09KHIud29yZHNbMF0maCkmJmw8MjY7KytsLGg8PD0xKTtpZihsPjApZm9yKHIuaXVzaHJuKGwpO2wtLSA+MDspcy5pc09kZCgpJiZzLmlhZGQodSkscy5pdXNocm4oMSk7dC5jbXAocik+PTA/KHQuaXN1YihyKSxhLmlzdWIocykpOihyLmlzdWIodCkscy5pc3ViKGEpKX1yZXR1cm4oaT0wPT09dC5jbXBuKDEpP2E6cykuY21wbigwKTwwJiZpLmlhZGQoZSksaX0sby5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKGUpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIGUuYWJzKCk7aWYoZS5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgdD10aGlzLmNsb25lKCkscj1lLmNsb25lKCk7dC5uZWdhdGl2ZT0wLHIubmVnYXRpdmU9MDtmb3IodmFyIG49MDt0LmlzRXZlbigpJiZyLmlzRXZlbigpO24rKyl0Lml1c2hybigxKSxyLml1c2hybigxKTtmb3IoOzspe2Zvcig7dC5pc0V2ZW4oKTspdC5pdXNocm4oMSk7Zm9yKDtyLmlzRXZlbigpOylyLml1c2hybigxKTt2YXIgaT10LmNtcChyKTtpZihpPDApe3ZhciBvPXQ7dD1yLHI9b31lbHNlIGlmKDA9PT1pfHwwPT09ci5jbXBuKDEpKWJyZWFrO3QuaXN1YihyKX1yZXR1cm4gci5pdXNobG4obil9LG8ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWdjZChlKS5hLnVtb2QoZSl9LG8ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT09KDEmdGhpcy53b3Jkc1swXSl9LG8ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT0oMSZ0aGlzLndvcmRzWzBdKX0sby5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMud29yZHNbMF0mZX0sby5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjYsaT0xPDx0O2lmKHRoaXMubGVuZ3RoPD1yKXJldHVybiB0aGlzLl9leHBhbmQocisxKSx0aGlzLndvcmRzW3JdfD1pLHRoaXM7Zm9yKHZhciBvPWksYT1yOzAhPT1vJiZhPHRoaXMubGVuZ3RoO2ErKyl7dmFyIHM9MHx0aGlzLndvcmRzW2FdO289KHMrPW8pPj4+MjYscyY9NjcxMDg4NjMsdGhpcy53b3Jkc1thXT1zfXJldHVybiAwIT09byYmKHRoaXMud29yZHNbYV09byx0aGlzLmxlbmd0aCsrKSx0aGlzfSxvLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sby5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihlKXt2YXIgdCxyPWU8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXIpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnIpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpdD0xO2Vsc2V7ciYmKGU9LWUpLG4oZTw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIGk9MHx0aGlzLndvcmRzWzBdO3Q9aT09PWU/MDppPGU/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtdDp0fSxvLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZSl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1lLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09ZS5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgdD10aGlzLnVjbXAoZSk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXQ6dH0sby5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihlKXtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxlLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHQ9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBuPTB8dGhpcy53b3Jkc1tyXSxpPTB8ZS53b3Jkc1tyXTtpZihuIT09aSl7bjxpP3Q9LTE6bj5pJiYodD0xKTticmVha319cmV0dXJuIHR9LG8ucHJvdG90eXBlLmd0bj1mdW5jdGlvbihlKXtyZXR1cm4gMT09PXRoaXMuY21wbihlKX0sby5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT10aGlzLmNtcChlKX0sby5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbXBuKGUpPj0wfSxvLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wKGUpPj0wfSxvLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZSl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZSl9LG8ucHJvdG90eXBlLmx0PWZ1bmN0aW9uKGUpe3JldHVybi0xPT09dGhpcy5jbXAoZSl9LG8ucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wbihlKTw9MH0sby5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcChlKTw9MH0sby5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGUpe3JldHVybiAwPT09dGhpcy5jbXBuKGUpfSxvLnByb3RvdHlwZS5lcT1mdW5jdGlvbihlKXtyZXR1cm4gMD09PXRoaXMuY21wKGUpfSxvLnJlZD1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IEUoZSl9LG8ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGUpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLG4oMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZS5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGUpfSxvLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sby5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlZD1lLHRoaXN9LG8ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGUpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGUpfSxvLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxlKX0sby5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxlKX0sby5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZSksdGhpcy5yZWQubXVsKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGUpLHRoaXMucmVkLmltdWwodGhpcyxlKX0sby5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LG8ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sby5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LG8ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRQbw==",
"2020.03.29 15:15": "base64:KyhpPj4+MTMpfDApKyhFZT4+PjI2KXwwLEVlJj02NzEwODg2MyxuPU1hdGguaW11bChQLFYpLGk9KGk9TWF0aC5pbXVsKFAscSkpK01hdGguaW11bChSLFYpfDAsbz1NYXRoLmltdWwoUixxKSxuPW4rTWF0aC5pbXVsKGsseil8MCxpPShpPWkrTWF0aC5pbXVsKGssRyl8MCkrTWF0aC5pbXVsKE8seil8MCxvPW8rTWF0aC5pbXVsKE8sRyl8MCxuPW4rTWF0aC5pbXVsKEMsVyl8MCxpPShpPWkrTWF0aC5pbXVsKEMsWSl8MCkrTWF0aC5pbXVsKHgsVyl8MCxvPW8rTWF0aC5pbXVsKHgsWSl8MCxuPW4rTWF0aC5pbXVsKHcsUSl8MCxpPShpPWkrTWF0aC5pbXVsKHcsJCl8MCkrTWF0aC5pbXVsKFQsUSl8MCxvPW8rTWF0aC5pbXVsKFQsJCl8MCxuPW4rTWF0aC5pbXVsKF8sSil8MCxpPShpPWkrTWF0aC5pbXVsKF8sZWUpfDApK01hdGguaW11bChTLEopfDAsbz1vK01hdGguaW11bChTLGVlKXwwLG49bitNYXRoLmltdWwodixyZSl8MCxpPShpPWkrTWF0aC5pbXVsKHYsbmUpfDApK01hdGguaW11bChtLHJlKXwwLG89bytNYXRoLmltdWwobSxuZSl8MCxuPW4rTWF0aC5pbXVsKGQsb2UpfDAsaT0oaT1pK01hdGguaW11bChkLGFlKXwwKStNYXRoLmltdWwoeSxvZSl8MCxvPW8rTWF0aC5pbXVsKHksYWUpfDA7dmFyIHdlPShjKyhuPW4rTWF0aC5pbXVsKGwsdWUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGNlKXwwKStNYXRoLmltdWwoaCx1ZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChoLGNlKXwwKSsoaT4+PjEzKXwwKSsod2U+Pj4yNil8MCx3ZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoTSxWKSxpPShpPU1hdGguaW11bChNLHEpKStNYXRoLmltdWwoTCxWKXwwLG89TWF0aC5pbXVsKEwscSksbj1uK01hdGguaW11bChQLHopfDAsaT0oaT1pK01hdGguaW11bChQLEcpfDApK01hdGguaW11bChSLHopfDAsbz1vK01hdGguaW11bChSLEcpfDAsbj1uK01hdGguaW11bChrLFcpfDAsaT0oaT1pK01hdGguaW11bChrLFkpfDApK01hdGguaW11bChPLFcpfDAsbz1vK01hdGguaW11bChPLFkpfDAsbj1uK01hdGguaW11bChDLFEpfDAsaT0oaT1pK01hdGguaW11bChDLCQpfDApK01hdGguaW11bCh4LFEpfDAsbz1vK01hdGguaW11bCh4LCQpfDAsbj1uK01hdGguaW11bCh3LEopfDAsaT0oaT1pK01hdGguaW11bCh3LGVlKXwwKStNYXRoLmltdWwoVCxKKXwwLG89bytNYXRoLmltdWwoVCxlZSl8MCxuPW4rTWF0aC5pbXVsKF8scmUpfDAsaT0oaT1pK01hdGguaW11bChfLG5lKXwwKStNYXRoLmltdWwoUyxyZSl8MCxvPW8rTWF0aC5pbXVsKFMsbmUpfDAsbj1uK01hdGguaW11bCh2LG9lKXwwLGk9KGk9aStNYXRoLmltdWwodixhZSl8MCkrTWF0aC5pbXVsKG0sb2UpfDAsbz1vK01hdGguaW11bChtLGFlKXwwLG49bitNYXRoLmltdWwoZCx1ZSl8MCxpPShpPWkrTWF0aC5pbXVsKGQsY2UpfDApK01hdGguaW11bCh5LHVlKXwwLG89bytNYXRoLmltdWwoeSxjZSl8MDt2YXIgVGU9KGMrKG49bitNYXRoLmltdWwobCxsZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwsaGUpfDApK01hdGguaW11bChoLGxlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGgsaGUpfDApKyhpPj4+MTMpfDApKyhUZT4+PjI2KXwwLFRlJj02NzEwODg2MyxuPU1hdGguaW11bChqLFYpLGk9KGk9TWF0aC5pbXVsKGoscSkpK01hdGguaW11bChVLFYpfDAsbz1NYXRoLmltdWwoVSxxKSxuPW4rTWF0aC5pbXVsKE0seil8MCxpPShpPWkrTWF0aC5pbXVsKE0sRyl8MCkrTWF0aC5pbXVsKEwseil8MCxvPW8rTWF0aC5pbXVsKEwsRyl8MCxuPW4rTWF0aC5pbXVsKFAsVyl8MCxpPShpPWkrTWF0aC5pbXVsKFAsWSl8MCkrTWF0aC5pbXVsKFIsVyl8MCxvPW8rTWF0aC5pbXVsKFIsWSl8MCxuPW4rTWF0aC5pbXVsKGssUSl8MCxpPShpPWkrTWF0aC5pbXVsKGssJCl8MCkrTWF0aC5pbXVsKE8sUSl8MCxvPW8rTWF0aC5pbXVsKE8sJCl8MCxuPW4rTWF0aC5pbXVsKEMsSil8MCxpPShpPWkrTWF0aC5pbXVsKEMsZWUpfDApK01hdGguaW11bCh4LEopfDAsbz1vK01hdGguaW11bCh4LGVlKXwwLG49bitNYXRoLmltdWwodyxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKHcsbmUpfDApK01hdGguaW11bChULHJlKXwwLG89bytNYXRoLmltdWwoVCxuZSl8MCxuPW4rTWF0aC5pbXVsKF8sb2UpfDAsaT0oaT1pK01hdGguaW11bChfLGFlKXwwKStNYXRoLmltdWwoUyxvZSl8MCxvPW8rTWF0aC5pbXVsKFMsYWUpfDAsbj1uK01hdGguaW11bCh2LHVlKXwwLGk9KGk9aStNYXRoLmltdWwodixjZSl8MCkrTWF0aC5pbXVsKG0sdWUpfDAsbz1vK01hdGguaW11bChtLGNlKXwwLG49bitNYXRoLmltdWwoZCxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKGQsaGUpfDApK01hdGguaW11bCh5LGxlKXwwLG89bytNYXRoLmltdWwoeSxoZSl8MDt2YXIgQWU9KGMrKG49bitNYXRoLmltdWwobCxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwseWUpfDApK01hdGguaW11bChoLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGgseWUpfDApKyhpPj4+MTMpfDApKyhBZT4+PjI2KXwwLEFlJj02NzEwODg2MyxuPU1hdGguaW11bChqLHopLGk9KGk9TWF0aC5pbXVsKGosRykpK01hdGguaW11bChVLHopfDAsbz1NYXRoLmltdWwoVSxHKSxuPW4rTWF0aC5pbXVsKE0sVyl8MCxpPShpPWkrTWF0aC5pbXVsKE0sWSl8MCkrTWF0aC5pbXVsKEwsVyl8MCxvPW8rTWF0aC5pbXVsKEwsWSl8MCxuPW4rTWF0aC5pbXVsKFAsUSl8MCxpPShpPWkrTWF0aC5pbXVsKFAsJCl8MCkrTWF0aC5pbXVsKFIsUSl8MCxvPW8rTWF0aC5pbXVsKFIsJCl8MCxuPW4rTWF0aC5pbXVsKGssSil8MCxpPShpPWkrTWF0aC5pbXVsKGssZWUpfDApK01hdGguaW11bChPLEopfDAsbz1vK01hdGguaW11bChPLGVlKXwwLG49bitNYXRoLmltdWwoQyxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKEMsbmUpfDApK01hdGguaW11bCh4LHJlKXwwLG89bytNYXRoLmltdWwoeCxuZSl8MCxuPW4rTWF0aC5pbXVsKHcsb2UpfDAsaT0oaT1pK01hdGguaW11bCh3LGFlKXwwKStNYXRoLmltdWwoVCxvZSl8MCxvPW8rTWF0aC5pbXVsKFQsYWUpfDAsbj1uK01hdGguaW11bChfLHVlKXwwLGk9KGk9aStNYXRoLmltdWwoXyxjZSl8MCkrTWF0aC5pbXVsKFMsdWUpfDAsbz1vK01hdGguaW11bChTLGNlKXwwLG49bitNYXRoLmltdWwodixsZSl8MCxpPShpPWkrTWF0aC5pbXVsKHYsaGUpfDApK01hdGguaW11bChtLGxlKXwwLG89bytNYXRoLmltdWwobSxoZSl8MDt2YXIgQ2U9KGMrKG49bitNYXRoLmltdWwoZCxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGQseWUpfDApK01hdGguaW11bCh5LGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKHkseWUpfDApKyhpPj4+MTMpfDApKyhDZT4+PjI2KXwwLENlJj02NzEwODg2MyxuPU1hdGguaW11bChqLFcpLGk9KGk9TWF0aC5pbXVsKGosWSkpK01hdGguaW11bChVLFcpfDAsbz1NYXRoLmltdWwoVSxZKSxuPW4rTWF0aC5pbXVsKE0sUSl8MCxpPShpPWkrTWF0aC5pbXVsKE0sJCl8MCkrTWF0aC5pbXVsKEwsUSl8MCxvPW8rTWF0aC5pbXVsKEwsJCl8MCxuPW4rTWF0aC5pbXVsKFAsSil8MCxpPShpPWkrTWF0aC5pbXVsKFAsZWUpfDApK01hdGguaW11bChSLEopfDAsbz1vK01hdGguaW11bChSLGVlKXwwLG49bitNYXRoLmltdWwoayxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKGssbmUpfDApK01hdGguaW11bChPLHJlKXwwLG89bytNYXRoLmltdWwoTyxuZSl8MCxuPW4rTWF0aC5pbXVsKEMsb2UpfDAsaT0oaT1pK01hdGguaW11bChDLGFlKXwwKStNYXRoLmltdWwoeCxvZSl8MCxvPW8rTWF0aC5pbXVsKHgsYWUpfDAsbj1uK01hdGguaW11bCh3LHVlKXwwLGk9KGk9aStNYXRoLmltdWwodyxjZSl8MCkrTWF0aC5pbXVsKFQsdWUpfDAsbz1vK01hdGguaW11bChULGNlKXwwLG49bitNYXRoLmltdWwoXyxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKF8saGUpfDApK01hdGguaW11bChTLGxlKXwwLG89bytNYXRoLmltdWwoUyxoZSl8MDt2YXIgeGU9KGMrKG49bitNYXRoLmltdWwodixkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKHYseWUpfDApK01hdGguaW11bChtLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKG0seWUpfDApKyhpPj4+MTMpfDApKyh4ZT4+PjI2KXwwLHhlJj02NzEwODg2MyxuPU1hdGguaW11bChqLFEpLGk9KGk9TWF0aC5pbXVsKGosJCkpK01hdGguaW11bChVLFEpfDAsbz1NYXRoLmltdWwoVSwkKSxuPW4rTWF0aC5pbXVsKE0sSil8MCxpPShpPWkrTWF0aC5pbXVsKE0sZWUpfDApK01hdGguaW11bChMLEopfDAsbz1vK01hdGguaW11bChMLGVlKXwwLG49bitNYXRoLmltdWwoUCxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKFAsbmUpfDApK01hdGguaW11bChSLHJlKXwwLG89bytNYXRoLmltdWwoUixuZSl8MCxuPW4rTWF0aC5pbXVsKGssb2UpfDAsaT0oaT1pK01hdGguaW11bChrLGFlKXwwKStNYXRoLmltdWwoTyxvZSl8MCxvPW8rTWF0aC5pbXVsKE8sYWUpfDAsbj1uK01hdGguaW11bChDLHVlKXwwLGk9KGk9aStNYXRoLmltdWwoQyxjZSl8MCkrTWF0aC5pbXVsKHgsdWUpfDAsbz1vK01hdGguaW11bCh4LGNlKXwwLG49bitNYXRoLmltdWwodyxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKHcsaGUpfDApK01hdGguaW11bChULGxlKXwwLG89bytNYXRoLmltdWwoVCxoZSl8MDt2YXIgSWU9KGMrKG49bitNYXRoLmltdWwoXyxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKF8seWUpfDApK01hdGguaW11bChTLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFMseWUpfDApKyhpPj4+MTMpfDApKyhJZT4+PjI2KXwwLEllJj02NzEwODg2MyxuPU1hdGguaW11bChqLEopLGk9KGk9TWF0aC5pbXVsKGosZWUpKStNYXRoLmltdWwoVSxKKXwwLG89TWF0aC5pbXVsKFUsZWUpLG49bitNYXRoLmltdWwoTSxyZSl8MCxpPShpPWkrTWF0aC5pbXVsKE0sbmUpfDApK01hdGguaW11bChMLHJlKXwwLG89bytNYXRoLmltdWwoTCxuZSl8MCxuPW4rTWF0aC5pbXVsKFAsb2UpfDAsaT0oaT1pK01hdGguaW11bChQLGFlKXwwKStNYXRoLmltdWwoUixvZSl8MCxvPW8rTWF0aC5pbXVsKFIsYWUpfDAsbj1uK01hdGguaW11bChrLHVlKXwwLGk9KGk9aStNYXRoLmltdWwoayxjZSl8MCkrTWF0aC5pbXVsKE8sdWUpfDAsbz1vK01hdGguaW11bChPLGNlKXwwLG49bitNYXRoLmltdWwoQyxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKEMsaGUpfDApK01hdGguaW11bCh4LGxlKXwwLG89bytNYXRoLmltdWwoeCxoZSl8MDt2YXIga2U9KGMrKG49bitNYXRoLmltdWwodyxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKHcseWUpfDApK01hdGguaW11bChULGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFQseWUpfDApKyhpPj4+MTMpfDApKyhrZT4+PjI2KXwwLGtlJj02NzEwODg2MyxuPU1hdGguaW11bChqLHJlKSxpPShpPU1hdGguaW11bChqLG5lKSkrTWF0aC5pbXVsKFUscmUpfDAsbz1NYXRoLmltdWwoVSxuZSksbj1uK01hdGguaW11bChNLG9lKXwwLGk9KGk9aStNYXRoLmltdWwoTSxhZSl8MCkrTWF0aC5pbXVsKEwsb2UpfDAsbz1vK01hdGguaW11bChMLGFlKXwwLG49bitNYXRoLmltdWwoUCx1ZSl8MCxpPShpPWkrTWF0aC5pbXVsKFAsY2UpfDApK01hdGguaW11bChSLHVlKXwwLG89bytNYXRoLmltdWwoUixjZSl8MCxuPW4rTWF0aC5pbXVsKGssbGUpfDAsaT0oaT1pK01hdGguaW11bChrLGhlKXwwKStNYXRoLmltdWwoTyxsZSl8MCxvPW8rTWF0aC5pbXVsKE8saGUpfDA7dmFyIE9lPShjKyhuPW4rTWF0aC5pbXVsKEMsZGUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChDLHllKXwwKStNYXRoLmltdWwoeCxkZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bCh4LHllKXwwKSsoaT4+PjEzKXwwKSsoT2U+Pj4yNil8MCxPZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixvZSksaT0oaT1NYXRoLmltdWwoaixhZSkpK01hdGguaW11bChVLG9lKXwwLG89TWF0aC5pbXVsKFUsYWUpLG49bitNYXRoLmltdWwoTSx1ZSl8MCxpPShpPWkrTWF0aC5pbXVsKE0sY2UpfDApK01hdGguaW11bChMLHVlKXwwLG89bytNYXRoLmltdWwoTCxjZSl8MCxuPW4rTWF0aC5pbXVsKFAsbGUpfDAsaT0oaT1pK01hdGguaW11bChQLGhlKXwwKStNYXRoLmltdWwoUixsZSl8MCxvPW8rTWF0aC5pbXVsKFIsaGUpfDA7dmFyIE5lPShjKyhuPW4rTWF0aC5pbXVsKGssZGUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChrLHllKXwwKStNYXRoLmltdWwoTyxkZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChPLHllKXwwKSsoaT4+PjEzKXwwKSsoTmU+Pj4yNil8MCxOZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaix1ZSksaT0oaT1NYXRoLmltdWwoaixjZSkpK01hdGguaW11bChVLHVlKXwwLG89TWF0aC5pbXVsKFUsY2UpLG49bitNYXRoLmltdWwoTSxsZSl8MCxpPShpPWkrTWF0aC5pbXVsKE0saGUpfDApK01hdGguaW11bChMLGxlKXwwLG89bytNYXRoLmltdWwoTCxoZSl8MDt2YXIgUGU9KGMrKG49bitNYXRoLmltdWwoUCxkZSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKFAseWUpfDApK01hdGguaW11bChSLGRlKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFIseWUpfDApKyhpPj4+MTMpfDApKyhQZT4+PjI2KXwwLFBlJj02NzEwODg2MyxuPU1hdGguaW11bChqLGxlKSxpPShpPU1hdGguaW11bChqLGhlKSkrTWF0aC5pbXVsKFUsbGUpfDAsbz1NYXRoLmltdWwoVSxoZSk7dmFyIFJlPShjKyhuPW4rTWF0aC5pbXVsKE0sZGUpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChNLHllKXwwKStNYXRoLmltdWwoTCxkZSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChMLHllKXwwKSsoaT4+PjEzKXwwKSsoUmU+Pj4yNil8MCxSZSY9NjcxMDg4NjM7dmFyIEJlPShjKyhuPU1hdGguaW11bChqLGRlKSl8MCkrKCg4MTkxJihpPShpPU1hdGguaW11bChqLHllKSkrTWF0aC5pbXVsKFUsZGUpfDApKTw8MTMpfDA7cmV0dXJuIGM9KChvPU1hdGguaW11bChVLHllKSkrKGk+Pj4xMyl8MCkrKEJlPj4+MjYpfDAsQmUmPTY3MTA4ODYzLHVbMF09Z2UsdVsxXT12ZSx1WzJdPW1lLHVbM109YmUsdVs0XT1fZSx1WzVdPVNlLHVbNl09RWUsdVs3XT13ZSx1WzhdPVRlLHVbOV09QWUsdVsxMF09Q2UsdVsxMV09eGUsdVsxMl09SWUsdVsxM109a2UsdVsxNF09T2UsdVsxNV09TmUsdVsxNl09UGUsdVsxN109UmUsdVsxOF09QmUsMCE9PWMmJih1WzE5XT1jLHIubGVuZ3RoKyspLHJ9O2Z1bmN0aW9uIGQoZSx0LHIpe3JldHVybihuZXcgeSkubXVscChlLHQscil9ZnVuY3Rpb24geShlLHQpe3RoaXMueD1lLHRoaXMueT10fU1hdGguaW11bHx8KHA9aCksby5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLmxlbmd0aCtlLmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT1lLmxlbmd0aD9wKHRoaXMsZSx0KTpyPDYzP2godGhpcyxlLHQpOnI8MTAyND9mdW5jdGlvbihlLHQscil7ci5uZWdhdGl2ZT10Lm5lZ2F0aXZlXmUubmVnYXRpdmUsci5sZW5ndGg9ZS5sZW5ndGgrdC5sZW5ndGg7Zm9yKHZhciBuPTAsaT0wLG89MDtvPHIubGVuZ3RoLTE7bysrKXt2YXIgYT1pO2k9MDtmb3IodmFyIHM9NjcxMDg4NjMmbix1PU1hdGgubWluKG8sdC5sZW5ndGgtMSksYz1NYXRoLm1heCgwLG8tZS5sZW5ndGgrMSk7Yzw9dTtjKyspe3ZhciBmPW8tYyxsPSgwfGUud29yZHNbZl0pKigwfHQud29yZHNbY10pLGg9NjcxMDg4NjMmbDtzPTY3MTA4ODYzJihoPWgrc3wwKSxpKz0oYT0oYT1hKyhsLzY3MTA4ODY0fDApfDApKyhoPj4+MjYpfDApPj4+MjYsYSY9NjcxMDg4NjN9ci53b3Jkc1tvXT1zLG49YSxhPWl9cmV0dXJuIDAhPT1uP3Iud29yZHNbb109bjpyLmxlbmd0aC0tLHIuc3RyaXAoKX0odGhpcyxlLHQpOmQodGhpcyxlLHQpfSx5LnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgQXJyYXkoZSkscj1vLnByb3RvdHlwZS5fY291bnRCaXRzKGUpLTEsbj0wO248ZTtuKyspdFtuXT10aGlzLnJldkJpbihuLHIsZSk7cmV0dXJuIHR9LHkucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihlLHQscil7aWYoMD09PWV8fGU9PT1yLTEpcmV0dXJuIGU7Zm9yKHZhciBuPTAsaT0wO2k8dDtpKyspbnw9KDEmZSk8PHQtaS0xLGU+Pj0xO3JldHVybiBufSx5LnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGUsdCxyLG4saSxvKXtmb3IodmFyIGE9MDthPG87YSsrKW5bYV09dFtlW2FdXSxpW2FdPXJbZVthXV19LHkucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihlLHQscixuLGksbyl7dGhpcy5wZXJtdXRlKG8sZSx0LHIsbixpKTtmb3IodmFyIGE9MTthPGk7YTw8PTEpZm9yKHZhciBzPWE8PDEsdT1NYXRoLmNvcygyKk1hdGguUEkvcyksYz1NYXRoLnNpbigyKk1hdGguUEkvcyksZj0wO2Y8aTtmKz1zKWZvcih2YXIgbD11LGg9YyxwPTA7cDxhO3ArKyl7dmFyIGQ9cltmK3BdLHk9bltmK3BdLGc9cltmK3ArYV0sdj1uW2YrcCthXSxtPWwqZy1oKnY7dj1sKnYraCpnLGc9bSxyW2YrcF09ZCtnLG5bZitwXT15K3YscltmK3ArYV09ZC1nLG5bZitwK2FdPXktdixwIT09cyYmKG09dSpsLWMqaCxoPXUqaCtjKmwsbD1tKX19LHkucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGUsdCl7dmFyIHI9MXxNYXRoLm1heCh0LGUpLG49MSZyLGk9MDtmb3Iocj1yLzJ8MDtyO3I+Pj49MSlpKys7cmV0dXJuIDE8PGkrMStufSx5LnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oZSx0LHIpe2lmKCEocjw9MSkpZm9yKHZhciBuPTA7bjxyLzI7bisrKXt2YXIgaT1lW25dO2Vbbl09ZVtyLW4tMV0sZVtyLW4tMV09aSxpPXRbbl0sdFtuXT0tdFtyLW4tMV0sdFtyLW4tMV09LWl9fSx5LnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MCxuPTA7bjx0LzI7bisrKXt2YXIgaT04MTkyKk1hdGgucm91bmQoZVsyKm4rMV0vdCkrTWF0aC5yb3VuZChlWzIqbl0vdCkrcjtlW25dPTY3MTA4ODYzJmkscj1pPDY3MTA4ODY0PzA6aS82NzEwODg2NHwwfXJldHVybiBlfSx5LnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGUsdCxyLGkpe2Zvcih2YXIgbz0wLGE9MDthPHQ7YSsrKW8rPTB8ZVthXSxyWzIqYV09ODE5MSZvLG8+Pj49MTMsclsyKmErMV09ODE5MSZvLG8+Pj49MTM7Zm9yKGE9Mip0O2E8aTsrK2EpclthXT0wO24oMD09PW8pLG4oMD09PSgtODE5MiZvKSl9LHkucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPTA7cmV0dXJuIHR9LHkucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPTIqdGhpcy5ndWVzc0xlbjEzYihlLmxlbmd0aCx0Lmxlbmd0aCksaT10aGlzLm1ha2VSQlQobiksbz10aGlzLnN0dWIobiksYT1uZXcgQXJyYXkobikscz1uZXcgQXJyYXkobiksdT1uZXcgQXJyYXkobiksYz1uZXcgQXJyYXkobiksZj1uZXcgQXJyYXkobiksbD1uZXcgQXJyYXkobiksaD1yLndvcmRzO2gubGVuZ3RoPW4sdGhpcy5jb252ZXJ0MTNiKGUud29yZHMsZS5sZW5ndGgsYSxuKSx0aGlzLmNvbnZlcnQxM2IodC53b3Jkcyx0Lmxlbmd0aCxjLG4pLHRoaXMudHJhbnNmb3JtKGEsbyxzLHUsbixpKSx0aGlzLnRyYW5zZm9ybShjLG8sZixsLG4saSk7Zm9yKHZhciBwPTA7cDxuO3ArKyl7dmFyIGQ9c1twXSpmW3BdLXVbcF0qbFtwXTt1W3BdPXNbcF0qbFtwXSt1W3BdKmZbcF0sc1twXT1kfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShzLHUsbiksdGhpcy50cmFuc2Zvcm0ocyx1LGgsbyxuLGkpLHRoaXMuY29uanVnYXRlKGgsbyxuKSx0aGlzLm5vcm1hbGl6ZTEzYihoLG4pLHIubmVnYXRpdmU9ZS5uZWdhdGl2ZV50Lm5lZ2F0aXZlLHIubGVuZ3RoPWUubGVuZ3RoK3QubGVuZ3RoLHIuc3RyaXAoKX0sby5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBvKG51bGwpO3JldHVybiB0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtlLmxlbmd0aCksdGhpcy5tdWxUbyhlLHQpfSxvLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBvKG51bGwpO3JldHVybiB0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtlLmxlbmd0aCksZCh0aGlzLGUsdCl9LG8ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhlLHRoaXMpfSxvLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihlKXtuKCJudW1iZXIiPT09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCk7Zm9yKHZhciB0PTAscj0wO3I8dGhpcy5sZW5ndGg7cisrKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSplLG89KDY3MTA4ODYzJmkpKyg2NzEwODg2MyZ0KTt0Pj49MjYsdCs9aS82NzEwODg2NHwwLHQrPW8+Pj4yNix0aGlzLndvcmRzW3JdPTY3MTA4ODYzJm99cmV0dXJuIDAhPT10JiYodGhpcy53b3Jkc1tyXT10LHRoaXMubGVuZ3RoKyspLHRoaXN9LG8ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihlKX0sby5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxvLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxvLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBBcnJheShlLmJpdExlbmd0aCgpKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXIvMjZ8MCxpPXIlMjY7dFtyXT0oZS53b3Jkc1tuXSYxPDxpKT4+Pml9cmV0dXJuIHR9KGUpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gbmV3IG8oMSk7Zm9yKHZhciByPXRoaXMsbj0wO248dC5sZW5ndGgmJjA9PT10W25dO24rKyxyPXIuc3FyKCkpO2lmKCsrbjx0Lmxlbmd0aClmb3IodmFyIGk9ci5zcXIoKTtuPHQubGVuZ3RoO24rKyxpPWkuc3FyKCkpMCE9PXRbbl0mJihyPXIubXVsKGkpKTtyZXR1cm4gcn0sby5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGUpe24oIm51bWJlciI9PT10eXBlb2YgZSYmZT49MCk7dmFyIHQscj1lJTI2LGk9KGUtcikvMjYsbz02NzEwODg2Mz4+PjI2LXI8PDI2LXI7aWYoMCE9PXIpe3ZhciBhPTA7Zm9yKHQ9MDt0PHRoaXMubGVuZ3RoO3QrKyl7dmFyIHM9dGhpcy53b3Jkc1t0XSZvLHU9KDB8dGhpcy53b3Jkc1t0XSktczw8cjt0aGlzLndvcmRzW3RdPXV8YSxhPXM+Pj4yNi1yfWEmJih0aGlzLndvcmRzW3RdPWEsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PWkpe2Zvcih0PXRoaXMubGVuZ3RoLTE7dD49MDt0LS0pdGhpcy53b3Jkc1t0K2ldPXRoaXMud29yZHNbdF07Zm9yKHQ9MDt0PGk7dCsrKXRoaXMud29yZHNbdF09MDt0aGlzLmxlbmd0aCs9aX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihlKXtyZXR1cm4gbigwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oZSl9LG8ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihlLHQscil7dmFyIGk7bigibnVtYmVyIj09PXR5cGVvZiBlJiZlPj0wKSxpPXQ/KHQtdCUyNikvMjY6MDt2YXIgbz1lJTI2LGE9TWF0aC5taW4oKGUtbykvMjYsdGhpcy5sZW5ndGgpLHM9NjcxMDg4NjNeNjcxMDg4NjM+Pj5vPDxvLHU9cjtpZihpLT1hLGk9TWF0aC5tYXgoMCxpKSx1KXtmb3IodmFyIGM9MDtjPGE7YysrKXUud29yZHNbY109dGhpcy53b3Jkc1tjXTt1Lmxlbmd0aD1hfWlmKDA9PT1hKTtlbHNlIGlmKHRoaXMubGVuZ3RoPmEpZm9yKHRoaXMubGVuZ3RoLT1hLGM9MDtjPHRoaXMubGVuZ3RoO2MrKyl0aGlzLndvcmRzW2NdPXRoaXMud29yZHNbYythXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBmPTA7Zm9yKGM9dGhpcy5sZW5ndGgtMTtjPj0wJiYoMCE9PWZ8fGM+PWkpO2MtLSl7dmFyIGw9MHx0aGlzLndvcmRzW2NdO3RoaXMud29yZHNbY109Zjw8MjYtb3xsPj4+byxmPWwmc31yZXR1cm4gdSYmMCE9PWYmJih1LndvcmRzW3UubGVuZ3RoKytdPWYpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbigwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oZSx0LHIpfSxvLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oZSl9LG8ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKGUpfSxvLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oZSl9LG8ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGUpfSxvLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihlKXtuKCJudW1iZXIiPT09dHlwZW9mIGUmJmU+PTApO3ZhciB0PWUlMjYscj0oZS10KS8yNixpPTE8PHQ7cmV0dXJuISh0aGlzLmxlbmd0aDw9cikmJiEhKHRoaXMud29yZHNbcl0maSl9LG8ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihlKXtuKCJudW1iZXIiPT09dHlwZW9mIGUmJmU+PTApO3ZhciB0PWUlMjYscj0oZS10KS8yNjtpZihuKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9cilyZXR1cm4gdGhpcztpZigwIT09dCYmcisrLHRoaXMubGVuZ3RoPU1hdGgubWluKHIsdGhpcy5sZW5ndGgpLDAhPT10KXt2YXIgaT02NzEwODg2M142NzEwODg2Mz4+PnQ8PHQ7dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9aX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihlKX0sby5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oZSl7cmV0dXJuIG4oIm51bWJlciI9PT10eXBlb2YgZSksbihlPDY3MTA4ODY0KSxlPDA/dGhpcy5pc3VibigtZSk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxlPyh0aGlzLndvcmRzWzBdPWUtKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihlKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oZSl9LG8ucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihlKXt0aGlzLndvcmRzWzBdKz1lO2Zvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbdF0+PTY3MTA4ODY0O3QrKyl0aGlzLndvcmRzW3RdLT02NzEwODg2NCx0PT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW3QrMV09MTp0aGlzLndvcmRzW3QrMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsdCsxKSx0aGlzfSxvLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihlKXtpZihuKCJudW1iZXIiPT09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCksZTwwKXJldHVybiB0aGlzLmlhZGRuKC1lKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZSwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbdF08MDt0KyspdGhpcy53b3Jkc1t0XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t0KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihlKX0sby5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGUpfSxvLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxvLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sby5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGUsdCxyKXt2YXIgaSxvLGE9ZS5sZW5ndGgrcjt0aGlzLl9leHBhbmQoYSk7dmFyIHM9MDtmb3IoaT0wO2k8ZS5sZW5ndGg7aSsrKXtvPSgwfHRoaXMud29yZHNbaStyXSkrczt2YXIgdT0oMHxlLndvcmRzW2ldKSp0O3M9KChvLT02NzEwODg2MyZ1KT4+MjYpLSh1LzY3MTA4ODY0fDApLHRoaXMud29yZHNbaStyXT02NzEwODg2MyZvfWZvcig7aTx0aGlzLmxlbmd0aC1yO2krKylzPShvPSgwfHRoaXMud29yZHNbaStyXSkrcyk+PjI2LHRoaXMud29yZHNbaStyXT02NzEwODg2MyZvO2lmKDA9PT1zKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKG4oLTE9PT1zKSxzPTAsaT0wO2k8dGhpcy5sZW5ndGg7aSsrKXM9KG89LSgwfHRoaXMud29yZHNbaV0pK3MpPj4yNix0aGlzLndvcmRzW2ldPTY3MTA4ODYzJm87cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKGUsdCl7dmFyIHI9KHRoaXMubGVuZ3RoLGUubGVuZ3RoKSxuPXRoaXMuY2xvbmUoKSxpPWUsYT0wfGkud29yZHNbaS5sZW5ndGgtMV07MCE9PShyPTI2LXRoaXMuX2NvdW50Qml0cyhhKSkmJihpPWkudXNobG4ociksbi5pdXNobG4ociksYT0wfGkud29yZHNbaS5sZW5ndGgtMV0pO3ZhciBzLHU9bi5sZW5ndGgtaS5sZW5ndGg7aWYoIm1vZCIhPT10KXsocz1uZXcgbyhudWxsKSkubGVuZ3RoPXUrMSxzLndvcmRzPW5ldyBBcnJheShzLmxlbmd0aCk7Zm9yKHZhciBjPTA7YzxzLmxlbmd0aDtjKyspcy53b3Jkc1tjXT0wfXZhciBmPW4uY2xvbmUoKS5faXNobG5zdWJtdWwoaSwxLHUpOzA9PT1mLm5lZ2F0aXZlJiYobj1mLHMmJihzLndvcmRzW3VdPTEpKTtmb3IodmFyIGw9dS0xO2w+PTA7bC0tKXt2YXIgaD02NzEwODg2NCooMHxuLndvcmRzW2kubGVuZ3RoK2xdKSsoMHxuLndvcmRzW2kubGVuZ3RoK2wtMV0pO2ZvcihoPU1hdGgubWluKGgvYXwwLDY3MTA4ODYzKSxuLl9pc2hsbnN1Ym11bChpLGgsbCk7MCE9PW4ubmVnYXRpdmU7KWgtLSxuLm5lZ2F0aXZlPTAsbi5faXNobG5zdWJtdWwoaSwxLGwpLG4uaXNaZXJvKCl8fChuLm5lZ2F0aXZlXj0xKTtzJiYocy53b3Jkc1tsXT1oKX1yZXR1cm4gcyYmcy5zdHJpcCgpLG4uc3RyaXAoKSwiZGl2IiE9PXQmJjAhPT1yJiZuLml1c2hybihyKSx7ZGl2OnN8fG51bGwsbW9kOm59fSxvLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBuKCFlLmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IG8oMCksbW9kOm5ldyBvKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PWUubmVnYXRpdmU/KHM9dGhpcy5uZWcoKS5kaXZtb2QoZSx0KSwibW9kIiE9PXQmJihpPXMuZGl2Lm5lZygpKSwiZGl2IiE9PXQmJihhPXMubW9kLm5lZygpLHImJjAhPT1hLm5lZ2F0aXZlJiZhLmlhZGQoZSkpLHtkaXY6aSxtb2Q6YX0pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09ZS5uZWdhdGl2ZT8ocz10aGlzLmRpdm1vZChlLm5lZygpLHQpLCJtb2QiIT09dCYmKGk9cy5kaXYubmVnKCkpLHtkaXY6aSxtb2Q6cy5tb2R9KTowIT09KHRoaXMubmVnYXRpdmUmZS5uZWdhdGl2ZSk/KHM9dGhpcy5uZWcoKS5kaXZtb2QoZS5uZWcoKSx0KSwiZGl2IiE9PXQmJihhPXMubW9kLm5lZygpLHImJjAhPT1hLm5lZ2F0aXZlJiZhLmlzdWIoZSkpLHtkaXY6cy5kaXYsbW9kOmF9KTplLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoZSk8MD97ZGl2Om5ldyBvKDApLG1vZDp0aGlzfToxPT09ZS5sZW5ndGg/ImRpdiI9PT10P3tkaXY6dGhpcy5kaXZuKGUud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXQ/e2RpdjpudWxsLG1vZDpuZXcgbyh0aGlzLm1vZG4oZS53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihlLndvcmRzWzBdKSxtb2Q6bmV3IG8odGhpcy5tb2RuKGUud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihlLHQpO3ZhciBpLGEsc30sby5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmRpdm1vZChlLCJkaXYiLCExKS5kaXZ9LG8ucHJvdG90eXBlLm1vZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwibW9kIiwhMSkubW9kfSxvLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmRpdm1vZChlLCJtb2QiLCEwKS5tb2R9LG8ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZGl2bW9kKGUpO2lmKHQubW9kLmlzWmVybygpKXJldHVybiB0LmRpdjt2YXIgcj0wIT09dC5kaXYubmVnYXRpdmU/dC5tb2QuaXN1YihlKTp0Lm1vZCxuPWUudXNocm4oMSksaT1lLmFuZGxuKDEpLG89ci5jbXAobik7cmV0dXJuIG88MHx8MT09PWkmJjA9PT1vP3QuZGl2OjAhPT10LmRpdi5uZWdhdGl2ZT90LmRpdi5pc3VibigxKTp0LmRpdi5pYWRkbigxKX0sby5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihlKXtuKGU8PTY3MTA4ODYzKTtmb3IodmFyIHQ9KDE8PDI2KSVlLHI9MCxpPXRoaXMubGVuZ3RoLTE7aT49MDtpLS0pcj0odCpyKygwfHRoaXMud29yZHNbaV0pKSVlO3JldHVybiByfSxvLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihlKXtuKGU8PTY3MTA4ODYzKTtmb3IodmFyIHQ9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBpPSgwfHRoaXMud29yZHNbcl0pKzY3MTA4ODY0KnQ7dGhpcy53b3Jkc1tyXT1pL2V8MCx0PWklZX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oZSl9LG8ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oZSl7bigwPT09ZS5uZWdhdGl2ZSksbighZS5pc1plcm8oKSk7dmFyIHQ9dGhpcyxyPWUuY2xvbmUoKTt0PTAhPT10Lm5lZ2F0aXZlP3QudW1vZChlKTp0LmNsb25lKCk7Zm9yKHZhciBpPW5ldyBvKDEpLGE9bmV3IG8oMCkscz1uZXcgbygwKSx1PW5ldyBvKDEpLGM9MDt0LmlzRXZlbigpJiZyLmlzRXZlbigpOyl0Lml1c2hybigxKSxyLml1c2hybigxKSwrK2M7Zm9yKHZhciBmPXIuY2xvbmUoKSxsPXQuY2xvbmUoKTshdC5pc1plcm8oKTspe2Zvcih2YXIgaD0wLHA9MTswPT09KHQud29yZHNbMF0mcCkmJmg8MjY7KytoLHA8PD0xKTtpZihoPjApZm9yKHQuaXVzaHJuKGgpO2gtLSA+MDspKGkuaXNPZGQoKXx8YS5pc09kZCgpKSYmKGkuaWFkZChmKSxhLmlzdWIobCkpLGkuaXVzaHJuKDEpLGEuaXVzaHJuKDEpO2Zvcih2YXIgZD0wLHk9MTswPT09KHIud29yZHNbMF0meSkmJmQ8MjY7KytkLHk8PD0xKTtpZihkPjApZm9yKHIuaXVzaHJuKGQpO2QtLSA+MDspKHMuaXNPZGQoKXx8dS5pc09kZCgpKSYmKHMuaWFkZChmKSx1LmlzdWIobCkpLHMuaXVzaHJuKDEpLHUuaXVzaHJuKDEpO3QuY21wKHIpPj0wPyh0LmlzdWIociksaS5pc3ViKHMpLGEuaXN1Yih1KSk6KHIuaXN1Yih0KSxzLmlzdWIoaSksdS5pc3ViKGEpKX1yZXR1cm57YTpzLGI6dSxnY2Q6ci5pdXNobG4oYyl9fSxvLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oZSl7bigwPT09ZS5uZWdhdGl2ZSksbighZS5pc1plcm8oKSk7dmFyIHQ9dGhpcyxyPWUuY2xvbmUoKTt0PTAhPT10Lm5lZ2F0aXZlP3QudW1vZChlKTp0LmNsb25lKCk7Zm9yKHZhciBpLGE9bmV3IG8oMSkscz1uZXcgbygwKSx1PXIuY2xvbmUoKTt0LmNtcG4oMSk+MCYmci5jbXBuKDEpPjA7KXtmb3IodmFyIGM9MCxmPTE7MD09PSh0LndvcmRzWzBdJmYpJiZjPDI2OysrYyxmPDw9MSk7aWYoYz4wKWZvcih0Lml1c2hybihjKTtjLS0gPjA7KWEuaXNPZGQoKSYmYS5pYWRkKHUpLGEuaXVzaHJuKDEpO2Zvcih2YXIgbD0wLGg9MTswPT09KHIud29yZHNbMF0maCkmJmw8MjY7KytsLGg8PD0xKTtpZihsPjApZm9yKHIuaXVzaHJuKGwpO2wtLSA+MDspcy5pc09kZCgpJiZzLmlhZGQodSkscy5pdXNocm4oMSk7dC5jbXAocik+PTA/KHQuaXN1YihyKSxhLmlzdWIocykpOihyLmlzdWIodCkscy5pc3ViKGEpKX1yZXR1cm4oaT0wPT09dC5jbXBuKDEpP2E6cykuY21wbigwKTwwJiZpLmlhZGQoZSksaX0sby5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKGUpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIGUuYWJzKCk7aWYoZS5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgdD10aGlzLmNsb25lKCkscj1lLmNsb25lKCk7dC5uZWdhdGl2ZT0wLHIubmVnYXRpdmU9MDtmb3IodmFyIG49MDt0LmlzRXZlbigpJiZyLmlzRXZlbigpO24rKyl0Lml1c2hybigxKSxyLml1c2hybigxKTtmb3IoOzspe2Zvcig7dC5pc0V2ZW4oKTspdC5pdXNocm4oMSk7Zm9yKDtyLmlzRXZlbigpOylyLml1c2hybigxKTt2YXIgaT10LmNtcChyKTtpZihpPDApe3ZhciBvPXQ7dD1yLHI9b31lbHNlIGlmKDA9PT1pfHwwPT09ci5jbXBuKDEpKWJyZWFrO3QuaXN1YihyKX1yZXR1cm4gci5pdXNobG4obil9LG8ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWdjZChlKS5hLnVtb2QoZSl9LG8ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT09KDEmdGhpcy53b3Jkc1swXSl9LG8ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT0oMSZ0aGlzLndvcmRzWzBdKX0sby5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMud29yZHNbMF0mZX0sby5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09PXR5cGVvZiBlKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjYsaT0xPDx0O2lmKHRoaXMubGVuZ3RoPD1yKXJldHVybiB0aGlzLl9leHBhbmQocisxKSx0aGlzLndvcmRzW3JdfD1pLHRoaXM7Zm9yKHZhciBvPWksYT1yOzAhPT1vJiZhPHRoaXMubGVuZ3RoO2ErKyl7dmFyIHM9MHx0aGlzLndvcmRzW2FdO289KHMrPW8pPj4+MjYscyY9NjcxMDg4NjMsdGhpcy53b3Jkc1thXT1zfXJldHVybiAwIT09byYmKHRoaXMud29yZHNbYV09byx0aGlzLmxlbmd0aCsrKSx0aGlzfSxvLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sby5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihlKXt2YXIgdCxyPWU8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXIpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnIpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpdD0xO2Vsc2V7ciYmKGU9LWUpLG4oZTw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIGk9MHx0aGlzLndvcmRzWzBdO3Q9aT09PWU/MDppPGU/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtdDp0fSxvLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZSl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1lLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09ZS5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgdD10aGlzLnVjbXAoZSk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXQ6dH0sby5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihlKXtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxlLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHQ9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBuPTB8dGhpcy53b3Jkc1tyXSxpPTB8ZS53b3Jkc1tyXTtpZihuIT09aSl7bjxpP3Q9LTE6bj5pJiYodD0xKTticmVha319cmV0dXJuIHR9LG8ucHJvdG90eXBlLmd0bj1mdW5jdGlvbihlKXtyZXR1cm4gMT09PXRoaXMuY21wbihlKX0sby5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT10aGlzLmNtcChlKX0sby5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbXBuKGUpPj0wfSxvLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wKGUpPj0wfSxvLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZSl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZSl9LG8ucHJvdG90eXBlLmx0PWZ1bmN0aW9uKGUpe3JldHVybi0xPT09dGhpcy5jbXAoZSl9LG8ucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wbihlKTw9MH0sby5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcChlKTw9MH0sby5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGUpe3JldHVybiAwPT09dGhpcy5jbXBuKGUpfSxvLnByb3RvdHlwZS5lcT1mdW5jdGlvbihlKXtyZXR1cm4gMD09PXRoaXMuY21wKGUpfSxvLnJlZD1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IEUoZSl9LG8ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGUpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLG4oMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZS5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGUpfSxvLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sby5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlZD1lLHRoaXN9LG8ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGUpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGUpfSxvLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxlKX0sby5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGUpfSxvLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxlKX0sby5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZSksdGhpcy5yZWQubXVsKHRoaXMsZSl9LG8ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGUpLHRoaXMucmVkLmltdWwodGhpcyxlKX0sby5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LG8ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sby5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LG8ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRQbw=="
}