f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAABIKQAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGVsbGlwdGljOwpwa2dwYXRoIGNyeXB0by9lbGxpcHRpYzsKcHJpb3JpdHkgODsKaW1wb3J0IGlvIGlvICJpbyI7CmltcG9ydCBiaWcgbWF0aC9iaWcgIm1hdGgvYmlnIjsKaW1wb3J0IHN5bmMgc3luYyAic3luYyI7CmluaXQgZWxsaXB0aWMgY3J5cHRvX2VsbGlwdGljLi5pbXBvcnQgOCBtYXRoIG1hdGguLmltcG9ydCAxIHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgdW5pY29kZSB1bmljb2RlLi5pbXBvcnQgMSBzdHJjb252IHN0cmNvbnYuLmltcG9ydCAyIHN5bmMgc3luYy4uaW1wb3J0IDIgaW8gaW8uLmltcG9ydCAzIHJhbmQgbWF0aF9yYW5kLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgYmluYXJ5IGVuY29kaW5nX2JpbmFyeS4uaW1wb3J0IDQgdGltZSB0aW1lLi5pbXBvcnQgNCBvcyBvcy4uaW1wb3J0IDUgZm10IGZtdC4uaW1wb3J0IDYgYmlnIG1hdGhfYmlnLi5pbXBvcnQgNzsKdHlwZSA8dHlwZSAxICJDdXJ2ZSIgPHR5cGUgMiBpbnRlcmZhY2UgeyBQYXJhbXMgKCkgPHR5cGUgMyAqPHR5cGUgNCAiQ3VydmVQYXJhbXMiIDx0eXBlIDUgc3RydWN0IHsgUCA8dHlwZSA2ICo8dHlwZSA3ICJtYXRoL2JpZy5JbnQiIDx0eXBlIDggc3RydWN0IHsgLm1hdGgvYmlnLm5lZyA8dHlwZSAtMTU+OyAubWF0aC9iaWcuYWJzIDx0eXBlIDkgIi5tYXRoL2JpZy5uYXQiIDx0eXBlIDEwIFtdIDx0eXBlIDExICJtYXRoL2JpZy5Xb3JkIiA8dHlwZSAtMTM+Pj4KIGZ1bmMgKHogPHR5cGUgOT4pIC5tYXRoL2JpZy5tdWwgKHggPHR5cGUgOT4sIHkgPHR5cGUgOT4pIDx0eXBlIDk+OwogZnVuYyAoeiA8dHlwZSA5PikgLm1hdGgvYmlnLnNjYW4gKHIgPHR5cGUgMTIgImlvLlJ1bmVTY2FubmVyIiA8dHlwZSAxMyBpbnRlcmZhY2UgeyA/IDx0eXBlIDE0ICJpby5SdW5lUmVhZGVyIiA8dHlwZSAxNSBpbnRlcmZhY2UgeyBSZWFkUnVuZSAoKSAociA8dHlwZSAtMjE+LCBzaXplIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+OyBVbnJlYWRSdW5lICgpIDx0eXBlIC0xOT47IH0+PiwgYmFzZSA8dHlwZSAtMTE+KSAoPyA8dHlwZSA5PiwgPyA8dHlwZSAtMTE+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoeiA8dHlwZSA5PikgLm1hdGgvYmlnLmFkZCAoeCA8dHlwZSA5PiwgeSA8dHlwZSA5PikgPHR5cGUgOT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcuYW5kTm90ICh4IDx0eXBlIDk+LCB5IDx0eXBlIDk+KSA8dHlwZSA5PjsKIGZ1bmMgKHogPHR5cGUgOT4pIC5tYXRoL2JpZy5zZXRCaXQgKHggPHR5cGUgOT4sIGkgPHR5cGUgLTEyPiwgYiA8dHlwZSAtMTI+KSA8dHlwZSA5PjsKIGZ1bmMgKHogPHR5cGUgOT4pIC5tYXRoL2JpZy5zdWIgKHggPHR5cGUgOT4sIHkgPHR5cGUgOT4pIDx0eXBlIDk+OwogZnVuYyAoeCA8dHlwZSA5PikgLm1hdGgvYmlnLm1vZFcgKGQgPHR5cGUgMTE+KSAociA8dHlwZSAxMT4pOwogZnVuYyAobiA8dHlwZSA5PikgLm1hdGgvYmlnLnByb2JhYmx5UHJpbWUgKHJlcHMgPHR5cGUgLTExPikgPHR5cGUgLTE1PjsKIGZ1bmMgKHEgPHR5cGUgOT4pIC5tYXRoL2JpZy5jb252ZXJ0V29yZHMgKHMgPHR5cGUgMTYgW10gPHR5cGUgLTIwPj4sIGNoYXJzZXQgPHR5cGUgLTE2PiwgYiA8dHlwZSAxMT4sIG5kaWdpdHMgPHR5cGUgLTExPiwgYmIgPHR5cGUgMTE+LCB0YWJsZSA8dHlwZSAxNyBbXSA8dHlwZSAxOCAiLm1hdGgvYmlnLmRpdmlzb3IiIDx0eXBlIDE5IHN0cnVjdCB7IC5tYXRoL2JpZy5iYmIgPHR5cGUgOT47IC5tYXRoL2JpZy5uYml0cyA8dHlwZSAtMTE+OyAubWF0aC9iaWcubmRpZ2l0cyA8dHlwZSAtMTE+OyB9Pj4+KTsKIGZ1bmMgKHggPHR5cGUgOT4pIC5tYXRoL2JpZy5zdHJpbmcgKGNoYXJzZXQgPHR5cGUgLTE2PikgPHR5cGUgLTE2PjsKIGZ1bmMgKHogPHR5cGUgOT4pIC5tYXRoL2JpZy5kaXZXICh4IDx0eXBlIDk+LCB5IDx0eXBlIDExPikgKHEgPHR5cGUgOT4sIHIgPHR5cGUgMTE+KTsKIGZ1bmMgKHogPHR5cGUgOT4pIC5tYXRoL2JpZy5zaHIgKHggPHR5cGUgOT4sIHMgPHR5cGUgLTEyPikgPHR5cGUgOT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcubXVsUmFuZ2UgKGEgPHR5cGUgLTg+LCBiIDx0eXBlIC04PikgPHR5cGUgOT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcubXVsQWRkV1cgKHggPHR5cGUgOT4sIHkgPHR5cGUgMTE+LCByIDx0eXBlIDExPikgPHR5cGUgOT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcuYW5kICh4IDx0eXBlIDk+LCB5IDx0eXBlIDk+KSA8dHlwZSA5PjsKIGZ1bmMgKHggPHR5cGUgOT4pIC5tYXRoL2JpZy5kZWNpbWFsU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcueG9yICh4IDx0eXBlIDk+LCB5IDx0eXBlIDk+KSA8dHlwZSA5PjsKIGZ1bmMgKHogPHR5cGUgOT4pIC5tYXRoL2JpZy5iaXQgKGkgPHR5cGUgLTEyPikgPHR5cGUgLTEyPjsKIGZ1bmMgKHogPHR5cGUgOT4pIC5tYXRoL2JpZy5zZXQgKHggPHR5cGUgOT4pIDx0eXBlIDk+OwogZnVuYyAoeiA8dHlwZSA5PikgLm1hdGgvYmlnLnJhbmRvbSAocmFuZCA8dHlwZSAyMCAqPHR5cGUgMjEgIm1hdGgvcmFuZC5SYW5kIiAicmFuZCIgPHR5cGUgMjIgc3RydWN0IHsgLm1hdGgvcmFuZC5zcmMgPHR5cGUgMjMgIm1hdGgvcmFuZC5Tb3VyY2UiIDx0eXBlIDI0IGludGVyZmFjZSB7IEludDYzICgpIDx0eXBlIC00PjsgU2VlZCAoc2VlZCA8dHlwZSAtND4pOyB9Pj47IH0+CiBmdW5jIChyIDx0eXBlIDI1ICo8dHlwZSAyMT4+KSBFeHBGbG9hdDY0ICgpIDx0eXBlIC0xMD47CiBmdW5jIChyIDx0eXBlIDI1PikgSW50MzFuIChuIDx0eXBlIC0zPikgPHR5cGUgLTM+OwogZnVuYyAociA8dHlwZSAyNT4pIFVpbnQzMiAoKSA8dHlwZSAtNz47CiBmdW5jIChyIDx0eXBlIDI1PikgSW50biAobiA8dHlwZSAtMTE+KSA8dHlwZSAtMTE+OwogZnVuYyAociA8dHlwZSAyNT4pIFBlcm0gKG4gPHR5cGUgLTExPikgPHR5cGUgMjYgW10gPHR5cGUgLTExPj47CiBmdW5jIChyIDx0eXBlIDI1PikgTm9ybUZsb2F0NjQgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKHIgPHR5cGUgMjU+KSBJbnQzMSAoKSA8dHlwZSAtMz47CiBmdW5jIChyIDx0eXBlIDI1PikgRmxvYXQ2NCAoKSA8dHlwZSAtMTA+OwogZnVuYyAociA8dHlwZSAyNT4pIFNlZWQgKHNlZWQgPHR5cGUgLTQ+KTsKIGZ1bmMgKHIgPHR5cGUgMjU+KSBJbnQgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHIgPHR5cGUgMjU+KSBJbnQ2MyAoKSA8dHlwZSAtND47CiBmdW5jIChyIDx0eXBlIDI1PikgSW50NjNuIChuIDx0eXBlIC00PikgPHR5cGUgLTQ+OwogZnVuYyAociA8dHlwZSAyNT4pIEZsb2F0MzIgKCkgPHR5cGUgLTk+Owo+PiwgbGltaXQgPHR5cGUgOT4sIG4gPHR5cGUgLTExPikgPHR5cGUgOT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcub3IgKHggPHR5cGUgOT4sIHkgPHR5cGUgOT4pIDx0eXBlIDk+OwogZnVuYyAoeCA8dHlwZSA5PikgLm1hdGgvYmlnLmNtcCAoeSA8dHlwZSA5PikgKHIgPHR5cGUgLTExPik7CiBmdW5jICh4IDx0eXBlIDk+KSAubWF0aC9iaWcuYml0TGVuICgpIDx0eXBlIC0xMT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcuc2V0V29yZCAoeCA8dHlwZSAxMT4pIDx0eXBlIDk+OwogZnVuYyAoeiA8dHlwZSA5PikgLm1hdGgvYmlnLnNldFVpbnQ2NCAoeCA8dHlwZSAtOD4pIDx0eXBlIDk+OwogZnVuYyAoeiA8dHlwZSA5PikgLm1hdGgvYmlnLmRpdiAoejIgPHR5cGUgOT4sIHUgPHR5cGUgOT4sIHYgPHR5cGUgOT4pIChxIDx0eXBlIDk+LCByIDx0eXBlIDk+KTsKIGZ1bmMgKHggPHR5cGUgOT4pIC5tYXRoL2JpZy50cmFpbGluZ1plcm9CaXRzICgpIDx0eXBlIC0xMj47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcuZXhwTk5XaW5kb3dlZCAoeCA8dHlwZSA5PiwgeSA8dHlwZSA5PiwgbSA8dHlwZSA5PikgPHR5cGUgOT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcuZGl2TGFyZ2UgKHUgPHR5cGUgOT4sIHVJbiA8dHlwZSA5PiwgdiA8dHlwZSA5PikgKHEgPHR5cGUgOT4sIHIgPHR5cGUgOT4pOwogZnVuYyAoeiA8dHlwZSA5PikgLm1hdGgvYmlnLm5vcm0gKCkgPHR5cGUgOT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcuc2V0Qnl0ZXMgKGJ1ZiA8dHlwZSAyNyBbXSA8dHlwZSAtMjA+PikgPHR5cGUgOT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcubWFrZSAobiA8dHlwZSAtMTE+KSA8dHlwZSA5PjsKIGZ1bmMgKHogPHR5cGUgOT4pIC5tYXRoL2JpZy5zaGwgKHggPHR5cGUgOT4sIHMgPHR5cGUgLTEyPikgPHR5cGUgOT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcuYnl0ZXMgKGJ1ZiA8dHlwZSAyOCBbXSA8dHlwZSAtMjA+PikgKGkgPHR5cGUgLTExPik7CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcuY2xlYXIgKCk7CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcuZXhwV1cgKHggPHR5cGUgMTE+LCB5IDx0eXBlIDExPikgPHR5cGUgOT47CiBmdW5jICh6IDx0eXBlIDk+KSAubWF0aC9iaWcuZXhwTk4gKHggPHR5cGUgOT4sIHkgPHR5cGUgOT4sIG0gPHR5cGUgOT4pIDx0eXBlIDk+Owo+OyB9PgogZnVuYyAoeiA8dHlwZSAyOSAqPHR5cGUgNz4+KSBOZWcgKHggPHR5cGUgMjk+KSA8dHlwZSAyOT47CiBmdW5jICh6IDx0eXBlIDI5PikgUXVvUmVtICh4IDx0eXBlIDI5PiwgeSA8dHlwZSAyOT4sIHIgPHR5cGUgMjk+KSAoPyA8dHlwZSAyOT4sID8gPHR5cGUgMjk+KTsKIGZ1bmMgKHggPHR5cGUgMjk+KSBCeXRlcyAoKSA8dHlwZSAzMCBbXSA8dHlwZSAtMjA+PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBTZXRCaXRzIChhYnMgPHR5cGUgMzEgW10gPHR5cGUgMTE+PikgPHR5cGUgMjk+OwogZnVuYyAoeiA8dHlwZSAyOT4pIFNldEJpdCAoeCA8dHlwZSAyOT4sIGkgPHR5cGUgLTExPiwgYiA8dHlwZSAtMTI+KSA8dHlwZSAyOT47CiBmdW5jICh6IDx0eXBlIDI5PikgWG9yICh4IDx0eXBlIDI5PiwgeSA8dHlwZSAyOT4pIDx0eXBlIDI5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBTZXRJbnQ2NCAoeCA8dHlwZSAtND4pIDx0eXBlIDI5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBOb3QgKHggPHR5cGUgMjk+KSA8dHlwZSAyOT47CiBmdW5jICh6IDx0eXBlIDI5PikgVW5tYXJzaGFsSlNPTiAodGV4dCA8dHlwZSAzMiBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBPciAoeCA8dHlwZSAyOT4sIHkgPHR5cGUgMjk+KSA8dHlwZSAyOT47CiBmdW5jICh6IDx0eXBlIDI5PikgU2V0VWludDY0ICh4IDx0eXBlIC04PikgPHR5cGUgMjk+OwogZnVuYyAoeCA8dHlwZSAyOT4pIEludDY0ICgpIDx0eXBlIC00PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSAubWF0aC9iaWcuc2NhbiAociA8dHlwZSAxMj4sIGJhc2UgPHR5cGUgLTExPikgKD8gPHR5cGUgMjk+LCA/IDx0eXBlIC0xMT4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh6IDx0eXBlIDI5PikgR0NEICh4IDx0eXBlIDI5PiwgeSA8dHlwZSAyOT4sIGEgPHR5cGUgMjk+LCBiIDx0eXBlIDI5PikgPHR5cGUgMjk+OwogZnVuYyAoeiA8dHlwZSAyOT4pIFJlbSAoeCA8dHlwZSAyOT4sIHkgPHR5cGUgMjk+KSA8dHlwZSAyOT47CiBmdW5jICh4IDx0eXBlIDI5PikgQml0IChpIDx0eXBlIC0xMT4pIDx0eXBlIC0xMj47CiBmdW5jICh4IDx0eXBlIDI5PikgQml0cyAoKSA8dHlwZSAzMyBbXSA8dHlwZSAxMT4+OwogZnVuYyAoeiA8dHlwZSAyOT4pIFNldEJ5dGVzIChidWYgPHR5cGUgMzQgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDI5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBEaXZNb2QgKHggPHR5cGUgMjk+LCB5IDx0eXBlIDI5PiwgbSA8dHlwZSAyOT4pICg/IDx0eXBlIDI5PiwgPyA8dHlwZSAyOT4pOwogZnVuYyAoeiA8dHlwZSAyOT4pIFJzaCAoeCA8dHlwZSAyOT4sIG4gPHR5cGUgLTEyPikgPHR5cGUgMjk+OwogZnVuYyAoeCA8dHlwZSAyOT4pIENtcCAoeSA8dHlwZSAyOT4pIChyIDx0eXBlIC0xMT4pOwogZnVuYyAoeiA8dHlwZSAyOT4pIFNjYW4gKHMgPHR5cGUgMzUgImZtdC5TY2FuU3RhdGUiICJmbXQiIDx0eXBlIDM2IGludGVyZmFjZSB7IFJlYWRSdW5lICgpIChyIDx0eXBlIC0yMT4sIHNpemUgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyBVbnJlYWRSdW5lICgpIDx0eXBlIC0xOT47IFNraXBTcGFjZSAoKTsgVG9rZW4gKHNraXBTcGFjZSA8dHlwZSAtMTU+LCBmIDx0eXBlIDM3ICg/IDx0eXBlIC0yMT4pIDx0eXBlIC0xNT4+KSAodG9rZW4gPHR5cGUgMzggW10gPHR5cGUgLTIwPj4sIGVyciA8dHlwZSAtMTk+KTsgV2lkdGggKCkgKHdpZCA8dHlwZSAtMTE+LCBvayA8dHlwZSAtMTU+KTsgUmVhZCAoYnVmIDx0eXBlIDM5IFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PiwgY2ggPHR5cGUgLTIxPikgPHR5cGUgLTE5PjsKIGZ1bmMgKHggPHR5cGUgMjk+KSBHb2JFbmNvZGUgKCkgKD8gPHR5cGUgNDAgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh4IDx0eXBlIDI5PikgUHJvYmFibHlQcmltZSAobiA8dHlwZSAtMTE+KSA8dHlwZSAtMTU+OwogZnVuYyAoeCA8dHlwZSAyOT4pIFNpZ24gKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBNb2QgKHggPHR5cGUgMjk+LCB5IDx0eXBlIDI5PikgPHR5cGUgMjk+OwogZnVuYyAoeiA8dHlwZSAyOT4pIEV4cCAoeCA8dHlwZSAyOT4sIHkgPHR5cGUgMjk+LCBtIDx0eXBlIDI5PikgPHR5cGUgMjk+OwogZnVuYyAoeCA8dHlwZSAyOT4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoeiA8dHlwZSAyOT4pIEFicyAoeCA8dHlwZSAyOT4pIDx0eXBlIDI5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBVbm1hcnNoYWxUZXh0ICh0ZXh0IDx0eXBlIDQxIFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAoeiA8dHlwZSAyOT4pIFJhbmQgKHJuZCA8dHlwZSAyMD4sIG4gPHR5cGUgMjk+KSA8dHlwZSAyOT47CiBmdW5jICh6IDx0eXBlIDI5PikgQW5kICh4IDx0eXBlIDI5PiwgeSA8dHlwZSAyOT4pIDx0eXBlIDI5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBNb2RJbnZlcnNlIChnIDx0eXBlIDI5PiwgbiA8dHlwZSAyOT4pIDx0eXBlIDI5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBRdW8gKHggPHR5cGUgMjk+LCB5IDx0eXBlIDI5PikgPHR5cGUgMjk+OwogZnVuYyAoeiA8dHlwZSAyOT4pIEFkZCAoeCA8dHlwZSAyOT4sIHkgPHR5cGUgMjk+KSA8dHlwZSAyOT47CiBmdW5jICh6IDx0eXBlIDI5PikgTHNoICh4IDx0eXBlIDI5PiwgbiA8dHlwZSAtMTI+KSA8dHlwZSAyOT47CiBmdW5jICh6IDx0eXBlIDI5PikgQW5kTm90ICh4IDx0eXBlIDI5PiwgeSA8dHlwZSAyOT4pIDx0eXBlIDI5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBTZXQgKHggPHR5cGUgMjk+KSA8dHlwZSAyOT47CiBmdW5jICh6IDx0eXBlIDI5PikgTWFyc2hhbFRleHQgKCkgKHRleHQgPHR5cGUgNDIgW10gPHR5cGUgLTIwPj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHogPHR5cGUgMjk+KSBNdWwgKHggPHR5cGUgMjk+LCB5IDx0eXBlIDI5PikgPHR5cGUgMjk+OwogZnVuYyAoeiA8dHlwZSAyOT4pIERpdiAoeCA8dHlwZSAyOT4sIHkgPHR5cGUgMjk+KSA8dHlwZSAyOT47CiBmdW5jICh6IDx0eXBlIDI5PikgQmlub21pYWwgKG4gPHR5cGUgLTQ+LCBrIDx0eXBlIC00PikgPHR5cGUgMjk+OwogZnVuYyAoeCA8dHlwZSAyOT4pIEZvcm1hdCAocyA8dHlwZSA0MyAiZm10LlN0YXRlIiA8dHlwZSA0NCBpbnRlcmZhY2UgeyBXcml0ZSAoYiA8dHlwZSA0NSBbXSA8dHlwZSAtMjA+PikgKHJldCA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IFdpZHRoICgpICh3aWQgPHR5cGUgLTExPiwgb2sgPHR5cGUgLTE1Pik7IFByZWNpc2lvbiAoKSAocHJlYyA8dHlwZSAtMTE+LCBvayA8dHlwZSAtMTU+KTsgRmxhZyAoYyA8dHlwZSAtMTE+KSA8dHlwZSAtMTU+OyB9Pj4sIGNoIDx0eXBlIC0yMT4pOwogZnVuYyAoeiA8dHlwZSAyOT4pIE11bFJhbmdlIChhIDx0eXBlIC00PiwgYiA8dHlwZSAtND4pIDx0eXBlIDI5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBTZXRTdHJpbmcgKHMgPHR5cGUgLTE2PiwgYmFzZSA8dHlwZSAtMTE+KSAoPyA8dHlwZSAyOT4sID8gPHR5cGUgLTE1Pik7CiBmdW5jICh4IDx0eXBlIDI5PikgVWludDY0ICgpIDx0eXBlIC04PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBNYXJzaGFsSlNPTiAoKSAoPyA8dHlwZSA0NiBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHggPHR5cGUgMjk+KSBCaXRMZW4gKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBHb2JEZWNvZGUgKGJ1ZiA8dHlwZSA0NyBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSAubWF0aC9iaWcuYmluYXJ5R0NEIChhIDx0eXBlIDI5PiwgYiA8dHlwZSAyOT4pIDx0eXBlIDI5PjsKIGZ1bmMgKHogPHR5cGUgMjk+KSBTdWIgKHggPHR5cGUgMjk+LCB5IDx0eXBlIDI5PikgPHR5cGUgMjk+Owo+PjsgTiA8dHlwZSA2PjsgQiA8dHlwZSA2PjsgR3ggPHR5cGUgNj47IEd5IDx0eXBlIDY+OyBCaXRTaXplIDx0eXBlIC0xMT47IH0+CiBmdW5jIChjdXJ2ZSA8dHlwZSA0OCAqPHR5cGUgND4+KSBQYXJhbXMgKCkgPHR5cGUgNDg+OwogZnVuYyAoY3VydmUgPHR5cGUgNDg+KSBJc09uQ3VydmUgKHggPHR5cGUgNj4sIHkgPHR5cGUgNj4pIDx0eXBlIC0xNT47CiBmdW5jIChjdXJ2ZSA8dHlwZSA0OD4pIC5jcnlwdG8vZWxsaXB0aWMuYWZmaW5lRnJvbUphY29iaWFuICh4IDx0eXBlIDY+LCB5IDx0eXBlIDY+LCB6IDx0eXBlIDY+KSAoeE91dCA8dHlwZSA2PiwgeU91dCA8dHlwZSA2Pik7CiBmdW5jIChjdXJ2ZSA8dHlwZSA0OD4pIEFkZCAoeDEgPHR5cGUgNj4sIHkxIDx0eXBlIDY+LCB4MiA8dHlwZSA2PiwgeTIgPHR5cGUgNj4pICg/IDx0eXBlIDY+LCA/IDx0eXBlIDY+KTsKIGZ1bmMgKGN1cnZlIDx0eXBlIDQ4PikgLmNyeXB0by9lbGxpcHRpYy5hZGRKYWNvYmlhbiAoeDEgPHR5cGUgNj4sIHkxIDx0eXBlIDY+LCB6MSA8dHlwZSA2PiwgeDIgPHR5cGUgNj4sIHkyIDx0eXBlIDY+LCB6MiA8dHlwZSA2PikgKD8gPHR5cGUgNj4sID8gPHR5cGUgNj4sID8gPHR5cGUgNj4pOwogZnVuYyAoY3VydmUgPHR5cGUgNDg+KSBEb3VibGUgKHgxIDx0eXBlIDY+LCB5MSA8dHlwZSA2PikgKD8gPHR5cGUgNj4sID8gPHR5cGUgNj4pOwogZnVuYyAoY3VydmUgPHR5cGUgNDg+KSAuY3J5cHRvL2VsbGlwdGljLmRvdWJsZUphY29iaWFuICh4IDx0eXBlIDY+LCB5IDx0eXBlIDY+LCB6IDx0eXBlIDY+KSAoPyA8dHlwZSA2PiwgPyA8dHlwZSA2PiwgPyA8dHlwZSA2Pik7CiBmdW5jIChjdXJ2ZSA8dHlwZSA0OD4pIFNjYWxhck11bHQgKEJ4IDx0eXBlIDY+LCBCeSA8dHlwZSA2PiwgayA8dHlwZSA0OSBbXSA8dHlwZSAtMjA+PikgKD8gPHR5cGUgNj4sID8gPHR5cGUgNj4pOwogZnVuYyAoY3VydmUgPHR5cGUgNDg+KSBTY2FsYXJCYXNlTXVsdCAoayA8dHlwZSA1MCBbXSA8dHlwZSAtMjA+PikgKD8gPHR5cGUgNj4sID8gPHR5cGUgNj4pOwo+PjsgSXNPbkN1cnZlICh4IDx0eXBlIDY+LCB5IDx0eXBlIDY+KSA8dHlwZSAtMTU+OyBBZGQgKHgxIDx0eXBlIDY+LCB5MSA8dHlwZSA2PiwgeDIgPHR5cGUgNj4sIHkyIDx0eXBlIDY+KSAoeCA8dHlwZSA2PiwgeSA8dHlwZSA2Pik7IERvdWJsZSAoeDEgPHR5cGUgNj4sIHkxIDx0eXBlIDY+KSAoeCA8dHlwZSA2PiwgeSA8dHlwZSA2Pik7IFNjYWxhck11bHQgKHgxIDx0eXBlIDY+LCB5MSA8dHlwZSA2PiwgayA8dHlwZSA1MSBbXSA8dHlwZSAtMjA+PikgKHggPHR5cGUgNj4sIHkgPHR5cGUgNj4pOyBTY2FsYXJCYXNlTXVsdCAoayA8dHlwZSA1MiBbXSA8dHlwZSAtMjA+PikgKHggPHR5cGUgNj4sIHkgPHR5cGUgNj4pOyB9Pj47CnR5cGUgPHR5cGUgND47CmZ1bmMgR2VuZXJhdGVLZXkgKGN1cnZlIDx0eXBlIDE+LCByYW5kIDx0eXBlIDUzICJpby5SZWFkZXIiIDx0eXBlIDU0IGludGVyZmFjZSB7IFJlYWQgKHAgPHR5cGUgNTUgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+KSAocHJpdiA8dHlwZSA1NiBbXSA8dHlwZSAtMjA+PiwgeCA8dHlwZSA2PiwgeSA8dHlwZSA2PiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIE1hcnNoYWwgKGN1cnZlIDx0eXBlIDE+LCB4IDx0eXBlIDY+LCB5IDx0eXBlIDY+KSA8dHlwZSA1NyBbXSA8dHlwZSAtMjA+PjsKZnVuYyBQMjI0ICgpIDx0eXBlIDE+OwpmdW5jIFAyNTYgKCkgPHR5cGUgMT47CmZ1bmMgUDM4NCAoKSA8dHlwZSAxPjsKZnVuYyBQNTIxICgpIDx0eXBlIDE+OwpmdW5jIFVubWFyc2hhbCAoY3VydmUgPHR5cGUgMT4sIGRhdGEgPHR5cGUgNTggW10gPHR5cGUgLTIwPj4pICh4IDx0eXBlIDY+LCB5IDx0eXBlIDY+KTsKY2hlY2tzdW0gRUM1RUY4QzBBNkFCNTdEQTQwQUYyQzRFRTlBOEQ0QjIxQzBBQzg1NDsKAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmdvX2V4cG9ydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAAAAAAAAAAADQAAADKKAAAAAAAAAAAAAABAAAAAAAAABEAAAADAAAAAAAAAAAAAAD+KAAAJgAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAJCkAACAAAAAEAAAAAgAAAAQAAAAQAAAACQAAAAMAAAAAAAAAAAAAAEQpAAABAAAAAAAAAAAAAAABAAAAAAAAAA==